PDA

Просмотр полной версии : [VIP] скрипт на автозаточку шмота


Hummel
07.11.2008, 23:53
Скрипт на автозаточку шмота
________________________________________
Скрипт написан для сервера Л2Оникс, где безопасная заточка +180, и можно точить за 10 "хороров" у непися (довольно дорого)

Скрипт сам определяет количество скроллов в инвентаре, и точит предмет, указанным ID... поэтому можно сразу купить 180 скроллов.
недоработки:

-во время работы скрипта клиент и пакетХак повисают на пару минут... эттого никак не избежать.

-иногда, из-за лагов сервера, предмет точится не на указанную величину, а на меньшую. при этом приходится запускать скрипт заново
(лечится увеличением задержки, но при этом время работы, и зависания клиента, существенно увеличивается)

-бижа точится следующим "макаром": запускаем скрипт, вручную точим указанную бижу один раз, далее врубается автоматика (работаю над этим)
-нужно иметь только один предмет с указанным ID в инвентаре

вобщем скрипт сыроват конечно, но всеравно существенно уменьшает затраты времени (или финансов, если точить у непися)...

Для запуска необходимо активировать скрипт и произнести латинскую букву "е" без кавычек в пати-чат!


Перед работой нужно указать в переменных данные:
ItemIDToEncant - ID предмета, который нужно заточить
ScrollID - ID скролла
MaxEnchant - максимальная заточка, при достижении которой скрипт отключится
PHP код:

var
x,i,OID,ItemID,ItemID1,ItemCount,ScrollID,j,k,l,m, temp1,temp2,ItemIDToEncant,MaxEnchant,
ItemOIDToEncant,ItemIDToEncant1,n,f,EnchantLevel,o :Integer;
z,Load,temp:word;
Scrolls:Array[0..299,0..1] of Integer;
procedure Init; //Вызывается при включении скрипта
begin
ItemIDToEncant:=6379;
//9857-Dynasty Two Handed Sword [Focus]
//9864-Dynasty Bow [Guidance]
//6379 Draconic Leather Armor
//6380 Draconic Leather Gloves
//6381 Draconic Leather Boots
//6382 Draconic Leather Helmet
//6656 Earring of Antharas
//6657 Necklace of Valakas
//6658 Ring of Baium
//6659 Zaken's Earring
//6660 Ring of Queen Ant
//6661 Earring of Orfen
//6662 Ring of Core
ScrollID:=960;
//959-EWS
//960-EAS
MaxEnchant:=180;
j:=0;
k:=0;
n:=0;
end;
procedure SendMsg(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClient;
end;
Procedure Enchant(ScrolOID1,ItemOID1:Integer);
begin
buf:=#$14;
WriteD(ScrolOID1);
WriteD(0);
SendToServer;
delay(500);
buf:=#$58;
WriteD(ItemOID1);
SendToServer;
delay(30);
end;
begin
//Для запуска скрипта скажите "е" без кавычек на английской раскладке в пати-чат
if FromClient and (pck=#$38#$31#$00#$00#$00#$03#$00#$00#$00) then
begin
SendMsg('Процесс заточки начался! Это может занять от нескольких секунд, до 2-3 минут. Пожалуйста, подождите!');
SendMsg('В это время может замечаться зависание клиента, это нормально.');
buf:=#$0F;
SendToServer;
n:=1;
o:=1;
end;
if FromServer and (pck[1]=#$1B) and (o=1) then
begin
i:=4;
l:=0;
o:=0;
Load:=ReadH(i);
For x:=1 to Load do
begin
temp:=ReadH(i);
OID:=ReadD(i);
ItemID:=ReadD(i);
ItemCount:=ReadD(i);
if ItemID=ScrollID then
begin
Scrolls[l,0]:=ItemID;
Scrolls[l,1]:=OID;
l:=l+1;
end;
if ItemID=ItemIDToEncant then
begin
ItemOIDToEncant:=OID;
ItemIDToEncant1:=ItemID;
end;
i:=i+22;
end;
buf:=#$14;
WriteD(ItemOIDToEncant);
WriteD(0);
SendToServer;
end;
if FromServer and (pck[1]=#$27) and (n=1) then
begin
f:=12;
ItemID1:=ReadD(f);
temp:=ReadH(f);
temp:=ReadH(f);
temp:=ReadH(f);
temp:=ReadH(f);
temp:=ReadH(f);
temp1:=ReadD(f);
EnchantLevel:=ReadH(f);
if (ItemID1=ItemIDToEncant1) and (EnchantLevel<MaxEnchant) then
begin
n:=0;
For m:=0 to 299 do
begin
temp1:=Scrolls[m,0]; //ItemID
temp2:=Scrolls[m,1]; //OID
if temp1 <> 0 then
begin
Enchant(temp2,ItemOIDToEncant);
end;
end;
end;
end;

end.