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

[CoP] Квесты


XMK

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

ZeeK, Ну так ты задавай вопросы по делу и тема будет продолжаться.

 

Как вариант для генерируемых заданий...

Рандом + не отключение ветки квеста после прохождения квеста.

 

Вспомнил даже пример... Торговля Бороды... он арты скупает.Вот вам генерируемый квест.

Изменено пользователем Виталий Зверь

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


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

Для одного человека ну и для себя делал типа справочника по функциям ЗОВа, пригодится для новичков квестописания...

 

=======================================================================
         ВЫДАЁМ ПРЕДМЕТ АКТОРУ
=======================================================================
function название функции (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "название предмета", "in") 
end

Размещается в файлах скрипт.

Выдача поршня вставляется под строку действия.
<action>название скрипта.название функции</action>

Примечание, что бы выдать два одинаковых предмета пишем

function название функции (first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "название предмета", "in",2) 
end

Если надо больше меняем цифру 2 на нужную нам.
=========================================================================
      ОТБИРАЕМ ПРЕДМЕТ У АКТОРА.
=========================================================================
function название функции(first_speaker, second_speaker)
    dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "название предмета")
end

размещается в файлах скрипт

выдача поршня вставляется под строку действия
<action>название скрипта.название функции</action>

Примечание, что бы отобрать два одинаковых предмета пишем

function название функции(first_speaker, second_speaker)
    dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "название предмета",2)
end

Если надо больше меняем цифру 2 на нужную нам.
=======================================================================
      СПАВНИМ ВЕЩЬ В РЮКЗАК гг
=======================================================================
function название функции()
local obj = alife():create("ВЕЩЬ", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

В диалог
<action>название скрипта.название функции</action>

===========================================================================
ПРОВЕРКА НАЛИЧИЯ У АКТОРА ПРЕДМЕТА
===========================================================================
Вариант первый
function Название функции()
    if db.actor:object("название предмета") then
        return true
    end
    return false
end

в диалог

<precondition>имя скрипта.название функции</precondition>

<---------как вариант(пользуются ПЫС)------------------>

function название функции(first_speaker, second_speaker)
    return first_speaker:object("название предмета") ~= nil
end

в диалог

<precondition>имя скрипта.название функции</precondition>
===========================================================================
ПРОВЕРКА ВЕЩЕЙ У ГГ
===========================================================================
function Название функции(first_speaker, second_speaker)
    return first_speaker:object("название предмета") ~= nil or
             first_speaker:object("название предмета") ~= nil or
             first_speaker:object("название предмета") ~= nil
end

в диалог

<precondition>имя скрипта.название функции</precondition>

описание... если есть хотя бы одна вещь, то мы получим фразу, если нет всех нет разговора
============================================================================
ПРОВЕРКА ДЕНЕГ У ГГ
============================================================================
Вариант первый(используют ПЫС)


function название функции(first_speaker, second_speaker)
    return first_speaker:money() >= 2000
end

в диалог 

<precondition>имя скрипта.название функции</precondition>

<-----------Вариант два-------------->
Использовал на ТЧ, но и в ЗП работает

function название функции()
return db.actor:money()>=10000
end
в диалог 

<precondition>имя скрипта.название функции</precondition>

=========================================================================
СПАВН ПРЕДМЕТА
=========================================================================
function spawn_vintar()
alife():create("Название предмета",vector():set(24.725412368774,-3.6072344779968,173.83030700684),993926,210)
end

В диалог

<action>название скрипта.название функции</action>

==========================================================================
МГНОВЕННАЯ СМЕРТЬ ГГ
==========================================================================

function название функции(npc, actor)
    npc:kill(actor)
end

В диалог

<action>название скрипта.название функции</action>
===========================================================================
ПРОВЕРКА КОЛ_ВА ОДИНАКОВЫХ ПРЕДМЕТОВ
===========================================================================
function название функции(first_speaker, second_speaker)
        local item_sections = {"Предмет"} 
        local needed = количество одинаковых предметов, ставится цифра без знаков 
        local count = 0
        local item_section
    local function calc(temp, item)
        if item:section() == item_section then
        count = count + 1
end
end
    for k,v in pairs(item_sections) do
    item_section = v
    get_story_object("actor"):iterate_inventory(calc, actor)
end
    return count >= needed
end 


в диалог
<precondition>имя скрипта.название функции</precondition>
==========================================================================
ЛЕЧЕНИЕ ГГ 
==========================================================================
Вставим этот актион в диалог

<action>dialogs.medic_magic_potion</action>
==========================================================================
ВЫДАЧА ДЕНЕГ от НПС ГГ
==========================================================================

function название функции(first_speaker, second_speaker)
    dialogs.relocate_money_to_actor(first_speaker, second_speaker, 2000)
end

В диалог

<action>название скрипта.название функции</action>
==========================================================================

 

 

Всё проверено и работает, надеюсь поможет кому нибудь и кто то может продолжит...

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


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

Решил выложить имена иконок к квестам, думаю понятно без перевода...

 

ui_inGame2_Skat_4

ui_inGame2_Pripasi

ui_inGame2_Naezd

ui_inGame2_Nedostupniy_taynik

ui_inGame2_Artefakti_na_zakaz

ui_inGame2_Zamanchiviy_biznes

ui_inGame2_kompas

ui_inGame2_Temniy_biznes

ui_inGame2_Lager_naemnikov

ui_inGame2_Put_na_plato

ui_inGame2_Tri_tovarisha

ui_inGame2_Ohota_na_Himeru

ui_inGame2_V_poiskah_Soroki

ui_inGame2_Bezopasnoe_mesto

ui_inGame2_Put_v_pripyat

ui_inGame2_Neizvestnoe_oruzhie

ui_inGame2_Propavshaya_razvedgruppa

ui_inGame2_Skoplenie_monolita

ui_inGame2_Propavshiy_chasovoy

ui_inGame2_Razgovor_s_glazu_na_glaz

ui_inGame2_Radiopomehi

ui_inGame2_Neizvestniy

ui_inGame2_Evakuatsiya

ui_inGame2_Laboratoriya_X8

ui_inGame2_Odin_vistrel

ui_inGame2_Skat_1

ui_inGame2_Pripyat_1

ui_inGame2_Ohota_na_Burerov

ui_inGame2_Anomalnoe_rastenie

ui_inGame2_Nochnaya_ohota

ui_inGame2_Dolgi

ui_inGame2_Oazis

ui_inGame2_Radiotechnika

ui_inGame2_Bespilotniy_razvedchik

ui_inGame2_Vizhivshiy_monolit

ui_inGame2_Gipoteza

ui_inGame2_Peremennoe_psi_izluchenie

ui_inGame2_Issledovanie_anomaliy

ui_inGame2_Issledovatelskaya_gruppa

ui_inGame2_Vozmezdie

ui_inGame2_Chuzhie_zaslugi

ui_inGame2_Zalozhnik

ui_inGame2_Krazha

ui_inGame2_Kopachi

ui_inGame2_Kontrakt_s_uchenimi

ui_inGame2_Sklad_dolga

ui_inGame2_Istoriya_dolga

ui_inGame2_Instrumenti

ui_inGame2_Poslednie_razrabotki

ui_inGame2_Ohrana_uchenih

ui_inGame2_Ohota_na_Krovososov

ui_inGame2_Mesta_evakuatsii

ui_inGame2_Skat_2

ui_inGame2_Skat_5

ui_inGame2_Skat_3

ui_inGame2_Strannoe_yavlenie

ui_inGame2_Ischeznovenie_stalkerov

ui_inGame2_Logovo_krovososov

ui_inGame2_Reputatsiya

ui_inGame2_Osobiy_zakaz

ui_inGame2_Sdelka

ui_inGame2_Karti_mestnosti

 

 

Вроде бы все...

 

Ах да ещё начинающим...

 

==========================================================================

ПОРШЕНЬ НА ОДНОРАЗОВОЕ ПРОЧТЕНИЕ ДИАЛОГА.

==========================================================================

прописываем в файле info_какойто.xml

<info_portion id="Название поршня"></info_portion>

 

в конце ветки диалога запишем

<give_info>Название поршня</give_info>

в начале диалога под id квеста запишем

<dont_has_info>название поршня</dont_has_info>

===========================================================================

ПОРШЕНЬ НА СКРЫТИЕ ДИАЛОГА ДО ПРОЧТЕНИЯ ОПРЕДЕЛЁНОГО ДИАЛОГА.

===========================================================================

 

прописываем в файле info_какойто.xml

<info_portion id="Название поршня"></info_portion>

 

В конце диалога после которого должна появиться новая ветка

<give_info>название поршня</give_info>

 

в начале новой ветки под id прописываем

<has_info>название поршня</has_info>

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

================================================================================

==========

ПОРШЕНЬ НА ЗАПРЕТ ДИАЛОГА ЕСЛИ В ПРЕДИДУЩЕМ МЫ ПОСТАВИЛИ УСЛОВИЕ ПО КОТОРОМУ ЕГО НЕ БУДЕТ

================================================================================

==========

 

прописываем в файле info_какойто.xml

<info_portion id="Название поршня"></info_portion>

 

В конце определяющего диалога ставим

<give_info>название поршня</give_info>

 

под id квеста(диалога) который не должен появиться прописываем

<dont_has_info>название поршня</dont_has_info>

Теперь диалог не появится.

===============================================================================

 

 

и имена НПС на затоне...

 

zat_b7_bandit_boss_sultan СУЛТАН

zat_a2_stalker_barmen БОРОДА

zat_a2_stalker_nimble Шустрый

jup_a10_bandit_leader Валет

zat_a2_stalker_mechanic Шуруп

zat_b22_stalker_medic Вампир

zat_b30_owl_stalker_trader Сыч

zat_b106_stalker_gonta Гонта

zat_b106_stalker_garmata Гармата

zat_b38_stalker_cop Чувак сьеденый медиком

zat_b38_stalker_hunter Охотник???

zat_b33_stalker_snag ????

zat_b42_mayron ?????

zat_b28_draper ????????

zat_b28_umerov

zat_b28_smoliak

zat_b18_noah Ной

zat_b215_stalker_guide Проводник????

 

 

Изменено пользователем Виталий Зверь

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


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

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