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

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


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

Сталкеры, подскажите, пожалуйста, как сделать так, чтобы БТР и вертолёты перестали стрелять.

Сталкеры, подскажите, пожалуйста, как сделать так, чтобы БТР и вертолёты перестали стрелять.

 

 

 

В файле S.T.A.L.K.E.R / gamedata / config / scripts / esc / esc_blockpost_btr

 

меняем это и бтр игнорируют ГГ

 

[logic]

active = ph_car@idle

on_hit = hit

 

[hit]

on_info = %+esc_blockpost_alarm%

 

[ph_car@idle]

target=bandit здесь бандит вместо актор

fire_range=80

fire_repeat=50

auto_fire=true

track_target=true

on_info = {=gulag_casualities_ge(esc_blokpost:5)} ph_car@eliminate, {+esc_blockpost_alarm} ph_car@eliminate

on_death_info = esc_btr_killed

 

[ph_car@eliminate]

target=bandit и здесь бандит вместо актор

fire_range=120

fire_repeat=50

auto_fire=true

track_target=true

on_info = {+esc_blockpost_normal} ph_car@idle

on_death_info = esc_btr_killed

 

  • Спасибо 1
target=bandit и здесь бандит вместо актор

При таком варианте, конечно же, в ГГ перестанет стрелять, но и по бандитам не начнёт. Для техники целью может быть либо actor, либо story_ID. Но никак не коммьюнити :)

Почему? создается поисковик, по расстоянию, и фильтры.

Потом все что прошло фильтры, по нему и стреляет....

target=bandit и здесь бандит вместо актор

При таком варианте, конечно же, в ГГ перестанет стрелять, но и по бандитам не начнёт. Для техники целью может быть либо actor, либо story_ID. Но никак не коммьюнити :)

 

 

Почему? создается поисковик, по расстоянию, и фильтры.

Потом все что прошло фильтры, по нему и стреляет....

 

Когда это делал даже не задумывался будет бтр стрелять по бандитам или нет

Нужно было чтоб он в ГГ не стрелял

 

P.S

Спасибо за новую информацию

Здравствуйте. Хочу попробовать делать моды, сразу уже есть несколько идей, имел дело только с all.spawn и текстурами, если подскажете, то это будет первый опыт в скриптах. Начнем с самого простого.

 

1.Хочу заспавнить НПЦ по определённым координатам (Снайперов на ЖД насыпи на кордоне) Но дело в том то я не знаю как им написать логику что у тех вояк, ну то есть, за бутыль водки чтоб не валили. Буду очень благодарен если кто-то выложит подробную инструкцию как это делается (с объяснениями, а не готовое решение - мне же научится нужно)

 

2. Хочу прикрутить несколько карт в сталкер:

а) Можно ли взять карты из сталкера для сетевой игры? - например я в баре хочу переход сделать чтоб переходило в Тир. Что-то типа арены, но задумка другая.

б) Как прикрутить тот же Леманск и прочее. Я знаю что они пустые будут, по этому я сначала спросил как спавнятся НПЦ через скрипт.

 

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

 

Как редактировать карту я решение нашел, там всё понятно.

 

Та и всё остальное что я хочу сделать вроде бы понятно.

 

 

