|
|
|
Канал X2: The Threat: «Скрипты - это легко...» |
|
Нужен ли этот проект? |
Да |
|
96% |
[ 215 ] |
Нет |
|
0% |
[ 1 ] |
Мне все равно |
|
2% |
[ 6 ] |
|
Всего проголосовало : 222 |
|
|
|
Krom
455 EGP
   Рейтинг канала: 1(1) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005
 |
|
DragonP:
Недавно обнаружил такой момент - обработчику сигналов SIGNAL_KILLED автоматически отправляются некоторые аргументы (для SIGNAL_KILLED они указаны в стандартном обработчике). Так вот, если написать свой обработчик сигнала, эти аргументы будут переданы скрипту НАСИЛЬНО. Подозреваю, что для других сигналов дело обстоит подобным же образом.
Можешь вписать это в справочник?
P.S> И ещё такой пункт - ко многим командам, имеющим параметр RetIf, не указаны возвращаемые значения. Можно это восполнить? Если надо, могу перебрать команды, узнать эти значения - но чур не все. Мне одному много будет.
_________________ Не спешите меня. |
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Krom : |
Недавно обнаружил такой момент - обработчику сигналов SIGNAL_KILLED автоматически отправляются некоторые аргументы (для SIGNAL_KILLED они указаны в стандартном обработчике). Так вот, если написать свой обработчик сигнала, эти аргументы будут переданы скрипту НАСИЛЬНО. Подозреваю, что для других сигналов дело обстоит подобным же образом.Можешь вписать это в справочник?
|
Сделаю.
Krom : |
P.S> И ещё такой пункт - ко многим командам, имеющим параметр RetIf, не указаны возвращаемые значения. Можно это восполнить? Если надо, могу перебрать команды, узнать эти значения - но чур не все. Мне одному много будет.
|
Помогай. У меня со временем совсем туго и еще месяца два так будет. Так что, внести порправки смогу, а на эксперименты пока время нет, я свой "Огненный Заслон" уже людям пообещал, а закончить времени нет.
Присылай всю инфу, обязательно внесу в учебник.
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
Предлагаю добавить в учебник следующее:
Команды:
<RetVar> = get max sectors in x direction
и
<RetVar> = get max sectors in y direction
не работают, и использовать их в своих скриптах смысла нет никакого. Всегда возвращают 20 и 15 независимо от карты (хоть 1 сектор всего на ней).
Странно, но даже акм об этом не знал
|
|
|
Shaddie
556 EGP
      Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004
 |
