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

Как написать условие, если меня не бьют мобы?

Рег
19 Фев 2016
Сообщения
33
Реакции
0
Как написать условие, если меня не бьют мобы? В течении какого то времени то - делаем сое.?
 
На експ, там указываешь до какого лвл и %, и время при котором не поступает експ ( то что тебе нужно )
 
@Nomad,


begin
while (not user.dead) and ( User.InCombat) do begin //пока чар живой и в режиме боя- бьем мобов или (not User.InCombat) не в режиме боя
engine.useitem(736);
delay(15000);
end;
end.
//Так же проверку сделай есть ли сое в инвентаре
Код:
if (Inventory.User.ByID(736,Item) and (Item.Count >1) then engine.useitem(736);
 
@Gika2dl, сое не заюзается если его нету и проверка некорректная, если будет 1 сое то условие не выполнится.
 
@SoundShocking,
Ну не слепые же, видно что ошибка исправят.
Пусть учатся. А вообще есть скриптхелпер, открывайте его иногда.
Код:
var
Item: TL2Item;
begin
if Inventory.User.ByID(736,Item) then Engine.UseItem(Item);
if (not Inventory.User.ByID(736,Item)) then engine.say('/unstuck');
end.
 
Чар фармит мобов, спадает бафф и если он не в бою то по скрипту сделает сое. Но он всегда в бою , т.к. по кд бьет мобов. Какое условие есть типо "нет атакующих меня мобов" (тогда уже сое)?

if not User.Buffs.ById(4323, obj) and (not User.InCombat) then begin
Engine.FaceControl(0,false);
delay(1000);
Engine.UseItem(736);
 
@CMAK,
Код:
function mobsAttacking : Boolean;
var i, n: Integer;
begin
   n := 0;
   for i := 0 to NpcList.Count - 1 do
      if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc(n);

   Result := n > 0;
end;

begin
if mobsAttacking then begin
 
@qseven228, эта функция описывает "если я в таргете у моба и моб не мертв, то" ? т.е. эта функция говорит о том что меня не бьют или наоборот меня бьют? если не бьют то примерно так будет выглядеть скрипт?


Код:
var obj: TL2NPC;
obj2: TL2Effect;
Enemy: TL2Live;  
function mobsAttacking : Boolean;
var i, n: Integer;
begin
n := 0;
for i := 0 to NpcList.Count - 1 do
if (NpcList.Items(i).Target = User) and not NpcList.Items(i).Dead then inc(n);
Result := n > 0;
end;
while 1<>2 do begin 
if User.Dead then begin
Engine.FaceControl(0,false);
Engine.gohome;
delay(7000);
end;
if not User.Buffs.ById(4323, Obj) and mobsAttacking then begin
Engine.FaceControl(0,false);
Engine.UseItem(736);  // юзаем сое
delay(25000);
end;
end.
 
@CMAK,
если ты у моба в таргете , то он на 99% тебя бьет или ударит ,когда добежит )

Ты должен написать :
if not баффс.байидлалал then begin
выключаем интерфейс

и сделать отдельную процедурку :

if mobsattacking and not getfacestate(0) and not (user.target.dead) then
убиваем моба скилами руками ногами.


//

not getfacestate(0) then
- означает , что интерфейс выключен


Думаю разберешься
 
@Gika2dl, ой тут такой контингент который просит скрипты, которые вообще в этом ничего не понимают и вряд ли разберутся :D вроде через сей так не будет работать, ибо должны быть указать 3 параметра.
 
@SoundShocking, всего лишь 12 базовых уроков делфи и вуаля )))
d2e4e77f6a.png
 
Назад
Сверху