PDA

Просмотр полной версии : Сбор статистики о продаваемых предметах


Anton5
12.06.2009, 00:26
Хочу попробовать написать скрипт для сбора статистики о продаваемых вещах(1) Всё незапомниш, а спрашивать всех про цену заколебало; 2) Надоело вручную писать название итема, его тип и цену; 3) долго.). Что-то типа следующего:
Оружее Кинжал A Bloody Orchid x Аден
Оружее Пики(Двуруч) S Saint Spear x Аден
Шмот Ботинки A Sealed Boots of Nightmare x Аден
Шмот Верх A Dark Crystal Breastplate +3 x Аден
Куски Мечь(Одноруч) B Sword of Damascus Blade x Аден
Куски Низ A Sealed Dark Crystal Leggings Design x Аден



Столкнулся с несколькими проблеммами:
1) В пакете(PrivateStoreList)(Интерлюд) со списком продаваемых продавцом товаров плохо различим тип продаваемого товара. Параметр type2 принимает только следующи значения:
0-Weapon
1-Helmet/Chest/Legs/Boots/Gloves/Shield
2-Earring/Ring/Necklace
5-Item
Т.е. неразличается тип оружия, шмота, бижи и т.д.
У кого какие соображения, как эту проблемму можно решить, откуда можно добыть необходимые данные?

2) И ещё один вопрос для другого скрипта. Можно ли и как по окончанию некоторых действий в скрипте воспроизвести звуковой сигнал или вообще как-нибудь проиндицировть завершение некоторых действий? Скрипт длительный и его требуется запускать несколько раз.

Tип: 0x9B (PrivateStoreList)
Pазмер: 153+2
Время прихода: 15:58:01:151
0002 d ObjectId: 1209066281 (0x4810E329)
0006 d packSale: 0 (0x00000000)
000A d adena: 11475059 (0x00AF1873)
000E d ListCount: 4 (0x00000004)
[Начало повторяющегося блока 1/4]
0012 d type2: 1
0016 d objId: 1074830656
001A d ItemId: Majestic Boots[Robe] ID:5788 (0x169C)
001E d count: 1
0022 h h: 0
0024 h Enchant: 0
0026 h h: 0
0028 d BodyPart: 4096
002C d price: 90000000
0030 d storePrice: 1760000
[Конец повторяющегося блока 1/4]
[Начало повторяющегося блока 2/4]
0034 d type2: 1
0038 d objId: 1074830662
003C d ItemId: Majestic Boots[Light Armor] ID:5787 (0x169B)
0040 d count: 1
0044 h h: 0
0046 h Enchant: 0
0048 h h: 0
004A d BodyPart: 4096
004E d price: 90000000
0052 d storePrice: 1760000
[Конец повторяющегося блока 2/4]
[Начало повторяющегося блока 3/4]
0056 d type2: 0
005A d objId: 1074830666
005E d ItemId: Soul Separator ID:236 (0x00EC)
0062 d count: 1
0066 h h: 0
0068 h Enchant: 0
006A h h: 0
006C d BodyPart: 128
0070 d price: 150000000
0074 d storePrice: 27000000
[Конец повторяющегося блока 3/4]
[Начало повторяющегося блока 4/4]
0078 d type2: 0
007C d objId: 1074830667
0080 d ItemId: Carnage Bow ID:288 (0x0120)
0084 d count: 1
0088 h h: 0
008A h Enchant: 0
008C h h: 0
008E d BodyPart: 16384
0092 d price: 65000000
0096 d storePrice: 18300000
[Конец повторяющегося блока 4/4]

Добавлено через 8 часов 41 минуту
Ещё один вопрос возник. А не видел ли кто-нибудь скрипты или какие-нибудь их куски с вбитым сопостовлением названия итема его ID? Можно зделать и самому, но долго.

NLObP
12.06.2009, 00:33
сопостовлением названия итема его ID?
Надо смотреть на методы TStringList и Tstring
{В TStringList и Tstring -> Name=Value
123=ghjdthrf
}
var
WalkerScript: TStringList;

procedure Init; //Вызывается при включении скрипта
var
i, j :integer;
begin
WalkerScript:=TStringList.Create;
//загружаем скрипт валкера из файла
WalkerScript.LoadFromFile(PathWalkerScript+NameWal kerScript);
end;

function GetValues(ValName: string): string;
begin
result:=WalkerScript.Values[ValName];
end;
//.................................................. ............................
function GetNames(Value: string): string;
begin
result:=WalkerScript.Names[strtoint(Value)];
end;
//.................................................. ............................
procedure SetValues(ValName: string; Value: string);
begin
WalkerScript.Values[ValName]:=Value;
end;
//.................................................. ............................
procedure SetNames(Value: string; Name: string);
begin
WalkerScript.Names[strtoint(Value)];
end;