Все посты %s в %S - AMK Team
Перейти к контенту

[SoC] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

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-й раз еще одно тело остается лижать и т.д.

 

Помогите решить проблему если она конечно решаема. :rolleyes:

 

 

Поделиться этим сообщением


Ссылка на сообщение

8push5

Чего то у меня совсем ничего из того что ты написал не сработало. Ну да ладно.

Наверное эта задача не решаема. :wacko2:

 

Есть еще кое что что хотелось бы узнать как делать. Это скажем включение звука в голове ГГ доходя до точки или Спавн НПС доходя до точки. Другими словами создание события на точку на карте. Как например вылет вертолета на кордоне с проигрыванием звука "Там **** какой-то шляется..."

Вы спросите "зачем это нужно?" для придания квестам остроты и создания живости восприятия игры. Т.е. скажем идет ГГ к блокпосту под мостом на кордоне, доходит до точки, и в голове играется звук "Да, тут так просто не пройти." и ГГ из искуственной мореанетки в руках геймера превращается в одушевленный предмет со своими мыслями.

 

Как реализовать включение событий на точку на карте?

 

Поделиться этим сообщением


Ссылка на сообщение

8push5

С "get_console():execute" игра не запустилась

 

Поставил вместо deth_out.body_gone() написал alife():release(victim , true) убора трупа не произошло даже в первый раз.

Поделиться этим сообщением


Ссылка на сообщение

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)

 

Поделиться этим сообщением


Ссылка на сообщение

Как создать функцию вызова звукового сигнала и проиграть его в голове ГГ?

Поделиться этим сообщением


Ссылка на сообщение

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

 

Поделиться этим сообщением


Ссылка на сообщение

Вот

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

 

Поделиться этим сообщением


Ссылка на сообщение

Gonarh

Делаю вот так:

 

function metka(obj)

level.map_add_object_spot(obj.id, "kill_stalker_location", "Моя метка")

local obj = alife():object("esc_wolf")

end

 

Метка ставится на ГГ. Вызов функции делаю через диалог.

Поделиться этим сообщением


Ссылка на сообщение

Monnoroch

Нет не надоело. Я учусь. И как показывает практика далеко не все знают эту "фигню".

Если знаешь ответь новечку, а не отбивай желание научиться. В том же АМК такой фигни как метки на предметы, НПС и прочее очень мало и скорей всего потому что их незахотели делать, а не из-за усложнения. И были бы метки, не было бы столько дурацких вопросов на всем извесном форуме.

Так что подскажи как убрать метку с карты? И еще как поставить метку на тайник? Докажи что мастер. :big_boss:

Вопрос будет снят.

 

P.S. Тема называется: "Ковыряемся в файлах Stalker SoC", а не "Запрещенные вопросы Stalker SoC". :rolleyes:

 

Сообщение от модератора n6260
Но и чтение статей из шапки и просмотр старой темы вопросов никто не отменял.

Поделиться этим сообщением


Ссылка на сообщение

Gonarh

Никакого тролизма нет. Как говорят в ПО если что обраться к специалисту. Прежде чем задавать свои "глупые вопросы", я пользовался и гуглом и другими форумами. В програмировании я действительно новичек что скрывать. Я и так об этом говорил. И нет ничего грешного что бы помочь новичку разобраться.

И еще еслибы уроки которые есть на ВИКИ и АМК были для всех, а не для отдельных лиц, да еще и без ошибок, то вопросов и не возникало бы. И было бы больше хороших модов от новичков. Так что я не могу понять в чем страх Monnorochа, в том что кто-то научится или почитать нечего? Лень помочь зачем писать зря? Не можешь не пиши.

Я ведь никого не оскорбил и даже не пытался. Кроме меток меня интересуют много вопросов связанных с модостроением Сталкера и ответы на многие из-них я ищу сам и нахожу. Я же не спросил как сделать однотипные квесты? Нет.

 

А как поставить метку на карту просто в точку и написать что "здесь есть хабар" я ответа найти в гугле немогу.

Так что подскажите пожалуйста кто знает.

В дальнейшем планирую выложить все свои уроки, в которых все расжевано и понятно новичку с первого раза да еще с примерами. И обязательно укажу кто, чем и когда помогал.

Вот. :rolleyes:

Поделиться этим сообщением


Ссылка на сообщение

Люди. :rolleyes:

Как заспавнить предметы внутри тайника или в разбивающийся ящик? Лучше в ящик.

