Пользователей: 1
Гостей: 1444
Всего: 1445

» Подробно
» Сегодня

Привет, гость!









Автор Сообщение
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
05-10-2009 17:32 GMT3 час. #1055347   
--[[ -----------------------------------------------------------------------------------------------
File : m_effects.script [option]
Description: Визуальные эффекты
Copyright : 2008 © SIMBION:SHOC mod
Author : сборка
Last edit : 22.08.2009 (by Artos)
--]] -----------------------------------------------------------------------------------------------

--/ ------------------------------------------------------------------
--/ Settings (установка переменных окружения)
--/ ------------------------------------------------------------------
local f_module = "m_effects" --/ строковое имя файла-модуля
local flg_init = false --/ флаг инициализации модуля
--/ ------------------------------------------------------------------
--/ Print-Log (вывод отладочной информации)
--/ ------------------------------------------------------------------
function printf(fmt, ...)
db.log(f_module..":"..fmt,...)
end
--/-------------------------------------------------------------------
--/ VARIABLEs
--/-------------------------------------------------------------------
local health_sav = 1 --/ здоровье ГГ
local timer_upd10 = 1000

local flg_blood = false
local flg_pp_rad = false
local gg_kick = false
local keep_items = _f.get_ltx_section("misc\\death_generic.ltx","keep_items","true") --/ список предметов, которые нельзя удалять (квестовые например)
--/ ------------------------------------------------------------------
--/ Initialise Module (инициализация, выполняется единожды)
--/ ------------------------------------------------------------------
function init()
-- printf("init:[%s]", ">") --/#~#
--/ "шальная пуля" от АМК
gg_kick = system_ini():r_bool("gg_kick","enabled")
--register_callback("game_load", load_variables, nil)
register_callback("update", update, nil)
register_callback("npc_death", check_death, nil)
register_callback("mob_death", check_death, nil)
register_callback("timer", remove_vanish_corpse, "tmr_vpr")
register_callback("timer", remove_vanish_weapon, "tmr_vpw")
flg_init = true
end
function load_variables()
-- printf("load_variables:[%s]", ">" ) --/#~#
if not flg_init then abort(f_module..":Not_initialised!") end
end

--/-------------------------------------------------------------------
--/ коллбэк на апдейт ГГ
function update()
if timer_upd10 < time_global() then
timer_upd10 = time_global() + 1000
db.oau_reason = f_module..":update~>run"
if gg_kick then
act02_wounded_pp()
else
act01_wounded_pp()
act_rad_pp()
end
db.oau_reason = f_module..":update~>done"
end
--remove_vanish_corpse()
end

function act_rad_pp()
local actor_radiation = db.actor.radiation --/ уровень радиации у ГГ
if actor_radiation > 0.3 and not flg_pp_rad then
level.add_pp_effector("alcohol.ppe", 2013, true)
flg_pp_rad = true
elseif actor_radiation < 0.01 and flg_pp_rad then
level.remove_pp_effector(2013)
flg_pp_rad = false
end
end

--/-------------------------------------------------------------------
--/ Эффекты от критического ранения ГГ
--/-------------------------------------------------------------------
function act01_wounded_pp()
local actor = db.actor
local snd_obj = sound_object("heart\\2")
if actor.health < 0.2 then
if not flg_blood then
--level.add_pp_effector("red_fade_out.ppe", 1999, true)
level.add_pp_effector("bloody.ppe", 1999, true)
level.set_pp_effector_factor(1999, 5.0)
if not snd_obj:playing() then
snd_obj:play_at_pos(actor, actor:position(), 1, sound_object.looped)
end
flg_blood = true
elseif snd_obj:playing() then
snd_obj:set_position(actor:position())
if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
end
elseif flg_blood then
level.remove_pp_effector(1999)
if snd_obj:playing() then
snd_obj:stop()
end
flg_blood = false
end
end

--/ эффект от ранения (материалы AMK Team)
function act02_wounded_pp()
local actor = db.actor
if actor then
local health_act = actor.health
if health_act < health_sav - 0.05 then
level.add_pp_effector("shoot.ppe", 2011, false)
level.set_pp_effector_factor(2011,(health_sav - health_act)*100)
if health_act < health_sav - 0.3 then
level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")
local snd_obj = sound_object("actor\\pain_3")
snd_obj:play_no_feedback(actor, sound_object.s2d, 0, vector(), 1.0)
if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
end
end
health_sav = health_act
end
end

--/ "потеря" активного предмета
function drop_active_item()
local item = db.actor:active_item()
if item then
local section = item:section()
if section and
section ~= "bolt" and
section ~= "wpn_binoc" and --/?
section ~= "wpn_knife"
then
db.actor:drop_item(item)
end
end
end

--/-------------------------------------------------------------------
--/ Check NPC or Mob Dead (гибель непися или монстра)
--/-------------------------------------------------------------------
function check_death(uo,victim, who)
if victim and who then
if db.actor and db.actor:id() == who:id() then
local disbody = true --/ флаг -> удалять труп
if IsStalker(victim) then
if db.m_common and m_common.check_quest_npcs(victim) then --/ true => квестовый npc
disbody = false --/ труп не уничтожать!
else
local recipes = _f.load_table("amk_body_recipe")
if recipes[victim:id()] ~= nil then --/ в трупе рецепт
disbody = false --/ труп не уничтожать!
end
end
end
pp_death(victim,disbody)
end
end
end

--/-------------------------------------------------------------------
--/ "кровавые" эффекты (для некоторых типов оружия), victim=killed | who=killer
--/-------------------------------------------------------------------
function pp_death(victim,disbody)
if not (victim or db.use_blood_wpn) then return end --/>
-- printf("pp_death:name=[%s],vpr_a=[%s],vpr_с=[%s]:[%s]", victim:name(), db.vpr_a, db.vpr_с, "i" ) --/#~#
victim:kill(victim)
local wpn = db.actor:active_item()
if wpn then
local flg_blood = check_blood_weapons(wpn:section())
if flg_blood ~= nil then
-- printf("pp_death:name=[%s],flg_blood=[%s]:[%s]", victim:name(), flg_blood, "i" ) --/#~#
local flg_hum = IsStalker(victim)
if db.m_particles then
local particles = {}
particles.obj = victim
particles.bone = "bip01_spine"
--particles.pos = victim:bone_position("bip01_spine")
particles.life_time = 3000
--particles.sound = "anomaly\\anomaly_body_tear_1" --/#?# TODO: убрать зацикленное/запаздывающее "чавканье"
particles.particle = "hit_fx\\hit_flesh_headshot"
if db.vpr_a and flg_blood == true then
particles.particle = "anomaly2\\body_tear_00"
if flg_hum then
particles.bone = "bip01_head"
if math.random() < 0.33 then particles.particle = "anomaly2\\body_tear_01" end
end
if disbody and db.vpr_c then
add_to_vanish_table(victim) --/ добавляем в таблицу "испаряемых" трупов
else
db.vns[victim:id()] = nil --/страховка
end
end
m_particles.proceed(particles)
end
--
local pos = victim:position()
--pos = vector():set(victim_pos.x, victim_pos.y + 1, victim_pos.z)
local snd_obj = xr_sound.get_safe_sound_object("anomaly\\anomaly_body_tear_1")
snd_obj:play_no_feedback(victim, sound_object.s2d, 0, pos, (flg_hum and 2.0) or 1.0)
--
end
end
end

--/ проверка оружия на 'кровавость' и на 'разрыв' #~#
function check_blood_weapons(wpn_name)
local name = wpn_name
if name == "wpn_sgauss" or
name == "wpn_gauss_m4" or
name == "wpn_vintorez_m4"
then
return true
elseif (
string.find(name, "knife") or
string.find(name, "bm16") or
string.find(name, "spas12") or
string.find(name, "toz34") or
string.find(name, "winchester") or
string.find(name, "fn2000") or
string.find(name, "svd") or
--string.find(name, "_val") or
string.find(name, "vintorez") or
string.find(name, "gauss")
) then
return false
end
return nil
end

----------------------------------------------------------------------------------------------------
--/ Удаление "испаряемых/исчезающих" трупов/оружия (режимы: vaporize & vanish)
----------------------------------------------------------------------------------------------------
--/ добавляем труп (id, время смерти) в id-массив "испаряемых" трупов
function add_to_vanish_table(victim)
local oid = victim:id()
db.vns[oid] = {}
local d_time = 150
if IsStalker(victim) then
d_time = 750 --/ delta-time for stalkers
db.vns[oid].removed = true --/ флаг удаления тела
end
if db.vpr_w then --/ добавляем испаряемое оружие
local active_item = victim:active_item() --/ активный предмет
if active_item and isWeapon(active_item) then --/ если разрешено 'испарение' оружия
local wid = active_item:id()
local sobj = alife():object(wid)
if sobj then
-- printf("add_to_vanish_table:victim=[%s]~>wpn=[%s]:[%s]", victim:name(), active_item:name(), "!") --/#~#
db.vns[oid].wid = wid
sobj.parent_id = 65535 --/ делаем оружие бесхозным
end
end
end
--db.vns[oid].obj = victim --/#?# нужна ли?
start_rt("tmr_vpr",d_time*0.001,oid) --/ запуск таймера [name, time(sec), params]
-- printf("add_to_vanish_table:obj_id=[%s],name=[%s],d_time=[%s]:[%s]", oid, victim:name(), d_time, "+") --/#~#
end

function remove_vanish_corpse(uo,timer_name,params)
if not (uo and uo == timer_name and params) then return end --/>
db.oau_reason = f_module..":remove_vanish_corpse~>run"
local oid = tonumber(params)
local o = db.vns[oid]
if o then
local corpse = level.object_by_id(oid) --/ game_object
local se_obj = alife():object(oid) --/ server_object
-- printf("remove_vanish_corpse:corpse=[%s]~>check_remove:[%s]", corpse and corpse:name(), ">") --/#~#
if not (corpse and se_obj) then
printf("remove_vanish_corpse:id=[%s]~>break,Not_subj:<%s>", oid, "Warning!") --/#~#
db.vns[oid] = nil
db.oau_reason = f_module..":remove_vanish_corpse~>break"
return true --/>
end
--/ проверка разрешения ударения трупа сталкера
if o.removed ~= nil then
if o.removed == true then
--/ проверка наличия в трупе рецепта
local recipes = _f.load_table("amk_body_recipe")
local info = recipes[oid]
if info then --/ в трупе рецепт
o.removed = false --/ ставим флаг НЕудаления
else --/ проверка наличия в трупе НЕудяляемых (квестовых) предметов
corpse:iterate_inventory( function (dummy, item)
if keep_items[item:section()] == true then --/ предмет в списке НЕудаляемых
printf("remove_vanish_corpse:corpse=[%s]<~quest_item=[%s]:<%s>", corpse:name(), item:section(), "!") --/#~#
o.removed = false --/ ставим флаг НЕудаления
return
end
end, corpse)
end
end
if not o.removed then
table.remove(db.vns, oid)
db.oau_reason = f_module..":remove_vanish_corpse~>stop"
return true --/>
end
end
-- printf("remove_vanish_corpse:id=[%s],corpse=[%s]:[%s]", oid, corpse:name(), ">>") --/#~#
local bpos = corpse:bone_position("bip01_spine")
local skelet = _f.spawn_obj("breakable_object", bpos, corpse:level_vertex_id(), corpse:game_vertex_id())
if skelet and db.wrpk then
local tbl = m_net_utils.get_breakable_data(skelet)
local visual = "torso"
if math.random() < 0.7 then
if o.removed then --/ IsStalker(corpse) <- сталкер
visual = "combine_pose_0"..tostring(math.random(3,5))
--else
--visual = "crash_monster"
end
end
tbl.visual = "physics\\dead_body\\skelet_"..visual
-- printf("remove_vanish_corpse:id=[%s],visual=[%s]:[%s]", oid, tbl.visual, "i") --/#~#
local flg = m_net_utils.set_breakable_data(tbl,skelet)
if not flg then
printf("remove_vanish_corpse:id=[%s],corpse=[%s]<~set_breakable_data:<%s>", oid, corpse:name(), "Warning!")
end
register_callback("timer", hit_skelet, "tmr_vph")
start_rt("tmr_vph",0.5,tostring(0)..tostring(skelet.id))
end
printf("remove_vanish_corpse:id=[%s],corpse=[%s],vpr_w=[%s],wid=[%s]:[%s]", oid, corpse:name(), db.vpr_w, o.wid, "XoX") --/#~#
_f.remove_spot_from_map(oid, "deadbody_mini_spot") --/ #?#
level.remove_calls_for_object(se_obj) --/#~#
alife():release(se_obj, true)
if db.vpr_w and o.wid then --/ есть оружие
start_rt("tmr_vpw",0.1,tostring(0)..tostring(o.wid)) --/ запуск таймера удаления оружия [name, time(sec), params]
end
table.remove(db.vns, oid)
db.oau_reason = f_module..":remove_vanish_corpse~>removed"

else
db.vns[oid] = nil
printf("remove_vanish_corpse:id=[%s]<~NOT_in_tbl:<%s>", oid, "Warning!") --/#~#
end
db.oau_reason = f_module..":remove_vanish_corpse~>done"
return true
end

function hit_skelet(uo,timer_name,params)
if not (uo and uo == timer_name and params) then return end --/>
local cnt = tonumber(string.sub(params,1,1)) --/ счетчик попыток
if cnt and cnt < 3 then
local oid = tonumber(string.sub(params,2,20))
local obj = level.object_by_id(oid)
if obj then
-- printf("hit_skelet:id=[%s],cnt=[%s]:[%s]", oid, cnt, "i") --/#~#
local h = hit()
h.draftsman = db.actor
h.direction = vector():set(0,-1,0)
h.power = 1
h.impulse = 10
h.type = hit.fire_wound
obj:hit(h) --/ прикладываем небольшую силу (on_the_ground)
unregister_callback("timer", hit_skelet)
else
start_rt("tmr_vph",0.25,tostring(cnt+1)..tostring(oid)) --/ повтор
printf("hit_skelet:id=[%s]<~NOT_obj:[%s]", oid, "i") --/#~#
end
else
unregister_callback("timer", hit_skelet)
end
return true
end

function remove_vanish_weapon(uo,timer_name,params)
if not (uo and uo == timer_name and params) then return end --/>
local cnt = tonumber(string.sub(params,1,1)) --/ счетчик попыток удаления ствола
if cnt and cnt < 5 then
local oid = tonumber(string.sub(params,2,20))
local sobj = alife():object(oid)
if sobj then
if sobj.parent_id and sobj.parent_id == 65535 then --/ ствол бесхозный
-- printf("remove_vanish_weapon:id=[%s],name=[%s],p_id=[%s],cnt=[%s]:[%s]", oid, sobj:name(), sobj.parent_id, cnt, "XwX" ) --/#~#
alife():release(sobj, true) --/ удаляем ствол из игры
else
sobj.parent_id = 65535 --/ делаем оружие бесхозным
-- printf("remove_vanish_weapon:id=[%s],name=[%s],cnt=[%s]:[%s]", oid, sobj:name(), cnt, ">+" ) --/#~#
start_rt("tmr_vpw",0.1,tostring(cnt+1)..tostring(oid)) --/ перезапуск таймера удаления оружия
end
else
printf("remove_vanish_weapon:cnt=[%s],id=[%s]<~NOT_obj:<%s>", cnt, oid, "Warning!" )
end
else
printf("remove_vanish_weapon:cnt=[%s],params=[%s]:<%s>", cnt, params, "Warning!" )
end
return true
end
----------------------------------------------------------------------------------------------------


добавлено спустя 31 секунд

Вот файл симбиона

добавлено спустя 36 секунд

а да анимку перепутал=)

добавлено спустя 1 минуту

КАК мне из этого файла взять постеффекты и активировать их?

отредактировал(а) Николай ФеНиКс: 05-10-2009 17:35 GMT3 час.

Struck
    
Посты: 1946
Откуда:
Возраст:
05-10-2009 17:35 GMT3 час. #1055352   
Николай ФеНиКс строки начинающиеся с local ставь над строкой function act01_wounded_pp()


Снова в строю.

l
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
05-10-2009 17:38 GMT3 час. #1055358   
и всё?


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
05-10-2009 17:38 GMT3 час. #1055363   
функция для убийства эктора

function kill(npc, actor)
npc:kill(actor)
end
экшен ставить надо вроде на фразу непися.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
05-10-2009 17:42 GMT3 час. #1055370   
всеравно вылет поставил во всех функциях локал над функциями и вылет.


erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
05-10-2009 17:57 GMT3 час. #1055400   
Николай ФеНиКс
а над всеми то зачем?
надо тока в одном месте - в самом верху файла.


у меня кстати другая версия файла симбиона - старая - в твоей немного все подругому.

отредактировал(а) erlik: 05-10-2009 18:02 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
05-10-2009 18:00 GMT3 час. #1055410   
как это?
Дак из какой функции-то?


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
05-10-2009 18:00 GMT3 час. #1055412   
erlik А можно и так:

function kill(obj1, obj2)
local actor = db.actor
if obj1 == actor then
obj2:kill(actor)
else
obj1:kill(actor)
end
end


И экшн можно будет ставить на любую фразу, не зависимо от того, к кому она относится.


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
05-10-2009 18:01 GMT3 час. #1055414   
блин чё-то я теперь туплю...
Из какой функции то локал выписывать вверх?
и какие локал выписывать?
которые у меня не задействованы только или те и другие?


-DxD-
    
Посты: 13
Откуда:
Возраст:
05-10-2009 18:22 GMT3 час. #1055445   
Как сделать проверку на то,чт**50016ea8aab1bb10eeba**_info_portion("npc_die")
end
end[/code]
Не кактит..Вылет с логом - функция имеет нулевое значение..


Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
05-10-2009 18:23 GMT3 час. #1055447   
За что отвечает crouch_type в профиле НПС?

добавлено спустя 10 минут

Скажите, такой профил НПС подойдёт?



stalker_men'
ui_npc_u_green_stalker_8
stalker_men_bio

esc_dark_stalker_01
stalker

593
0


characters_voice\human_01\monolith\
-1

actors\novice\green_stalker_8

[spawn] \n
wpn_pm \n
ammo_9x18_fmj = 1 \n
wpn_mp5 \n
ammo_9x19_fmj = 1 \n
device_torch \n
#include "gameplay\character_drugs.xml" \n
#include "gameplay\character_food.xml"


#include "gameplay\character_criticals_4.xml"


Да и как вставить диалоги обычных сталкеров этому НПС

отредактировал(а) Сталкер Монолита: 05-10-2009 18:33 GMT3 час.

И все мы ждем чего-то. Работа - дом - работа ©
singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
05-10-2009 18:54 GMT3 час. #1055495   
-DxD- Естественно. Определение здоровья серверного нпс, производится через функцию, а не через переменную. Типа так: npc:health() Но лучше определять, жив ли он:

local sobj = alife():object("yan_ecolog_help")
if sobj and not sobj:alive() then
--твои действия
end


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
-DxD-
    
Посты: 13
Откуда:
Возраст:
05-10-2009 18:59 GMT3 час. #1055502   
singapur22
ясно,спасибо..
видимо ещё учить и учить мне луа..:-(

---
в lua_help.script..кхем..не глядел..:roulette

отредактировал(а) -DxD-: 05-10-2009 19:08 GMT3 час.

[H.O.Y]
    
Посты: 158
Откуда: Москва
Возраст:
05-10-2009 18:59 GMT3 час. #1055503   
Народ я делаю все как вы говорили спавнил с помощью скриптов но все нпс исчезали кроме тех что в лагере новичков помогите. И еще кто здесь может обучить скриптам если обучите нормально заплачу 150рублей ?


singapur22
    
Посты: 2089
Откуда: Рубцовск
Возраст: 45
05-10-2009 19:02 GMT3 час. #1055508   
-DxD- Это относится не к языку Луа, а к методам прописанным в файле lua_help.script


Проект "Mobile Manager" закрыт, в связи со стечениями неблагоприятных обстоятельств, и последующей потерей всех файлов и справок текущего проекта.
dan8
    
Посты: 500
Откуда: ventspils
Возраст: 30
05-10-2009 19:09 GMT3 час. #1055519   
а как сделать чтобы бандндиты были токо на нии арпогроме


Все ,что то пишут в своих подписях а я возьму и не НАПИШУ!!!
Psychologist
    
Посты: 1806
Откуда: Челябинск
Возраст: 28
05-10-2009 19:12 GMT3 час. #1055527   
dan8 Пользоватся спавнером. Удалить или переспавнить их.

добавлено спустя 36 секунд

P.S.: что там насчёт моего профиля НПС?

отредактировал(а) Сталкер Монолита: 05-10-2009 19:13 GMT3 час.

И все мы ждем чего-то. Работа - дом - работа ©
[H.O.Y]
    
Посты: 158
Откуда: Москва
Возраст:
05-10-2009 19:36 GMT3 час. #1055560   
Дан 8 можно просто переименовать все комьюнити в каком то файле из character desc тока надо найти этот файл с этой локацией.


Struck
    
Посты: 1946
Откуда:
Возраст:
05-10-2009 20:36 GMT3 час. #1055665   
dan8 поясню более подробно, находиш этот файл character_desc_agroprom.xml по этому пути gamedata\config\gameplay, открываешь и находишь конструкцию такова типа

GENERATE_NAME_stalker
ui_npc_u_stalker_neytral_rukzak_2

sim_stalker_general_bio

agr_Stalker_general
stalker stalker_terrain

482
18


actors\neytral\stalker_neytral_rukzak_2
characters_voice\human_01\stalker\
-1


[spawn] \n
wpn_mp5 \n
ammo_9x19_pbp \n
device_torch \n
#include "gameplay\character_drugs.xml" \n
#include "gameplay\character_food.xml"


#include "gameplay\character_criticals_4.xml"

#include "gameplay\add\character_dialogs_agr_stalker_general_3.xml"
#include "gameplay\character_dialogs.xml"


И вот эту строчку stalker меняеш на bandit

добавлено спустя 1 минуту

Забыл добавить, гурппировку меняеш у всех однотипных конструкций, квестовых персонажей советую нетрогать(если конешно новый сюжет не пишеш) но по твоим постам думаю ты его пока ещё не пишеш)

отредактировал(а) Struck: 05-10-2009 20:37 GMT3 час.

Снова в строю.

l
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
05-10-2009 20:47 GMT3 час. #1055684   
Сталкер Монолита
crouch_type - тип приседания - менять не рекомендуется - но если кто пробовал - расскажите что вышло.

диалоги - дык добавь ему строчку #include "gameplay\character_dialogs.xml"

и будут у него три стандартных диалога - они в файл character_dialogs вписаны
dm_hello_dialog
dm_cool_info_dialog
dm_help_wounded_medkit_dialog

какой из них о чем - смотри сам по айди.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Struck
    
Посты: 1946
Откуда:
Возраст:
05-10-2009 20:49 GMT3 час. #1055690   
erlik так вот это что, а свои инклуды будут юзатся? Просто переписать бы некоторые диалоги пачками)


Снова в строю.

l
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
05-10-2009 21:00 GMT3 час. #1055723   
Struck
свои - должны юзаться. Что им мешать будет? в этих же диалогах наверняка стоят свои условия появления - так что они даже в меню диалога мешаться с теми, которые ты сам напишешь, не должны.
А как ты пачками перепишешь? по любому ведь придется менять текст в rus , а структуру - в геймплее.
Каждому диалогу индивидуально.

Если конечно не придумать скрипт, который будет диалоги неписей менять динамически - в зависимости от ситуации. Как дин. новости.


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Struck
    
Посты: 1946
Откуда:
Возраст:
05-10-2009 21:04 GMT3 час. #1055738   
erlik ну ты сравнил...новости и диалоги...

"по любому ведь придется менять текст в rus , а структуру - в геймплее." - вот тут ты прав)


Снова в строю.

l
dan8
    
Посты: 500
Откуда: ventspils
Возраст: 30
05-10-2009 21:35 GMT3 час. #1055805   
а как создать атомную бомбу


Все ,что то пишут в своих подписях а я возьму и не НАПИШУ!!!
ДатчикХабара
    
Посты: 558
Откуда: Saratov
Возраст:
05-10-2009 21:59 GMT3 час. #1055850   
dan8
Есть простой вариант.
Здесь всё подробно описывать не буду,так-как будет лучше если ты сам разберешься.

Создать новую гранату,задать ей партикл мощного взрыва и добавить гигантский урон.


KaZuYa
    
Посты: 33
Откуда: чернобыль
Возраст: 34
05-10-2009 22:07 GMT3 час. #1055855   
лиди помагите на кардоне блокпост в каких файлах он находится


подарите балов
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
05-10-2009 22:24 GMT3 час. #1055875   
параметры бомбы, от которой даже вороны с неба падают :-)

blast = 100.00
blast_r = 100
blast_impulse = 700
;delete
blast_impulse_factor = 2

frags = 5000
frags_r = 500
frag_hit = 200
frag_hit_impulse = 500

KaZuYa
вопрос сформулируй правильно. Какой блокпост - Кузнецова или тот что в начале локи, какой файл - где профили неписей или где логика их гулага, или где их спавн секция.

насчет возраста нехорошо врать
не тянешь на 19 :-)


Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
KaZuYa
    
Посты: 33
Откуда: чернобыль
Возраст: 34
05-10-2009 22:25 GMT3 час. #1055877   
в начале локи

добавлено спустя 1 минуту

насчет возраста нехорошо врать
не тянешь на 19

мне 19 так што ты тут мне зубы не заговаривай

прости за вырожение

отредактировал(а) KaZuYa: 05-10-2009 22:27 GMT3 час.

подарите балов
erlik
    
Посты: 2338
Откуда: Набережные Челны
Возраст: 47
05-10-2009 22:29 GMT3 час. #1055880   
а дальше? Что именно?
профили в character_desc_escape (папка gameplay) - там ищи
и все что ниже.

добавлено спустя 2 минут

не похоже :-) ошибки в слове "помогите" "люди" и "кордон" после школы уже трудно сделать.

отредактировал(а) erlik: 05-10-2009 22:31 GMT3 час.

Разработки: "Тотализатор","Kill-zone", "Mega-bomba", Mega_gravi",
"Рандомные тайники(а также декодер, мины+диалоговый аддон"), "Выбрасываемый рюкзак", "Аналоговые часики на худ"
Николай ФеНиКс
    
Посты: 1493
Откуда: От Туда!
Возраст: 29
06-10-2009 06:49 GMT3 час. #1056022   
erlik
Вот сделал вот так:
--/-------------------------------------------------------------------
--/ Эффекты от критического ранения ГГ
--/-------------------------------------------------------------------
local health_sav = 1
local flg_blood = false
local actor = db.actor
local snd_obj = sound_object("heart\\2")
function act01_wounded_pp()
if actor.health < 0.2 then
if not flg_blood then
--level.add_pp_effector("red_fade_out.ppe", 1999, true)
level.add_pp_effector("bloody.ppe", 1999, true)
level.set_pp_effector_factor(1999, 5.0)
if not snd_obj:playing() then
snd_obj:play_at_pos(actor, actor:position(), 1, sound_object.looped)
end
flg_blood = true
elseif snd_obj:playing() then
snd_obj:set_position(actor:position())
if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
end
elseif flg_blood then
level.remove_pp_effector(1999)
if snd_obj:playing() then
snd_obj:stop()
end
flg_blood = false
end
end

--/ эффект от ранения (материалы AMK Team)
function act02_wounded_pp()
local actor = db.actor
if actor then
local health_act = actor.health
if health_act < health_sav - 0.05 then
level.add_pp_effector("shoot.ppe", 2011, false)
level.set_pp_effector_factor(2011,(health_sav - health_act)*100)
if health_act < health_sav - 0.3 then
level.add_cam_effector("camera_effects\\fusker.anm", 999, false, "")
local snd_obj = sound_object("actor\\pain_3")
snd_obj:play_no_feedback(actor, sound_object.s2d, 0, vector(), 1.0)
if math.random() < 0.1 then
drop_active_item() --/ "потеря" активного предмета
end
end
end
health_sav = health_act
end
end

--/ "потеря" активного предмета
function drop_active_item()
local item = db.actor:active_item()
if item then
local section = item:section()
if section and
section ~= "bolt" and
section ~= "wpn_binoc" and --/?
section ~= "wpn_knife"
then
db.actor:drop_item(item)
end
end
end


Всеравно вылет.
У меня каждая функция активирована в бинд сталкер.
Вот так.
Имя файла.act01_wounded_pp()
Имя файла.act02_wounded_pp()
Имя файла.drop_active_item()

добавлено спустя 7 минут

erlik
н

асчет возраста нехорошо врать
не тянешь на 19
Ну ты как бы тоже не тянешь на 32 =)

отредактировал(а) Николай ФеНиКс: 06-10-2009 06:57 GMT3 час.



Форумы Архив » Свалка Как сделать свой мод? (по 08.10.09)


Эта тема закрыта, публикация новых сообщений недоступна.
Продолжая пользоваться сайтом, вы соглашаетесь с использованием файлов cookie. Страницы сайта могут содержать информацию, запрещенную для
просмотра посетителям младше 18 лет. Авторское право на серию игр «S.T.A.L.K.E.R» и используемые в ней материалы принадлежит GSC Game World.

Использование материалов сайта возможно с разрешения администрации. Все права защищены. © 2004–2025 «Stalker-Portal.ru»