Капрал Хикс 524 Опубликовано 4 Марта 2021 Поделиться Опубликовано 4 Марта 2021 9 часов назад, _Sk8_AsTeR_ сказал(а): Они ведь не обрабатываются скриптами вообще? Можно добавить им в конфиг скриптовую обвязку вида: script_binding = bind_crow.init. Я так делал для выдачи инфопоршня при убийстве вороны. 1 Ссылка на комментарий
naxac 2 445 Опубликовано 6 Марта 2021 Поделиться Опубликовано 6 Марта 2021 @Капрал Хикс , емнип, за добавление/удаление в этот список неписей отвечают две строчки в se_stalker.script: actor_stats.add_to_ranking(self.id) и actor_stats.remove_from_ranking(self.id) 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 7 Марта 2021 Поделиться Опубликовано 7 Марта 2021 Господа, а каким образом можно вызвать свою функцию при условии, что ГГ только что пришлёпнул непися? Через каллбеки? Если да, то через какие? Чет я туплю... Ссылка на комментарий
ted.80 251 Опубликовано 7 Марта 2021 Поделиться Опубликовано 7 Марта 2021 1 час назад, _Sk8_AsTeR_ сказал(а): каким образом можно вызвать свою функцию при условии, что ГГ только что пришлёпнул непися? В файле xr_motivator.script ищи function motivator_binder:death_callback(victim, who) там есть проверка: if who:id() == db.actor:id() then xr_statistic.addKillCount(self.object) -- Отсюда вызывай end 1 2 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 7 Марта 2021 Поделиться Опубликовано 7 Марта 2021 @ted.80 нашёл абсолютно идентичные строки в бинд_сталкер, только там похоже этот каллбек не работает судя по всему, ибо я там ковырял эти строки. Тогда ясно в чем моя ошибка :) Ссылка на комментарий
Zander_driver 10 333 Опубликовано 7 Марта 2021 Поделиться Опубликовано 7 Марта 2021 Только что, _Sk8_AsTeR_ сказал(а): в бинд_сталкер, только там похоже этот каллбек не работает Работает. Но относится к ГГ, а не НПС. Когда ГГ кто-нибудь убьет, там можно проверять, кто... 1 2 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 7 Марта 2021 Поделиться Опубликовано 7 Марта 2021 @Zander_driver о как! Век живи - век учись! 1 1 Ссылка на комментарий
hArdplAyer22_22 0 Опубликовано 8 Марта 2021 Поделиться Опубликовано 8 Марта 2021 Доброго времени суток. Возник вопрос к опытным скриптерам. В ТЧ есть функция выдачи тайника: treasure_manager.get_treasure_manager():give_treasure("esc_secret_truck_goods") Как переделать так, чтобы выдавало рандомный тайник из заданного списка? Буду очень благодарен за помощь. Ссылка на комментарий
mole venomous 3 395 Опубликовано 8 Марта 2021 Поделиться Опубликовано 8 Марта 2021 @hArdplAyer22_22 Вот прям со всеми потрохами: Скрытый текст esc_tbl = { "esc_secret_bridge_vagon", "esc_secret_anomaly_dead", "esc_secret_bandit_cross", "esc_secret_bandit_supply", "esc_secret_under_cross", "esc_secret_refuge", "esc_secret_safe_farm", "esc_secret_vagon_container", "esc_secret_stalker_things", "esc_secret_box_bridge", "esc_secret_village_rucksack", "esc_secret_village_roof", "esc_secret_nice_place", "esc_secret_vorpal", "esc_secret_commander_goods", "esc_secret_road", "esc_secret_thief", "esc_secret_gas_pipe", "esc_secret_truck_goods", "esc_secret_kpp_tower", } function give_treasure_esc_random() treasure_manager.get_treasure_manager():give_treasure(esc_tbl[math.random(#(esc_tbl))]) end 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Colder 12 Опубликовано 9 Марта 2021 Поделиться Опубликовано 9 Марта 2021 Нашёл скрипт на хит от артов. При загрузке сохранения если есть в инвентаре гг арт, то хит опять бьёт гг! Может кто глянуть https://yadi.sk/d/gnrvCoK2NEvN0g Ссылка на комментарий
hArdplAyer22_22 0 Опубликовано 9 Марта 2021 Поделиться Опубликовано 9 Марта 2021 Здраствуйте, нужна помощь. Сталкер ТЧ с модом ОГСМ на движке ОГСР. При получении игроком любого тайника, все содержимое тайника автоматически перемещается ГГ в инвентарь. Может кто сталкивался? Ссылка на комментарий
Colder 12 Опубликовано 10 Марта 2021 Поделиться Опубликовано 10 Марта 2021 Скрытый текст function workshop_ui:Init_Controls() self:Init(0,0,1024,768) local xml self.xml = CScriptXmlInit() xml = self.xml xml:ParseFile("ui_workshop.xml") self.dialog = xml:InitStatic("workshop:workshop_window",self) self.button_repair_tab = self.xml:Init3tButton("workshop:btn_repair_workshop", self.dialog) self:Register(self.button_repair_tab, "btn_repair_workshop") self.button_sewing_tab = self.xml:Init3tButton("workshop:btn_disassembly_workshop", self.dialog) self:Register(self.button_sewing_tab, "btn_disassembly_workshop") self.dlg_repair = workshop_repair(xml, self, 0, 0) self.dlg_repair:Show (false) self.dialog:AttachChild (self.dlg_repair) xml:InitWindow ("tab_size", 0, self.dlg_repair) self.dlg_sewing = workshop_disassembly(xml, self, 0, 0) self.dlg_sewing:Show (false) self.dialog:AttachChild (self.dlg_sewing) xml:InitWindow ("tab_size", 0, self.dlg_sewing) end --// ------------------------------------------------------------------------------ function workshop_ui:InitCallBacks() self:AddCallback("btn_quit_workshop", ui_events.BUTTON_CLICKED, self.on_quit, self) self:AddCallback("btn_repair_workshop", ui_events.BUTTON_CLICKED, self.on_repair, self) self:AddCallback("btn_disassembly_workshop", ui_events.BUTTON_CLICKED, self.on_disassembly, self) end --// ------------------------------------------------------------------------------ function workshop_ui:on_quit() self:GetHolder():start_stop_menu(self, true) end function workshop_ui:on_repair() self.dlg_sewing:Show(false) self.dlg_repair:Show(true) end function workshop_ui:on_disassembly() self.dlg_repair:Show(false) self.dlg_sewing:Show(true) end Может кто подсказать что я пишу не так! Хочу сделать переключение между окнами в GUI. Когда открываю одну вкладку то вторая кнопка даже не горит при наведении на неё! Ссылка на комментарий
dsh 3 824 Опубликовано 10 Марта 2021 Поделиться Опубликовано 10 Марта 2021 @Colder тебе табы что-ли нужны? Существует готовый класс для этого, костыли не нужны. Пример <window> <main_dialog x="80" y="5" width="860" height="680"> <tab x="14" y="40" width="202" height="28"> <button x="0" y="0" width="100" height="28" stretch="1" accel="k1"> <texture_offset x="0" y="0"/> <texture>ui_cop_button_left</texture> <text font="graffiti22" align="c">Рюкзак</text> <text_color> <e r="0" g="0" b="0"/> <t r="240" g="217" b="182"/> <d r="135" g="123" b="116"/> <h r="0" g="0" b="0"/> </text_color> </button> <button x="101" y="0" width="100" height="28" stretch="1" accel="k2"> <texture_offset x="0" y="0"/> <texture>ui_cop_button_right</texture> <text font="graffiti22" align="c">Инвентарь</text> <text_color> <e r="0" g="0" b="0"/> <t r="240" g="217" b="182"/> <d r="135" g="123" b="116"/> <h r="0" g="0" b="0"/> </text_color> </button> </tab> и инициализация self.tab = xml:InitTab( "main_dialog:tab", self.dialog ) self:Register( self.tab, "tab" ) ... self:dshAddCallback( "tab", ui_events.TAB_CHANGED, self.OnTabChange, self ) Это все не для копипасты, а для размышлений. 2 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
ARTLantist 14 Опубликовано 11 Марта 2021 Поделиться Опубликовано 11 Марта 2021 как в ЗП отследить, что броня или шлем были перемещены в слот, или наоборот убраны из слота? Ссылка на комментарий
Zander_driver 10 333 Опубликовано 11 Марта 2021 Поделиться Опубликовано 11 Марта 2021 Только что, ARTLantist сказал(а): в ЗП А разве там нет колбеков on_item_to_slot, on_item_to_ruck? Если нету там, то можно в OGSR подсмотреть, как их сделать. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
ARTLantist 14 Опубликовано 11 Марта 2021 Поделиться Опубликовано 11 Марта 2021 @Zander_driver не, нет таких колбеков, буду пытаться вставить 1 Ссылка на комментарий
Colder 12 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 Возник такой вопрос. Можно ли сделать использование предмета с условием если зажата какая либо клавиша? Если да то где можно подсмотреть? Платформа: ТЧ Ссылка на комментарий
Norman Eisenherz 312 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 @Colder [ui_main_menu.script], по аналогии с блоком if dik == DIK_keys.DIK_Q. Обязательно добавить проверку if level.present() – игра должна быть загружена в момент расходования предмета. Сделать применение предметов через быстрые слоты, как в ЗП, без расширенного движка невозможно – разве что добавить условие вида "если потрачен бинт, то съесть еще колбасу". 1 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
ted.80 251 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 4 часа назад, Colder сказал(а): Можно ли сделать использование предмета с условием если зажата какая либо клавиша? 1 час назад, Norman Eisenherz сказал(а): Сделать применение предметов через быстрые слоты, как в ЗП, без расширенного движка невозможно Ваши сведенья устарели - причем давно - скриптовый кейлоггер СУЩЕСТВУЕТ - Ура товарищи!!! Скрытый текст local eatimer1 = 0 local con = nil local con_command = "mm_net_player_name" local def_value = "_" function update() if not con then con = get_console() con:execute( con_command .." ".. def_value ) for k,v in pairs(_G[script_name()]) do if type(v)=='function' and DIK_keys[string.upper(k)] then local key = "k"..string.gsub(k,"dik_","") con:execute("bind_console "..con_command.." "..k.." "..key) end end else local str = con:get_string(con_command) if str~=def_value and this[str] then this[str]() con:execute(con_command.." "..def_value) end end end function dik_f1() local it = db.actor:object("medkit") or db.actor:object("medkit_army") or db.actor:object("medkit_scientic") actor_eat_it(it) end function dik_f2() local it = db.actor:object("bandage") actor_eat_it(it) end function dik_f3() local it = db.actor:object("vodka") or db.actor:object("antirad") actor_eat_it(it) end function dik_f4() local it = db.actor:object("bread") or db.actor:object("kolbasa") or db.actor:object("conserva") actor_eat_it(it) end function dik_f5() local it = db.actor:object("energy_drink") actor_eat_it(it) end function actor_eat_it(it) local eatimer2 = time_global() if it and isGameOn() and eatimer1 < eatimer2 then eatimer1 = eatimer2 + 3000 local it_name = "Использовано: "..game.translate_string(system_ini():r_string(it:section(), "inv_name")) db.actor:give_game_news(it_name, "ui\\ui_iconsTotal", Frect():set(166,846,83,47), 1000, 5000) db.actor:eat(it) end end function isGameOn() if level.present() and db.actor ~= nil and db.actor:alive() then return true end return false end 1 Личный АРХИВ по S.T.A.L.K.E.R Ссылка на комментарий
Colder 12 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 Это у меня есть. А как проверить на зажатую клавишу? Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти