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

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


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

_Призрак_, лови - http://stalker-2.com.ua/Stalker-COP.exe файл до завтра держую

а насчет функции - on_game_timer именно засекает время, т.е обычный таймер и нужен, чтобы по прошествии передаваемого промежутка времени возвращал true

 

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

А насчет функции - кажись сам нашел, от это оно:

Проверка на заданный период времени

Время задается в минутах

Параметры: (time_shift:period_min)

time_shift - периодичность срабатывания

period - период срабатывания на котором мы получаем true

 

Примеры:

time_period(60:10) - возвращает true каждый час на протяжении первых 10 минут

 

 

И еще вопрос - а можно заспавнить один и тот же сквад сразу в нескольких количествах со старта? Потому что в start_position прописывается только один скавад и спавнится он один раз, а потом только если в респавн количество загонишь, то он постепенно набирается, а нужно чтобы сразу заселение было (это к предыдущему вопросу по заселению базы). А иначе придется прописывать несколько однотипных сквадов типа gar_a1_stalker_1_squad, gar_a1_stalker_2_squad.. ит.т.п.. что вроде тоже не есть хорошо...

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

А что собственно мешает?

Ты только посмотри чтобы у тебя не было одинаковых стори_айди и таргет_смарт был пуст

Freedom

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

я создал нового НПС но с ним нельзя поговорить "Иди к старшему" как это исправить ?

вот профиль:

<specific_character id="zat_vagon" team_default="1">
        <name>Вагон</name>
        <icon>ui_inGame2_neutral_2_mask</icon>
        <map_icon x="1" y="0">
        </map_icon>
        <bio>Опытный сталкер. Детальная информация отсутствует.</bio>

        <class>zat_vagon</class>
        <community>stalker</community>
        <terrain_sect>stalker_terrain</terrain_sect>
        <snd_config>characters_voice\human_02\stalker\</snd_config>

        <rank>35</rank>
        <reputation>0</reputation>

        <visual>actors\stalker_neutral\stalker_neutral_2_mask</visual>
        <supplies>

        [spawn] \n
        stalker_outfit_barge =1 \n
        wpn_ak74 \n
         ammo_5.45x39_fmj = 1 \n
        wpn_fort \n
        ammo_9x18_fmj = 1 \n
        grenade_rgd5 = 1 \n

#include "gameplay\character_items_2.xml"
#include "gameplay\character_food.xml"
#include "gameplay\character_drugs_3.xml"
    </supplies>
#include "gameplay\character_criticals_4.xml"
                <start_dialog>zat_a2_stalker_barmen_start_dialog</start_dialog>
                <actor_dialog>vodka_quest_dialog</actor_dialog>
                <actor_dialog>vodka_quest_prines</actor_dialog>
                <actor_dialog>actor_break_dialog</actor_dialog>
#include "gameplay\character_dialogs.xml"
  </specific_character>

 

 

Крупные куски - под спойлер!

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

В ЗП сквады нужно создавать. Если нужен эксклюзив - сквад из одного человека. Хотя я помню когда еще не знал этого, спавнил в сдк непися, прописывал логику и диалоги и все работало...

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

А сталкервики на что? http://stalkerin.gameru.net/wiki/index.php...7_smart_terrain

 

А я тут такую картину интересную наблюдал - а сквады сами по себе пересобираются?

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

И еще вопрос - как сделать, чтобы при рандомном выборе неписей в скваде командиолм был именно тот, который нужен? Ну допустим я хочу сделать:

npc_random = опытный, новичек

npc_in_squad = 2, 3

И чтобы опытный был всегда командиром, а при такой схеме не получается, все равно рандом. А писать npc = опытный, новичек, новичек - неинтересно, потому как все время одинаковое кол-во будет...

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

Clayman

Попробуй так:

Файл sim_squad_scripted.script

~580 строка

Замени:

for i = 1,random_count do
    local random_id = math.random(1, #random_spawn)
    self:add_squad_member(random_spawn[random_id], base_spawn_position, base_lvi, base_gvi,random_id)
end

на

self:add_squad_member(random_spawn[1], base_spawn_position, base_lvi, base_gvi,random_id)
for i = 2,random_count do
    local random_id = math.random(2, #random_spawn)
    self:add_squad_member(random_spawn[random_id], base_spawn_position, base_lvi, base_gvi,random_id)
end

И тогда у тебя всегда будет в отряде первый человек, прописанный в npc_random и он всегда будет командиром

 

Po-meceniy

local npc = ... --получаем любым способом НПС

local npc_rank = npc:rank()

В теории должно сработать

Изменено пользователем _Призрак_

Freedom

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

Как все нормальные люди решил перейти на universal ACDC, но далеко не ушёл: даже при распаковке ПЫСовского спавна вот такой сюрприз:

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

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

abramcumner, чё его выкладывать-то..? Качал со сталкерина по этой ссылке.

И - да! - патч крайний (1602)

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

Выводы модмейкера:

1)Вылетает - это хорошо. Значит, работает :)

2) Если хочешь сделать что-то хорошо, делай сам!

3) Если падёшь духом, падёт и мод.

4) Он живой... :o

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

