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

Внимание. На форуме проводятся технические работы с боковым меню.

_Val_ _Val_

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


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

как заспаунить квестовой предмет в трупе НПС?

Не знаю, сработает ли на трупе, но у живого 

local npc,obj
for i=0,65534 do
npc = level.object_by_id(i)
if npc and npc:name() == "esc_wolf" then ---тут непись, в данном случае Волк.
obj = alife():object(npc:id())
end
end
alife():create("секция_предмета",obj.position,obj.m_level_vertex_id,obj.m_game_vertex_id,obj.id)

 

 

Изменено пользователем BoBaH_671
  • Полезно 1

Ранее был известен под ником BoBaH_671.

 

При совмещении модификации Blowout, New Sleep and Dynamic News со своим модом столкнулся с вылетом

 

Лог переводчиком перевёл вывело вот что 

- Критическая: SMapLocation переплетены несуществующей ID объекта = 159

Изменено пользователем Pro100The-Best

Ребята, как заспавнить physic_destroyable_object через скрипт? К примеру, мне нужен квестовый ящик с квестовым барахлом после получения определённого инфопоршня квеста.

Пишу мод с неповторимым сюжетом.

Нужны "модельеры"

Заинтересованным писать в ЛС

J.A.A..gif

Вопрос:

Заспавнил ГГ на Болотах а всё равно появляюсь на Кордоне

[6433]

 
; cse_abstract properties
section_name = actor
name = level_prefix_actor_0001
position = -171.701111,1.863554,-281.421021
direction = 0.997246,0.000000,-0.074160
id = 65535
s_flags = 0x29
version = 118
script_version = 6
spawn_id = 1016
 
; cse_alife_object properties
game_vertex_id = 3367
distance = 0.69999999
level_vertex_id = 56527
object_flags = 0xffffffbf
custom_data = <<END
[dont_spawn_character_supplies]
 
[spawn]
wpn_binoc
detector_simple
novice_outfit
device_torch
END
 
; cse_visual properties
visual_name = actors\hero\stalker_novice
 
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 0
g_group = 0
dynamic_out_restrictions = 
dynamic_in_restrictions = 
 
; cse_alife_trader_abstract properties
money = 400
trader_flags = 0
character_profile = actor
 
; cse_ph_skeleton properties
 
; cse_alife_creature_actor properties
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -171.701111,1.863554,-281.421021
upd:o_torso = -1.39625442028046, 0.00431653670966625, 0
upd:actor_state = 0xd20
upd:actor_accel = 0, 0, 0
upd:actor_velocity = 0, 0, 0

upd:actor_weapon = 110

 


Проблема решена. Был неправильно настроенный конвертер ACDC.

--

Люди кто знает название анимации

Нпс чуть пригнувшысь что-то высматривает.

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