|
AlexYar : |
...использовать их в своих скриптах смысла нет никакого. Всегда возвращают 20 и 15 независимо от карты (хоть 1 сектор всего на ней).
|
Подтверждаю . Недавно сам прикололся, зачем эти команды нужны?!
В obj для этих скрипт-команд жестко прописано всегда возвращать 20 и 15.
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
AlexYar : |
<RetVar> = get max sectors in x directionи<RetVar> = get max sectors in y direction
не работают, и использовать их в своих скриптах смысла нет никакого. Всегда возвращают 20 и 15 независимо от карты (хоть 1 сектор всего на ней).
|
Изменять нужно формулировку. В учебнике "Возвращает размер карты по оси X и Y." , а нужно "Возвращает максимально возможный размер карты по оси X и Y." Хотя когда знаешь эти значения, то команды нах не нужны.
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
Слух, а может прицепить к учебнику что-то вроде "копилочки скриптов" ? Я имею в виду скрипты-болванки, которые другие могут дорабатывать под себя.
Просто иногда заматывает набивать многие процедуры проверок или создания объектов заново в каждом скрипте. А так взял скрипт-болваночку готовую, чутка подшлифовал под себя, да и используй на здоровье.
К примеру, надо создать авианосец с определенным кол-вом кораблей определенного типа внутри - понадобится всего-лишь вставить строчку запуска болваночки с нужными аргументами. И вуаля!
Нафига строчить один скрипт на 100 экранов, когда все задачи можно выполнить одним маленьким через промежуточные?
Идея понятна или не?
Если это нужно, то можно открыть отдельную тему, где пилоты будут скидывать ссылки на свои болванки (желательно с подробным описанием, какая что делает). А еще лучше бы какой-нить фтп, на который сразу можно было бы кидать...
DragonP : |
а нужно "Возвращает максимально возможный размер карты по оси X и Y."
|
Неа - "Возвращает два числа 20 и 15" Так точнее. К карте никакого отношения команды не имеют.
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
AlexYar : |
Слух, а может прицепить к учебнику что-то вроде "копилочки скриптов" ? Я имею в виду скрипты-болванки, которые другие могут дорабатывать под себя.
Просто иногда заматывает набивать многие процедуры проверок или создания объектов заново в каждом скрипте. А так взял скрипт-болваночку готовую, чутка подшлифовал под себя, да и используй на здоровье.
|
Дак я давным давно предлагал и тему сделал, тока никто не поддержал. У меня уже полезных процедурок накомитось много, руки не доходят выложить. Посмотри здесь: http://www.elite-games.ru/conference/viewtopic.php?t=27485
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
Цитата: |
global script map: remove: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>, script=<Script Name>, prio=<Var/Number>
Отменить назначение скрипта обработчика для команды или сигнала <Object Command/Signal> всех объектов класса <Var/Class> принадлежащих расе <Var/Race> скрипта <Script Name>. (Удалить обработчик команды).
global script map: ignore: key=<Object Command/Signal>, class=<Var/Class>, race=<Var/Race>, script=<Script Name>, prio=<Var/Number>
Исключить обработку скрипта обработчика на объектах определенного типа. Параметры такие же как и у двух предыдущих команд. Пример: установив обработчик сигнала SIGNAL_ATTACKED для объектов класса «Корабль», нам требуется исключить объекты класса «Дрон» выглядеть это будет вот так:
001 global script map: set: key=SIGNAL_ATTACKED, class=Корабль, race=Player, script=скрипт_обработчик, prio=100
002 global script map: ignore: key=SIGNAL_ATTACKED, class=Дрон, race=Player, script=скрипт_обработчик, prio=100
|
Ошибки: У этих команд нет параметров Script и Prio.
В практикуме "создаем новую команду в меню":
Цитата: |
Теперь, закрыв доступ к нашей команде кораблям класса М1, TL, нам остается выполнить последнее условие: обеспечить доступ к команде только для кораблей на которых установлен «Боевой программный доступ МК1».
|
Описка - вместо модуль написано "доступ".
|
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
Да, и еще.
В разделе "практикум" - "Создаем новую команду в меню" в самом конце приведен отрывок скрипта для примера (с проверкой на активацию команды). Так вот в данном примере нифига не понятно, откуда взялась переменная $station. Имхо, аргументы данного скрипта надо было приводить обязательно, без них он попросту бесполезен и новичкам нифига не разобраться (только наоборот запутаются еще больше).
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
то Алекс
Принято к сведенью, поправим-дополним
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
И последнее на сегодня
Речь всё о том же. А именно о скрипте проверки условий активации пункта меню. Имхо гораздо разумнее при НЕвыполнении условий возвращать не флаг CmdOnChkDisable , а вообще ничего не возвращать! Т.е. "return null". Тогда пункт в меню вообще не появится вплоть до выполнения всех условий
зыж А вообще я сейчас работаю над динамической системой диалога с игроком через эти самые пунты меню, чтобы после вопросов в консоли появлялись пункты с вариантами ответов
зыыж Кстати, нашелся способ увеличить количество всех команд c 32 каждого вида хоть в тысячу раз
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
AlexYar : |
Речь всё о том же. А именно о скрипте проверки условий активации пункта меню. Имхо гораздо разумнее при НЕвыполнении условий возвращать не флаг CmdOnChkDisable , а вообще ничего не возвращать! Т.е. "return null". Тогда пункт в меню вообще не появится вплоть до выполнения всех условий
|
А с флагами CmdConCheck.OneTime и CmdConCheck.Infinite не разобрался? ИМХО разницы нет.
AlexYar : |
зыыж Кстати, нашелся способ увеличить количество всех команд c 32 каждого вида хоть в тысячу раз
|
делись. И если это возможно, то наверное и новые группы команд можно добавлять. Было-бы крайне полезно.
P/s ты еще про статью с вратами говорил, будет или нет? А то, ждемс.
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
DragonP : |
А с флагами CmdConCheck.OneTime и CmdConCheck.Infinite не разобрался? ИМХО разницы нет.
|
Есть разница. Если использовать вышеозвученные команды, то пункт в командном меню будет отображаться, хоть и затененно! А так как в игре ограничение на 10 слотов, то нафига занимать неиспользуемыми (неактивными) командами места? Если вообще флагов не возвращать, то строчка меню заниматься не будет, так как там будет пусто
DragonP : |
делись. И если это возможно, то наверное и новые группы команд можно добавлять.
|
Новые вряд-ли. А вот имеющиеся можно множить, просто переключаясь между несколькими файлами-описателями (будут меняться названия команд), плюс динамический переключатель устройств (который я уже доделываю) будет менять значения команд. Получаем дофига вариаций одной и той же строчки (с одним ИД).
Вот и вся малина
DragonP : |
P/s ты еще про статью с вратами говорил, будет или нет? А то, ждемс.
|
Ууу, это если будет, то не скоро Время у меня более менее освободится только после выхода аддона-3 к Инкомингу (уже 63 скрипта написал, еще немножко осталось. Штук сорок ).
.
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Значительно дополнена статья о сигналах. Скриптописателям советую прочесть.
http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./ScE.htm#v _Сигналы._
_________________ Звезды зовут... |
|
|
Shaddie
556 EGP
      Рейтинг канала: 4(60) Репутация: 118 Сообщения: 261 Откуда: Томск Зарегистрирован: 09.09.2004
 |
|
Уточнение по команде:
Цитата: |
<RetVar/IF> <object> get shield and hull percent
Должна возвращать массив из двух значений, состояние щита и состояние корпуса в процентах от максимального. Но фактически возвращает только состояние щита и то как то не правильно. В общем судя по всему инструкция не работает.
|
Возвращает значение = (Hull+Shield)*100/(MaxHull+MaxShield).
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Shaddie : |
Возвращает значение = (Hull+Shield)*100/(MaxHull+MaxShield).
|
Это что, среднестатистическое состояние корабля в процентах получается
ТО ALL
Изменены статьи "Использование пользовательских языковых файлов при работе с командным меню" , "Использование тэгов и спец. символов для оформления текстов." и "Добавление новой команды"
Изменения по сути не значительные, но полезные. Основные из них:
1. Добавление краткого описания для вновь созданных команд.
2. Обязательность закрытия цветовых спецсимволов.
А остальное совсем по мелочи.
Собственно и все.
Оффтоп: Достал меня этот narod.ru, опять сайт обновить не могу. "Эх уйду я от вас"(с)домовенок Кузя.
_________________ Звезды зовут... |
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
Предлагаю вашему вниманию мой последний труд (в смысле не последний вообще, а последний на сегодня ).
Это статья о организации работы AL Engine (Искусственной жизни) в галактике Х. Эта опция движка Х2 незаслуженно обойдена вниманием, в большинстве модов совершенно не используется (только в Ребалансе), а взамен намучены всякого рода обходы и выдумки для того чтобы наполнить жизнь в галактике Х2 разного рода нововведениями связанными с AL. Но велосипед уже изобретен и поверьте очень удобен. А то что им не пользуются, так ИМХО от того, что не умеют на нем ездить. Кому это интересно, пожалуйста катайтесь.
http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./ArtificateLife.htm
И еще. Так как сейчас очень много пилотов начали работу над своими модами, и те что разбираются в устройстве и те что нет (это я не в обиду), я добавил к учебнику некоторые статьи о том как устроена Х2-Вселенная пилотов ЕГ. Спасибо за их изыскания.
http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./Contents.htm (последний раздел)
PS Еще раз о том, чтобы вы делились своими изысканиями. Шлите мне все материалы связанные со скриптописанием или моддингом если считаете, что в них освещены вопросы которые в учебнике на раскрыты.
Pss И еще прошу ознакомиться с моим постом в FAQ Скриптописание по поводу работы BBS News Engine (а то он уплыл на старую страницу), не может быть чтобы ни у кого не было никакой информации по этому вопросу.
http://www.elite-games.ru/conference/viewtopic.php?p=1041786#1041786
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
А как часто обновляется chm - версия?
А по ББСкам - то пока не найден способ организовать работу через кнопки в менюшках миссий, то и смысла в ББС-миссиях нет никакого
Проще сделать свои диалоги через консоль доп.команд корабля или станции (подключать туда варианты ответов после каждого вопроса).
|
|
|
DragonP
281 EGP
   Рейтинг канала: 3(27) Репутация: 108 Сообщения: 527 Откуда: Новосибирск Зарегистрирован: 18.12.2004
 |
