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

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

4 страниц V   1 2 3 > » 

Важно! Скрипты
Batkom
Отправлено: Jun 2 2010, 02:32


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Ух-ты!
Вот спасибо. (впрочем, я еще конечно поканителюсь с переходом на 1.69, конечно, не известно, чем это грозит, главное, чтобы с тайлсетом ничего не стряслось)
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136176 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: Jun 1 2010, 22:25


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Чорт, на 1,69 переходить совсем не хочется, много лишнего и с dialog.tlk проблемы. Впрочем, NWNX все равно подключать собирался. Спасибо.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136173 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: Jun 1 2010, 18:51


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Спасибо, я балбес, SetName нашел, а вот SetDescription нету. Он в каком-то инклюде?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136171 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: Jun 1 2010, 17:25


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Доброе время суток. Сейчас ваяю крафт. Решил сделать некий конструктор. Однако, дабы избежать перегруженности палитры предметов, было решено генерировать предметы полностью динамически. Застопорился только в одном: Как сменить предмету имя и описание? Это вообще возможно из скриптов?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136169 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: May 27 2010, 12:32


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Ага.
Еще вариант: добавить в onhb хенча
Neverwinter Script
if (GetIsPC(GetFactionLeader(OBJECT_SELF))) SetLocalInt(OBJECT_SELF, "HENCHED", FALSE);

Считаю, что проверку HENCHED нужно делать при отображении в диалоге строки "Пойдем со мной"
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136138 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: May 27 2010, 00:43


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Огромное спасибо. Давно хотел сделать такую штуку, но было лень.
Поковырял компанию, немного переработал оригинальные скрипты.
В дальнейшем собираюсь переделать работу с предметами и сам скрипт под мультиплеер с записью свойств в MySQL
Смысл таков:
На локацию вешается локалинт ITEM_KEY = 0 как счетчик.
В недоступном месте стоит вейпоинт backup_waypoint.
При заходе в локацию, на игрока вешается эффект провала заклинания и прочищаются все эффекты кроме естественных.
С предметами сделано довольно странно, но для сингла сойдет:
1) Предметы копируются к вейпоинту с новыми тегами
2) На оригинальных предметах прочищаются все свойства и устанавливается локалстринг с тегом копии
При выходе из локации с игрока снимаются эффект спеллфейла и полиморфа(иначе нельзя будет восстановить свойства на заполиморфимшеся друле), а потом с предметами происходит следующее:
1) Изымается локалстринг с тегом буферного предмета
2) Копируются все свойства с буферного на оригинальный предмет
3) Буферный предмет уничтожается
Раскомментировал, как мог.
На onEnter локации:
Neverwinter Script
#include "x2_inc_itemprop"

int GetIsAlcohol(object oItem)
{
    itemproperty ip;
    ip = GetFirstItemProperty(oItem);
    if(GetIsItemPropertyValid(GetNextItemProperty(oItem)
))
        return FALSE;
    if(GetItemPropertyType(ip) == ITEM_PROPERTY_CAST_SPELL)
    {
        if(GetItemPropertySubType(ip) == IP_CONST_CASTSPELL_SPECIAL_ALCOHOL_BEER ||
           GetItemPropertySubType(ip) == IP_CONST_CASTSPELL_SPECIAL_ALCOHOL_SPIRITS ||
           GetItemPropertySubType(ip) == IP_CONST_CASTSPELL_SPECIAL_ALCOHOL_WINE)
            return TRUE;
    }
    return FALSE;
}
int GetIsPoisonAmmo(object oItem)
{
    itemproperty ip;
    ip = GetFirstItemProperty(oItem);
    if(GetIsItemPropertyValid(GetNextItemProperty(oItem)
))
        return FALSE;
    if(IPGetItemHasItemOnHitPropertySubType(oItem, IP_CONST_ONHIT_ITEMPOISON))
        return TRUE;
    return FALSE;
}
int GetIsDyeKit(object oItem)
{
    if(GetBaseItemType(oItem) == BASE_ITEM_MISCSMALL)
    {
        itemproperty ip = GetFirstItemProperty(oItem);
        if(GetItemPropertyType(ip) == ITEM_PROPERTY_CAST_SPELL)
        {
            int nSubType = GetItemPropertySubType(ip);
            return (nSubType >= 490 && nSubType <= 497);
        }
        return FALSE;
    }
    return FALSE;
}
//Копирует предмет
void RemoveAllProperties(object oItem, object oPC, int nSlot = -1)
{
    if(oPC != OBJECT_INVALID)
    {
        if(oItem == OBJECT_INVALID)//Если не передается предмет, но передается слот, то работать с предетом на слоте
           {
            oItem = GetItemInSlot(nSlot, oPC);
            if(oItem == OBJECT_INVALID)
            return;
           }
           else
            {
            int nType = GetBaseItemType(oItem);
            if(nType == BASE_ITEM_TORCH ||
               nType == BASE_ITEM_TRAPKIT ||
               nType == BASE_ITEM_HEALERSKIT ||
               nType == BASE_ITEM_GRENADE ||
               nType == BASE_ITEM_THIEVESTOOLS ||
               nType == 109 || // crafting stuff
               nType == 110 ||
               nType == 112)
                return;
            }
    }
   
   
    if(GetIsAlcohol(oItem) || GetIsPoisonAmmo(oItem) || GetIsDyeKit(oItem))
        return;
    if(oItem == OBJECT_INVALID)
        return;
    // вейпоинт, куда складываются копии предметов
    //Должен быть недоступен игроку
    object oWP = GetWaypointByTag("backup_waypoint");
    //счетчик предметов, должен быть установлен для объекта выполнения заранее и не должен сбрасываться
    int nKey = GetLocalInt(OBJECT_SELF, "ITEM_KEY");
    nKey++;
    SetLocalInt(OBJECT_SELF, "ITEM_KEY", nKey);
    string sKey = IntToString(nKey);
    object oCopy = CopyObject(oItem, GetLocation(oWP), OBJECT_INVALID, "back_item" + sKey);
    //После копирования на предмет записывается его ключ
    SetLocalString(oItem, "ITEM_KEY", sKey);

    itemproperty ip = GetFirstItemProperty(oItem);
    while(GetIsItemPropertyValid(ip))
    {
        RemoveItemProperty(oItem, ip);
        ip = GetNextItemProperty(oItem);
    }
}
//Убирает эффекты с существа, оставляя естественные эффекты, например EFFECT_TYPE_POISON
void RemoveEffects(object oObject)
{
    effect eEff = GetFirstEffect(oObject);
    while(GetIsEffectValid(eEff))
    {
        int nType = GetEffectType(eEff);
        if(GetEffectSubType(eEff) != SUBTYPE_EXTRAORDINARY &&
           (nType == EFFECT_TYPE_ABILITY_INCREASE ||
           nType == EFFECT_TYPE_AC_INCREASE ||
           nType == EFFECT_TYPE_ATTACK_INCREASE ||
           nType == EFFECT_TYPE_BLINDNESS ||
           nType == EFFECT_TYPE_CHARMED ||
           nType == EFFECT_TYPE_CONCEALMENT ||
           nType == EFFECT_TYPE_CONFUSED ||
           nType == EFFECT_TYPE_CURSE ||
           nType == EFFECT_TYPE_DAMAGE_IMMUNITY_INCREASE ||
           nType == EFFECT_TYPE_DAMAGE_INCREASE ||
           nType == EFFECT_TYPE_DAMAGE_REDUCTION ||
           nType == EFFECT_TYPE_DAMAGE_RESISTANCE ||
           nType == EFFECT_TYPE_DAZED ||
           nType == EFFECT_TYPE_DEAF ||
           nType == EFFECT_TYPE_DOMINATED ||
           nType == EFFECT_TYPE_ELEMENTALSHIELD ||
           nType == EFFECT_TYPE_ETHEREAL ||
           nType == EFFECT_TYPE_FRIGHTENED ||
           nType == EFFECT_TYPE_HASTE ||
           nType == EFFECT_TYPE_IMMUNITY ||
           nType == EFFECT_TYPE_IMPROVEDINVISIBILITY ||
           nType == EFFECT_TYPE_INVISIBILITY ||
           nType == EFFECT_TYPE_INVULNERABLE ||
           nType == EFFECT_TYPE_ABILITY_INCREASE ||
           nType == EFFECT_TYPE_NEGATIVELEVEL ||
           nType == EFFECT_TYPE_PARALYZE ||
           nType == EFFECT_TYPE_POLYMORPH ||
           nType == EFFECT_TYPE_REGENERATE ||
           nType == EFFECT_TYPE_SANCTUARY ||
           nType == EFFECT_TYPE_SAVING_THROW_INCREASE ||
           nType == EFFECT_TYPE_SEEINVISIBLE ||
           nType == EFFECT_TYPE_SILENCE ||
           nType == EFFECT_TYPE_SKILL_INCREASE ||
           nType == EFFECT_TYPE_SLOW ||
           nType == EFFECT_TYPE_SPELL_IMMUNITY ||
           nType == EFFECT_TYPE_SPELL_RESISTANCE_INCREASE ||
           nType == EFFECT_TYPE_SPELLLEVELABSORPTION ||
           nType == EFFECT_TYPE_TEMPORARY_HITPOINTS ||
           nType == EFFECT_TYPE_TRUESEEING ||
           nType == EFFECT_TYPE_ULTRAVISION ||
           nType == EFFECT_TYPE_INVULNERABLE))
            RemoveEffect(oObject, eEff);
        eEff = GetNextEffect(oObject);
    }
}

