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

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

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

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


Репутация: 9
Сообщения: 102
Откуда: IL
Зарегистрирован: 14.05.2004
001 load text: id=6
002 $station = find station in galaxy: startsector=Сейзвел class or type=Теладианский док оборудования race=Телади flags=null refobj=null serial=null max.jumps=0
003
004 $station -> add product to factory or dock: вaкуумнaя xлебoрезкa
005 $station -> set price of ware вaкуумнaя xлебoрезкa to 2000 Cr
006
007 skip if $station -> get amount of ware вaкуумнaя xлебoрезкa in cargo bay
008 $dummy = $station -> add 1 units of вaкуумнaя xлебoрезкa
009
010 $cmd = COMMAND_TYPE_SPECIAL_23
011 global ship map: set: key=$cmd, class=Тяжелый истребитель 'M3', race=Player, script='load.asteroid.scaner', prio=0
012 set ship command upgrade: command=$cmd upgrade=вaкуумнaя xлебoрезкa
Пoчему-тo ценa не изменяется .Тaк и oстaётся 10002560 Cr.
A я тoвaр свoй купить не мoгу чтoбы тестирoвaть Рыдания.
_________________
А что будет,если два раза испугаться до полусмерти?!
    Добавлено: 11:08 16-07-2004   
Warlock
 88 EGP


Репутация: 13
Сообщения: 305
Откуда: Москва
Зарегистрирован: 23.07.2001
2XenonTomb
а где он находится этот редактор скриптов и как его запустить? сорр господа пилоты, но я ничего про это не знаю
_________________
Продаю EGP, курс 1:1 :)
    Добавлено: 13:29 16-07-2004   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
2Warlock
Читаем тему "Как открыть редактор скриптов", там все подробно описано.
http://www.elite-games.ru/conference/viewtopic.php?t=17145
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 13:54 16-07-2004   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
2Usharik

1. Команда add product to factory or dock: вaкуумнaя xлебoрезкa добавит только строку с продуктом, но его будет 0. Поэтому после этого надо добавить
skip if $station -> get amount of ware вaкуумнaя xлебoрезкa in cargo bay
$retval = $station -> add 1 units of вaкуумнaя xлебoрезкa


2. Команда set price of ware в данном случае не катит, она используется для своих станций. Девайсы и цены на них задаются в строках файла TWareT.txt (бывший .pck). Например, в случае инкубатора космомух:
28;0;0;0;0;59;5753;1;12497;3;5;4;SS_WARE_SPACEFLYINCUBATOR;
12497 - это цена (девятый параметр). В кредитах это примерно будет [это число]*28. Неиспользуемые в игре девайсы - это строки с идентификатором SS_WARE_SW_NEWхх в конце файла, их можно смело курочить.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 14:16 16-07-2004   
Варсик
 545 EGP


Репутация: 117
Сообщения: 4039
Откуда: Москва
Зарегистрирован: 22.12.2002
Вопрос: Как перечислить корабли в станции? То есть: вот станция, в ней пару М3 пару TS, для примера, надо перечислить, или получить массив с Var/Ship, только не надо перебирать все корабли в секторе и спрашивать а ты в этой станции...
_________________
WARNING: By reading this post you accept that this post is genius.
    Добавлено: 17:40 18-07-2004   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
В версии 1.4 появилась такая команда!
<RetVar>= <RefObj> get ship array from sector/ship/station
Находится в разделе Universe and Sector Commands в самом низу списка.

Т.е. в твоем случае:
Массив = Станция->get ship array from sector/ship/station

Gward :
Коммандеры, как можно в тело рабочего скрипта передать указание на прерывание? То есть как скрипт может реагировать на внешние раздражители в виде доп. данных?

По идее, для этого предназначена команда send signal. Но лично мне так и не удалось заставить скрипт реагировать на SIGNAL_CUSTOM. Пока что я пользуюсь глобальными/локальными переменными для передачи доп. данных между скриптами.
    Добавлено: 00:35 19-07-2004   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
Полный список новых команд в 1.4

General Commands

