![]() |
Снова скрипты, нужна помощь в написании
Задача: Написать скрипт, который:
1. заставляет барда петь, когда тот ничем не занят. 2. заставляет барда бежать _обязательно горланя песню_ за персонажем (если тот отходит слишком далеко от барда), который находтится в первой позиции (по кнопке 1 выделяется). С первой задачей справился без проблем взяв скрипт thief3 и переправив поиск ловушек (функцию и модалу) на соответсвующие песне. Но вот со второй возникла одна проблема - как определить персонажа в первой позиции. LeaderOf(Myself), Player1, Player1Fill определяют протагониста. Сейчас он бегает только за ним. Есть конечно вариант зашить на кнопки переключение плееров с 1-го по 6-й, но коряво это как то, хотелось бы попроще. В описании есть далеко не все. Может кто-нибуть что подскажет или хотя бы дайте ссылку на более полное описание ресурсов или интересных примеров с комментариями. |
Помочь не могу, а вот спросить - спрошу.
Это какой же командой этот придурок поет песню? |
Так я же вроде написал. В двух строчках копии скрипта thief3 от БГ2 поменять надо: в условии поставить BATTLESONG место DETECTTRAP (в этом названии могу напутать) и в теле после THEN поставить BattleSong() место ловушек.
|
Дык не работал у меня этот самый BattleSong(), о чем и пишу. Я, правда, сам писал скрипт, с нуля, но не думаю, что сделал где-то ошибку.
Ладно, попробую именно изменять thief3, спасибо. |
У меня встал примерно такой же вопрос, но его я решить не смог. Тогда я поставил вопрос по другому. За кем должны бегать персонажи? Ответ прост - за тем, кто сражается в рукопашную. Поэтому в свои скрипты я вставил выбор первого (по номеру) персонажа, имеющего класс воин, паладин или рейнджер.
Выглядит это так: IF !See(NearestEnemyOf(Myself)) !GlobalGT("pscript_fr","LOCALS",0) Exists(Player1) OR(3) Class(Player1,FIGHTER) Class(Player1,PALADIN) Class(Player1,RANGER) THEN RESPONSE #100 SetGlobal("pscript_fr","LOCALS",6) END Тоже самое для остальных (со 2 по 6) персонажей, присваивая переменной pscript_fr значения от 5 до 1. Тогда приказ следовать за персонажем будет выглядеть так: IF ActionListEmpty() Global("pscript_fr","LOCALS",6) Exists(Player1) !Range(Player1,25) !See(NearestEnemyOf(Myself)) THEN RESPONSE #100 MoveToObject(Player1) END Повторяем это условие еще 5 раз меняя значение переменной pscript_fr и номер персонажа. Так как значение переменной pscript_fr будет записано в сейвах, то при изменении состава группы следует его обнулить, используя другой скрипт, включающий в себя следующее: IF GlobalGT("pscript_fr","LOCALS",0) THEN RESPONSE #100 SetGlobal("pscript_fr","LOCALS",0) END Если после этого включить исходный скрипт, то выбор персонажа, за которым следовать, будет сделан заново. |
2Dom: Спасибо.
В принципе идея ясна. НО, все же мне нужно, чтобы бард держался именно 1-го в линейке, а не на первого присоединенного воина. Я примерно так себе этот скрит и представлял, только переключение на персонажа делать не автоматом на первого воина (можно наверное еще поставить условие на оружие - рукопашное или дистанционное), а все же на кнопки - выбирать при помощи их соответствующий глобальный скрипт для Player1-6. Можно конечно вообще заставить барда метаться между всеми партейцами. Еще один вопрос: Командой MoveToObject скриптуемый бежит вплотную к объекту. Нет ли возможности не добегать шагов эдак пять? Если добавим в конце этой команды ...Follow, то скриптуемый будет держать нужную дистанцию, НО при этом все модальные действия (песня, поиск ловушек, изгнание) завершаются. А общем то идея с бардом простая: 1. Желательно накрывать песней большее количество партейцев. 2. НО, если перый в линейке сильно отрывается вперед, то следовать за ним. 3. Пытаться при этом не подходить к битве вплотную и стараться находить золотую середину (для обеспечения п.1) p.s. А более подробного описания команд нигде нет? |
All times are GMT +3. The time now is 15:11. |
Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Любое использование материалов сайта
возможно только с разрешения его администрации.