void main()
{
    object oEnter = GetEnteringObject();
    //Если игрок сохранился, вышел из игры и загрузился потом, ничего с ним не делать
    //INSIDE - Локальная переменная для избежания глюков с save\load
    int nInside = GetLocalInt(oEnter, "INSIDE");
    if(nInside == 1) return;
    SetLocalInt(oEnter, "INSIDE", 1);
    RemoveEffects(oEnter);
    effect eSpellFailure = EffectSpellFailure(100, SPELL_SCHOOL_GENERAL);
    ApplyEffectToObject(DURATION_TYPE_PERMANENT, eSpellFailure, oEnter);
    object oItem = GetFirstItemInInventory(oEnter);
        while(oItem != OBJECT_INVALID)
        {
            RemoveAllProperties(oItem, oEnter, -1);
            oItem = GetNextItemInInventory(oEnter);
        }
        //Убираем свойства с предметов в слотах экиперовки
        //Если лексикон не врет, то искомые слоты с 0(INVENTORY_SLOT_HEAD) по 13(INVENTORY_SLOT_BOLTS)
        int iSlot = 0;
        while(iSlot<14)
        {
        RemoveAllProperties(OBJECT_INVALID, oEnter, iSlot);
        iSlot++;
        }
}



На onExit:
Neverwinter Script
#include "x2_inc_itemprop"
// Восстанавливаем свойства предметов
void RestoreAllProperties(object oItem, object oPC, int nSlot = -1)
{
   if(oPC != OBJECT_INVALID)
    {
        if(oItem == OBJECT_INVALID)//Если не передается предмет, но передается слот, то работать с предетом на слоте
            oItem = GetItemInSlot(nSlot, oPC);
        if(oItem == OBJECT_INVALID)
            return;
    }
    string sKey = GetLocalString(oItem, "ITEM_KEY");
    object oOriginalItem = GetObjectByTag("back_item" + sKey);
    if(oOriginalItem != OBJECT_INVALID)
    {
        //Копировать все свойства предмета на новый
        IPCopyItemProperties(oOriginalItem, oItem);
        DestroyObject(oOriginalItem);
        DeleteLocalString(oItem, "ITEM_KEY");
    }
}
//Убирает свойства с создания
void RemoveEffects(object oObject)
{
    effect eEff = GetFirstEffect(oObject);
    while(GetIsEffectValid(eEff))
    {
        if(GetEffectType(eEff) == EFFECT_TYPE_SPELL_FAILURE || GetEffectType(eEff) == EFFECT_TYPE_POLYMORPH)
            RemoveEffect(oObject, eEff);
        eEff = GetNextEffect(oObject);
    }
}