function load_job(sj, gname, type, squad, groups)

    --- mar лагерь ---
	if type == "mar_lager" then
		t = { section = "logic@mar_lager_marsh_provodnik",
			idle = 0,
			prior = 5, state = {0},
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
	end
	
	--- baza_mar лагерь ---
	if type == "baza_mar_lager" then
		t = { section = "logic@baza_mar_lager_baza_marsh_provodnik",
			idle = 0,
			prior = 100, state = {0},
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
		t = { section = "logic@baza_mar_lager_baza_marsh_provodnik",
			idle = 0,
			prior = 100, state = {0},
			in_rest = "", out_rest = ""
		}
		table.insert(sj, t)
	end

function load_states(gname, type)

    --- mar лагерь ---
	if type == "mar_lager" then
		return function (gulag)
			return 0
		end
	end
	
	--- baza_mar лагерь ---
	if type == "baza_mar_lager" then
		return function (gulag)
			return 0
		end
	end

function checkStalker(npc_community, gulag_type, npc_rank, se_obj)

    --- mar лагерь ---
	if gulag_type == "mar_lager" then
		return se_obj:profile_name() == "marsh_provodnik"
	end
	
	--- baza_mar лагерь ---
	if gulag_type == "baza_mar_lager" then
		return se_obj:profile_name() == "nebo"
	end

 

 


[logic@mar_lager_marsh_provodnik]
active = kamp@mar_lager_marsh_provodnik

[kamp@mar_lager_marsh_provodnik]
center_point = marsh_provodnik_kamp


[logic@baza_mar_lager_baza_marsh_provodnik]
active = kamp@baza_mar_lager_baza_marsh_provodnik

[kamp@baza_mar_lager_baza_marsh_provodnik]
center_point = baza_marsh_provodnik_kamp 

 

 


[smart_terrains]
baza_mar_lager = true 

 

 


Забыл вот way пути

[baza_mar_lager_baza_marsh_provodnik_kamp]
points = p0
p0:name = wp00
p0:position = -147.914245605469,0.612444043159485,-292.253875732422
p0:game_vertex_id = 3376
p0:level_vertex_id = 71758

[mar_lager_marsh_provodnik_kamp]
points = p0
p0:name = wp00
p0:position = -158.924285888672,0.752074241638184,-138.747940063477
p0:game_vertex_id = 3373
p0:level_vertex_id = 64740

[camp_point]
points = p0
p0:name = name00
p0:position = -149.969971,0.638217,-293.126251
p0:game_vertex_id = 3376
p0:level_vertex_id = 70589 

 

 

Всем привет. Кто может ткнуть, где и что почитать, чтобы самому создать статик и вызвать скриптом?

Сталкер - наше всё!

 

 

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

Бррр :wacko: , не понял: "заспавнил чувака" - единственное число, "Они уходят" - множественное число. Давайте подробнее и точнее: кого спавните, секция\профиль, что ему в кастом_дате прописано. В какой гулаг должен приниматься и на какую работу ? Кто эти "они" и куда уходят с учетом, что в оригинале SoC болот нет.

ТЧ 1.0007(RC1)

Делал квест, обнаружил что функция не работает:

 

 

function nl_novice_anomaly_quest(actor, npc) 
if db.actor ~= nil then 
if db.actor:object("af_medusa") then 
db.actor:give_info_portion("nl_novice_anomaly_quest_vzyal") 
return true 
end 
end 
return false 
end

 

 

Не выдается инфопоршень после взятия артефакта.

Вот скелет квеста:

 

 

<game_task id="nl_novice_anomaly_quest">
    <title>Шта</title>
    <objective>
        <text>Достать артефакт</text>
        <icon>ui_iconsTotal_locations</icon>
        <infoportion_complete>nl_novice_anomaly_quest_end</infoportion_complete>
        <article>nl_novice_anomaly_quest</article>
    </objective>
    <objective>
        <text>Взять артефакт</text>
        <function_complete>nl_fucntions.nl_novice_anomaly_quest</function_complete>
        <infoportion_set_complete>nl_novice_anomaly_quest_vzyal</infoportion_set_complete>
    </objective>
    <objective>
        <text>Отдать артефакт</text>
        <infoportion_complete>nl_novice_anomaly_quest_end</infoportion_complete>
    </objective>
</game_task>

 

 

При взятии артефакта не выдается поршень.  :russian_ru:
Давно не делал квесты, но точно помню, что в функции есть какой-то косяк.
Изменено пользователем NL-Vincenz

NL-Vincenz.gif

@Charsi, Спасибо!

 

Вопрос по функции:

 

 

function bychok_zaberaet_art(first_speaker, second_speaker)   
dialogs.relocate_item_section(first_speaker , "af_medusa", "out")
end

 

 

Артефакт как-бы отдается в диалоге, но в инвенторе все равно остается.  :russian_ru:

Скелет диалога:

 

 

<dialog id="nl_novice_anomaly_quest_end">
<has_info>nl_novice_anomaly_quest_vzyal</has_info>
<dont_has_info>nl_novice_anomaly_quest_end</dont_has_info>
        <phrase_list>
                   <phrase id="0">
                             <text>nl_novice_anomaly_quest_end_0</text>
                             <action>nl_functions.bychok_zaberaet_art</action> 
                              <next>1</next>
                    </phrase>
                     <phrase id="1">
                               <text>nl_novice_anomaly_quest_end_1</text>
                                <next>2</next>
                     </phrase>
                     <phrase id="2">
                                <text>nl_novice_anomaly_quest_end_2</text>
                                <next>3</next>
                     </phrase>
                     <phrase id="3">
                                <text>nl_novice_anomaly_quest_end_3</text>
                                <give_info>nl_novice_anomaly_quest_end</give_info>           
                     </phrase>
        </phrase_list>
  </dialog>

 

 

Изменено пользователем NL-Vincenz

NL-Vincenz.gif

 

 

Артефакт как-бы отдается в диалоге, но в инвенторе все равно остается.

Ну так и должно быть, если попутаны актер и непись, или если правильнее - не верно выбрана фраза в диалоге, в которой происходит трансфер арта. Для проверки, перенесите

<action>nl_functions.bychok_zaberaet_art</action>

из 0-ой фразы в 1-ую. Ну и сообщите результат, дальше будем подсказать по факту...

А проще сразу вызывать удаление предмета у актора.

Кому как удобнее. Диалоговаю функция - классика.

svarog2741.gif

 

НС - шлак, солянки - шлак.

@UnLoaded, вообще как-бы нет, там своя кухня уходящая корнями сами знаете куда. Есть определенные правила постройки трансфера предмета в диалоге, граничащие с абсолютным идиотизмом. Без плясаний с бубном не обойтись, зато после осознания и принятия сих правил работается легко, но, все-же, не осознанно.

@Dennis_Chikin, изначально функция подразумевает трансфер, он же и должен происходить на деле, а не удаление, вдруг я этот предмет обратно выкупить захочу.

Два вопроса:

 - есть объект "obj", имеющий один сферический шейп(аномалия к примеру)

local dist = actor:position():distance_to_sqr(obj:position())

dist будет расстояние до центра шейпа объекта ?

 

 - кроме как через нет-пакет, есть-ли возможность получить радиус\диаметр шейпа, для вышеозначенного объекта ?

 

 

dist будет расстояние до центра шейпа объекта ?

Да.

 

 

 - кроме как через нет-пакет, есть-ли возможность получить радиус\диаметр шейпа, для вышеозначенного объекта ?

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

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

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

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

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

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

Войти

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

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

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