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

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


Halford

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

Доброго дня. Подскажите, как убрать основные задания в ЗП? Хочу сделать полный фриплей с самого начала игры.

 
Цитата

 

Сообщение от модератора Halford
Выдать сразу инфопоршн "остатся взоне".

db.actor:give_info_portion("pri_a28_actor_in_zone_stay")

ПС: не уверен, что сработает, к тому же сносить тогда все квесты нужно...

 

 

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

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


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

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

 

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

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


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

Доброго дня. Подскажите, как убрать на фонаре "улыбающийся смайлик"?

 

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

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


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

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

 

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

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


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

Пытался сделать по аналогии с ТЧ, но ничего не вышло. Вы что-то говорили насчёт скриптов. Можете показать на примере, как реализовать подобное? Заранее спасибо.

 

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

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


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

Доброго дня. Подскажите, каким образом можно изменить иммунитет определённого персонажа? Задался целью сделать Спартака и его группу бессмертными.

 

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

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


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

В логику твоего НПС-а добавь это:

anim = wounded_heavy_3

 

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

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


Ссылка на сообщение
Цитата
Подскажите, пожалуйста, в каких файлах хранятся настройки параметров выброса (вспышки света, и т.д.)?

Здесь:

gamedata/scripts/surge_manager

 

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

Почему же нельзя? Можно.

В качесиве одного из вариантов вызови из логики NPC функцию kill_npc.

 

Пример:

[logic]
active = remark

[remark]
on_info = {+твой инфопоршень} %=kill_npc%

 

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

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


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

1. Wookie, судя по всему:

slot = -1

 

2. Chyvak_2000, смотри здесь:

sounds\characters_voice\scenario\название локации

 

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

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


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

Tris, добавь ему в логику эту строку:

on_info = %=destroy_object%
 

Можно проделать это и через скрипт:

function remove()
   for a=10,65635,1 do
      local obj=alife():object(a)
      if obj then
         if string.find(obj:name(),"name") then
            alife():release(obj,true)
         end
      end
   end
end
 
Изменено пользователем Jurok

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


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

Juny Knife, уважайте людей, к которым решили обратиться за советом. Покажите всю логику персонажа.

 

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

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


Ссылка на сообщение
Цитата
как заспавнить раненого?

Docpsix, можно посмотреть, как это выглядит в логике Щепки или иного персонажа.

Вот, как один из вариантов:

 

[logic]
active = remark

[remark]
...;дополнительные проверки, схемы, анимации и пр. (думаю, объяснять не надо?)
wounded = wounded@npc

[wounded@npc]
hp_state = 101|wounded_heavy@nil
hp_state_see = 101|wounded_heavy@nil
hp_victim = 101|actor
hp_cover = 101|false
hp_fight = 101|false
autoheal = false
not_for_help = true
 

Artos, согласен, никто об этом и не спорит.

Я лишь показал, как заставить работать его изначальный вариант. Если где-то не так выразился - приношу искренние извинения.

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

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


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

Callisto,

1. Открываем файл:

scripts\xr_effects

 

2. Добавляем туда свою функцию:

function test_func()
...
end

 

3. Открываем файл логики рестриктора:

configs\scripts\zaton\zat_b101_logic

 

4. Находим строчку:

[sr_idle]
on_info = {!black_screen -zat_b101_give_task +zat_a1_game_start} sr_idle@save %=give_task(zat_b101_heli_5_crash) +zat_b101_give_task =give_task(jup_b8_heli_4_crash) +jup_b8_give_task =give_task(zat_b28_heli_3_crash) =give_task(zat_b100_heli_2_crash) =give_task(jup_b9_heli_1_crash) +jup_b9_give_task =set_active_task(zat_b28_heli_3_crash)%

 

5. Заменяем на эту:

[sr_idle]
on_info = {!black_screen -zat_b101_give_task +zat_a1_game_start} sr_idle@save %=give_task(zat_b101_heli_5_crash) +zat_b101_give_task =give_task(jup_b8_heli_4_crash) +jup_b8_give_task =give_task(zat_b28_heli_3_crash) =give_task(zat_b100_heli_2_crash) =give_task(jup_b9_heli_1_crash) +jup_b9_give_task =set_active_task(zat_b28_heli_3_crash) =test_func%

 

