Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » FAQ: Скриптописание | страница 52
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 52 из 77
На страницу: Пред.  1, 2, 3 ... 51, 52, 53 ... 75, 76, 77  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал X2: The Threat: «FAQ: Скриптописание»
Пассажир
 

Пассажир




DragonP, fly с timeout я не нашел, есть только follow object. Она подойдет?
    Добавлено: 18:03 11-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Grey Wolf :
Вообще-то не приводит, с чего ты это взял?

АКМ, подсказал. Это для медленных компьютеров, на циклах без wait частенько зависают, а на быстрых четко тарабанят Улыбка
_________________
Звезды зовут...
    Добавлено: 18:12 11-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
McLay :
DragonP, fly с timeout я не нашел, есть только follow object. Она подойдет?

Дык выкручиваться надо, подменять, заменять, подсовывать Подмигиваю
ScE не совершенен, думай.
_________________
Звезды зовут...
    Добавлено: 18:15 11-09-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32759

Зарегистрирован: 26.10.2003
Нужна срочная информация по всем стандартным командам!

Не доп.командам (COMMAND_TYPE_FIGHT_0 и прочие), а именно стандартным! Нужны их связи со своими скриптами для кораблей игрока, а так же зависимости каждой команды от апгрейдов (какая команда от какого апгрейда зависит).

Для начала хотябы инфу по всем командам, зависящим от боевых софтов, и как можно подробнее.

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

Добавлено: Уже не срочно Улыбка
    Добавлено: 20:31 11-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Уважаемые скриптописатели, нынче в приватном разговоре с Executor’ом по вопросу бета-теста моего скрипта, этим уважаемым пилотом было высказано неудовольствие отсутствием хелпа по «I» в моих скриптах. Что для меня было непонятно, что за хелп по «I». И в дальнейшем выяснилось следующее:

В командном меню, вы наверное обращали внимание на маленькую буковку «I» между длинным и коротким названием команды, т.е. приблизительно вот такой вид:
2 Стыковаться к… _______________ i __[Dockdat]
Так вот, если установить курсор на эту команду и нажать “i”, то мы получаем краткий хелп по этой команде. Я так тщательно это описываю это, потому, что просмотрев все самые популярные ЕГ скрипты, уважаемых AKM, XenonTomb, GreyWolf и других не менее уважаемых скриптописателей, я обнаружил что ни один из них не имеет хелпа по “i”. Так как они этого не используют, я сделал вывод, что они об этом не знают, а не просто ленятся его добавлять. Разобравшись, что и где хочу поделиться со всеми.

Для вспомогательных хелпов в основном языковом файле выделена страница 2022, идентификаторы совпадают с ид команд на страницах 2010 или 2011. Добавив соответствующий текст для вспомогательного хелпа, на эту страницу, в нужный идентификатор, мы получаем в строке меню соответствующем нашему скрипту значек “i”. И теперь при установке курсора на эту строку в меню и нажатии на “i”, будет высвечиваться текст со страницы 2022 соответствующего идентификатора. ИМХО это очень удобно, т.к. большинство пользователей наших скриптов, ленится читать описание. Наличие данного хелпа, поможет конечному пользователю правильно использовать данный скрипт, и не задавать вопросов ответы на которые есть в ридми скриптов А правила почитать? . Да и вообще, что бы скрипты были на мировом уровне. Хы...

Респект Executor’у за акцентирование внимания на данном вопросе Есть предложение! .
_________________
Звезды зовут...
    Добавлено: 18:45 14-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
AlexYar :
DragonP :
А с флагами CmdConCheck.OneTime и CmdConCheck.Infinite не разобрался? ИМХО разницы нет.


Есть разница. Если использовать вышеозвученные команды, то пункт в командном меню будет отображаться, хоть и затененно! А так как в игре ограничение на 10 слотов, то нафига занимать неиспользуемыми (неактивными) командами места? Если вообще флагов не возвращать, то строчка меню заниматься не будет, так как там будет пусто Улыбка

