Мини профиль |
31.07.2025 - Четверг
Вы вошли как:
Гость
Группа: Гости
На сайте: -й день
Личных сообщений:
Ваш Ip: 216.73.216.49
|
|
 | |  |
|
Сборка скриптовых функций для ЗП
======================================================================= ВЫДАЁМ ПРЕДМЕТ АКТОРУ ======================================================================= 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> ==========================================================================
===================================================== ===================== ПРОВЕРКА НА ХОРОШЕЕ ЗДОРОВЬЕ ========================================================================== function actor_good(first_speaker, second_speaker) if db.actor.health > 0.75 or --уровень здоровья, при котором диалог уже будет появляться(от 0 до 1) db.actor.radiation < 0.1 or -- уровень радиации,при котором диалог уже будет появляться(от 0 до 1) db.actor.bleeding < 0.1 then --уровень кровотечения, при котором диалог уже будет появляться(от 0 до 1) return true end return false end ========================================================================== ПРОВЕРКА НА ОТНОШЕНИЯ ГРУППИРОВКИ К ГГ ========================================================================== function if_enemy_to_actor(first_speaker, second_speaker) local npc = dialogs.who_is_npc(first_speaker, second_speaker) local actor = dialogs.who_is_actor(first_speaker, second_speaker) return xr_conditions.is_faction_enemy_to_actor(actor, npc, {"Название группировки"}) end
если надо когда группировка не враждебна к актору, то return not если надо когда группировка друзья,то return xr_conditions.is_faction_friend_to_actor(actor, npc, {"Название группировки"}) когда нейтралы, return xr_conditions.is_faction_neutral_to_actor(actor, npc, {"Название группировки"}) ;------------------------------------------------------------------------------------------------------ ;ПРОВЕРКА НА УБИЙСТВО ;------------------------------------------------------------------------------------------------------ local npc = ТУТ НУЖНО ЗАДАТЬ НЕПИСЯ if db.actor:has_info(НАЗВАНИЕ ИНФОПОРШНЯ ВЫДАННОГО ЗАДАНИЯ) if npc:alive() then db.actor:give_info_portion(НАЗВАНИЕ ИНФОПОРШНЯ С УКАЗАНИЕМ ПОДОЙТИ К НЕПИСЮ) db.actor:disable_info_portion(НАЗВАНИЕ ИНФОПОРШНЯ ВЫДАННОГО ЗАДАНИЯ) end end ;------------------------------------------------------------------------------------------------------ ;ЛЕВЕЛ_ЧЕНДЖЕРЫ ;------------------------------------------------------------------------------------------------------ function add_new_lc(levch,levchn,levchm,info) local objt = alife():story_object(levch) if not objt then alife():create(levchn) end local obj = alife():story_object(levch) if obj then level.map_add_object_spot(obj.id, "level_changer",levchm) db.actor:give_info_portion(info) info_received() end end
|
Категория: модостроение Зов Припяти | Добавил: batment (18.12.2011)
|
Просмотров: 4365 | Комментарии: 1
| Рейтинг: 0.0/0 |
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]
| |
 | |  |
Powered by Paramore 2010-2013 | Хостинг от Ucoz
|
|