Lineage 2 Tower Forum

Full Version: упростить скрипт
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Кто может упростить (укоротить) скрипт?
Code:
repeat
me = GetMe()
function HowManyMobsAround(range)
    isAnyOfMobsTargetingMe = false;
    local Npclist = GetNpcList();
    local count = 0;
    for npc in Npclist.list do
if (npc:GetDistance() < range) then
count = count +1;
if not (isAnyOfMobsTargetingMe) and (me:GetId() == npc:GetTarget()) then
isAnyOfMobsTargetingMe = true;
end;
end;
    end;
    isAnyOfMobsTargetingMe = true;
    return count;
end;

if
(HowManyMobsAround(1250)>1) then
    Sleep(600);
    Target(268498373);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498399);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498370);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498397);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498409);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498374);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498393);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498394);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498371);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498367);
    Sleep(700);
    Command("/attack");
    Sleep(600);
    Target(268498369);
    Sleep(700);
    Command("/attack");
repeat
until
    (GetTarget():IsAlikeDeath() == true);
    end;
    until false;
кто поможет?
Ты бы дал описание скрипта, что он делает и что нужно упростить/зачем?

А то я могу укоротить его до 2 строчек, и сказать что он работает.
(09-11-2013 08:49 AM)Botter100 Wrote: [ -> ]Ты бы дал описание скрипта, что он делает и что нужно упростить/зачем?

А то я могу укоротить его до 2 строчек, и сказать что он работает.
выделяет конкретных мобов по object ID (потому, что по другому они в таргет не берутся) и атакует. необходимо доработать скрипт, чтоб было проще редактировать (т.к. точек фарма много + оид меняется после ежедневного рестарта)
я представляю это так:
в начале скрипта объявляешь oid мобов:
oidMobs = (268498373, 268498399, и другие); [как правильно не знаю, но пробовал и так, и через опострафы, и через or - в любом случае атакует только первого из списка]
потом 1 раз пишешь (вместо 10, как у меня):
Sleep(1600);
Target(oidMobs);
Sleep(700);
Command("/attack");
Скрипт должен перебирать все вписаные oid и атаковать ближайшего живого.
(09-13-2013 07:22 AM)dex24 Wrote: [ -> ]
(09-11-2013 08:49 AM)Botter100 Wrote: [ -> ]Ты бы дал описание скрипта, что он делает и что нужно упростить/зачем?

А то я могу укоротить его до 2 строчек, и сказать что он работает.
выделяет конкретных мобов по object ID (потому, что по другому они в таргет не берутся) и атакует. необходимо доработать скрипт, чтоб было проще редактировать (т.к. точек фарма много + оид меняется после ежедневного рестарта)
я представляю это так:
в начале скрипта объявляешь oid мобов:
oidMobs = (268498373, 268498399, и другие); [как правильно не знаю, но пробовал и так, и через опострафы, и через or - в любом случае атакует только первого из списка]
потом 1 раз пишешь (вместо 10, как у меня):
Sleep(1600);
Target(oidMobs);
Sleep(700);
Command("/attack");
Скрипт должен перебирать все вписаные oid и атаковать ближайшего живого.

Вот скрипт который умеет перебирать ID думаю нужный тебе кусок сам переделаешь

PHP Code:
-- 19896 Истинный Авангард
-- 20375 Великий Инквизитор
-- 1986  Двойной Класс Максимальное Здоровье
-- 1931  Аура Одала
-- 10543 Бесшумная Походка
delay 
1000;
Buffs = {19896,20375,1986,1931,10543};
repeat
    Sleep
(delay);
    if (
GetMe():GotBuff(10543) == true) and (GetZoneType() == 12then UseSkillRaw(10543falsefalse); end;
    if(
IsPaused() == falsethen
     
for i in pairs(Buffs) do
      if (
GetMe():GotBuff(Buffs[i]) == false) and (GetZoneType() ~= 12then 
        UseSkillRaw
(Buffs[i], falsefalse);
        
Sleep(delay);
      
end;
     
end;
    
end;
until false
Reference URL's