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

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

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

   Страница 44 из 56
На страницу: Пред.  1, 2, 3 ... 43, 44, 45 ... 54, 55, 56  След.    Перейти:   Все страницы
Поиск в этой теме:
Звездные волки 2: Гражданская война » МОДовый отсек: «Секреты моддинга (Вопросница)»
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
negat!ve :
Создать персонажа в спасательной капсуле в космосе ?

1. Создаешь в нужном месте "истребитель".
2. Сажаешь туда своего "персонажа".
3. Взрываешь истребитель.

 Cкрытый текст   (кликните здесь для просмотра)
У меня это есть в готовом виде, в скрипте:
engine_update_ru.dat\data\Scripts\include\starrover_mk1\rescue_pod.script.
(эт где второй подъем пилота), и посмотри еще скрипт:
engine_update_ru.dat\data\Scripts\AI_mk1\Case_Eject_mk1.script

Из особенностей:
- триггер подъема пилота на борт корабля-базы не срабатывает, если пилот не из команды игрока (отсюда у меня и перекидывание пилотов между командами);
- в качестве "истребителя" я использовал объявленный мной каркас (<Interceptor name="RescuePod_mapsource">) с мешем NULL.

negat!ve :
1.Можно как нибудь реализовать телепортацию между системами без порталов, по диалогу либо как-то еще ?

Да хоть с игровой консоли ([Shift]+[~]), причем в любое время (надо только ручками набрать одну строчку текста и нажать на [Enter]).
Функция CustomTeleportate(last_location, target_location,VideoDescrFileName);
пример, если с консоли игры:
runscript CustomTeleportate('pegas','ahilles','random_jump')
--эт с учетом того, что в системе 'ahilles' есть портал, ведущий из системы 'pegas', и именно оттуда и появится корабль-база.

negat!ve :
Есть ли функция в скриптах, которая срабатывает постоянно при старте истребителя ?

? --Функция расстановки звеньев при вылете из ангара ?
/* которая указанна именно для текущего корабля-базы игрока */
В скриптовом АИ, новый истребитель игрока тоже вполне таки можно отловить.
 Cкрытый текст   (кликните здесь для просмотра)
/* функции ModifyShipMaxSpeed, ModifyShipSteeringPower, и пр. для его пилота точно начнут вызываться (если скриптовый АИ включен в AI.ini), вопрос только в том, что среди очень большого количества вызовов надо отлавливать первое появление в космосе связки пилот_игрока-истребитель, и обнулять данные по этой связке при стыковке с базой или гибели истребителя. т.е. технически можно, но мороки достаточно много */
Третий вариант - попробовать реализовать оповещение о старте истребителей игрока через триггеры, навешанные на корабль-базу.

valv: (относительно последнего вопроса)
Может кто знает лучший вариант, или уже пробовал реализовать подобное "событие" ?
_________________
Если мечтать, то ни в чём себе не отказывать :)

Последний раз редактировалось: valv (03:32 01-08-2015), всего редактировалось 8 раз(а)
    Добавлено: 02:51 01-08-2015   
negat!ve
 57 EGP

Репутация: -2
Сообщения: 70

Зарегистрирован: 24.07.2015
Спасибо, посмотрю эти скрипты.Сейчас смотрю как сделаны спешиалы ...
И там вообще не понятно откуда берутся эти
<SummonNAVY>
<summonNavyFunction>
Неуже-ли они зашиты в движке игры и новый спешл не добавить ?
И как понимать это ?
Ai.ini
[PilotManager]
;использовать ли вычисление перков посредством скриптовых функций
;по умолчанию - 0 - обработка идет посредством движка
useLUAPerkProcessor = 0

pilotSoundPercentToPlay = 70

Не знал, что в игре есть консоль Улыбка
А где посмотреть на список всех команд ?
В идеале я хотел бы создать тестовый скрипт, позволяющий телепортироваться по выбору игрока из диалога в любую систему.Но не понял на что повесить вызов диалога.Кроме того там нужно как-то фиксить перемещение корабля базы, что-бы он респавнился канонично у портала, и камера фокусировалась на нем, я еще не изучил как это связать Расстройство

