Kamrad.ru

Kamrad.ru (https://kamrad.ru/index.php)
-   CRPG на основе правил AD&D (https://kamrad.ru/forumdisplay.php?f=12)
-   -   Снова скрипты, нужна помощь в написании (https://kamrad.ru/showthread.php?t=2695)

AleS Key 17-05-2001 07:30

Снова скрипты, нужна помощь в написании
 
Задача: Написать скрипт, который:
1. заставляет барда петь, когда тот ничем не занят.
2. заставляет барда бежать _обязательно горланя песню_ за персонажем (если тот отходит слишком далеко от барда), который находтится в первой позиции (по кнопке 1 выделяется).
С первой задачей справился без проблем взяв скрипт thief3 и переправив поиск ловушек (функцию и модалу) на соответсвующие песне. Но вот со второй возникла одна проблема - как определить персонажа в первой позиции. LeaderOf(Myself), Player1, Player1Fill определяют протагониста. Сейчас он бегает только за ним. Есть конечно вариант зашить на кнопки переключение плееров с 1-го по 6-й, но коряво это как то, хотелось бы попроще.
В описании есть далеко не все. Может кто-нибуть что подскажет или хотя бы дайте ссылку на более полное описание ресурсов или интересных примеров с комментариями.

Sergul'a 17-05-2001 20:57

Помочь не могу, а вот спросить - спрошу.
Это какой же командой этот придурок поет песню?

AleS Key 18-05-2001 07:46

Так я же вроде написал. В двух строчках копии скрипта thief3 от БГ2 поменять надо: в условии поставить BATTLESONG место DETECTTRAP (в этом названии могу напутать) и в теле после THEN поставить BattleSong() место ловушек.

Sergul'a 18-05-2001 21:57

Дык не работал у меня этот самый BattleSong(), о чем и пишу. Я, правда, сам писал скрипт, с нуля, но не думаю, что сделал где-то ошибку.
Ладно, попробую именно изменять thief3, спасибо.

Dom 19-05-2001 03:32

У меня встал примерно такой же вопрос, но его я решить не смог. Тогда я поставил вопрос по другому. За кем должны бегать персонажи? Ответ прост - за тем, кто сражается в рукопашную. Поэтому в свои скрипты я вставил выбор первого (по номеру) персонажа, имеющего класс воин, паладин или рейнджер.
Выглядит это так:

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

Если после этого включить исходный скрипт, то выбор персонажа, за которым следовать, будет сделан заново.

AleS Key 21-05-2001 05:21

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.
Любое использование материалов сайта
возможно только с разрешения его администрации.