Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Вопросы и Ответы по Toolsetу
Lex
сообщение Jan 22 2005, 00:00
Сообщение #1


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



********************************************************************************
Статьи, ссылки + выжимка из темы "Вопросы новичков, ТОМ 1" + выжимка из темы "Вопросы новичков, ТОМ 2" + выжимка из старых тем.


ПОСТИТЬ ЗАПРЕЩЕНО ВСЕМ, КРОМЕ МОДЕРАТОРОВ РАЗДЕЛА.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Lex
сообщение Feb 12 2005, 22:02
Сообщение #2


Level 5
Иконки Групп

Класс: Обыватель
Характер: Lawful Neutral
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



BioWare Aurora Neverwinter Nights Toolset (На русском языке от Aiwan)

Далее ответы на некоторые распространенные вопросы. (могут быть пересечения с тутором)


**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как пользоваться хаками?

<span style='color:red'>ОТВЕТЫ</span>
Тема по хакам 1
Тема по хакам 2
В том же резделе еще про них есть.

1) Кидай хак в папку haks.
2) В модуле в свойствах найди закладку, посвященную хакам (Custom Content).
3) Подключи нужный тебе хак и работай.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
CreateObject(...); - создает по Blueprint ResRef или по тэгу?

<span style='color:red'>ОТВЕТЫ</span>
CreateObject(...); - создает по Blueprint ResRef
Создавать можно только итемы, NPC, плейсы, магазины и вейпоинты.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать чтоб гадкая маленькая буковка "я" не делала ошибки в скриптах?

<span style='color:red'>ОТВЕТЫ</span>
Neverwinter Script
//================  Буква Я в стрингах (Автор Lex) ============================
string ya = GetName(GetWaypointByTag("YA")); // "+ya+" - так ее использовать
//================  Буква Я в стрингах (Автор Lex) ============================

DelayCommand(5.0, SpeakString("Да. Ключика у теб"+ya+" нет."));

Для работы этой схемы необходимо, чтобы в модуле был waypoint с tagом "YA" и именем "я"
--------------------------------------------------
в скриптах я делаю так:
- пишу сначала весь тест, какой должен быть в скрипте с буквами я.
- запускаю find and replace и меняю я на "+ya+"

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Для того чтобы садиться на стулья скрипт нужен?

<span style='color:red'>ОТВЕТЫ</span>
Да. ActionSit(object oChair); на OnUsed стула.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
В упор не могу найти в палитре стойку бара (или что-то вроде). Облазил все, что можно, но всеже нигде нету. Не ужели ее в стандартной палитре нету?

<span style='color:red'>ОТВЕТЫ</span>
Нет, но можно составить стойку из квадратных столов. Составляешь в ряд, и получается стойка.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Есть диалог, в котором должно быть две ветки. Первая, в случае истинности условия, вторая в случае его ложности. Объясните поподробнее, куда должен вставляться скрипт и как его писать.
(условие - наличие оружие в руках героя).

<span style='color:red'>ОТВЕТЫ</span>
Ставишь один лишь скрипт на TextAppearsWhen в первой ветке.
Neverwinter Script
int StartingConditional()
{
  object oPC = GetPCSpeaker();
  if (GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC) != OBJECT_INVALID){
    // оружие в руке
    return FALSE;
  }
  return TRUE;
}


**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
У меня есть охранник в таверне, он предупреждает о том, что оружием размахивать нельзя. У всех НПС и предметов, onDamaged висит скрипт действий - менять факцию дебошира на хостайл, но это не логично: он ведь не напал ни на кого лично. Он просто чуть-чуть побуянил. Как поступить? Если его факцию выставить хостайлом по отношению с гардом, то остальные ПС могут обидится - они то не причем.. Что делать: Делать отдельную факцию для дебоширов или есть другой способ? Проблемма с тем, что если PC обидит гарда (сломав стул, напав на НПС), то другой РС зашедший в таверну, тоже получит от тролля в носяру.

<span style='color:red'>ОТВЕТЫ</span>
Сделай в таверне фракцию, чтобы каждый из коммонеров был друг к другу нейтрален.
--------------------------------------------------

Делай гардов обсалютно нейтральными ко всем кроме друг друга и если ты напал на кого-то из посетителей, то вешай через он OnDamaged на оРС локалку а у гардов проверяй ее на OnPerception.
Можно стереть ее через часик, типа оттаял и спеак стринг типа: "А, это ты, ну входи...входи..."
--------------------------------------------------

