Вот слямдил идею навено у -=mks=- решил создать авто бафера. Задача у него за разные суммы кидать разные бафы, те зок воин, 25 лучнег, 20 маг. так вот это я осилил(в скрипте тока на 30 пока прописал, дальше не делал уперся в пару вопросов). вопрос как сделать что бы он кидал после трейда патю. 29 пакет крутил и так и сяк 8)
после бафа выходил из пати, ну и ессно не бежал за ним дальше, решить это наверное можно кидать таргет на сешку что рядом будет стоять. Вопрос второй как бы прикрутить, те к сумме например 30к чтобы сешка кидала вампирик, на 20 вилд и эмпавер. И уже из области фантастики заливала манку пп.
зы
Этот скрипт работает криво, бафает как хочет 8) те я тестил тока первую часть на 30к (тк бафы прописал тока там, остальные не правил пока)те криво, он может кидать в разном порядке и не всегда кидает все бафы.
понятное дело что тут ошибки, профи прошу подправить, подсказать идею как осуществить мою задумку. Пасибо за внимание..........
delphi Код:
//by mks//Бот баффер PP, баффает за 30-20кconst//баффы
b1='2F 10 04 00 00 00 00 00 00 00'; // Shield
b2='2F 26 04 00 00 00 00 00 00 00'; // Berserker Spirit
b3='2F 3D 04 00 00 00 00 00 00 00'; // Acumen
b4='2F B4 04 00 00 00 00 00 00 00'; // Wind Walk
b5='2F 36 04 00 00 00 00 00 00 00'; // Concentration
b6='2F 15 04 00 00 00 00 00 00 00'; // Bless the Body
b7='2F 18 04 00 00 00 00 00 00 00'; // Bless the Soul
b8='2F 14 04 00 00 00 00 00 00 00'; // Regeneration
b9='2F 0B 04 00 00 00 00 00 00 00'; // ментал
b10='2F 35 04 00 00 00 00 00 00 00'; // фокус
b11='2F 36 04 00 00 00 00 00 00 00'; // кон
b12='2F A7 04 00 00 00 00 00 00 00'; // резист к огню
b13='2F 14 04 00 00 00 00 00 00 00'; // ХП реген
b14='2F 0C 04 00 00 00 00 00 00 00'; // маджик барьер
b15='2F 6C 05 00 00 00 00 00 00 00'; // гритер ПА
b16='2F DA 04 00 00 00 00 00 00 00'; // деф виспер
b17='2F D8 04 00 00 00 00 00 00 00'; // гвидансvar
Target: string;
prof,x,z,y: integer;
timer1: TTimer;
procedure Init;
begin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer;
timer1.enabled:=true;
timer1.interval:=3500;
end;
procedure OnTimer(Sender: TObject);
begincase x of1: begin
buf:=hstr(b1);
sendtoserver;
x:=x+1;
end;
2: begin
buf:=hstr(b2);
sendtoserver;
x:=x+1;
end;
3: begin
buf:=hstr(b3);
sendtoserver;
x:=x+1;
end;
4: begin
buf:=hstr(b4);
sendtoserver;
x:=x+1;
end;
5: begin
buf:=hstr(b5);
sendtoserver;
x:=x+1;
end;
6: begin
buf:=hstr(b6);
sendtoserver;
x:=x+1;
end;
7: begin
buf:=hstr(b7);
sendtoserver;
x:=x+1;
end;4: begin
buf:=hstr(b4);
sendtoserver;
x:=x+1;
end;
8: begin
buf:=hstr(b8);
sendtoserver;
x:=x+1;
end;
9: begin
buf:=hstr(b9);
sendtoserver;
x:=x+1;
end;
10: begin
buf:=hstr(b10);
sendtoserver;
x:=x+1;
end;
11: begin
buf:=hstr(b11);
sendtoserver;
x:=x+1;
end;
12: begin
buf:=hstr(b12);
sendtoserver;
x:=x+1;
end;
13: begin
buf:=hstr(b13);
sendtoserver;
x:=x+1;
end;
14: begin
buf:=hstr(b14);
sendtoserver;
x:=x+1;
end;
15: begin
buf:=hstr(b15);
sendtoserver;
x:=x+1;
end;
16: begin
buf:=hstr(b16);
sendtoserver;
x:=x+1;
end;
17: begin
buf:=hstr(b17);
sendtoserver;
x:=0;
end;
end;
begincase z of1: begin
buf:=hstr(b5);
sendtoserver;
z:=z+1;
end;
2: begin
buf:=hstr(b6);
sendtoserver;
z:=z+1;
end;
3: begin
buf:=hstr(b7);
sendtoserver;
z:=z+1;
end;
4: begin
buf:=hstr(b8);
sendtoserver;
z:=0;
end;
end;
begincase y of1: begin
buf:=hstr(b1);
sendtoserver;
y:=y+1;
end;
2: begin
buf:=hstr(b2);
sendtoserver;
y:=y+1;
end;
3: begin
buf:=hstr(b3);
sendtoserver;
y:=y+1;
end;
4: begin
buf:=hstr(b4);
sendtoserver;
y:=0;
end;
end;
end;
end;
end;
procedure Free;
begin
timer1.Free;
end;
///////////////////////////////////////////////////////////////////beginif FromServer and(pck[1]=#$5E)and(x=0)then//подкорректил немного, что б бот не принимал трэйд когда кого-то уже баффает 06.08.07begin
Target:=#$04+pck[2]+pck[3]+pck[4]+pck[5];
buf:=hstr('44 01 00 00 00');
sendtoserver; //если кидают трэйд, то приниматьend;
if fromclient and(pck[1]=#$44)then pck:=''; {клиент почему-то иногда автоматом отылает кэнсл трэйд, поэтому убиватю этот пакет}if fromserver and(pck[1]=#$21)thenbeginif pck[14]+pck[15]=#$30#$75then{если в трэйд положили 30к}begin
buf:=hstr('17 01 00 00 00');//подтвердить трэйд
prof:=1;
end;
if pck[14]+pck[15]=#$A8#$61then{если в трэйд положили 25к}begin
buf:=hstr('17 01 00 00 00');//подтвердить трэйд
prof:=2;
end;
if pck[14]+pck[15]=#$20#$4E then{если в трэйд положили 20к}begin
buf:=hstr('17 01 00 00 00');//подтвердить трэйд
prof:=3;
end;
if prof=0then buf:=hstr('17 00 00 00 00');//отмена трэйда
sendtoserver;
end;
if FromServer and(pck[1]+pck[2]=#$22#$01)thenbegin
buf:=target;
sendtoserver;
if prof=1thenbegin
x:=1;
prof:=0;
end;
if prof=2thenbegin
z:=1;
prof:=0;
end;
if prof=3thenbegin
y:=1;
prof:=0;
end;
end;
end.
Последний раз редактировалось NLObP, 07.05.2008 в 01:44.
Причина: вставил тэги [HIGHLIGHT="delphi"] ... [/HIGHLIGHT]
гон у вас это а не бот, по всем правилам
что оформления кода
что написанию бота
Любой нормальный сервер сразу забанит
по оформлению согласен....
а по поводу что что сервер сразу забанит, единственное место где серв может прочухать что это бот - пакет Action здесь отправляется не полный, ID таргета есть, а координат нет(Target:=#$04+pck[2]+pck[3]+pck[4]+pck[5], а это не сложно поправить....
Uses'.\Scripts\OlegDX by USES.txt';
const
HTML1='<html><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><font color="LEVEL">Меню инвентаря "что я типо знаю"'+
'</font><br><font color="LEVEL">Автор: OlegDX</font><img src="L2UI.SquareWhite" width=260 height=1><img src="L2UI.SquareBlank" width=260 height=4><br1>';
HTML2='<br><img src="L2UI.SquareWhite" width=260 height=1><img src="L2UI.SquareBlank" width=260 height=4><br1></center></body></html>';
////////////////////////////////////////////////////////////////////////////////var
SkillBaffCount,BaffID,BaffType,LiderID:Integer;
SkillBaff:arrayofinteger;
Procedure BaffListAdd(SkillID:Integer;SkillName:String);
BeginInc(SkillBaffCount);
SetLength(SkillBaff,SkillBaffCount);
SkillBaff[SkillBaffCount-1]:=SkillID;
End;
Procedure ReBaffListCreate(BaffT:Integer=0);
Begin
BaffType:=BaffT;
SkillBaffCount:=0;
BaffListAdd(1085,'ACUMEN');
BaffListAdd(1062,'BERSERK_SPIRIT');
BaffListAdd(1045,'BLESS_OF_BOODY');
BaffListAdd(1048,'BLESS_OF_SOUL');
End;
Procedure BaffListCreate;
Begin
BaffType:=-1;
SkillBaffCount:=0;
BaffListAdd(1085,'ACUMEN');
BaffListAdd(1086,'HASTE');
BaffListAdd(1045,'BLESS_OF_BOODY');
BaffListAdd(1048,'BLESS_OF_SOUL');
BaffListAdd(1036,'MAGIC_BARRIER');
BaffListAdd(1243,'BLESS_SHIELD');
BaffListAdd(1044,'REGENERATION');
//BaffListAdd(1191,'RESIST_FIRE' );
BaffListAdd(1043,'HOLY_WEAPON');
BaffListAdd(1062,'BERSERK_SPIRIT');
//BaffListAdd(1388,'GREATER_MIGTH' );
BaffListAdd(1389,'GREATER_SHIEL');
End;
Procedure UsedBaff(Param:Integer=0);
var N:Integer;Done:Boolean;
BeginCase Param of0,1:BEGIN
DONE:=FALSE;
IF MyObject[ID]=0THENEXIT;
IF Param=0THEN BaffID:=0;
IF BaffID>=SkillBaffCount THEN UsedBaff(2);
WHILE BaffID<SkillBaffCount DOBEGINFOR N:=1TO mySkillCount DOIF(SkillBaff[BaffID]= mySkillList[N-1,2])THENBEGIN DONE:=TRUE;BREAK; END;
INC(BaffID);
IF DONE THENBEGIN
UseSkill(SkillBaff[BaffID-1]);
Break;
END;
END;
End;
2,3,4,5:BeginIF Param=3THEN BaffListCreate;
IF Param=4THEN ReBaffListCreate(0);
IF Param=5THEN ReBaffListCreate(1);
IF Param=2THENBEGIN
BaffID:=SkillBaffCount;
IF BaffType=0THEN SendMSGServer('GoEMP',3);
IF BaffType=1THENBEGIN
SendMSGServer('GoTARGET',3);
buf:=hstr('37 01 00');SendToServer;
Action(LiderID);
UsedBaff(3);
UsedBaff(0);
END;
END;
End;
End;
End;
////////////////////////////////////////////////////////////////////////////////procedure ListSkill;
Var I:Integer; HTMLTEXT:String;
begin
HTMLTEXT:='';
FOR I:=1TO mySkillCount DOBEGINIF mySkillList[I-1,0]=0THENBEGIN
HTMLTEXT:=HTMLTEXT+'<br>'+Format('%s(%.d)',[fListSkill.Values[IntToStr(mySkillList[I-1,2])],mySkillList[I-1,2]]);
END;
END;
ShowHTML(HTML1+HTMLTEXT+HTML2);
end;
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////*** Вызывается при включении скрипта *****************************************procedure Init;
begin
Init_old;
LiderID:=0;
UsedBaff(3);
end;
//*** Вызывается при выключении скрипта ****************************************procedure Free;
begin
free_old;
end;
//////////////////////////////////////////////////////////////////////////////////Основная часть скрипта вызывается при приходе каждого пакета если скрипт включенbegin//----------------------------------------------------------------------------if pck=''thenexit;
//----------------------------------------------------------------------------if FromServer thenbeginCase pck[1] of
#$A6:BEGIN TargetID:=ReadD(2); END;
#$04:BEGIN ReadUserInfo; END;
#$58:BEGIN CreateSkillBase; END;
#$76:BEGINIF ReadD(2)=MyObject[ID] THEN UsedBaff(1); END;
#$49:BEGINIF ReadD(2)=MyObject[ID] THEN UsedBaff(2); END;
#$4A:Begin
PosIndex:=02;
ObjectID :=ReadD(PosIndex);
MesageType:=ReadD(PosIndex);
MesageStrg:=ReadS(PosIndex);
MesageStrg:=ReadS(PosIndex);
Case MesageType of3:BEGINIf(Length(MesageStrg)=4)and(MesageStrg='Baff')Thenbegin
buf:=hstr('37 01 00');SendToServer;
Action(ObjectID);
UsedBaff(3);
UsedBaff(0);
EndElseIf(Length(MesageStrg)=7)and(MesageStrg='akumBAF')Thenbegin
LiderID:=ObjectID;
buf:=hstr('37 01 00');SendToServer;
Action(MyObject[ID]);
UsedBaff(4);
UsedBaff(0);
EndElseIf(Length(MesageStrg)=6)and(MesageStrg='empBAF')Thenbegin
buf:=hstr('37 01 00');SendToServer;
Action(ObjectID);
UsedBaff(5);
UsedBaff(0);
EndElseIf(Length(MesageStrg)=3)and(MesageStrg='tar')Thenbegin
buf:=hstr('37 01 00');SendToServer;
Action(ObjectID);
EndElse;
END;
ENDEND;
end;
endelse//----------------------------------------------------------------------------if FromClient thenbeginCase pck[1] of
#$38:Begin
PosIndex:=02;
MesageStrg:=ReadS(PosIndex);
MesageType:=ReadD(PosIndex);
Case MesageType of//Обычный чат 0:Begin End;//Крик чат 1:Begin End;//торговый чат 8:Begin End;3:Begin//Пати чатIf(Length(MesageStrg)=1)and((MesageStrg[1]='B')or(MesageStrg[1]='b'))Thenbegin
UsedBaff(0);
EndElseIf(Length(MesageStrg)=1)and((MesageStrg[1]='L')or(MesageStrg[1]='l'))Thenbegin
ListSkill;
EndElseEnd;
ElseEnd;
End;
End;
endelse;
end.
////////////////////////////////////////////////////////////////////////////////
Добавлено через 4 минуты
delphi Код:
//xmlNpc:Variant;//xmlNpc:=CreateOleObject('Msxml.DOMDocument');//xmlNpc.Load('.\UserData\itemname-e.xml' );//xmlNpc.documentElement.selectNodes(Format('/itemname/descrt[@id="%d"]/@name',[Inventory[I,3]])).item[0].text;//xmlNpc:=nil;//Uses '.\Scripts\OlegDX by USES.txt';//*****************************************************************FunctionSqr(X:Integer):Integer;
Begin
Result:=X*X;
End;
//*****************************************************************Function StrToHex(Value:String):String;
Var Len,I:Integer;
Begin
Result:='';
Len:=Length(Value);
IF Len>0Then Result:= Format('%.2x',[ord(Value[1])]);
For I:=2to Len do Result:=Result+Format(' %.2x',[ord(Value[i])]);
End;
//*****************************************************************procedure ShowHTML(HTML:String);
begin
buf:=#$0F;
WriteD(5);
WriteS(HTML);
WriteD(0);
SendToClient;
end;
//*****************************************************************procedure SendMSGClient(value:string;Types:Integer=10);
begin
buf:=#$4A;
WriteD(0);
WriteD(Types);
WriteS('');
WriteS(value);
SendToClient;
end;
//*****************************************************************Procedure SendMSGServer(value:String;Types:Integer=0);
Begin
buf:=#$38;
WriteS(value);
WriteD(Types);
SendToServer;
End;
//******************************************************************************procedure DoorAction(DoorID:Cardinal;Status:Cardinal);
begin
buf:=#$4D;
WriteD(DoorID);
WriteD(Status);
WriteD(0);
WriteD(1);
WriteD(0);
SendToClient;
end;
//******************************************************************************procedure Action(ObjectID:Cardinal;Action:Integer=0;X,Y,Z:Integer=0);
begin
buf:=#$04;
WriteD(ObjectID);
WriteD(X);
WriteD(Y);
WriteD(Z);
WriteC(Action);
SendToServer;
end;
//*****************************************************************procedure UseItems(ObjectID:Cardinal;shift:Cardinal=0);
begin
buf:=#$14;
WriteD(ObjectID);
WriteD(shift);
SendToServer;
end;
//******************************************************************************procedure UseSkill(SkillID:Integer;Ctrl:Integer=0;Shift:byte=0);
begin
buf:=#$2F;
WriteD(SkillID);
WriteD(Ctrl );
WriteC(Shift);
SendToServer;
end;
//*****************************************************************Procedure MoveXYZ(X1,Y1,Z1,X2,Y2,Z2:Integer);
BeginIF(X1=X2)and(Y1=Y2)and(Z1=Z2)ThenExit;
buf:=#$01;
WriteD(X1);WriteD(Y1);WriteD(Z1);
WriteD(X2);WriteD(Y2);WriteD(Z2);
WriteD(01);
SendToServer
End;
//******************************************************************************// /---|H|---\// [ >>>|1|_______________|3|___________|2|>> ]Function GetMoveXYZ(X1,Y1,Z1,X2,Y2,Z2,H:Integer; var X,Y,Z:Integer):Boolean;
var AB:Double;
Begin
Result:=False;
AB:=Sqrt(sqr(X2-X1)+sqr(Y2-Y1)+sqr(Z2-Z1));
IFabs(AB)<=H THENEXIT;
X:=X2-round(((X2-X1)*H)/AB);
Y:=Y2-round(((Y2-Y1)*H)/AB);
Z:=Z2-round(((Z2-Z1)*H)/AB);
Result:=True;
End;
//******************************************************************************////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Const ID=0;Xnow=1;Ynow=2;Znow=3;Xold=4;Yold=5;Zold=6;
Var//--------------------------------------------------------------------------
PosIndex,ObjectID,TargetID,X,Y,Z,W:Integer;
MesageStrg:String;MesageType:Integer;
MyObject: array[0..7] ofInteger; //ID,X,Y,Z,Xd,Yd,Zd
MyTarget: array[0..7] ofInteger; //ID,X,Y,Z,Xd,Yd,Zd
MySkillCount:Integer;MySkillList:array[0..250,0..3] ofInteger;//Group,Lvl,SkillID,Reserved
fListSkill,fListItems,fListMessg:TStringList;//:TStrings;//--------------------------------------------------------------------------
MyItemsCount:integer; //количество занятых слотов/количество вещей
MyInventory: array[1..250,1..10]of integer; //массив инвентаря//инвентарь //1 - ItemType1 //2 - ObjectID //3 - ItemID //4 - ItemCount //5 - ItemType2 //6 - CustType1 //7 - IsEquipped //8 - BodyPart //9 - EnchantLevel //10 - CustType2//--------------------------------------------------------------------------////////////////////////////////////////////////////////////////////////////////Procedure CreateSkillBase;
Begin
PosIndex:=2;
mySkillCount:=ReadD(PosIndex);
For W:= 1to mySkillCount dobegin
mySkillList[W-1,0]:=ReadD(PosIndex);
mySkillList[W-1,1]:=ReadD(PosIndex);
mySkillList[W-1,2]:=ReadD(PosIndex);
mySkillList[W-1,3]:=ReadC(PosIndex);
End;
End;
//******************************************************************************procedure ReadUserInfo;
Begin
PosIndex:=2;
MyObject[Xold]:=ReadD(PosIndex); MyObject[Xnow]:=MyObject[Xold];
MyObject[Yold]:=ReadD(PosIndex); MyObject[Xnow]:=MyObject[Yold];
MyObject[Zold]:=ReadD(PosIndex); MyObject[Xnow]:=MyObject[Zold];
W:=ReadD(PosIndex);
MyObject[ ID]:=ReadD(PosIndex);
End;
//******************************************************************************procedure Init_old;
Begin
MyItemsCount:=0;
MySkillCount:=0;
MyObject[ID]:=0;
MyTarget[ID]:=0;
fListMessg:=nil;fListMessg:=TStringList.Create;//TStrings.Create;
fListItems:=nil;fListItems:=TStringList.Create;//TStrings.Create;
fListSkill:=nil;fListSkill:=TStringList.Create;//TStrings.Create;
fListMessg.LoadFromFile('.\sysmsgid.ini');
fListItems.LoadFromFile('.\itemsid.ini');
fListSkill.LoadFromFile('.\skillsid.ini');
//ShowTab;UserTab.caption:=fListSkill.Values['150']End;
procedure Free_Old; //Вызывается при выключении скриптаbegin
HideTab;
fListMessg.free;fListMessg:=nil;
fListItems.free;fListItems:=nil;
fListSkill.free;fListSkill:=nil;
end;
//******************************************************************************//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////***процедура считывания параметров одного предмета ***************************//******************************************************************************procedure ItemAction(var Position:integer;CurrentSlot:integer);
begin
MyInventory[CurrentSlot,01]:=ReadH(Position);//ItemType1
MyInventory[CurrentSlot,02]:=ReadD(Position);//ObjectID
MyInventory[CurrentSlot,03]:=ReadD(Position);//ItemID
MyInventory[CurrentSlot,04]:=ReadD(Position);//ItemCount
MyInventory[CurrentSlot,05]:=ReadH(Position);//ItemType2
MyInventory[CurrentSlot,06]:=ReadH(Position);//CustType1
MyInventory[CurrentSlot,07]:=ReadH(Position);//isEquipped
MyInventory[CurrentSlot,08]:=ReadD(Position);//BodyPart
MyInventory[CurrentSlot,09]:=ReadH(Position);//EnchantLevel
MyInventory[CurrentSlot,10]:=ReadH(Position);//CustType2end;
//******************************************************************************//*** Пакет от сервера 1В - создаем или модифицируем весь инвентарь ************//******************************************************************************procedure ItemBaseCreate;
var i,PosInt: integer;
begin//Считываем количество вещей в инвентаре
MyItemsCount:=ReadC(4);PosInt:=6;
for i:=1to MyItemsCount do ItemAction(PosInt,i);
end;
//******************************************************************************//*** Пакет от сервера 27 - действия (доавить/изменить/удалить)//*** над одним/несколькими предметами//******************************************************************************procedure ItemBaseUpdate;
var I,J,N,count,PosInt:integer;
begin//Считываем количество изменяемых предметов
Count:=ReadC(2);
for I:=1to Count dobegin
N:=(I-1)*30+4;PosInt:=N+2;
Case ReadC(N)of01:begin//ADDInc(MyItemsCount);//Увеличиваем количество занятых слотов
ItemAction(PosInt,MyItemsCount);//Добавляем предметend;
02:begin//UPD
N:=ReadD(PosInt+2);
for J:=1to MyItemsCount do//Ищем изменяемый предмет по ObjectID в списке обековIf MyInventory[J,2]=N Thenbegin ItemAction(PosInt,j);break;end;
end;
03:begin//DEL
N:=ReadD(PosInt+2);
for J:=1to MyItemsCount do//Ищем изменяемый предмет по ObjectID в списке обековIf MyInventory[J,2]=N Thenbegin
MyInventory[J,01]:=MyInventory[MyItemsCount,01];
MyInventory[J,02]:=MyInventory[MyItemsCount,02];
MyInventory[J,03]:=MyInventory[MyItemsCount,03];
MyInventory[J,04]:=MyInventory[MyItemsCount,04];
MyInventory[J,05]:=MyInventory[MyItemsCount,05];
MyInventory[J,06]:=MyInventory[MyItemsCount,06];
MyInventory[J,07]:=MyInventory[MyItemsCount,07];
MyInventory[J,08]:=MyInventory[MyItemsCount,08];
MyInventory[J,09]:=MyInventory[MyItemsCount,09];
MyInventory[J,10]:=MyInventory[MyItemsCount,10];
Dec(MyItemsCount);//Уменьшаем количество занятых слотовbreak;
endend;
end;
end;
end;
//******************************************************************************//Получить ObjectID предмета, зная его ItemsID *********************************function ItemBaseGetInfo(ItemsID:integer):integer;
var c1:integer;
begin
Result:=-1;
for c1:=1to MyItemsCount doif ItemsID=MyInventory[c1,3] thenbegin
Result:=MyInventory[c1,2];
exit;//Если нашли - выходим из циклаend;
end;
//Использовать предмет с заданным ItemsID **************************************Function ItemBaseUseItem(ItemsID:integer):Boolean;
var c1:integer;
begin
Result:=False;
for c1:=1to MyItemsCount doif ItemsID=MyInventory[c1,3] thenbegin
Result:=True;
UseItems(MyInventory[c1,2]);
//buf:=#$14; WriteD(MyInventory[c1,2]);WriteD(0);SendToServer;Break; //Чтоб не использовать несколько предметов с одинаковым ItemID (например заточки)end;
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////BeginEnd.
Добавлено через 11 минут
сразу извеняюсь за разпрос кодо
но тут правило
1)все команды серверу выносятся в проседуры (а не строчки хекс кода)
2) незя использовать баф который твой чар незнает (нужно проверить что он знаит и от эирго отталкиватся)
3) нужно следить за задержками и ответами сервера
Последний раз редактировалось NLObP, 30.04.2008 в 19:50.
Причина: Добавлено сообщение
OlegDX, никто ж не оспаривает твои способности))
кстати при использовании case не обязательно ставит begin и end
if FromServer then //begin <--можно убрать
Case pck[1] of
Последний раз редактировалось mks, 04.05.2008 в 15:46.
Причина: Добавлено сообщение
я скопировал часть скрипта для примера (у меня он состоит с 4 фаилов)
и одновремено работает в пати для ПП БД и ШЕ
"если заметил там есть несколько команд чата" на которые другие боты реагируют
а по поводу бегин и енд у меня есть правило оформления кода
"возможео токо я им пользуюсь неспорю"