|
AlexYar : |
А как часто обновляется chm - версия?
|
Не часто. Щас правлю описание команд, пока на навигационных. После этого обновлю chm.
AlexYar : |
А по ББСкам - то пока не найден способ организовать работу через кнопки в менюшках миссий, то и смысла в ББС-миссиях нет никакого
|
Делается и без обратной связи. Кстати для Инкоминга было бы актуально, т.к. он как отдельная игра то ты можешь воротить что угодно. Я ссылки на АКМ посты не помню, набери в поиске "BBS News Engine" и они выпрыгнут, там очень интересные принципы организаций этих самых миссий предложены.
_________________ Звезды зовут... |
|
|
AlexYar
1916 EGP
               Рейтинг канала: 6(445) Репутация: 325 Сообщения: 32751
Зарегистрирован: 26.10.2003
 |
|
DragonP : |
http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./Contents.htm (последний раздел)
|
Последний раздел в оглавлении - Моддинг и свзяь Тшипс и моделей кораблей. Или я тебя не так понял?
DragonP : |
статья о организации работы AL Engine
|
Прочел, оценил Но на самое главное ты внимание забыл проакцентировать - на главном баге эгософтовских Ал-плагинов, делающих их отключение - фикцией. Именно поэтому я не использую, и никому не рекомендую использовать их ал-плагины.
Суть в следующем. Плагин управляет ал-функциями, создает корабли, проверяет их наличиее, воссоздаёт..... А при "отключении" бросает весь этот бардак как есть! Т.е. НЕ удаляют ранее созданные корабли из галактики, секторов и станций! Корабли остаются висеть в космосе без команд, создавая и без того неслабые тормоза в секторах, куда прилетает игрок. Так же занимают место на станциях, хоть оно и миллионное. Но самое главное - засоряют вселенную количеством кораблей, что при обработке массивов всех кораблей во вселенной сильно замедляет время обработки этих массивов!
Т.е. в галактике множат мусор, удалением которого создатели данных плагинов не стали утруждаться.
Возникает вопрос, а чем собственно могут тормозить корабли, если на них нет команд и не запущены скрипты?
Ответ - да своим существованием во вселенной!
Попробуйте просканировать всю галактику и все корабли в ней, чтобы проделать какую-нить операцию или апгрейд. А затем очистите всю вселенную от "мусора" - и снова проделайте свой скан. Удивлены, насколько быстрее он прошел? Потому что массив, содержащий все корабли, стал значительно меньше!
По сути, в оригинальной игре со всеми плагинами, обновлениями плагинов, и после их остановки, а так же вследствие несовершенной работы других скриптов, либо несовершенных начальных установок карты, содержит на 18000-19000 кораблей БОЛЕЕ ПОЛОВИНЫ - мусора, т.е. мертвых кораблей, которые никогда не будут использованы. Резонный вопрос - а оно надо?
DragonP : |
набери в поиске "BBS News Engine" и они выпрыгнут, там очень интересные принципы организаций этих самых миссий предложены.
|
Ломает меня разбираться в чем-то другом, когда своё уже придумано и налажено
|
|
|
|
|
|
Канал X2: The Threat: «Скрипты - это легко...» |
|