gremlin_1lvl
Группа: Главный администратор
Сообщений: 72
Статус: Offline
| Скриптовые команды Goodboy 1.06: UseSkill - UseSkill(Имя игрока, SkillName[Id=XXX]), использовать указанный скилл на игрока, например: UseSkill(jack,Attack Aura[Id=77]), использовать скилл Atack Aura[ID=77] на игрока jack; CharSel - CharSel(Имя игрока), выбрать игрока, например: CharSel(jack), выбрать игрока jack; MonSel - MonSel(Имя моба[Id=XXX]), выбрать ближайшего моба указанного типа, например: MonSel(Rabbit[Id=20002]), выбрать ближайшего к вам Rabbit[Id=20002]; UseSkill2 - UseSkill2(Имя скилла[Id=XXX]), использовать указанный скилл на выбранный вами объект; UseItem - UseItem(Имя вещи[Id=XXX]), использование вещи, например: UseItem(Scroll of Escape[Id=736]), использует свиток Scroll of Escape[Id=736] и телепортирует вас в город; BuyItem - BuyItem(Имя вещи1[Id=XXX],количество), BuyItem(Имя вещи1[Id=XXX],количество; Имя вещи2[Id=XXX],количество), покупка вещи, например: BuyItem(Scroll of Escape[Id=736],1) купит один свиток телепортации Scroll of Escape[Id=736], (примечание: не работает на теневые вещи); SellItem - SellItem(Имя вещи1[Id=XXX],количество), SellItem(Имя вещи1[Id=XXX],количество; Имя вещи2[Id=XXX],количество), продажа вещи, например: SellItem(Scroll of Escape[Id=736],1), продаст один свиток телепортации Scroll of Escape[Id=736], SellItem(*) данная команда продаст все вещи которые отмечены как "Sell" в настройках бота; SaveItem - SaveItem(Имя вещи1[Id=XXX],количество), SaveItem(Имя вещи1[Id=XXX],количество; Имя вещи2[Id=XXX]),количество), положить вещь в хранилище, например: SaveItem(Scroll of Escape[Id=736],1), положит один свиток телепортации Scroll of Escape[Id=736] в хранилище, SaveItem(*) данная команда положит в хранилище все вещи, отмеченные как "Warehouse" в настроках бота; LoadItem - LoadItem(Имя вещи1[Id=XXX],количество), LoadItem(Имя вещи1[Id=XXX],количество; Имя вещи2[Id=XXX], количество), достать вещь из хранилища, например: LoadItem(dagger[Id=1],1), достанет один dagger[Id=1] из хранилища; Msg - Msg(текст), написать сообщение в боте, например: Msg(Я умер и возвращаюсь в город!), выведет указанный текст в чат (примечание: текст выводится только в клиенте, виден только вам, на сервер не отправляется); Set(FightStart) - команда Active, бот начинает бегать и убивать мобов; Set(FightStop) - команда Inactive, бот перестает бить мобов; Set(BeatBackOpen) - автоатака напавших на вас мобов в режиме Inactive, то есть команда заставляет бота заниматься самообороной; Set(BeatBackClose) - отключение автоатаки напавших на вас мобов в режиме Inactive, то есть бот будет стоять и смотреть на свою собственную смерть; Delay - Delay(N), приостановит скрипт на N миллисекунд, например: Delay(1000), приостановит скрипт на 1000 мс (1 секунда); Label - Label(XXX), метка в скрипте, например: Label(ProverkaHP) будет меткой начала подпрограммы проверки на HP, ничего, кроме обозначения места в скрипте, не делает; Jmp - Jmp(XXX), переход к определенной метке в скрипте, например: Jmp(ProverkaHP), перейдет к метке Label(ProverkaHP); Call - Call(XXX), переход к определенной метке в скрипте, например: Call(ProverkaHP), перейдет к метке Label(ProverkaHP), различия между командами "Jmp" и "Call" в том что после выполнения подпрограммы скрипт вернется к строчке идущей за командой "Call"; MoveTo - MoveTo(X,Y,Z), движение персонажа к координатам (X,Y,Z); NpcSel - NpcSel(Имя NPC[Id=XXX]), команда выбора в цель NPC, например: NpcSel(Jackson[Id=7002]), выберет NPC Jackson[Id=7002]; NpcDlg - NpcDlg(Имя NPC[Id=XXX]), начало диалога с NPC, например: NpcDlg(Jackson[Id=7002]), начнет диалог с NPC Jackson[Id=7002]; DlgSel - DlgSel(текст), выбор строки диалога с NPC содержащую "текст", например: DlgSel("Проверка снабжения"), выберет строку диалога "Проверка снабжения" (примечание: советую прописывать диалоги через Make Script и учитывать что GoodBoy не воспринимает переносы строк); CharStatus - CharStatus(Item,Cond,число), команда условия, проверяющая у персонажа: - Item: CHP(численное значение HP), CMP(численное значение MP), CCP(численное значение CP), HP(HP в процентах), MP(MP в процентах), CP(CP в процентах), WEIGHT(вес переносимого в процентах), LV(уровень персонажа), SP(количество SP), RACE(Люди:0, Светлые Эльфы:1, Темные Эльфы:2, Орки:3, Гномы:4), STAND(стоит ли персонаж) - Cond: >=, >, ==, !=, <, <= Например: CharStatus(Weight,>=,45), проверка загрузки персонажа, больше или равно 45%, далее идет подпрограмма если условие совпало; PosOutRange - PosOutRange(X,Y,Z,R), команда условия на местонахождение персонажа с проверкой находится ли он вне указанных координат, например: PosOutRange(-96716,255766,-3443,3000), проверит НЕ находится ли персонаж в пределах радиуса 3000, центр которого находиться по координатам (-96716,255766,-3443), если проверка пройдена и персонаж ВНЕ указанных координат, то дальше начнется подпрограмма; PosInRange - PosInRange(X,Y,Z,R), команда условия на местонахождение персонажа с проверкой находится ли он в указанных координатах, например: PosInRange(-96716,255766,-3443,3000), проверит находится ли персонаж в пределах радиуса 3000, центр которого находиться по координатам (-96716,255766,-3443), если проверка пройдена и персонаж в указанных координатах, то дальше начнется подпрограмма; PosOutRange2 - PosOutRange2(X,Y,Z,Step), аналогично команде условия PosOutRange, но вместо радиуса используются шаги; PosInRange2 - PosInRange2(X,Y,Z,Step), аналогично команде условия PosInRange, но вместо радиуса используются шаги; GoHome - GoHome(), нажать кнопку [В город], появляющуюся в случае смерти персонажа; Say - Say(ТЕКСТ), сказать ТЕКСТ в обычный чат; Shout - Shout(ТЕКСТ), крикнуть ТЕКСТ; PartySay - PartySay(ТЕКСТ), сказать text в пати чат; PrivateSay - PrivateSay(Имя Игрока, ТЕКСТ), сказать ТЕКСТ в приват игроку; Exit - Exit(), выйти из скрипта; Pause - Pause(), поставить скрипт на паузу (примечание: после нажатия кнопки [Resume] скрипт продолжит выполняться со следующей строки); StrInDlg - StrInDlg(ТЕКСТ), команда условия, проверят находится ли строка диалога с ТЕКСТом у NPC, например: StrInDlg("Проверка снабжения"), проверит, есть ли у выбранного NPC строка диалога "Проверка снабжения" и если есть то перейдет к подпрограмме; StrOutDlg - StrOutDlg(ТЕКСТ), команда условия, проверяет отсутствует ли строка диалога с ТЕКСТом у NPC, например: StrOutDlg("Проверка снабжения"), проверит, отсутствует ли у выбранного NPC строка диалога "Проверка снабжения" и если отсутствует то перейдет к подпрограмме; ChangeWaitType - ChangeWaitType(X), изменение положения персонажа, X=0 - персонаж садиться, X=1 персонаж встает; ForceAttack - ForceAttack(Имя NPC[Id=XXX]), использование ForceAttack на NPC Name[Id=XXX] (примечания: сам не знаю как это работает, если уточните буду рад); Set(FishStart) - начать рыбачить; Set(FishStop) - закончить рыбачить; Set(RangeType,Rand) - установка радиуса действия бота - без ограничений; Set(RangeType,StartPos,R) - установка радиуса действия бота, где R - радиус с центром в точке нахождения персонажа в момент выполнения команды; Set(RangeType,DefPos,x,y,z,R) - установка радиуса действия бота, где R - радиус с центром по координатам (x,y,z); Set(RangeType,DefRange) - выставляет боту режим Define Range, то есть бот будет бегать в пределах установленного полигона; Set(DefRange,Add,x,y,z) - добавит координаты точки (x,y,z) полигона в режиме Define Range; Set(DefRange,Clear) - очистит записанные ранее координаты полигона в режиме Define Range; Set(RangeType,DefPath) - выставляет боту режим Define Path, то есть бот будет бегать в пределах заданных радиусов (их может быть несколько, зависит от количества радиусов добавленных командой Set(DefPath,Add,x,y,z,R)); Set(DefPath,Add,x,y,z,R) - добавить радиус R с центром по координатам (x,y,z) в режиме Define Path; Set(DefPath,Clear) - очистит записанные ранее координаты в режиме Define Path; Set(Item,Ops,Вещь1[Id=XXX];Вещь2[Id=XXX]) - установить операции для вещей, Ops: Pick(подберать)|NoPick(не подберать)|Save(ложить в хранилище)|NoSave(не ложить)|Sell(продавать)|NoSell(не продавать)|Delete(удалять)|NoDelete(не удалять), Set(Item,Ops,*) - установить для всех вещей; Set(Mon,Ops,Имя моба1[Id=XXX];Имя моба2[Id=XXX]) - установить операции для мобов, Ops: Attack(атаковать)|NoAttack(не атаковать)|AttackOne(атаковать если моб один)|Dodge(пропускать), Set(Mon,Ops,*) - установить для всех мобов; SellSeed(Имя фрукта[Id=XXX],Count,CityId) - продавать фрукты, City Id: Gludio Castle(1), Dion Castle(2), Giran Castle(3), Oren Castle(4), Aden Castle(5), Innadril Castle(6), Goddard(7); BuySeed(Имя семечки[Id=XXX],Count) - покупать семена; LoadConfig - LoadConfig(Имя файла), загружать ранее сохраненную конфигурацию, например: LoadConfig(Anatole), загрузит конфигурацию сохраненную как "Anatole.ini"; IsMember - IsMember(Имя игрока), команда условия, проверяет находится ли игрок с указанным именем в пати если да, то запускает подпрограмму; !IsMember - !IsMember(Имя игрока), команда условия, проверяет находится ли игрок с указанным именем в пати если нет, то запускает подпрограмму; RequestJoinParty - RequestJoinParty(Имя игрока,type), принять игрока в пати и установить тип лута: 0 нашедшему, 1 рандом, 2 случайно+присвоить, 3 по-очереди, 4 по-очереди+присвоить, пример: RequestJoinParty(jack,0) - пригласить jack в пати и установить лут - нашедшему; RequestOutParty - RequestOutParty(Имя игрока) - исключить игрока из пати, пример: RequestOutParty(jack) - игрок jack исключается из пати; QuitParty - QuitParty(), бот выходит из пати; QueryPlayerStatus - QueryPlayerStatus(Имя игрока,item,cond,число), команда условия, проверяет у указанного игрока: - item: HP,CHP,MP,CMP,CP,CCP, - cond: >=, >, ==, !=, <, <=; MemberStatus - MemberStatus(Имя игрока,status name[Id=XXX]), команда условия, проверяет находится ли игрок в пати и если да то использует скилл, например: MemberStatus(jack,Attack Aura[Id=77]), игрок jack находится в пати, использовать на него Attack Aura[Id=77]; !MemberStatus - !MemberStatus(Имя игрока,status name[Id=XXX]), команда условия, проверяет находится ли игрок в пати и если нет то использует скилл, например: MemberStatus(jack,Attack Aura[Id=77]), игрок jack не находится в пати, использовать на него Attack Aura[Id=77]; ReLogin - ReLogin(XXX), команда сделать логаут и залогиниться через XXX секунд, если интервал указан 0 секунд, то бот сделает логаут и логиниться не будет; DisFromNpc - DisFromNpc(Имя NPC[Id=XXX],Cond,Steps), команда условия, проверяет расстояние до NPC в шагах: - cond: >=, >, ==, !=, <, <= DisFromPlayer - DisFromPlayer(Имя игрока,Cond,Steps), команда условия, проверяет расстояние до игрока в шагах: - cond: >=, >, ==, !=, <, <= MonInRange - MonInRange(Имя мобы[Id=XXX],x,y,z,r,cond,количество), команда условия, проверяет находится ли указанный моб Mon Name[Id=XXX] в пределах радиуса c центром (x,y,z) в количестве YYY, MonInRange(*,x,y,z,r,cond,Count) - проверит указанный радиус на присутствие мобов вообще; - cond: >=, >, ==, !=, <, <= MoveToPlayer - MoveToPlayer(Имя Игрока), двигаться к игроку с указанным именем; MoveToNPC - NPCMoveToNPC(Имя NPC[Id=XXX]), двигаться к NPC с указанным именем; ItemCount - ItemCount(Имя Вещи[Id=XXX],cond,количество), команда условия, проверяет наличие ИмяВещи[Id=XXX] в инвентаре: - cond: >=, >, ==, !=, <, <=; CrystalizeItem - CrystalItem(Имя Вещи1[Id=XXX],количество;Имя Вещи2[Id=XXX],количество), производит кристаллизацию вещи, например: CrystalItem(Sword of Damascus[Id=79],1), кристаллизует один Sword of Damascus[Id=79]; Скриптовые команды добавленные в Goodboy 1.07: NPCInRange - NPCInRange(NPCName[ID=XXX],x,y,z,R), команда условие, проверяет находится ли указанный NPC в радиусе с координатами (X,Y,Z), если указать X=Y=Z=0, то центром радиуса будет местонахождения игрока в момент проверки; NPCInBattleRange - NPCInBattleRange(NPCName[ID=XXX]), команда условие, проверяет находится ли указанный NPC в зоне указанной командами Set(RangeType,StartPos,R), Set(RangeType,DefPos,x,y,z,R), Set(RangeType,DefRange) и Set(RangeType,DefPath); NPCSelInRange - NPCSelInRange(NPCName[ID=XXX]), выбирает указанного NPC в зоне указанной командами Set(RangeType,StartPos,R), Set(RangeType,DefPos,x,y,z,R), Set(RangeType,DefRange) и Set(RangeType,DefPath); MoveToNPCInRange - MoveToNPCInRange(NPCName[ID=XXX]), двигаться к NPC в зоне указанной командами Set(RangeType,StartPos,R), Set(RangeType,DefPos,x,y,z,R), Set(RangeType,DefRange) и Set(RangeType,DefPath); Терминология: Команда условия - команда скрипта, проверяющая что либо и если условие проверки совпадает, то следующим что сделает скрипт - перейдет к исполнению строк скрипта указанных в фигурных скобках, где { - начало подпрограммы и } - конец подпрограммы, если условие не совпадает, то скрипт пропустит подпрограмму и перейдет к следующей после конца подпрограммы строчке.
|