|
|
|
Канал X2: The Threat: «FAQ: Скриптописание» |
|
|
dark_j 135 EGP
Рейтинг канала: 1(3) Репутация: 7 Сообщения: 121 Откуда: Москва Зарегистрирован: 03.06.2004 |
|
XenonTomb : |
Ну ты спросил, кто ж такой список составит? Берешь 440001.xml или 70001.xml и внимательно смотришь. Ищешь близкие тебе по смыслу разделы, в них свободные номера - и вперед! Например page id="17" - это станции, товары, девайсы, корабли (названия и описания) и т.д. Можно воспользоваться поиском в текстовом редакторе/просмотрщике для выяснения есть ли номер/страница и для поиска нужных страниц.
|
Была надежда что существует заявленный деапазон page id для использования пользовательскими скриптами (типа как в командах существуют COMMAND_TYPE_SHIP_0 - COMMAND_TYPE_SHIP_29 специально зарезервированные под пользовательские нужды)
Иначе очень не удобно
Внес я изменения под свои скрипты в 70001 затеп выходит патч, новый перевод и опять ручками все измененияч
куда ведь удобней использовать свою page id и отдельный файл
И потом такими скриптами делмтся прще.
Или я просто во чтото сильнл не врубаюс?
|
|
|
XenonTomb 250 EGP
Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004 |
|
2dark_j
70001.xml переделывать не нужно. Просто создаешь новый файлик 7хххх.xml (например 70020.xml) или берешь за основу другой и лишнее прибиваешь, пишешь туды чиво надо (нельзя использовать занятые номера строк в разделе с одинаковым номером, для этого мы и изучаем 70001) в нужной синтаксической форме и в кодировке UTF-8, если по-русски. Потом делаешь init.-файл со строкой load text: id=xxxx (в случае нашего примера id=20), тогда при старте игры твой текстовый файлик подгрузится в память и станет доступным в игре.
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
DArt_X2
|
|
Можешь сказать чего не хватает для счастья моддеру объектов под ХР, почему он вылетает в винду?
|
|
|
XenonTomb 250 EGP
Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004 |
|
Точно сказать не могу, ибо не пользую (все ручками ), но говорят, что надо совместимость с Win9x для него врубить.
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
DArt_X2
|
|
руцями пробовал TShips редагить - работает, хотя оцень часто вылетает Х2 после этого в час 3-4 раза, какая-то
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
DArt_X2 и Goliaph
Вы ошиблись темкой для обсудения модинга. Вам сюда.
2 DArt_X2 Я там ответил
dark_j : |
Была надежда что существует заявленный деапазон page id для использования пользовательскими скриптами (типа как в командах существуют COMMAND_TYPE_SHIP_0 - COMMAND_TYPE_SHIP_29 специально зарезервированные под пользовательские нужды)
Иначе очень не удобно
Внес я изменения под свои скрипты в 70001 затеп выходит патч, новый перевод и опять ручками все измененияч
куда ведь удобней использовать свою page id и отдельный файл
|
Про отдельный файлик тебе уже правильно сказал XenonTomb. Чтобы не было накладок, я например даю имя, совпадающее с id той команды, что я использовал. Т.е. если я использовал COMMAND_TYPE_STATION_29, а его <t id="1129">, то я и имя даю файлу 71129.xml, накладок точно не будет.
Насчет диапазона page id для использования пользовательскими скриптами, есть такой! Это фактически любой id, больший 2000 (если я не ошибаюсь). Но я свои для надежности леплю в page id=6ххх. Но я полагаю, нечто типа
<page id="1479847945" title="Messages" descr="">
в xml должно пройти А далее пользуешься тем же page id и t id, т.е.
load text: id=1129
$msg = sprintf: pageid=1479847945 textid=1, $ship, $cmd, null, null
send incoming message $msg to player: display it=[FALSE]
|
|
|
XenonTomb 250 EGP
Рейтинг канала: 2(16) Репутация: 66 Сообщения: 867 Откуда: Николаев, Украина Зарегистрирован: 17.03.2004 |
|
СМЕЛО ТОВАРИЩИ В ... СКРИПТОПИСАТЕЛИ !
Читая многие ветки форума, часто натыкаюсь на посты про то, что "я ничего в скриптах не понимаю" (в смысле автор поста), "языками не владею", "а напишите мне то-то", "а хорошо бы сделать так-то" и проч.
Многие авторы таких постов возможно думают, что скрипты пишут сплошь кулхацкеры и гении, а им самим такое не по силам. Дык вот, скажу я вам, это неправда. Многие из нас в жизни так или иначе знакомы с программированием, для некоторых это кусок хлеба с маслом, кто-то ведет свои проекты, а кто-то это дело просто любит и уважает, причем язык программирования как таковой в этом деле абсолютно не важен. К примеру, единственный язык, который я знаю, это Turbo Pascal, который я изучил сам по книжкам, и изучил его достаточно неплохо, включая ООП. Немного знаком с программированием на FoxPro и основательно подзабыл Basic. Но все это неважно, так как главное - знать базовые возможности того или иного языка и уметь составлять алгоритмы. Скриптовый движок Х2 достаточно прост и понятен, хотя и немного неудобен в использовании (как выразился кто-то из пилотов, "редактор видимо боронами написан"). Это прекрасная возможность размять мозги и сделать игру такой, как вы хотите, а также научиться алгоритмизировать и программировать, что вам наверняка когда-нибудь пригодится.
Несколько советов для тех, кто хочет научиться писать свои скрипты, но не знает как к этому подступиться:
1) Распечатайте раздел хелпа по Х2 про скрипты. На сегодняшний момент он немного не полон, но для начала хватит. Читать с бумаги приятнее, и всегда можно посмотреть, когда будете ваять в редакторе.
2) Внимательно изучите распечатку. Проясните для себя, какие возможности есть у различных групп команд. После нескольких прочтений вы многое запомните.
3) Запустите редактор, создайте новый скрипт и попробуйте вводить разные команды. Вы быстро разберетесь со способами ввода, редактор практически не дает возможностей ошибаться.
4) Изучите небольшие скрипты других авторов. Их можно смотреть в браузере, не запуская Х2. Для этого надо чтоб в одной папке со скриптами был файл x2script.xsl из папки scripts игры. Разберитесь, пользуя распечатку, что, как и почему сделано.
5) Когда вы решитесь писать что-то свое, сначала тщательно все продумайте. Можно взять листик с ручкой, и нарисовать понятную себе схему алгоритма.
6) После того как базовая задумка будет реализована, поищите в скрипте слабые места. Ошибки всегда лучше выявлять до, а не после.
7) Пред тем как испытывать ваш скрипт, смоделируйте все в голове, возможно, вы чего-то не учли.
8) Не стесняйтесь спрашивать, если вам чего-то не понятно. Все с удовольствием постараются вам помочь.
Хотелось бы закончить данный пост словами ныне покойного ректора УГМТУ товарища Александрова: "Мы ничему не можем вас научить, мы лишь можем научить вас учиться".
_________________ Будут предложения - присылайте на расчетный счет :) |
|
|
Пассажир
|
|
Блин! Второй час мучаюсь никак не могу получить список ресурсов homebase корабля! Количество ресурсов получается, но их назавания... чувствую их можно как-то получить, скорее всего массивом. Но как? Подскажите plz!!!
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
Тебе понадобится 3 команды из меню Trade Commands->for Stations:
$PrRes = [HOMEBASE]-> get number of primary resources
$SecRes = [HOMEBASE]-> get number of secondary resources
$WareArray = [HOMEBASE]-> get tradeable ware array from station
Структура получившегося массива WareArray:
элементы с индексами [0] ... [PrRes-1] - первичные ресурсы
[PrRes] ... [PrRes+SecRes-1] - вторичные ресурсы
[PrRes+SecRes] - продукт.
XenonTomb : |
СМЕЛО ТОВАРИЩИ В ... СКРИПТОПИСАТЕЛИ !
|
Полностью согласен!
|
|
|
Пассажир
|
|
Спасибо! Впринципе я подозревал подвох в этой команде (get tradeable ware array from station), только проблема не в том. У меня версия от НД, с установленным патчем 1,4. В списке команд она отображается нормально, но вот в самом скрипте она отображается в виде стороки "006 ReadText 2003-1041" и сделать с ней соответственно ничего нельзя (например указать переменные). Пробовал ставить различные переводы представленные на данном форуме - безрезультатно...
Залез в 70001.xml. Нашел эту строку "<t id="1041">%1%0 get tradeable ware array from station</t>" Чего с ней делать не представляю... Может просто на русский перевести. Но возникает вопрос, что обозначает "%1%0" Пойду на ветку переводов позаморачиваюсь
Зачем %1%0 понял сам методом научного тыка, но проблоему это не исправило... Перевод на русский тоже (перевелась команда в списке, но не в самом скрипте).
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
Цитата: |
что обозначает "%1%0"
|
Ни в коем случае не трогать! Это позиции параметров в Codearray (там кодируются команды скриптов).
Текст "get tradeable ware array from station" можно перевести на русский, но мне кажется ни в этом проблема.
Если у тебя в редакторе на месте этой команды "ReadText 2003-1041", это означает, что эта строка из 70001.xml не загрузилась. А не переведен ли у тебя случаем именно 440001.xml? Может из него все грузится.
Еще вариант - ты забыл удалить 70001.pck или dat/cat файлы в корневой папке игры.
|
|
|
Goliaph 315 EGP
Рейтинг канала: 1(6) Репутация: 77 Сообщения: 2805 Откуда: Москва Зарегистрирован: 23.05.2004 |
|
akm, кстати у меня рск файлы создаются глючными, игра их не видит.. пользуюсь X2patch09b т.е. даже из-за них виснет
|
|
|
Пассажир
|
|
Да я и сам понял что их лучше не трогать...
440001.xml я вообще не нашел, а 70001.pck и dat/cat файлы точно удалял - помню!
Насколько я понял как ReadText у меня отображаются только новые команды появившиеся в версии 1,4. Все не проверял, но которые смотрел неработают!
И еще как ReadText отображаются некоторые корабли в секторах (как я понял они появились в только в версии 1,4 и выполняют какие-то миссии).
|
|
|
Пассажир
|
|
Возник еще один вопрос, а может ввод данных осуществляться в момент выполнения скрипта? Или только в начале?
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
44/70001.xml думаю загружаются во время запуска игры (т.е. еще до появления основного меню игры). Возможно у тебя exe "неправильный", не 1.4? Даже и не знаю что еще может быть
|
|
|
Пассажир
|
|
Да нет, exe тоже вроде тот ... "x2-exe-1.4cr.rar"
Я много еще чего делать пробовал - не помогает... Почитай здесь http://www.elite-games.ru/conference/viewtopic.php?p=548555#548555
Прям хоть за пиратской версией ехать...
|
|
|
Пассажир
|
|
Кстати, а как на счет ввода данных во время выполнения скрипта? Т.е. если до начала работы скрипта я еще не знаю сколько данных мне понадобится? Например для каждого ресурса станции (их может быть 1, 2 или 3), необходимо ввести станцию источник...
|
|
|
akm 470 EGP
Рейтинг канала: 1(4) Репутация: 173 Сообщения: 1638 Откуда: Паразит Прайм Зарегистрирован: 23.10.2002 |
|
Цитата: |
Кстати, а как на счет ввода данных во время выполнения скрипта?
|
А никак!
Придумай как выкрутиться. Например сделай доп. команду на станции "Добавить источник"
|
|
|
Narlit 100 EGP
Репутация: 4 Сообщения: 133 Откуда: Санкт-Петербург Зарегистрирован: 03.04.2004 |
|
Стал тут эксперементировать с установкой новых ворот. Вобщем после установки какое то время все работает как надо, но буквально минут через пять игра подвисает. кто знает в чем загвоздка?
|
|
|
Gward 310 EGP
Рейтинг канала: 2(21) Репутация: 75 Сообщения: 1307 Откуда: Ставрополь Зарегистрирован: 11.06.2004 |
|
Ну почему же. Есть мысля. В работающий скрипт добавить периодическую проверку глобальной переменной ("флаг"). При изменении её статуса прочитать новые значения соответствующих глобальных переменных. Второй скрипт состоит из запроса нужных данных, загона их в глобальные переменные и "поднятия флага".
Сам этот тандем не апробировал, но в теории вроде должон работать.
|
|
|
|
|
|
Канал X2: The Threat: «FAQ: Скриптописание» |
|