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

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


Halford

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

Активная логика : ph_button@closed

С неё нет перехода на другии секции логики. Вот и будет всё-время closed.

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


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

Портвейн, файл bind_stalker.script,   функция  spawn_achivement_items. В вызове вместо 4 поставте другое количество пачек патронов. Там же редактируется и время выдачи.

 

if game.get_game_time():diffSec(self.last_detective_achievement_spawn_time) > 43200 

 

43200/60/60 = 12 часов. Каждые 12 часов.

 

rallod, работайте с секцией stalker_immunities в файле m_stalker.ltx

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

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


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

kiv@, не жить вчерашним днём!

В ЗП, НПС спавнятся, во время игры, при помощи функции create_squad или, до начала новой игры, при помощи "прописки" сквада в файле simulation.ltx

На крайний случай, если нужно спавнить "отдельного" НПС - используется функция spawn_object.

Про all.spawn  можете забыть.

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

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


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

 

 


Подскажите какой схемой или каким набором функций можно заставить мутантов бежать на ГГ и атаковать его?

Для аддона Время Альянса я писал схему mob_companion. Монстр начинает атаковать ГГ по всей локации, пока не будет убит. Если в схему прописать игнорирование ГГ, как врага, то монстр сопровождает ГГ и нападает на всех сталкеров, приближающихся к ГГ.

Пользуйтесь на здоровье.

 

 

 


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

Никак. В этом же аддоне проблема была обойдена следующим образом. Пока ГГ внутри БТР, все хиты получает корпус БТР. При разрушении БТР, ГГ выкидывает из БТР. Ну а дальше решайте сами -  убить ГГ или оставить в живых.

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


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

Посмотрите вот этот параметр

discounts =

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

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


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

Почти все онлайновые объекты хранятся в таблицах файла db.script

Вот из таблиц и возьмите те объекты, которые нужны для работы функции.

Или сделайте свои таблицы, чтобы при переходе в онлайн, туда сразу помещались объекты, необходимые для работы функции.

 

А вообще-то, в CoP принято находить нужный объект по его story_id. 

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

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


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

Функция hit_actor есть и в файле xr_effects.script в ЗП.

Раскомментируйте её.

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


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

Попробуйте логику рестриктора вот такую

 

[logic]
active = sr_idle@start

[sr_idle@start]
on_info =  {-svoboda_leader_task_complete}  %=disable_level_changer(val_to_desc_1)%
on_info2 = {+svoboda_leader_task_complete}  sr_idle@end  %=enable_level_changer(val_to_desc_1)%
[sr_idle@end]
 

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


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

makdm, всё равно переход работает в любом случае :(

В секции левел_ченджера вместо вот этого

 

custom_data = <<<END

 

попробуйте написать вот так

 

custom_data = <<END

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


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

И так и так пробовал - не помогает... :(

Если я не ошибаюсь, в ЗП предметы (объекты), которые ГГ может поднять в рюкзак, не могут иметь логики.

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

 

Например вот так

 

Для этого на локации в начале игры проспавните объект вот с такой секцией

 

[calendar_fake_info]:inventory_box
visual                = dynamics\new_dynamics\roll\calendar_0.ogf
custom_data = scripts\calendar_fake_info.ltx
 
Секцию пропишите в devices.ltx ниже секции [inventory_box]
 
Далее в файле calendar_fake_info.ltx
пропишите логику вот такую
 
[logic]
active = ph_idle@notup
 
[ph_idle@notup]
nonscript_usable = false
on_info = {+calendar_find_enable} ph_idle@nil %=destroy_and_spawn_new_object(calendar_0_info)%
 
[ph_idle@nil]
 
Добавьте в файл xr_effects.script следующую функцию
 
function destroy_and_spawn_new_object(actor, obj, p)
 
if p and p[ 1 ] then
local section = tostring( p[ 1 ] )
local s_obj = alife():object( obj:id() )
if s_obj then
local position, lv_id, gv_id = s_obj.position, s_obj.m_level_vertex_id, s_obj.m_game_vertex_id
alife():create( section, position, lv_id, gv_id )
alife():release( s_obj, true )
end
end
 
end
 
Ну и соответственно в файле quest_items.ltx должна быть прописана секция calendar_0_info
 
После выдачи инфопоршня фейковый объект удалится и проспавнится новый, который ГГ сможет поднять в рюкзак

 

 

Изменено пользователем makdm
  • Спасибо 1

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


Ссылка на сообщение
Новая проблема!

Что мешает развернуть серверный объект на 90 градусов против часовой стрелки вокруг оси Y до его вывода в онлайн?

 

Попробуй так

 

local s_obj = alife():create( spawn_section,  position,  level_vertex_id,  game_vertex_id )

s_obj:set_yaw( 90 * math.pi  /  180 )

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

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


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

 

 

отрабатывает и при загрузке сейва, и при взятии предмета во время игры.

Абсолютно верно.

 

 

 

Можно ли отследить в какой момент оно вызывается?

У объекта меняется его parent_id. Можете поставить колбэк и отследить этот параметр.

Вопрос  - зачем это нужно? Сам колбэк on_item_take и есть обработка события.

  • Спасибо 1

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


Ссылка на сообщение
Не очень сумбурно?

Всё понятно теперь.

Можно из файла xr_s.script поднять флаг в скрипте разрядки при загрузке игры. И при первом же апдейте его сбросить.
Функция on_game_load()
имя_скрипта.имя_флага = true
Изменено пользователем makdm
  • Спасибо 1

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


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

 

 

Какие скрипты отвечают за появление различных видов брони в трупах?

 

Никакие.

Можете сами сделать спавн любого вида брони в труп при срабатывании колбэка death_callback в файле xr_motivator.script

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


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

 

 

Одна будет там из-за скрипта, другая от разработчиков.

С этого момента поподробнее про разработчиков. И в каком это моменте игры в чистом ЗП выпадает броня с трупов?

У НПС нет брони. Всё что вы видите в игре - это визуал НПС. И броне просто неоткуда выпасть.

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


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

 

 

Чтоб иногда она спавнилась, а иногда - нет

 

if math.random(1,100) <= 25 then

 

Вероятность спавна 25 %

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


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

 

 

Что тогда делать?

1.Установить Total Commander

2. Запустить Total Commander

3. Перейти в папку gamedata игры

4. alt F7

5. Поиск в файлах с текстом СЫЧ

6. Находим st_characters.xml

7. Открываем и находим st_zat_b30_owl_stalker_trader_name

8. Повторяем пункт 5 с текстом st_zat_b30_owl_stalker_trader_name

9. Находим character_desc_zaton.xml

10. Открываем и находим zat_b30_owl_stalker_trader

11. Повторяем пункт 5 с текстом zat_b30_owl_stalker_trader

12. Находим zat_b30_owl_stalker_trader.ltx

13. Открываем файл и видим cover_name = zat_a2_sc_trader

14. В распакованном all.spawn повторяем пункт 5 с текстом zat_a2_sc_trader

15. Радуемся, что нашли координаты Сыча.

:)

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


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

 

 

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

SDK в помощь.

  • Согласен 1

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


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

 

 

Но объект не "шевелится" - как стоял в idle, так и стоит

Для начала поменяй схему ph_idle на ph_button

  • Спасибо 1

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


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

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