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

[CoP] Ковыряемся в файлах


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

Shredder, эта функция вызывается ТОЛЬКО при начале новой игры. Изменено пользователем Akella-96 aka SvD

AWRP : Re - Load 0.2 ©

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

А нужно как? Я так и подумал что при начале новой игры. Ну если нужно при каждом старте, то для такого случая в скрипте _g.script есть функция start_game_callback(), можно в ней прописать вызов своей функции.

Да, кстати, твой код тоже будет вызван единажды при старте новой игры, для скачавшего мод геймера.

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

Всем здрасьте, у меня в simulation.ltx когда локации заселял, все сквады были в одной куче, на [start_position_escape], после разделение на каждую локацию

([start_position_имя_уровня)сквады перестали спавнится, кроме тех что были в [start_position_escape]. С чем это связано ?

Вот вырезка из simulation.ltx

 

;;;;;;;;;;;;;;;;;;;;;;;; FINAL_ESCAPE ;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

[start_position_escape]

esc_smart_terrain_2_12_stalker_2_squad_2 = esc_smart_terrain_2_12

esc_smart_terrain_2_12_stalker_2_squad_1 = esc_smart_terrain_2_12

esc_smart_terrain_3_16_military_2_squad_0 = esc_smart_terrain_3_16

esc_smart_terrain_3_16_military_2_squad_1 = esc_smart_terrain_3_16

esc_smart_terrain_3_16_military_2_squad_2 = esc_smart_terrain_3_16

esc_boars_lair_guard_3_10 = esc_smart_terrain_4_10

esc_boars_lair_guard_5_6 = esc_smart_terrain_5_6

esc_smart_terrain_6_8_military_2_squad_1 = esc_smart_terrain_6_8

esc_dogs_lair_guard_5_12 = esc_smart_terrain_5_12

esc_dogs_lair_guard_6_3 = esc_smart_terrain_6_3

esc_smart_terrain_5_7_stalker_2_squad = esc_smart_terrain_5_7

esc_smart_terrain_5_7_stalker_2_squad_2 = esc_smart_terrain_5_7

esc_smart_terrain_atp_bandit_squad_1 = esc_smart_terrain_atp

esc_tech_stalkerbase_squad = esc_smart_terrain_2_74

 

[start_position_garbage]

gar_bandit_smart_terrain_3_5_squad_1 = gar_smart_terrain_3_5

gar_bandit_smart_terrain_3_5_squad_2 = gar_smart_terrain_3_5

gar_bandit_smart_terrain_3_5_squad_3 = gar_smart_terrain_3_5

gar_bandit_smart_terrain_3_5_squad_4 = gar_smart_terrain_3_5

gar_bandit_smart_terrain_5_2_squad_1 = gar_smart_terrain_5_2

gar_bandit_smart_terrain_5_2_squad_2 = gar_smart_terrain_5_2

gar_bandit_smart_terrain_8_7_squad_2 = gar_smart_terrain_8_7

gar_bandit_smart_terrain_8_7_squad_1 = gar_smart_terrain_8_7

gar_stalkers_flea_market_squad_1 = gar_smart_terrain_6_3

gar_bandit_smart_terrain_1_5_squad_1 = gar_smart_terrain_1_5

gar_bandit_smart_terrain_5_8_squad_1 = gar_smart_terrain_5_8

gar_bandit_smart_terrain_5_8_squad_1 = gar_smart_terrain_5_8

 

[start_position_l05_bar]

bar_visitors_2_smart_terrain_squad = bar_visitors_2_smart_terrain

bar_b2_smart_terrain_squad = bar_b2_smart_terrain

bar_dolg_sim_smart_1_squad = bar_dolg_sim_smart_1

bar_visitors_3_smart_terrain_squad = bar_visitors_3_smart_terrain

bar_visitors_smart_terrain_squad = bar_visitors_smart_terrain

;;;;;;;;;;;;;;;;;;;;;;;;bar_dolg_okolo_sklada_smart_terrain_squad = bar_dolg_okolo_sklada_smart_terrain

;;;;;;;;;;;;;;;;;;;;;;;;bar_patrol_smart_terrain_squad = bar_patrol_smart_terrain

 

[start_position_yantar]

yantar_zombie_squad = yan_smart_terrain_zombie_1

yantar_zombie_squad_2 = yan_smart_terrain_zombie_3

yantar_zombie_squad_3 = yan_smart_terrain_zombie_5

yantar_zombie_squad_4 = yan_smart_terrain_zombie_6

yantar_zombie_squad_5 = yan_smart_terrain_zombie_8

yantar_ecolog_squad_1 = yan_smart_terrain_camp

yan_b33_snork_wave = yan_smart_terrain_zombie_3

yan_b34_snork_wave = yan_smart_terrain_zombie_4

 

[start_position_l11_pripyat]

l11_pri_b39_dogs_squad = l11_pri_smart_terrain

;;;;;;;;;;;;;;;;;;;;;;;;--l11_pri_bloodsucker_1 = l11_pri_smart_terrain_bloodsucker

;;;;;;;;;;;;;;;;;;;;;;;;--l11_pri_snork = l11_pri_smart_terrain_snork_1

;;;;;;;;;;;;;;;;;;;;;;;;--l11_pri_snork_1 = l11_pri_smart_terrain_snork_2

;;;;;;;;;;;;;;;;;;;;;;;;--l11_pri_pseudodog_1 = l11_pri_smart_terrain_psevdodog_2

l11_pri_smart_terrain_5_7_stalker_1_squad = l11_pri_smart_terrain_5_7

 

[start_position_l03_agroprom]

 

 

Название уровней вроде правильное.

 

2. может ли быть у смарта несколько кемп зон ?

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

Есть ли в логике какая нибудь проверка на "погиб ли отряд от рук другого отряда"?

Что то вроде {=killed_by_actor()}, только наоборот

{!killed_by_actor()} - проверяет, что просто не убит НПСя Глав.Героем и все, а мне хотелось бы для квеста, что если убит гг, то одна инфа, а если нпсями - другая

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

Не соответствует. N6260

Ссылка на комментарий
ZeeK, так может просто отловить факт смерти сквада в конфиге on_death = %+скваду_кранты%, а если актером - то соответственно проверка, как ты написал. Или тебе нужно от конкретных нпс факт убивства отлавливать?
Ссылка на комментарий

ZeeK, есть.

-- Проверка того что персонаж был убит кем-то из npc указанных в списке.
-- Параметры это story_id персонажей. Можно задавать несколько story_id.
{=killed_by(story_id)}
Пример:
{!killed_by(sidorovich)}

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

Clayman, Scarabay предполагалось, что гг должен убить НПСя, чтобы выполнить квест, а если НПСя гибнет из за НПСя из симуляции - отмена квеста и высылка сообщения

Сейчас схема имеет вид(приведен кусок)

[sr_idle2]

on_info1 = {=killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle3

on_info2 = {!killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle@timer %+zat_b52_giant_quest_provalen%

 

Однако сначала выполняется условие 1, и сразу за ним и 2ое. Вот думаю добавить сверху инфорпоршень, чтобы стало так:

[sr_idle2]

on_info1 = {=killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle3 %+zat_b52_giant_quest_go_next%

 

 

on_info2 = {!killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death -zat_b52_giant_quest_go_next} sr_idle@timer %+zat_b52_giant_quest_provalen%

 

Но у меня щас нет возможности проверить логику, поэтому был бы благодарен, если бы дали комментарий - сработает ли такой способ?

 

{=killed_by(story_id)}

Не подходит т.к. я описал выше, что замочить цель могут и симуляционные сталкеры, которые не имеют id

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

Не соответствует. N6260

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

ZeeK, попробуй так:

[sr_idle2]
on_info = {=killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle3, {!killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle@timer %+zat_b52_giant_quest_provalen%

Даже вот так можно (и нужно):

[sr_idle2]
on_info = {=killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle3, sr_idle@timer %+zat_b52_giant_quest_provalen%

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

Scarabay

ни

[sr_idle2]

on_info = {=killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle3, sr_idle@timer %+zat_b52_giant_quest_provalen%

 

ни

[sr_idle2]

on_info = {=killed_by_actor(zat_giant_for_quest) +zat_giant_for_quest_death} sr_idle3, {+zat_giant_for_quest_death} sr_idle@timer %+zat_b52_giant_quest_provalen%

 

не работают, а точнее сначала срабатывает ср_идл3. а потом за ним и таймер заодно с отменой задания)

похоже придется "оставить нпся только для убийств ГГ", никакой симуляции

Не соответствует. N6260

Ссылка на комментарий
ZeeK, насколько я понял, =killed_by_actor проверяется из логики персонажа, а не рестриктора. Туда не передаются никакие параметры типа sid-а. Посмотрите функцию в xr_condition.
Ссылка на комментарий

Ребят, подскажите, кто знает. Как сделать так, чтобы при использовании предмета подряд ( именно подряд, а не сразу ) проигрывались несколько песен. Я смог реализовать только одну. Если пытался делать несколько, то они проигрывались сразу все.

 

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

Возник ещё один вопрос : как удалить эффект от присутствия полтергейста (синий экран) ?

AWRP : Re - Load 0.2 ©

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

Кто-то уже может заметил, что в ЗП в озвучке долга убрали обычные голоса, все конфиги human_01, human_02, human_03 играются голосами в "антигазах", так.как в ЗП нету визуалов долга без масок.

В связи с переносом многих визулов из ТЧ, у меня много долговцев, которым нужна обычная озвучка - голоса в противогазах в открытых ртах слушаются глупо.

Я вот подумал, а если подменить озвучку долга human_01, human_02 из ЧН (там звуки в порядке), не будет вылетов? Там папки вроде по количеству файлов отличаются от ЗП-шных, но все сравнивать мне что-то лениво... Никто так не делал уже? Или уже для этих визуалов поставить сталкеровскую озвучку? Лишний вес моду звуками тоже накручивать неохото...

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

Вообщем у меня вот такой вылет на подключенной локации "Агропром"

 

 

FATAL ERROR

 

[error]Expression : !m_error_code

[error]Function : raii_guard::~raii_guard

[error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

[error]Line : 748

[error]Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:950: bad argument #1 to 'gfind' (string expected, got nil)

 

 

stack trace:

 

 

Я сразу подумал что что-то не так с логикой, удалил всех нпс что были на локации,вылет не исчез, в спавне оставил всего одну секцию:

 

[0]

 

; cse_abstract properties

section_name = breakable_object

name = meshes\brkbl#0.ogf

position = 127.544509887695,8.15257263183594,67.6282119750977

direction = 0.00830990821123123,-0.785428702831268,1.5723774433136

version = 124

script_version = 8

 

; cse_alife_object properties

game_vertex_id = 1205

distance = 0

level_vertex_id = 4

object_flags = 0xffffffba

 

; cse_visual properties

visual_name = meshes\brkbl#0

 

; cse_alife_object_breakable properties

health = 1

 

 

Удалил все сквады спавнящиеся на этой локации, смарт терейны, все ! А вылет не исчез. Локация полностю чистая.

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

Добрый день.

Правлю положения оружия в руках в ЗП чтобы потом адаптировать его в ЧН.

Вопросы:

1. В ЧН и ЗП угол зрения одинаковый или разный ?

2. Если разный то в какую сторону надо менять положение по шкале "ближе-дальше". В сторону увеличения расстояния от глаз, или в сторону уменьшения.

Вообщем надо выставить положение оружия так чтобы оно нормально смотрелось в ЧН в плане расстояния от глаз игрока.

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

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

И еще кое что: db.actor.radiation = 0.05 - облучение радиацией или ее вывод?

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

Не соответствует. N6260

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

ZeeK,

function add_radiation_1()
    local h = hit()
        h.draftsman = db.actor
        h.type = hit.radiation -- strike, fire_wound и т.д.
        h.power = 0.01
        h.impulse = 0
        h.direction = vector():set(0,0,0)
        h:bone("bip01_spine")
        db.actor:hit(h)    
end

 

db.actor.radiation = 0.05 - установка радиации в 0.05

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

Помогите!!! Не могу сделать переход между лоациями в ЗП, делаю через all.spawn если делаю в виде box то переход растягивает на всю локацию, а виде sphere я делать не умею, подскажите как правильно делать переход в виде sphere

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

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

Ребята, возникла проблема. Кто может, помогите советом!

 

Суть дела вот в чем. Заселяю новую локу, создаю торговца (модель Борова из ЧН) с

 

[logic]

active = camper

level_spot = trader

 

trade = misc\trade\trade_mil_freedom_trader.ltx

trader_flags = 0

inv_max_weight = 10000

meet = meet

 

[camper]

path_walk = mil_freedom_trader_walk

path_look = mil_freedom_trader_look

 

[meet]

close_snd_hello = gar_bandit_barman_meet

close_snd_bye = gar_bandit_barman_meet_bye

close_snd_distance = 3

 

 

При этом звуки в нужную папку закинуты, также их зарегистрировал в файле script_sound_military.ltx с

 

[list_script_sound_military]

 

gar_bandit_barman_meet

gar_bandit_barman_meet_bye

 

[gar_bandit_barman_meet]

type = npc

path = scenario\military\gar_bandit_barman_meet_greet_

shuffle = rnd

play_always = true

idle = 0,0,100

 

[gar_bandit_barman_meet_bye]

type = npc

path = scenario\military\gar_bandit_barman_meet_bye_

shuffle = rnd

idle = 1,1,100

 

 

Сам файл script_sound_military.ltx зарегистрировал в script_sounds.ltx.

 

Когда подхожу к торговцу на расстояние ближе 3 метров, ловлю

 

Expression : !m_error_code

Function : raii_guard::~raii_guard

File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

Line : 748

Description : ....r. - cop shoker\gamedata\scripts\sound_theme.script:256: bad argument #2 to 'random' (interval is empty)

 

 

В чем проблема может быть? Я не все зарегистрировал, или логика не до конца прописана?

 

На всякий случай, кусок кода с 256 строкой из скрипта sound_theme

 

Кусок кода из sound_theme

 

function npc_sound:select_next_sound(npc_id)

local npc_data = self.npc[npc_id]

if self.shuffle == "rnd" then

if npc_data.max == 0 then

return 0

end

 

if self.played_id ~= nil then

local played_id = math.random(0,npc_data.max - 1) -- 256-я строка

if played_id >= self.played_id then

return played_id + 1

end

return played_id

end

return math.random(0,npc_data.max)

end

 

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

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

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

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

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

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

Войти

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

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

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