CoP. Создание быстрых телепортов — S.T.A.L.K.E.R. Inside Wiki

CoP. Создание быстрых телепортов

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Всем привет. В этой теме я покажу, как заспавнить телепорт в ЗП. Так как я создаю свой мод, то решил создать там серии из телепортов. Но как же это сделать? Да очень просто!


Координаты

Что нужно сделать, чтобы получить координаты мест для телепортов. Открываем ui_main_menu.script и находим следующие строки:

 
	if dik == DIK_keys.DIK_Q then
		self:OnMessageQuitWin()
	end
 

изменяем их:

 
        if dik == DIK_keys.DIK_Q then
                self:OnMessageQuitWin()
                elseif dik==DIK_keys.DIK_W then
                self:position_info()
        end
 

И в конец файла, т.е. после функции

 
function main_menu:OnMenuReloaded()
	self:OnButton_options_clicked()
	self.opt_dlg:OnMenuReloaded()
end
 

вставляем

 
function main_menu:position_info()
        local a = db.actor:position()
        local vid = db.actor:level_vertex_id()
        local gvid = db.actor:game_vertex_id()
        local text = "GPS:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid
        news_manager.send_tip(db.actor, text, nil, nil, 30000)
end
 

и сохраняем.

Заходим в игру, добегаем до места, где бы хотели видеть телепорт, выходим в меню, и в жмём на W, потом возвращаемся в игру и делаем скриншот клавишей F12. Потом добегаем до места, куда бы вас должен перенести телепорт и опять делаем скрин.

all.spawn

Открываем файл alife_zaton.ltx из декомпилированного all.spawn и в конце добавляем:

 
[6464] ;обозначает место, где находится телепорт
; cse_abstract properties
section_name = space_restrictor
name = zat_b20_teleport
position = 265.378784,18.411567,526.151062
direction = 0,0,0
;
; cse_alife_object properties
game_vertex_id = 287
distance = 0
level_vertex_id = 1420994
object_flags = 0xffffff3e
custom_data = <<END
[logic]
cfg = scripts\zaton\test_teleport.ltx
END
;
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 4.24460601806641
;
; cse_alife_space_restrictor properties
restrictor_type = 3
 
[6465] ;просто визуал телепорта. т.к сам телепорт невидим, этот визуал его покажет
; cse_abstract properties
section_name = zone_teleport
name = zat_b20_teleport_horiz
position = 265.378784,18.411567,526.151062
direction = 0,0,0
;
; cse_alife_object properties
game_vertex_id = 287
distance = 49
level_vertex_id = 1420994
object_flags = 0xffffff3e
;
; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 5.5254921913147
;
; cse_alife_space_restrictor properties
restrictor_type = 3
;
; cse_alife_custom_zone properties
max_power = 0
;
; cse_alife_anomalous_zone properties
offline_interactive_radius = 30
artefact_spawn_count = 32
artefact_position_offset = 0x1ac0
 

Потом открываем way_zaton.ltx и пишем:

 
[test_teleport_walk] ;телепортирует в нужное место
points = p0
p0:name = wp00
p0:position = 113.948539,-7.351358,185.813888
p0:game_vertex_id = 316
p0:level_vertex_id = 1162410
 

Сохраняем, компилируем all.spawn.

Логика телепорта

Теперь создадим файл логики, назовем его test_teleport.ltx, кинем в gamedata\configs\scripts\zaton\ и пропишем в нём следующее:

 
[logic]
active = sr_teleport
;
[sr_teleport]
point1 = test_teleport_walk  ;имя секции телепорта в way_zaton.ltx
look1 = zat_b20_quest_teleport_look
 

Всё, сохраняем.

Заходим в игру, загружаемся... И видим -- неподалёку от вас светится телепорт, прыгаем в него и он вас во мгновение ока преносит на Скадовск.

Автор

AmiKus

Обсудить статью всегда можно на странице обсуждения.

Другие места
LANGUAGE