SibireaStalker, ну, скажем так, это у тебя не совсем пысовский спавн. Оригинальный спавн распаковывается на ура. Такая ошибка возникает при попытке разобрать спавн, который до этого был собран обычным acdc для ЗП. Этот acdc из-за немного глючного алгоритма паковки структур типа l8szbv пишет дополнительные байты в секции M_STATE смарт-каверов - вроде по два нулевых байта на одну бойницу. Я в un_acdc это исправил и поставил вылет при распаковке, если есть такие "левые" байты. Зря, наверное, мало ли людей будут вот так же распаковывать старые спавны. Как бы то ни было, в репозитории уже давно лежит un_acdc, в котором принудительный вылет типа state left заменен на вывод предупреждения.

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

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

Камрады, если кто сталкивался, подскажите :

1. какая функция отвечает за сбор НПСами артефактов и где её найти ?

2. какая функция и в каком в каком файле отвечает за перевод ГГ в офлайн после гибели?

Изменено пользователем Серый Волк
Ссылка на комментарий
Серый Волк, это не функция, это работа в смарте и путь в спавне который называется смарт_collector_1_walk (look), где в точках пути look прописаны анимации с детектором. А вот находясь на этой работе, собирают ли действительно нпс арты (т.е. перемещаются ли арты из аномальной зоны в инвентарь к нпс) я не заметил.
Ссылка на комментарий
Серый Волк, по поводу 2 вопроса: почему ты решил, что после гибели гг переводится в оффлайн? Может там просто включается вид от 3 лица? Тогда же и появляется надпись "Игра окончена". Воспользуйся поиском, и сначала найди, где выводится эта надпись.
Жду ли я Сталкер 2? Хм...
Ссылка на комментарий

PavelSnork,

почему ты решил, что после гибели гг переводится в оффлайн

на форуме где-то давно прочитал, уже не помню где именно ("скиптование и спаун" или "функции и классы"), но этот момент запомнил.

 

скрипт с функциями окончания игры я нашел, но по-моему это не совсем то, что мне нужно.

function _main()
    game_over_dlg = ui_game_over.dlg_game_over()
    level.start_stop_menu(game_over_dlg,true)
end

class "dlg_game_over" (CUIScriptWnd)

function dlg_game_over:__init() super()
   self:InitControls()
end

function dlg_game_over:__finalize()
end

function dlg_game_over:InitControls()
    local xml             = CScriptXmlInit()
    xml:ParseFile        ("ui_game_over.xml")
    xml:InitWindow        ("main",0,self)
     
    local st             = xml:InitStatic("background", self)
    self.scroll_view     = xml:InitScrollView("scroll", st)
    
    for nm = 0, 30 do
    local pth = "item_"..nm
    
     local itm = xml:InitStatic        (pth, nil)
    
    if itm ~= nil then
        xml:InitAutoStaticGroup        (pth..":auto", itm)
        self.scroll_view:AddWindow    (itm, true)
        else 
            break
        end
    end
    
    self.scroll_view:ScrollToBegin()
    self.min_pos = self.scroll_view:GetMinScrollPos()
    self.max_pos = self.scroll_view:GetMaxScrollPos()
    self.cur_pos = self.min_pos
    self.scroll_view:SetScrollPos(self.cur_pos)
    self.start_time = time_global()
    
end

function dlg_game_over:Update()
    CUIScriptWnd.Update(self)
    
    local dt = time_global()-self.start_time
    
    self.cur_pos = self.min_pos+dt*0.35
    
    self.scroll_view:SetScrollPos(self.cur_pos)
    
--    if(self.cur_pos>=(self.max_pos)) then
--            self:GetHolder():start_stop_menu(self,true)
--    end
    
end

function dlg_game_over:OnKeyboard(dik, keyboard_action)
    CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
    
    if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
    if dik == DIK_keys.DIK_ESCAPE then
            self:GetHolder():start_stop_menu(self,true)
        end
    end
    return true
end

 

здесь описаны функции которые должны происходить уже после смерти ГГ (выход в меню, нажмите клавишу и т.д.)

 

Видимо я неправильно выразился:

При ранениях и т.п. значение здоровья уменьшается до "0" и после этого ГГ умирает. Так вот, мне нужно найти функцию/конфиг которые отвечают за смерть ГГ, что бы значение не доходило до "0", а допустим до "0.1" и с этого момента запустить анимацию/постэффект и т.д.

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

Кто знает, по какому принципу НПС "одевают" фонари ночью - это логика, скрипт или движок (про слот и наличие в инвентаре предмета объяснять не нужно)? Просьба знающих откликнуться и прокомментировать... или хотя бы указать где искать...

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

Say "No" to "Thirst Avenger"

Ссылка на комментарий
Antnigm, по принципу того, что наступает ночь. И это правда так, т.к. ровно в 21:00 любой НПС который находится вне рестриктора sr_light (где прописывается возможность НПС юзать\не юзать фонари в любое время суток) включает фонарик. А уж движковое это или нет - лично я незнаю :).
Ссылка на комментарий
iDreD, имелось ввиду - где-нибудь можно отрегулировать, чтобы, например, НПС одевали фонари раньше/все время их носили и включали позже? Название файла логики в общем интересует... Изменено пользователем Antnigm

Say "No" to "Thirst Avenger"

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

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

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

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

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

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

Войти

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

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

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