Для этого существует PersonalReputation... Хотя... проще наверное действительно, как написано выше. Если, охранник обижается, то на нем ставится переменная: OBJECT_SELF - охранник, oPC - игрок, на которого обиделся.
Neverwinter Script
SetLocalObject(OBJECT_SELF, ObjectToString(oPC), oPC);

и сразу за ней
Neverwinter Script
DelayCommand(240.0, SetLocalObject(OBJECT_SELF, ObjectToString(oPC), OBJECT_INVALID)); // 4 минуты реального времени (2 часа игрового)
// Это чтобы "стиралась" репутация через 4 минуты...

Ну а в OnPerception ставишь типа:
Neverwinter Script
if (GetLocalObject(OBJECT_SELF, ObjectToString(oSeen)) == oSeen)
{
  ClearAllActions();
  SpeakString("Вандал! Банзай!");
  ActionAttack(oSeen);
  // и тд..
}
else
{
  SpeakString("Проходи, присаживайсЯ.");
}

ЗЫ. Этa "система" не претендует на звание отработаной и отлаженой. В нее надо еще вносить и вносить. Это лишь каркас.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
И как сделать чтоб Визуал эффект был без звука?

<span style='color:red'>ОТВЕТЫ</span>
Отредактировав соответствующий 2da. Скриптами нельзя.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Есть ли возможность открыть аврору без установленной игры?

<span style='color:red'>ОТВЕТЫ</span>
Заходишь на nwnights.ru и качаешь там тулсет-бета 240 метров с гаком. Но это будет уже не полноценный редактор.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Есть какой нибудь учебничек для начинающих?

<span style='color:red'>ОТВЕТЫ</span>
1. Статьи у нас на сайте (на русском).
2. NWN Lexicon (на инглише).

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Можно ли сделать так, чтобы при создании персонажа вместо ПБ кидались кубики (как по AD&D).

<span style='color:red'>ОТВЕТЫ</span>
Для однопользовательской игры можно сначало создать персонажа, а потом руками отредактировать его характеристики, самостоятельно эмулируя броски кубиков. Для редактирования можно воспользоваться программой LETO, которую можно найти на ваулте.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Можно ли персонажу крылья прикрутить или что-нибудь такой супер-клёвое как у монстров?

<span style='color:red'>ОТВЕТЫ</span>
Это можно сделать редактором LETO.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Можно ли поменять экран при загрузке модуля или локации?

<span style='color:red'>ОТВЕТЫ</span>
Можно, редактированием loadscreens.2da. Есть утила специальная на ваульте, которая делает в нужном формате этот скрин.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать чтоб корабль плыл (ковер-самолет летал, повозка ездила и т.д.)?

<span style='color:red'>ОТВЕТЫ</span>
Для этого необходимо переделать плейс (placeable) корабля в крича (creature). Тогда этим объектом можно будет управлять с помощью процедуры ActionMoveToObject(). Однако, по воде передвигать корабль всё равно не получится, т.к. по воде нельзя двигаться вообще - это запрещено движком.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Можно ли в Aurora Toolse'ере изменить или создать свою систему боя и создать новые классы? Или если можно другой прогой то скажите плиз какой.

<span style='color:red'>ОТВЕТЫ</span>
Систему боя скорее всего нельзя...
А вот классы вполне можно. Но не программой, а ручками, поковыряв и дополнив некоторые 2da-файлы (classes.2da, ссылка на тему 2да ТАБЛИЦЫ в начале поста)

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
как правильно управлятся с освещением в Toolset'е?

<span style='color:red'>ОТВЕТЫ</span>
Делай так: выбери работу с тайлами в тулсете и выдели комнату, нажав Del и зажав левой кнопкой выбери группу тайлов заключающую в себя весь периметр. Дальше нажми правой кнопкой мыши и выбери свойства. Там будут опции овещения тайлов (палитра квадратиков). Она содержит общий свет, отражение, свет факелов и их отражение. Вот возьми и окрась темным светом в одной комнате и светлым в другой. Один цвет это общий оттенок, другой вроде как отражение.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать так, чтобы игрок мог подниматься выше 40 уровня.

<span style='color:red'>ОТВЕТЫ</span>
Никак.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Когда локацию делаешь, теги и ресрефы менять абсолютно на все плейсеблы?

<span style='color:red'>ОТВЕТЫ</span>
Нет. Все зависит от того, будешь ли ты использовать эти (что находятся в локации) объекты из скриптов. Если да, то лучше сделать им уникальный тэг.
поменать резреф объекта, что стоит в локе все равно нельзя.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Нужно ли все, что есть в локации добавлять в палитру?

<span style='color:red'>ОТВЕТЫ</span>
Нет, не обязательно. Кастомная палитра сделана для 2-х целей:
1. Ты планируешь делать из скрипта CreateObject данного объекта.
2. Для удобства заполнения других лок (если вломы юзать Ctrl+C, Ctrl+V).

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Можно ли добавить плейсеблы из хака в палитру скопом?

<span style='color:red'>ОТВЕТЫ</span>
Нет. Плэйсы появятся при добавлении хака только в Appearance (model view). Для того, чтобы юзать плэйс в модуле, ему впервую очередь нужен уникальный ResRef и собсна описание модели в этом ресрефе. Потому и делается все ручками.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Где в модульных свойствах прописано с какими вещами и количеством голда будет появляться игрок впервые вошедший в модуль?

<span style='color:red'>ОТВЕТЫ</span>
Это делается не в модульных свойствах, а в скрипте на событии OnClientEnter (в свойствах модуля):

Neverwinter Script
void main()
{
    object oPC = GetEnteringObject();
    if (GetLocalInt(oPC, "ENTERING_ONCE") == 0)
    {
        GiveGoldToCreature(oPC, 1000); // даст 1000 "зелени"
        CreateItemOnObject("resref_item", oPC, количество); // вроде так... функция эта, но могу ошибаться в параметрах.
        SetLocalInt(oPC, "ENTERING_ONCE", 1);
    }
}


PS. Вполне допускаю, что это не самый правильный скрипт для шарда, потому как значение "первый-непервый раз" лучше хранить в БД, а не на чаре.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать так, чтобы дверь закрывалась сама после открытия?

<span style='color:red'>ОТВЕТЫ</span>
Neverwinter Script
void main()
{
DelayCommand(14.9,ClearAllActions()); // Через 15 секунд
DelayCommand(15.0,ActionCloseDoor(OBJECT_SELF)); // захлопнет дверь
DelayCommand(20.0,SetLocked(OBJECT_SELF, TRUE)); // и закроет дверь на ключ через 20 сек
}


**************************************************
*****************************

<span style='color:red'>ВОПРОС</span>
Как сделать так, чтобы отдыхать можно было только в определенных зонах?

<span style='color:red'>ОТВЕТЫ</span>
1. рисуем тригер и растягиваем его во всю комнату, где можно будет отдыхать.
на OnEnter тригера вешаем скрипт:

Neverwinter Script
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;
SetLocalInt(oPC, "REST_ALLOWED", 1);
}

на OnExit:

Neverwinter Script
void main()
{
object oPC = GetExitingObject();
if (!GetIsPC(oPC)) return;
SetLocalInt(oPC, "REST_ALLOWED", 0);
}

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

Neverwinter Script
object oPC = GetLastPCRested();
if(GetLocalInt(oPC, "REST_ALLOWED") !=1) AssignCommand(oPC, ClearAllActions());

теперь игрок сможет отдыхать только если он находиться внутри специального тригера

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как у непися сделать диалог, зависящий от расы, класса и пола? Например, девушку приветствует одним образом, девушку-воина другим, эльфа-мага -- третьим, и так далее..

<span style='color:red'>ОТВЕТЫ</span>
Вариант 1: Через токены.
Neverwinter Script
SetCustomToken(int,string);

int номер кастомного токена, а string это собсна текст.
ПРИМЕР:
SetCustomToken(100,"эльфийка"). потом в диалоге написать:
"Привет, <CUSTOM100>"
А в игре будет так:
"Привет, эльфийка"

Если вы эти токены хотите определить и не менять (те создать свой набор и пользоваться ими в диалогах) то удобнее всего оформить их создание при загрузке модуля.

Вариант 2: выбираешь опцию text appears when, туда ставишь скрипт проверки на рассу/класс/пол и пишешь соответствующий диалог.
Единственное неудобство - приходится писать много разных вариантов для обоих полов каждой расы.
пример скрипта:
Neverwinter Script
int StartingConditional()
{
    int iPassed = 0; // Число iPassed равно нулю
  if(GetLevelByClass(CLASS_TYPE_FIGHTER, GetPCSpeaker()) >= 1)
// если уровень класса воин у говорЯщего РС больше или равен единички то
      iPassed = 1; // ТО число iPassed равно единицы

// а то что снизу это уровнение как бы с сокращением. Вверху это как бы записи:
// пусть Х=тому то У= тому то бла бла а внизу в чистом виде y=x+z
// Если число iPassed равно нулю, то ничего не произойдет и ...
    if(iPassed == 0)
        return FALSE;

// возврат (return) ЛОЖЬ (FALSE), то есть скрипт не вернется в самый верх
// к функции int StartingConditional() и не прикажет ей начать диалог с
// персонажем показав именно ЭТУ строку удовлетворЯющую ее запросам
  return TRUE;

// Это второе условие, т.е. скрипт как бы пробежал по коду и если iPassed = 1;
// то он даже не опустится к  return FALSE;  так как у нас единичка и он сразу
// побежит читать что еще там ниже. А ниже "return TRUE;" что значит возврат
// ИСТИНА, и он типа: ОПА!  И запускает функцию ктороая быстренько тормозит
// пролетающую проверку движком по всем корневым строкам НПС сверху вниз
}

ставим этот скрипт на в слоте text appears when на той строке, где у нас ветка для воинов.

Скрипты такого рода делаются ScriptWizardом. Только не забудте удалить русские буквы "я" в комментариях, если у вас русская версия НВН

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как заставить НПС говорить подругому в диалоге если игрок уже с ним 1 раз поговорил.

<span style='color:red'>ОТВЕТЫ</span>
Скриптами.
1. d_st_firsttalk
Neverwinter Script
void main()
{
SetLocalInt(OBJECT_SELF,"FirstTalk",TRUE);
}

2. d_ch_firsttalk
Neverwinter Script
int StartingConditional()
{
return GetLocalInt(OBJECT_SELF,"FirstTalk");
}


Ставим скрипт 1 в том месте диалога (в закладку Actions), после прохождения которого НПС будет "знать" игрока и в след. диалоге уже говорить с ним как с знакомым. (например после того, как игрок представился)

Ставим скрипт 2 на той ветке, которая должна быть, если НПС знает игрока. (в закладке text appears when)

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Вобщем нужен скрипт, чтоб в разговоре при фразе например: "Я слаб, вылечи меня" с перса снимались все вредные эффекты, полностью востанавливалисб хитпоинты и было это бесплатно...

<span style='color:red'>ОТВЕТЫ</span>
Вешаешь как действие на ветке диалога. Лечит все ХП и снимает эффекты.

Neverwinter Script
#include "nw_i0_plot"
void main()
{
object oPC = GetPCSpeaker();
int iHP =GetMaxHitPoints();
effect eHeal = EffectHeal (iHP);
effect eHealVis = EffectVisualEffect (VFX_IMP_HEALING_X);
ActionCastFakeSpellAtLocation(SPELL_HEALING_CIRCLE
,GetLocation(oPC));
DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,eHeal,o
PC));
DelayCommand (2.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY,eHeal
Vis,oPC,10.0));
DelayCommand (2.0, RemoveEffects(oPC));
}


**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать так, чтоы у NPC с самого начала было не максимальное количество здоровья? Чтобы NPC был раненый.

<span style='color:red'>ОТВЕТЫ</span>
В слот OnSpawn добавить такой код:

Neverwinter Script
object oNPC = OBJECT_SELF;
    int iD = 30; // Величина повреждений
    effect eDamage = EffectDamage(iD);
    ApplyEffectToObject(DURATION_TYPE_INSTANT,eDamage,
oNPC);


**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
В НВН ХотУ у хенчей можно просмотреть инвентарь из радиального меню. А у простых НПС которые к тебе присоединяются - нельзя. Как сделать чтобы это стало возможным?

<span style='color:red'>ОТВЕТЫ</span>
поставить НПСу скрипты хенчшей. (важен именно скрипт onConversation. Там подключается библиотека, где прописаны все реакции на радиальное меню, ведь это на самом деле слова, сказанные шепотом)

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
напишите полный скрипт с объяснением, как перепрыгуть NPC`у в другую локацию

<span style='color:red'>ОТВЕТЫ</span>
Neverwinter Script
...
  objectoHome = GetObjectByTag("mn_Portal");
  location lHome = GetLocation(oHome);
  JumpToLocation(lHome);
...


Существует объект с тэгом mn_portal. Это любой размещаемый объект, можно (и желательно) WayPoint (точка пути). Объект может быть размещен где угодно. Даже на другой зоне (area).
Во-первых получаем сам объект:
Тип данных object хранит объект (на самом деле лишь ссылку на него, но это не важно).
object oHome = GetObjectByTag("mn_Portal");
Функция GetObjectByTag возвращает "ссылку" на объект с тэгом, заданным параметром.
В данном случае мы передаем тэг объекта "mn_portal" (string) получаем объект с тэгом "mn_portal" (object).
Во вторых получаем координаты объекта:
location lHome = GetLocation(oHome);
Тип данных location хранит координаты (и много чего другого).
Функция GetLocation возвращает координаты объекта, заданного параметром.
В данном случае, параметром является объект с тэгом "mn_portal" (object), и получаем полные координаты размещаемого объекта (location).
В-третьих совершаем само перемещение:
JumpToLocation(lHome);
Функция JumpToLocation перемещает объект OBJECT_SELF (в основном это будет PC) в место как можно ближе к координатам, указаным в параметре. Т.е. если в точке приземления будет стол, то перс окажется рядом со столом. Если точка перемещения окажется слишком близко, объект перемещения может просто сделать шаг.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Есть НПС у которого диалог. Игрок может выбрать что ответить, а может просто нажать "Esc" и диалог убереться. Как отследить что игрок снимает диалог?

<span style='color:red'>ОТВЕТЫ</span>
Последняя вкладка в диалог эдиторе там типа события End Normal и End Abort...

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
В тулсете под палитрой есть чекбокс "Show Plot". Если на нем поставить галочку появляется Plot Wizard, Non Plot Wizard. Что это такое и с чем его едят?

<span style='color:red'>ОТВЕТЫ</span>
Это для того, чтобы писать простые (принеси, убей) квесты визардом. Никогда не пользовался, хотя разобраться, вроде разобрался с ним. Ничего сложного.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как игровому персу присобачить какиенибудь крылья, или хвост?

<span style='color:red'>ОТВЕТЫ</span>
Скриптами никак, наверное. Это рассовый признак. Те 2да файлы.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
А вот у меня вопрос не по скриптам , я создал предмет у торговца (еда) но у него она стоит 1gp как сделать так чтобы она стоила 10?

<span style='color:red'>ОТВЕТЫ</span>
Стоимость товара у торговца зависит от многого. В основном, от процентной наценки торговца и от умения персонажа торговаться.
Но и у предмета есть стоимость (в самой первой вкладке в свойствах предмета, слева-сверху). Она зависит от предмета (точнее, от того, как она прописана на предмет в файле 2da ), но есть и параметр Дополнительной стоимости (вроде непосредственной и необоснованной наценки) он расположен как раз под "зарядами" на той же самой первой вкладке. Увеличь ее на сколько нужно.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать скрипт чтобы охранники злого города атаковали и тд?

<span style='color:red'>ОТВЕТЫ</span>

добавка к стандартному скрипту onPerception:
Neverwinter Script
object oPC = GetLastPerceived();
int iSeen = GetLastPerceptionSeen();
int PCAL = GetAlignmentGoodEvil(oPC);
if (GetIsPC(oPC))
  {
  if (iSeen)
    {
    if  (PCAL!=ALIGNMENT_EVIL)
        DetermineCombatRound(oPC);
    }
  }

Это для охраны злого города. Остальное по аналогии.
Есть минусы, ессно. Но суть ясна.

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как сделать так, чтобы гварды атаковали всех у кого нет определенного предмета?

<span style='color:red'>ОТВЕТЫ</span>

добавка к стандартному скрипту onPerception::
Neverwinter Script
object oPC = GetLastPerceived();
int iSeen = GetLastPerceptionSeen();
int ITM = HasItem(oPC,"TAG_OF_ITEM");
if (GetIsPC(oPC))
  {
  if (iSeen)
    {
    if (!ITM)
        DetermineCombatRound(oPC);
    }
  }

Для работы этого куска кода надо добавить в начале скрипта, до void main() вот это : #include "nw_i0_plot"

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как реализовать респаун вещей в сундуках по времени(шмотка фиксовая сундук бессмертный)?

<span style='color:red'>ОТВЕТЫ</span>
в закрытой локации ставим creature и ставим в слот onSpawn такой скрипт:
Neverwinter Script
void main()
{
object oChest = GetObjectByTag("YOUR_PLOT_CHEST");
object oItem = GetFirstItemInInventory(oChest);
while GetIsObjectValid(oItem) // отчистка сундука от всего, что в нем есть
  {
  DestroyObject(oItem);
  oItem = GetNextItemInInventory(oChest);
  }
CreateItemOnObject("TAG_OF_ITEM",oChest,1); // создание фикс. вещи
ExecuteScript(600.0,"spw_chestmaster"); // через 600 секунд повторить.
}

**************************************************
******************************

<span style='color:red'>ВОПРОС</span>
Как увеличить опыт за убийство мобов?

<span style='color:red'>ОТВЕТЫ</span>
1. В настройках модуля есть XP Scale. Подвигай ее.
2. За то, сколько игрок получает экспы при убийстве моба отвечает его (моба) CR. Чем он выше, тем экспы больше. Закладка Advansed в свойствах модуля.
3. в Скрипте onDeath для мобов написать свою систему дачи экспы. XP Scale тогда надо выставить на 0.

**************************************************
***************************
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Тема закрытаОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 30th May 2024 - 05:38