<RefObj> start task <Var/Number> with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value>
<RefObj> interrupt task <Var/Number> with script <Script Name> and prio <Var/Number>: arg1=<Value> arg2=<Value> arg3=<Value> arg4=<Value>
al engine: register script= <Script Name>
al engine: unregister script= <Script Name>
al engine: set plugin <Var/String> description to <Var/String>
al engine: set plugin <Var/String> timer interval to <Var/Number> s
<RetVar> = get script version
<RetVar> = get script name
<RetVar/IF> is plot <Var/Number> state flag <Var/Number>
<RetVar> = get random name: race= <Var/Race>
<RetVar> = get Khaak aggression level
set Khaak aggression level to <Var/Number>


Audio Commands

<RetVar/IF/START> speak text: page= <Var/Number> id= <Var/Number> priority= <Var/Number>


Fly Commands

<RetVar/IF><RefObj> add big ship <Var/Ship>
<RetVar/IF><RefObj> has a free big ship dock slot
<RetVar/IF><RefObj> can be controlled by race logic
<RefObj> set race logic control enabled to <Var/Number>
<RetVar/IF><RefObj> can execute StartAction
<RefObj> set StartAction enabled to <Var/Number>
<RefObj> set as player wingman: <Var/Number>
<RetVar/IF><RefObj> is player wingman


Trade Commands for Stations

<RetVar>= <RefObj> get tradeable ware array from station


General Object Commands

<RefObj> set serial name of station to <Var/Stations Serial>
<RefObj> station send defend squad against ship <Var/Ship/Station>
<RetVar>= <RefObj> get name
<RefObj> set name to <Var/String>
<RefObj> set owner race to <Var/Race>
<RetVar/IF><RefObj> find ship: class or type= <Value> race= <Var/Race> flags= <Var/Number> refobj= <Value> maxnum= <Var/Number> with homebase= <Value>
<RetVar/IF> find station in galaxy: startsector= <Var/Sector> class or type= <Value> race= <Var/Race> flags= <Var/Number> refobj= <Value> serial= <Var/Stations Serial> max.jumps= <Var/Number> num= <Var/Number>
<RetVar>= <RefObj> get ID code
<RetVar>= <RefObj> get pilot name
<RefObj> set pilot name to <Var/String>
<RefObj> set pilot speaker: voice= <Value>, face= <Value>, Pirate subrace= <Value>, Argon female= <Value>


Universe and Sector Commands

<RetVar>= <RefObj> get ship array from sector/ship/station
<RetVar>= <RefObj> get station array from sector
<RetVar>= <RefObj> get factory array from sector
<RetVar>= <RefObj> get dock array from sector
<RetVar>= <RefObj> get player owned ship array from sector
<RetVar>= <RefObj> get player owned station array from sector
<RetVar>= <RefObj> get asteroid array from sector

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

А вот здесь можно посмотреть полный список всех команд в.1.4.
    Добавлено: 01:24 19-07-2004   
Gward
 310 EGP


Ведущий раздела
Рейтинг канала: 2(21)
Репутация: 75
Сообщения: 1307
Откуда: Ставрополь
Зарегистрирован: 11.06.2004
akm :
По идее, для этого предназначена команда send signal. Но лично мне так и не удалось заставить скрипт реагировать на SIGNAL_CUSTOM. Пока что я пользуюсь глобальными/локальными переменными для передачи доп. данных между скриптами.


Хм. Хоть с 1.4 и не актуально, но глобально объявленная переменная, является глобальной для ВСЕХ скриптов, или только для последующих по вызову?

И как ить к станции скрипт привязать. Зеваеца
Осень нада!!!
    Добавлено: 08:39 19-07-2004   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
Цитата:
глобально объявленная переменная, является глобальной для ВСЕХ скриптов, или только для последующих по вызову?

Для всех!
Речь идет о глоб. переменных, создаваемых командой:
set global variable: name=<Var/String> value=<Value>
Прочитать ее можно командой
<RetVar/IF> get global variable: name=<Var/String>

И есть еще команды get/set local variable. Не смотря на название команды, они работают тоже с глобальными переменными. Но если первые "global" доступны абсолютно любому скрипту, то через "local" переменную могут обмениваться данными только скрипты, запущенные на одном и том же объекте.

Цитата:
И как ить к станции скрипт привязать

Так просто запускаешь его
@= Станция-> call script <Script Name>:<Parameter>
или
START Станция->command <Object Command> (находится в меню Fly Commands)
Первый вариант отличается тем, что скрипт, из которого был произведен запуск приостановит свое выполнение на команде call script пока из нее не будет выход. Чтобы работал второй вариант, Object Command должен быть залинкован на скрипт в init-файле командой global ship map: set key. И в этом случае имя команды скорее всего появится в одном из слотов в Command Console фабрики. Не проверял еще как с этим обстоит у фабрик.


И у меня есть вопросик (повышенной сложности Гы-гы )
как назначить команду на турель? Т.е. из скрипта дать турели например стандартуную команду Missile Difence? Т.е. мне нужно получить турель корабля как объект.
    Добавлено: 10:18 19-07-2004   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Ух ты, а я думаю нафига это get/set local variable ? Спасибо за науку.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 10:37 19-07-2004   
Grey Wolf
 500 EGP


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

в некоторых командах типа Create, Аdd теперь появилась возможность использовать no return available.
    Добавлено: 14:10 19-07-2004   
Narlit
 100 EGP


Репутация: 4
Сообщения: 133
Откуда: Санкт-Петербург
Зарегистрирован: 03.04.2004
Теоретически можно команды все неоходимые вроде есть Улыбка сам таких миссий не писал и о прецедентах о таких не слышал Улыбка
    Добавлено: 07:15 20-07-2004   
KKK
 





Ув. гуру, а не разобрался ли кто как подключать скрипты в слоты кораблей/станций. И какова будет последовательность исполнения команд если заняты несколько слотов?
    Добавлено: 09:14 23-07-2004   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
2ККК
Кажись akm разобрался, где-то писал, а где - не помню. Ты у него прямо через приват спроси, поделишься потом опытом Подмигиваю .
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 14:42 23-07-2004   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
KKK :
Ув. гуру, а не разобрался ли кто как подключать скрипты в слоты кораблей/станций. И какова будет последовательность исполнения команд если заняты несколько слотов?

Скрипты, запущенные в каждом из слотов, выполняются параллельно и независимо друг от друга и от иных скриптов, запущенных на этом же корабле (основная команда корабля, и команда турели). Если быть более точным, то на самом деле никакой многозадачности в ScE Х2 нет, выполняется подряд пачка команд только 1 скрипта пока не встертится команда со значком @. Далее идет анализ приоритетов и движек ScE берется за другой скрипт с макс приоритетом и опять пока не встретит @. Поэтому не экономьте на командах @ wait в своих скриптах Подмигиваю в противном случае можно запросто подвесить игру, особенно если слабый проц.

Пример скрипта, реально использующего слот доп. команд корабля, смотрите здесь.

Допустим у нас есть некий скрипт "НашСкрипт", который нужно оформить в виде команды для доп. слотов корабля. Последовательность действий:

1. Создаем файл "441222.xml" следующего содержания:

<?xml version="1.0" encoding="UTF-8" ?>
<language id="44">
<page id="2010" title="Commands" descr="">
<t id="1222">Наименование команды</t>
</page>
<page id="2011" title="Commands" descr="">
<t id="1222">Сокращ.Команда</t>
</page>
</language>

Четыре последние цифры в имени файла 441222.xml - произвольные. Это ТекстID.

22 в теле файла означает, что мы собираемя подвесить свою команду на "COMMAND_TYPE_SHIP_22". Всего их 30: COMMAND_TYPE_SHIP_0 - COMMAND_TYPE_SHIP_29. Поэтому важно, чтобы наши скрипты не накладывались друг на друга.

2. Создаем скрипт "setup.plugin.Имя" следующего содержания:

001 load text: id=1222
002 global script map: set: key=COMMAND_TYPE_SHIP_22, class=Ship, race=Player, script='НашСкрипт', prio=0
003 set script command upgrade: command=COMMAND_TYPE_SHIP_22 upgrade=Fight Command Software MK2
004 return null

prio=0 - приоритет, с которым запустится наш скрипт.

Fight Command Software MK2 - апгрейд, наличие которого необходимо на корабле, чтобы наша команда появилась в меню команд для слота. Можно просто указать [TRUE] и тогда команда будет всегда доступна.

Сразу после создания этого setup.plugin-скрипта в меню естественно ничего не появится. Сделайте Load сэйва или начните новую игру для проверки. В меню доступных команд слота должна появиться ваша команда вида:

Наименование команды [Сокращ.Команда]
Если игрок ее выберет, будет запущен скрипт 'НашСкрипт'. Первой строкой в нем должна быть команда:

001 set script command: COMMAND_TYPE_SHIP_22

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

Все то же самое распространяется и на станции, только команды нужно назначать на COMMAND_TYPE_STATION_0 - COMMAND_TYPE_STATION_29, а в файле "44****.xml" наименование команд вписывать в

<t id="1100"> для COMMAND_TYPE_STATION_0
...
<t id="1129"> для COMMAND_TYPE_STATION_29
    Добавлено: 16:09 23-07-2004   
serg - 314159
 





akm :

И у меня есть вопросик (повышенной сложности )
как назначить команду на турель? Т.е. из скрипта дать турели например стандартуную команду Missile Difence? Т.е. мне нужно получить турель корабля как объект.

турель как объект получать не нужно - турели определяются идентификаторами(0,1,2...)
скрипты на турель назначал в ПРО для турели (сказать не могу как - не помню,а тачка чужая ), посмотри там http://serg-Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги.
    Добавлено: 14:51 24-07-2004   
akm
 470 EGP


Рейтинг канала: 1(4)
Репутация: 173
Сообщения: 1638
Откуда: Паразит Прайм
Зарегистрирован: 23.10.2002
serg - 314159 :
akm :

И у меня есть вопросик (повышенной сложности )
как назначить команду на турель? Т.е. из скрипта дать турели например стандартуную команду Missile Difence? Т.е. мне нужно получить турель корабля как объект.

турель как объект получать не нужно - турели определяются идентификаторами(0,1,2...)
скрипты на турель назначал в ПРО для турели (сказать не могу как - не помню,а тачка чужая ), посмотри там http://serg-Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги.
Спасибо, но я наверное не совсем понятно выразился. Как назначить скрипт-обработчик на ту или иную команду с помощью global ship map: set: key я в курсе Улыбка
Мне требуется дать эту команду турели из другого скрипта (т.е. алалог действиям игрока в командной консоли по назначению команды турели), но программно и чтобы эта команда появилась напротив турели в командной консоли корабля.
    Добавлено: 15:37 24-07-2004   
Пассажир
 

Пассажир




http://www.elite-games.ru/downloads/x2/scriptswrite.rar
Если кто не видел тама много чиво описано про скрипты в X2.
    Добавлено: 07:31 25-07-2004   
dark_j
 135 EGP


Рейтинг канала: 1(3)
Репутация: 7
Сообщения: 121
Откуда: Москва
Зарегистрирован: 03.06.2004
Вопрос
Подскажите какие page id свободны для использования
(в смысле предназначенны для пользовательских скриптов)
    Добавлено: 10:21 27-07-2004   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Ну ты спросил, кто ж такой список составит? Берешь 440001.xml или 70001.xml и внимательно смотришь. Ищешь близкие тебе по смыслу разделы, в них свободные номера - и вперед! Например page id="17" - это станции, товары, девайсы, корабли (названия и описания) и т.д. Можно воспользоваться поиском в текстовом редакторе/просмотрщике для выяснения есть ли номер/страница и для поиска нужных страниц.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 10:53 27-07-2004   
Канал X2: The Threat: «FAQ: Скриптописание»
На страницу: Пред.  1, 2, 3, ... 75, 76, 77  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Папрашу не путать, Сусанин - это полупроводник! (Hognar)

  » FAQ: Скриптописание | страница 2
Каналы: Новости | 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