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

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


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

Я сейчас только что персонажу "выдал" кучу диалогов, а также визуал и класс Сыча, может он сейчас хоть чего-нибудь поменяет... хоть сольётся с Сычом, там уже разберёмся :)

Теперь у меня всё тот же сталкер, только выглядит как Сыч, а так ничего не изменилось... в принципе, я его и прописывал как квестовых, хотя можно ещё раз попробовать...

Далее, <actor_dialog> - это просто ссылка на первую ветку диалога, т.е. например напишем <actor_dialog>tkach_dialog</actor_dialog> и, если у нас есть tkach_dialog, появится возможность поговорить по первой ветке этого диалога, а дальше уже по развитию диалога...

А класс я ему, кстати, выдавал со словом commander (т.е. копировал, хотя может это не так важно?)

---

Похоже, класс или визуал ничего не меняют... ну, по крайней мере таким персонажам, или придётся через all.spawn или разбираться в остальных файлах, сейчас пойду посмотрю npc_profile и spawn_sections...

---

В общем, пока что ничего нового я не нашёл... есть идея создать диалог (можно просто две или три ветки, и без текста (т.е. например dialog_1, dialog_2 и dialog_3)) и вставить <actor_dialog>[название диалога]</actor_dialog> во все секции персонажей какой-нибудь локации (Затона, например), в классе/id'е которых содержится слово commander и искать на локации какую-нибудь "звёздочку", если диалог есть, значит мы ищем в правильном направлении, а если нету, значит или мы вставили диалог не всем таким персонажам, или нам нужно было вставить его совсем другим персонажам... но это уже завтра =)

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

Народ, помогите. Сохранился в период выброса, но до его начала. Вне укрытия. Теперь после загрузки сейва выброс сразу заканчивается и ГГ естественнно умирает. Не успеть даже лекарству выпить. Можно в конфигах отключить выброс в принципе или еще какой-нибудь вариант?

 

исправь на время хит радиации в актор.лтх

Можно примерчик?

Лезишь сюда Зов Припяти\gamedata\configs\creatures\actor.ltx

находишь строку:

radiation_health_v = 0.0002 ;уменьшение здоровья при воздействии радиации

и правишь двойку на ноль. Потом верни на место (как выброс пройдёт)

Изменено пользователем ДАР

попробуи поменять радиэшион имунити на 1, или 1.5 только не забудь поменять во всех рангах Актер_имунитис_джД_новаис,.... ..... Актер_имунитис_джД_мастер . В том же фаиле актер лтх.

Изменено пользователем igor822605
Halford за что предупреждение? Поиск юзал, тема есть подобная только для с ЧН, в ЗП всё по-иному. А в 170 посту вовсе не то, что мне нужно.

Halford, я посмотрел, что есть по апгрейдам - в 170-м посту - отключение проверок на наличие инструментов и "умение" механика.

А вопрос (кстати, и у меня такоой же) - как поставить апгрейды не по исключающим веткам, а все абсолютно. Кое-что получилось, но пока как-то не совсем корректно. Если ветки независимые (т.е. к двум апгрейдам 3-го уровня ведут два второго - получилось). А вот где второй уровень - два апгрейда, а третий - один (посерёдке), вылетает пока.

arkawa, в файл ui_main_menu пиши следующее:

function main_menu:OnButton_credits_clicked() 
local text 
local vid 
local gvid 
local a = vector()  
local text 
a = db.actor:position()  
vid = db.actor:level_vertex_id()  
gvid = db.actor:game_vertex_id()  
text = "Позиция:\\nX= "..a.x.."\\nY= "..a.y.."\\nZ= "..a.z.."\\nlevel_vertex= "..vid.."\\ngame_vertex_id= "..gvid 
news_manager.send_tip(db.actor, text, nil, nil, 30000) 
end

 

golden, юзаем автосейв перед выбросом. ;)

===

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

апгрейдят все и всё без инструментов

Expression : !m_error_code

Function : raii_guard::~raii_guard

File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp

Line : 748

Description : d:\st\gamedata\scripts\jup.script:85: attempt to call global 'get_texture_info' (a nil value)

 

 

function car_offer(info,text,price)
      local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")
      local name_and_price;

      if not has_alife_info(info) then
          name_and_price = game.translate_string(text).." %c[255,238,155,23]"..price.." рублей%c[default]"
          db.actor:give_talk_message(name_and_price, task_texture, task_rect, "iconed_trade_info")
      end
end

Mac, вылет то очень простой, он тебе русским по белому сказал: переменной и/или функции get_texture_info нет , у тебя функция get_texture_info вообще существует? прописано в том же файле, из которого кусок показал? Изменено пользователем 8push5

Вот что в скрипте писал:

function car_offer(info,text,price)

local task_texture, task_rect = get_texture_info("ui_iconsTotal_lost_money")

local name_and_price;

 

if not has_alife_info(info) then

name_and_price = game.translate_string(text).." %c[255,238,155,23]"..price.." рублей%c[default]"

db.actor:give_talk_message(name_and_price, task_texture, task_rect, "iconed_trade_info")

