Перейти к контенту

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

53 минуты назад, phalcor сказал:

а какую секцию указать для ящика?

Нужно создать предмет (естественно не подбираемый, хотя можно и ящики собирать если нужно) с визуалом ящика, потом спавнить как любой предмет. Но все же советую делать такие вещи через СДК, подобные костыли — уровень 2007 года.

  • Спасибо 1
  • Согласен 2

GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

JNCR — Coming Soon...

i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


Подарки

  • 2
  • Ссылка на комментарий
    2 минуты назад, phalcor сказал:

    обычный деревянный ящик скриптом я заспавнить не смогу 

    Деревянный ящик — это зашитая в спавн секция динамического объекта с прописанным визуалом этого самого ящика. Соответственно — нет. Тебе нужно по аналогии создать в конфигах предмет с прописанным визуалом, и спавнить непосредственно предмет, а не модель.

    • Спасибо 1

    GTA 3 MAP X-Ray | NFS U:2 MAP X-Ray | RTCW MAP X-Ray | L2D | Куча раритетных модов на моем облаке — на память о былом.

    JNCR — Coming Soon...

    i5-10400F / RAM 16GB / GTX 1660 Super / 1TB HDD+256GB SSDm2 / Win 11 PRO x64 / Samsung Curved 27" x2


    Подарки

  • 2
  • Ссылка на комментарий

    Получилось!

    1. Создаём свой предмет в  items.ltx:

    [phalcor_woodbox]:O_PHYS_S
    visual = dynamics\box\big_box.ogf    ;Большой деревянный зелёный ящик
    remove_time = 9999

     

    2.Спавним предмет с секцией "phalcor_woodbox"

     

    3. всё.

    Изменено пользователем phalcor
    • Согласен 1
    Ссылка на комментарий

    Нужна помощь - при попытке выполнить такой код:
     

    Скрытый текст


    
    function dots:dots1()
    	edit_box		= self:GetEditBox("edit_box")
    	edit_box2		= self:GetEditBox("edit_box2")
    
    clan = tostring(edit_box:GetText())
    amount = tonumber(edit_box2:GetText())
    
    --get_console():execute(clan)
    --get_console():execute(amount)
    
    --get_console():execute("Started")
    
    if db.actor then
    -- self:on_quit()
    -- get_console():execute("main_menu off")
    get_console():execute("Phase1")
    if clan==nil then clan="stalker" end
    if amount==nil then amount=1 end
    --current=relation_registry:community_goodwill(clan, 0)
    get_console():execute("Phase2")
    relation_registry:set_community_goodwill(clan, 0, math.min(5000, amount))
    get_console():execute("Phase3")
    end
    end

    вылетает на стол с такой вот ошибкой:

    
    [02.10.20 16:23:52.569] ********************************************************************************
    [02.10.20 16:23:52.576] *********************************************************************************
    [02.10.20 16:23:52.576] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
    [luabind::detail::free_functions::function_dispatcher] Caught unhandled exception!
    stack traceback:
    	[C]: at 0x07fed88bf770
    	[C]: in function 'set_community_goodwill'
    	g:\stalker_shoc_na7\gamedata\scripts\ui_prestige.script:72: in function <g:\stalker_shoc_na7\gamedata\scripts\ui_prestige.script:52>
    [02.10.20 16:23:52.576] *********************************************************************************
    [02.10.20 16:23:52.576] 
    FATAL ERROR
    
    [error]Expression    : FATAL ERROR
    [error]Function      : CScriptEngine::lua_pcall_failed
    [error]File          : d:\_work\forks\ogsr-engine\ogsr_engine\common_ai\script_engine.cpp
    [error]Line          : 52
    [error]Description   : [CScriptEngine::lua_pcall_failed]: [luabind::detail::free_functions::function_dispatcher] Caught unhandled exception!
    
    [02.10.20 16:23:52.576] ***************************[ScriptCrashHandler]**********************************
    [02.10.20 16:23:52.576] stack traceback:
    	[C]: at 0x07fed88bf770
    	[C]: in function 'set_community_goodwill'
    	g:\stalker_shoc_na7\gamedata\scripts\ui_prestige.script:72: in function <g:\stalker_shoc_na7\gamedata\scripts\ui_prestige.script:52>
    [02.10.20 16:23:52.576] 	Locals: 
    [02.10.20 16:23:52.576] 	 string (*temporary) : [luabind::detail::free_functions::function_dispatcher] Caught unhandled exception!
    [02.10.20 16:23:52.576] 	End
    [02.10.20 16:23:52.576] 	Locals: 
    [02.10.20 16:23:52.576] 	 Table: (*temporary)
    [02.10.20 16:23:52.576] 			 function (*temporary).set_community_goodwill : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).clear_personal_relations : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).community_goodwill : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).change_community_goodwill : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).set_personal_goodwill : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).clear_personal_goodwill : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).get_personal_goodwill : [[function]]
    [02.10.20 16:23:52.576] 			 function (*temporary).change_personal_goodwill : [[function]]
    [02.10.20 16:23:52.576] 	 string (*temporary) : stalker
    [02.10.20 16:23:52.576] 	 number (*temporary) : 0.000000
    [02.10.20 16:23:52.576] 	 number (*temporary) : 2000.000000
    [02.10.20 16:23:52.576] 	End
    [02.10.20 16:23:52.576] 	Locals: 
    [02.10.20 16:23:52.576] 	 Userdata: self
    [02.10.20 16:23:52.576] 			 userdata self.dialog : (CUIStatic): 00000000170B2A80
    [02.10.20 16:23:52.576] 			 Userdata: self.owner
    [02.10.20 16:23:52.576] 					 userdata self.owner.message_box : (CUIMessageBoxEx): 0000000040B32920
    [02.10.20 16:23:52.576] 					 number self.owner.mbox_mode : 0.000000
    [02.10.20 16:23:52.576] 					 userdata self.owner.shniaga : (CUIMMShniaga): 0000000040781180
    [02.10.20 16:23:52.576] 	End
    [02.10.20 16:23:52.576] *********************************************************************************
    [02.10.20 16:23:52.576] ********************************************************************************


     

    Вот чего ОГСРу неймётся, кто-нить может объяснить? Какое исключение и где именно?

    Изменено пользователем Опричник
    спойлер
    Скрытый текст

    AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, СГМ, "Возвращении в Зону", Аномали, ЧН ОГСМ!

    Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
    Black_Raven.gif
     

    Ссылка на комментарий
    28 minutes ago, Black_Raven_03 said:

    relation_registry:set_community_goodwill

    Скорее всего вот в этом. Разве relation_registry - это класс и у него есть метод set_community_goodwill?

    • Согласен 1
    Ссылка на комментарий

    @dsh, в dialogs.script в НА7 вступление в Долг так же реализовано, потому решил использовать этот же метод для своего экстренно-читерского исправлятора отношений; собственно кусок скрипта:
     

    Скрытый текст


    
    -----------------------------------------------------------------------------------
    -- Dolg Community
    -----------------------------------------------------------------------------------
    function actor_in_dolg(actor, npc)
    	if db.actor then
    		return db.actor:character_community() == "actor_dolg"
    	end
    	return false
    end
    
    function actor_not_in_dolg(actor, npc)
    	return not actor_in_dolg(actor, npc)
    end
    
    function actor_set_dolg(actor, npc)
    	printf("ACTOR NOW IN [DOLG] COMMUNITY")
    	if db.actor then
    		db.actor:set_character_community("actor_dolg", 0, 0)
    		update_info_portions_dolg()
    
    		if not db.actor:has_info("mil_leader_quest2_complete") then
    			relation_registry.set_community_goodwill ("freedom", db.actor:id(), -5000)
    		elseif relation_registry.community_goodwill("freedom", db.actor:id()) > 0 then
    			relation_registry.set_community_goodwill ("freedom", db.actor:id(), 0)
    		end
    	end
    	return true
    end
    
    function actor_clear_community(actor, npc)
    	printf("ACTOR NOW IN [NEUTRAL] COMMUNITY")
    	if db.actor then
    		db.actor:set_character_community("actor", 0, 0)
    	end
    	return true
    end

     

     

     

    Изменено пользователем Опричник
    спойлер
    Скрытый текст

    AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, СГМ, "Возвращении в Зону", Аномали, ЧН ОГСМ!

    Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
    Black_Raven.gif
     

    Ссылка на комментарий

    @dsh, или ты меня в двоеточие вместо точки ткнул? тут я мог накосячить ибо ЛУА после Паскаля воспринимается очень хреново...

    Всем помогавшим - Спасибо! Нашёл, где накосячил

    Скрытый текст

    AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, СГМ, "Возвращении в Зону", Аномали, ЧН ОГСМ!

    Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
    Black_Raven.gif
     

    Ссылка на комментарий

    @Black_Raven_03, а может всё-таки db.actor? Я конечно не силён в lua, как @dsh но чувствую что нужно попробовать добавить

    local relation_registry = db.actor

    Хотя, могу и ошибаться, пусть мэтр меня поправит, если что.

    • Не согласен 1

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

    Ссылка на комментарий

    @UriZzz, неа, просто транслятор ЛУА ругался на двоеточие между relation_registry и методом set_community_goodwill, а там положено быть точке; всё равно спасибо и удаляюсь кодить дальше...

    • Спасибо 1
    Скрытый текст

    AMD FX-8100 (Bulldozer) , 16GB DDR3-1600, AFOX GeForce GTX1050Ti и нормально сталкерим в НА5.1, НА7, OGSE-0693, OGSR, НС2016, OLR, OFFLIFE, CoC, LADC, СГМ, "Возвращении в Зону", Аномали, ЧН ОГСМ!

    Мозг состоит на 80 процентов из жидкости, и мало того, что она тормозная, так многим еще конкретно не долили...@Denikius136
    Black_Raven.gif
     

    Ссылка на комментарий
    10 минут назад, Black_Raven_03 сказал:

     

    Dell

    Да, всё правильно db.actor тут не причем, это уже я тупанул.

    Изменено пользователем UriZzz
    • Спасибо 1

     Моя нычкаНычка в арендованном у Опричника холодильнике  

    Мы хорошие ребята, жаль патронов маловато:):ukostra:

    UriZzz.gif

    Ссылка на комментарий

    Доброго времени! Прошу помощи!

    Возникла идея - скриптово потушить лампу. Распаковав Алл.Спавн нашел у выбранной мною лампы параметр health = 100. Подозреваю, что дав параметру нуль - потушу лампу, хочу проверить. Хочу ковырять её через НетПакеты от Артоса. Вопрос, как мне прочитать нетпакет лампы?

    Скрытый текст
    
    [11509]
    
    ; cse_abstract properties
    section_name = lights_hanging_lamp
    name = yan_lamp6
    position = 24.0428810119629, -9.33421421051025, -271.800720214844
    direction = 9.42477798461914, 9.42477798461914, -7.85398149490356
    version = 118
    script_version = 6
    spawn_id = 3892
    
    ; cse_alife_object properties
    game_vertex_id = 1438
    level_vertex_id = 132308
    object_flags = 0xffffffaa
    custom_data = <<END
    [collide]
    ignore_static
    END
    
    ; cse_visual properties
    visual_name = physics\light\new_light\light_white_glass
    
    ; cse_ph_skeleton properties
    
    ; cse_alife_object_hanging_lamp properties
    main_color = 0xffffffff
    main_brightness = 1
    main_color_animator = light\light_omni_white_idle
    main_range = 8
    light_flags = 0x3a
    lamp_fixed_bones = link
    health = 100
    main_virtual_size = 0.1
    ambient_radius = 2.5
    ambient_power = 0.60000002
    main_bone = bone_lamp
    main_cone_angle = 2.0943952
    glow_radius = 0.69999999
    ambient_bone = bone_omni

     

    Пробую так:

    Скрытый текст
    
    function lampa()
    local sobj = alife():object(3892)
    local pk = get_netpk(sobj)
    if pk and pk:isOk() then
    	local data = pk:get()
    		amk.send_tip(tostring (data.name), "проверка имени", 1, 15, "common_channel")
        	amk.send_tip(tostring (data.health), "проверка жизни", 1, 15, "common_channel")
    --		data.health = 0
    --		pk:set(data)
    end	
    end

     

    Итого у меня возвращается параметр health = 100

    Но не возвращается data.name равно nil. Будто я не лампы нет-пакет вскрыл, а чего-то другого.

    Вопрос - правильно ли я определяю ID лампы? Если нет, то как правильно?

    Второй вопрос: возможно ли в принципе потушить лампу через данный параметр и через нет-пакет?


    Подарки

  • Ссылка на комментарий

    Здрасьте.

     

    Равнозначны ли указанные ниже способы удаления переменной из pstor?

    xr_logic.pstor_store(db.actor, name, nil)

    db.storage[db.actor:id()].pstor[name] = nil

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

    Ссылка на комментарий

    Интересно, а существует ли простой метод определить, посещалась ли актором та или иная локация?

    Например, что-то вроде:  yes = loc_is_passed("l01_escape" ) 

    Ссылка на комментарий
    11 минут назад, phalcor сказал:

    ли простой метод определить

    Вроде бы способ с инфопоршеном и так простой. Если был, то получил защитный инфо и больше не получишь))

    • Спасибо 1

    Здесь могла быть ваша реклама.


    Подарки

  • 2
  • 2
  • 3
  • 4
  • Ссылка на комментарий

    Прошу помощи :(

    Ест скрипт, убивающий всех ворон (или только на текущей локации?)

    Скрытый текст
    
    function kill_crow()
    	local lname = level.name()
    --			amk.send_tip("прошло", "прошло", 1, 15, "common_channel")
    	for id, sobj in alife():objects() do
    		local crow = level.object_by_id(id)
    		if crow and crow:section() == "m_crow"  then 
    			local hit = hit()
    				hit.direction = crow:direction()
    				hit.impulse = 1000
    				hit.draftsman = crow
    				hit.power = 1000
    				hit.type = hit.strike
    			crow:hit(hit)
    			local sobj = alife():object(id)
    			
    				alife():release(crow, true)
    			
    			ogse_st_mgr.start_gtimer(nil, math.random(150, 300), "ogse.release_crow", id)
    		end
    	end
    end

     

    Вопрос: А как мне убить всех ворон, но КРОМЕ текущей локации?

    А то на голову сыпятся, а нужно от них избавиться


    Подарки

  • Ссылка на комментарий
    53 минуты назад, _Sk8_AsTeR_ сказал:

    а нужно от них избавиться

    А просто удалить? Что б не сыпались.

    Изменено пользователем mole venomous
    • Согласен 1

    Здесь могла быть ваша реклама.


    Подарки

  • 2
  • 3
  • 5
  • 2
  • Ссылка на комментарий
    30.09.2020 в 21:04, HellRatz сказал:

    Но все же советую делать такие вещи через СДК, подобные костыли — уровень 2007 года.

    Хмм, а почему?

    Какай в данном случае, применяется критерий для разделения "костыль / не костыль" - хотелось бы понять.

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

    Ссылка на комментарий

    Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

    Комментарии могут оставлять только зарегистрированные пользователи

    Создать аккаунт

    Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

    Зарегистрировать новый аккаунт

    Войти

    Есть аккаунт? Войти.

    Войти
    • Недавно просматривали   0 пользователей

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

    AMK-Team.ru

    ×
    ×
    • Создать...