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

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

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.

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

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

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 но выходит ошибка.

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

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

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

 

Строгое предупреждение от модератора 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

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

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

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

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

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

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

Войти

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

Войти
×
×
  • Создать...