Последний раз редактировалось: negat!ve (14:07 01-08-2015), всего редактировалось 2 раз(а)
    Добавлено: 13:58 01-08-2015   
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
negat!ve :
не понятно откуда берутся эти <SummonNAVY> <summonNavyFunction>
Из \Data\Scripts\AI\Specials.script

negat!ve :
И как понимать это ? Ai.ini [PilotManager]
;использовать ли вычисление перков посредством скриптовых функций
;по умолчанию - 0 - обработка идет посредством движка
useLUAPerkProcessor = 0
pilotSoundPercentToPlay = 70

Так и понимать. Если не поменяешь useLUAPerkProcessor на 1, то скриптовые функции АИ,
которые в оригинале игры загружаются из скриптов, находящихся в \Data\Scripts\AI\, просто не будут вызываться движком игры.

pilotSoundPercentToPlay - это параметр, определяющий какой % реплик пилотов,
находящихся в \Data\LocData\Russian\Voice\, будет проигрываться при соотв. игровых ситуациях.

negat!ve :
Не знал, что в игре есть консоль Улыбка

Она есть во всех версиях волков.
Мой текстовый файлик по использованию консоли лежит вот тут (текст, кодовая страница 1251, команды игровой консоли и их параметры). Оно же:
 Cкрытый текст   (кликните здесь для просмотра)
Информация по командам игровой консоли "Star Wolves 2"
/*
****************************
* valv, version 2012-02-26
****************************
*/
документация проекта "Retrospection"

Инициализация игровой консоли:
В файле main.ini в блоке GAME допишите параметр DebugMode = 1
В игре нажмите [SHIFT] + [~], откроется игровая консоль.

Получить список команд:
написать "cmdlist", и нажать на [ENTER] Улыбка

Вводить команды в формате:
команда + ПРОБЕЛ + параметр + ПРОБЕЛ + параметр...
например: g_cheats 1

Ввод команды без параметров:
вывести текущее значение.

Ввод команды с неправильным количеством параметров:
вывести справку по использованию команды.
например: g_cheats 9 9 9 9 9
выведет:
'g_cheats': illegal number of arguments: required 1, but passed 1.
usage:
g_cheats <BOOL 'flag'>

Установка начальных значений:
прописать в файле "default.cfg",
расположенном в корневой директории игры (рядом с папкой "DATA").

Запуск скриптов:
ввести runscript <script code>
для вывода результата на консоль использовать функцию SLOG(<string>)
и функцию tostring() для приведения выводимого результата к строке.
внутри <script code> пробелы недопустимы.
для блокировки "управляющих последовательностей" и спецсимволов,
строки ограничивать не кавычками, а ограничителями '[[' и ']]'
при отладке,использование функций Lua: type(), tag(), getinfo(), ...
с консоли, позволяет получить дополнительную информацию (и вполне удобно)
при запуске с консоли обработка ошибок перехватывается,
и можно, на ввод функции с недопустимымии аргументами,
просто получить об этом сообщение, а не обрыв скрипта Улыбка


Console command list:
--------------------------------------------------------------------------------
command name param count params
--------------------------------------------------------------------------------
exec 1 <String 'filename'>
cmdlist 1 [String 'command']
echo 1 [String 'message']
cls 0

ui_bind 3 <String 'key code'><String 'command(s)'>[BOOL 'global flag']
ui_unbind 1 <String 'key code all'>

ui_add_action 3 <String 'action name'><String 'action flag'>[String 'action desc']
ui_remove_action 1 <String 'action name all'>
ui_exec_action 1 <String 'action name'>

ui_inertion_rotation 1 <FLOAT '0.5..0.99'>
ui_inertion_move 1 <FLOAT '0.5..0.99'>
ui_inertion_movetofocus 1 <FLOAT '0.5..0.99'>
ui_inertion_cameramove 1 <FLOAT '10.0..100.0'>

__pstr_dump 0
__clear_slog 0

quit 0

g_showinvisible 1 <BOOL 'flag'>
g_cheats 1 <BOOL 'flag'>

