парни помогите срочно!!! можноли взять в таргет моба но только чтобы он не аттакавал типо как командой "/target и имя моба" ?
мышкой по мобу жать пробуй.. а в топ спрашивай вопросы по существу что именно не выходит..
Добавлено спустя 8 минут 7 секунд:
каждый новый очередной-тупой-неграмотнопоставленый вопрос расширяет топ на 3 листа.. сейчас вот люди тока разобрались( спомощью многочисленных вопросов и подсказок тебе) что оказывается тебе нужно объяснить механизм как получает клиент информацию об местоположении мобов.. ну сматри допустим ты в дионе.. твой клиент при етом незнает об местоположении мобов в ЕГ например.. потомучто ето довольно далеко.. еслиб твой клиент занал обо всех мобах на серваке инфу то надо очень мощьный сервер.. когда ты бежиш из ДИОНА в ЕГ.. то мобы которые встретятся у тебя на пути- будут сопровождаться пакетом (НПЦ-ИНФО).. а точнее наоборот.. когда приходят твоему клиенту пакеты НПЦ ИНФО то они у тебя на екране показываются.. и пользуясь етой информацией можно их ИД запомнить (этим пакетом)..
__________________
Цитата:
Сообщение от pybukon
прежде чета попросить я немнога раскажу чтоб вы понили как мне плоха
Цитата:
Сообщение от Byrger
А как сделать мой скрипт бесконечным?
Цитата:
Сообщение от XKOR
.. каждый день ионизированной ногой протирает больную)
Цитата:
Сообщение от PsyR
Вылоджите пожалуйста скрипт на рыбалку желательно что бы сам в ВХ клал адаптированый под шоки и так же скрипт на ТТ рец, тоже с диалогами
Ворон есть проблемка в твоем скрипте на всех баферов :(
Суть в чем использовал допустим ше скил залив маны и скрипт соответственно поймал его с его ИД и приказал включить бег так вот на окне командира он вроде как бежит за ним а на самом деле он остается стоять хз почему и так можно сказать теряется и когда ему очередной раз приходится заливать или еще чего то он из окна командира просто исчезает (как телепорт ) и появляется там где остался. Это раз.
ну и хилки не пьются, но этот кусок кода я еще не проверял так что может там что то с ИД банок не так. Использую на Ц 4 и подкоректил смещение при отлове хп и мп с 48 на 44, лечит льет нормально бегает с трудом, банки не пьет на счет ЦП не знаю не пробовал. Хочу попробовать еще прикрутить автобаф каждые 20 мин и как то совместить со скриптом ботом на кач переделав его под мага, правда там стока всего что мне даже страшно что то трогать ( я про ТК 64)
И вопрос по ТК 64 походу там дроп не собираеться или очень плохо собирается (
Добавлено спустя 31 минуту 26 секунд:
Откуда такая формула и как ее понять?
for i:= 0 to round(length(pck)/36) do
begin
if (pck[i*36+4+8]+pck[i*36+5+8] = hstr('25 04')) then OidHPPotion0:=pck[i*36+8]+pck[i*36+1+8]+pck[i*36+2+8]+pck[i*36+3+8];
Nlopd к тебе вопрос можно переделать скрипт на кач ТК под кач мага, а то я что то пробовал но так тупо віходит ппц, и еще біло бі неплохо чтобі совместить его с использованием скрипта от ворона там где ше пп ее и биш ну и сам соответственно пьет всякие лекарства
My name='NLObP"
Для мага - сложность в дистанционной атаке, очень большая сложность... для меня по крайней мере.
My name='NLObP"
Для мага - сложность в дистанционной атаке, очень большая сложность... для меня по крайней мере.
очень неплохо такая атака реализована в этом скрипте
Код:
//Бот_маг with 'Hachling of Star' by NLObP
{
Социальное действие YES включить
Социальное действие NO выключить
Скрипт распространяется как есть, и я не несу ответственности за то, что
ВЫ натворили у себя, его используя.
}
//******************************************************************************
Const
Name=''; //имя чара
Pet=''; //имя Пета
max=500; //max количество контролируемых мобов
Radius=1500; //радиус участка для поиска мобов
DeltaZ=250; //глубина/высота до мобов
Distance=600; //дистанция до моба
windstrike=1230; //Wind Strike
//******************************************************************************
VAR
NameChar: string;
CharID, PetID, Attacker, ObjectID: integer;
CentrKachX,CentrKachY,CentrKachZ,RadiusKachX,RadiusKachY: integer;
CentrKachXex,CentrKachYex,RadiusKachXex,RadiusKachYex: extended;
tempX,tempY, tempLenght: extended;
tempZ, ColvoMobs: integer;
xe,ye: extended;
x,y,z,ox,oy,oz,n: integer;
MobCurHP, MobMaxHP, CurHP, MaxHP, CurMP, MaxMP: integer;
BotCoordX,BotCoordY,BotCoordZ: integer; //координаты бота
BotCoordXext,BotCoordYext,BotCoordZext:extended;
MinPutID: integer; //указывает индекс моба в базе путь до которого самый короткий
MinPutLenght: extended; //расстояния до ближайшего моба
timer1: TTimer; //основной таймер
timer2: TTimer; //вспомогательный
timerA: TTimer; //вспомогательный
i, itm, SocialID: integer; // вспомогательная
time1, time2: integer;
AddMob, UnderAttack, scrready, NeedBackup, fire: boolean;
ItemBase: array[1..4,1..max] of integer; // описатель предметов
CharBase: array[1..4,1..max] of integer; // описатель игроков (которых не атакуем)
MobBase: array[1..4,1..max] of integer; // описатель мобов вокруг
MobBaseExt: array[1..4,1..max] of extended; // описатель мобов вокруг вспомогательная
{ 1 - ID
2 - X
3 - Y
4 - Z}
//******************************************************************************
procedure Init; //Вызывается при включении скрипта
begin
UnderAttack:=false;
itm:=0;
NeedBackup:=false;
scrready:=false;
colvomobs:=0;
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=False;
timer1.interval:=1500; //каждые 2 сек ищем ближайшего моба для атаки
timerA:=TTimer.Create(nil);
timerA.OnTimer:=@OnTimerA;
timerA.enabled:=False;
timerA.interval:=1500; //каждые 2 сек магическая атака
timer2:=TTimer.Create(nil);
timer2.OnTimer:=@OnTimer2;
timer2.enabled:=false;
timer2.interval:=5000;
//RequestItemList
buf:=hstr('0F');
SendToServerEx(Name);
end;
//******************************************************************************
procedure Free; //Вызывается при выключении скрипта
begin
timer1.Free;
timer2.Free;
timerA.Free;
end;
//******************************************************************************
//сообщения в приват, на сервер не отправляются
procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(Name);
WriteS(msg);
SendToClientEx(Name);
end;
//*******************************************************************
function Wait(var tick: integer;Timewait: Integer): Boolean;
// сквозная проверка без остановки скрипта (c)dmitry501
// modifed by Sh00rGo
var
t: integer;
begin
result:=false;
t:=Round(Time*86400);
if t>(tick+Timewait) then begin
if tick>0 then result:=true;
tick:=t;
end;
end;
//******************************************************************************
procedure ReqGetItem;
begin
if itm=0 then begin
timer1.enabled:=true; //включаем отсчет времени
needbackup:=false;
exit;
end;
timer1.enabled:=false; //выключаем отсчет времени
//перебираем базу
for i:=1 to max do begin
//если нашли, то обнуляем
if (ItemBase[1,i]<>0) then begin //ObjectID
say('ReqGetItem');
//даем команду подобрать вещь
buf:=#$04;
WriteD(ItemBase[1,i]);
WriteD(ItemBase[2,i]);
WriteD(ItemBase[3,i]);
WriteD(ItemBase[4,i]);
WriteH(00);
SendToServerEx(Name);
end;
end;
end;
//******************************************************************************
procedure OnTimer2(Sender: TObject);
begin
UnderAttack:=false; //отцепимся от атакуемого
if itm>0 then needbackup:=true;
end;
//******************************************************************************
//0E=StatusUpdate:h(ObjectID)d(AttribCount)d(AttrID)d(AttrValue)
procedure StatusUpdate;
var
i: integer;
begin
for i:=0 to ReadD(6)-1 do begin
case pck[i*8+10] of
#$09: MobCurHP:=ReadD(i*8+14);
#$0A: MobMaxHP:=ReadD(i*8+14);
end;
end;
if (MobCurHP<=0) then begin
underattack:=false;
say('Убили!');
end;
end;
//******************************************************************************
procedure OnTimer1(Sender: TObject);
begin
//не вычисляем, если уже атакуем
if UnderAttack then exit;
MinPutID:=0;
MinPutLenght:=99999999;
///ищем самого близкого к нам моба
for i:=1 to max do begin
if (MobBaseExt[1,i]<>0) then begin
tempX:=MobBaseExt[2,i];
tempY:=MobBaseExt[3,i];
//расстояние по теореме Пифагора: c^2=a^2+b^2
tempLenght:=int(sqrt((BotCoordXext-tempx)*(BotCoordXext-tempx)+(BotCoordYext-tempy)*(BotCoordYext-tempy)));
if (tempLenght<MinPutLenght) and (PetID<>MobBase[1,i]) and (CharID<>MobBase[1,i]) then begin
MinPutLenght:=tempLenght;
MinPutID:=i;
end;
end;
end;
if (minputid<>0) then begin
Attacker:=MobBase[1,MinPutID];
TargetAttacker(Attacker);
say('Атакуем моба!');
end
else MoveCenter;
end;
//******************************************************************************
//01=MoveBackwardToLocation:d(targetX)d(targetY)d(targetZ)d(originX)d(originY)d(originZ)d(moveByMouse)
procedure MoveDistance;
begin
xe:=MobBase[2,MinPutID]+Distance/4+round(random*(Distance/4));
ye:=MobBase[3,MinPutID]+Distance/4+round(random*(Distance/4));
x:=round(xe);
y:=round(ye);
z:=MobBase[4,MinPutID];
buf:=#$01;
WriteD(x);
WriteD(y);
WriteD(z);
WriteD(BotCoordx);
WriteD(BotCoordy);
WriteD(BotCoordz);
WriteD(01);
SendToServerEx(Name);
say('держим дистанцию');
end;
procedure MoveCenter;
begin
buf:=#$01;
WriteD(CentrKachx);
WriteD(CentrKachy);
WriteD(CentrKachz);
WriteD(BotCoordx);
WriteD(BotCoordy);
WriteD(BotCoordz);
WriteD(01);
SendToServerEx(Name);
say('бежим в центр');
end;
//******************************************************************************
procedure TargetAtt;
begin
buf:=#$04;
WriteD(Attacker);
WriteD(BotCoordX);
WriteD(BotCoordY);
WriteD(BotCoordZ);
WriteC(00);
SendToServerEx(Name);
end;
//***************************************************************
//2F=RequestMagicSkillUse:h(MagicID)d(CtrlPressed)b(ShiftPressed)
procedure MagicSkillUse(MagicID:integer);
begin
buf:=#$2F;
WriteD(MagicID);
WriteD(00);
WriteC(00);
SendToServerEx(Name);
end;
//******************************************************************************
procedure OnTimerA(Sender: TObject);
begin
MagicSkillUse(windstrike);
MoveDistance;
say('magic attack');
end;
//******************************************************************************
procedure TargetAttacker(Attacker: Integer);
begin
TargetAtt;
timerA.enabled:=true;
UnderAttack:=true; //зацепимся за атакуемого
end;
//******************************************************************************
// вызывается при приходе каждого пакета если скрипт включен
//******************************************************************************
begin
//****************************************************************************
//не пропускаем пустые пакеты
if pck='' then exit;
//****************************************************************************
//16=NpcInfo:h(ObjectID)d(NpcTypeID)d(IsAttackable)d(X)d(Y)d(Z)d(Heading)d(d)d(Maspd)d(Paspd)d(runSpd)d(walkSpd)d(swimRSpd)d(swimWSpd)d(flRSpd)d(flWSpd)d(FlyRSpd)d(FlyWSpd)f(ProperMul)f(Paspd)f(CollisRadius)f(CollisHeight)d(RHand)d(d)d(LHand)b(nameabove)b(isRun)b(isInFight)b(isAlikeDead)b(isSummoned)s(Name)s(Title)d(d)d(d)d(karma?)d(abnEffect)d(d)d(d)d(d)d(d)b(c)b(Team)f(collisRadius)f(collisHeight)d(d)
//NPCInfo, запоминаем мобов
if FromServer and (ConnectName=Name) and (pck[1]=#$16) then begin
AddMob:=true;
//проверка, входит моб в радиус действия?
tempX:=ReadD(14); //x
tempY:=ReadD(18); //y
tempLenght:=sqrt((CentrKachXex-tempX)*(CentrKachXex-tempX)+(CentrKachYex-tempY)*(CentrKachYex-tempY));
//проверям, не под землей ли моб(в катакомбах)
tempZ:=BotCoordZ-ReadD(22);
if tempz<0 then tempZ:=tempz*(-1);
if tempZ<=DeltaZ then begin
if (tempLenght<Radius) then begin
for i:=1 to max do begin
//если нашли Моба в базе, то коректируем его координаты на новые
if (MobBase[1,i]=ReadD(2)) and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) then begin
MobBase[2,i]:=ReadD(14); //x
MobBase[3,i]:=ReadD(18); //y
MobBase[4,i]:=ReadD(22); //z
//Ext массив
MobBaseExt[2,i]:=ReadD(14); //x
MobBaseExt[3,i]:=ReadD(18); //y
MobBaseExt[4,i]:=ReadD(22); //z
AddMob:=false;
end;
end;
//иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового моба
for i:=1 to max do begin
if (MobBase[1,i]=0) and AddMob and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) then begin
//запоминаем моба в свободную ячейку
MobBase[1,i]:=ReadD(2); //ObjectID
MobBase[2,i]:=ReadD(14); //x
MobBase[3,i]:=ReadD(18); //y
MobBase[4,i]:=ReadD(22); //z
//Ext массив
MobBaseExt[1,i]:=ReadD(2); //ObjectID
MobBaseExt[2,i]:=ReadD(14); //x
MobBaseExt[3,i]:=ReadD(18); //y
MobBaseExt[4,i]:=ReadD(22); //z
inc(colvomobs);
say('Запоминаем координаты Моба'+' ColvoMobs='+inttostr(colvomobs));
break;
end;
end;
end;
end;
end;
//****************************************************************************
//CharInfo, запоминаем игроков
if FromServer and (ConnectName=Name) and (pck[1]=#$03) then begin
AddMob:=true;
for i:=1 to max do begin
//если нашли чара в базе, то коректируем его координаты на новые
if (CharBase[1,i]=ReadD(18)) then begin
CharBase[2,i]:=ReadD(2); //x
CharBase[3,i]:=ReadD(6); //y
CharBase[4,i]:=ReadD(10); //z
AddMob:=false;
end;
end;
//иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового чара
for i:=1 to max do begin
if (CharBase[1,i]=0) and AddMob then begin
//запоминаем моба в свободную ячейку
CharBase[1,i]:=ReadD(18); //ObjectID
CharBase[2,i]:=ReadD(2); //x
CharBase[3,i]:=ReadD(6); //y
CharBase[4,i]:=ReadD(10); //z
NameChar:=ReadS(22);
say('Приближается Игрок '+NameChar+'!!!');
break;
end;
end;
for i:=1 to max do begin
//если нашли Чара в базе Мобов, то удаляем его
if (MobBase[1,i]=ReadD(18)) then begin
MobBase[1,i]:=0; //x
MobBase[2,i]:=0; //x
MobBase[3,i]:=0; //y
MobBase[4,i]:=0; //z
//Ext массив
MobBaseExt[1,i]:=0; //x
MobBaseExt[2,i]:=0; //x
MobBaseExt[3,i]:=0; //y
MobBaseExt[4,i]:=0; //z
dec(colvomobs);
say('Нашли Чара в базе Мобов, удаляем его'+' ColvoMobs='+inttostr(colvomobs));
end;
end;
end;
//****************************************************************************
//MoveToLocation, коректируем координаты мобов в базе
if FromServer and (ConnectName=Name) and (pck[1]=#$01) then begin
AddMob:=true;
//проверка, входит моб в радиус действия?
tempX:=ReadD(6); //x
tempY:=ReadD(10); //y
tempLenght:=sqrt((CentrKachXex-tempX)*(CentrKachXex-tempX)+(CentrKachYex-tempY)*(CentrKachYex-tempY));
tempZ:=BotCoordZ-ReadD(14);
if tempz<0 then tempZ:=tempz*(-1);
if tempZ<=DeltaZ then begin
if (int(tempLenght)<Radius) then begin
//перебираем базу и ищем там моба, который бежит
for i:=1 to max do begin
//если нашли моба в базе, то коректируем его координаты на новые
if (MobBase[1,i]=ReadD(2)) and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) and (CharBase[1,i]<>ReadD(2)) then begin //ObjectID
MobBase[2,i]:=ReadD(6); //x
MobBase[3,i]:=ReadD(10); //y
MobBase[4,i]:=ReadD(14); //z
//Ext массив
MobBaseExt[2,i]:=ReadD(6); //x
MobBaseExt[3,i]:=ReadD(10); //y
MobBaseExt[4,i]:=ReadD(14); //z
AddMob:=false;
end;
end;
//иначе, перебираем базу, ищем свободную ячейку в ней и добавляем нового моба
for i:=1 to max do begin
if (MobBase[1,i]=0) and AddMob and (CharID<>ReadD(2)) and (PetID<>ReadD(2)) then begin
//запоминаем моба в свободную ячейку
MobBase[1,i]:=ReadD(2); //ObjectID
MobBase[2,i]:=ReadD(6); //x
MobBase[3,i]:=ReadD(10); //y
MobBase[4,i]:=ReadD(14); //z
//Ext массив
MobBaseExt[1,i]:=ReadD(2); //ObjectID
MobBaseExt[2,i]:=ReadD(6); //x
MobBaseExt[3,i]:=ReadD(10); //y
MobBaseExt[4,i]:=ReadD(14); //z
inc(colvomobs);
break;
end;
end;
end;
end;
end;
//****************************************************************************
//MagicSkillUse 48, Attack 05
if FromServer and (ConnectName=Name) and ((pck[1]=#$48) or (pck[1]=#$05)) then begin
if UnderAttack then exit; //сначало убъем одного
Attacker:=ReadD(2);
ObjectID:=ReadD(6);
if (Attacker<>ObjectID) and (CharID=ObjectID) then begin
UnderAttack:=true; //нас атакуют
needbackup:=false;
Say('Нас атакуют!');
TargetAttacker(Attacker);
end;
end;
//****************************************************************************
//если принят пакет Die
if FromServer and (ConnectName=Name) and (pck[1]=#$06) then begin
//ищем моба в базе
if (Attacker=ReadD(2)) then begin
UnderAttack:=false; //убили атакующего моба
timerA.enabled:=False;
end;
for i:=1 to max do begin
//очишаем запись связанную с етим мобом
if (MobBase[1,i]=ReadD(2)) then begin
dec(colvomobs);
MobBase[1,i]:=0; //ObjectID
MobBase[2,i]:=0; //x
MobBase[3,i]:=0; //y
MobBase[4,i]:=0; //z
//Ext массив
MobBaseExt[1,i]:=0; //ObjectID
MobBaseExt[2,i]:=0; //x
MobBaseExt[3,i]:=0; //y
MobBaseExt[4,i]:=0; //z
break;
end;
end;
end;
//****************************************************************************
//если принят пакет DeleteObject
if FromServer and (ConnectName=Name) and (pck[1]=#$12) then begin
//ищем моба в базе
//say('DeleteObject');
if (Attacker=ReadD(2)) then begin
UnderAttack:=false; //убили атакующего моба
timerA.enabled:=False;
end;
for i:=1 to max do begin
//очишаем запись связанную с етим мобом
if (MobBase[1,i]=ReadD(2)) then begin
dec(colvomobs);
MobBase[1,i]:=0; //ObjectID
MobBase[2,i]:=0; //x
MobBase[3,i]:=0; //y
MobBase[4,i]:=0; //z
//Ext массив
MobBaseExt[1,i]:=0; //ObjectID
MobBaseExt[2,i]:=0; //x
MobBaseExt[3,i]:=0; //y
MobBaseExt[4,i]:=0; //z
break;
end;
end;
for i:=1 to max do begin
//если нашли в базе, то удаляем
if (CharBase[1,i]=ReadD(2)) then begin
CharBase[2,i]:=0; //x
CharBase[3,i]:=0; //y
CharBase[4,i]:=0; //z
end;
end;
end;
//****************************************************************************
//ValidatePosition если принят пакет от клиента с моими кординатами то
if FromClient and (ConnectName=Name) and (pck[1]=#$48) then begin
//запоминаем мои координаты
BotCoordX:=ReadD(2);
BotCoordY:=ReadD(6);
BotCoordZ:=ReadD(10);
//ext
BotCoordXext:=ReadD(2);
BotCoordYext:=ReadD(6);
BotCoordZext:=ReadD(10);
end;
//****************************************************************************
//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and (ConnectName=Name) and (pck[1]=#$a7) then begin
//запоминаем ИД командира
CharID:=ReadD(6);
if scrready then exit
else begin
Say('Скрипт готов к работе. Запомнил ИД лидера');
scrready:=true;
end;
end;
//****************************************************************************
//если от сервака принят пакет с UserInfo
if FromServer and (ConnectName=Name) and (pck[1]=#$04) then begin
//Запоминаем собственный ИД
CharID:=ReadD(18);
if scrready then exit
else begin
Say('Скрипт готов к работе. Запомнил ИД лидера');
scrready:=true;
end;
end;
//****************************************************************************
//если от сервака принят пакет с PetInfo
if FromServer and (PetID=0) and (ConnectName=Name) and (pck[1]=#$b1) then PetID:=ReadD(6);
//****************************************************************************
//DropItem - выпала вещь
if FromServer and (ConnectName=Name) and (pck[1]=#$0C) then begin
//чужие вещи не берем
if (Attacker=ReadD(2)) then begin
timer1.enabled:=false; //выключаем бота
AddMob:=true;
//перебираем базу
for i:=1 to max do begin
//если нашли, то корректируем его координаты на новые
if (ItemBase[1,i]=ReadD(6)) then begin //ObjectID
ItemBase[2,i]:=ReadD(14); //x
ItemBase[3,i]:=ReadD(18); //y
ItemBase[4,i]:=ReadD(22); //z
AddMob:=false;
inc(itm);
NeedBackup:=true;
end;
end;
//иначе, перебираем базу, ищем свободную ячейку в ней и добавляем
for i:=1 to max do begin
if (ItemBase[1,i]=0) then begin
//запоминаем в свободную ячейку
ItemBase[1,i]:=ReadD(6); //ObjectID
ItemBase[2,i]:=ReadD(14); //x
ItemBase[3,i]:=ReadD(18); //y
ItemBase[4,i]:=ReadD(22); //z
inc(itm);
NeedBackup:=true;
break;
end;
end;
end;
say('ColvoItm='+inttostr(itm));
end;
//****************************************************************************
//каждые две сек подбираем предмет
if Wait(time1,2) and NeedBackup and (underAttack=false) then ReqGetItem;
//****************************************************************************
//определяем реальность поднятия вещи
//GetItem
if FromServer and (ConnectName=Name) and (pck[1]=#$0D) then begin
//перебираем базу
for i:=1 to max do begin
//если нашли, то обнуляем
if (ItemBase[1,i]=ReadD(6)) then begin //ObjectID
ItemBase[1,i]:=0; //x
ItemBase[2,i]:=0; //x
ItemBase[3,i]:=0; //y
ItemBase[4,i]:=0; //z
dec(itm);
//say('Удаляем данные по предмету');
end;
end;
if itm=0 then begin
needbackup:=false;
timer1.enabled:=true;
end;
say('ColvoItm='+inttostr(itm));
end;
//******************************************************************************
//StatusUpdate
if FromServer and (ConnectName=Name) and (pck[1]=#$0E) and (Attacker=ReadD(2)) then StatusUpdate;
//****************************************************************************
if FromClient and (ConnectName=Name) and (pck[1]=#$1B) then begin
SocialID:=ReadD(2);
pck:='';
case SocialID of
//социальное действие Yes для начала
6: begin
//if CharID=0 then exit;
CentrKachX:=BotCoordX;
CentrKachY:=BotCoordY;
CentrKachZ:=BotCoordZ;
CentrKachXex:=BotCoordXext;
CentrKachYex:=BotCoordYext;
Say('Команда Старт!!!');
say('Получили координаты центра');
say('X='+inttostr(BotCoordX)+' Y='+inttostr(BotCoordY));
timer1.enabled:=true;
exit;
end;
//социальное действие No для окончания
5: begin
//if CharID=0 then exit;
timer1.enabled:=false;
timer2.enabled:=false;
timerA.enabled:=False;
underattack:=false;
Say('Команда Стоп!!!');
exit;
end;
end;
end;
end.
Добавлено спустя 3 минуты 34 секунды:
Re:
Цитата:
Сообщение от DashKAaa
Бегает,лечит,заливает, пьет цп,хп на ура, правда задержечка есть при цп...
скорей всего у тебя просто сервак левый особенно с таргетами и пропаданием суппорта за спиной)
Какие хроники?
Добавлено спустя 2 минуты 16 секунд:
Сервер довольно неплохой ПТС Ц4
Ворон для Ц 4 код на цп и хп пошин такой же будет ?
Добавлено спустя 3 минуты 58 секунд:
В принципе меня этот
Код:
//Бот_маг with 'Hachling of Star' by NLObP
{
Социальное действие YES включить
Социальное действие NO выключить
скрипт вполне устраивает единственное что так это то что он застревает часто когда до цели не может добраться или выпавшая вещь где то где ее никак не взять он тупо будет все время пытаться ее поднять а как добавить допустим чтобы 5-6 раз попытался поднять и забыл потом про эту вещь или моба хз (( и еще когда его бафера бафают то он их за цель принимает )и заклинивается на них )
Не видел исправленной записи ObjectID бутылок предложенной VORON'ом,
поэтому выкладываю исправленное мною.
Работатет под С4.
Код:
//**************************************************************************
//Записываем ObjectID некоторых банок
if pck[1]=#$1B then
for i:= 0 to round((length(pck)- 5)/28) do begin
if (ReadH(i*28+4+8) = 5592) then begin //Greater CP Potion
OidGCP:= ReadD(i*28+8);//ObjectID
NGCP:= ReadH(i*28+4+4+8);//кол-во
end;
if (ReadH(i*28+4+8) = 1539) then begin //Greater Healing Potion
OidGHP:= ReadD(i*28+8);//ObjectID
NGHP:= ReadH(i*28+4+4+8);//кол-во
end;
if (ReadH(i*28+4+8) = 6036) then begin //Greater Magic Haste Potion
OidGMG:= ReadD(i*28+8);//ObjectID
NGMG:= ReadH(i*28+4+4+8);//кол-во
end;
if (ReadH(i*28+4+8) = 1374) then begin //Greater Haste Potion
OidGHS:= ReadD(i*28+8);//ObjectID
NGHS:= ReadH(i*28+4+4+8);//кол-во
end;
if (ReadH(i*28+4+8) = 1375) then begin //Greate Swift Attack Potion
OidGSW:= ReadD(i*28+8);//ObjectID
NGSW:= ReadH(i*28+4+4+8);//кол-во
end;
end;
//**************************************************************************