end

end

 

Или я тебя не понял... :mellow:

Изменено пользователем Mac
Mac, объясню еще раз, ты пытаешься вызвать функцию которой не существует, если хочешь изучить lua для начала почитай здесь, посмотри внимательно оригинальные скрипты, узнай что означает запись вида имя_функции(параметры).

Как называется инфопоршши разговора со Стрелком и окончания игры (вы не садитесь в вертолёт).

А как написать скрипт на проверку денег?

Чтобы он определял кол-во денег. Если есть к примеру 5000 рублей, то включается определенная фраза в диалоге(прекондишен).

Вот как то так... надеюсь понятно расписал...

 

Сам писал вот это:

function has_money_car()
  local money = math.floor(5000 * 

xr_statistic_freeplay.get_freeplay_statistic():get_found_pda_discount())
  return db.actor:money()>=money
end

нашёл скрипт тут

Но он начал ругаться на xr_statistic_freeplay.get_freeplay_statistic...

Пиши это:

 

function money_check()
  return db.actor:money()>=2000
end

 

Я такой же скрипт писал в ЧН, тоже у меня ругался... :lol:

 

Вроде надо писать название вот этого money_check в <precondition></precondition>, вот так:

 

    <dialog id="tkach_money"> - id диалога
    <precondition>dialogs_marsh.money_check</precondition> - проверка денег
        <phrase_list> - ветки диалога
            <phrase id="1">
                <text>tkach_mon_1</text>
                <next>2</next>
        <next>3</next>
            </phrase>
            ...
            <phrase id="0">
                <text>tkach_mon_0</text>
                <next>1</next>
            </phrase>
        </phrase_list>
    </dialog>

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

Скорее всего (если я тебя правильно понял), тебе в gamedata/configs/gameplay/character_*.xml

Вместо * могут быть items, food, items_2 и т.д.

Если что, то такая структура файла:

 

bread = 1, prob=0.5 \n

kolbasa = 1, prob=0.5 \n

vodka = 1, prob=0.5 \n

 

bread - название предмета (из gamedata/configs/misc/items.ltx)

1 - сколько

prob=0.5 - вероятность выпадения (50% стоит)

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

Вроде надо писать название вот этого money_check в <precondition></precondition>, вот так:

Да про прекондишен я знаю, меня сам скрипт интересовал)

 

Но я уже допёр! писал это:

function has_money_car()
  local money = math.floor(5000)
  return db.actor:money()>=money
end

 

Но вот у меня вопрос как сделать этот диалог единичным? После того как я поговорю и добьюсь что мне надо(выполнение скрипта) у NPC эта фраза остаётся для выбора, т.е. мне можно покупать у него предмет бесконечное кол-во раз, а я хочу сделать чтобы можно было 1раз!

Прилагаю свою ветку диалога --->

<dialog id="jup_buy_car">
        <phrase_list>
            <phrase id="0">
                <text>jup_cars_000</text>
                <next>1</next>
            </phrase> 
            <phrase id="1">
                <text>jup_cars_001</text>
                <next>2</next>
                <next>5</next>
            </phrase> 
            <phrase id="2">            
                <text>jup_cars_002</text>
                <dont_has_info>jup_car_create</dont_has_info>
                <precondition>jup.has_money_car</precondition>
                <next>3</next>
            </phrase> 
            <phrase id="3">
                <text>jup_cars_003</text>
                <action>jup.dat_dengi</action>
                <action>jup.spawn_veh_niva</action>
                <next>4</next>   
            </phrase>
            <phrase id="4">
                <text>jup_cars_004</text>
                <action>dialogs.break_dialog</action>
            </phrase>
            <phrase id="5">
                <text>jup_cars_005</text>
            </phrase>
        </phrase_list>   
    </dialog>

Записывай в info_*.xml (например, вместо * - zaton или jupiter) <info_portion id="[название инфопоршня]"></info_portion> и в ветку диалога

<dialog id="jup_buy_car">
    <dont_has_info>[название записанного инфопоршня]</dont_has_info>
        <phrase_list>
            <phrase id="0">
            ...
            <phrase id="5">
                <text>jup_cars_005</text>
                <give_info>[название инфопоршня]</give_info>
            </phrase>
        </phrase_list>   
    </dialog>

 

Т.е. мы задаём вместе с precondition'ом проверку инфопоршня - если есть, то диалога нет, а если нету - то он есть и в конце (ну, я в 5-ую фразу вставил) диалога, в завершающую (обычно так) фразу выдаём инфопоршень, поэтому диалога не будет. Названия инфопоршня в коде должны быть одинаковыми. Также можно проверять только одну фразу (ставим перед <phrase id="..."> проверку в виде <dont_has_info> или <has_info> (нет или есть инфопоршень)) или ставить несколько проверок, т.е., например, написать ещё диалог, если он "успешно" проходит (например, герой не нагрубил собеседнику и за это получил инфопоршень), можно поговорить с собеседником о машине.

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

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

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

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

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

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

Войти

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

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

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