gr_init_resolution 4 <INT 'XRes'><INT 'YRes'><INT 'BitDepth'><BOOL 'FullScreen'>
texture_detail 1 <INT 'detail_level'>
mip_mapping 1 <BOOL 'flag'>

/* управление отображением "указателей", в игре - клавиша "H"*/

ai_showstate 1 <BOOL 'flag'>
ai_showpointers 1 <BOOL 'flag'>
ai_togglepointers 0

__localization_folder 1 <String 'path'>

volume_sound 1 <FLOAT 'volume'>
volume_music 1 <FLOAT 'volume'>

_ui_before_repeat_delay 1 <FLOAT>
_ui_repeat_delay 1 <FLOAT>
_ui_dclick_time 1 <FLOAT>

_gui_hint_pause 1 <FLOAT>
_gui_hint_delay 1 <FLOAT>
_gui_max_drag_mouse_offset 1 <FLOAT>

gui_toggleconsole 1 [FLOAT 'fast_flag']
gui_con_color 4 <FLOAT 'r'><FLOAT 'g'><FLOAT 'b'><FLOAT 'a'>
gui_con_fontcolor 3 <FLOAT 'r'><FLOAT 'g'><FLOAT 'b'>

gr_showmissbound 1 <BOOL>
gr_showfps 1 <BOOL 'flag'>
gr_togglefps 0
gr_showfpscounter 0

runscript 1 <String 'string'>

mouse_sensitivity 1 <FLOAT 'sensitivity'>
wheel_sensitivity 1 <FLOAT 'sensitivity'>
invert_mouse 1 <BOOL 'flag'>
mouse_scrolling 1 <BOOL 'flag'>

_ui_selection_range 1 <FLOAT 'max_range'>
_ui_focus_range 1 <FLOAT 'max_range'>
_ui_attack_range 1 <FLOAT 'max_range'>
_ui_move_range_h 1 <FLOAT 'max_range'>
_ui_move_range_v 1 <FLOAT 'max_range'>

g_current_profile 1 <String 'name'>
g_dump 1 <String 'classname'>
g_delete 1 <String 'objectUID'>
g_storeworld 1 <String 'filename'>
g_restoreworld 1 <String 'filename'>
g_tradestationdlg 0
g_storelocation 1 <String 'filename'>
g_restorelocation 1 <String 'filename'>
g_initplayerteam 0
g_initlocation 0
g_teleport_to_location 1 <String 'filename'>
g_quest_start 1 <String 'name'>
g_recruits 2 <String 'questName'><INT 'recruitsNum'>
g_test 0
g_togglepause 1 [BOOL 'IsPaused']
g_clear_level 0
exit_to_menu 0
g_win_mission 1 [INT 'exit code']
g_fail_mission 0

--обучалка
__team_dump 0

Дополнительная информация, для тех, у кого установлено мое дополнение engine_update_ru.dat к ЗВ2.ГВ
 Cкрытый текст   (кликните здесь для просмотра)
Функции которыми я пользуюсь при работе с игровой консолью объявлены в
engine_update_ru.dat\data\Scripts\include\starrover_mk1\misc\debug_log.script.
/* в версии от 25-01-2015, в некоторых местах, надо подправить путь: заменить \\include\\starrover\\ на \\include\\starrover_mk1\\ */

Из наиболее удобного, это функция log_return(...), которая работает как прозрачные программные скобки, и кроме возврата всех переданных ей параметров, еще и выводит в консоль информацию об их типах. Используется для просмотра результатов вызова любой функции, или просмотра текущего значения любой переменной из контекста Луа.
Применять ее во время отладки скриптов тоже достаточно удобно.

Еще стоит обратить внимание на функцию log_globals(data_source, show_values, tag_filter), выводящую в консоль игры (и в лог-файл) список глобальных переменных, либо содержимое любой указанной таблицы. Описание параметров есть в самом скрипте. Примеры:
runscript log_globals(nil,nil,18) --вывести список порталов в текущей локации ГВ
runscript log_globals(Dest_Ships_List,nil,nil) --вывод таблицы Dest_Ships_List, объявленной в скрипте ObjectList.script
runscript log_globals(nil,TRUE,5) --вывести полный список доступных функций (не быстро).
Перекинуть результаты вызова из лог-файла в excel - вопрос нескольких минут.

Кстати, есть еще объявленные движком в табличке _CLASS методы игровых объектов, которые можно и посмотреть, и (если это надо) вывести их список в лог-файл.

Функция log_name() выводит в лог имя той функции, откуда она вызывается. Если надо в поиске места ошибки, проследить порядок срабатывания функций квеста, то внутри нужных функций квеста просто расставляется ее вызов.

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

negat!ve :
на что повесить вызов диалога.

На любую свободную "горячую клавишу".
Посмотри мой gui_update_ru.dat/data/GUI/controls.cfg.
_________________
Если мечтать, то ни в чём себе не отказывать :)

Последний раз редактировалось: valv (19:18 02-08-2015), всего редактировалось 13 раз(а)
    Добавлено: 15:55 01-08-2015   
negat!ve
 57 EGP

Репутация: -2
Сообщения: 70

Зарегистрирован: 24.07.2015
valv :
negat!ve :
не понятно откуда берутся эти <SummonNAVY> <summonNavyFunction>
Из \Data\Scripts\AI\Specials.script

А там они откуда берутся ?!
т.е. я хочу сделать свой собственный спешиал, там еще есть XMLScheme для них, но добавив там свой тег не получилось Расстройство

Так-же не получается вызвать диалог из спешиал скрипта ... хотя файл диалога я поместил рядом со скриптом

А по свободным хоткеям получится вызвать диалог ?

Последний раз редактировалось: negat!ve (16:08 01-08-2015), всего редактировалось 1 раз
    Добавлено: 16:06 01-08-2015   
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
negat!ve :
я хочу сделать свой собственный спешиал

Содержимое \Data\XMLScheme\ менять бессмысленно - оно движком вроде даже не читается.
По спешиалам, можно только заменить какой-то из стандартных вызовов поддержки на свою функцию.
По другому - эт только к тем, кто имеет и "права", и желание сделать новую версию движка (.exe)
/* а таких вроде уже нету. проект "заморожен" (т.е. помер) */
negat!ve :
не получается вызвать диалог из спешиал скрипта.

Единственный известный мне баг движка ГВ (ver.1.12), при котором может таки не вызываться диалог, эт отсутствие у игрока корабля-базы.
В других случаях, все правильно написанное вроде работает. Отлаживай.
/* хотя-бы посмотри как сделаны в ГВ диалоги "бродячих торговцев", и где они лежат */

P.S. По "горячей клавише" через runscript можно вызвать (с параметрами) совсем любую функцию Луа,
а уж насколько она корректно написана и отлажена - это уж проблемы только ее автора.
_________________
Если мечтать, то ни в чём себе не отказывать :)

Последний раз редактировалось: valv (17:49 01-08-2015), всего редактировалось 9 раз(а)
    Добавлено: 17:35 01-08-2015   
negat!ve
 57 EGP

Репутация: -2
Сообщения: 70

Зарегистрирован: 24.07.2015
хз почему диалог не работает из спешиала, но из скрипта квеста он вызывается, и работает корректно, скрипт спешиала, то-же работает пока не вписать туда вызов диалога.
Корабль база присутствует.
Про спешиал я имею ввиду, что я клонировал спешиал вызова предтеч, поскольку полностью свой я создать не смог, именно этот клонировал потому-что там есть вызов луа функции.Типа так хотел сделать запуск телепортации в любую систему, а их список добавить в диалог, типа игрок нажимает на спешиал и телепортируется куда захочет

добавлено спустя 15 минут:
valv :
По спешиалам, можно только заменить какой-то из стандартных вызовов поддержки на свою функцию.

Т.е. в игру никак не добавить новый тип спешиал правильно ?
Но ведь ничего плохого не случится если я буду использовать теги от <SummonNAVY>
<summonNavyFunction> для своих фитч ?

