*Shoker* 322 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Если я правильно помню, в ТЧ follower не работает нормально, при добегании до ГГ, игра вылетает. Лучше самому проверить. Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Лёха_тц 3 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Ребята выручайте нужна помощь возможно ли заспавнить модель к примеру укреплений из песка переведенную в огф формат ну и соответственно с текстурами если да то как ? Ссылка на комментарий
abramcumner 1 159 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Лёха_тц, тебе же 5 страниц назад отвечали: спавнишь как physic_object, в custom_data надо прописать fixed_bones, чтобы модель не двигали. Ну и в огф должна быть сделана кость. У тебя огф то есть? Ну и после спавна надо еще рестриктором будет накрыть, чтобы нпц сквозь твое укрепление не ходили. Ну и если что, прятаться за ним они тоже не будут. Ссылка на комментарий
Полтергейст 38 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 но проблема в том что когда костюм достигает нулевой кондиции эти сообщения появлются одно за другим эквивалент появления примерно доля сотой секунды Так это нужно прописывать не в update, а в функцию, вызываемую при попадании (hit_callback). Тогда никаих лишних переменных вводить не придётся. Ссылка на комментарий
abramcumner 1 159 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Так это нужно прописывать не в update, а в функцию, вызываемую при попадании (hit_callback). Тогда никаих лишних переменных вводить не придётся. Для ГГ в оригиналах hit_callback не вызывается Ссылка на комментарий
Nazgool 250 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 (изменено) serega-gamer Moжет что-то типа такого подойдёт? : Я тут добавил и сообщение при восстановления костюма(если нужно конечно) local hev_crash = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n".."%c[default] %c[255,230,0,0]Общий сбой системы. Система отключается!" local hev_restore = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n".."%c[default] %c[255,230,0,0]Работа системы восстановлена. Система включается!" local hev_min_cond_active = 0.01 local flag local function GetHevParam(hev) return hev:condition() < hev_min_cond_active and hev:section() == "nano_kostum" end local function ShowHevGameNews(msg, path) local snd_obj = xr_sound.get_safe_sound_object(path) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) db.actor:give_game_news(msg, "ui\\ui_iconsTotal", Frect():set(0,188,83,47), 0, 3000) end function CheckHevCond() local act_suit = db.actor:item_in_slot(6) if not flag then if act_suit and GetHevParam(act_suit) then ShowHevGameNews(hev_crash, 'HEV\\hev_crash') flag = true end elseif act_suit and not GetHevParam(act_suit) then ShowHevGameNews(hev_restore, 'HEV\\hev_restore') flag = nil end end CheckHevCond() на апдейт. Ну и задержку, если нужно Изменено 25 Ноября 2011 пользователем Gun12 Ссылка на комментарий
strelok200 0 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 А вообще схема follower в тч нормально работает? Не обязательно чтобы НПС шёл за ГГ, просто за лидером Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
serega-gamer 0 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 (изменено) Gun12 Спасибо большое! Я как раз так и хотел что бы сообщение о ре-активации системы тоже приходило :ny_z_2: Теперь такая проблема скажите пожалуйста кто в курсе можно ли через db.actor кровотечение отследить?? А то я что то только пси здоровье, радиацию, мораль и выносливость нашёл! Изменено 26 Ноября 2011 пользователем serega-gamer Реклама любых модов бесплатно на моём сайте писать в личку Ссылка на комментарий
AndreySol 215 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 В окне инвентаря, по нажатии добавленной мною кнопки, создается окно наследованное от CUIScriptWnd. На нем размещаю список (использую CUIListWnd), который заполняю (CUIListItemEx). Реализацию в общем содрал из скриптов главного меню. Все вроде работает. ----------------- class "CAddItemEx" (CUIListItemEx) function CAddItemEx:__init() super() self:SetWndRect(0,0,330,30) self.item_icon = CUIStatic() self:AttachChild(self.item_icon) self.item_icon:SetAutoDelete(true) self.item_icon:SetWndRect(0,0,30,30) self.item_icon:SetStretchTexture(true) self.item_icon:InitTexture("ля-ля-ля") self.item_name = CUIStatic() self:AttachChild(self.item_name) self.item_name:SetAutoDelete(true) self.item_name:SetWndRect(32,0,300,30) self.item_name:SetFont(GetFontLetterica16Russian()) self.item_name:SetTextColor(255,216,186,140) self.item_name:SetText("item_name") end function CAddItemEx:__finalize() end ---------------- class "CUIMyScriptWnd" (CUIScriptWnd) st_items_list = nil function CUIMyScriptWnd:__init(owner) super() -- self.owner = owner self:InitControls() self:InitCallBacks() self:FillItemsList() end function CUIMyScriptWnd:__finalize() end function CUIMyScriptWnd:InitControls() -- Положение и размеры окна self:Init(345,20,335,520)--345,2,335,520 -- файл-описатель элементов local xml = CScriptXmlInit() xml:ParseFile("ля-ля-ля.xml") xml:InitStatic("main_background", self) self:Register(xml:Init3tButton("btn_close", self),"btn_close") -- список предметов st_items_list = CUIListWnd() st_items_list:Init(11, 370, 305, 140) self:AttachChild(st_items_list) st_items_list:SetAutoDelete(true) st_items_list:EnableScrollBar(true) st_items_list:Show(true) self:Register(st_items_list, "items_list") end function CUIMyScriptWnd:FillItemsList() local add_item = nil local num_add = 7 for i = 1, num_add do add_item = CAddItemEx() add_item.item_icon:SetStretchTexture(true) add_item.item_icon:InitTexture("ля-ля-ля") -- иконка эл-та в списке local item_text = "" item_text = string.format("Item %d", i) add_item.item_name:SetText(item_text) -- надпись эл-та в списке if add_item and st_items_list then st_items_list:AddItem(add_item) end end end Но обнаружил проблему - после того, как хотя-бы раз было вызвано это мое окно со списком, при выходе в главное меню (там где загрузить\сохранить\выйти) на нем просматривается прозрачное окно списка со всеми добавленными строками. Т.е. похоже я чет напортачил с зачисткой при закрытии окна инвентаря. В скриптах главного меню, которые брал за образец, нигде нет даже упоминания DetachChild для строк списка и для самого окна списка. Подскажите, как побороть ? Ссылка на комментарий
_Призрак_ 11 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 А как ты скрываешь свое меню после того как оно отработало свое? У тебя тут только инициализация Freedom Ссылка на комментарий
AndreySol 215 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 стандартно скрываю ------------------ обработка нажатий клавы --------------------------------- function CUIMyScriptWnd:OnKeyboard(dik, keyboard_action) CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then -- на выход повесим Esc if dik == DIK_keys.DIK_ESCAPE then self:on_Close() end end return true end ----------------- function CUIMyScriptWnd:on_Close() self:GetHolder():start_stop_menu(self, true) end Добавлено через 66 мин.: В моем сообщении #3313 есть ф-ция заполнения списка элементами, состоящими из иконки и текста. Если к примеру элемент списка должен описывать патрон "ammo_9x18_fmj", как скриптово получить соответствующую ему иконку\текстуру (похоже из файла ui_icon_equipment.dds) и строку названия ? Если хочу вывести список всех имеющихся боеприпасов, понятно, что нужно перебрать все объекты в инвентаре актера (подходящие ф-ции видел в описании класса game_object) и проверить принадлежность к искомому типу. В описаниях боеприпасов в файле weapons.ltx есть вроде подходящий параметр - "class = AMMO", но как к нему добраться скриптово ? Ссылка на комментарий
RvP 1 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 (изменено) AndreySol, Если к примеру элемент списка должен описывать патрон "ammo_9x18_fmj", как скриптово получить соответствующую ему иконку\текстуру (похоже из файла ui_icon_equipment.dds) и строку названия ? парсим из секции координаты иконки и ставим их(x, y, w, h) Название аналогично, получаем строку и далее game.translate_string или SetTextST Изменено 26 Ноября 2011 пользователем RvP Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Zander_driver 10 334 Опубликовано 26 Ноября 2011 Поделиться Опубликовано 26 Ноября 2011 (изменено) serega-gamer Теперь такая проблема скажите пожалуйста кто в курсе можно ли через db.actor кровотечение отследить?? А то я что то только пси здоровье, радиацию, мораль и выносливость нашёл! db.actor:get_bleeding() возвращает float. причем не 0..1, у меня бывало и 2.4 Изменено 26 Ноября 2011 пользователем Zander_driver Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Лёха_тц 3 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 Вот кто подскажет из за чего вот этот вылет [591]=[sim_test_108] [592]=[sim_test_109] [593]=[sim_test_110] [594]=[sim_test_111] [595]=[sim_test_112] [596]=[sim_test_113] [597]=[sim_test_114] FATAL ERROR [error]Expression : no_assert [error]Function : CXML_IdToIndex<class CCharacterInfo>::GetById [error]File : e:\stalker\sources\trunk\xr_3da\xrgame\xml_str_id_loader.h [error]Line : 112 [error]Description : item not found, id [error]Arguments : bar_stalker_1 stack trace: а вот то что я ему прописывал <specific_character id="bar_stalker_1" team_default = "1"> <name>bar_stalker_1</name> <icon>ui_npc_u_stalker_neytral_hood_8</icon> <bio>bar_stalker1r_bio</bio> <class>bar_stalker_1</class> <community>dolg</community> <terrain_sect>stalker_terrain</terrain_sect> <rank>350</rank> <reputation>15</reputation> <money min="5000" max="5025" infinitive="0"/> <panic_treshold>0</panic_treshold> <snd_config>characters_voice\human_01\stalker\</snd_config> <crouch_type>-1</crouch_type> <visual>actors\neytral\stalker_neytral_hood_8</visual> <supplies> [spawn] \n wpn_pkm \n ammo_9x18_fmj = 5 \n vodkanew = 6 \n af_mincer_meat \n </supplies> #include "gameplay\character_criticals_3.xml" <start_dialog>hello_dialog</start_dialog> #include "gameplay\character_dialogs.xml" </specific_character> <character id="bar_Stalker_2"> <class>bar_Stalker_2</class> </character> [bar_stalker_1]:stalker $spawn = "respawn\agr2_respawn_factory" character_profile = bar_stalker_1 spec_rank = regular community = stalker custom_data = scripts\logic_stalker_1.ltx [99999999999999999999999999999999999999999999999] ; cse_abstract properties section_name = stalker name = bar_stalker_1 position = 227.99346923828,1.4395974874496,-36.13639831543 direction = 0,0,0 ; cse_alife_trader_abstract properties money = 5000 character_profile = bar_stalker_1 ; cse_alife_object properties game_vertex_id = 1174 distance = 14 level_vertex_id = 57986 object_flags = 0xffffffff custom_data = <<END [smart_terrains] none = true END ; cse_visual properties visual_name = actors\novice\green_stalker_5 ; cse_alife_creature_abstract properties g_team = 0 g_squad = 0 g_group = 0 health = 1 dynamic_out_restrictions = dynamic_in_restrictions = upd:health = 1 upd:timestamp = 0 upd:creature_flags = 0 upd:position = 227.99346923828,1.4395974874496,-36.13639831543 upd:o_model = 0 upd:o_torso = -0.000151783766341396,-0.0297925509512424,0 upd:g_team = 0 upd:g_squad = 0 upd:g_group = 0 ; cse_alife_monster_abstract properties upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0 ; cse_alife_human_abstract properties predicate5 = 1,0,1,0,0 predicate4 = 2,0,2,1 ; cse_ph_skeleton properties upd:start_dialog = ; se_stalker properties чего уже тока не пробовал но не могу понять из за чего вылет. Ссылка на комментарий
Капрал Хикс 537 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 Лёха_тц, ну ты выдал (С) <character id="bar_Stalker_2"> <class>bar_Stalker_2</class> </character> Когда должно быть bar_Stalker_1 и желательно везде регистр не менять. Ссылка на комментарий
AndreySol 215 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 парсим из секции координаты иконки и ставим их(x, y, w, h) Название аналогично, получаем строку и далее game.translate_string или SetTextST где-ж эту секцию искать, в которой координаты иконки ? В каком файле ? Парсинг ltx и xml файлов - есть что-то встроенное в ЛУА\движок или надо самому ? Если самому - может есть готовые вещи, чтоб велосипед не изобретать ? Ссылка на комментарий
Artos 99 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 (изменено) Лёха_тц, понимаю, что все можно свести к определению "скриптование", но(!) давайте не заваливать топик всякой всячиной ... Имеются топики серии "Ковыряемся в файлах", в которых (ИМХО) самое место уточнять и разбирать ошибки по правке конфигов и пр. AndreySol, имеется топик "Справочник по функциям и классам", который и предназначен для тех, кто не хочет тратить время на изобретение велосипедов. Да и в кодах самой игры немало примеров как читаются параметры из секций объектов ... Приглянись, например, к system_ini() иль ini_file(string). Ну а параметр "class" прочитать можно как: system_ini():r_string(section,"class") => строка или system_ini():r_clsid(section,"class") => число. Изменено 27 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Amicron 0 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 Здравствуйте, скажите пожалуйста, как можно написать на LUA интерфейс для плеера? Плеер должен вызываться по использованию предмета в инвентаре ГГ. Если есть какие-либо статьи как это сделать в ЗП 1.6.02 дайте пожалуйста ссылку. Ссылка на комментарий
_Призрак_ 11 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 Конечно можно. На вскидку могу посоветовать посмотреть как сделан ПДА в Sigerious'e и на его основе сделай плеер Freedom Ссылка на комментарий
Artos 99 Опубликовано 27 Ноября 2011 Поделиться Опубликовано 27 Ноября 2011 (изменено) Amicron, не стОит задавать "пустых" общих вопросов. "Как на Lua написать интерфейс?" - имеет великое множество вариантов и зависит только от фантазии "писателя". Чем тебе не "руководство" - то как написан интерфейс того же спальника из мода АМК? Ведь подмени "спальник" на "плеер" и получаешь ответ на свой вопрос. Ссылки на "где искать статьи" указаны в шапке топика. Так же в топике "Уроки по модостроению" совсем недавно выложен "Как самому создать спальный мешок". Прежде чем задавать вопросы - читаем форум и используем простейший поиск. При желании можно найти и готовый мод именно по плееру (чтобы не изобретать велосипеда). Изменено 27 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти