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

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


Halford

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

У меня проблема, над которой бьюсь уже немало времени. Сделал квест на зачистку Скадовска от мутантов (мод на ТЧ), в качестве примера приведу зомби. Сделал так, чтобы при убийстве выдавалась инфа. Вот что я прописал зомби в файле all.spawn:

[20027]

; cse_abstract properties

section_name = zombie_normal

name = zombie_scadovsk_1

position = 125.83,-7.32,187.06

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 3686

distance = 3.1000003814697

level_vertex_id = 1182903

object_flags = 0xffffffbf

custom_data = <<END

[logic]

on_death = death

 

[death]

on_info = %+zombie_killed_1%

 

[spawner]

cond = {+spoke_glavar}

END

 

; cse_visual properties

visual_name = monsters\zombi\zombi_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0x2d2d2d2d

upd:creature_flags = 0x2d

upd:position = 125.83,-7.32,187.06

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_ph_skeleton properties

 

; cse_alife_monster_base properties

 

; se_monster properties

Но при убийстве вылет:

: fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ....К.Е.Р. - Последний поход\gamedata\scripts\_g.script:1150: bad argument #2 to 'format' (string expected, got nil)

 

У кого было что-то подобное, кто знает, как исправить помогите. Заранее спасибо.

 

Погугли на тему отсутствия информации в логе по ошибке "_g.script:XXX:" и предоставь именно информацию, а не факт о вылете.

И посмотри на тему вывода в лог полезной для модмейкера информации!

Скорее всего, просто инфопоршень не зарегистрировал в игре или обрабатываешь его получение криво ... --/Artos

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

Поделиться этим сообщением


Ссылка на сообщение

Вопрос - как выдать ГГ сообщение в самом начале игры? Чтобы при старте внизу экрана высвечивалось сообщение с нужным текстом? Заранее спасибо.

 

Очень просто. Используем поиск и находим вот такую тему: Уроки по модостроению, внимательно перелистываем четыре страницы и узнаём для себя много нового.

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

У меня есть вопрос:

Есть ли возможность спавна аномалий через скрипт? А лучше - если это будет рандомный спавн аномалий в определённой зоне. Если кто знает, как можно спавнить аномалии через скрипт, помогите. Заранее спасибо.

 

Поделиться этим сообщением


Ссылка на сообщение

Как выдать сообщение ГГ не через диалог или функцию, а при нахождении ГГ в определённой зоне? Очень надо, для сюжета. Заранее спасибо.

 

Сообщение от модератора ColR_iT
Читаем факи\уроки\статьи, благо их "валом".

Чтобы долго не ломал голову, подскажу - ищи в сторону space_restrictor.

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

Поделиться этим сообщением


Ссылка на сообщение

ColR_iT, я искал, всё что связано с рестрикторами просмотрел, но там нету функции выдачи сообщения ГГ. Вот потому и спрашиваю, может знает кто, как это сделать. В АМК моде было что-то похожее, да и в оригинале есть. Здесь однозначно замешана логика рестриктора, но что именно отвечает за выдачу сообщение и где само сообщение - вот этого я не могу понять.

 

Есть! Если не нашёл - значит плохо искал.

Вот это прочти: Схема sr_tip

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

Как выглядит скриптовая функция, которая выдаёт сообщение ГГ, но не сразу, а через определённый промежуток времени, например, секунд через 30?

 

Вот так:

news_manager.send_tip(db.actor, "Hello world!", 30000)

P.S. мог бы и поиском воспользоваться.

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

ColR_iT, да не на 30 секунд! Не так, чтобы он на 30 секунд задерживался на экране. А чтобы при выполнении функции выдача сообщения была не сразу. То есть в диалог вписал функцию, проговорил диалог, а сообщение приходило через некоторое время.

 

Ты сначала проверил проверил бы, а потом говорил, что не так...

ColR_iT

 

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

ColR_iT, не работает.

 

Работает, только ждать нужно 30000 секунд.

ColR_iT

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

Поделиться этим сообщением


Ссылка на сообщение

Швед, скорее всего у тебя в localization.ltx прописан файл main_task.xml, а на деле он отсутствует. Это частный случай. А вообще под этим вылетом можно выделить все случаи, когда отсутствует прописанный xml файл. Так что попробуй сначала найти, где именно он у тебя прописан (скорее всего либо localization.ltx, либо system.ltx), а затем либо удали ссылку на этот файл, либо добавь его в нужное место, в зависимости от того, в какую часть конфигов ты его прописал.

 

Поделиться этим сообщением


Ссылка на сообщение
Опять вылет:

Expression : no_assert

Function : CXML_IdToIndex<class CInfoPortion>::GetById

File : e:\stalker\patch_1_0004\xr_3da\xrgame\xml_str_id_loader.h

Line : 112

Description : item not found, id

Arguments : esc_tutorial_secret_place

Швед, игра не может найти диалог в данном случае. На будущее - вылет относится не только у диалогам. Всё, что прописано как предмет, оружие, броня, квест, инфопоршень и прочее, при его отсутствии выдаёт подобный вылет. Скорее всего у кого-то из НПС прописан твой диалог, а на самом деле его просто нет.

Изменено пользователем Sany@Prizrak

Поделиться этим сообщением


Ссылка на сообщение

Мне нужна скриптовая функция таймера, чтобы действие, а именно выдача инфопоршня при выполнении функции происходило через определённый промежуток времени. Заранее спасибо.

Поделиться этим сообщением


Ссылка на сообщение

Как можно отключить постэффекты при нахождении рядом с аномальной зоной, чтобы экран не становился ярче и т.д.

