Эсминец Recrue
Messages : 8 Date d'inscription : 10/08/2012 Localisation : Ukraine
| Sujet: Скриптовый спавн НПС. Lun 25 Jan 2016, 15:52 | |
| Привет, друзья! В этом сообщении расскажу вам как переспавнить игрового персонажа, который по каким-то причинам отсутствует в вашей игре. Для этого нам нужно: 1. Такая вот функция: - Code:
-
function my_function() local obj for i=1,65534 do obj = alife():object(i) if obj and obj:name() == "stalker_green_zahar" then -- имя секции из аll.spawn alife():release(obj) break end end alife():create(6454) -- номер секции из аll.spawn end где - Code:
-
if obj and obj:name() == "stalker_green_zahar" then имя персонажа из аll.spawn, это у нас Захар и - Code:
-
alife():create(6454) № секции персонажа из аll.spawn - Профиль Захара из аll.spawn:
[6454] ; cse_abstract properties section_name = stalker name = stalker_green_zahar position = 115.473823547363,0.0994514524936676,67.6170272827148 direction = -0.989989936351776,0,0.141137987375259
; cse_alife_trader_abstract properties character_profile = stalker_green_zahar
; cse_alife_object properties game_vertex_id = 1225 distance = 7.80000019073486 level_vertex_id = 33810 object_flags = 0xffffffbf custom_data = <<END [smart_terrains] bar_ohotnik = true END story_id = 9613
; cse_visual properties visual_name = actors\hunters\hunter3
; cse_alife_creature_abstract properties g_team = 0 g_squad = 5 g_group = 4 health = 3 dynamic_out_restrictions = dynamic_in_restrictions =
upd:health = 3 upd:timestamp = 0x6d6d695f upd:creature_flags = 0x75 upd:position = 115.473823547363,0.0994514524936676,67.6170272827148 upd:o_model = 0 upd:o_torso = -0.989989936351776,0,0.141137987375259 upd:g_team = 0 upd:g_squad = 5 upd:g_group = 4
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0
; cse_alife_human_abstract properties predicate5 = 2,0,2,1,1 predicate4 = 2,2,2,0
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
Далее запускаем нашу функцию любым доступным способом и идём поздороваться с Захаром. Пример:Переспавн часового при входе на базу гр.Свобода, который просит у вас Антизомбин. Идём: ...\gamedata\scripts\ui_main_menu.script 1. В самый низ файла пишем: - Code:
-
function my_function() local obj for i=1,65534 do obj = alife():object(i) if obj and obj:name() == "mil_freedom_member0005" then alife():release(obj) break end end alife():create(7625) end 2. Находим: - Code:
-
-- OGSE Team off elseif dik == DIK_keys.DIK_Q then self:OnMessageQuitWin() сразу под эти строки вставляем: - Code:
-
elseif db.actor ~= nil and dik == DIK_keys.DIK_I then my_function() Сохраняем наши изменения и грузим сейв. После загрузки поочерёдно жмём сочетание клавиш "Esc"--"I"--"Esc" и идём отдавать часовому антизомбин. DIK_keys.DIK_I - клавиша "I" приводящая в исполнение нашу функцию "my_function()". Клавишу можно назначить любую. Ещё пример: - Code:
-
alife():create("секция из spawn_section.ltx",vector():set(x,y,z),lv,gv) где - Code:
-
local obj = alife():create("puzir_crest",vector():set(135.108261108398,-4.82400608062744,19.7076988220215),36702,1237) -- спавн Креста в Баре на месте Осведомителя. set(x,y,z) - position, lv,gv - level_vertex_id и game_vertex_id Если написать - Code:
-
local obj = alife():create("puzir_crest",vector():set(-41.0699081420898,-0.0368323624134064,-142.238632202148),154276,2882) тогда Крест заспавнится там где он должен быть (забыл как называется локация). - Крест из all.spawn:
[14202] ; cse_abstract properties section_name = stalker_sakharov name = puzir_crest position = -41.0699081420898,-0.0368323624134064,-142.238632202148 direction = -0.215341046452522,0,0.976538896560669
; cse_alife_trader_abstract properties money = 4330 character_profile = puzir_crest
; cse_alife_object properties game_vertex_id = 2882 distance = 6.5 level_vertex_id = 154276 object_flags = 0xfffffff7 custom_data = <<END [smart_terrains] none = true
[logic] active = walker danger = danger_ignore meet = meet
[walker] path_walk = puzir_crest_walk path_look = puzir_crest_look def_state_standing = ward on_info = {+p_started_q} kamp
[kamp] center_point = crest_camp_center path_walk = crest_camp_center_task radius = 2.2
[danger_ignore] ignore_distance = 5
[meet] use = true use_wpn = true meet_talk_enabled = true END story_id = 9970
; cse_visual properties visual_name = new\tolstyak
; cse_alife_creature_abstract properties g_team = 0 g_squad = 5 g_group = 4 health = 2 dynamic_out_restrictions = dynamic_in_restrictions =
upd:health = 2 upd:timestamp = 0 upd:creature_flags = 0 upd:position = -41.0699081420898,-0.0368323624134064,-142.238632202148 upd:o_model = 0 upd:o_torso = -0.215341046452522,0,0.976538896560669 upd:g_team = 0 upd:g_squad = 5 upd:g_group = 4
; cse_alife_monster_abstract properties
upd:next_game_vertex_id = 65535 upd:prev_game_vertex_id = 65535 upd:distance_from_point = 0 upd:distance_to_point = 0
; cse_alife_human_abstract properties predicate5 = 1,0,0,2,0 predicate4 = 2,2,1,2
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
P.S. Есть масса других способов переспавна, но это зависит от индивидуальной ситуации и персонажа. Надеюсь написал понятно и доступно. Всем удачи. Берегите себя. |
|
kam!k@z-warRioR Admin & Moddeur
Messages : 2281 Date d'inscription : 20/04/2011 Localisation : Vent Du Nord
| Sujet: Re: Скриптовый спавн НПС. Mar 26 Jan 2016, 00:38 | |
| -- спавн Креста в Баре на месте Осведомителя. set(x,y,z) - position, lv,gv - level_vertex_id и game_vertex_idIntéressant MERCI Эсминец Les questions viendront sûrement après avoir appliqué la méthode que tu as décris ci-dessus |
|
boutch71 Fondateur et Admin
Messages : 1672 Date d'inscription : 25/03/2011 Age : 53 Localisation : Panneau De Control du Réacteur!
| Sujet: Re: Скриптовый спавн НПС. Mer 03 Fév 2016, 04:54 | |
| kam!k@z-warRioR
Il serais préférable pour notre ami russe d'utiliser une écriture en français si possible car le site a surtout été conçu pour publier les commentaires qu'en français.
Je ne vais pas modérer ce post ça ne seras pas nécessaire mais, au moin faire un effort pour publier les prochains messages en français.
Il en est de même pour moi quand je publie un message sur le site AMK Team (un site entièrement russe) je m'efforce de publier mes commentaires en russe même si j'utilise un traducteur je fait au moin l'effort pour que mes messages soit compréhensif.
Si on laissez tout le monde publier dans leurs langues d'origine on as pas finie de traduire et ça devient très vite embêtant pour les autres membres du forum tu comprend?
Merci de bien vouloir respecter cette règle j'espère seulement ne pas être trop exigeant!
Cordialement Boutch71 |
|
Contenu sponsorisé
| Sujet: Re: Скриптовый спавн НПС. | |
| |
|