Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 (изменено) Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском.Возможно, ответ на Ваш вопрос уже есть.Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. Изменено 23 Февраля 2016 пользователем warwer 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Hind 29 Опубликовано 18 Августа 2022 Поделиться Опубликовано 18 Августа 2022 (изменено) Скрытый текст function actor_binder:net_destroy() if(actor_stats.remove_from_ranking~=nil)then self.object:set_callback(callback.use_object, nil) actor_stats.remove_from_ranking(self.object:id()) end -- game_stats.shutdown () Скрытый текст function actor_binder:reinit() self.object:set_callback(callback.use_object, self.use_object, self) object_binder.reinit(self) Функцию actor_binder:use_object(obj) в конец скрипта @mole venomous А всё равно ничерта не пашет Изменено 18 Августа 2022 пользователем Hind забыл дописать Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 197 Опубликовано 18 Августа 2022 Поделиться Опубликовано 18 Августа 2022 @Hind так я же тебе кидал нормальную статью со всем этим( Скрытый текст function actor_binder:net_destroy() после self.object:set_callback(callback.take_item_from_box, nil) вставляешь self.object:set_callback(callback.use_object, nil) function actor_binder:reinit() после self.object:set_callback(callback.use_object, self.use_object, self) вставляешь self.object:set_callback(callback.use_object, self.use_object, self) после function actor_binder:on_item_drop (obj) level_tasks.proceed(self.object) --game_stats.update_drop_item (obj, self.object) end ---------------------------------------------------------------------------------------------------------------------- вставляешь: function actor_binder:use_object(obj) use_item(obj) end function use_item(obj) local obj = obj:section() if obj then if obj == "medkit" then -- юзанули аптечку - торкнуло (к вопросу о головокружении) level.add_pp_effector("alcohol.ppe", 100, false) level.add_pp_effector("duality_circle.ppe", 100, false) -- и спавним "пустую" аптечку, например (к вопросу о выдаче нового айтема взамен использованого) alife():create("medkit_empty", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end end ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Hind 29 Опубликовано 18 Августа 2022 Поделиться Опубликовано 18 Августа 2022 (изменено) @Houdini_one Абсолютно всё сделал так, как ты сказал - и вот вылазит эррорка теперь при юзании аптеки До этого функция с вызовом use_item валялась где то в конце скрипта, и не вызывала проблем (как и каких-либо действий) Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ... Òåíü ×åðíîáûëÿ\gamedata\scripts\bind_stalker.script:193: attempt to call global 'use_item' (a nil value) Изменено 18 Августа 2022 пользователем Hind забыл дописать Hind Upgrade Mod Ссылка на комментарий
mole venomous 3 272 Опубликовано 18 Августа 2022 Поделиться Опубликовано 18 Августа 2022 2 минуты назад, Hind сказал: attempt to call global 'use_item' (a nil value) Создай новый скрипт, куда запихаешь ф-ию 'use_item'. И в бинд_сталкер вызывай эту ф-ию из этого скрипта (думаю, тут объяснять не надо?) Здесь могла быть ваша реклама. Ссылка на комментарий
Hind 29 Опубликовано 18 Августа 2022 Поделиться Опубликовано 18 Августа 2022 @mole venomous аналогично.. dmb.use_item(obj) - сама штука которая вызывает функцию из другого скрипта, и на которую ругается Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ... Òåíü ×åðíîáûëÿ\gamedata\scripts\bind_stalker.script:193: attempt to index global 'dmb' (a nil value) Да.. Ещё такой прикол, если переместить function actor_binder:use_object(obj) dmb.use_item(obj) end в сааамый конец скрипта, то вылета не произойдет. Но стоит положить его вниз после function actor_binder:on_item_drop (obj), то происходит вылет. Hind Upgrade Mod Ссылка на комментарий
Купер 2 730 Опубликовано 18 Августа 2022 Поделиться Опубликовано 18 Августа 2022 @Hind , Скрытый текст Залей сюда на какой-нибудь файлообменник по возможности. Что, куда, зачем менял. "Напосмотреть" . Быстрее получится. 3 Ссылка на комментарий
AndreySol 215 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 @Hind Ошибку читай: не найден модуль "dmb". У тебя должен быть в папке скриптов файл dmb.script, а в нем ф-ция use_item(obj). Ссылка на комментарий
Hind 29 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 @AndreySol да я знаю как это всё делается, создал этот скрипт, туда функцию залил...@Купер https://drive.google.com/file/d/10eJg9RuTqN8dWCL869OoHYc6k0OLyAyM/view?usp=sharing Hind Upgrade Mod Ссылка на комментарий
imcrazyhoudini 197 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 @Hind очень крутая штука - script syntax checker. Строка 15, dmb.script function muzika После muzika должны стоять () 1 1 1 ищу человека, который смог бы заняться разработкой погоды на OGSR. кто может помочь - пишите в ЛС. Ссылка на комментарий
Hind 29 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 Работает) Ещё подскажите, как сделать задержку в скриптах? Типа.. Вот юзанул я аптеку и через 5 секунд она появляется снова Hind Upgrade Mod Ссылка на комментарий
AndreySol 215 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 1 час назад, Hind сказал: и через 5 секунд она появляется снова Поищи, где-то тут были скриптовые модули таймеров. Ну или сам сделай таймер... Ссылка на комментарий
Hind 29 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 @AndreySolа вот я где то видел модуль wait(nое время), он рабочий? Hind Upgrade Mod Ссылка на комментарий
Norman Eisenherz 282 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 @Hind Если не требуется перенос через сейв/загрузку, короткую отсрочку можно сделать через level.add_call(проверка, действие). Spoiler local t = time_global() local function delay() return time_global() > t + dt end level.add_call(delay, fx) Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
AndrewMor 526 Опубликовано 19 Августа 2022 Поделиться Опубликовано 19 Августа 2022 26 минут назад, Norman Eisenherz сказал: Если не требуется перенос через сейв/загрузку, короткую отсрочку можно сделать через level.add_call(проверка, действие). Загрузка может случиться в самый неподходящий момент. Не самый правильный подход. Сталкер - наше всё! Ссылка на комментарий
Norman Eisenherz 282 Опубликовано 20 Августа 2022 Поделиться Опубликовано 20 Августа 2022 @AndrewMor "Если не требуется". Действия с короткой отсрочкой, которые после бесполезны после смерти ГГ (основная причина загрузки), вполне можно обрабатывать и так. Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Orсhello 6 Опубликовано 20 Августа 2022 Поделиться Опубликовано 20 Августа 2022 Всем привет. Есть такой скрипт, снимает координаты актёра - Скрытый текст --------------------------------------------------- -- script for posExtracter ver.1.2. Final --by SmanxX1 -------------------------------------------------- class "pe" (CUIScriptWnd) function pe:__init(owner,objid) super() self.owner = owner self:InitControls() self:InitCallBacks() end function pe:__finalize() end function pe:InitControls() self:Init(300,200,550,450) local xml = CScriptXmlInit() xml:ParseFile("ui_pe.xml") xml:InitStatic("background", self) self:Register(xml:Init3tButton("caption", self),"caption") self:Register(xml:Init3tButton("caption2", self),"caption2") self:Register(xml:Init3tButton("btn_1", self),"btn_1") self:Register(xml:Init3tButton("btn_quit", self),"btn_quit") self:Register(xml:InitEditBox("edit_box", self), "edit_box") end function pe:InitCallBacks() self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.pe1, self) self:AddCallback("btn_quit", ui_events.BUTTON_CLICKED, self.on_quit, self) end function pe:OnKeyboard(dik, keyboard_action) CUIScriptWnd.OnKeyboard(self,dik,keyboard_action) if keyboard_action == ui_events.WINDOW_KEY_PRESSED then if dik == DIK_keys.DIK_ESCAPE then self:on_quit() end if dik == DIK_keys.DIK_RETURN then self:pe1() end end return true end function pe:pe1() local edit_box=self:GetEditBox("edit_box") local str=edit_box:GetText() local qt=true if self:check_game() then if ((string.len(str)>30) or (string.len(str)==0)) then edit_box:SetText("Ошибка!!! Незадано назваеие либо символов больше 30!!!") qt=false else str=string.gsub(str, "%s", "_") str=string.gsub(str, "|", "/") local pos=db.actor:position() get_console():execute("pe_log>>"..str.."|"..level.name().."|_X="..pos.x.."_Y="..pos.y.."_Z="..pos.z.."_gvid="..db.actor:game_vertex_id().."_lvid="..db.actor:level_vertex_id()) qt=true end else edit_box:SetText("Ошибка!!! Игра не загружена!") qt=false end if qt then self:on_quit() end end function pe:on_quit() local console = get_console() self:GetHolder():start_stop_menu (self.owner, true) self:GetHolder():start_stop_menu (self,true) self.owner:Show (true) if self:check_game() then console:execute("main_menu off") end end function pe:check_game() if level.present() and (db.actor ~= nil) and db.actor:alive() then return true else return false end end Мне нужно ещё и direction, направление взгляда. Как сделать? teleos@bk.ru Раскрутка соц.сетей, видео. Зарабатываю на жизнь тут. Ссылка на комментарий
AndreySol 215 Опубликовано 20 Августа 2022 Поделиться Опубликовано 20 Августа 2022 20 часов назад, Hind сказал: где то видел модуль wait(nое время), он рабочий? Знать бы точно, что за модуль... Ссылка на комментарий
AndrewMor 526 Опубликовано 20 Августа 2022 Поделиться Опубликовано 20 Августа 2022 9 часов назад, Norman Eisenherz сказал: "Если не требуется". Действия с короткой отсрочкой, которые после бесполезны после смерти ГГ (основная причина загрузки), вполне можно обрабатывать и так. В таком случае - да, согласен Сталкер - наше всё! Ссылка на комментарий
Colder 12 Опубликовано 20 Августа 2022 Поделиться Опубликовано 20 Августа 2022 Всем привет. Хочу убрать выдачу тайников с трупов. В каких файлах нужно ковырять? Или может у кого есть уже готовый пример? Ссылка на комментарий
mole venomous 3 272 Опубликовано 20 Августа 2022 Поделиться Опубликовано 20 Августа 2022 1 минуту назад, Colder сказал: В каких файлах нужно ковырять treasure_manager.script Что бы всё не "ломать", думаю, править только осмотр трупа CTreasure:use(npc) 1 1 Здесь могла быть ваша реклама. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти