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

[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-го уровня ведут два второго - получилось). А вот где второй уровень - два апгрейда, а третий - один (посерёдке), вылетает пока.

Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64

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

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

 

TMCoP

Программисты(скриптеры) кому не безразличны машины в ЗП пишите в личку или сюда, нужна помощь!

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

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

===

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

апгрейдят все и всё без инструментов
Ссылка на комментарий
Подскажите ПЛЗ, где взять\как адаптировать Position Informer для Зова?

Адаптированные к ЗП скрипты и конфиги для Position Informer

 

 

Аддон IMM - Intellectual Marauder Mod for AMK 1.4.1

...:: снятие брони с трупов и кое что ещё ::...

 

Аддон IMM - Intellectual Marauder Mod для ЧН 1.5.07

...:: снятие брони с трупов ::...

 

Аддон IMM - Intellectual Marauder Mod для COP 1.6.01

...:: снятие брони с трупов ::...

 

ARS MOD

...:: снятие брони с трупов, сон, новости, дин.аномалии и прочие вкусности ::...

 

 

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

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

TMCoP

Программисты(скриптеры) кому не безразличны машины в ЗП пишите в личку или сюда, нужна помощь!

Ссылка на комментарий
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

TMCoP

Программисты(скриптеры) кому не безразличны машины в ЗП пишите в личку или сюда, нужна помощь!

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

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

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

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

Чтобы он определял кол-во денег. Если есть к примеру 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...

TMCoP

Программисты(скриптеры) кому не безразличны машины в ЗП пишите в личку или сюда, нужна помощь!

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

Пиши это:

 

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>

TMCoP

Программисты(скриптеры) кому не безразличны машины в ЗП пишите в личку или сюда, нужна помощь!

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

Записывай в 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 пользователей

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

AMK-Team.ru

×
×
  • Создать...