Вопрос, а каким образом лучше реализовать автодетект наличия на себе селф бафов(ака Батл Роар, Рэйдж у дестроера) и соответсвенно при обнаружении отсутсвия таковых и при условии что бафы откатились,юзать их снова?
//мб вопрос ламерский и не в то теме Оо
если я не ошибаюсь.. то... клиент от сервера получает инфу об наличии бафов тока в момент их наложения.. в пакете ЭБНОРМАЛ СТАТУС АПДЕЙТ.. возможно етот пакет приходит еще когдато.. тока хз когда.. в нем циклом перечисляются наложенные бафы и время до их окончания.. и еще чета.. стартонув скрипт в момент когда уже бафы- лежат- неимеет смысла так как ты неполучиш пакет ЭБНОРМАЛ СТАТУС АПДЕЙТ.. имеет смысл скрипт запускать заранее.. перед бафом.. тогда возможно отслеживать все наложенные бафы..
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
ПВП помошник, 4 в одном: таргет(при ударе), цп, контрл, радар
Цитата:
автоцп- пьет банки если цп на Delta меньше макс.
автоконтрл - контрол постоянно зажат
автотаргет - берет на таргет того кто тя стукнул (выключаеться когда ты сам у себя на таргете)
авторадар - синяя стрлочка над головой показывающая на цель.
Включение/выключение функций в клиенте ("Соц. Да").
delphi Код:
const
Name='Mamy';
var
CurHP,CurCP,MaxCP,MyID,TargetID,o,x,y,z,Delta: integer;
CPuse,action,Msg: string;
TimerCP,TimerHP: TTimer;
AutoCtrl,AutoCP,AutoTarget,AutoRadar: boolean;
procedure Init;
begin
TimerCP:=TTimer.Create(nil);
TimerCP.OnTimer:=@OnTimerCP;
TimerCP.enabled:=false;
//configs
TimerCP.interval:=1000; //cpuse delay
AutoCtrl:=true; //autoctrl default
AutoCP:=true; //autocp default
AutoTarget:=false; //autotarget default
AutoRadar:=true; //autoradar default
Delta:=200; //if (currentCP)<(maxCP-delta) then cpuse
Say;
end;
procedure OnTimerCP(Sender: TObject);
begin
buf:=CPuse;
SendToServerEx(Name);
end;
procedure Free;
begin
TimerCP.free;
CPuse:='';
end;
function booleantostr(b:boolean):string;
beginif b then
result:='True'else
result:='False';
end;
procedure Say;
var s:string;
beginif autoctrl then
s:='<tr><td>AutoCtrl=<a action="bypass autoctrl_off">'+booleantostr(autoctrl)+'</a></td></tr>'else
s:='<tr><td>AutoCtrl=<a action="bypass autoctrl_on">'+booleantostr(autoctrl)+'</a></td></tr>';
if autocp then
s:=s+'<tr><td>AutoCP=<a action="bypass autocp_off">'+booleantostr(autocp)+'</a></td></tr>'else
s:=s+'<tr><td>AutoCP=<a action="bypass autocp_on">'+booleantostr(autocp)+'</a></td></tr>';
if autotarget then
s:=s+'<tr><td>AutoTarget=<a action="bypass autotarget_off">'+booleantostr(autotarget)+'</a></td></tr>'else
s:=s+'<tr><td>AutoTarget=<a action="bypass autotarget_on">'+booleantostr(autotarget)+'</a></td></tr>';
if autoradar then
s:=s+'<tr><td>AutoRadar=<a action="bypass autoradar_off">'+booleantostr(autoradar)+'</a></td></tr>'else
s:=s+'<tr><td>AutoRadar=<a action="bypass autoradar_on">'+booleantostr(autoradar)+'</a></td></tr>';
s:=s+'<tr><td><br><center><img src="L2UI_CH3.herotower_deco" width=256 height=32></center><br><br></td></tr>';
if cpuse=''then
s:=s+'<tr><td>CPuse=<font color="LEVEL">[!] Выпей бутыль ЦП [!]</font></td></tr>'else
s:=s+'<tr><td>CPuse=<a action="bypass autouse">'+strtohex(cpuse)+'</a></td></tr>';
buf:=hstr('0F 01 00 00 00');
WriteS('<html><title>PVP помошнегг (с) raid</title><body><center><img src="L2UI_CH3.herotower_deco" width=256 height=32></center><br><table width=100%>'+s+'</table><br><br><br><br><br><br>'+
'<br><center><img src="L2UI_CH3.herotower_deco" width=256 height=32><br><br><br><br><br><br>(c) raid aka Mamy</center></body></html>');
WriteD(0);
SendToClientEx(Name);
end;
function StrToHex(packet: string):string;
var
i:integer;
tmp:byte;
function ByteToHex(b: byte): Char;
beginif b<10then result:=chr(b+$30)else result:=chr(b+$37);
end;
begin
result:='';
for i:=1tolength(packet)dobegin
tmp:=ord(packet[i])div16;
result:=result+ByteToHex(tmp);
tmp:=ord(packet[i]) - tmp*16;
result:=result+ByteToHex(tmp)+' ';
end;
end;
beginif FromClient and(ConnectName=Name)and(pck[1]=#$14)and(CPuse='')thenbegin
CPuse:=pck;
Say;
pck:='';
exit;
end;
if FromServer and(pck[1]+pck[6]=#$0E#$04)thenbegin
MyID:=ReadD(2);
CurHP:=ReadD(14);
CurCP:=ReadD(30);
MaxCP:=ReadD(38);
end;
if FromServer and(pck[1]=#$A6)thenbegin
TargetID:=ReadD(2);
end;
{ взятие на таргет, когда берут на таргет вас (заменитьна то что ниже)
if FromServer and (pck[1]=#$29) and autotarget then begin
o:=ReadD(2);
if (ReadD(6)=MyID)and(o<>MyID)and(o<>TargetID) then begin
x:=ReadD(10);
y:=ReadD(14);
z:=ReadD(18);
delay(100);
buf:=hstr('04');
WriteD(o);
WriteD(x);
WriteD(y);
WriteD(z);
WriteC(0);
SendToServerEx(Name);
end;
end;
}if FromServer and(pck[1]=#$05)and autotarget thenbegin
o:=ReadD(2);
if(ReadD(6)=MyID)and(o<>MyID)and(o<>TargetID)thenbegin
x:=ReadD(15);
y:=ReadD(19);
z:=ReadD(23);
delay(100);
buf:=hstr('04');
WriteD(o);
WriteD(x);
WriteD(y);
WriteD(z);
WriteC(0);
SendToServerEx(Name);
end;
end;
if(CurCP<MaxCP-Delta)and(CPuse<>'')and(CurHP>0)and AutoCP then
TimerCP.enabled:=trueelse
TimerCP.enabled:=false;
if FromClient and(ConnectName=Name)and(pck=HStr('1B 06 00 00 00'))thenbegin
Say;
pck:='';
exit;
end;
if FromServer and(pck[1]=#$61)and AutoRadar thenbegin
x:=ReadD(6);
y:=ReadD(10);
z:=ReadD(14);
buf:=#$EB;
WriteD(0);
WriteD(1);
WriteD(x);
WriteD(y);
WriteD(z);
SendToClientEx(Name);
end;
if FromClient and(ConnectName=Name)and(pck[1]=#$2F)and AutoCtrl then
pck[6]:=#$01;
if FromClient and(ConnectName=Name)and(pck[1]=#$21)thenbegin
action:=ReadS(2);
ifpos('auto',action)>0thenbeginif action='autocp_on'then autocp:=true;
if action='autocp_off'then autocp:=false;
if action='autoctrl_on'then autoctrl:=true;
if action='autoctrl_off'then autoctrl:=false;
if action='autotarget_on'then autotarget:=true;
if action='autotarget_off'then autotarget:=false;
if action='autoradar_on'then autoradar:=true;
if action='autoradar_off'thenbegin
autoradar:=false;
buf:=#$EB;
WriteD(0);
WriteD(1);
WriteD(0);
WriteD(0);
WriteD(0);
SendToClientEx(Name);
end;
if action='autouse'then CPuse:='';
Say;
pck:='';
end;
end;
end.
Еще один маленький вопросик))Запускаю точку все работает точит а когда все предметы ломаются и становятся на +0 все виснет и прога не отвечает(((Что надо изменить в скрипте /Автоматизация заточки предметов до необходимого уровня by NLObP
//version 0.4 от 27.06.2008г.
и еще разок напишите плз как скорость менять и куда енто вписывать,?