Перейти к контенту

Рекомендуемые сообщения

ZeeK,

В ЗП так <action>spawn_test.spawn_muzhik1</action> инфопоршни уже не работают.

Теперь ручками в actor_binder:info_callback ставить проверку на свой инфопоршень и вызывать функцию

Изменено пользователем Kolmogor
Ссылка на комментарий

TREWKO, У тебя где-то синтаксическая ошибка

юзай для проверки скрипта lua checker

http://www.sendspace.com/file/vnf4mm - только не сохраняй скрипт из самой проги - она для этого кривая, зато синтаксис четко проверяет

i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх

Ссылка на комментарий

lekzd. Sorry, the file you requested is not available.

Вот что пишет.

 

А всё, скачал с другого.

 

Вот что он у меня нашёл:

Checking D:\S.T.A.L.K.E.R.Chernobyl\gamedata\scripts\DiVaresCheckArmor.script:
DiVaresCheckArmor.script (22): mismatched input 'b' expecting ')'
DiVaresCheckArmor.script (22): mismatched input ')' expecting 'end'
Found 2 errors.

 

Оказалось, проблема была в табуляции.

Было так:

local temp = alife():create("wpn_ak74",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),d
b.actor:id())

А надо так:

local temp = alife():create("wpn_ak74",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id())

 

Но даже после этого та же ошибка.

Изменено пользователем TREWKO
Ссылка на комментарий
TREWKO, Читай внимательно! он тебе пишет что 2 ошибки! end - где-то пропустил

i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх

Ссылка на комментарий

У меня вопрос

Скажите пожайлусто можно ли анимировать камеру гг. Например зделать чтоб гг встал с земли.

 

Не соответствует правилам.

Ссылка на комментарий
У меня вопрос

Скажите пожайлусто можно ли анимировать камеру гг. Например зделать чтоб гг встал с земли.

А ты в ту тему обратился? =)

 

Попробуй вот это:

http://ifolder.ru/16229318

Ссылка на комментарий

Knight,

Спасибо, но меня немного не это интересует.

Меня интересует как прописывать главному герою эту анимацию.Я думаю через скрипт хотя может и ошибаюсь.

Изменено пользователем KERIL

Не соответствует правилам.

Ссылка на комментарий

KERIL, может это не совсем то, что нужно, но все-же:

 

[remark@punch]
anim = punch
snd = cit_jail_guard_sneer
meet = meet@punch
target = actor
on_signal = sound_end| %=run_cam_effector(fatigue)% 
on_timer = 60000| remark@doctor_wakeup  %=run_postprocess(deadcity_wake:1777:false)%   
danger = danger_condition 

[meet@punch]
meet_state    = 5|hide_s_left@wait| 4|hide_s_right@wait
meet_state_wpn    = 5|backoff2@threat_back
victim = 10|actor 
victim_wpn = 10|actor 
use = true 
use_wpn = true 
meet_dialog    = escape_lager_guard_start_dialog

 

punch– анимка удара рукой (или прикладом). Так как я не специалист по боксу, то не скажу точно как именно называется этот удар с правой в челюсть. Если поставите ее в meet_state_wpn на дистанции 2 метра - ГГ получит реальный удар в морду прикладом ствола. Так как я эксперементировал на своем торговце - то он (будучи безоружным) бил чисто кулаком. А если вместо запуска анимации камеры %=run_cam_effector(fatigue)% поставите запуск функции %=killactor%, то НПС кинется вас убивать.

 

hide_s_left и hide_s_right - непись присядет с разворотом ствола вправо или влево. backoff2 - более веселая анимка backoff. НПС покажет ГГ что-то вроде фака, перед тем как помахать стволом и при этом скажет что-то весьма нелицеприятное. %=run_cam_effector(fatigue)% - это вызов анимации камеры fatigue из папки anims. Земля уйдет из под ног ГГ. Ненадолго. Сработает сразу же после окончания фразы cit_jail_guard_sneer. А ровно через минуту от начала работы схемы – запуск постпроцесса %=run_postprocess(deadcity_wake:1777:false)% и переход к следующей схеме.

 

deadcity_wake – это постпроцесс, который должен был использоваться в Мертвом городе, если бы разрабы МГ все таки доделали. Если не видели - обязательно посмотрите.Сначала черный экран, затем прояснение с раздвоением картинки и красным фоном.

 

В следующей схеме идет продолжение постпроцесса – первые 15 секунд. Потом его остановка: on_timer = 15000| %=stop_postprocess(1777)%.

 

[remark@doctor_wakeup]
anim = doctor_wakeup
snd = cit_doctor_start_dlg
meet = meet@doctor_wakeup
target = actor
on_timer = 15000| %=stop_postprocess(1777)%
on_timer2 = 180000| remark@prisoner 
danger = danger_condition 

[meet@doctor_wakeup]
meet_state    = 3|sleep@cit_jail_guard_sleep| 2|sleep_sit@wait
meet_state_wpn    = 3|wounded_zombie@wait
victim = 10|actor 
victim_wpn = 10|actor 
use = true 
use_wpn = true 
meet_dialog    = escape_lager_guard_start_dialog

 

Начальная анимация - doctor_wakeup – доктор в мертвом городе. НПС склонится вниз – как будто над чьим то телом (по задумке – над меченым) и начнет базарить. Но совсем не то, что стоит у меня в строчке snd. Видимо, данная анимка завязана со звуком, и иначе не идет. Фразу прописанную мною - cit_doctor_start_dlg – нпс произнесет потом. Обе озвучки длинные – та, что идет с анимкой – монолог доктора в подземелье агропрома в тайнике Стрелка – типа, «что ж ты меченый в растяжку полез, сам же придумал эту хрень…» Моя озвучка - cit_doctor_start_dlg – неиспользованный монолог доктора в мертвом городе. Через 180 секунд – завершение схемы и переход к следующей.

 

 

это статья Garry_Galler с Inside Wiki

Изменено пользователем SCRIPT

Thank you for your honesty.

Now fuck off and die.

Ссылка на комментарий

SCRIPT,

Спасибо конечно но это анимация нпс.Мне нужна только анимация камеры.

Не соответствует правилам.

Ссылка на комментарий

подскажите как подключить этот скрипт к ЗП (чтоб происходил спавн)

local actor = db.actor

 

function main()

spawn_all()

end

 

--Спавним все аномалии

function spawn_all(respawn)

 

-- РЕСПАВН МОНСТРОВ

--== БОЛОТА

--ЛЮДИ

spawn("sim_default_stalker_0",vector():set(347.982788085938,1.15263211727142,362.435119628906),1,135)

spawn("sim_default_duty_2",vector():set(-181.321166992188,2.20583915710449,536.22412109375),1,135)

spawn("sim_default_freedom_4",vector():set(106.57487487793,1.11209356784821,331.199737548828),1,135)

-- ГИГАНТЫ И ХИМЕРЫ

 

spawn("gigant_normal",vector():set(12.362359046936,1.20762395858765,465.655242919922),1,135)

spawn("chimera_normal",vector():set(-103.976005554199,0.348260492086411,334.711975097656),1,135)

--==Кордон==

--ВОЕННЫЕ

spawn("sim_default_military_2",vector():set(12.296178817749,2.66049242019653,99.1692047119141),2,472)

spawn("sim_default_military_4",vector():set(-269.253021240234,-21.6871528625488,-276.530120849609),2,472)

spawn("sim_default_military_3_sniper",vector():set(-88.2359161376953,-32.2155342102051,-286.156036376953),2,472)

--СОБАКИ

spawn("dog_weak",vector():set(-78.6157073974609,-31.078088760376,-400.246795654297),2,472)

spawn("boar_strong",vector():set(-88.3238067626953,-26.6163959503174,-448.000305175781),2,472)

spawn("bloodsucker_strong",vector():set(-224.939224243164,-32.7286605834961,-243.461776733398),2,472)

spawn("gigant_normal",vector():set(-106.359199523926,-21.2115707397461,-212.748565673828),2,472)

--ХИМЕРА

spawn("chimera_strong",vector():set(-138.856292724609,-4.19875192642212,-60.2471351623535),2,472)

--==СВАЛКА

--КРОВОСОСЫ И ДОЛГАШИ

spawn("bloodsucker_weak",vector():set(53.363265991211,-1.9413865804672,-230.09606933594),3,245)

spawn("sim_default_duty_4",vector():set(178.58694458008,-4.974377155304,94.88623046875),3,245)

--ХИМЕРКИ

spawn("chimera_normal",vector():set(121.49718475342,0.1320840716362,-212.03157043457),3,245)

spawn("simulation_psy_dog",vector():set(169.84217834473,0.14150622487068,199.580078125),3,245)

--== ТЕМНАЯ ДОЛИНА

--БЮРЕРЫ

spawn("sim_default_killer_4",vector():set(137.816009521484,0.427826672792435,-197.783615112305),4,743)

spawn("burer_normal",vector():set(18.2877159118652,0.105665326118469,-53.773365020752),4,743)

--ПОЛТЕРЫ

spawn("sim_default_zombied_4",vector():set(-14.5188961029053,-4.0447301864624,-284.803955078125),4,743)

spawn("sim_default_bandit_4",vector():set(47.4216194152832,-4.75452375411987,-384.968688964844),4,743)

spawn("sim_default_monolith_2",vector():set(180.663208007813,6.19037342071533,5.93422508239746),4,743)

spawn("sim_default_killer_3",vector():set(-85.68212890625,-1.58676373958588,49.1661262512207),4,743)

--ХИМЕРЫ

spawn("chimera_normal",vector():set(144.207214355469,11.7331314086914,-354.058807373047),4,743)

spawn("chimera_normal",vector():set(125.036239624023,4.33656644821167,-439.600860595703),4,743)

spawn("chimera_normal",vector():set(38.3866920471191,0.537489354610443,-488),4,743)

 

--==АГРОПРОМ

--ВОЯКИ И СТАЛКЕРНЯ

spawn("sim_default_duty_3",vector():set(232.18873596191,22.32128340454,76.087600708008),5,1057)

spawn("duty_sim_squad_veteran",vector():set(198.80717468262,20.148874282837,99.754737854004),5,1057)

spawn("sim_default_military_4",vector():set(140.23600769043,16.151906967163,183.02565002441),5,1057)

spawn("sim_default_military_3_sniper",vector():set(-24.292402267456,11.846901893616,180.2127532959),5,1057)

spawn("sim_default_military_1",vector():set(-209.73248291016,1.73156409988,118.22413635254),5,1057)

--ХИМЕРЫ

spawn("chimera_normal",vector():set(-209.89938354492,2.586462020874,-10.034078598022),5,1057)

spawn("chimera_normal",vector():set(-150.57160949707,6.513599395752,-92.870819091797),5,1057)

spawn("chimera_normal",vector():set(-90.4501953125,10.583999633789,-99.46720123291),5,1057)

--КОНТРОЛЕР

spawn("m_controller_normal",vector():set(63.503658294678,9.7990942001343,-183.00830078125),5,1057)

--==ЯНТАРЬ

--БЮРЕРЫ

spawn("burer_strong",vector():set(-61.805332183838,-4.3734092712402,-343.49011230469),7,1212)

spawn("burer_strong",vector():set(-96.9124374389655,-8.4365587234497,-298.34219360352),7,1212)

spawn("burer_strong",vector():set(-164.98713684082,6.1591620445251,-302.52072143555),7,1212)

--==КОНТРОЛЕРЫ

spawn("m_controller_normal",vector():set(85.905838012695,0.058679908514023,-38.014339447021),7,1212)

spawn("controller_weak",vector():set(23.739946365356,0.311467677735481,-10.59485244751),7,1212)

--==МИЛИРИТАРИ

--ДОЛГОВЦЫ

spawn("sim_default_duty_4",vector():set(-326.03182983398,-22.402235031128,238.6107635498),9,1313)

spawn("m_controller_normal",vector():set(-214.55545043945,-21.84263420105,199.97067260742),9,1313)

spawn("sim_default_duty_4",vector():set(89.25658416748,-5.7359156608582,341.10025024414),9,1313)

--ХИМЕРЫ

spawn("gigant_normal",vector():set(-79.532272338867,-8.4085884094238,408.64053344727),9,1313)

spawn("gigant_normal",vector():set(102.94105529785,-9.3632946014404,247.88220214844),9,1313)

spawn("chimera_weak",vector():set(58.276752471924,-9.6115550994873,105.6272277832),9,1313)

spawn("chimera_weak",vector():set(-249.71379089355,-17.293375015259,-16.878582000732),9,1313)

--СВОБОДА

spawn("sim_default_freedom_4",vector():set(-198.77252197266,-12.654818534851,65.836784362793),9,1313)

spawn("sim_default_freedom_4",vector():set(-141.22608947754,-21.489429473877,127.33731079102),9,1313)

spawn("sim_default_freedom_2",vector():set(83.89656829834,-10.065062522888,2.1003093719482),9,1313)

spawn("sim_default_freedom_2",vector():set(-28.417978286743,-13.027275085449,53.650508880615),9,1313)

 

 

end

 

function create_anom(section,rad_anom,x,y,z,lv,gv,mode)

-- con(section)

if gv==nil then gv=db.actor:game_vertex_id() end

if lv==nil then lv=db.actor:level_vertex_id() end

if pos==nil then pos=db.actor:position() end

 

local p_obj = alife():create(section,vector():set(x,y,z),lv,gv)

 

local packet = net_packet()

packet:w_begin(0)

p_obj:STATE_Write(packet)

packet:r_seek(2)

 

local game_vertex_id = packet:r_u16()

local cse_alife_object__unk1_f32 = packet:r_float()

local cse_alife_object__unk2_u32 = packet:r_s32()

local level_vertex_id = packet:r_s32()

local object_flags = packet:r_s32()

local custom_data = packet:r_stringZ()

local story_id = packet:r_s32()

local cse_alife_object__unk3_u32 = packet:r_s32()

 

local shape_count = packet:r_u8()

for i=1,shape_count do

local shape_type = packet:r_u8()

if shape_type == 0 then

local center = packet:r_vec3()

local radius = packet:r_float()

else

local box = packet:r_matrix()

end

end

 

local restrictor_type = packet:r_u8()

 

local cse_alife_custom_zone__unk1_f32 = packet:r_float()

local cse_alife_custom_zone__unk2_u32 = packet:r_s32()

local on_off_mode_enabled_time = packet:r_s32()

local on_off_mode_disabled_time = packet:r_s32()

local on_off_mode_shift_time = packet:r_s32()

 

local offline_interactive_radius = packet:r_float()

local artefact_spawn_places_count = packet:r_u16()

local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32()

 

local last_spawn_time_present = packet:r_u8()

 

-- if packet:r_elapsed() ~= 0 then abort("left=%d", packet:r_elapsed()) end

 

packet:w_u16(game_vertex_id)

packet:w_float(cse_alife_object__unk1_f32)

packet:w_s32(cse_alife_object__unk2_u32)

packet:w_s32(level_vertex_id)

packet:w_s32(object_flags)

if mode~=nil then custom_data = mode end

packet:w_stringZ(custom_data)

packet:w_s32(story_id)

packet:w_s32(cse_alife_object__unk3_u32)

 

packet:w_u8(1)

packet:w_u8(0)

local sphere_center = vector()

sphere_center:set(0, 0, 0)

packet:w_vec3(sphere_center)

radius = rad_anom

packet:w_float(radius)

 

packet:w_u8(restrictor_type)

 

packet:w_float(cse_alife_custom_zone__unk1_f32)

cse_alife_custom_zone__unk2_u32 = bit_not(0)

packet:w_s32(cse_alife_custom_zone__unk2_u32)

packet:w_s32(on_off_mode_enabled_time)

packet:w_s32(on_off_mode_disabled_time)

packet:w_s32(on_off_mode_shift_time)

 

packet:w_float(offline_interactive_radius)

packet:w_u16(artefact_spawn_places_count)

packet:w_s32(cse_alife_anomalous_zone__unk1_u32)

 

if mode == nil then

 

packet:w_u8(last_spawn_time_present)

end

p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell())

-- add_spot_on_map(p_obj.id,"red_location","Аномалия")

 

 

return p_obj

end

 

 

-- Вывод инфы в консоль

function con(msg)

get_console():execute(msg)

end

 

 

-- Записываем переменную

function save(variable_name, value)

xr_logic.pstor_store(db.actor, variable_name, value)

end

 

-- Загружаем переменную

function load(variable_name, value_if_not_found)

return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found)

end

 

-- Удаляем переменную

function del(variable_name)

if db.storage[db.actor:id()].pstor[variable_name] then

db.storage[db.actor:id()].pstor[variable_name] = nil

end

end

 

-- Функция спауна объекта

function spawn(section,pos,lv,gv)

 

-- vector():set(x,y,z)

 

if gv==nil then gv=db.actor:game_vertex_id() end

if lv==nil then lv=db.actor:level_vertex_id() end

if pos==nil then pos=db.actor:position() end

 

if section==nil then

con("Не_указанная_секция")

else

return alife():create(section,pos,lv,gv)

end

 

end

 

Сюжетное продолжение чистого неба
Зона обр.2010г.
S.T.A.L.K.E.R.-Расширение территорий

 

Ссылка на комментарий

Сталкеры!

Вот у меня есть код:

function intr()
   local htime = level.get_time_hours()
if htime == 12 and level.get_weather("default") then
    local sactor = alife():actor() 
    local cactor = level.object_by_id(sactor.id) 
    cactor:give_game_news(
        "%c[255,255,1,1]Система\\n%c[255,1,255,1]Тест",   
        "ui\\ui_iconstotal",        
        Frect():set(498,141,83,47),  
        math.random(1000, 3000),     
        50000                         
        )
end
end

Я её забиндил.

Теперь в 12 часов выходит сообщение.

Но! Это сообщение приходит целый час.

То есть целая куча. Пробовал вместо 12 писать 12:00:00 но выходит ошибка.

Помогите пожалуйста.

Ссылка на комментарий
tankist, нельзя просто подключать. Там есть координаты спавна, в ЗП они другие должны быть.
Мой ник читается гузерус.
Ссылка на комментарий

ну я отредактировал координаты и мне требуется просто подключить , но я не знаю в какой скрипт прописивать и как

 

Строгое предупреждение от модератора n6260
Юзаем Заглавные буквы и знаки препинания.
Сюжетное продолжение чистого неба
Зона обр.2010г.
S.T.A.L.K.E.R.-Расширение территорий

 

Ссылка на комментарий

TREWKO,

Всё работает, как ты написал. В течении часа непрерывно счастотой апдейтов вызывается эта функция.

Почитай внимательней описание функции give_game_news. Тебе достаточно один раз вызвать её в любом месте. Надо только рассчитать время до нужного момента вывода.

 

Ну или в апдейте флажок поставь. Если один раз сработало, то запомнить это и дальше не выводить.

Изменено пользователем malandrinus
 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Здраствуйте, ув. модмейкеры.

 

Присоеденил к ЗП Болота, все вышло, за исключением лестниц костров, ну и npc. Начинаю заполнять локации по новой. Спавню через all.spawn. Все нормально - непись появляесться, но он тупо ходит по базе ЧН, а мне нужно, чтобы он стоял на месте бармена. Что ему нужно прописать?

Анимация запрещена. N6260

Ссылка на комментарий

Пропиши ему вот эту логику:

[logic]

active = remark1

danger = danger_ignore

 

[danger_ignore]

ignore_distance = 5

 

[remark1]

invulnerable = true

anim = sit_ass

no_move = true

meet = meet_guide

 

[meet_guide]

abuse = false

use = true

allow_break = false

meet_on_talking = false

Так же он будет бессмертен.

Ссылка на комментарий
кровоSTALKER, спасибо большое. Только вопрос, куда именно прописать, в ltx, а потом в кастом дате указать путь к нему?

Анимация запрещена. N6260

Ссылка на комментарий

Верно.

 

Добавлено через 1 мин.:

Тобишь в файле где прописаны спавн секции НПС (не характер деск, и не нпс_профиль а в спаун сектионс.лтх).

Ссылка на комментарий
кровоSTALKER, странно.. все равно бегает. Может через скрипт нужно спавнить? Изменено пользователем f0reSt

Анимация запрещена. N6260

Ссылка на комментарий

Ты где прописывал?

 

Добавлено через 1 мин.:

Путь до файла: gamedata\config\creatures\spawn_sections_***.ltx

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...