Это понятно из твоего предыдущего поста. Я имел в виду разницу именно между указанными флагами. По описанию MSCI, CmdConCheck.OneTime должен запускать проверочный скрипт один раз при формировании меню, а CmdConCheck.Infinite это циклическое выполнение пр.скрипта пока отражается меню и соответственно его динамическое изменение. Но меню изменяется динамически не зависимо от флага, и скрипт выполняется в цикле до тех пор, пока отражено меню. Непонятно для чего они вобще нужны.
_________________
Звезды зовут...
    Добавлено: 05:16 15-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
У кого-нибудь получалось добыть сигнал SIGNAL_COLLISIONWARN
ИМХО, он дохлый. Кучу кораблей раздолбал, но хоть намек получить не удалось.

И еще если у кого есть наработки по авто-аргументам сигналов, поделитесь для учебника. Неохото, каждый сигнал гонять, что бы выяснить. Улыбка
_________________
Звезды зовут...
    Добавлено: 11:51 16-09-2005   
Krom
 455 EGP


Рейтинг канала: 1(1)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
DragonP :
У кого-нибудь получалось добыть сигнал SIGNAL_COLLISIONWARN

Было такое, когда кораблик со станции взлетал, а к вратам выруливать надо было на другую сторону станции. С двумя кораблями у тебя вряд ли получится - у них size слишком маленький (это я судя по предтурнирным наработкам говорю), хотя работа сигнала иногда очевидна... Не знаю.
_________________
Не спешите меня.
    Добавлено: 11:56 16-09-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32759

Зарегистрирован: 26.10.2003
Krom :
хотя работа сигнала иногда очевидна... Не знаю.


Это не работа сигнала, а движковая функция обхода. А сигнал, про который Драгон-П говорит, у меня тоже получить не удалось Улыбка
    Добавлено: 18:39 16-09-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32759

Зарегистрирован: 26.10.2003
Оченно интересуют все комбинации команд, которые 100% вызывают вылет игры в винду Гы-гы

Если кто знает - просьба перечислить. Впоследствии этот сборник можно добавить в учебник по скриптописанию в раздел "Так делать нельзя" Улыбка

Пример:
001 $sec == Argon Prime
002 play sample : $sec

Хы...
    Добавлено: 16:55 18-09-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32759

Зарегистрирован: 26.10.2003
DragonP :
Так вот, если установить курсор на эту команду и нажать “i”, то мы получаем краткий хелп по этой команде.


Респект! Сам бы догадался еще оооочень не скоро. Использование инфы по команде уже заюзал в системе автоперевода средств. Теперь там полное описание и хелп по использованию Хы...
    Добавлено: 08:36 19-09-2005   
Krom
 455 EGP


Рейтинг канала: 1(1)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
AlexYar :
Это не работа сигнала, а движковая функция обхода. А сигнал, про который Драгон-П говорит, у меня тоже получить не удалось Улыбка

Сигнал такой тоже есть, он появляется в меню информации по кораблю, когда тот начинает объезжать станцию - по крайней мере, у меня такое наблюдалось. Ну а что скриптового обработчика нет, так это факт. Печальный Гы-гы
_________________
Не спешите меня.
    Добавлено: 12:19 19-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
AlexYar :
Если кто знает - просьба перечислить.

А способы игруху вместе с виндами повесить, надо? Улыбка Есть парочка.
Krom :
Сигнал такой тоже есть, он появляется в меню информации по кораблю, когда тот начинает объезжать станцию - по крайней мере, у меня такое наблюдалось.

Может он както связан с ограничением скорости при стыковке. Сегодня еще раз попытаю. А то я его в учебнике уже "мертвым" окрестил.
_________________
Звезды зовут...
    Добавлено: 13:26 19-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Если кто имеет наработки по организации работы BBs engine или News Engine (описание тегов, артикли и т.д. и т.п.) нужна инфа любого типа подсказки, статьи, ссылки и т.д руско или англо язычные значения не имеет. Если что знаете присылайте на мыло.

ИМХО если разберемся как работает, то это может оказаться ключем к организации собственных миссий с использованием станционных BBS.

ps на сегодня имеется AKM'овские посты по этой теме, и копия егософтовской страницы с документацией. Но на сайте Егософт ее похоже убрали, а то что есть неполная информация.
_________________
Звезды зовут...
    Добавлено: 18:55 19-09-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32759

Зарегистрирован: 26.10.2003
Насколько я понял, в скриптах ничего существенного не задается, все ББС-миссии в обжах спрятаны Расстроен

