Перейти к содержанию

РСФСР

Разработчики
  • Публикаций

    106
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные РСФСР


  1. В 11.08.2023 в 11:38, ian98 сказал:

    РСФСР 

    Тебе надо типо после удара переместить игрока на пути какие-то?

    Я нашел такую строчку в оригинале. Это телепортация.

    
    db.actor:set_actor_position(patrol("val_ambush_dest_walk"):point(0))

    Выдача инфы

    
    db.actor:give_infoportion("") -- или give_info_portion("") - забыл

    Управление выключается уже в скрипте, который я выше дал.

    
    set_inactivate_input_time(1000) -- вроде 1000 это 1 секунда 

     

    работает, кроме выкидывания барахла


  2. 2 часа назад, ian98 сказал:

    РСФСР 

    Тебе надо типо после удара переместить игрока на пути какие-то?

    Я нашел такую строчку в оригинале. Это телепортация.

    
    db.actor:set_actor_position(patrol("val_ambush_dest_walk"):point(0))

    Выдача инфы

    
    db.actor:give_infoportion("") -- или give_info_portion("") - забыл

     

    да,


  3. 20 минут назад, ian98 сказал:

    РСФСР 

      Скрыть контент
    
    
    function punch_and_rob_actor(first_speaker, second_speaker) -- нас бьют во время диалога или вообще не будут с нами разговаривать, а наши предметы летят в указанный ящик
    local npc
    if first_speaker:id()==0 then npc = second_speaker
    elseif second_speaker:id()==0 then npc = first_speaker
    end
    
    -- Сначала бъем в морду
    npc:clear_animations()
    npc:add_animation("udar_0")
    
    local iTimer = time_global() + 700
    	
    local function check_timer()
    return time_global() > iTimer
    end
    
    local function action_timer()
    set_inactivate_input_time(30)
    local snd_obj = xr_sound.get_safe_sound_object([[affects\hit_fist]])
    snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0)
    
    level.add_cam_effector("camera_effects\\dis_consciousness.anm", 999, false, "") -- найти бы прикольных эффектов. это самый эпичный как по мне)
    
    -- Перемещаем инвентарь игрока в ящик
    inv_robbers_chest = level_object_by_sid(2000)
    local function transfer_object_item(item)
    db.actor:transfer_item(item, inv_robbers_chest)
    end
    db.actor:inventory_for_each(transfer_object_item)
    end
    
    level.add_call(check_timer, action_timer)
    dialogs.break_dialog(first_speaker, second_speaker)
    
    end

     

    Выглядит так себе. Ну делает, что делает, что тебе и нужно. Если что-то еще нужно, то можно доделать.

     

    а вот эту часть не подскажешь как вписать в функцию чтоб работало? телепортация после удара в вейпоинт, выдача некоторых инфо и выключение управления на некоторое время:
     

    	st.dest_walk = patrol("val_ambush_dest_walk"):point(0)
    	st.dest_look = utils.vector_copy_by_val(
    		patrol("val_ambush_dest_look"):point(0)):sub(st.dest_walk)
    	st.info = { "val_prisoner_plr_captured", "val_prisoner_door_unlocked",
    		"val_prisoner_door_unlocked_demo" }
             --	"val_prisoner_door_unlocked_demo", "val_sacrifice_start" }
    	st.disable_input_tm = 15000

     


  4. 3 часа назад, ian98 сказал:

    РСФСР могу написать новый. По-своему:) Попроще. работать будет также - не боись. А по этому скрипту, то вылетает может от того, что ты или кто-то закомментил пару строчек xr_punch.punch... ? Из лога понятно, что ошибка где-то в xr_punch

    было бы классно! Может и ошибка там, ведь разница между билдовым и финальным файлом в несколько лет


  5. подскажите как подправить скрипт из 2205 билда для финалки с ударом игроку в морду и последующей телепортацией и изыманием вещей.
     

    function val_punch_ambush(first_speaker, second_speaker)
    abort("KICK ASS !!!!")
    xr_punch.punch[first_speaker:id()] = second_speaker
    db.storage[db.actor:id()].punch = {}
    local st = db.storage[db.actor:id()].punch
    st.dest_walk = patrol("val_ambush_dest_walk"):point(0)
    st.dest_look = utils.vector_copy_by_val(
    patrol("val_ambush_dest_look"):point(0)):sub(st.dest_walk)
    st.info = { "val_prisoner_plr_captured", "val_prisoner_door_unlocked",
    "val_prisoner_door_unlocked_demo" }
     "val_prisoner_door_unlocked_demo", "val_sacrifice_start" }
    st.dump_inventory_pos = patrol("val_ambush_inventory_dump_place"):point(0)
    st.disable_input_tm = 15000
    
    db.storage[second_speaker:id()].punch.enabled = true
     xr_punch.put_actor_to_sleep_instantly()
    end

    При этом часть где барахло актора вываливается в точке заменить на эту функцию где барахло убирается в ящик или как-то добавить отдельно вызов этой функции(она рабочая):
     

    function val_ambush_rob_actor(actor, npc, p)
    inv_box_1 = level_object_by_sid(440)
    local function transfer_object_item(item)
    —# Секции, которые не перемещать
    if item:section() ~= "detector_fake"
     and item:section() ~= "wpn_knife"
    and item:section() ~= "device_torch"
    and item:section() ~= "device_pda" then
    db.actor:transfer_item(item, inv_box_1)
    end
    end
    actor:inventory_for_each(transfer_object_item)
    end

    Сейчас вылет:

     

    FATAL ERROR
    
    [error]Expression : fatal error
    [error]Function : CScriptEngine::lua_error
    [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
    [error]Line : 73
    [error]Description : <no expression>
    [error]Arguments : LUA error: ...a.l.k.e.r\gamedata\scripts\dialogs_darkvalley.script:51: attempt to index field 'punch' (a nil value)
    
    
    stack trace:

    Вылет ссылается на эту строчку:

     

    db.storage[second_speaker:id()].punch.enabled = true

     


  6. 45 минут назад, Paracetamol сказал:

    А оно же в любом случаи будет на нулевых коорд. (Рабою в сдк YARA)

    Попробуй сделать а нулевыми координатами в пустой сцене эти обьекты для группы и обьединить их в группу (что за обьекты, там есть статические обьекты?)

    догнал как эта хрень работает. Чтобы при создании группы она имела нулевые координаты надо чтобы половина или больше объектов которые в нее входят имели эти нулевые координаты.


    Дополнено 20 минуты спустя

    аа все понял. После создания группы надо в поле что внизу справа нажать align to object и выбрать объект который будет центром координат. Выбираем объект с нулевыми координатами и вауля

    • Лайк 1

  7. Такой вопрос - как сделать в сдк тч группу чтобы она имела нулевые координаты? Сейчас пытаюсь объединить несколько объектов для переноса с одной локации на другую но получается хрень с ненулевыми координатами. Нормально с ними перенести не получается. Вроде работал способ включения в группу объекта с нулевыми координатами и поворотами, но что-то никак.


  8. 3 часа назад, Paracetamol сказал:

    А какой примерно рестриктор по величине?

    Движок оригинальный?

    круглый, метров 10
    Движок да, оригинальный. Возможно есть некоторые изменения из xray_extentions кажется


  9. 10 часов назад, РСФСР сказал:

    с чем связан такой вылет:

    stack trace:

    0023:007AEDE0 xrCore.dll, str_container::dock()
     
    [error][     183]    : Невозможно создать файл, так как он уже существует.

     

    ошибка оказалась в том что вписал в задание инфопоршион_фэйл и функшион_фэйл использующий туже инфопорцию

    • Хабар 1

  10. Подскажите как реализовать следующее:
    Есть квестовый предмет, который нужно подобрать в инвентарь, затем пойти и выбросить в определенном рестрикторе и далее постреляв по нему он должен разрушиться(соответственно подменяется модель на разрушенную) и выдать инфо.

    Не знаю, можно ли разрушать квестовые предметы. Скорее всего объект должен быть destroyble_object
     


  11. В 22.07.2023 в 20:57, Mass сказал:

    capacity должно <= чем работ в смарте!

     

    меньше или равно?
    Попробовал прописать  сталкерам под логикой уход в смарт по инфо - ничего не произошло, также сидят под логикой при получении инфо.


  12. 6 часов назад, *lusky* сказал:

    Интересует вот какой вопрос. Хочу изменить квестовый предмет, например оружие которое нужно найти. В файле all.spawn я изменил его визуальное отображение. И когда я его нахожу визуал изменился, а описание и иконка остались прежними. Где править чтобы поменялось описание и иконка?

    Это меняется в файле quest_items.ltx

    • Жму руку 1

  13. 3 минуты назад, ian98 сказал:

    РСФСР дескрипшн вроде подсказал какой файл. так что много файлов должно отпасть? наверняка мелочь, скобку какую пропустил

    этот файл во-первых не трогал, во вторых открыв файл оригинала- там число строк меньше. нету 87


  14. Есть способ как-нибудь локализовать ошибки в .xml - файлах?
    кроме
    [error]Line          : 87
    [error]Description   : XML file:text\rus\string_table_includes.xml value: errDescr:Error reading Attributes.

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


  15. Цитата

    Исправлена повторявшаяся беготня Шустрого и спасённого новичка в Тёмной долине

    Цитата

    Добавлено исправление ошибки, из-за которой несколько НПС пытались сесть на одну и ту же точку у костра

    Не подскажите, как такое исправлено было?


  16. Вот функция, которая при разговоре с арни перемещает барохло актора в ящик и спавнит всяких хлам для выступлений в инвентарь:
     

    function bar_arena_teleport ( actor, npc)
    	db.actor:give_info_portion("bar_arena_entrance")
    
    	inv_box_1 = level_object_by_sid (573)
    
    	out_object = actor
        in_object  = inv_box_1
    		actor:inventory_for_each(transfer_object_item) 
    
    	local spawn_items = {}	
    
    	if	has_alife_info("bar_arena_fight_1") then 
    		table.insert(spawn_items, "wpn_pm")
    		table.insert(spawn_items, "ammo_9x18_pmm")
    		table.insert(spawn_items, "ammo_9x18_pmm")
    		table.insert(spawn_items, "wpn_knife")
    	elseif	has_alife_info("bar_arena_fight_2") then
    		table.insert(spawn_items, "wpn_mp5")
    		table.insert(spawn_items, "ammo_9x19_pbp")
    		table.insert(spawn_items, "wpn_knife")		
    	elseif	has_alife_info("bar_arena_fight_3") then
    		table.insert(spawn_items, "wpn_toz34")
    		table.insert(spawn_items, "ammo_12x70_buck")
    		table.insert(spawn_items, "ammo_12x70_buck")
    		table.insert(spawn_items, "wpn_knife")
    	elseif	has_alife_info("bar_arena_fight_4") then			
    		table.insert(spawn_items, "wpn_ak74")
    		table.insert(spawn_items, "ammo_5.45x39_ap")
    		table.insert(spawn_items, "ammo_5.45x39_ap")
    		table.insert(spawn_items, "wpn_knife")
    		table.insert(spawn_items, "bandage")
    		table.insert(spawn_items, "bandage")
    	elseif	has_alife_info("bar_arena_fight_5") then	
    		table.insert(spawn_items, "wpn_abakan")
    		table.insert(spawn_items, "ammo_5.45x39_ap")
    		table.insert(spawn_items, "ammo_5.45x39_ap")
    		table.insert(spawn_items, "ammo_5.45x39_ap")
    		table.insert(spawn_items, "wpn_knife")
    		table.insert(spawn_items, "bandage")
    		table.insert(spawn_items, "medkit")
    		table.insert(spawn_items, "svoboda_light_outfit")
    	elseif	has_alife_info("bar_arena_fight_6") then
    		table.insert(spawn_items, "wpn_groza")
    		table.insert(spawn_items, "ammo_9x39_ap")
    		table.insert(spawn_items, "ammo_9x39_ap")
    		table.insert(spawn_items, "ammo_9x39_ap")
    		table.insert(spawn_items, "wpn_knife")
    		table.insert(spawn_items, "grenade_f1")
    		table.insert(spawn_items, "specops_outfit")
    	elseif	has_alife_info("bar_arena_fight_7") then
    		table.insert(spawn_items, "wpn_knife")
    		table.insert(spawn_items, "bandage")
    		table.insert(spawn_items, "grenade_f1")
    		table.insert(spawn_items, "grenade_f1")
    		table.insert(spawn_items, "grenade_f1")
    		table.insert(spawn_items, "grenade_f1")
    	elseif	has_alife_info("bar_arena_fight_8") then
    		table.insert(spawn_items, "wpn_g36")
    		table.insert(spawn_items, "ammo_5.56x45_ap")
    		table.insert(spawn_items, "ammo_5.56x45_ap")
    		table.insert(spawn_items, "ammo_5.56x45_ap")
    		table.insert(spawn_items, "ammo_5.56x45_ap")
    		table.insert(spawn_items, "exo_outfit")
    		table.insert(spawn_items, "wpn_knife")
    	end
    	
    	local k,v = 0,0
    	
    	for k,v in pairs(spawn_items) do
    		alife():create(v,	
    						db.actor:position(),
    						db.actor:level_vertex_id(),	
    						db.actor:game_vertex_id(), 
    						db.actor:id())
    	end	
    	
    end

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

    function escape_rob_actor ( actor, npc)
             inv_box_1 = level_object_by_sid (051)
             out_object = actor
             in_object = inv_box_1
    actor:inventory_for_each(transfer_object_item)
    end

     


  17. 29 минут назад, imcrazyhoudini сказал:

    Stalkervernite ну со смарта смарт в например
    [smart_terrains]
    smart1 = {-info}
    smart2 = {+info}

    когда получит info перейдёт в другой смарт

    а нельзя если прописано
    [smart_terrains]
    none= true
    в другой смарт по инфо?


  18. 6 часов назад, Stalkervernite сказал:

    ian98 А нельзя сделать так? в сдк

    [spawner]

    cond = 

    Я  спрашиваю, потому-что  плохо помню эту функцию.

     

     

    нельзя,  пробовал. Можно вроде только если создать квестовый предмет-артефакт


  19. 14 часов назад, Grizzly_RPA сказал:

    Stalkervernite Проверил на декомпилированных Кордоне и Свалке смарты, находил всякое:

    В смарте сквады и группы прописаны, у всех NPC в этом смарте сквады и группы - дефолтные нули

    В смарте сквады и группы не прописаны, у всех NPC в этом смарте заданы одинаковые значения

    В смарте сквады и группы не прописаны, у NPC в этом смарте заданы разные группы

    В смарте заданы одни значения, у всех NPC в этом смарте заданы одинаковые значения, но отличаются от смартовых

    В униварсальных лагерях не прописано, у NPC - дефолтные нули

    Перелопатил все вики и ютуб, ответов ноль. закономерностей ноль. нервов -50.

    все эти сквады- группы - это устаревшие параметры времен 2005 года. Сейчас они нужны вроде для одного - чтобы при убийстве одного из членов смарт-террейна остальные его члены с одинаковыми сквадами-группами агрились на нас


    Дополнено 12 минуты спустя
    В 09.07.2023 в 10:52, Paracetamol сказал:

    Господа, может кто-нибудь знает, как можно перенести все предметы с инвентаря ГГ в ящик, а затем скриптом обратно положить к нему в рюкзак, либо же как-нибудь сохранить его инвентарь, потом очистить и через время выдать сохранённый шмот? И вообще возможно ли такое на ванили или хотя бы ОГСР?

    В ванили осталась логика от сцены в вырезанном мертвом городе где при входе в зону scripts\cit\cit_jail_scene_zone.ltx у ГГ весь шмот убирается в ящик у наемников. Не знаю остался ли там скрипт, но думаю остался. Про обратное - из ящика в инвентарь - можно наверно

    • Мастер! 2