вот сам скрип который точит АРКУ и закупает точки и саму арку
Сейчас он не закупает не точки не арку
выручайте очень прошу!
"//скрипт на точ AM.
program Enchant;
Const
CharName = 'IIAIIPUKA' ; //имя перса (лучше всего гном, твинк на другом акке
)
ScrollID = 959 ; //ID итема кторый точишь (НЕ ТРОГАТЬ!)
ItemID = 6608 ; //ID точки (НЕ ТРОГАТЬ!)
EnchantTarget = 17 ; //на сколько точить - лимит точки. Больше ту шину не тронет.
MaxScrolls = 26 ; //Кол-во свитков - сколько будет докупать
MaxItems = 2 ; //Кол-во итемов - сколько будет докупать
TimerInterval = 350; //Интервал между заточками (НЕ ТРОГАТЬ!)
Var
ItemBase : Array[1..116,1..4] of integer ; // ItemID, ObjId, void, void
ItemCount : integer ;
ItemToEnchant, Scroll : Integer ;
Timer : TTimer ;
Enabled : boolean ;
procedure BuyItem ;
Var
i : integer ;
begin
buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 35 00 38 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
for i := 1 to MaxItems do
Begin
buf := hstr('A7 2E 02 00 00 0D 00 00 00 01 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
End ;
end ;
procedure BuyScroll ;
Var
i : integer ;
begin
buf := hstr('21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 39 00 30 00 00 00') ;
SendToServerEx(CharName) ;
delay(500) ;
For i := 1 to MaxScrolls do
Begin
buf := hstr('A7 4E 02 00 00 11 00 00 00 01 00 00 00 ') ;
sendtoserverEx(CharName) ;
delay(500) ;
End ;
end ;
Procedure GetItemBase ;
Var
i : integer ;
ReadIndex : integer ;
Begin
Timer.Enabled := False ;
For i := 1 to 8 do
Begin
ItemBase[i,1] := 0 ;
ItemBase[i,2] := 0 ;
ItemBase[i,3] := 0 ;
ItemBase[i,4] := 0 ;
End ;
ReadIndex := 4 ;
ItemCount := ReadH(ReadIndex) ;
For i := 1 to ItemCount do
Begin
ReadH(ReadIndex) ;
ItemBase[i,2] := ReadD(ReadIndex) ; //objID
ItemBase[i,1] := ReadD(ReadIndex) ; //ItemID
ReadD(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadD(ReadIndex) ;
ItemBase[i,3] := ReadH(ReadIndex) ; //EnchLvl
ReadH(ReadIndex) ;
End ;
Timer.Enabled := true ;
End ;
Procedure FindItemToEnchant ;
Var
I : Integer ;
Begin
ItemToEnchant := 0 ;
For i := 1 to 80 do
Begin
If (ItemBase[i,1] = ItemID) and (ItemBase[i,3] < EnchantTarget) then
Begin
ItemToEnchant := ItemBase[i,2] ;
Exit ;
End ;
End ;
End ;
Procedure FindScroll ;
Var
I : Integer ;
Begin
Scroll := 0 ;
For i := 1 to 80 do
Begin
If (ItemBase[i,1] = ScrollID) then
Begin
Scroll := ItemBase[i,2] ;
Exit ;
End ;
End ;
End ;
Procedure EnchantItem ;
Begin
buf := hstr('14') ;
WriteD(Scroll) ;
WriteD(0) ;
SendToServerEx(CharName) ;
delay(600) ;
buf := hstr('58') ;
WriteD(ItemToEnchant) ;
SendToServerEx(CharName)
End ;
Procedure OnTimer(Sender : TObject) ;
Var
i : Integer ;
Begin
Timer.Enabled := False ;
FindItemToEnchant ;
FindScroll ;
If (ItemToEnchant <> 0) and (Scroll <> 0) then
EnchantItem
Else
Begin
If Scroll = 0 then BuyScroll ;
If ItemToEnchant = 0 then BuyItem ;
buf:=hstr('0F');
SendToServerEx(CharName);
End ;
Timer.Enabled := True ;
End ;
Procedure Init ;
Var
i : Integer ;
Begin
Timer := TTimer.Create(nil) ;
Timer.Interval := TimerInterval ;
Timer.Enabled := False ;
Timer.Ontimer := @OnTimer ;
buf:=hstr('0F');
SendToServerEx(CharName);
End ;
Procedure Free ;
Begin
Timer.Free ;
End ;
{Begin
if FromServer then
Begin
if pck[1] = #$1B then
Begin
GetItemBase ;
Timer.Enabled := True ;
End ;
End ;
End. }
Procedure UpdateItemBase ;
Var
ReadIndex : Integer ;
Count : Integer ;
i, j : Integer ;
CItem : Integer ;
UpdType : integer ;
ObjID, IID, IC, EnchLvl : integer ;
Begin
ReadIndex := 2 ;
Count:=ReadH(ReadIndex) ;
For i := 1 to Count do
Begin
UpdType := ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ObjID := ReadD(ReadIndex) ;
IID := ReadD(ReadIndex) ;
ReadD(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
ReadD(ReadIndex) ;
EnchLvl := ReadH(ReadIndex) ;
ReadH(ReadIndex) ;
Case UpdType of
1 : Begin
For j := 1 to 80 do
If ItemBase[j,1] = 0 then
Begin
ItemBase[j,1] := IID ;
ItemBase[j,2] := ObjID ;
ItemBase[j,3] := EnchLvl ;
j := 80 ;
End ;
End ;
2 : Begin
For j := 1 to 80 do
Begin
If ItemBase[j,2] = ObjID then
Begin
ItemBase[j,3] := EnchLvl ;
j := 80 ;
End ;
End ;
End ;
3 : Begin
For j := 1 to 80 do
Begin
if ItemBase[j,2] = ObjID then
Begin
ItemBase[j,1] := 0 ;
ItemBase[j,2] := 0 ;
ItemBase[j,3] := 0 ;
ItemBase[j,4] := 0 ;
j := 80 ;
End ;
End ;
End ;
End ;
End ;
End ;
Begin
If FromServer then
Begin
If pck[1] = #$27 then UpdateItemBase ;
If pck[1] = #$1B then GetItemBase ;
End ;
End .
"
Помогите решить проблему
по всей видимости как я понял то ошибка в коде "21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 35 00 38 00 00 00" на закупку ам
и ошибка в коде "21 6D 00 65 00 6E 00 75 00 5F 00 73 00 65 00 6C 00 65 00 63 00 74 00 3F 00 61 00 73 00 6B 00 3D 00 2D 00 33 00 30 00 33 00 26 00 72 00 65 00 70 00 6C 00 79 00 3D 00 35 00 39 00 30 00 00 00" на закупку точек S:grade weapon