6. Готово.

 

 

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

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


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

FANAT,

И вот еще, арты можно сделать видимыми как в ТЧ они валяются?

В конфигах каждого артефакта можно найти следующую строку:

af_rank = 1

Также, могут стоять значения "2" и "3". Они отвечают за то, какие детекторы могут их «засветить».

 

Если стоит "1" - артефакт «засвечивается» детектором «Отклик» (и более современными моделями);

Если стоит "2" - артефакт «засвечивается» детектором «Медведь» (и более современными моделями);

Если стоит "3" - артефакт «засвечивается» детектором «Велес» (и его модификацией, детектором «Сварог»);

 

Если же поставить число "0" - артефакт станет видимым без использования какого-либо детектора (аля ТЧ).

 

Вот и весь секрет.

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


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

@.Сергей., если необходимо, чтобы оружие не подбирал какой-то конкретный (квестовый) персонаж, достаточно добавить в его логику нижеследующую строку:

gather_items_enabled = false

Смотри по примеру логик других персонажей, например торговца Сыча (configs\scripts\zaton\zat_b30_owl_stalker_trader.ltx).

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

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


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

Для того, чтобы вырезать тревогу на базах, в файле smart_terrain_control.script достаточно "закомментить" следующие строки:

-- Устанавливает, что игрок атаковал смарт
function CBaseOnActorControl:actor_attack()
if self.status ~= ALARM then
local sound = xr_logic.pick_section_from_condlist(db.actor, self.smart, self.alarm_start_sound)
--' Озвучка на начало атаки.
if sound ~= nil then
xr_sound.set_sound_play(db.actor:id(), sound)
end
for squad_id,squad in pairs(sim_board.get_sim_board().smarts[self.smart.id].squads) do
game_relations.set_squad_goodwill(squad_id, "enemy")
end
end
self.status = ALARM
self.alarm_time = game.get_game_time()
end

 

 

 

-- Устанавливает, что игрок атаковал смарт
function CBaseOnActorControl:actor_attack()
--[[
if self.status ~= ALARM then
local sound = xr_logic.pick_section_from_condlist(db.actor, self.smart, self.alarm_start_sound)
--' Озвучка на начало атаки.
if sound ~= nil then
xr_sound.set_sound_play(db.actor:id(), sound)
end
for squad_id,squad in pairs(sim_board.get_sim_board().smarts[self.smart.id].squads) do
game_relations.set_squad_goodwill(squad_id, "enemy")
end
end
self.status = ALARM
self.alarm_time = game.get_game_time()
]]--
end

 

 

 

Как итог: больше не будет активироваться соответствующая реплика, а двери останутся открытыми.

 

Разумеется, это самый простой (и не далеко не лучший способ). Дальше придётся дорабатывать самому.

Изменено пользователем Jurok
  • Нравится 1
  • Полезно 3

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


Ссылка на сообщение
Цитата
можно ли через скрипт сменить группировку у нпс и если можно то как?

 

cl_obj:set_character_community("zombied", 0, 0)

 

Изменено пользователем Jurok
  • Нравится 1
  • Полезно 1

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


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

 

Как выдать ГГ инфопоршень при подбирании этих документов?

 

Создаём функцию

function on_item_take(obj)
if (not has_alife_info("инфопоршень") and obj:section()=="предмет") then
give_info("инфопоршень")
end
end

А затем указываем в bind_stalker.script

...
end
treasure_manager.get_treasure_manager():on_item_take(obj:id())
название_скрипта.on_item_take(obj)
end
...

P.S. И ни в коем случае не ставь её на апдейт. :)

 

 

 

 

Jurok, я менял группировку скриптом...
 
Собственно, к чему это было адресовано мне? Перечитай предыдущую страницу.  :)
 

 

 

Изменено пользователем Jurok
  • Нравится 1

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


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

Можно реализовать и через рестриктор (как у пыс).

[logic]
active = sr_idle@control

[sr_idle@control]
on_info = {-инфопоршень =actor_has_item(предмет)} sr_idle@nil %+инфопоршень%

[sr_idle@nil]

 

 

Изменено пользователем Jurok
  • Нравится 1

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


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

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