Или ты про то, что в "Новости" можно миссии запихать?
    Добавлено: 19:29 19-09-2005   
Grey Wolf
 500 EGP


Рейтинг канала: 2(17)
Репутация: 115
Сообщения: 1677
Откуда: Ростов-на-Дону
Зарегистрирован: 31.03.2003
DragonP :
А то я его в учебнике уже "мертвым" окрестил.


Да мертвый он. Есть способ его косвенно получить.
Например, в одном из стеков кораблю отдана команда "лететь куда-нить ограниченное время". Опосля этой команды меняется локальная переменная. В другом стеке через такое же (или чуть большее для гарантии) время проверяется значение этой локальной переменной, если значение изменилось, значит сигнала нет, если осталось прежним, то выполнение команды "лететь" прервано движком и работает механизм обхода препятствий, сигнал есть.
_________________
Быстро выпитая рюмка не считается налитой
    Добавлено: 21:50 19-09-2005   
unihorn
 220 EGP


Репутация: 60
Сообщения: 464
Откуда: Москва
Зарегистрирован: 26.10.2004
Кстати по поводу настроек разбросов цен их колебаний. Меня глючит? Или глючит мой комп? Или я что-то не так делаю? Команда <station> set price of ware <ware> to <price> Cr не работает (т.е. не изменяет эту самую цену), и мне разброс цен (и последуюшие их колебания) приходится делать весьма хитрыми путями...
_________________
Мир ищу, где волки агнцам служат,
И нету слуг верней
Где слезы никого не душат
Не ведают смертей
    Добавлено: 01:39 20-09-2005   
AlexYar
 1916 EGP


Рейтинг канала: 6(445)
Репутация: 325
Сообщения: 32759

Зарегистрирован: 26.10.2003
unihorn :
Кстати по поводу настроек разбросов цен их колебаний. Меня глючит? Или глючит мой комп? Или я что-то не так делаю? Команда <station> set price of ware <ware> to <price> Cr не работает (т.е. не изменяет эту самую цену), и мне разброс цен (и последуюшие их колебания) приходится делать весьма хитрыми путями...


С большинством товаров эта команда не работает вообще. Разброс цен регулируется в конфигах, а кол-ва товара на складах - ценой товара.

Но с кол-вом товара уже обход найден благодаря Shaddie и его проги по добавлению скриптовых команд (там можно увеличить трюмы всех станций в игре сразу на одинаковый коэффициент).
    Добавлено: 08:54 20-09-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Grey Wolf :
Есть способ его косвенно получить.

Я испробовал другой. Сделал ему обработчик, выводящий в лог надпись «Signal COLLISIONWARN», и зацепил его на все корабли в галактике и на все станции. И принялся устраивать дебоши типа: мешать вылететь кораблю, давать команду стыковаться трем кораблям и в это же время взлетать пяти стыкованным, биться TL о станции и корабли, проходить на нем в непосредственной близости от станций. Результаты никакие. За час подобного беспредела ни один из 18000 объектов в галактике не получил сигнала SIGNAL_COLLISIONWARN. ИМХО он «мертвый»
unihorn :
Кстати по поводу настроек разбросов цен их колебаний. Меня глючит? Или глючит мой комп? Или я что-то не так делаю? Команда <station> set price of ware <ware> to <price> Cr не работает (т.е. не изменяет эту самую цену), и мне разброс цен (и последуюшие их колебания) приходится делать весьма хитрыми путями...

А ты кому цены менять пытался, случайно не неписям? Насколько я знаю эта команда работает только со станциями игрока и меняет цены в пределе от фиксированной минимальной до фиксированной максимальной.
AlexYar :
Но с кол-вом товара уже обход найден благодаря Shaddie и его проги по добавлению скриптовых команд (там можно увеличить трюмы всех станций в игре сразу на одинаковый коэффициент).

Интересно, а на экономике в галактике это не отразиться? При расчет времени производства и ресурсозатрат не использует ли движок этих фиксированных объемов как какой либо коэффициент.
AlexYar :
асколько я понял, в скриптах ничего существенного не задается, все ББС-миссии в обжах спрятаны

Или ты про то, что в "Новости" можно миссии запихать?