void main()
{
    object oExit = GetExitingObject();
    SetLocalInt(oExit, "INSIDE", 0); // Локальная переменная для избежания глюков с save\load
    if(GetObjectType(oExit) == OBJECT_TYPE_CREATURE)
    {
        RemoveEffects(oExit);
        object oItem = GetFirstItemInInventory(oExit);
        float fDelay = 4.0; //Задержка для избежания глюков с прогрузкой, можно увеличить
        while(oItem != OBJECT_INVALID)
        {
            DelayCommand(fDelay, RestoreAllProperties(oItem, oExit, -1));
            oItem = GetNextItemInInventory(oExit);
        }
        //Убираем свойства с предметов в слотах экиперовки
        //Если лексикон не врет, то искомые слоты с 0(INVENTORY_SLOT_HEAD) по 13(INVENTORY_SLOT_BOLTS)
        int iSlot = 0;
        while(iSlot<14)
        {
        DelayCommand(fDelay, RestoreAllProperties(OBJECT_INVALID, oExit, iSlot));
        iSlot++;
        }
       
    }
    }

}
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136131 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: May 25 2010, 11:11


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Я боюсь, что перебор всех лок будет некисло тормозить, попробую обойтись жестким списком или выборкой тэгов из mysql.
Как напишу, выложу тут для проверки.
QUOTE (Ilerien @ May 25 2010, 01:12) *
Velmar's Tower 2х2 из Rural+City?

Именно. В одном из поселений, в этой башне располагается рынок.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136115 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: May 24 2010, 21:52


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


В том то и вся соль, обход неписей по идее должен совершаться два раза в сутки.

[измините за оффтоп, лирика]
Собственный модуль, не привязанный к забытым королевствам.
Когда-то держал в локальной сети скромненький шардик, менее, чем на сто локаций с несбалансированным рулесетом. Было весело, но года через три шард загнулся. Сейчас вот довожу до ума правила, выкидываю чужие хаки, (из гемовского хака я правда оставил чудную башню и холмики, надеюсь, никто обижаться не будет) рисую локации, балансирую спавны. Акцент собираюсь делать на динамических головоломках в данжах и активном участии ДМ в игре.
Как доваяю до той кондиции, чтобы не стыдно было сервер запускать, выпущу в большой мир.
[/измините за оффтоп, лирика]
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136111 · Ответов: 3670 · Просмотров: 712,141

Важно! Скрипты
Batkom
Отправлено: May 24 2010, 16:39


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


QUOTE (Lex @ May 24 2010, 09:18) *
Только AssignCommand(OBJECT_SELF, - делать не нужно, можно сразу
....
и заводить переменную для свича не обязательно, достаточно switch d6()

Вот это не знал, спасибо.
Кстати, так подумал, десяток ниписей в таком колизее мгновенно загадит весь чат. Стоит сделать проверку
Neverwinter Script
if (d6()>5) ActionSpeakString(sVoice, TALKVOLUME_SHOUT);

Можно спикстринг заменить на
Neverwinter Script
PlayVoiceChat(VOICE_CHAT_BATTLECRY1);

или что-то другое из группы VOICE_CHAT_*


У меня есть вопрос:
Сейчас пишу пресловутый распорядок дня для неписей. Имею два пути решения.
1) на onhb у каждого npc стоит проверка времени(day/night) и если никого нет в локации, а ему пора спать, он тихо - мирно прыгает домой.(все равно у npc что-то исполняется на onhb, почему бы не добавить туда еще...)
2) на onhb у плейсибла стоит проверка времени и таблица npc, которым нужно приказать спать. Если проверка успешна, плейсибл обзванивает всех ниписей и расставляет их по домам.
Так, как это дело пишется для шарда, то самое важное тут - быстродействие.
Так вот, что будет работать быстрее?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136109 · Ответов: 3670 · Просмотров: 712,141

Batkom
Отправлено: May 23 2010, 16:36


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Да, да, очень похоже.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136097 · Ответов: 3359 · Просмотров: 648,536

Важно! Скрипты
Batkom
Отправлено: May 21 2010, 23:44


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Neverwinter Script
void main()
int iEmotion;
int iAnimation;
string sVoice;
iEmotion = d6();
switch (iEmotion)
{
case 1: iAnimation = ANIMATION_FIREFORGET_SALUTE;  sVoice="bla bla bla"; break;
case 2: iAnimation = ANIMATION_FIREFORGET_DRINK;    sVoice="bla bla bla"; break;
case 3: iAnimation = ANIMATION_FIREFORGET_TAUNT;    sVoice="bla bla bla"; break;
case 4: iAnimation = ANIMATION_FIREFORGET_VICTORY1; sVoice="bla bla bla"; break;
case 5: iAnimation = ANIMATION_FIREFORGET_VICTORY2; sVoice="bla bla bla"; break;
case 6: iAnimation = ANIMATION_FIREFORGET_VICTORY3; sVoice="bla bla bla"; break;
}
AssignCommand(OBJECT_SELF, ActionPlayAnimation(iAnimation));
AssignCommand(OBJECT_SELF, ActionSpeakString(sVoice, TALKVOLUME_SHOUT));
}

В свойствах создания есть вкладка скриптов, a там на OnHeartBeat
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136092 · Ответов: 3670 · Просмотров: 712,141

Batkom
Отправлено: May 20 2010, 23:50


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Не смог найти ни здесь ни на ваулте, но вроде бы это тут обсуждалось.
Ни у кого не завалялось ссылочки на оверрайд стандартного тайлсета, дабы вместо бесконечной степи за границей локации игры было какое-то заполнение?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136087 · Ответов: 3359 · Просмотров: 648,536

Batkom
Отправлено: May 20 2010, 19:21


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


QUOTE (Ilerien @ May 20 2010, 15:18) *
Сделать новый базовый итем, занимающий в инвентаре много места (допустим, 7х7). Это, конечно, для книг не подойдёт, но карту таким образом сделать вполне получится.

Это не есть круто с эргономической и логической точек зрения, если только не сказать, что карта была высечена на каменной скрижали.

QUOTE (Lex @ May 20 2010, 16:38) *
сделать карту в АСКИшных символах и воткнуть в описание предмета (IMG:style_emoticons/kolobok_light/smile.gif)
Можно даже цветную, цветовые тэги канают для описания предметов.

Если не найду решение, то буду делать именно так.

QUOTE (Rewazer @ May 20 2010, 16:56) *
так и в журнал ее можно засунуть, а запись в журнал добавлять используя предмет

Изображение или ascii?
  Форум: Custom Content · Просмотр сообщения: #136084 · Ответов: 111 · Просмотров: 121,640

Batkom
Отправлено: May 20 2010, 14:52


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


QUOTE (Ilerien @ May 19 2010, 21:37) *
*пожал плечами* Пихать изображение в иконку, в чём сложность-то?

Как было сказано ниже, в размере иконки.
Я хотел узнать, нет ли каких обходных путей для подобной реализации?
  Форум: Custom Content · Просмотр сообщения: #136079 · Ответов: 111 · Просмотров: 121,640

