CoP. Создание быстрых телепортов — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→Автор) |
FantomICW (обсуждение | вклад) |
||
(не показаны 7 промежуточные версии 5 участников) | |||
Строка 1: | Строка 1: | ||
Всем привет. В этой теме я покажу, как заспавнить телепорт в ЗП. | Всем привет. В этой теме я покажу, как заспавнить телепорт в ЗП. | ||
Так как я создаю свой мод, то решил создать там серии из телепортов. Но как же это сделать? Да очень просто! | Так как я создаю свой мод, то решил создать там серии из телепортов. Но как же это сделать? Да очень просто! | ||
+ | |||
+ | |||
===Координаты=== | ===Координаты=== | ||
+ | |||
Что нужно сделать, чтобы получить координаты мест для телепортов. | Что нужно сделать, чтобы получить координаты мест для телепортов. | ||
Открываем '''ui_main_menu.script''' и находим следующие строки: | Открываем '''ui_main_menu.script''' и находим следующие строки: | ||
Строка 10: | Строка 13: | ||
end | end | ||
</lua> | </lua> | ||
+ | |||
изменяем их: | изменяем их: | ||
+ | |||
<lua> | <lua> | ||
if dik == DIK_keys.DIK_Q then | if dik == DIK_keys.DIK_Q then | ||
Строка 20: | Строка 25: | ||
И в конец файла, т.е. после функции | И в конец файла, т.е. после функции | ||
+ | |||
<lua> | <lua> | ||
function main_menu:OnMenuReloaded() | function main_menu:OnMenuReloaded() | ||
Строка 26: | Строка 32: | ||
end | end | ||
</lua> | </lua> | ||
+ | |||
вставляем | вставляем | ||
+ | |||
<lua> | <lua> | ||
function main_menu:position_info() | function main_menu:position_info() | ||
Строка 36: | Строка 44: | ||
end | end | ||
</lua> | </lua> | ||
+ | |||
и сохраняем. | и сохраняем. | ||
− | Заходим в игру, добегаем до места, где бы хотели видеть телепорт, выходим в меню, и в жмём на '''W''', потом возвращаемся в игру и делаем скриншот клавишей '''F12'''. | + | Заходим в игру, добегаем до места, где бы хотели видеть телепорт, выходим в меню, и в жмём на '''W''', потом возвращаемся в игру и делаем скриншот клавишей '''F12'''. Потом добегаем до места, куда бы вас должен перенести телепорт и опять делаем скрин. |
− | Потом добегаем до места, куда бы вас должен перенести телепорт и опять делаем скрин. | + | |
===all.spawn=== | ===all.spawn=== | ||
Строка 45: | Строка 53: | ||
Открываем файл '''alife_zaton.ltx''' из декомпилированного '''all.spawn''' и в конце добавляем: | Открываем файл '''alife_zaton.ltx''' из декомпилированного '''all.spawn''' и в конце добавляем: | ||
− | + | <ini> | |
− | + | [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 | |
+ | </ini> | ||
Потом открываем '''way_zaton.ltx''' и пишем: | Потом открываем '''way_zaton.ltx''' и пишем: | ||
− | + | <ini> | |
− | + | [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 | ||
+ | </ini> | ||
Сохраняем, компилируем '''all.spawn'''. | Сохраняем, компилируем '''all.spawn'''. | ||
Строка 114: | Строка 126: | ||
===Логика телепорта=== | ===Логика телепорта=== | ||
− | Теперь создадим файл логики, назовем его '''test_teleport.ltx''', кинем в | + | Теперь создадим файл логики, назовем его '''test_teleport.ltx''', кинем в ''gamedata\configs\scripts\zaton\'' и пропишем в нём следующее: |
− | + | <ini> | |
− | + | [logic] | |
− | + | active = sr_teleport | |
− | + | ; | |
− | + | [sr_teleport] | |
− | + | point1 = test_teleport_walk ;имя секции телепорта в way_zaton.ltx | |
+ | look1 = zat_b20_quest_teleport_look | ||
+ | </ini> | ||
Всё, сохраняем. | Всё, сохраняем. | ||
Строка 129: | Строка 143: | ||
===Автор=== | ===Автор=== | ||
'''AmiKus''' | '''AmiKus''' | ||
+ | |||
+ | Обсудить статью всегда можно на [[Обсуждение:Создание_быстрых_телепортов_в_ЗП|странице обсуждения]]. | ||
[[Категория:Конфигурационные_файлы]] | [[Категория:Конфигурационные_файлы]] | ||
− |
Текущая версия на 13:52, 14 сентября 2016
Всем привет. В этой теме я покажу, как заспавнить телепорт в ЗП. Так как я создаю свой мод, то решил создать там серии из телепортов. Но как же это сделать? Да очень просто!
Содержание
Координаты
Что нужно сделать, чтобы получить координаты мест для телепортов. Открываем 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
Обсудить статью всегда можно на странице обсуждения.