Tris 9 Опубликовано 3 Сентября 2011 (изменено) Возник вопрос по логике: что нужно прописать в логике сталкера, чтобы при его обыске выдавался инфопоршейн? Сообщение от модератора ColR_iT Если бы заглянул в шапку темы, то мог бы увидеть ссылки на статьи по логике, в которых расписаны практически все секции логики, но ты этого не сделал, а очень жаль! ColR_iT Изменено 3 Сентября 2011 пользователем ColR_iT Заглядывайте в шапку хоть иногда. • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 4 Сентября 2011 (изменено) Вопрос по логике (ЗП) Что нужно прописать чтобы сталкер был главным в отряде? Командир отряда НЕ назначается, им автоматически становится первый, что был 'принят' в отряд (при спавне). Пока командир не погибнет или не будет исключен из отряда - никакой демократии! --/ Artos Изменено 4 Сентября 2011 пользователем Artos • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 2 Октября 2011 Пишу скрипт, чтобы воспроизводился постэффект при падении выносливости, что нужно написать вместо health, чтобы прощитывалась выносливость? • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 25 Октября 2011 (изменено) Пытался написать скрипт, чтобы антирадар можно было использовать только в том случае если есть определённый предмет, только вот незнаю что написать вместо этого: --можно использовать антирадар-- Если кто знает очень прошу помощи. function use_antirad() if not db.actor:object("predmet") then this.spayn_item("antirad") news_manager.send_tip(db.actor, game.translate_string("st_antirad_no_predmet")) if db.actor:object("predmet") then --можно использовать антирадар-- end end end Изменено 25 Октября 2011 пользователем ColR_iT Пользуемся тегами! • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 28 Октября 2011 Подскажет, кто-нибудь, где находится постоянный коллбек в бинд сталкере? • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 6 Ноября 2011 Вопрос: ЗП 1.6.00 Написал скрипт, чтобы по истечению времени из инветаря удалялись одни предметы и спавнились другие вот код: local food = { bread = true, kolbasa = true, } local interval = 0 function porsha_food() if interval < time_global() then local time = game.time() + 300 for i=1, 300 do if game.time() == time then db.actor:iterate_inventory(function (dummy,item) if food[item:section()] then this.del_item(item) this.spawn_item(tostring(item:section().."_propal")) end end, nil) interval = time_global() + 1000 end end end Акривировал так: function actor_binder:update(delta) dfz_porsha_food.porsha_food() object_binder.update(self, delta) Но произошёл вылет с таким логом: FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : d:\stalker cop\gamedata\scripts\bind_stalker.script:231: attempt to index global 'dfz_porsha_food' (a nil value) Помогите исправить? • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 6 Ноября 2011 Vano_Santuri, Исправил но вылетать продолжает. Вылет во время загрузки. FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : d:\stalker cop\gamedata\scripts\bind_stalker.script:231: attempt to index global 'dfz_porsha_food' (a nil value) stack trace: • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 16 Декабря 2011 (изменено) Возник вопрос: (ЗП 1.6.00) Поставил на функцию спавна цикл, но тот действует только один раз, а должен 15, можете подсказать, в чём ошибка? function spawn_item(spawn_item, npc) for i=1, 15 do if npc==nil then npc=db.actor end return alife():create( items[math.random(#items)], npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end end Изменено 16 Декабря 2011 пользователем Artos • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 17 Декабря 2011 Видимо выше в скрипте есть таблица items Совершенно верно, вверху таблица items просто я не стал её писать, так как ошибки в ней нет, ошибка в цикле. Vano_Santuri Да мне нужна была функция рандомного спавна 15 предметов, то есть чтобы из таблицы рандомно ГГ спавнились 15 разных предметов. Спасибо за помощь! Добавлено через 45 мин.: Vano_Santuri Кстати заметил ошибку во 2 версии представленного тобой скрипта. Там нужно сделать так: function spawn_item(SpItem, npc) А если без SpItem тогда вылет. • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 22 Декабря 2011 student91122 Чтобы грабили на других локациях убери это: and level.name()=="zaton" • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 2 Февраля 2012 Капрал Хикс, А именно изменить нельзя? • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 9 Февраля 2012 Такой вопрос: Хотел зделать чтобы антирадар без жгута не использовался но когда есть жгут антирадар спавнится в инвентарь но не используется, прошу мне помочь, указать на мою ошибку. function use_antirad() if not db.actor:object("zgyt") then spawn_to_inventar("antirad") news_manager.send_tip(db.actor, game.translate_string("У_вас_нет_жгута.")) elseif db.actor:object("zgyt") then spawn_to_inventar("antirad_norm") del_zgyt() db.actor:eat(db.actor:object("antirad_norm")) end end -- Функция спавна в инвентарь. function spawn_to_inventar(spawn_item, npc) if npc==nil then npc=db.actor end return alife():create(spawn_item, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) end -- Функция удаления. function del_zgyt() local oItem = db.actor:object("zgyt") if oItem then db.actor:drop_item(oItem) alife():release(alife():object(oItem:id()), true) end end • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 17 Февраля 2012 (изменено) Здравствуйте, возник такой вопрос: (ЗП) Я с помощью такой функции: local snd = sound_object([[interface\inv_fill_pistol]]) snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 2.0) воспроизвел звук, можно ли как-то сделать проверку, воспроизводится ли он или нет? Поднимаем глаза и смотрим в пост выше. И уточни вопрос: для себя, так сказать, чтобы знать или в последующем использовать проверку в качестве условия? ColR_iT Добавлено через 11 мин.: ColR_iT, Смотрел пост, он мне не помог, так как мне необходимо использовать проверку в качестве условия. Изменено 17 Февраля 2012 пользователем ColR_iT • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 25 Февраля 2012 Здравствуйте! Пожалуйста, помогите разобраться с вылетом: function object_eat(obj) local sect = obj:section() if db.actor:has_info("wpn_porshein") then db.actor:disable_info_portion("wpn_porshein") iTimer = nil db.actor:restore_weapon() end if sect == "medkit" or sect == "medkit_army" or sect == "medkit_scientic" then db.actor:hide_weapon() random_time() end end function random_time() local random_table_function = math.random(1,5) if random_table_function == 1 then function_start_1() end if random_table_function == 2 then function_start_2() end if random_table_function == 3 then function_start_3() end if random_table_function == 4 then function_start_4() end if random_table_function == 5 then function_start_5() end function function_start_1() iTimer = time_global() + 5*1000 db.actor:give_info_portion("wpn_porshein") end function function_start_2() iTimer = time_global() + 7*1000 db.actor:give_info_portion("wpn_porshein") end function function_start_3() iTimer = time_global() + 9*1000 db.actor:give_info_portion("wpn_porshein") end function function_start_4() iTimer = time_global() + 11*1000 db.actor:give_info_portion("wpn_porshein") end function function_start_5() iTimer = time_global() + 13*1000 db.actor:give_info_portion("wpn_porshein") end end function Timer_N_minutes() if iTimer and iTimer < time_global() then iTimer = nil db.actor:disable_info_portion("wpn_porshein") db.actor:restore_weapon() end end FATAL ERROR [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : d:\stalker cop\gamedata\scripts\builds_activ.script:34: attempt to call global 'function_start_5' (a nil value) stack trace: • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 28 Февраля 2012 (изменено) оружие не берется в руки Вообще не берётся или через несколько сек? Изменено 28 Февраля 2012 пользователем Tris • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 11 Марта 2012 Artos, я извиняюсь, но не могли бы вы привести пример простейшего сохранения глобальной переменной? • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 12 Марта 2012 Artos, по порядку: Сохраняют/запоминают или значение или имя или и то и другое. О чем ты спрашиваешь? Сохранить значение. В моем случае, например число 90. "Сохранить" куда? Я думаю лучше будет сохранить в отдельный файл(скрипт) чтобы потом можно было считать необходимую переменную. Приведу свой код: damage = 100 local table_utterances = {"У вас нет консервы.","У вас нет не одной консервы.","У вас отсутствуют консервы.","Нечего открывать."} function use_knife() if damage == 0 then create_item_in_inv("knife_broken") broken_knife() --\\ это вывод сообщения он не важен. return end if db.actor:object("conserva") then remove_item_in_inv(db.actor,("conserva")) create_item_in_inv("conserva_o") create_item_in_inv("knife") if proverka_sharpening_to_zero() == false then damage = damage - 10 end damage_knife() --\\ Состояние Ножа. else create_item_in_inv("knife") news_manager.send_tip(db.actor, game.translate_string(table_utterances[math.random(#table_utterances)])) end end После использования ножа его состояние уменьшается от 100 до 90. Всё отлично, но после перезагрузки глобальная переменная сбивается, и поэтому у меня возникла необходимость сохранить ее, чтобы после очередной перезагрузке игры, нож имел состояние, которое было до перезагрузки. P.S. Вопрос тесно связан с игрой, поэтому решил писать сюда. • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 15 Апреля 2012 (изменено) Добрый вечер! Подскажите пожалуйста как исправить данную ошибку? FATAL ERROR [error]Expression : assertion failed [error]Function : CUIXmlInit::InitText [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIXmlInit.cpp [error]Line : 315 [error]Description : pTmpFont stack trace: class "selection_of_groups_ui" (CUIScriptWnd) function selection_of_groups_ui:__init() super() self:InitControls() self:InitCallBacks() end function selection_of_groups_ui:__finalize() end function selection_of_groups_ui:InitControls() self:SetWndRect(Frect():set(50,50,1024,768)) local xml = CScriptXmlInit() xml:ParseFile("selection_of_groups_ui.xml") self:Register(xml:Init3tButton("caption", self),"caption") self:Register(xml:Init3tButton("btn_1", self),"btn_1") self:Register(xml:Init3tButton("btn_2", self),"btn_2") self:Register(xml:Init3tButton("btn_3", self),"btn_3") self:Register(xml:Init3tButton("btn_4", self),"btn_4") end function selection_of_groups_ui:InitCallBacks() self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.function_ui_1, self) self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.function_ui_2, self) self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.function_ui_3, self) self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.function_ui_4, self) end function selection_of_groups_ui:function_ui_1() if db.actor:character_community() ~= "(stalker)" then db.actor:set_character_community("stalker", 0, 0) end end function selection_of_groups_ui:function_ui_2() if db.actor:character_community() ~= "(bandit)" then db.actor:set_character_community("bandit", 0, 0) end end function selection_of_groups_ui:function_ui_3() if db.actor:character_community() ~= "(dolg)" then db.actor:set_character_community("dolg", 0, 0) end end function selection_of_groups_ui:function_ui_4() if db.actor:character_community() ~= "(freedom)" then db.actor:set_character_community("freedom", 0, 0) end end Без указания версии игры и используемого шаблона selection_of_groups_ui.xml гадай самостоятельно или на пару с кашнировским. --/Artos [x] Изменено 15 Апреля 2012 пользователем Artos • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 16 Апреля 2012 (изменено) selection_of_groups_ui.XML <?xml version="1.0" encoding="windows-1251" ?> <main> <background x="0" y="0" width="400" height="340" stretch="1"> <texture x="0" y="0" width="350" height="460">ui\ui_actor_sleep_screen</texture> </background> <caption x="175" y="30" width="50" height="35"> <text>Выберете группировку:</text> </caption> <btn_1 x="72" y="80" width="256" height="35"> <texture_e>ui\ui_btn_mm_e</texture_e> <texture_t>ui\ui_btn_mm_t</texture_t> <texture_h>ui\ui_btn_mm_h</texture_h> <text>"Нейтралы"</text> </btn_1> <btn_2 x="72" y="130" width="256" height="35"> <texture_e>ui\ui_btn_mm_e</texture_e> <texture_t>ui\ui_btn_mm_t</texture_t> <texture_h>ui\ui_btn_mm_h</texture_h> <text>"Бандиты"</text> </btn_2> <btn_3 x="72" y="180" width="256" height="35"> <texture_e>ui\ui_btn_mm_e</texture_e> <texture_t>ui\ui_btn_mm_t</texture_t> <texture_h>ui\ui_btn_mm_h</texture_h> <text>"Долг"</text> </btn_3> <btn_4 x="72" y="230" width="256" height="35"> <texture_e>ui\ui_btn_mm_e</texture_e> <texture_t>ui\ui_btn_mm_t</texture_t> <texture_h>ui\ui_btn_mm_h</texture_h> <text>"Свобода"</text> </btn_4> </main> selection_of_groups_ui_mod.sctipt class "selection_of_groups_ui" (CUIScriptWnd) function selection_of_groups_ui:__init() super() self:InitControls() self:InitCallBacks() end function selection_of_groups_ui:__finalize() end function selection_of_groups_ui:InitControls() self:SetWndRect(Frect():set(50,50,1024,768)) local xml = CScriptXmlInit() xml:ParseFile("selection_of_groups_ui.xml") xml:InitStatic("background", self) -- рамка сзади self:Register(xml:Init3tButton("caption", self),"caption") self:Register(xml:Init3tButton("btn_1", self),"btn_1") self:Register(xml:Init3tButton("btn_2", self),"btn_2") self:Register(xml:Init3tButton("btn_3", self),"btn_3") self:Register(xml:Init3tButton("btn_4", self),"btn_4") end function selection_of_groups_ui:InitCallBacks() self:AddCallback("btn_1", ui_events.BUTTON_CLICKED, self.function_ui_1, self) self:AddCallback("btn_2", ui_events.BUTTON_CLICKED, self.function_ui_2, self) self:AddCallback("btn_3", ui_events.BUTTON_CLICKED, self.function_ui_3, self) self:AddCallback("btn_4", ui_events.BUTTON_CLICKED, self.function_ui_4, self) end function selection_of_groups_ui:function_ui_1() if db.actor:character_community() ~= "(stalker)" then db.actor:set_character_community("stalker", 0, 0) end end function selection_of_groups_ui:function_ui_2() if db.actor:character_community() ~= "(bandit)" then db.actor:set_character_community("bandit", 0, 0) end end function selection_of_groups_ui:function_ui_3() if db.actor:character_community() ~= "(dolg)" then db.actor:set_character_community("dolg", 0, 0) end end function selection_of_groups_ui:function_ui_4() if db.actor:character_community() ~= "(freedom)" then db.actor:set_character_community("freedom", 0, 0) end end FATAL ERROR [error]Expression : assertion failed [error]Function : CUIXmlInit::InitText [error]File : D:\prog_repository\sources\trunk\xrGame\ui\UIXmlInit.cpp [error]Line : 315 [error]Description : pTmpFont stack trace: Версия игры ЗП 1.6.00. Изменено 16 Апреля 2012 пользователем ColR_iT Пишем покомпактнее, пожалуйста. • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение
Tris 9 Опубликовано 16 Апреля 2012 (изменено) Artos Вызывал так: function actor_binder:net_spawn(data) selection_of_groups_ui_mod.get_hud_mod() selection_of_groups_ui_mod: function get_hud_mod() if db.actor:alive() then groups_ui = this.selection_of_groups_ui() groups_ui:ShowDialog(true) end end Изменено 16 Апреля 2012 пользователем Artos • Dead Forgetting Zone • Мои работы. Обновление: 24.08.2012 Поделиться этим сообщением Ссылка на сообщение