Код повисает когда вызываешь функцию Button_Add()? Если да то нужно еще в файл \Data\game\taskbar.lua добавить свою кнопку.
scar_ui = //Ищи по этой строке
{
{ bind = "scar_button", ui = "btn_ScarUI", tt = tooltip_simple_template, },
//Копируешь сюда строку выше и изменяешь "btn_ScarUI" на имя твоей кнопки
}
Возможно ли в моде считывать нажатие клавиш? Например я хочу сделать перемещение персонажа по WASD
У меня есть одна большая карта, но я хочу разделить ее на много мелких
то есть мне нужно ограничить область куда камера может попасть квадратом и во время игры менять ее.
Остюда вопрос - могу ли я считать текущее положение камеры по x,y?
Редактор клавиш
Ссылка на google disk
Нужно закинуть в корень игре, чтобы было вот так "soulstorm/dowtools/DowTools.exe"
"Скриншот"
Тестер юнитов
Ссылка на google disk
Нужно закинуть в корень игры и выбрать мод в меню игры, после появится эта карта.
"Скриншот"
Спасибо, возможно ли создать модификатор который будет модифицировать определенное поле у отряда?
Знаю что сами модификаторы лежат в attrib/modifiers но в них нету поля которое говорит что модифицировать, получается это где-то с внешней стороны определяется
"Пример: Файл repair_rate_modifier.lua"
--По идее модифицирует поле ["repair_ext"]["health_repaired_per_second"] но в самом файле это не указано
GameData = Inherit([[]])
GameData["application_type"] = Reference([[type_modifierapplicationtype\tp_mod_apply_to_entity.lua]])
GameData["exclusive"] = false
GameData["modifier_class_name"] = Reference([[type_modifier\tp_modifier.lua]])
GameData["probability_of_applying"] = 1
GameData["target_type_name"] = [[]]
GameData["usage_type"] = Reference([[type_modifierusagetype\tp_mod_usage_multiplication.lua]])
GameData["value"] = 1
Вот сделал редактор клавиш, мб кому пригодится.
https://drive.google.com/file/d/1Uoyn4ikVsh...iew?usp=sharing
"Скриншот"
Нужно закинуть в корень игре, чтобы было вот так "soulstorm/dowtools/DowTools.exe"
Возможно ли в скриптах corsix получить данные файла по имени? Я иду по данным юнита и собираю список оружия которое у него есть, после я хочу пройтись по
данным этого оружия.
Примерно что я хочу
function each_file(rgd)
unit_weapon = rgd.GameData["combat_ext"]["hardpoints"]["hardpoint_01"]["weapon_table"]["weapon_01"]["weapon"] --беру название оружия
rgd_weapon = ПолучитьДанныеИзФайла(unit_weapon)
if( rgd_weapon.GameData["can_attack_air_units"] == true ) then
print("Он может стрелять в самолёты!")
end
end
Через corsix mod studio можно взять список оружия у юнита, но как узнать какое из них стоит по умолчанию, какое дается от исследования а какое можно выдать через панель команд?
И как распознать какая способность активная а какая пассивная?
Хочу сделать интерфейс для зрителя наподобие этого
Вот как выглядит на данный момент:
"Вжух"
Работает так:
1)В корень игры вставляется autoexec.lua в котором каждый тик собираются данные с помощью функций
Player_GetResource(), Entity_GetProductionQueueItemName() и т.д. После эти данные пакуются в строку(и [ну уж нет]одятся в памяти игры).
2)В процесс игры внедряется dll хук который шарится по памяти игры и [ну уж нет]одит эту строку с данными, распаковывает ее, подменяет directX ф-ию отрисовки и дорисовывает уже нужный мне интерфейс на основе данных из строки.
Проблема в том что таким образом можно просматривать только реплеи, т.к. без -dev мода autoexec.lua не запустится. Нужно при старте карты внедрить этот код в нее, но не вызывая десинхронизации. Есть идеи как это сделать?
Так точно! Но мне приходится в taskbar.lua добавлять информацию о полях для кнопок, которые я добавил в .screen, иначе ф-ия Button_Add не будет их [ну уж нет]одить
1) Да
2) Переключение модов - лишнее действие, которое я не хочу делать.
Возможно LocString конвертировать в обычный lua string?
edit: Не нашел описание структуры LocString, но если обратиться к ней по индексу 1 то получаешь обычную строку
пр: Player_GetDisplayName( playerID )[1]