добавлено спустя 3 минуты:
Код:
<SummonPREC>
      <prerequisites>
         <AtMost>
            <specialActionType>SummonPREC</specialActionType>
            <specialActionLevel>0</specialActionLevel>
         </AtMost>
      </prerequisites>
      <internal_name>teleport_1</internal_name>
      <name>#M_Teleport_perk</name>
      <description>#M_Teleport_perk_desk</description>
      <icon>SpecPrecur3</icon>
      <level>1</level>
      <charges>3</charges>
      <rechargeTime>100</rechargeTime>
      <auraFX>hack</auraFX>
      <upgrade_cost>0</upgrade_cost>
      <summonPRECFunction>TeleportPerkFunction</summonPRECFunction>
   </SummonPREC>


добавлено спустя 9 минут:
Т.е. всего в игре 19 уникальных типов для спешиалов
Которые можно использовать и на их основе делать свои ...
<Boost></Boost>
<Burst></Burst>
<Finesse></Finesse>
<Lucky></Lucky>
<MissleSalvo></MissleSalvo>
<Inspire></Inspire>
<SnakeAttack></SnakeAttack>
<WeakSpot></WeakSpot>
<CoupDeGrace></CoupDeGrace>
<Depolarization></Depolarization>
<Polarization></Polarization>
<Jinxed></Jinxed>
<HackShip></HackShip>
<HackBerserk></HackBerserk>
<SnipeOut></SnipeOut>
<SummonNAVY></SummonNAVY>
<SummonKFNI></SummonKFNI>
<SummonBerserk></SummonBerserk>
<SummonPREC></SummonPREC>

добавлено спустя 3 минуты:
Только я не понял как передается аргумент для функций типа
<summonPrecFunction>SummonPrecLevel_1</summonPrecFunction>
В скриптах она имеет аргументы, которые в XML не пишутся, значит пишутся где-то еще ? или передаются движком игры ?
function SummonPrecLevel_1(x, y, z, ship, duration)
SummonPrecFunction(x, y, z, ship, duration, 1);
end;

Последний раз редактировалось: negat!ve (18:42 01-08-2015), всего редактировалось 5 раз(а)
    Добавлено: 18:42 01-08-2015   
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
negat!ve :
всего в игре 19 уникальных типов для спешиалов

Думаю это число стоит сократить до тех типов спешиалов, которые таки вызывают скриптовые функции Луа.
/* т.е исключить все типы, полностью реализованные внутри движка, и не вызывающие ничего из контекста Луа. Моддеру поменять в них ничего не получится. */
 Cкрытый текст   (кликните здесь для просмотра)
<SummonNAVY></SummonNAVY>
<SummonKFNI></SummonKFNI>
<SummonBerserk></SummonBerserk>
<SummonPREC></SummonPREC>

negat!ve :
как передается аргумент для функций типа
<summonPrecFunction>SummonPrecLevel_1</summonPrecFunction>

Никак. Строка с именем вызываемой функции прописывается в данных тега <summonPrecFunction>.
Для счетчика вызовов используются глобальные переменные.
Открой скрипт, и прочитай написанные на русском языке комментарии.
 Cкрытый текст   (кликните здесь для просмотра)
Пример из скрипта \Data\Scripts\AI\Specials.script:

-- инициализируем счетчик для создания локальных переменных
local_num2 = 0;
init_team2 = 0;
...
function SummonPrecFunction(x, y, z, ship, duration, level)
local flight_usage;

-- с каждым вызовом увеличиваем счетчик
local_num2 = local_num2 + 1;
...

P.S. Вообще-то передавать аргументы в те функции, которые игровой движок вызывает просто по сохраненной строке их имени вполне можно.
 Cкрытый текст   (кликните здесь для просмотра)
В этом случае движок пытается вызвать функцию из контекста Луа как имя_функции+"()".
Передачу параметров я делал через объявление своей "пустышки" NOP() (No Operation), и строку вызываемой функции указывал как имя_функции(<параметры>)+";NOP".
Тогда движок вызывает имя_функции(<параметры>)+";NOP"+"()", что синтаксически корректно и не приводит к ошибкам.
Список параметров может быть или заранее преобразованным к их текстовым значениям, или переданным (сформированным) во время вызова функции, поскольку вызов функции движком идет аналогично dostring.
Пример такого имени: my_action_name = "my_action(my_param);NOP"
где-то так.

2015-08-04: Исправил в тексте глупую описку по dostring. Использование оной удобно, если нужно передать как параметры результаты обработки блока кода (преобразование параметров), а в единичных случаях - оно просто лишнее.

Посмотри в руководстве Луа 4.0.1 типы и видимость переменных (локальные, глобальные, вызов функций upvalue, unpack, ...)

/* в данном случае, функции upvalue, unpack, это не имена функций Lua 5, а аналогичные им скриптовые функции из моей добавки к Lua 4.0.1,
находящейся в
engine_update_ru.dat\data\Scripts\include\starrover_mk1\lua_lib_ext.script */
_________________
Если мечтать, то ни в чём себе не отказывать :)

Последний раз редактировалось: valv (00:02 05-08-2015), всего редактировалось 15 раз(а)
    Добавлено: 19:45 01-08-2015   
negat!ve
 57 EGP

Репутация: -2
Сообщения: 70

Зарегистрирован: 24.07.2015
valv :
В этом случае движок пытается вызвать функцию из контекста Луа как имя_функции+"()".
Передачу параметров я делал через объявление своей "пустышки" NOP() (No Operation), и строку вызываемой функции указывал как имя_функции(<параметры>)+";NOP".
Тогда движок вызывает имя_функции(<параметры>)+";NOP"+"()", что синтаксически корректно и не приводит к ошибкам.
Список параметров может быть или заранее преобразованным к их текстовым значениям, или переданным (сформированным) во время вызова функции через dostring.
Пример такого имени: my_action_name = "my_action(dostring('return my_param'));NOP"
где-то так.


Что я не так делаю ?

 Cкрытый текст   (кликните здесь для просмотра)
Код:
--моя функция в скрипте(рабочая) :

function add_best_amt(amt)
 add_ships(fighters_best, amt);
 add_ships(fighters_2gen, amt);
 add_items(BS_turrets_ms_best, amt);
 add_items(GKs_best, amt);
 add_items(BS_Sys_best, amt);
 add_items(F_guns_best, amt);
 add_items(F_sys_best, amt);
 add_items(F_rockets_best, amt);
end;

--Функция пустышка:
function nopfunc()
end;

<!--Часть диалога из которой происходит вызов(диалог рабочий)-->
<DialogAnswer name="ans02">
            <answer>#M_Add_300_eqp</answer>
            <lua_function>add_best_amt(300);nopfunc</lua_function>
            <go_message_name />
            <multi_pass>true</multi_pass>
            <sound_name />
        </DialogAnswer>
--Вызываю диалог из скрипта миссии
StartDialog("Add_items");

;Либо вызываю его из controls.cfg
ui_bind "NUMPAD1"   "runscript StartDialog([[Add_items]])"


Последний раз редактировалось: negat!ve (22:29 01-08-2015), всего редактировалось 2 раз(а)
    Добавлено: 22:24 01-08-2015   
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
negat!ve :
Что я не так делаю ?

проверил. передача параметров, работающая в AttachAction триггеров
/* __test_trigger:AttachAction('trigger_test_action("2_15");NOP'); */
в диалогах, при указании в теге <lua_function> примерно того же самого, таки блокируется.
/* проверял обе функции - и StartDialog, и StartTradeDialog. */
Возможно там есть дополнительная проверка на существование функции перед ее запуском (? через lua_getinfo ?).
Сейчас пробую как-то все же решить этот вопрос (с передачей параметров).

P.S. уточнил. в функциях спешиалов вызова поддержки, параметры передаются игровым движком при их вызове.
в отличии от счетчика срабатываний, эт не глобальные переменные.
_________________
Если мечтать, то ни в чём себе не отказывать :)

Последний раз редактировалось: valv (10:39 02-08-2015), всего редактировалось 6 раз(а)
    Добавлено: 05:01 02-08-2015   
