CoP. Создание быстрых телепортов Всем привет. В этой теме я покажу, как заспавнить телепорт в ЗП. Так как я создаю свой мод, то решил создать там серии из телепортов. Но как же это сделать? Да очень просто!
Содержание [убрать]
1 Координаты
2 all.spawn
3 Логика телепорта
4 Автор
[править]
Координаты
Что нужно сделать, чтобы получить координаты мест для телепортов. Открываем 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
Обсудить статью всегда можно на странице обсуждения.