|
|
|
Канал X3: Reunion »
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|
|
q2digger 70 EGP
Репутация: 6 Сообщения: 174 Откуда: Korolev Зарегистрирован: 26.10.2004 |
|
2Shaker
я и сейчас не особо понял что именно ты хочешь сделать.
Может проще скачать MSCIHandbook (123 страницы англоязычного рулеза), открыть редактор скриптов и посмотреть _что_ именно там можно сделать?
Трехмерный массив по моему сделать нельзя, но в MSCIHandbook есть в описании контрукции вида array{array2}
Обычное меню делается очень просто - читать тут - http://Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./Contents.htm (про двухуроневное не скажу, изврат по моему).
|
|
|
Krom 455 EGP
Рейтинг канала: 1(3) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005 |
|
Цитата: |
Каким макаром можно добавить меню куданибудь, причем двух уровневое хотяб 5/5
|
Есть командная консоль, но она, как я понимаю, тебя не устроит. Двухуровневость там, мягко говоря, гвоздями к полу прибита, поэтому если хочешь, можешь поспрашивать Алекса из Ярославля - он говорил, что придумал некую суперскую технологию по выведению многоуровневых меню в сообщениях
Цитата: |
Может проще скачать MSCIHandbook
|
Ерунда, в общем-то, да и не развивается этот Handbook уже чёрти сколько. У DragonP информация полнее и свежее. Да.
Цитата: |
Можно ли объявить глобальный массив Х/Х/Х (трехмерный)
|
Можно, но тяжко и непонятно зачем. Просто учти, что когда ты создаёшь массив скриптовой командой, она возвращает тебе указатель на первый элемент массива. Далее всё делается так же, как в обычном С++.
Цитата: |
Ну и возможно-ли создать что нито типа класса который будет видно в "проперти овнед" и если совсем хорошо то на карте сектора, но! это будет невидимый объект без координат, но принимающий комманды как у истребителей.
|
Не до конца понимаю суть вопроса, но на всякий случай вот тебе пища для размышлений:
Fleet Orders http://forum2.egosoft.com/viewtopic.php?t=107795
Task Force Command: http://forum2.egosoft.com/viewtopic.php?t=119433
_________________ Не спешите меня. |
|
|
AlexYar 1854 EGP
Рейтинг канала: 13(2096) Репутация: 324 Сообщения: 31663
Зарегистрирован: 26.10.2003 |
|
Krom : |
он говорил, что придумал некую суперскую технологию по выведению многоуровневых меню в сообщениях
|
Только для х2. В х3 это невозможно из-за убогости скриптового движка.
|
|
|
Krom 455 EGP
Рейтинг канала: 1(3) Репутация: 159 Сообщения: 1988 Откуда: Горы Урала Зарегистрирован: 19.07.2005 |
|
AlexYar : |
Только для х2. В х3 это невозможно из-за убогости скриптового движка.
|
Не поделишься способом? Вдруг всё-таки возможно извернуться...
_________________ Не спешите меня. |
|
|
AlexYar 1854 EGP
Рейтинг канала: 13(2096) Репутация: 324 Сообщения: 31663
Зарегистрирован: 26.10.2003 |
|
Krom : |
Вдруг всё-таки возможно извернуться...
|
Невозможно. В х3 нет нужных команд скриптредактора.
В х2 благодаря Шадди и Чекеру возможности скриптописания и моддинга на порядок круче, чем в х3. МОжет быть (я надеюсь) и в х3 такое когда-нибудь будет, но скорее всего еще оооочень не скоро (пока не выйдет заключительный патч, т.е. еще где-нить пол годика-год).
|
|
|
Пассажир
|
|
НАРОД,ПОМОГИТЕ!!!
Не могу активировать в X3 редактор скриптов.Захожу во вкладку "Pilot",потом в "Rename",пишу там имя-Thereshallbewings,нажимаю Enter,и редактор нигде не появляется!Помогите,кто знает в чём дело!(Версия 1.3!)
|
|
|
MorphiniST 1063 EGP
Репутация: 125 Сообщения: 5498 Откуда: Питер! Зарегистрирован: 28.09.2005 |
|
Нажми shift + c , а потом s.
_________________ Пальмы и лианы, райское местечко.
Сочные бананы кормят человечков. |
|
|
Пассажир
|
|
MorphiniST : |
Нажми shift + c , а потом s.
|
Не помогает.Даже не знаю что делать!
|
|
|
sergej4341 460 EGP
Рейтинг канала: 5(139) Репутация: 148 Сообщения: 1593 Откуда: Химки/Брест Зарегистрирован: 16.01.2004 |
|
SANTA : |
и редактор нигде не появляется
|
нигде - это где?
редактор должен появиться в консоли, там смотрел?
собственно MorphiniST подсказал, как горячими клавишами туда попасть
попробуй еще раз вбить слово, только аккруатно, может где какой пробел затесался
_________________ нажал клав. и затаил дыхание |
|
|
Finist 1807 EGP
Рейтинг канала: 9(1063) Репутация: 391 Сообщения: 12159 Откуда: Рязань РОССИЯ Зарегистрирован: 25.12.2003 |
|
SANTA : |
MorphiniST : |
Нажми shift + c , а потом s.
|
Не помогает.Даже не знаю что делать!
|
ИМХО Самое простое: выйти из всех меню(корабль должен быть в космосе), а потом уже жать на кнопки. Если всё набрано правильно редактор должен быть, если его нет, то (ИМХО) переставить игру.
ЗЫ Для таких вопросов есть "Вопросница"
_________________ Про модераторов сказать можно много разного, вот только написать нельзя... |
|
|
Sten 200 EGP
Репутация: 30 Сообщения: 150 Откуда: Екатеринбург Зарегистрирован: 12.12.2003 |
|
Подскажите пожалуйста как узнать какая команда выполняется на корабле (текущем или другом), именно команда а не верхний скрипт из стека.
Под командой я подразуемаеваю скрипт активируемый из консоли.
|
|
|
AlexYar 1854 EGP
Рейтинг канала: 13(2096) Репутация: 324 Сообщения: 31663
Зарегистрирован: 26.10.2003 |
|
Sten : |
Под командой я подразуемаеваю скрипт активируемый из консоли.
|
Имя скрипта надо узнать или имя команды? Первое никак, а второе get command (то, что в инфо), чтобы узнать консольное имя команды - get script command. Но консольное имя не всегда отображалось в х2 (отображался код вида COMMAND_KILL_ENEMIES), поэтому надо было делать отдельный интерпретатор команд (для сообщений игроку).
|
|
|
Orfeus 111 EGP
Репутация: 23 Сообщения: 150 Откуда: Пенза Зарегистрирован: 30.12.2005 |
|
В Х3, как все уже поняли, для покупки какой либо собственности на верфях (фабрики, корабли) уже нужон рейтинг данной рассы. Вопрос практический: каким образом выцапать минимальный рейтинг игрока для покупки определенного товара на определенной верфи? Я вчера 3 часа убил на поиск этой команды в ScE - ну нету ее...Может они ее в ядро зашили? Но смысл...Или проще исходники скриптов раскопать? Но прописывать их там в константах дело геморное и неблагодарное...Хотя игосовтовцы особой сообразительностью никогда не отличались...Может еще в языковых файлах - но имхо совсем изврат...
|
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
hover2006 : |
Вопрос практический: каким образом выцапать минимальный рейтинг игрока для покупки определенного товара на определенной верфи
|
Есть команда, меняющая расовый рейтинг. Есть также нюансы работы с ней, для 100% корректной работы нужно рейтинг добавлять-убирать по 1. Если добавить сразу 1000, а затем убрать 1000, рейтинг получается другой, чем был.
Ну а ответ на твой вопрос не сложен: меняем рейтинг (по единичке) и с помощью торговых команд вычисляем, продают нам интересующее барахло, или нет.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
AlexYar 1854 EGP
Рейтинг канала: 13(2096) Репутация: 324 Сообщения: 31663
Зарегистрирован: 26.10.2003 |
|
Grey Wolf : |
Ну а ответ на твой вопрос не сложен: меняем рейтинг (по единичке) и с помощью торговых команд вычисляем, продают нам интересующее барахло, или нет.
|
А игрок всё это время будет слушать фразы "Вас повысили" и наблюдать рост рейта в статистике7 А потом его ждет большой облом, когда рейт обратно упадет?
hover2006 : |
Я вчера 3 часа убил на поиск этой команды в ScE - ну нету ее
|
Я в листинге команд в хмл-нике видел нужную тебе команду. В самой игре не искал её, может её не задействовали.
Вообще, требуемый рейтинг выставляется не скриптами, а прописан для каждого корабля, станции, товара, апгрейда и прочего в соотвествующих файлах конфигураций (в папке Types).
|
|
|
Orfeus 111 EGP
Репутация: 23 Сообщения: 150 Откуда: Пенза Зарегистрирован: 30.12.2005 |
|
To GreyWolf, да и всем остальным тоже: - объясни принцип работы с командой добавления рейтинга - я так понимаю это add notoriety. Сейчас в х2 попробвал - действительно плюс на минус - хз...Вопрос следующий: Есть абсолютное значение расового рейтинга (от -1000000 до 333333) если я все правильно понимаю, как его запомнить (начальное), потом прибавляя по единичке как получить текущее значение рассвого рейтинга в удобоваримом виде (ну там всякие герои федерации, семьи, королевства и прочее), и как его потом взад вернуть (отнять скока прибавили или что-то еще?). Да, еще если не трудно, укажи плиз команду по которой определить, продадуть ли мне товар на станции или нет.
|
|
|
AlexYar 1854 EGP
Рейтинг канала: 13(2096) Репутация: 324 Сообщения: 31663
Зарегистрирован: 26.10.2003 |
|
hover2006 : |
объясни принцип работы с командой добавления рейтинга - я так понимаю это add notoriety. Сейчас в х2 попробвал - действительно плюс на минус - хз
|
В х2 я разобрался и расписал по полочкам здесь:
http://www.elite-games.ru/conference/viewtopic.php?p=1060515#1060515
Возможно в х2 работает так же.
|
|
|
Orfeus 111 EGP
Репутация: 23 Сообщения: 150 Откуда: Пенза Зарегистрирован: 30.12.2005 |
|
То AlexYar:
Я конечно не скриптоцарапатель с сединой в брови и все такое, но в ближайший день-два я дам здесь полный расклад по формулам и принципам образования рейтнига в Х3
add спустя 2 часа:
На самом деле в Х3 довольно простой алгоритм добавления/вычитания рейтинга - я его уже разгадал. Сейчас выкладывать не буду - выложу позднее вместе с кодом для установки конкретного (!!!любого) значения рассового рейтинга с точностью до единицы. И кто то обломится слегка.
ЗЫ в х3 get notoriety сделали работоспособной
add спустя еще 2 часа:
Если кто нить вплотную работал с командой write into log file - поделитесь примерчиком и общим описанием данной команды (более широким, нежели в учебнике) - буду оченно признателен, все сделал кроме нее
add еще 12 часов спустя:
Как и обещал:
Механизм образования, прибавления и вычитания расового рейтинга игожоповцы с выходом х3 наконец то привели в (относительный) порядок. Что имеем:
- как я уже говорил команду получения рейтинга сделали работоспособной, возвращает то самое число (см таблицы рейтинга)
- прибавление и вычитание рейтинга осуществляется следующим образом:
а) считаем относительный коэффициент K (считаем, потому что он нелинеен, т.е. при попытке добавить 1 к ректингу, добавляется 10 единиц, при добавлении 2 - 25, при добавлении 3 - 35, 4 - 50 и так далее, т.е. каждый следующий прибавляет по очереди то 10, то 15). Итак, формула такова:
Код: |
if (Abs(intStep) mod 2) = 1 then
k = (Abs(intStep)-1)/2*25+10
else
k = Abs(intStep)/2*25
end if
|
b) если у нас идет прибавление рейтинга, то соответственно прибавляется k в чистом виде (вне зависимости от текущего рейтинга CurNot), иначе (вычитается рейтинг) - если текущий рейтинг больше -500, то чем больше текущий рейтиг, тем больше будет снято, иначе (меньше или равно -500) снимается тоже k:
Код: |
if intStep>0 then
addInc = k
else
if curNot <= -500 Then
addInc = -k
else
addInc = -Fix(2 * k * (CDbl(curNot) / 1000 + 1))
end If
end if
|
В конце соответственно имеем addInk - число, которое будет прибавлено к текущему рейтингу в резульате наших операций
ЗЫ Текст алгоритма на VBA - не бить сильно, на нем отлаживал, сегодня переведу в ScE, потом выложу вместе с кодом установки точного значения (попробуйте угадайте примерный алгоритм при таком раскладе)
ЗЗЫ Надеюсь кому нить пригодится ибо с установкой конкретного рейтинга большая в плане вычислительных нагрузок - перемудрили что то немцы - сами себя причем
To AlexYar: попробуй поковырять что-то подобное для Х2 - может выйдет, хотя отсутствие команды получения текущего рейтинга сильно усложняет эту задачу, да и нелинейность там команд похоже на весь диапазон, в оба направления (по разному принципу)
|
|
|
Grey Wolf 500 EGP
Репутация: 115 Сообщения: 1677 Откуда: Ростов-на-Дону Зарегистрирован: 31.03.2003 |
|
Я уже писал, если добавлять-снимать расовый рейтинг по 1, то никаких проблем нет, все корректно добавляется. В итоге чтобы добавить n к расовому рейтингу, надо написать такой цикл:
while n
dec n
add notoriety 1 (команда написана сокращенно)
end
Чтобы снять рейтинг n, все то же самое, только добавлять -1.
Никаких строк wait в цикл вставлять не надо.
Другое дело, что есть необходимость иметь точку отсчета. В Х2 команда get notoriety не работала, всегда выдавала 0. Если в Х3 она работает (пока не проверял), то все пучком, а если по прежнему нет, то в Х2 я из положения выходил так: меняя рейтинг по 1 внутри указанного цикла, я проверял, пускают ли корабль пилота на станции. Пускают-не пускают - этот момент и служил точкой отсчета для определения текущего рейтинга.
_________________ Быстро выпитая рюмка не считается налитой |
|
|
Orfeus 111 EGP
Репутация: 23 Сообщения: 150 Откуда: Пенза Зарегистрирован: 30.12.2005 |
|
Grey Wolf : |
Я уже писал, если добавлять-снимать расовый рейтинг по 1, то никаких проблем нет, все корректно добавляется.
|
Я же черным по белому написал, что добавление единички рейтинга командой add notoriety добавляет 10 к рассовому рейтингу, а вычитание единички зависит от текущего рейтинга (см. пост выше).
Для примера, если у какой либо расы у вас текущий рейтинг 100.000 (ну оченно вы отличились), то add notoriety 1 даст увеличение рейтинга на 10, а add notoriety -1 даст уменьшение рейтинга на 2020 единиц.
.Кстати, все свои махинации с рейтингом я уже написал в ScE, т.е. есть скрипт, который выдает на сколько будет увеличен (реальных единиц) или уменьшен рассовый рейтинг у данной рассы при данном степе в команде добавления рейтинга (последние 2 это параметры - раса, степ) и есть скрипт, который используя первый выставляет нужный рейтинг у рассы с точностью до единички (конечного рейтинга)
ЗЫ Все выкладки для Х3 - канал Х3
|
|
|
|
|
|
Канал X3: Reunion ->
Модовый и скриптовый отсек X3: Reunion: «Скриптописание - делимся опытом, задаем вопросы» |
|