(создал тему ао этому вопросу, а там даже просмотров нету :( типо игнорируют)

1.Хочу заспавнить НПЦ по определённым координатам (Снайперов на ЖД насыпи на кордоне) Но дело в том то я не знаю как им написать логику что у тех вояк, ну то есть, за бутыль водки чтоб не валили. Буду очень благодарен если кто-то выложит подробную инструкцию как это делается (с объяснениями, а не готовое решение - мне же научится нужно)

 

Я сам очень мало знаю но в логике военных под мостом присутствует это

 

combat_ignore_cond = {-esc_bridge_pass_fire =fighting_actor =is_alive(032)}

 

Если у твоих снайперов будет тоже то они не должны валить ГГ

Возможно я ошибаюсь пусть знаюшие поправят

FATAL ERROR

 

[error]Expression : fatal error

[error]Function : CScriptEngine::lua_error

[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp

[error]Line : 73

[error]Description : <no expression>

[error]Arguments : LUA error: No such operator defined

 

Что это значит?

People!

Как,через скрипт, сделать НПЦ врагом ?

 

Я пробывал так:

function название_функции()

if db.actor ~= nil then

local rep = relation_registry.npc_badwill("НПЦ", db.actor:id())

rep = rep - 250

relation_registry.set_npc_badwill ("НПЦ", db.actor:id (), rep)

end

end

 

и

function enemy()

npc:set_relation (game_object.enemy, actor)

end

 

Эффекта 0..

 

 

Monnoroch

О_о

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

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

Характеристики "слюды"(как и любого другого арефакта оригинальной игры) находятся в файле gamedata/config/misc/artefacts.ltx, сам артефакт зовется там [af_ameba_mica]

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

Влад, а ты сравни мою функцию и твою.

И еще - где ты берешь npc?

 

=========

 

Kirag, ну разжевал....

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

Monnoroch, такой лог означает, что ты пытаешься сделать что-то, что игра ну совсем не понимает. У меня такое бывает, например, когда пытаюсь вывести переменную в сообщение/в лог, а переменная у меня по недосмотру оказывается, скажем, таблицей.

 

Влад

 

По 1 способу - теоретически, могло бы прокатить, если бы вместо badwill вернуть goodwill. Не знаю, правда, что именно таким образом установится, но параметра badwill в игре нет в принципе, да и в английском языке - не уверен.

 

По 2 способу - не определено, что такое npc. Это должен быть game object, и его удобнее передавать в функцию из того скрипта, где он определяется, нежели определять внутри функции (сама функция может много где понадобиться). Также вместо actor нужно писать db.actor, иначе будет возмущаться по поводу того, что переменная actor равна nil. Т.е. допустим, ты в основном скрипте каким-то образом получил объект npc. Тебе надо сделать его врагом. Пишешь в основном скрипте строку:

enemy(npc)

 

И сама функция(должна находиться в том же файле, что и основной скрипт, из которого вызывается):

 

function enemy(npc)

npc:set_relation (game_object.enemy, db.actor)

end

 

P.S. Если функция enemy(npc) находится в другом файле, например, в файле file.script, вызывать ее надо уже так:

file.enemy(npc)

Спасибо за ответы про бтр. Всё работает, БТР в ГГ не стреляют :good:

 

-----------------------------------------------------------------------------------

1) Подскажите, пожалуйста, как создать новую стоянку для сталкеров

2) Какой файл отвечает за стартовый набор предметов ГГ

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

strelokk

 

1. Это тебе нужно новый гулаг делать. Только через алл.спавн (или есть варианты, может знает кто?). Тебе нужно в алл.спавне добавить смарт террейн и прописать пути. Потом в скриптах гулага определить его состояния и набор работ. Ну и для каждой работы прописать логику. Задачка в целом не очень сложная, но возни очень много.

 

2. В идеале - config\gameplay\characters_desc_general.xml. Но есть одна проблема (по крайней мере, в чистой игре это так) - все то, что прописано в этом файле, заблокировано в алл.спавне в логике актора секцией [dont_spawn_charactrer_supplies]. Удали ее оттуда, и можно будет задавать стартовый инвентарь из указанного файла.

Ну, либо сделать скриптовый спавн в начале игры.

strelokk

Как проще: берешь xrSpawner, ACDC тут даже и не нужен, открываешь all.spawn, находишь секцию actor и редактируешь, там легко, сразу видно стартовый инвентарь. Единственное, конечно, новая игра.

Эка странность творится.

Работает метод:

db.actor:item_in_slot(6):set_condition(db.actor:item_in_slot(6):condition() - 0.01)

 

Но НЕ работает:

db.actor:item_in_slot(6):set_condition(db.actor:item_in_slot(6):condition() + 0.01)

 

Никто не обьяснит почему?

И как тогда можно отремонтировать броню на 1%?

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

Monnoroch,

А если в качестве эксперимента попробовать несколько раз увеличить на 1 процент? Может меняется, но просто округляется при выводе.

malandrinus, я это дело раз в секунду делаю...ну попробую на 5%.

 

Нет,не работает даже так:

db.actor:item_in_slot(6):set_condition(db.actor:item_in_slot(6):condition() + 0.1)

===========

 

А еще не подскажете как правильно давать деньги НПСу?

 

npc:give_money(a) - это я знаю,но там еще кое-где в коде есть game_stats.money_quest_update(a) - это зачем?

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

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

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

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

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

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

Войти

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

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

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