Batkom
Отправлено: May 19 2010, 17:57


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Доброе время суток.
На днях озаботился вопросом вставки кастомной текстурки карты мира в игру.
Самый простой путь - моделька карты с текстурой как плейсибл.
Однако же, хотелось бы иметь карту как предмет, а картинку в его описании.
Есть же изображение в виде иконки, прилагающейся к описанию.
А ведь так можно реализовать иллюстрированные книги или натурально запятнанные кровью записки.
Есть ли какие-то идеи по реализации данной задумки?
  Форум: Custom Content · Просмотр сообщения: #136072 · Ответов: 111 · Просмотров: 121,640

Batkom
Отправлено: May 19 2010, 16:58


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Доброе время суток. Не так давно озаботился созданием чего-то подобного.
Планируется создать общий интерактивный граф умений и эдакий калькулятор персонажа для версии NWN 1.68.
Не знает ли кто, имеется ли где-нибудь что-нибудь подобное, чтобы мне не повторять изобретение велосипеда?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #136069 · Ответов: 0 · Просмотров: 5,575

Важно! Скрипты
Batkom
Отправлено: Feb 12 2010, 20:51


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Хотел научить стражников ругаться и подбегать к игроку, если у него в руках находится оружие.
на onPerseption поставил такой кусок:
Neverwinter Script
object oPC = GetLastPerceived();
    if (GetIsPC(oPC)&&GetLastPerceptionSeen())
    {
        object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
        if (oWeapon != OBJECT_INVALID)
        {
        ClearAllActions();
        AssignCommand(OBJECT_SELF, ActionStartConversation(oPC, "noweapon"));
        SendMessageToPC(oPC, "Я вижу тебя!");
        }
    }

"Ай си ю" в лог говорит, а вот диалог не стартует.
Нипесь привязан к вейпоинтам, быть может в них дело?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #135369 · Ответов: 3670 · Просмотров: 712,141

Batkom
Отправлено: Jul 25 2007, 00:06


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Список всех констант STANDARD_FACTION_* :
STANDARD_FACTION_COMMONER
STANDARD_FACTION_DEFENDER
STANDARD_FACTION_HOSTILE
STANDARD_FACTION_MERCHANT

Как кастомную фракцию задать не знаю.

Нашел вот что еще:
Neverwinter Script Source
ClearPersonalReputation(
    object oTarget,
    object oSource = OBJECT_SELF
);

Пока не разобрался, как работает.

Существуют ли какие-либо решения относительно того же воровства?
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #110985 · Ответов: 3359 · Просмотров: 648,536

Batkom
Отправлено: Jul 24 2007, 22:55


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Теплых ветров.
Вопрос №1: Сильно ли влияют на потребление ресурсов локальные переменные?
(скажем на undropable предмете в инвентаре игрока висит последний посещенный игроком город, место смерти, отношение к игроку в некоторых поселениях, последнее зафиксированное состояние хитов, список последних зафиксированных статусов, список убитых боссов, степень опьянения)

Вопрос №2: Я желаю модифицировать скрипт карманного воровства. В стандартных скриптах похожего по семантике названия я не встречал(впрочем как и скрипта какого-нибудь кнокбека). Умения, в отличие от спеллов, вшиты в движок или сидят в 2da таблицах?(впрочем, в это слабо верится)
(Хочу реализовать коробочку, лежащие в которой предметы нельзя украсть)

Вопрос №3: Как из скрипта сменить отношение к игроку кастомной фракции?(допустим "silverbrig_citizens")
Отсюда еще вытекает вопрос, как определить кастомную фракцию?
(Нужно реализовать следующее: если игрока убивает представитель стражи такого-то города, игрок воскрешается и садится в тюрьму этого города и отношение к нему сей фракции меняется на значение по умолчанию [50])

Вопрос №4: Есть ли смысл использования DelayCommand(); с большим параметром delay?
(для того, чтобы открыть дверь камеры в той же тюрьме через 30 мин или через пару часов[побег не исключен (IMG:style_emoticons/kolobok_light/biggrin.gif) ])