Michael_Moon
 100 EGP


Рейтинг канала: 4(72)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
Диалог не вызывается, потому что должен в квесте существовать, - самая распространенная ошибка (у меня).
    Добавлено: 12:47 02-08-2015   
negat!ve
 57 EGP

Репутация: -2
Сообщения: 70

Зарегистрирован: 24.07.2015
valvСпасибо Улыбка

Michael_Moon :
Диалог не вызывается, потому что должен в квесте существовать, - самая распространенная ошибка (у меня).

Если ты о моем диалоге со спешиалом, то я его переделал в трейдерский диалог(что-бы наверняка), но и обычный диалог все-таки вызывался и работал пару раз, а остальное время крашил игру на рабочий стол, с трейдерским то-же самое.От чего зависит успех/крэш я зависимости не нашел

Последний раз редактировалось: negat!ve (14:25 02-08-2015), всего редактировалось 1 раз
    Добавлено: 14:11 02-08-2015   
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
Упсь. У меня обе версии диалогов работают, но крэш может таки идти, если:
1. Диалога, вызываемого в функции StartTradeDialog, нет в папке \data\Scripts\Trade\
2. Диалога, вызываемого в функции StartDialog, нет в папке текущей миссии.
3. В передаваемой этим функциям строке, указать не только имя файла диалога, но и расширение ".xml".

Для запихивания диалога (используемого в StartDialog) в нужное место (в папку миссии), я его просто туда копирую.

/* для получения имени миссии, просто перекрыл функцию движка QuestStart своей, запоминающей имя текущей миссии. */
/* для копирования файла средствами Луа написал свою простенькую функцию */
Как приведу эти добавки из просто "работающего" вида, в более-менее приличный - где-то выложу.
_________________
Если мечтать, то ни в чём себе не отказывать :)
    Добавлено: 16:10 02-08-2015   
negat!ve
 57 EGP

Репутация: -2
Сообщения: 70

Зарегистрирован: 24.07.2015
Я же говорю что диалог исправен и находится игрой, крэш может быть из-за чего-то сопутствующего диалогу, а из-за чего я не знаю.
Диалог лежит в папке Trade, функция в скрипте special.script саму функцию пробовал и с аргументами как у оригинальной, так и без аргументов. Спешиал.XML уже показывал, и сам спешиал так-же рабочий

--вот функция
--function TeleportPerkFunction()--это первоначальный вариант, так-же работал и так-же крашился
function TeleportPerkFunction(x, y, z, ship, duration)
StartTradeDialog("Teleport");
--TeleportToLocation("torr");--так я типа проверял что спешиал работает и делает то что нужно.
end;
Specials.XML
<summonPRECFunction>TeleportPerkFunction</summonPRECFunction>
Т.е. оно как бы иногда работает, а иногда выкидывает на рабочий стол.
    Добавлено: 16:23 02-08-2015   
ironHAMMER.ms
 50 EGP

Репутация: 0
Сообщения: 4

Зарегистрирован: 10.01.2016
Хотелось бы узнать мнение опытных ресурсокопателей по такому вопросу: возможно ли заменить искусственный интеллект базы на полноценного пилота? И, если этот финт таки возможен, был бы крайне признателен за наводку, в каком направлении копать.
    Добавлено: 22:20 10-01-2016   
Michael_Moon
 100 EGP


Рейтинг канала: 4(72)
Репутация: -2
Сообщения: 669
Откуда: РК, Кокшетау
Зарегистрирован: 15.02.2011
ironHAMMER.ms :
Хотелось бы узнать мнение опытных ресурсокопателей по такому вопросу: возможно ли заменить искусственный интеллект базы на полноценного пилота? И, если этот финт таки возможен, был бы крайне признателен за наводку, в каком направлении копать.

В какой части игры?
    Добавлено: 22:24 10-01-2016   
ironHAMMER.ms
 50 EGP

Репутация: 0
Сообщения: 4

Зарегистрирован: 10.01.2016
Michael_Moon :
В какой части игры?

