Гайд по написанию скриптов для гомункулусов
-
Ух.. я и просил функцию >__<. Третий фрагмент кода в посте зено не включает описания функции, тупо номер строки
..\AI\USER_AI\MonSupport.lua 377
, который в свою очередь попадает в rc7 рампаге от накаямы на функцию function AI_MSkillsAllowed(actor).итого:
3 изменения MonSupport.lua
function VerifyMonSettings(t,defaultTable,id)
function MAttackAllowed(actor)
function AI_MSkillsAllowed(actor) ?! вот это я хотел увидеть
и в Monsters.lua
добавляются описанные параметры к нужным мобам и дефолтному мобу.
Должно работать, проверять лень. -
Ух.. я и просил функцию >__<. Третий фрагмент кода в посте зено не включает описания функции, тупо номер строки
..\AI\USER_AI\MonSupport.lua 377
, который в свою очередь попадает в rc7 рампаге от накаямы на функцию function AI_MSkillsAllowed(actor).итого:
3 изменения MonSupport.lua
function VerifyMonSettings(t,defaultTable,id)
function MAttackAllowed(actor)
function AI_MSkillsAllowed(actor) ?! вот это я хотел увидеть
и в Monsters.lua
добавляются описанные параметры к нужным мобам и дефолтному мобу.
Должно работать, проверять лень. -
Ну хоть чуточку смекалки и сообразительности можно же проявить, зачем же строго по инструкции...
В функциях добавляются только проверки на текущие значения хп-сп хомяка, значит, бОльшая часть функций остается нетронутой. Тупо берем самый первый комментарий из этого таинственного куска кода, задаем поиск и... обнаруживаем, что функцию function MAttackAllowed(actor) только что меняли, а функцию function AI_MSkillsAllowed(actor) не трогали (а в ней упомянутый кусок есть как раз). И номер строки примерно в тот же район ссылается.
Вообще, чтобы разрешить ваши терзания, скажу, что эту часть кода действительно надо вставлять в function AI_MSkillsAllowed(actor) -
Ну хоть чуточку смекалки и сообразительности можно же проявить, зачем же строго по инструкции...
В функциях добавляются только проверки на текущие значения хп-сп хомяка, значит, бОльшая часть функций остается нетронутой. Тупо берем самый первый комментарий из этого таинственного куска кода, задаем поиск и... обнаруживаем, что функцию function MAttackAllowed(actor) только что меняли, а функцию function AI_MSkillsAllowed(actor) не трогали (а в ней упомянутый кусок есть как раз). И номер строки примерно в тот же район ссылается.
Вообще, чтобы разрешить ваши терзания, скажу, что эту часть кода действительно надо вставлять в function AI_MSkillsAllowed(actor) -
@sepulka:
Что я нашла :oops:<!-- m --><a class="postlink" href="http://code.google.com/p/ro-rail/">http://code.google.com/p/ro-rail/</a><!-- m --> никто не пробовал?
Я недавно попробовал, впечатления неоднозначные: очень шустрый скрипт (при телепорте, когда экран только проявляется, хом уже на полпути к дальным монстрам, а иногда уже и труп валяется, а хом ко второму мчиться), настройка, по задумке, должна быть очень легкой, но как сохранить сделанные мною изменения в конфигурационном файле я не понял. :oops:
-
@"sepulka":
Что я нашла<!-- m --><a class="postlink" href="http://code.google.com/p/ro-rail/">http://code.google.com/p/ro-rail/</a><!-- m --> никто не пробовал?
Я недавно попробовал, впечатления неоднозначные: очень шустрый скрипт (при телепорте, когда экран только проявляется, хом уже на полпути к дальным монстрам, а иногда уже и труп валяется, а хом ко второму мчиться), настройка, по задумке, должна быть очень легкой, но как сохранить сделанные мною изменения в конфигурационном файле я не понял. :oops:
-
@Kha-dar:
но как сохранить сделанные мною изменения в конфигурационном файле я не понял. :oops:Все очень просто. На <!-- m --><a class="postlink" href="http://forums.irowiki.org/showthread.php?t=48628">http://forums.irowiki.org/showthread.php?t=48628</a><!-- m --> автор отвечает и на этот вопрос тоже. Кроме того, по адресу <!-- m --><a class="postlink" href="http://code.google.com/p/ro-rail/wiki/StateFileIndex">http://code.google.com/p/ro-rail/wiki/StateFileIndex</a><!-- m --> есть полное описание формата.
Ну а если коротко, то в папке с игрой (не в "./AI/USER_AI/", а в той же директории, где "ragnarok.exe" и "motr.exe") после запуска скрипта должен появляться файл, который называется RAIL_State.xyz.lua, где xyz - "merc" или "homu".
В этом файле должно быть что-то типа:
rail_state["ActorOptions"]["ByType"][1078] = {}
rail_state["ActorOptions"]["ByType"][1078]["Priority"] = 0
rail_state["ActorOptions"]["ByType"][1078]["AttackAllowed"] = true
rail_state["ActorOptions"]["ByType"][1078]["SkillsAllowed"] = falseкак вариант, то же самое можно писать в таком формате:
rail_state.ActorOptions.ByType[1078] = {
Priority = 0,
AttacksAllowed = true,
SkillsAllowed = false,
}
оно потом само преобразуется к основному виду."ActorOptions" - тактика в отношении мобов, персонажей, нпц.
"ByType" - опции заданы для всех мобов типа 1078 "Red Plant". (RAIL позволяет также задавать поведение относительно id персонажа (моба). Для этого вместо "ByType" пишем "ByID". Чтобы задать поведение в отношении моба "по умолчанию", вместо "ByType" пишем "Default".)
1078 - Номер типа моба. Ну, вы знаете.Примерно вот так. Читайте документацию. А вообще, скрипт написан очень продуманно, на хорошем уровне знания lua. Много фишек, которые faithful использовал, меня, например, удивили.
p.s. Кстати, faithful вообще-то вроде бы заявлял, что завязал с РО. И вот...
-
@"Kha-dar":
но как сохранить сделанные мною изменения в конфигурационном файле я не понял. :oops:Все очень просто. На <!-- m --><a class="postlink" href="http://forums.irowiki.org/showthread.php?t=48628">http://forums.irowiki.org/showthread.php?t=48628</a><!-- m --> автор отвечает и на этот вопрос тоже. Кроме того, по адресу <!-- m --><a class="postlink" href="http://code.google.com/p/ro-rail/wiki/StateFileIndex">http://code.google.com/p/ro-rail/wiki/StateFileIndex</a><!-- m --> есть полное описание формата.
Ну а если коротко, то в папке с игрой (не в "./AI/USER_AI/", а в той же директории, где "ragnarok.exe" и "motr.exe") после запуска скрипта должен появляться файл, который называется RAIL_State.xyz.lua, где xyz - "merc" или "homu".
В этом файле должно быть что-то типа:
rail_state["ActorOptions"]["ByType"][1078] = {}
rail_state["ActorOptions"]["ByType"][1078]["Priority"] = 0
rail_state["ActorOptions"]["ByType"][1078]["AttackAllowed"] = true
rail_state["ActorOptions"]["ByType"][1078]["SkillsAllowed"] = falseкак вариант, то же самое можно писать в таком формате:
rail_state.ActorOptions.ByType[1078] = {
Priority = 0,
AttacksAllowed = true,
SkillsAllowed = false,
}
оно потом само преобразуется к основному виду."ActorOptions" - тактика в отношении мобов, персонажей, нпц.
"ByType" - опции заданы для всех мобов типа 1078 "Red Plant". (RAIL позволяет также задавать поведение относительно id персонажа (моба). Для этого вместо "ByType" пишем "ByID". Чтобы задать поведение в отношении моба "по умолчанию", вместо "ByType" пишем "Default".)
1078 - Номер типа моба. Ну, вы знаете.Примерно вот так. Читайте документацию. А вообще, скрипт написан очень продуманно, на хорошем уровне знания lua. Много фишек, которые faithful использовал, меня, например, удивили.
p.s. Кстати, faithful вообще-то вроде бы заявлял, что завязал с РО. И вот...
-
Я тоже завязала, причем давно. И вот
-
Я тоже завязала, причем давно. И вот
-
Euthanasia M_D_, спасибо за подсказку, при настройке этого АИ я не знал что нужна еще строчка
rail_state["ActorOptions"]["ByType"][1078] = {}
, хотя теперь понимаю, что её наличие логично, и мог бы сам бы догадаться -
Euthanasia M_D_, спасибо за подсказку, при настройке этого АИ я не знал что нужна еще строчка
rail_state["ActorOptions"]["ByType"][1078] = {}
, хотя теперь понимаю, что её наличие логично, и мог бы сам бы догадаться -
У меня вопрос по специфике работы V_OWNER, она возвращает id хозяина только для данного владельца или для других гомункулов (наемников) тоже?
-
У меня вопрос по специфике работы V_OWNER, она возвращает id хозяина только для данного владельца или для других гомункулов (наемников) тоже?
-
Ответ нашел.
[code:3qxn1y16]
GetV (0|V_OWNER , id)
Возвращает: 1 целое число
Описание: Выдает ID вашего алхимика/креатора. Аргумент id может быть любым числом.
[/code:3qxn1y16] -
Ответ нашел.
[code:3qxn1y16]
GetV (0|V_OWNER , id)
Возвращает: 1 целое число
Описание: Выдает ID вашего алхимика/креатора. Аргумент id может быть любым числом.
[/code:3qxn1y16] -
наткнулся на англо-язычный сборник AI для гомункулов http://s14.invisionfree.com/proiriscommunity/ar/t4760.htm
-
наткнулся на англо-язычный сборник AI для гомункулов http://s14.invisionfree.com/proiriscommunity/ar/t4760.htm
-
Они, как и большинство обсуждаемых, достаточно старые и давно не обновлялись.
ИМХО, надо обращать внимание на новые разработки, например, такие как RAIL - шустрый как MirAI, настраевыемый и умный как Rampage, и работает с наёмниками также как AzzyAI - когда его допишут это будет лучший АИ.
-
Они, как и большинство обсуждаемых, достаточно старые и давно не обновлялись.
ИМХО, надо обращать внимание на новые разработки, например, такие как RAIL - шустрый как MirAI, настраевыемый и умный как Rampage, и работает с наёмниками также как AzzyAI - когда его допишут это будет лучший АИ.