Вроде все, что пока не смог сам решить, нуп давно не был на WRG. (IMG:style_emoticons/kolobok_light/unsure.gif)
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #110982 · Ответов: 3359 · Просмотров: 648,536

Batkom
Отправлено: Feb 26 2007, 21:25


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Наконец то взялся за нвн2 и тут же впал в ступор.
Простейший скрипт посадки на стул x2_am_sit(замечу даже стандартный) не хочет работать.
Персонаж просто подходит к стулу, на панели очередности действий появляется действие "сидеть" и все. Собственно пятую точку персонаж прикладывать к деревянному другу не желает. Что я упустил?
  Форум: Neverwinter Nights 2 Obsidian Toolset · Просмотр сообщения: #105051 · Ответов: 829 · Просмотров: 448,506

Batkom
Отправлено: Oct 11 2006, 11:23


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Я сейчас понял, что у меня не хватает фантазии, чтобы использовать все возможности.
Хотя даже тот примитив, что задумал реализовать довольно напряжно, из-за перенаворочености интерфейса.
  Форум: Neverwinter Nights 2 Obsidian Toolset · Просмотр сообщения: #94354 · Ответов: 116 · Просмотров: 82,075

Batkom
Отправлено: Oct 7 2006, 09:06


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Мои извенения. Проглядел.. (IMG:style_emoticons/kolobok_light/sorry.gif)

Чтобы было удобно работать в тулсете, нужно, как минимум, два монитора 1280*1024.
Сама мощь редактора впечатляет если долго стараться, можно даже что-то построить.
Ввиду возможностей к построению локаций тулсета, его неудобства и того, что другого тулсета нам не дадут, будем осваивать этот, но дико матеря Obsidian и мысленно приговаривая их к смерти, через грязные надругательства.
  Форум: Neverwinter Nights 2 Obsidian Toolset · Просмотр сообщения: #93945 · Ответов: 116 · Просмотров: 82,075

Batkom
Отправлено: Oct 7 2006, 02:02


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


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

З.Ы. Обьясните мне глупому, как двигать камеру.
  Форум: Neverwinter Nights 2 Obsidian Toolset · Просмотр сообщения: #93936 · Ответов: 116 · Просмотров: 82,075

Важно! Скрипты
Batkom
Отправлено: Sep 15 2006, 13:46


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


Обьект дестроится, действие остается.
  Форум: Neverwinter Nights Aurora Toolset · Просмотр сообщения: #91742 · Ответов: 3670 · Просмотров: 712,141

Batkom
Отправлено: Sep 12 2006, 13:17


Level 4
**

Группа: Candidate
Сообщений: 96
Регистрация: 30.06.2005
Пользователь №: 1,238


QUOTE(Aiwan @ Sep 12 2006, 08:02) [snapback]91517[/snapback]

Я так и не понял что надо. Если плащи 1.68 то скопируй строку из ресурсов нвн 1.68 и вставь в baseitems.2da.

Сенк, уже так и сделал.
А на ваулте для этого дела лежит софтинка.
  Форум: Custom Content · Просмотр сообщения: #91529 · Ответов: 642 · Просмотров: 244,302

4 страниц V   1 2 3 > » 

Есть новые сообщения  Открытая тема (есть новые ответы)
Нет новых сообщений  Открытая тема (нет новых ответов)
Горячая тема (есть новые сообщения)  Горячая тема (есть новые ответы)
Горячая тема (нет новых сообщений)  Горячая тема (нет новых ответов)
Опрос (есть новые голоса)  Опрос (есть новые голоса)
Опрос (нет новых голосов)  Опрос (нет новых голосов)
Тема закрыта  Закрытая тема
Тема перемещена  Тема перемещена
 

Текстовая версия Сейчас: 3rd June 2024 - 15:00