Спавн мертвого НПС без функций AMK — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(→1 способ. Спавн НПС и убийство функцией) |
(→2 способ. Спавн НПС и нанесение хита (НПС станет врагом ГГ посмертно)) |
||
| (не показана 1 промежуточная версия 1 участника) | |||
| Строка 16: | Строка 16: | ||
end | end | ||
) | ) | ||
| + | end | ||
</lua> | </lua> | ||
| Строка 22: | Строка 23: | ||
== 2 способ. Спавн НПС и нанесение хита (НПС станет врагом ГГ посмертно) == | == 2 способ. Спавн НПС и нанесение хита (НПС станет врагом ГГ посмертно) == | ||
<lua> | <lua> | ||
| − | function spawn_killed_npc( | + | function spawn_killed_npc() |
| − | local npc = alife():create(" | + | local npc = alife():create("секция спавна", vector():set(x, y, z), lvid, gvid) |
| − | + | level.add_call( | |
| − | local h = hit() | + | function() |
| − | h.direction = vector():set( 1, 0, 0 ) | + | if s_obj.online then |
| − | h.impulse = 0 | + | return true |
| − | h.draftsman = db.actor | + | end |
| − | h.power = 100 | + | end, |
| − | h.type = hit.telepatic | + | function() |
| − | + | local h = hit() | |
| − | news_manager.send_tip(db.actor, | + | h.direction = vector():set( 1, 0, 0 ) |
| + | h.impulse = 0 | ||
| + | h.draftsman = db.actor | ||
| + | h.power = 100 | ||
| + | h.type = hit.telepatic | ||
| + | level.object_by_id( s_obj.id ):hit(h) | ||
| + | |||
| + | -- без хитов shock и wound NPC не умрет | ||
| + | h.power = 100 | ||
| + | h.type = hit.shock | ||
| + | level.object_by_id( s_obj.id ):hit(h) | ||
| + | h.power = 100 | ||
| + | h.type = hit.wound | ||
| + | level.object_by_id( s_obj.id ):hit(h) | ||
| + | |||
| + | news_manager.send_tip(db.actor, "Погиб сталкер, пси-атака", nil, nil, 30000) | ||
| + | end | ||
| + | ) | ||
end | end | ||
</lua> | </lua> | ||
| − | |||
| − | |||
| − | |||
| − | |||
Текущая версия на 11:39, 7 июля 2015
1 способ. Спавн НПС и убийство функцией
function spawn_killed_npc() local se_obj = alife():create("секция спавна", vector():set(x, y, z), lvid, gvid) -- спавним и получаем серверный объект level.add_call( function() if se_obj.online then return true end end, function() level.object_by_id( se_obj.id ):kill( level.object_by_id( s_obj.id ) ) -- убиваем клиентский объект -- отправляем сообщение о гибели сталкера news_manager.send_tip(db.actor, "Погиб сталкер, ЧАЭС, выброс", nil, nil, 30000) end ) end
НПС не становится нам врагом, а мгновенно погибает.
2 способ. Спавн НПС и нанесение хита (НПС станет врагом ГГ посмертно)
function spawn_killed_npc() local npc = alife():create("секция спавна", vector():set(x, y, z), lvid, gvid) level.add_call( function() if s_obj.online then return true end end, function() local h = hit() h.direction = vector():set( 1, 0, 0 ) h.impulse = 0 h.draftsman = db.actor h.power = 100 h.type = hit.telepatic level.object_by_id( s_obj.id ):hit(h) -- без хитов shock и wound NPC не умрет h.power = 100 h.type = hit.shock level.object_by_id( s_obj.id ):hit(h) h.power = 100 h.type = hit.wound level.object_by_id( s_obj.id ):hit(h) news_manager.send_tip(db.actor, "Погиб сталкер, пси-атака", nil, nil, 30000) end ) end