Объясните максимально доходчиво если не влом. :negative:

Поделиться этим сообщением


Ссылка на сообщение

wolkolak

Если не в напряг приведи пример где например на кордоне в АллСпавне прописан разбивающийся ящик с предметами.

Ненадо приводить всю секцию достаточно указать номер [***].

 

Что касается диалога по поводу "помогать или не помогать" так это личное дело каждого. Заставить никто никого не может да и зачем. :mellow:

В тоже время представьте себе: Приходит кто-то из нынешних "гуру" к врачу и говорит: "Доктор у меня в боку что-то болит?", а тот ему: "На анатомический справочник читай". "Гуру" почитал и говорит: "Наверное это апендицит. Что делать доктор?", а доктор "Пока не научишся оперировать и не спрашивай". Пример утрированный НО.

 

Вся эта беседа с возрожениями Monnorochа доходит до абсурда.

Полностью согласен с АККК1 по всем пунктам.

Уж если взялся делать уроки то после их написания (напечатанья) хотя бы прочти их. А то читаеш и непоймеш почему в начале статьи был Волк, а к концу в примерах уже Долг. :crazy: Хотя о смене групировки речь не шла.

 

Да и в заключении. Не найду помощи на этом форуме спрошу на другом. :big_boss:

 

P.S. Все как юмористов: "Вы сказали недосказав, а мы поняли недослушав". :rolleyes:

 

Поделиться этим сообщением


Ссылка на сообщение

Люди

Как сделать функцию вывода сообщения через диалог. Немогу найти.

Поделиться этим сообщением


Ссылка на сообщение

Костя.н.ы.ч спасибо я уже раскопал как можно вывести сообщение.

function news_to_me()

news_manager.send_tip(db.actor, "текст_сообщения", 5, "trader", 10000)

end

Спасибо что не из равнодушных. :rolleyes:

 

Кстати неплохо было бы получить вразумительный ответ на твои вопросы.

"как таким способом привязывать к любому предмету в инвентаре нужные мне функции?И как вызвать из диалога UI-меню?"

Так что просим авторов данной фитчи поделиться опытом.

 

А то был у меня эсперемент со спавном приемника. Я его спавнил, врубалась музыка. Потом зделал его итемом. Можно было подобрать приемник (в инвентарь) музыка продолжала играть так как будто бы я включенный приемник засунул в рюкзак. Протом можно было его выложить где угодно и музыка не прирываясь продолжала играть. Злило только одно что в инвентаре нельзя было отключить музыку.

Так что объясните пожалуйста, кто знает, как привязать к нужному предмету в инвентаре функции? :rolleyes:

Поделиться этим сообщением


Ссылка на сообщение

Pilot

Респектище тебе и уважуха друг за такие слова.

Равнодушных много, но не стоит брать с них пример. :rolleyes:

 

Поделиться этим сообщением


Ссылка на сообщение

Костя.н.ы.ч

Знаешь еще не тестил. Да и не думал об этом. Обязательно проверю.

Поделиться этим сообщением


Ссылка на сообщение

Ну товарищи форумчане вас и понесло.

Спор начался с меня и Monnorochа и речь шла вовсе не о профессионализме или любительстве.

Не нужно пытаться подменять понятия "профессионал" - "опытный", "новичек" - "любитель".

Мы с вами регистрировались не на работу и не в кружок "Умелые руки" или "Очумелые ручки".

Я когда регистрировался, то прежде всего думал о "Клубе по интересам". И задавая свои "глупые" вопросы я ждал помощи опытных товаришей, которые дольше находятся в этом клубе.

Ну не был мне интересен Сталкер в качестве творческого полотна в 2007 году, мне нравились другие игры. :rolleyes:

Если бы занялся я сталкером тогда возможно и уровень был бы повыше чем у любого гуру. А какой либо сложности в програмировании я для себя не нахожу. Может чего то не умею, так научусь. :big_boss:

 

Я вам так скажу, мы находимся в "Клубе", но не в "Клабе" и не забывайте об этом.

 

P.S. Почему на еще пяти форумах, где я зарегистрировался и беседую на тему скриптов не было такой проблемы? :mellow:

Поделиться этим сообщением


Ссылка на сообщение

Люди.

Кто знает как с помощью ACDC в АллСпавне добавить на карту аномалию?

Если можно приведите пример желательно на кордоне. Поиск и копирование по визуалу ничего не дал, аномалия не появилась.

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...