На сайте онлайн (человек): 101 
|  |
|
 | |
Уроки танцев на СКРИПТАХ от MistR (От чайника для чайника) |  |
|  |
 | |
|
Количество: 369 12345678>»Уроки танцев на СКРИПТАХ от MistR (От чайника для чайника) | 28.05.2009 13:35:26 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Уроки танцев на СКРИПТАХ от MistR (От чайника для чайника)
Тут я буду описывать как написать скрипт для чего нить в подробностях!
Предупреждаю: Я не владею профессиональным жаргоном программиста и по этому называю определенные вещи своими славами! Например эта хрень отвечает за такой-то геморрой и т.д.
Правила: Никакого флуда! Если хотите выразить благодарность, выражайте ее в репутации или просто соблюдайте чистоту темы, что я приму не хуже слов или чего-то подобного! Если вы хотите поправить или сообщить об ошибке которую я допустил, сообщайте ее тут в подробном виде, если спорный вопрос, то с подробно описанным аргументом. Предложения об описания (что описать), предлагать после того как я приеду из отпуска где-то (ориентировочно) 8 июня.
П.с. Прошу модераторов проследить за темой во время моего отсутствия.
Вот прога для написания скриптов вне игры. Предупреждаю! Ей лучше пользоваться имея опыт в написании скриптов! Воизбежании возникновения лишних трудно обьяснимых вопросов! X3 External Script Editor
Вот нашел еще уроки по скриптописанию! Они к Х2, но тоже актуальны! Скрипты - это легко...! |
Редактировалось 3 раз (а). Последний раз 24.08.2009 16:27:24. |
| | 28.05.2009 14:55:29 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Сейчас я буду описывать написание скрипта который добавляет любой игровой (даже если он был добавлен сторонним модом) корабль на верфь любой принадлежности , для его продажи на ней.
Следует знать, что такой скрипт не должен работать постоянно или запускаться каждый раз когда вы загружаетесь или входите в игру, то есть запускать его нужно вручную дабы не нагружать компьютер лишней работой. Чтобы начать работу нужно активировать встроенный в игру скрипт-редактор. О том как его активировать поищите на форуме... После того как вы активировали скрипт-редактор, запустите его открыв «панель управлением корабля» -> «редактор скриптов». В появившемся окне заходим в пункт «Редактор скриптов». Далее в самом верху, пункт <Новый скрипт>. Вводим название скрипта, например “MistR.new.ship” В появившемся окне, в самом низу, раздел «Код», <Новая строка>... Входим в <Новая строка> Прежде чем искать код нужно знать что нам нужно! Нам нужно найти станцию по параметрам: Раса, Сектор, Станция. Значит заходим в раздел «Команды секторов и Галактики». Находим код: <Возвр/IF> find station: sector=<Перем/Сектор> class or type=<Значение> race=<Перем/Раса> flags=<Перем/Число> refobj=<Значение> maxdist=<Перем/Число> maxnum=< Перем/Число > refpos=<Перем/Масив>Выбираем его… и вводим по порядку: 1 – Переменная в которую мы присвоим станцию (верфь), назавем ее «station» 2 – Теперь когда мы видим код вводим второй пункт от его названия «sector=» и всплывшем окне в самом низу выбираем пункт «Выбрать сектор», на карте указываем сектор… в моем случае это Аргон Прайм. 3 – Параметр «class or type=», в этом пункте нужно указать станцию которую он должен найти в секторе который мы указали, в моем случае это Аргонская верфь или как-то там не помню как она называется… значит заходим и выбираем пункт «Выбрать тип станции», в выданном списке выбираем тип станции (для отсеивания ненужных станций можно воспользоваться сортировкой по типу и расе), моя называлась «Аргон Верфь Аргонской Федерации»… с таким названием их оказалось две, т.к. в игре существует два варианта верфей: 1-С новой моделью станции и 2-Со старой моделью станции… посмотрев в игре какая же там стоит верфь (оказалось старая с меньшим весом), ее я и выбрал. 4 – «race=» в этот параметр вводим расу к которой принадлежит эта верфь, в моем случае Аргон, выбираем точно также из пункта «Выбрать Расу» 5 – все остальные параметры нам не нужны т.к. мы указали достаточно параметров что бы компьютер нашел нужную станцию и не запутался выдав нам не одну станцию а целый список… поэтому в остальных параметрах указываем параметр «null». Закончив с первой командой переходим ко второй: Нам нужно создать переменную к которой мы присвоим корабль который хотим добавить на продажу к верфи. Выбираем <Новая строка>, «Общие команды», код - <Возвр/IF><Выражение> Выбираем ее значение «Переменная», указываем название переменной (например «ship»). В появившейся команде «$ship=» указываем чему она равна, в нашем случае это будет корабль, из всплывшего окна выбираем пункт «Выбрать тип корабля»... я решил добавить на продажу Ксенонский корабль типа М3 и выбрал LX. Теперь у нас имеется две переменные в первой указана верфь, а во второй указан корабль. Сейчас нам нужна команда которая добавит на верфь этот корабль как объект продажи. Выбираем <Новая строка>, пункт «Торговые команды», пункт «для Станций», находим команду <РеферОбьект>add product to factory or dock:<Переем/Товар> Выбрав команду указываем на чем ее выполнить, в нашем случае это переменная к которой присвоена верфь, которая в моем случае называется «station»... значит я выбираю из всплывшего списка в верхней части уже существующую переменную под названием «station». В появившейся команде указываем последний пункт в котором говорится о продукте который будет добавлен на верфь, т.к. продукт мы уже указали в переменной под названием «ship», то в конце команды мы будем указывать пременную «ship». Значит заходим в последний пункт команды «add product to factory or dock:» открываем окно выбора и из верхней части списка указываем пункт «ship». Для закрытия скрипта нам остается указать последнюю команду: Открываем «Новая строка», «Общие команды», «Вызовы скриптов», выбираем команду «return<Значение>», значение указываем «null»... эта команда закроет скрипт после его выполнения. Это все что нам требовалось для добавления корабля на верфь для его продажи. Выходим из редактора скрипта и сохраняем скрипт. Т.к. скрипт мы писали для одноразового запуска, нам нужно его запустить. Значит в редакторе скриптов, в окне доступных скриптов находим наш скрипт и выделяем его, выделив его нажимаем кнопку «r» что запустит скрипт, в всплывшем окне под названием «Ввод скрипт» выбираем пункт «null», в новом окне подтверждаем выбор нажатием кнопки Enter. Все готово… можете лететь на верфь и покупать корабль… Не забудьте сохранить игру после запуска скрипта, а то его придется снова запускать... Удачной вам писанины...  |
Редактировалось 1 раз (а). Последний раз 28.05.2009 14:59:04. |
| | 28.05.2009 14:57:29 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Урок №2 Сейчас я буду описывать написание скрипта который удаляет любой игровой (даже если он был добавлен сторонним модом) корабль с верфи любой принадлежности , для его удаления с продажи на ней.
Внимательно читаем первый урок! Делаем все точно также но вместо команды добавить продукт мы сделаем другую команду: Заходим в меню выбора команд, выбираем раздел «Торговые команды», потом «для станций» и в ней находим команду: <РуферОбьект> remove product from factory or dock: <Перем/Товар> Выбрав команду указываем на чем ее выполнить, в нашем случае это переменная к которой присвоена верфь, которая в моем случае называется «station»... значит я выбираю из всплывшего списка в верхней части уже существующую переменную под названием «station». В появившейся команде указываем последний пункт в котором говорится о продукте который будет удален с верфи, т.к. продукт мы уже указали в переменной под названием «ship», то в конце команды мы будем указывать пременную «ship». Значит заходим в последний пункт команды «remove product to factory or dock:» открываем окно выбора и из верхней части списка указываем пункт «ship».
Завершаем писание скрипта по указаниям первого урока.
П.с. Этот и первый урок позволяет добавить или удалить продукт с продажи! Такие скрипты можно применить к верфям (как это было в премере) или к станции, только у станции это будет не корабль а производимый ею продукт! Удалив таким способом старый продукт на станции и добавив новый, эта станция будет производить тот продукт который вы указали, используя те же ресурсы что и были!
П.с.2 Этот вариант не применим к ресурсам!
|
Редактировалось 1 раз (а). Последний раз 24.06.2009 20:28:46. |
| | 09.06.2009 19:19:52 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Урок №3 Написание одноразового скрипта, который запускается автоматически и только один раз.Наша задача создать глобальную переменную, в строке 001 мы ее загружаем... в 002 нужно указать какая переменная будет сигнализировать нам о том что скрипт уже запускался... в 003 ставим условие соответствия (выполнить команду если совпало)... в 004 это команда завершить скрипт... в 005 тут условие, если в 003 совпадения небыло, то выполняем эти команды... в 006 тут пишем скрипт которы должен работать или срабатывать только один раз (типа добавления продуктов на станцию или создания обьекта в космосе)... в 007 прописывается команда присвоения глобальной переменной определенного значения (для того чтобы вследующий раз скрипт завершился а не снова сработал)... в 009 завершаем скрипт. Полный вид скрипта: | Код:- 001 $ass = get global variable: name='ass'
- 002 $as = 'OFFF'
- 003 if $as == $ass
- 004 return null
- 005 else
- 006 *Тут вставляем основной рабочий и нужный скрипт
- 007 set global variable: name='ass' value='OFFF'
- 008 end
- 009 return null
|
| |
Надеюсь вам это поможет...  П.С. Такой скрипт помогает скриптерам заботится о своих потребителях, избавляя их от лишних заморочек...  |
Редактировалось 1 раз (а). Последний раз 13.07.2009 09:36:57. |
| | 24.06.2009 20:38:34 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Урок №4 Скрипт для загрузки текстового файла.Скрипт прост в написании как чайная ложка в эксплуатации...  Текстовый файл это такая вещь, которая должна загружаться скриптом при каждой загрузке игры! По этому в начале названия скрипта пишем приставку так: « SETUP.», точка тоже обязательна. (Описание этой приставки можно найти в этой теме) | Код:- <b>001 load text: id=4545
- 002 return null</b>
|
| | 001 - Эта команда загрузит текстовый файл в папке « t» с названием « 4545-L007.XML». 002 – Эта команда завершает скрипт. Вот собственно и все. Удачи в написании.  |
Редактировалось 1 раз (а). Последний раз 15.08.2009 14:18:32. |
| | 24.06.2009 21:41:14 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Урок №5 Скрипт по созданию рандомного обьекта из списка в списке секторов.Смысл в том, чтобы создать в нужных нам секторах обломки кораблей... | Код:- 001 $Sector.list = array alloc: size=0
- 002 append {Argon Prime} to array $Sector.list
- 003 append {Black Hole Sun} to array $Sector.list
- 004 append {Cloudbase North West} to array $Sector.list
- 005 append {Earth} to array $Sector.list
- 006
- 007 $Sector.list.size = size of array $Sector.list
- 008 $Count = 0
- 009 while $Count < $Sector.list.size
- 010 $Sector = $Sector.list[$Count]
- 011
- 012 $Wracks.var = random value from 1 to 4 - 1
- 013
- 014 if $Wracks.var == 1
- 015 $Wracks = 110
- 016 else if $Wracks.var == 2
- 017 $Wracks = 111
- 018 else if $Wracks.var == 3
- 019 $Wracks = 113
- 020 else if $Wracks.var == 4
- 021 $Wracks = 114
- 022 end
- 023
- 024 $X = random value from -30000 to 30000 - 1
- 025 $Y = random value from -30000 to 30000 - 1
- 026 $Z = random value from -30000 to 30000 - 1
- 027
- 028 $CREATE = create special: type=$Wracks addto=$Sector x=$X y=$Y z=$Z
- 029
- 030 inc $Count =
- 031 end
- 032 return null
|
| |
001 Создание арейя (списка) 002 - 005 Команда добавления секторов в список (арей) 007 - 010 Незнаю как это назвать... скажу проще... это разбивание списка на поштучный, к каждому из которого будут применены команды до пункта END 012 Команда рандомного выбора числа от 1 до 4 014, 016, 018, 020 сравнение числа на соответствие 015, 017, 019, 021 В случеи соответствия чисел указывается номер (в папке тайпс есть файл Тспециал, в котором и можно посмотреть под коким номером что находится) обломков. 022 Конец для соответствий чисел. 024 - 026 выбор рандомной позиции по X Y X координатам... от -30км до 30км 028 Это сама команда по созданию специальных обьектов 030 Обнуление 031 Это тот самый пункт END 032 Завершение скрипта. П.с. Вот и все! Удачной писанины...  |
Редактировалось 4 раз (а). Последний раз 24.08.2009 14:07:45. |
| | 13.07.2009 09:41:14 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Редактировалось 1 раз (а). Последний раз 20.08.2009 06:49:12. |
| | 13.07.2009 13:41:21 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | Artiz писал(а):Спасибо нашел в 3-м уроке попробую. А от названия скрипта что-то меняется? Напр " Setup... " или " !Setup..." |
| |
Конечно... Приставка Setup. дает возможность скриптовому файлу запускаться автоматически при загрузке игры. Приставка ! дает какието весомые приимущества от сбоев или игнорированием запуска скрипта... по крайней мере професионалы на так утверждали, но никто так толком обьяснить и не смог...:lol: |
|
| | 16.07.2009 18:00:37 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | Oleg писал(а):Добрый день всем Пилотам! Ну и конечно самому главному "кипятильнику" MistRу который помогает таким "чайникам" как я. По делу. Хочу из X3R взять пару скриптов и пихнуть их в X3TC . Вопрос - что мне для этого нужно?(Еditor у меня выдаёт кучу ошибок). Заранее спасибо ! |
| |
Адоптация скрипт из былых игры несложна... 1 способ: установив ту и новую игру переписовать команды вручную... 2 способ: Скачать Exscriptor_v1.2.5 и также переписать скрипт, выделяя текст копируя его в новый файл под новую игру... П.с. Не забываем! Если вы хотите выложить свою адоптацию скрипта для всех, спрашивайте разрешения у автора... П.с.2 Если для себя, то тут нет ограничений по авторским правам даже по Закону РФ. |
|
| | 16.07.2009 18:13:51 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | Oleg писал(а):MistR! Большое спасибо. Попробую. И ещё вопрос этот Exscriptor_v1.2.5 от Висты не брыкается? А скрипт для себя и то если получится. |
| |
У меня не брыкается на обеих виндах (Висла и Хрюша)... Но переодически переустанавливаю, т.к. ломается по непонятным причинам...  |
|
| | 26.07.2009 22:00:04 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | Моргиль писал(а):Здраствуйте всем. У меня такой вопрос к уважаемому MistR.
|
| |
Добавление станций на продажу верфей происходит также, но с еще одной командой... Например так: | Код:- 001 $a.shipyard->add product to factory or dock: $Product
- 002 <b>= $a.shipyard->add 1 units of $Product</b>
|
| |
вторая строка указывает количество продаваемых станций... Удачи в написании...  |
|
| | 29.07.2009 00:01:54 UncleAlex
Репутация: 1749 Сообщений: 1942 Регистрация: 21.03.2009 | МистР, подскажи пжлст: 1) Как добавить на верфь конкретно один корабль? Команда | Код:- <РеферОбьект>add product to factory or dock:<Переем/Товар>
|
| |
для кораблей не подразумевает изменение кол-ва их на верфи: я добавил, допустим, Вальгаллу, а в списке доступных для покупки кораблей их отображается 10 штук, как истребителей! 2) Как правильно прописать скрипт, который бы убирал их продажи с верфи корабль, который единожды купил игрок? Я не могу найти строку с логикой "Если Игрок имеет в распоряжении $Тип Корабля, то..." А убирать и добавлять умею |
|
| | 29.07.2009 08:45:26 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | UncleAlex писал(а):МистР, подскажи пжлст: А убирать и добавлять умею |
| |
С кораблями в этом плане все намного сложнее! Т.к. мелкие корабли постаянно рандомничают в плане наличия в продаже... а бигшипы наоборот присутствуют постоянно! Такие вещи прописаны в ОБЖЕ... я думаю ты знаешь что это такое... А вот как сделать что-бы корабль был только один в продаже? Легко... Пишите команду поиска кораблей игрока... и отсеиваете в поиске нужного... Если корабль найден у игрока срабатывает команда удаление товара с верфи... Только не забывайте помечать корабли которые были проверены... чтоб лишнюю нагрузку не создавать.  П.с. Я надеюсь правильно тебя понял... |
|
| | 05.08.2009 21:32:03 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | RAdo писал(а): 1.Уважаемый MistR, в первом уроке, при создании первой переменной (строка 001), указал на необходимость в параметре "class or type" выбирать из списка "Выбор типа станции". При таком раскладе необходимо точно выбрать тип станции которая находится в данном секторе, так как не все станции одного типа полностью идентичны (например, два вида Верфей аргонской федерации). Я в этом параметре выбрал строку "Выбор станции", где указал сектор и указал именно ту верфь, которая там находится: 001 $station= find station: sector=Аргон Прайм class or type=Верфь Аргонской Федерации(Аргон Прайм) race=Аргон flags=null refobj=null maxdist=null maxnum=null refpos=null Вопрос: имеет ли это какие либо отличные последствия и можно ли применять этот параметр как более легкий вариант?
2.Добавленная на Верфь (скриптом) "Верфь аргонской федерации", затем купленная и построенная, в себе ни какой продукции не несет. добавление на эту же "верфь" кораблей и станций выше описаным скриптом результатов не дало. Вопрос: Возможно ли купить для себя полноценную верфь или добавить на нее продукцию скриптом? |
| |
1 - Нужно указывать тип станции, а не конкретную станцию на карте... я конечно же так не откланялся, но могу предположить что он не будет работать... 2 - Естественно она будет пустая (по игре так предусмотрено)... я не пробовал, но я думаю для тебя не будет проблема попробовать и расказать нам...  |
|
| | 06.08.2009 00:40:53 RAdo
Репутация: 0 Сообщений: 21 Регистрация: 04.05.2009 | | MistR писал(а):1 - Нужно указывать тип станции, а не конкретную станцию на карте... я конечно же так не откланялся, но могу предположить что он не будет работать... |
| |
Да! Виноват! Я забыл дописать, что в конкретном случае который я приводил - сработало. Не пробовал на других, но так как принцип тот же я думаю и там работать будет!Я продполагаю, что параметр "Выбрать тип станции" означает, что если в каком-нибудь другом секторе есть такая же станция как в Аргон прайм (в уроке 1 была выбрана станция с меньшим объёмом 20000, а не 25000), то этот товар добавится на все станции с объёмом 20000, т.е. станцию такого же типа. А при выборе конкретной станции - только на неё. Я, также, полагаю, что если в секторе находится две однотипные станции, например две кахунопекарни Л, то с параметром "Выбрать тип станции" добавлятся, ресурс или продукция, в зависимости от задачи, будет на обе станции (возможно даже и в других секторах), кроме случаев, когда в параметре maxnum=<Var/Number> стоит цифра 1, тогда будет заполнятся только одна из них. Логично?  З.Ы. Но это только предположение буду проверять:) | MistR писал(а):2 - Естественно она будет пустая (по игре так предусмотрено)... я не пробовал, но я думаю для тебя не будет проблема попробовать и расказать нам... |
| |
Ну да, верфь пустая и скриптом добавления из урока 1 не заполнить ее. Возможно для этого другой скрипт есть...  |
Редактировалось 5 раз (а). Последний раз 06.08.2009 03:37:38. |
| | 06.08.2009 22:40:27 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | RAdo писал(а):Да! Виноват! Я забыл дописать, что в конкретном случае который я приводил - сработало. Не пробовал на других, но так как принцип тот же я думаю и там работать будет!Я продполагаю, что параметр "Выбрать тип станции" означает, что если в каком-нибудь другом секторе есть такая же станция как в Аргон прайм (в уроке 1 была выбрана станция с меньшим объёмом 20000, а не 25000), то этот товар добавится на все станции с объёмом 20000, т.е. станцию такого же типа. А при выборе конкретной станции - только на неё. Я, также, полагаю, что если в секторе находится две однотипные станции, например две кахунопекарни Л, то с параметром "Выбрать тип станции" добавлятся, ресурс или продукция, в зависимости от задачи, будет на обе станции (возможно даже и в других секторах), кроме случаев, когда в параметре maxnum=<Var/Number> стоит цифра 1, тогда будет заполнятся только одна из них. Логично? 
Ну да, верфь пустая и скриптом добавления из урока 1 не заполнить ее. Возможно для этого другой скрипт есть... |
| |
Ну вот видишь! Не знаю как работает указатель конкретной станции в таком поиске... нужно пробовать... Если будет две таких станции, то добавится на обе... но только в том секторе, в котором указали... Логично, что указав максимальное количество вы определите граници в размере количества...) Я думаю что у игрока верфь не предусмотрена движком игры...( П.с. Пробуй и не забывай описывать подробно свои иследования!  |
|
| | 15.08.2009 14:24:20 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | Выложил 4 урок для загрузки текстового файла...  В первом посте выложил ссылку на Скрипт эдитор... |
Редактировалось 1 раз (а). Последний раз 15.08.2009 14:32:47. |
| | 17.08.2009 13:35:18 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | AS писал(а):Привет MistR спасибо за уроки Но такой нескромный вапрос а когда будет продолжение:lol::lol::lol: |
| |
Продолжение чего? Уроков? Я преподаю уроки по их необходимости комуто... Давайте пример что вам непонятно, а я сделаю описание в уроках...  |
|
| | 18.08.2009 12:58:45 MistR
Репутация: 1710 Сообщений: 2121 Регистрация: 17.11.2008 | | AS писал(а):Привет MistR скажи а можно ли прописать каманду минстралю чтобы он добывал нивидиум автоматически как руду и кремний это бы сильно облегчело мне жизнь:lol :lol:зарание спасибо |
| |
Можно, но я непишу скрипты AI... я не пробовал, но думаю что там не все так просто как кажется... предлагайте че нить иное...  |
|
| | 20.08.2009 07:16:35 Sam396
Репутация: 0 Сообщений: 52 Регистрация: 13.07.2009 | Уважаемый MistR Я тут всё с обломками своими.. Интересует следующее, каков механизм добавления данных обьектов? Скриптами это возможно? Как производится выборка обьекта при добавлении? Заранее благодарю  |
Редактировалось 1 раз (а). Последний раз 20.08.2009 07:17:32. |
|
| 12345678>» Список игр
|  |
|  |
 |  |  | |
| | | |
|  |