karavan 36 Опубликовано 22 Сентября 2009 8push5 Выше я уже писал как именно должен работать уюоршик трупа но ничего повторусь. Скажим появился esc_wolf его убили труп исчез появился снова esc_wolf его убили труп снова исчез и так всевремя. Труп должен исчезать именно перед глазами ГГ. Проверка на жив-мертв у меня идет через фаил "xr_motivator" вот так: в функцию function motivator_binder:death_callback(victim, who) добавил: if victim and victim.name and string.find(victim:name(), "esc_wolf ") then deth_out.body_gone() выполнение удаления трупа происходит один раз и реализовано вот так function body_gone() local obj = alife() : object( "esc_wolf" ) if obj then alife():release(obj , true) end end Мне необходимо что бы труп исчезал сразу после того как esc_wolf был убит, а как я уже говорил первый труп исчезает, а при убийстве второй раз тело остается лежать, при убийстве в 3-й раз еще одно тело остается лижать и т.д. Помогите решить проблему если она конечно решаема. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 8push5 Чего то у меня совсем ничего из того что ты написал не сработало. Ну да ладно. Наверное эта задача не решаема. Есть еще кое что что хотелось бы узнать как делать. Это скажем включение звука в голове ГГ доходя до точки или Спавн НПС доходя до точки. Другими словами создание события на точку на карте. Как например вылет вертолета на кордоне с проигрыванием звука "Там **** какой-то шляется..." Вы спросите "зачем это нужно?" для придания квестам остроты и создания живости восприятия игры. Т.е. скажем идет ГГ к блокпосту под мостом на кордоне, доходит до точки, и в голове играется звук "Да, тут так просто не пройти." и ГГ из искуственной мореанетки в руках геймера превращается в одушевленный предмет со своими мыслями. Как реализовать включение событий на точку на карте? Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 8push5 С "get_console():execute" игра не запустилась Поставил вместо deth_out.body_gone() написал alife():release(victim , true) убора трупа не произошло даже в первый раз. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 8push5 Вот так я переделал: if victim and victim.name and string.find(victim:name(), "mehanik") then get_console():execute(">>пытаемся_удалить>>"..victim:name()) then deth_spawn.body_gone() end Вот лог. FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...-\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:2: attempt to index global 'xr_motivator' (a nil value) Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Как создать функцию вызова звукового сигнала и проиграть его в голове ГГ? Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Gonarh А как создать функцию установки метки на карту? Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Gonarh А как obj приравнивать непись/аномалию/рестриктор и т.д Вместо obj писать я так думаю нельзя. Добавлено через 5 мин.: Gonarh Как поставить метку на рестриктор. К примеру на такой: function spawn_restrictor() local sid = nil local pos = vector():set(-257.244873,-17.815731,-127.838867) local lv = 7389 local gv = 9 local radius = nil local x = 10 --\ размер по x - длина local y = 10 --\размер по y - высота local z = 10 --\размер по z ширина - в итоге имеем квадрат 10x10x10 метров local ltx = "[logic]\n".. "active = sr_idle\n".. "[sr_idle]\n".. "on_actor_inside = sr_idle@1 %=restrictor_spawn_my_npc%\n".. "[sr_idle@1]\n".. "on_actor_outside = sr_idle@nil\n".. "[sr_idle@nil]" _new_create.create_restr(sid, pos, lv, gv, ltx, radius, x, y, z) end Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Вот function create_restr(storid, pos_restr, lvid_restr, gvid_restr, custom_restr, radius_restr, ax_x, ax_y, ax_z) local obj = alife():create("space_restrictor", pos_restr, lvid_restr, gvid_restr) local packet = net_packet() obj:STATE_Write(packet) ----------------------- load ------------------------------ local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = packet:r_u32() local level_vertex_id = packet:r_u32() local object_flags = packet:r_u32() local custom_data = packet:r_stringZ() local story_id = packet:r_u32() local spawn_story_id = packet:r_u32() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local axis_x = packet:r_vec3() local axis_y = packet:r_vec3() local axis_z = packet:r_vec3() local offset = packet:r_vec3() end end local restrictor_type = packet:r_u8() -------------------------- save ----------------------------- packet:w_begin(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) packet:w_u32( bit_not(193) ) if custom_restr ~= nil then if string.find (custom_restr, '.ltx') ~= nil then custom_restr = '[logic]\n cfg = '..custom_restr..'\n' end packet:w_stringZ(custom_restr) else packet:w_stringZ(custom_data) end if storid ~= nil then packet:w_u32(storid) else packet:w_u32(p_story_id) end packet:w_u32(spawn_story_id) packet:w_u8(1) if radius_restr ~= nil then packet:w_u8(0) packet:w_vec3(vector():set(0, 0, 0)) packet:w_float(radius_restr) elseif radius_restr == nil and ax_x == nil then packet:w_u8(0) packet:w_vec3(vector():set(0, 0, 0)) packet:w_float(2.5) else packet:w_u8(1) packet:w_vec3(vector():set(ax_x, 0, 0)) packet:w_vec3(vector():set(0, ax_y, 0)) packet:w_vec3(vector():set(0, 0, ax_z)) packet:w_vec3(vector():set(0, 0, 0)) end packet:w_u8(restrictor_type) ----------------------------------------------------- packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) end function spawn_restrictor() local sid = nil local pos = vector():set(-257.244873,-17.815731,-127.838867) local lv = 7389 local gv = 9 local radius = nil local x = 10 --\ размер по x - длина local y = 10 --\размер по y - высота local z = 10 --\размер по z ширина - в итоге имеем квадрат 10x10x10 метров local ltx = "[logic]\n".. "active = sr_idle\n".. "[sr_idle]\n".. "on_actor_inside = sr_idle@1 %=restrictor_spawn_my_npc%\n".. "[sr_idle@1]\n".. "on_actor_outside = sr_idle@nil\n".. "[sr_idle@nil]" this.create_restr(sid, pos, lv, gv, ltx, radius, x, y, z) end Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Gonarh Делаю вот так: function metka(obj) level.map_add_object_spot(obj.id, "kill_stalker_location", "Моя метка") local obj = alife():object("esc_wolf") end Метка ставится на ГГ. Вызов функции делаю через диалог. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Gonarh А как сделать функцию чтоб убрать метку? Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Monnoroch Нет не надоело. Я учусь. И как показывает практика далеко не все знают эту "фигню". Если знаешь ответь новечку, а не отбивай желание научиться. В том же АМК такой фигни как метки на предметы, НПС и прочее очень мало и скорей всего потому что их незахотели делать, а не из-за усложнения. И были бы метки, не было бы столько дурацких вопросов на всем извесном форуме. Так что подскажи как убрать метку с карты? И еще как поставить метку на тайник? Докажи что мастер. Вопрос будет снят. P.S. Тема называется: "Ковыряемся в файлах Stalker SoC", а не "Запрещенные вопросы Stalker SoC". Сообщение от модератора n6260 Но и чтение статей из шапки и просмотр старой темы вопросов никто не отменял. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 22 Сентября 2009 Gonarh Никакого тролизма нет. Как говорят в ПО если что обраться к специалисту. Прежде чем задавать свои "глупые вопросы", я пользовался и гуглом и другими форумами. В програмировании я действительно новичек что скрывать. Я и так об этом говорил. И нет ничего грешного что бы помочь новичку разобраться. И еще еслибы уроки которые есть на ВИКИ и АМК были для всех, а не для отдельных лиц, да еще и без ошибок, то вопросов и не возникало бы. И было бы больше хороших модов от новичков. Так что я не могу понять в чем страх Monnorochа, в том что кто-то научится или почитать нечего? Лень помочь зачем писать зря? Не можешь не пиши. Я ведь никого не оскорбил и даже не пытался. Кроме меток меня интересуют много вопросов связанных с модостроением Сталкера и ответы на многие из-них я ищу сам и нахожу. Я же не спросил как сделать однотипные квесты? Нет. А как поставить метку на карту просто в точку и написать что "здесь есть хабар" я ответа найти в гугле немогу. Так что подскажите пожалуйста кто знает. В дальнейшем планирую выложить все свои уроки, в которых все расжевано и понятно новичку с первого раза да еще с примерами. И обязательно укажу кто, чем и когда помогал. Вот. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 23 Сентября 2009 Люди. Как заспавнить предметы внутри тайника или в разбивающийся ящик? Лучше в ящик. Объясните максимально доходчиво если не влом. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 23 Сентября 2009 wolkolak Если не в напряг приведи пример где например на кордоне в АллСпавне прописан разбивающийся ящик с предметами. Ненадо приводить всю секцию достаточно указать номер [***]. Что касается диалога по поводу "помогать или не помогать" так это личное дело каждого. Заставить никто никого не может да и зачем. В тоже время представьте себе: Приходит кто-то из нынешних "гуру" к врачу и говорит: "Доктор у меня в боку что-то болит?", а тот ему: "На анатомический справочник читай". "Гуру" почитал и говорит: "Наверное это апендицит. Что делать доктор?", а доктор "Пока не научишся оперировать и не спрашивай". Пример утрированный НО. Вся эта беседа с возрожениями Monnorochа доходит до абсурда. Полностью согласен с АККК1 по всем пунктам. Уж если взялся делать уроки то после их написания (напечатанья) хотя бы прочти их. А то читаеш и непоймеш почему в начале статьи был Волк, а к концу в примерах уже Долг. Хотя о смене групировки речь не шла. Да и в заключении. Не найду помощи на этом форуме спрошу на другом. P.S. Все как юмористов: "Вы сказали недосказав, а мы поняли недослушав". Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 23 Сентября 2009 Люди Как сделать функцию вывода сообщения через диалог. Немогу найти. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 23 Сентября 2009 Костя.н.ы.ч спасибо я уже раскопал как можно вывести сообщение. function news_to_me() news_manager.send_tip(db.actor, "текст_сообщения", 5, "trader", 10000) end Спасибо что не из равнодушных. Кстати неплохо было бы получить вразумительный ответ на твои вопросы. "как таким способом привязывать к любому предмету в инвентаре нужные мне функции?И как вызвать из диалога UI-меню?" Так что просим авторов данной фитчи поделиться опытом. А то был у меня эсперемент со спавном приемника. Я его спавнил, врубалась музыка. Потом зделал его итемом. Можно было подобрать приемник (в инвентарь) музыка продолжала играть так как будто бы я включенный приемник засунул в рюкзак. Протом можно было его выложить где угодно и музыка не прирываясь продолжала играть. Злило только одно что в инвентаре нельзя было отключить музыку. Так что объясните пожалуйста, кто знает, как привязать к нужному предмету в инвентаре функции? Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 23 Сентября 2009 Pilot Респектище тебе и уважуха друг за такие слова. Равнодушных много, но не стоит брать с них пример. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 23 Сентября 2009 Костя.н.ы.ч Знаешь еще не тестил. Да и не думал об этом. Обязательно проверю. Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 25 Сентября 2009 Ну товарищи форумчане вас и понесло. Спор начался с меня и Monnorochа и речь шла вовсе не о профессионализме или любительстве. Не нужно пытаться подменять понятия "профессионал" - "опытный", "новичек" - "любитель". Мы с вами регистрировались не на работу и не в кружок "Умелые руки" или "Очумелые ручки". Я когда регистрировался, то прежде всего думал о "Клубе по интересам". И задавая свои "глупые" вопросы я ждал помощи опытных товаришей, которые дольше находятся в этом клубе. Ну не был мне интересен Сталкер в качестве творческого полотна в 2007 году, мне нравились другие игры. Если бы занялся я сталкером тогда возможно и уровень был бы повыше чем у любого гуру. А какой либо сложности в програмировании я для себя не нахожу. Может чего то не умею, так научусь. Я вам так скажу, мы находимся в "Клубе", но не в "Клабе" и не забывайте об этом. P.S. Почему на еще пяти форумах, где я зарегистрировался и беседую на тему скриптов не было такой проблемы? Поделиться этим сообщением Ссылка на сообщение
karavan 36 Опубликовано 25 Сентября 2009 Люди. Кто знает как с помощью ACDC в АллСпавне добавить на карту аномалию? Если можно приведите пример желательно на кордоне. Поиск и копирование по визуалу ничего не дал, аномалия не появилась. Поделиться этим сообщением Ссылка на сообщение