Space restrictor — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Строка 5: | Строка 5: | ||
в самом конце допишем: | в самом конце допишем: | ||
− | [2145] | + | [2145]<br /> |
− | ; cse_abstract properties | + | ; cse_abstract properties<br /> |
− | section_name = space_restrictor | + | section_name = space_restrictor<br /> |
− | name = sgm_kvest | + | name = sgm_kvest<br /> |
− | position = 41.297409057617,0.44233170151711,-299.86953735352 | + | position = 41.297409057617,0.44233170151711,-299.86953735352<br /> |
− | direction = 0,0,0 | + | direction = 0,0,0<br /> |
+ | <br /> | ||
+ | ; cse_alife_object properties<br /> | ||
+ | game_vertex_id = 253<br /> | ||
+ | distance = 0<br /> | ||
+ | level_vertex_id = 214760<br /> | ||
+ | object_flags = 0xffffff3e<br /> | ||
+ | custom_data = <<END<br /> | ||
+ | [logic]<br /> | ||
+ | active = sr_idle<br /> | ||
+ | <br /> | ||
+ | [sr_idle]<br /> | ||
+ | on_actor_inside = %+story_sgm_kvest2_3%<br /> | ||
+ | <br /> | ||
+ | END<br /> | ||
− | ; | + | ; cse_shape properties<br /> |
− | + | shapes = shape0<br /> | |
− | + | shape0:type = box<br /> | |
− | + | shape0:axis_x = 6.5,0,0<br /> | |
− | + | shape0:axis_y = 0,6.5,0<br /> | |
− | + | shape0:axis_z = 0,0,6.5<br /> | |
− | + | shape0:offset = 0,0,0<br /> | |
− | + | <br /> | |
− | + | ; cse_alife_space_restrictor properties<br /> | |
− | + | restrictor_type = 3<br /> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | shapes = shape0 | + | |
− | shape0:type = box | + | |
− | shape0:axis_x = 6.5,0,0 | + | |
− | shape0:axis_y = 0,6.5,0 | + | |
− | shape0:axis_z = 0,0,6.5 | + | |
− | shape0:offset = 0,0,0 | + | |
− | + | ||
− | ; cse_alife_space_restrictor properties | + | |
− | restrictor_type = 3 | + | |
---------------------------------------------------------- | ---------------------------------------------------------- | ||
− | где: | + | где: <br /> |
− | [2145] - порядковый номер; | + | [2145] - порядковый номер;<br /> |
− | section_name = space_restrictor - имя секции(HаM надо space_restrictor); | + | section_name = space_restrictor - имя секции(HаM надо space_restrictor);<br /> |
− | name = svalka_prikol - имя(задаём любое); | + | name = svalka_prikol - имя(задаём любое);<br /> |
− | position = - позици(место где будем спавнить его); | + | position = - позици(место где будем спавнить его);<br /> |
− | direction = - поворот рестриктра(не трогаем..); | + | direction = - поворот рестриктра(не трогаем..);<br /> |
− | game_vertex_id = гейм вертекс; | + | game_vertex_id = гейм вертекс;<br /> |
− | level_vertex_id = - левел вертекс; | + | level_vertex_id = - левел вертекс;<br /> |
---------------------------------------------------------- | ---------------------------------------------------------- | ||
− | Примечание: | + | Примечание:<br /> |
− | координаты спавна, game_vertex_id и level_vertex_id можно получить с помощью функции: | + | координаты спавна, game_vertex_id и level_vertex_id можно получить с помощью функции:<br /> |
− | + | <br /> | |
− | function main_menu:OnButton_credits_clicked() | + | function main_menu:OnButton_credits_clicked() <br /> |
− | local text | + | local text <br /> |
− | local vid | + | local vid <br /> |
− | local gvid | + | local gvid <br /> |
− | local a = vector() | + | local a = vector() <br /> |
− | local text | + | local text <br /> |
− | a = db.actor:position() | + | a = db.actor:position() <br /> |
− | vid = db.actor:level_vertex_id() | + | vid = db.actor:level_vertex_id() <br /> |
gvid = db.actor:game_vertex_id() | gvid = db.actor:game_vertex_id() | ||
− | text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid | + | text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid <br /> |
− | news_manager.send_tip(db.actor, text, nil, nil, 30000) | + | news_manager.send_tip(db.actor, text, nil, nil, 30000) <br /> |
− | end | + | end<br /> |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
+ | просто допишите её в ui_main_menu.script,в самом конце.<br /> | ||
+ | ----------------------------------------------------------<br /> | ||
+ | object_flags = не трогаем (оставим 0xffffff3e)<br /> | ||
+ | custom_data = не трогаем (тоесть оставляем <<END )<br /> | ||
+ | ----------------------------------------------------------<br /> | ||
+ | теперь логика для рестриктра:<br /> | ||
+ | <br /> | ||
+ | [logic]<br /> | ||
+ | active = sr_idle<br /> | ||
+ | <br /> | ||
[sr_idle] | [sr_idle] | ||
− | on_actor_inside = %+имя инфопоршня% | + | on_actor_inside = %+имя инфопоршня%<br /> |
− | END | + | END<br /> |
− | + | <br /> | |
− | С такой логикой рестриктор будет выдавать ГГ инфопоршень. | + | С такой логикой рестриктор будет выдавать ГГ инфопоршень.<br /> |
---------------------------------------------------------- | ---------------------------------------------------------- | ||
− | + | <br /> | |
− | [logic] | + | [logic]<br /> |
− | + | <br /> | |
− | active = sr_idle | + | active = sr_idle<br /> |
− | + | <br /> | |
− | [sr_idle] | + | [sr_idle]<br /> |
− | on_timer = 100000| %=start_small_reject% sr_idle2 | + | on_timer = 100000| %=start_small_reject% sr_idle2<br /> |
− | + | <br /> | |
− | [sr_idle2] | + | [sr_idle2]<br /> |
− | on_timer = 100000| %=start_small_reject% sr_idle | + | on_timer = 100000| %=start_small_reject% sr_idle<br /> |
− | END | + | END<br /> |
− | + | <br /> | |
− | такая логика будет запускатькаждые 100 сек,эффекты выброса. | + | такая логика будет запускатькаждые 100 сек,эффекты выброса.<br /> |
---------------------------------------------------------- | ---------------------------------------------------------- | ||
+ | <br /> | ||
+ | [logic]<br /> | ||
+ | active = sr_idle<br /> | ||
+ | [sr_idle]<br /> | ||
+ | on_actor_inside = {=имя_инфопоршня_3 +имя_инфопоршня_2} nil %+имя_инфопоршня_1%<br /> | ||
+ | END<br /> | ||
+ | <br /> | ||
+ | {=имя_инфопоршня_3 +имя_инфопоршня_2} - это проверка(условие) что у ГГ есть нужный инфопоршень.Если есть,то рестриктор выдаст нужный инфопоршень.<br /> | ||
+ | ----------------------------------------------------------<br /> | ||
+ | Двигаем дальше.<br /> | ||
+ | shapes = тут вписываем названия шейпов<br /> | ||
+ | Пример:<br /> | ||
+ | shapes = shape0<br /> | ||
+ | <br /> | ||
+ | shape0:type = - это тип шейпа.Ставить или box,или sphere.<br /> | ||
+ | box - коробка<br /> | ||
+ | sphere - сфера<br /> | ||
− | + | shape0:axis_x = ваша цифра,0,0<br /> | |
− | + | shape0:axis_y = 0,ваша цифра,0<br /> | |
− | + | shape0:axis_z = 0,0,ваша цифра<br /> | |
− | + | - размеры шейпа.<br /> | |
− | + | <br /> | |
− | + | restrictor_type - тип рестриктра.<br /> | |
− | + | <br /> | |
− | + | я везде ставлю restrictor_type = 3,поэтому сказать не могу на что влияет значение.<br /> | |
− | + | Ну вот и всё.Думаю всё чётко и ясно.Будут вопросы обращайтесь.<br /> | |
− | + | ПС: спасибо р-09 за обьяснение некоторых моментов с логикой.<br /> | |
− | + | <br /> | |
− | + | space restrictor<br /> | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | shape0:axis_x = ваша цифра,0,0 | + | |
− | shape0:axis_y = 0,ваша цифра,0 | + | |
− | shape0:axis_z = 0,0,ваша цифра | + | |
− | - размеры шейпа. | + | |
− | + | ||
− | restrictor_type - тип рестриктра. | + | |
− | + | ||
− | я везде ставлю restrictor_type = 3,поэтому сказать не могу на что влияет значение. | + | |
− | Ну вот и всё.Думаю всё чётко и ясно.Будут вопросы обращайтесь. | + | |
− | ПС: спасибо р-09 за обьяснение некоторых моментов с логикой. | + | |
− | + | ||
− | space restrictor | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
Статью написал джЭдай,SGMTeam. | Статью написал джЭдай,SGMTeam. | ||
[Категория:Скрипты] | [Категория:Скрипты] |
Версия 13:08, 21 февраля 2010
space restrictor
значит распаковываем алл.спавн с помощью ACDC...Распаковали. Откроем,например,alife_l02_garbage.ltx. в самом конце допишем:
[2145]
- cse_abstract properties
section_name = space_restrictor
name = sgm_kvest
position = 41.297409057617,0.44233170151711,-299.86953735352
direction = 0,0,0
- cse_alife_object properties
game_vertex_id = 253
distance = 0
level_vertex_id = 214760
object_flags = 0xffffff3e
custom_data = <<END
[logic]
active = sr_idle
[sr_idle]
on_actor_inside = %+story_sgm_kvest2_3%
END
- cse_shape properties
shapes = shape0
shape0:type = box
shape0:axis_x = 6.5,0,0
shape0:axis_y = 0,6.5,0
shape0:axis_z = 0,0,6.5
shape0:offset = 0,0,0
- cse_alife_space_restrictor properties
restrictor_type = 3
где:
[2145] - порядковый номер;
section_name = space_restrictor - имя секции(HаM надо space_restrictor);
name = svalka_prikol - имя(задаём любое);
position = - позици(место где будем спавнить его);
direction = - поворот рестриктра(не трогаем..);
game_vertex_id = гейм вертекс;
level_vertex_id = - левел вертекс;
Примечание:
координаты спавна, game_vertex_id и level_vertex_id можно получить с помощью функции:
function main_menu:OnButton_credits_clicked()
local text
local vid
local gvid
local a = vector()
local text
a = db.actor:position()
vid = db.actor:level_vertex_id()
gvid = db.actor:game_vertex_id()
text = "Позиция:\\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
просто допишите её в ui_main_menu.script,в самом конце.
object_flags = не трогаем (оставим 0xffffff3e)
custom_data = не трогаем (тоесть оставляем <<END )
теперь логика для рестриктра:
[logic]
active = sr_idle
[sr_idle]
on_actor_inside = %+имя инфопоршня%
END
С такой логикой рестриктор будет выдавать ГГ инфопоршень.
[logic]
active = sr_idle
[sr_idle]
on_timer = 100000| %=start_small_reject% sr_idle2
[sr_idle2]
on_timer = 100000| %=start_small_reject% sr_idle
END
такая логика будет запускатькаждые 100 сек,эффекты выброса.
[logic]
active = sr_idle
[sr_idle]
on_actor_inside = {=имя_инфопоршня_3 +имя_инфопоршня_2} nil %+имя_инфопоршня_1%
END
{=имя_инфопоршня_3 +имя_инфопоршня_2} - это проверка(условие) что у ГГ есть нужный инфопоршень.Если есть,то рестриктор выдаст нужный инфопоршень.
Двигаем дальше.
shapes = тут вписываем названия шейпов
Пример:
shapes = shape0
shape0:type = - это тип шейпа.Ставить или box,или sphere.
box - коробка
sphere - сфера
shape0:axis_x = ваша цифра,0,0
shape0:axis_y = 0,ваша цифра,0
shape0:axis_z = 0,0,ваша цифра
- размеры шейпа.
restrictor_type - тип рестриктра.
я везде ставлю restrictor_type = 3,поэтому сказать не могу на что влияет значение.
Ну вот и всё.Думаю всё чётко и ясно.Будут вопросы обращайтесь.
ПС: спасибо р-09 за обьяснение некоторых моментов с логикой.
space restrictor
Статью написал джЭдай,SGMTeam.
[Категория:Скрипты]