Именно BBS миссии в обжах, и как до них добраться я не знаю. А вот работу BBS News можно попробовать подогнуть под использование для своих миссий. АКМ поднимал эту тему и выкладывал результаты своих изысканий, собственно на них я опирался, не знаю почему никто не заинтересовался.
В общем кратко об этом:
Несмотря на то что BBS News Engine служит в стандартной игре для создания игрового антуража, как то набивание доски объявлений разного рода статьями-пыстышками, но в ней предусмотрено связь со скриптовым движком по средствам команд
<RetVar/IF> state of news article page=<Var/Number> id=<Var/Number>
и
set state of news article page=<Var/Number> id=<Var/Number> to <Var/Number>
первая как вы поняли позволяет получить текущее значение артикля установленного для новости расположенной на соответствующей page=<Var/Number> странице в ИД id=<Var/Number>
а вторая изменить артикль.
Но какое применение этой команде найти в жизни? Да никакого, если не понять как работает вся система формирования новостей. А вот если разобраться, то эти команды могут оказаться очень полезными. Во первых, по средствам этих артиклей происходит выборка новостей из обжей массы. Во вторых, BBS News работает в тесном комплекте с языковыми файлами XML, точнее с основным языковым файлом. И существует целый набор специальных тегов позволяющих управлять отображением новостей и ВНИМАНИЕ !!! ЗАПУСКОМ ОПРЕДЕЛЕННЫХ СКРИПТОВ. Но давайте по порядку:

Управление отражением определенной новости:
akm :
1. Эта самая News Engine сама автоматом делает выборку всех строк в xml, помеченных тегом [article] и добавляет их в свою базу данных.

2. Условием добавления в базу данных статьи является ее state > 0.

3. Этот state может меняться динамически в любоее время командой set state of news article, а также модифицироваться как самой новостью, так и одна новость может модифицировать state другой новости (читай об этом ниже). Т.е. установка state=0 сразу исключает ее из БД новостей, state=1 - и она снова активна в БД. Читать этот state тоже можно из скриптов функцией state of news article.

4. При стыковке со станцией производится рандом выборка нескольких активных статей из БД. На выборку влияют параметры в теге [article] данной новости:[article state='...' pri='...' timeout='...']...[/article]где state - начальное значение state при добавлении новости в БД;pri=1 означает, что данная новость будет выбираться всегда, выделяясь таким образом из всей остальной массы новостей, выбираемых случайно. Т.е. здорово подходит, если надо гарантировать появление новости в определнный момент в определенном месте;timeout - сколько времени (минимум) новсть провисит на BBS.

5. Выборкой новости можно управлять. Причем настолько гибко, что лучше наверное и придумать невозможно. Между тегами [article] и [/article] допустимы следующие теги:[eval script='...' args='...' neg='...' /][ondisplay script='...' args='...' /][onremove script='...' args='...' /]

где [eval script...] - назначает скрипт-функцию, возвращаемое значение которой и определяет будет ли новость показана. Т.е. если скрипт вернет TRUE - новость будет выбрана для показа когда игрок откроет BBS на какой-то станции. Допускается комбинировать любое множество тегов [eval] каждый со своим скриптом, при этом каждый последующий [eval] будет выполняться, только при условии, что предыдущий слева вернул TRUE.[ondisplay script...] - назначенный скрипт сработает в момент просмотра данной новости игроком, т.е. в момент открытия страницы новости на BBS. Если игрок не войдет на BBS, либо не пролистает ее до данной новости, скрипт не сработает.[onremove script...] - назначенный в этом теге скрипт сработает когда новость будет убрана с BBS.


МАКРОСЫ
Еще одна удобная фитча это МАКРОСЫ. Прописываются они на странице 1294 ID 1, там макросам присваивается имя и соответствующий скрипт и устанавливаются аргументы, а уже в зависимости от возвращаемого скриптом значения будет и дальнейшее управление отображением новость. Это тоже подробно обсуждалось в посте АКМ
akm :
В качестве аргументов скрипту можно передавать не только конкретные константы (кстати допускаются даже массивы), но и ряд переменных: $PAGE$, $PRODUCT$, $RACE$, $SECTOR$, $STATION$ - т.е. страница xml, на которой находится данная новость; продукт текущей станции, выборка новости в BBS которой производится; ну и остальные параметры данной станции. Есть опасение, что может сработать даже $TRADERANK$ и FIGHTRANK$Но надо бы проверить, т.к. в документации про это ни слова.Вот вам пример:

Код: Text ID #1:[article][eval if_race='boron' if_type='{6,-1}'/](BBS должна быть боронским доком)[eval if_time_min='14400'/](игрок должен был проиграть более 4 часов)[eval setstate='1,2'/] (если пред. два скрипта вернули TRUE, то изменить state новости с 1 на 2. Прямо С++ Улыбка[ondisplay setstate='1,3'/] (когда игрок увидит новость, ее state изменится на 3)[/article][author]Boron Press Agency[/author][title]Article #1 Headline[/title][text]Article #1 Text[/text]

Не удивляйтесь тому, что нету имен скриптов, т.к. просто используются макросы. Что какой макрос означает, видно на странице 1294 файла 440001.xml.Например: [declare name='if_race' script='!bbsnews.eval.ownerrace' args='{$ARG$}'/]

А вот вам развертка этого тега
[article state='0']
[declare name='setstate' script='!bbsnews.misc.setstate' args='$PAGE$,$ARG$'/]
[declare name='if_state' script='!bbsnews.eval.state.eq' args='$PAGE$,$ARG$'/]
[declare name='ifnot_state' script='!bbsnews.eval.state.eq' args='$PAGE$,$ARG$' neg='1'/]
[declare name='if_state_le' script='!bbsnews.eval.state.le' args='$PAGE$,$ARG$'/]
[declare name='if_state_gt' script='!bbsnews.eval.state.le' args='$PAGE$,$ARG$' neg='1'/]
[declare name='if_sector' script='!bbsnews.eval.sector'/]
[declare name='ifnot_sector' script='!bbsnews.eval.sector' neg='1'/]
[declare name='if_split_fire' script='!bbsnews.eval.sector' args='3,5'/]
[declare name='if_race' script='!bbsnews.eval.ownerrace' args='{$ARG$}'/]
[declare name='ifnot_race' script='!bbsnews.eval.ownerrace' args='{$ARG$}' neg='1'/]
[declare name='if_product' script='!bbsnews.eval.product' args='{$ARG$}'/]
[declare name='ifnot_product' script='!bbsnews.eval.product' args='{$ARG$}' neg='1'/]
[declare name='if_type' script='!bbsnews.eval.stationtype' args='{$ARG$}'/]
[declare name='ifnot_type' script='!bbsnews.eval.stationtype' args='{$ARG$}' neg='1'/]
[declare name='if_age_min' script='!bbsnews.eval.age'/]
[declare name='if_age_max' script='!bbsnews.eval.age' neg='1' /]
[declare name='if_sysdate' script='!bbsnews.eval.sysdate'/]
[var name='RACE' script='!bbsnews.get.ownerrace'/]
[var name='STATION' script='!bbsnews.get.environment'/]
[var name='SECTOR' script='!bbsnews.get.sector'/]
[var name='PRODUCT' script='!bbsnews.get.product'/]
[/article]

теперь понятно что в языковом файле означают все эти $ARG$ $PRODUCT$ $SECTOR$ все просто элементарно. ИМХО это открывает дверь к новым возможностям, нужно их только подогнуть под себя.

Информацию по этой теме я и прошу. Если кто что где видел пишите. Найдем и изучим.
_________________
Звезды зовут...
    Добавлено: 14:13 20-09-2005   
Krom
 455 EGP


Рейтинг канала: 1(1)
Репутация: 159
Сообщения: 1988
Откуда: Горы Урала
Зарегистрирован: 19.07.2005
DragonP :
ИМХО он «мертвый»

Скорее, обработчик просто нельзя назначать из редактора, так как он вшит в движок.
_________________
Не спешите меня.
    Добавлено: 14:30 20-09-2005   
Канал X2: The Threat: «FAQ: Скриптописание»
На страницу: Пред.  1, 2, 3 ... 51, 52, 53 ... 75, 76, 77  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Пилот в оффлайне спокойно валяется в базе и нагрузки на сервер не даёт. (Pegasus)

  » FAQ: Скриптописание | страница 52
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18