Форум работает в тестовом режиме. Все данные были перенесены со старого сайта 2018 года. Некоторая информация может быть недоступна, например вложения или хайды. Просьба сообщать о данных случаях через функционал "Жалоба", прямо под постом, где отсуствуют данные из хайда или проблемы с вложением.
Могут быть проблемы в "выкидыванием" с форума (слетевшей авторизацией). Нужно собрать статистику таких случаев.
Есть Тема, куда можете сообщить о проблемах с сайтом либо просто передать привет.

Подскажите.

@SoundShocking, Там в каждой точке по 3-4 разных вида нужны мобов . А то что ты выше написал скрипт , я так понимаю его нужно запилить в придыдущий скрипт ? Или это уже как новый и их надо объединить ? И будет ли толк , если переименовать мобов в одно имя и а Id будет разный , будет ли бот атаковать при занисении в Бд ? И если не трудно , обоснуй как примерно запустить скрипт на атаку и проверку мобов .
 
@claid, в предыдущем скрипте исправь строчку на которую я скинул) попробуй через бд корректор внести мобов так, я не тестил, но по идее должно быть нормально. рестарт сделай в игре после внесения в бд корректор.

const range:integer=500;

procedure MoveAndTarget;
var
i:integer;
mob:tl2live;
begin
while (engine.status=lsonline) do
begin
if((user.target.dead) or (user.target=nil)) then
begin
for i:=0 to npclist.count-1 do
begin
mob:=npclist(i);
if((not mob.dead) and (mob.attackable) and (mob.valid) and (mob.inzone) and (mob.name='trololo')) then
begin
if(user.distto(mob)>range) then
begin
engine.moveto(mob, -range);
engine.settarget(mob);
break;
end;
if(user.distto(mob)<=range) then
begin
engine.settarget(mob);
break;
end;
end;
end;
end;
delay(500);
end;
end;

begin
script.newthread(@MoveAndTarget);
end.
так должно выйти, офк нужно вместо трололо вписать название которое внесешь в бд корректор.
 
SoundShocking написал(а):
const range:integer=500; procedure MoveAndTarget; var i:integer; mob:tl2live; begin while (engine.status=lsonline) do begin if((user.target.dead) or (user.target=nil)) then begin for i:=0 to npclist.count-1 do begin mob:=npclist(i); if((not mob.dead) and (mob.attackable) and (mob.valid) and (mob.inzone) and (mob.name='trololo')) then begin if(user.distto(mob)>range) then begin engine.moveto(mob, -range); engine.settarget(mob); break; end; if(user.distto(mob)<=range) then begin engine.settarget(mob); break; end; end; end; end; delay(500); end; end; begin script.newthread(@MoveAndTarget); end.

Спасибо , но все равно бот что-то атачит не нужных мобов )
 
Не знаю как , но надо сделать так . Что бы при помощи этого скрипта било определенных мобов :(
 
const
range:integer=500;
mon_ID:array[0..3] of integer = (111, 222, 333, 444);

function CheckMobID(ID:integer):boolean;
var i:integer;
begin
result:=false;
for i:=0 to high(mon_ID) do
begin
if(mon_id=ID) then
begin
result:=true;
break;
end;
end;
end;

procedure MoveAndTarget;
var
i:integer;
mob:tl2live;
begin
while (engine.status=lsonline) do
begin
if((user.target.dead) or (user.target=nil)) then
begin
for i:=0 to npclist.count-1 do
begin
mob:=npclist(i);

if((not mob.dead) and (mob.attackable) and (mob.valid) and (mob.inzone) and (CheckMobID(mob.ID) or (mob.atkoid=user.oid))) then
begin
if(user.distto(mob)>range) then
begin
engine.moveto(mob, -range);
engine.settarget(mob);
break;
end;

if(user.distto(mob)<=range) then
begin
engine.settarget(mob);
break;
end;
end;
end;
end;
delay(500);
end;
end;

begin
script.newthread(@MoveAndTarget);
end.

в mon_ID:array[0..3] of integer = (111, 222, 333, 444); нужно указать ID мобов, как в примере, так же нужно правильно указать размерность массива - [0..количество ID-1]
 
Назад
Сверху