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

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


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

@dukekan, Подмена модели детектора на каждую настройку и применение анимации .seq для мигания светящихся кнопочек, не понимаю зачем изобретать новые методы подмены текстуры?

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

Мне нужно не мигание, а именно то, что кнопка загорается при выполнении какого-то скриптового условия, так что seq не пройдёт. Вариаций условий может быть много, поэтому подменой модели хоть и можно, но на дворе 2016 год, может надо уже делать потехнологичнее?

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

dukekan, На дворе 2016 год, а двиг 2006 года. Как все - импровизируй, делай как возможно.

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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

@BoBaH_671, конечно можно, точно так же, как в ТЧ. Но есть одно отличие - запись/чтение здесь приходится принудительно ставить в начало пакета при его создании:

local pk = net_packet() -- создаем пакет
pk:w_begin(0) -- ставим запись на начало и записываем 2 байта
sobj:STATE_Write(pk) -- считываем данные из объекта
pk:r_seek(2) -- ставим чтение на начало с учетом записанных ранее двух байт
Ну а дальше как и в ТЧ.
  • Спасибо 2

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

А кто знает как сделать, чтобы, если условие не выполняется, то действие возвращается в начало функции?

Вот кусок для наглядности:

function zat_give_treasure_to_actor(first_speaker, second_speaker)
       local a = math.random(1,3)
       if a == 1 then
                        if not has_alife_info("zaton_give_treasure1_done") then
                                spawn_treasure.random_spawn_zaton_1()
                                give_info("zaton_give_treasure1_done")
                        else return a
       end
         if a == 2 then
                        if not has_alife_info("zaton_give_treasure2_done") then
                                spawn_treasure.random_spawn_zaton_2()
                                give_info("zaton_give_treasure2_done")
                        else return a
       end
         if a == 3 then
                        if not has_alife_info("zaton_give_treasure3_done") then
                                spawn_treasure.random_spawn_zaton_3()
                                give_info("zaton_give_treasure3_done")
                        else return a
       end
end

Тут "return a" я так понимаю не то, что нужно. 
Изменено пользователем e1_nin0
Ссылка на комментарий

@e1_nin0, не совсем понятно, что ты хочешь этой функцией сделать. Выдать сразу все три тайника (или чего там)? Так это можно в менее извращенной форме сделать.

А вызов функцией самой себя делается так же, как и обычно. В твоем случае:

else zat_give_treasure_to_actor(first_speaker, second_speaker)
Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
naxac,  я тут "end"ы потерял. Хочу рандомно выдавать разные тайники до тех пор, пока они не закончатся.

function zat_give_treasure_to_actor(first_speaker, second_speaker)

local a = math.random(1,3)

      if a == 1 then

             if not has_alife_info("zaton_give_treasure1_done") then

                   spawn_treasure.random_spawn_zaton_1()

                   give_info("zaton_give_treasure1_done")

             else return a

             end

      end

      if a == 2 then

              if not has_alife_info("zaton_give_treasure2_done") then

                    spawn_treasure.random_spawn_zaton_2()

                    give_info("zaton_give_treasure2_done")

              else return a

              end

       end

       if a == 3 then

              if not has_alife_info("zaton_give_treasure3_done") then

                     spawn_treasure.random_spawn_zaton_3()

                     give_info("zaton_give_treasure3_done")

             else return a

             end

       end

end

 

Вот только return - совсем не то.

____________________________________________________________________________________________________
Все, я понял. Вызов функции самой себя, спасибо :good:

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

@e1_nin0, сначала проверяй выданные по поршням, а потом рандомно выбирай один из невыданных.

Что-то вроде этого:

function zat_give_treasure_to_actor(first_speaker, second_speaker)
    local t = {}
    for i=1, 3 do -- кол-во тайников
        if not has_alife_info("zaton_give_treasure"..i.."_done" then
            t[#t+1] = i
        end
    end
    if #t == 0 then return end -- тайники закончились
    local n = t[math.random(#t)]
    spawn_treasure["random_spawn_zaton_"..n]()
end
Изменено пользователем naxac
  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

naxacА где мне прописать выдачу поршней?


Добавил выдачу поршня в конец функции. Запуск через диалог. Ничего не спавнит.

function zat_give_treasure_to_actor(first_speaker, second_speaker)
    local t = {}
    for i=1, 5 do -- кол-во тайников
        if not has_alife_info("zaton_give_treasure"..i.."_done" then
            t[#t+1] = i
        end
    end
    if #t == 0 then return end -- тайники закончились
    local n = t[math.random(#t)]
    spawn_treasure["random_spawn_zaton_"..n]()
    give_info("zaton_give_treasure"..n.."_done")
end

Скобка потерялась всего-то :)

Изменено пользователем e1_nin0
Ссылка на комментарий
А как запустить звук через скрипт?

Обыкновенно: глянуть в "Справочнике по ф-циям и классам" ф-ции для работы со звуком, глянуть готовые примеры в исходных скриптах ПЫСов, запустить и радоваться...

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

UnLoadedСсылка на "Класс sound_object. (проигрывание звуков в игре в произвольном месте, от произвольного объекта, в голове актора)" битая.

Нашел нужный скрипт xr_sound.script, функция function set_sound_play(npc_id, sound, faction, point).

xr_sound.set_sound_play(db.actor:id(),"нужный_звук").

Изменено пользователем e1_nin0
Ссылка на комментарий
Нашел нужный скрипт xr_sound.script, функция function set_sound_play

Данная ф-ция(если я не ошибаюсь), предназначена для проигрывания зарегистрированных в файле sound_theme.script "звуковых тем".

Если надо проиграть одиночный звук из файла, то это все-же проще сделать ф-циями класса sound_object. Насчет битой ссылки - думаю поправят...

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

Решил перенести монстров из ЧН в ЗП.

В ЗП были удалены многие анимации, некоторые заменены, а некоторые и вовсе новые.

Да и как-то старый видочек полигонажей у монстров поприятнее\ТСС.

Приходилось через СДК добавлять новые анимации методом копипаста старых и переименовании в новых. Всех монстров адаптировал... Кроме бюрера.

В чём проблема:

Когда Бюрер отбегает, он решает, я так понял, использовать анимацию stand_power_attack_0. 

При этом должен воспроизвести звук... Но беда.

 

В итоге вылет:

 

 

FATAL ERROR
 
[error]Expression    : assertion failed
[error]Function      : CSoundPlayer::play
[error]File          : D:\prog_repository\sources\trunk\xrGame\sound_player.cpp
[error]Line          : 187
[error]Description   : sound_single.m_bone_id != BI_NONE
 
 
stack trace:

 

 

В конфиге кости другие указал, в capture то-же, в анимациях проблему не заметил.

Есть идеи? :huh:

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

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

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

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

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

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

Войти

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

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

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