Охотник Опубликовано 15 сентября, 2021 Поделиться Опубликовано 15 сентября, 2021 Учусь писать скрипты для адрика, этой мой первый примитивный скрипт строго не судите)) Писал для нового сервера х1 хф Спойлер var obj: TL2NPC; obj2: TL2Effect; Enemy: TL2Live; const Bypass_Home = '_bbshome'; //открываем альтб Bypass_Buff1 = '_bbsbuffer'; //открываем баффера Bypass_Buff2 = '_bbsbufferbypass_giveBuffSet figher 0 0'; //Бафаемся на воина Bypass_Buff3 = '_bbsbufferbypass_heal 0 0 0'; //Регеним ХП Bypass_port1 = '_bbsteleport'; //открываем телепорт Bypass_port2 = '_bbsteleport;page;cities/goddard'; //Выбираем локацию годдарта Bypass_port3 = '_bbsteleport;teleport; 144337 -102384 -3512 0'; //Портуемся в ХС begin while 1<>2 do begin delay(150); Engine.BypassToServer(Bypass_Home); delay(1000); Engine.BypassToServer(Bypass_Buff1); delay(1000); Engine.BypassToServer(Bypass_Buff2); delay(1000); Engine.BypassToServer(Bypass_Buff3); delay(1000); Engine.BypassToServer(Bypass_Home); delay(1000); Engine.BypassToServer(Bypass_port1); delay(1000); Engine.BypassToServer(Bypass_port2); delay(1000); Engine.BypassToServer(Bypass_port3); delay(10000); Engine.MoveTo(144328, -103080, -3536); delay(100); Engine.MoveTo(143848, -103832, -3584); delay(100); Engine.MoveTo(143432, -104248, -3584); delay(1000); Engine.FaceControl(0,true); while not user.dead do delay(10000); Engine.FaceControl(0,false); delay(random(3000)); Engine.gohome; delay(60000); end; end. 1 Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
жук Опубликовано 15 сентября, 2021 Поделиться Опубликовано 15 сентября, 2021 я вот тоже хочу научится путем метода "тыка" муторно и не очень понятно,брал готовые скипты пытался вырезать нужное но что то не очень выходит есть инструкции к написанию скриптов для чайников? щя пытаюсь написать скрипт кача с 1 по 40 лвл но проблема в том что если умер чар он начинает весь скрипт сначала 0 Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Охотник Опубликовано 16 сентября, 2021 Автор Поделиться Опубликовано 16 сентября, 2021 Интересная идея, нужно попробовать 0 Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
iNoj Опубликовано 16 сентября, 2021 Поделиться Опубликовано 16 сентября, 2021 (изменено) 19 часов назад, жук сказал: щя пытаюсь написать скрипт кача с 1 по 40 лвл но проблема в том что если умер чар он начинает весь скрипт сначала там прикол в том что ты проверяешь статус чара, его баффы, координаты и уровень в вечном цикле с задержкой т.е. первые строки цикла скрипта = это те самые проверки если чар труп - ресаешь в город если чар без баффа - улетаешь в город на анстаке если чар в ТИ и он меньше 10 уровня - портаешься на первый спот если чар в ТИ и он больше 10 уровня - портаешься в второй город (глудин) если чар в глудине и он меньше 20 уровня - портаешься на второй спот если чар в глудине и он больше 20 уровня - портаешься в дион ну и чтобы код не начал выполнять все подряд - вначале цикла создаешь флажок "действие выполнено" и внутри каждого действия ставишь этот флаг что-то такое Спойлер var Done, isStartZone, isTI, isGludin, isDion, isOren : boolean ; Do_Soe_ON_Level:cardinal; begin Engine.LoadConfig('WLC_SOLO'); Do_Soe_ON_Level:=User.Level+1; while true do begin Done:=false; isStartZone:=checkStartZone; isTI:=checkTI; isGludin:=checkGludin; isDion:=checkDion; isOren:=checkOren; if not Done and (User.Level>=21) and (isSecondSpot) then begin Engine.FaceControl(0, false); unstuck; Delay(15000); end; if (not Done) and (User.Level>=1) and (User.Level<21) and (isGludin) then begin Print('4'); Do_Soe_ON_Level:=21; Gludin_BackToSpot; // back to spot windmill hill Done:=true; end; if (not Done) and (User.Level>=21) and (isGludin) then begin Print('5 Gludin, Move to Dion'); Do_Soe_ON_Level:=30; Gludin_MoveToDion; // move from Gludin to Dion UpdateGear21; Done:=true; end; функции проверки городов это что-то такое function checkGludin:boolean; begin Result:= user.inrange(-81787, 150780, -3104, 4900) ; end; function checkGludio:boolean; begin Result:= user.inrange(-14424, 123720, -3104 , 3900) ; end; function checkDion:boolean; begin Result:= user.inrange(16856, 144648, -2992, 4900) ; end; Изменено 16 сентября, 2021 пользователем iNoj 1 Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
iNoj Опубликовано 16 сентября, 2021 Поделиться Опубликовано 16 сентября, 2021 (изменено) для совсем упоротых можно даже заранее снарядить чара шмотом и при порте из младшего города в старший одевать более крутой шмот Спойлер procedure UpdateGear41; var c_weapon1,c_weapon2, gloves, upper_armor, lower_armor :cardinal; item: TL2Item; equipped:boolean; begin c_weapon1:=6313; // homu : acuman c_weapon2:=206; // demon staff gloves:=2454; // karmian gloves upper_armor:=439; // karmian tunic lower_armor:=471; // karmian stockings if ( inventory.user.byid(c_weapon1, item)) then begin if (not item.Equipped) then begin Engine.UseItem(c_weapon1); Delay(1350); end; end; if ( inventory.user.byid(c_weapon2, item)) then begin if (not item.Equipped) then begin Engine.UseItem(c_weapon2); Delay(1350); end; end; if ( inventory.user.byid(gloves, item)) then begin if (not item.Equipped) then begin Engine.UseItem(gloves); Delay(1350); end; end; if ( inventory.user.byid(upper_armor, item)) then begin if (not item.Equipped) then begin Engine.UseItem(upper_armor); Delay(1350); end; end; if ( inventory.user.byid(lower_armor, item)) then begin if (not item.Equipped) then begin Engine.UseItem(lower_armor); Delay(1350); end; end; end; Изменено 16 сентября, 2021 пользователем iNoj 1 Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
HouseMD Опубликовано 11 декабря, 2021 Поделиться Опубликовано 11 декабря, 2021 В 15.09.2021 в 18:49, Охотник сказал: Учусь писать скрипты для адрика, этой мой первый примитивный скрипт строго не судите)) Писал для нового сервера х1 хф Скрыть контент Bypass_Home = '_bbshome'; //открываем альтбBypass_Buff1 = '_bbsbuffer'; //открываем баффера ... Bypass_port1 = '_bbsteleport'; //открываем телепортBypass_port2 = '_bbsteleport;page;cities/goddard'; //Выбираем локацию годдарта Это вот вообще лишнее. Без этого всё работает. Не ставь байпасы в константы. Смысл особого нет. После возвращения в город и перед тем как станет можно отправить байпас на баф максимум проходит 18 секунд, 60 сек ждать - лишнее. Если завис клиент то 60 сек не спасут. Между Байпасами делай задержку 500 миллисекунд. Между MoveTo задержка не нужна, хватает того что скрипт движок даст. 0 Цитата Ссылка на комментарий Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.