Поделиться этим сообщением


Ссылка на сообщение

foxbat21, в секции спавна попробуй изменить эти параметры:

condition и upd:condition .

Поделиться этим сообщением


Ссылка на сообщение

Как сделать так, чтобы в Баре при убийстве кого-либо не было сообщения "Обнаружен убийца... и т.д.", и чтобы сталкеры не становились врагами?

Поделиться этим сообщением


Ссылка на сообщение
MaxsloFFF, а ты свой предмет в trader_after_fabric_sell и trader_start_sell прописывал? Это обязательная процедура, между прочим. Минимальная и максимальная цена должна быть указана, иначе в продаже предмета просто не будет. Да, у тебя не прописаны несколько пушек и глушитель.

Поделиться этим сообщением


Ссылка на сообщение
Morder07, можно ещё изменить параметры stalker_damage в m_stalker.ltx. Если увеличить параметры, то НПС будет легче убить. Преимущество в том, что ты можешь регулировать, в какую часть тела НПС убить легче, а в какую - сложнее.

Поделиться этим сообщением


Ссылка на сообщение

Daniar299, попробуй поставить мою секцию:

[16001]

; cse_abstract properties

section_name = m_car

name = esc_btr

position = -160.1,-30.25,-329.4

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 34

distance = 0

level_vertex_id = 89106

object_flags = 0xffffffba

custom_data = <<END

[logic]

active = ph_car1

 

[ph_car1]

target=actor

fire_range=80

fire_repeat=50

auto_fire=true

track_target=true

END

 

; cse_visual properties

visual_name = physics\vehicles\btr\veh_btr_script_u_01

 

; cse_ph_skeleton properties

 

; cse_alife_car properties

health = 1

 

И ещё, попробуй отредактировать иммунитеты БТР в config/models/vehicles/veh_btr_u_01.ltx на следующие:

[immunities]

burn_immunity = 0.5 ;коэффициенты иммунитета

strike_immunity = 0.0

shock_immunity = 0.0

wound_immunity = 0.0

radiation_immunity = 0.0

telepatic_immunity = 0.0

chemical_burn_immunity = 0.0

explosion_immunity = 0.2

fire_wound_immunity = 0.0001

Такие стоят в АМК моде. У меня всё работает, БТР заспавнен около блокпоста.

Поделиться этим сообщением


Ссылка на сообщение

Как увеличить дальность проработки террайна? Если это движковое, то можно не разъяснять, а если это один из параметров user.ltx, то буду рад выслушать.

Примечание: это не дальность видимости и не дальность освещения.

Поделиться этим сообщением


Ссылка на сообщение

Какую логику нужно прописать в схеме walker, чтобы НПС бежал в панике в определённую точку, как Стрелок в ЧН? Мне кажется, дело в этих строках:

def_state_moving1 = run
def_state_moving2 = run
def_state_moving3 = run

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

Поделиться этим сообщением


Ссылка на сообщение

Как отключить автоматическое выключение Выжигателя при переходе в Припять? ТЧ, патч 1.0004. Поисковик результатов не дал. В Bug Fix Attempt такого тоже нет.

Изменено пользователем Sany@Prizrak

Поделиться этим сообщением


Ссылка на сообщение

Капрал Хикс, нашёл только вот это:

 

 

[6900]

; cse_abstract properties

section_name = space_restrictor

name = pri_psy_kill_zone

position = 9.9465856552124,-1.51161766052246,-282.095275878906

direction = 0,0,0

 

; cse_alife_object properties

game_vertex_id = 2117

distance = 0

level_vertex_id = 73868

object_flags = 0xffffff3e

custom_data = <<END

[logic]

active = sr_idle@presentation

 

[sr_idle@presentation]

on_actor_inside = nil %+rad_antennas_reached +rad_bun_found +bar_deactivate_radar_done +rad_task_aes%

 

 

 

 

 

 

;active = sr_psy_antenna@no_helmet

 

[sr_psy_antenna@no_helmet]

eff_intensity = +100

hit_intensity = +100

on_info = {=actor_has_item(good_psy_helmet) =rad_pass_time} sr_psy_antenna@good_helmet, {=actor_has_item(bad_psy_helmet) =rad_pass_time} sr_psy_antenna@bad_helmet

on_info2 = {+bar_deactivate_radar_done} nil

 

[sr_psy_antenna@bad_helmet]

eff_intensity = +100

hit_intensity = +100

on_info = {=actor_has_item(good_psy_helmet)} sr_psy_antenna@good_helmet, {=actor_has_item(bad_psy_helmet)}, sr_psy_antenna@no_helmet

on_info2 = {+bar_deactivate_radar_done} nil

 

[sr_psy_antenna@good_helmet]

eff_intensity = +100

hit_intensity = +100

on_info = {=actor_has_item(good_psy_helmet)}, {=actor_has_item(bad_psy_helmet)} sr_psy_antenna@bad_helmet, sr_psy_antenna@no_helmet

on_info2 = {+bar_deactivate_radar_done} nil

END

 

; cse_shape properties

shapes = shape0

shape0:type = box

shape0:axis_x = 72.2548141479492,0,0

shape0:axis_y = 0,52.2159957885742,0

shape0:axis_z = 0,0,43.3195762634277

shape0:offset = 0,0,0

 

; cse_alife_space_restrictor properties

restrictor_type = 3

 

Что именно здесь можно подкорректировать, чтобы решить проблему?

p.s. Извиняйте, я в таких сложных рестрикторах не силён, поэтому и прошу помощи.

Изменено пользователем Sany@Prizrak

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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