Гражданская Война
    Добавлено: 00:46 11-01-2016   
Tigerrat
 50 EGP

Репутация: 0
Сообщения: 2

Зарегистрирован: 30.12.2015
Доброго времени суток, уважаемые! Есть вопрос, в котором нужна помощь людей с прямыми руками) Максимальное количество истребителей в звене - 6. В каком файле и где конкретно прописано их расположение относительно друг-друга? А-то хотел устроить хардкор, увеличить до 10, а нет. Все истребители сверх 10 генерируются ровно посреди карты. Отсюда столпотворение в этой точке. Заранее спасибо)
    Добавлено: 04:40 25-04-2016   
Aleksey_SR
 73 EGP

Рейтинг канала: 4(67)
Репутация: 6
Сообщения: 175
Откуда: Новокузнецк
Зарегистрирован: 13.12.2015
Вижу, тут разрабы говорили, что для торговли нужно начинать новую игру. В принципе, такой способ проверки "нового" магазина рабочий на 100%. Однако я посмотрел файл InitTradeSystem.script и внимательно изучил записи лога при начале новой игры, где как раз таки запускается этот файл. В этом файле при его открытии прописана одна исполняемая функция, где указываются таблицы наполнения магазинов с ценами и рандомом появления. И в конце файла идет запуск этой функции (она вроде так называется: __InitTradeSystem() ). То есть, при открытии этого файла, эта функция вызывается. Я это к тому, что (я ДУМАЮ) магазин можно менять вне зависимости от начала новой игры. А делается это с помощью вызова этой функции ЧЕРЕЗ КОНСОЛЬ. Это действительно правда, или действительно даже такой способ не работает? Впрочем, я проверю и отпишусь.

UPD: не сработает. Игра не загружает сам файл при запуске сохраненки, а значит, через консоль нельзя вызывать функции через этот файл. Тем более, если его открыть через консоль, то все равно добавить что-то в магазин таким образом не получится, так как наложение одного ассортимента на другой (идентичный + нововведения) могут привести к непредсказуемым последствиям. Поэтому, тут есть 2 варианта:
1. Заново создавать магазины, предварительно уничтожив существующие функцией DestroyShop(shop) и открытие файла InitTradeSystem через консоль заново;
2. Тупо добавлять новое в магазины через консоль или через файлы.
_________________
Discord: shadowvinyl

Последний раз редактировалось: Aleksey_SR (17:35 04-06-2018), всего редактировалось 1 раз
    Добавлено: 14:01 20-12-2016   
miv79
 69 EGP


Репутация: 0
Сообщения: 124

Зарегистрирован: 08.03.2009
Подскажите плиз как изменить дальность и скорость сбора лута ?
    Добавлено: 12:15 27-01-2017   
valv
 62 EGP


Рейтинг канала: 2(23)
Репутация: 7
Сообщения: 96
Откуда: Odessa
Зарегистрирован: 14.10.2011
miv79 :
Подскажите плиз как изменить дальность и скорость сбора лута ?

файл: \data\AI\AI.ini
раздел: [KeepLevel] ; строка 50
параметры:
; радиус сферы, внутри которой собираются "ничейные" модули
moduleAdsorbtionRadius = 120
; скорость втягивания модулей в корабль
moduleAdsorbtionSpeed = 12

открыть файл и поменять цифры.

P.S. если стоит моё обновление к игровому движку, то отредактировать этот же файл внутри engine_update_ru.dat (это ZIP архив).
_________________
Если мечтать, то ни в чём себе не отказывать :)

Последний раз редактировалось: valv (18:12 28-01-2017), всего редактировалось 1 раз
    Добавлено: 18:11 28-01-2017   
Звездные волки 2: Гражданская война -> МОДовый отсек: «Секреты моддинга (Вопросница)»
На страницу: Пред.  1, 2, 3 ... 43, 44, 45 ... 54, 55, 56  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Один глаз на сервер, другой в конфу, третий в чат... (портрет Alone'a от Loki)

  » Секреты моддинга (Вопросница) | страница 44
Каналы: Новости | 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