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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> База скриптов, Готовые скрипты. Описание обязательно.
Lex
сообщение Mar 27 2004, 22:00
Сообщение #1


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

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



Сюда выкладывать ваши скрипты и системы скриптов с описанием.
ОБСУЖДЕНИЕ, ВОПРОСЫ И ПРОСЬБЫ О ПОМОЩИ НЕ В ЭТОЙ ТЕМЕ.

ОГЛАВЛЕНИЕ:

-- страница 1 --

* дамаг НПС: Кровь + Вопли
* скрипт смерть: Крики о помощи и смерть
* Фраза при невозможности открыть дверь
* Запрет для всех, кроме игрока покидать локацию
* Создание стены из плейсов
* Субрасы: выдача уникальных вещей
* Дача опыта за обезвреживание и открытие замка
* Скачок времени в разговоре
* Дайсы
* Запираем двери на ночь
* Набор скриптов для AI проверок. Типы оружия, магия и тд.
* Работа с эффектами (скан и удаление)
* Бой с остановкой перед смертью* Отчистка торговцев от лишних вещей
*Работа с цветами
*Кодовая дверь
*Банковская система
*Падежи и работа с текстом
*Работа со свойствами вещей: устранение дисбаланса

-- страница 2 --

*если НПС отойдет от своего POST_-а дальше 15 метров, то появится строка в диалоге
*Отмена Rest через кнопку
*Алкоголь+Отрава. + Шпаргалка Айвана + Болото от Валео
*Что то навроде, как в кино: "Прошло два года..."
* респаунинг NPC по событию их смерти, без использования энкаунтеров
* Когда в городе наступит ночь - зажгуться факелы и будут освещать территорию
* Визуалки при LevelUp согласно элайменту
* Система отдыха от Авадона (в дикой местности)
* Делает из длинной лавки 3-х местный диван
* Скрипты авторегистрации для сервера использующего APS/NWNX 2 + MySQL
* Ловушка от (MoF)Darth_Nick
* Система смерти от Лито
* Запись смерти игрока в БД
* Спаунер/анспаунер для гвардов: выход на патруль утром и уход вечером
* Сервер-статус-чекер с помощью APS/NWNX2 и базы данных MySQL
* Система отдыха от Авадона (в таверне)
* Пара функций для сохранения и восстановления всех свойств предмета
* систему захода игрока на сервер + выдача вещей
* Скрипт на смерть НПС. НПС исчезает, а на его месте появляется труп
* Ведет игрока за НПС по точкам
* Разговор 2 и более НПС меж собой. + взрывоопасные бочки.
* позволяет при наличии надетой брони с определенным ТЕГом ходить во вражественном лагере + два скрипта для запуска диалога в котором участвует НПС которого вы атакуете и диалог начинается с определенного нр у НПС + Запрет выхода из локации монстров за игроком

-- страница 3 --

* Система смерти + Температурный скрипт + тягловые животные + гильдия убийц + система отдыха + скрипт ветра + скрипт осадков
* Спавн монстров + призрак
* защита чаров по CDKey + Скрипт для магазинов + pеализация кольца духа + Расцветка сообщений, выводимых SendMessageToPC() + Простейшая реализация двумерного массива
* управление дверью через рычаг + холодная локация + скрипт капитана (подчиненные отдают честь) + всплывающая строка на триггере
* буква "я" в скриптах (эпоха до патча dumbo) + автопереход на триггере
* дестрой всех вещей игрока + часы + подсчет количества items у объекта
* случайная точка на определенном удалении от цели
* Функция определяет, можно ли надеть указанный армор (по левелу)
* запоминаем время для шардов, чтобы после рестарта выставить правильно
* скрипт для уборщика + определение кол-ва жизней цели в процентах + Скрипт на автооткрывание дверей + код позволяет создать "случайную локацию", как например в БГ + скрипт для переноса всех обьектов
* красивая работа с визуалками и плейсами
* реализация болота + личный код на проверку скилла Persuade
* Скрипт на воскрешение и зомби + скрипт на то чтобы после смерти находится в бессознательном состоянии 10 едениц + телепорт + превращение НПC в предмет
* Скрипт смены погоды
* Скрипт лута для класса в после выполнения квеста + генерация лута по элайменту и проверке скила + ночное привидение + фразы дверей "закрыто" на основе вейпов + Рандомный лут в КВЕСТОВЫЙ сундук
* скрипты для магазинов
* получение лвла по алайменту (на 2 странице этот скрипт доработан Авадоном) + веселая ловушка (повтор)
* Крафт брони +1 к АС, Крафт оружия +1энчант бонус, либо елси это лук или арбалет +1 атак бонус
* Скриптовая система из "Проклятия Левора", предназначенная для переноса вещей хенчмана в следующий модуль
* скрипт чтобы NPC шел за игроком. Будет идти даже после окончания боя.
* пара простых, но очень полезный скриптов для шардов, на них "нанизываются" все остальные примочки
* Система факелов в городах
* Координатная система перехода
* Выдает любому уровню процент ХР заданный вами
* Вот маленький инклюд с функцией makeTrace изображает дымную трассу (типа как от ракеты) между двумя точками + функции устанавливают заданное числовое значение аляймента

-- страница 4 --
* Построение "лучевой" конструкции на локации
* Альтернативный отдых от 2_advanced + работа с игровым временем
* Скрипт запрета игры в модуль определенными расами/классами и тд
* посадка на стул с учетом того, что игрока может выкинуть из модуля (актуально для шардов)
* Скрипт отодвигания НПС с прохода через диалог
* Автоматическое переключение дневных и ночных энкаунтеров
* Тестовый триггер для присвоения нужных локалок. Полезен при отладке синглов
* Выдача опыта в зависимости от нанесенного дамага
* Библиотека для работы с цветами (возможность делать цвета самостоятельно на основе RGB)
* Скрипт построения НПС в колонны, шеренги, ромбы и другие виды построений
* Библиотека для работы со строками, шаблонами и тд.
* Работа с инвентарем (передача инвенторя от 1 НПС другому, взятие нескольких стекованных предметов) + определение лучшего класса в мультиклассе
* Скрипт "резервирования" нескольких мест на сервере под DM'ов (kreon)
* Скрипт "резервирования" нескольких мест на сервере под DM'ов (Zirrex)
* Восстановление заклинаний через молитвы
* Раскидывание заходящих игроков по точкам (например для автоматического раскидывания игроков по камерам в тюрьме)
* Функция, определяющая лучшее оружие ближнего боя для указаного персонажа. (с учетом фитов и многого другого)
* После убийства НПС его вещи копируются в плейсбл, который потом грабится игроком
* Cкрипт для разных таверн. Официантка ходит по таверне подходит к разнам клиентам ,спрашивает заказ
* Дерево, которое можно рубить только специальным топором и после некоторых мучений отрубить таки сук. Другое оружие тупится об это дерево.



Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Twin
сообщение Dec 7 2004, 11:38
Сообщение #2


Level 5
**

Класс: Некромант
Характер: Neutral Evil
Раса: Нежить
NWN: Скриптинг [PW]




Пара функций для сохранения и восстановления всех свойств предмета. Дают возможность конвертировать все перманентные (и только перманентные) свойства предмета в строку, которую можно сохранить куда хотите. И также восстановить все свойства (кроме On Monster Hit) из этой строки на предмет. Также сохраняются заряды палочек.
Не сохраняется:
Кастомный вид брони и оружия.
Additional Price отличная от ResRef'овской.
Свойство On Monster Hit (его можно ставить только на Creature Weapon) сохраняется нормально, но при восстановлении работает некорректно. Вернее два из подствойств (SubType) этого свойства не получается восстановить. Карочи, а оно вам ваще нужно? ;)
Количество использований свойства X uses/day. То есть при восстановлении данного свойства из строки возможно, что количество использований обновится как будто после отдыха - не проверял.
Наверняка что-то еще не сохраняется, но мне в голову ничего не приходит.
Neverwinter Script Source
/*
** Конвертациz свойств предмета в строку.
*/

string GetProperties(object oItem)
{
    string sProperties = IntToString(GetItemCharges(oItem));
    int nTemp;
    itemproperty ipTemp = GetFirstItemProperty(oItem);

    while (GetIsItemPropertyValid(ipTemp))
    {
        if (GetItemPropertyDurationType(ipTemp) == 2)
        {
            sProperties += "@"+
                IntToString(GetItemPropertyType(ipTemp)) +":";

            nTemp = GetItemPropertyParam1Value(ipTemp);
            if (nTemp == 255 || nTemp == -1)
                sProperties += "-1:";
            else
                sProperties += IntToString(nTemp - 1) +":";

            sProperties +=
                IntToString(GetItemPropertyCostTable(ipTemp)) +":";

            nTemp = GetItemPropertyCostTableValue(ipTemp);
            if (nTemp == -1)
                sProperties += "-1:";
            else
                sProperties += IntToString(nTemp - 1) +":";

            nTemp = GetItemPropertySubType(ipTemp);
            if (nTemp == -1) sProperties += "0";
            else            sProperties += IntToString(nTemp);
        }

        ipTemp = GetNextItemProperty(oItem);
    }

    return sProperties;
}

/*
** Установка свойств предмета из строки.
*/

void SetProperties(object oItem, string sProperties)
{
    //SendMessageToPC(GetFirstPC(), "SetProperties :: sProperties == "+ sProperties);

    itemproperty ipTemp = GetFirstItemProperty(oItem);
    while (GetIsItemPropertyValid(ipTemp))
    {
        RemoveItemProperty(oItem, ipTemp);
        ipTemp = GetNextItemProperty(oItem);
    }

    int i = 1;
    int pos, nCharges;
    string sTemp;

    nCharges = StringToInt(GetStringLeft(sProperties, FindSubString(sProperties, "@")));
    if (nCharges > 0)
        SetItemCharges(oItem, nCharges);

    while ((pos = FindSubString(sProperties, "@")) != -1)
    {
        sProperties = GetStringRight(sProperties, GetStringLength(sProperties) - pos - 1);

        pos = FindSubString(sProperties, "@");
        if (pos == -1)
            pos = GetStringLength(sProperties);

        sTemp = GetStringLeft(sProperties, pos);

        //SendMessageToPC(GetFirstPC(), "sTemp["+ IntToString(i) +"] == "+ sTemp);
        SetProperty(oItem, sTemp);

        i++;
    }
}

void SetProperty(object oItem, string sProperty)
{
    int pos = FindSubString(sProperty, ":");
    int nType = StringToInt(GetSubString(sProperty, 0, pos));

    sProperty = GetSubString(sProperty, pos + 1, GetStringLength(sProperty));
    pos = FindSubString(sProperty, ":");
    int nParam1Value = StringToInt(GetSubString(sProperty, 0, pos));
    nParam1Value++;

    sProperty = GetSubString(sProperty, pos + 1, GetStringLength(sProperty));
    pos = FindSubString(sProperty, ":");
    int nCostTable = StringToInt(GetSubString(sProperty, 0, pos));

    sProperty = GetSubString(sProperty, pos + 1, GetStringLength(sProperty));
    pos = FindSubString(sProperty, ":");
    int nCostTableValue = StringToInt(GetSubString(sProperty, 0, pos));
    nCostTableValue++;

    sProperty = GetSubString(sProperty, pos + 1, GetStringLength(sProperty));
    int nSubType = StringToInt(sProperty);

    itemproperty ipTemp;

    switch (nType)
    {
/*OK*/  case ITEM_PROPERTY_ABILITY_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ABILITY_BONUS _OK_");
            ipTemp = ItemPropertyAbilityBonus(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_AC_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_AC_BONUS _OK_");
            ipTemp = ItemPropertyACBonus(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_AC_BONUS_VS_ALIGNMENT_GROUP _OK_");
            ipTemp = ItemPropertyACBonusVsAlign(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_AC_BONUS_VS_DAMAGE_TYPE _OK_");
            ipTemp = ItemPropertyACBonusVsDmgType(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_AC_BONUS_VS_RACIAL_GROUP _OK_");
            ipTemp = ItemPropertyACBonusVsRace(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_AC_BONUS_VS_SPECIFIC_ALIGNMENT _OK_");
            ipTemp = ItemPropertyACBonusVsSAlign(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ARCANE_SPELL_FAILURE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ARCANE_SPELL_FAILURE _OK_");
            ipTemp = ItemPropertyArcaneSpellFailure(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ATTACK_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ATTACK_BONUS _OK_");
            ipTemp = ItemPropertyAttackBonus(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ATTACK_BONUS_VS_ALIGNMENT_GROUP _OK_");
            ipTemp = ItemPropertyAttackBonusVsAlign(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ATTACK_BONUS_VS_RACIAL_GROUP _OK_");
            ipTemp = ItemPropertyAttackBonusVsRace(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ATTACK_BONUS_VS_SPECIFIC_ALIGNMENT _OK_");
            ipTemp = ItemPropertyAttackBonusVsSAlign(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_BASE_ITEM_WEIGHT_REDUCTION _OK_");
            ipTemp = ItemPropertyWeightReduction(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_BONUS_FEAT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_BONUS_FEAT _OK_");
            ipTemp = ItemPropertyBonusFeat(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_BONUS_SPELL_SLOT_OF_LEVEL_N _OK_");
            ipTemp = ItemPropertyBonusLevelSpell(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_CAST_SPELL:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_CAST_SPELL _OK_");
            ipTemp = ItemPropertyCastSpell(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_BONUS _OK_");
            ipTemp = ItemPropertyDamageBonus(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_BONUS_VS_ALIGNMENT_GROUP _OK_");
            ipTemp = ItemPropertyDamageBonusVsAlign(nSubType, nParam1Value, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_BONUS_VS_RACIAL_GROUP _OK_");
            ipTemp = ItemPropertyDamageBonusVsRace(nSubType, nParam1Value, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_BONUS_VS_SPECIFIC_ALIGNMENT _OK_");
            ipTemp = ItemPropertyDamageBonusVsSAlign(nSubType, nParam1Value, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_REDUCTION:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_REDUCTION _OK_");
            ipTemp = ItemPropertyDamageReduction(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_RESISTANCE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_RESISTANCE _OK_");
            ipTemp = ItemPropertyDamageResistance(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DAMAGE_VULNERABILITY:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DAMAGE_VULNERABILITY _OK_");
            ipTemp = ItemPropertyDamageVulnerability(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DARKVISION:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DARKVISION _OK_");
            ipTemp = ItemPropertyDarkvision();
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_ABILITY_SCORE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_ABILITY_SCORE _OK_");
            ipTemp = ItemPropertyDecreaseAbility(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_AC:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_AC _OK_");
            ipTemp = ItemPropertyDecreaseAC(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_ATTACK_MODIFIER _OK_");
            ipTemp = ItemPropertyAttackPenalty(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_DAMAGE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_DAMAGE _OK_");
            ipTemp = ItemPropertyDamagePenalty(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_ENHANCEMENT_MODIFIER:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_ENHANCEMENT_MODIFIER _OK_");
            ipTemp = ItemPropertyEnhancementPenalty(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_SAVING_THROWS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_SAVING_THROWS _OK_");
            ipTemp = ItemPropertyReducedSavingThrowVsX(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_SAVING_THROWS_SPECIFIC _OK_");
            ipTemp = ItemPropertyReducedSavingThrow(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_DECREASED_SKILL_MODIFIER:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_DECREASED_SKILL_MODIFIER _OK_");
            ipTemp = ItemPropertyDecreaseSkill(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ENHANCED_CONTAINER_REDUCED_WEIGHT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ENHANCED_CONTAINER_REDUCED_WEIGHT _OK_");
            ipTemp = ItemPropertyContainerReducedWeight(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ENHANCEMENT_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ENHANCEMENT_BONUS _OK_");
            ipTemp = ItemPropertyEnhancementBonus(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_ALIGNMENT_GROUP _OK_");
            ipTemp = ItemPropertyEnhancementBonusVsAlign(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_RACIAL_GROUP _OK_");
            ipTemp = ItemPropertyEnhancementBonusVsRace(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ENHANCEMENT_BONUS_VS_SPECIFIC_ALIGNEMENT ?_OK_");
            ipTemp = ItemPropertyEnhancementBonusVsSAlign(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_EXTRA_MELEE_DAMAGE_TYPE _OK_");
            ipTemp = ItemPropertyExtraMeleeDamageType(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_EXTRA_RANGED_DAMAGE_TYPE _OK_");
            ipTemp = ItemPropertyExtraRangeDamageType(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_FREEDOM_OF_MOVEMENT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_FREEDOM_OF_MOVEMENT _OK_");
            ipTemp = ItemPropertyFreeAction();
            break;
/*OK*/  case ITEM_PROPERTY_HASTE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_HASTE _OK_");
            ipTemp = ItemPropertyHaste();
            break;
/*OK*/  case ITEM_PROPERTY_HEALERS_KIT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_HEALERS_KIT _OK_");
            ipTemp = ItemPropertyHealersKit(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_HOLY_AVENGER:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_HOLY_AVENGER _OK_");
            ipTemp = ItemPropertyHolyAvenger();
            break;
/*OK*/  case ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_IMMUNITY_DAMAGE_TYPE _OK_");
            ipTemp = ItemPropertyDamageImmunity(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS _OK_");
            ipTemp = ItemPropertyImmunityMisc(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_IMMUNITY_SPECIFIC_SPELL _OK_");
            ipTemp = ItemPropertySpellImmunitySpecific(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_IMMUNITY_SPELL_SCHOOL _OK_");
            ipTemp = ItemPropertySpellImmunitySchool(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_IMMUNITY_SPELLS_BY_LEVEL _OK_");
            ipTemp = ItemPropertyImmunityToSpellLevel(nCostTableValue+1);
            break;
/*OK*/  case ITEM_PROPERTY_IMPROVED_EVASION:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_IMPROVED_EVASION _OK_");
            ipTemp = ItemPropertyImprovedEvasion();
            break;
/*OK*/  case ITEM_PROPERTY_KEEN:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_KEEN _OK_");
            ipTemp = ItemPropertyKeen();
            break;
/*OK*/  case ITEM_PROPERTY_LIGHT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_LIGHT _OK_");
            ipTemp = ItemPropertyLight(nCostTableValue, nParam1Value);
            break;
/*OK*/  case ITEM_PROPERTY_MASSIVE_CRITICALS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_MASSIVE_CRITICALS _OK_");
            ipTemp = ItemPropertyMassiveCritical(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_MIGHTY:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_MIGHTY _OK_");
            ipTemp = ItemPropertyMaxRangeStrengthMod(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_MIND_BLANK:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_MIND_BLANK");
            break;
/*OK*/  case ITEM_PROPERTY_MONSTER_DAMAGE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_MONSTER_DAMAGE ?OK?");
            ipTemp = ItemPropertyMonsterDamage(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_NO_DAMAGE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_NO_DAMAGE _OK_");
            ipTemp = ItemPropertyNoDamage();
            break;
/*OK*/  case ITEM_PROPERTY_ON_HIT_PROPERTIES:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ON_HIT_PROPERTIES _OK_");
            ipTemp = ItemPropertyOnHitProps(nSubType, nCostTableValue, nParam1Value);
            break;
/*FAIL*/case ITEM_PROPERTY_ON_MONSTER_HIT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ON_MONSTER_HIT _PARTIAL_ "+ IntToString(nSubType) +"!"+ IntToString(nParam1Value));
            ipTemp = ItemPropertyOnMonsterHitProperties(nSubType, nParam1Value);
            break;
/*OK*/  case ITEM_PROPERTY_ONHITCASTSPELL:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_ONHITCASTSPELL _OK_");
            ipTemp = ItemPropertyOnHitCastSpell(nSubType, nCostTableValue+1);
            break;
/*OK*/  case ITEM_PROPERTY_POISON:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_POISON");
            break;
/*OK*/  case ITEM_PROPERTY_REGENERATION:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_REGENERATION _OK_");
            ipTemp = ItemPropertyRegeneration(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_REGENERATION_VAMPIRIC:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_REGENERATION_VAMPIRIC _OK_");
            ipTemp = ItemPropertyVampiricRegeneration(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_SAVING_THROW_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_SAVING_THROW_BONUS _OK_");
            ipTemp = ItemPropertyBonusSavingThrowVsX(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_SAVING_THROW_BONUS_SPECIFIC _OK_");
            ipTemp = ItemPropertyBonusSavingThrow(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_SKILL_BONUS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_SKILL_BONUS _OK_");
            ipTemp = ItemPropertySkillBonus(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_SPECIAL_WALK:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_SPECIAL_WALK ?OK?");
            ipTemp = ItemPropertySpecialWalk(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_SPELL_RESISTANCE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_SPELL_RESISTANCE _OK_");
            ipTemp = ItemPropertyBonusSpellResistance(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_THIEVES_TOOLS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_THIEVES_TOOLS _OK_");
            ipTemp = ItemPropertyThievesTools(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_TRAP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_TRAP _OK_");
            ipTemp = ItemPropertyTrap(nSubType, nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_TRUE_SEEING:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_TRUE_SEEING _OK_");
            ipTemp = ItemPropertyTrueSeeing();
            break;
/*OK*/  case ITEM_PROPERTY_TURN_RESISTANCE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_TURN_RESISTANCE _OK_");
            ipTemp = ItemPropertyTurnResistance(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_UNLIMITED_AMMUNITION:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_UNLIMITED_AMMUNITION _OK_");
            ipTemp = ItemPropertyUnlimitedAmmo(nCostTableValue);
            break;
/*OK*/  case ITEM_PROPERTY_USE_LIMITATION_ALIGNMENT_GROUP:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_USE_LIMITATION_ALIGNMENT_GROUP _OK_");
            ipTemp = ItemPropertyLimitUseByAlign(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_USE_LIMITATION_CLASS:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_USE_LIMITATION_CLASS _OK_");
            ipTemp = ItemPropertyLimitUseByClass(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_USE_LIMITATION_RACIAL_TYPE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_USE_LIMITATION_RACIAL_TYPE _OK_");
            ipTemp = ItemPropertyLimitUseByRace(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMENT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_USE_LIMITATION_SPECIFIC_ALIGNMENT _OK_");
            ipTemp = ItemPropertyLimitUseBySAlign(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_USE_LIMITATION_TILESET:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_USE_LIMITATION_TILESET");
            break;
/*OK*/  case ITEM_PROPERTY_VISUALEFFECT:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_VISUALEFFECT _OK_");
            ipTemp = ItemPropertyVisualEffect(nSubType);
            break;
/*OK*/  case ITEM_PROPERTY_WEIGHT_INCREASE:
            //SendMessageToPC(GetFirstPC(), "const ITEM_PROPERTY_WEIGHT_INCREASE _OK_");
            ipTemp = ItemPropertyWeightIncrease(nParam1Value);
            break;
        default:
            //SendMessageToPC(GetFirstPC(), "const default");
            break;
    }

    if (GetIsItemPropertyValid(ipTemp)) {
        AddItemProperty(DURATION_TYPE_PERMANENT, ipTemp, oItem);
    }
}

Данный скрипт можно исползовать для создания банка вещей. Так как проблема сохранения вещей с динамическими теперь отпадает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме
- Lex   База скриптов   Mar 27 2004, 22:00
- - Tarre T.   Скрипт мой, все совпадения случайны. Синьки: ...   Apr 2 2004, 15:08
- - Bot   Да, РэндомЛокэйшн в предыдущем скрипте взят с фору...   Apr 3 2004, 16:37
- - Aiwan   В общем простой скриптик, экономящий кучу времени ...   Apr 4 2004, 19:31
- - Aiwan   Я тут задумался о пиратах, выползающих из шахт и у...   Apr 23 2004, 08:12
- - Baal   Neverwinter Script Sourcefloat GetX(location lTarg...   May 4 2004, 13:28
- - Lord of V@MPIRES   Вы хотите добавить суб-расы в игру ? Пожайлуста ...   May 8 2004, 15:57
- - Aiwan   Вот небольшой скрипт дающий экспу за открытие двер...   May 8 2004, 22:02
- - Aiwan   Вот немного переделанный скрипт, кому то понравитс...   May 9 2004, 12:13
- - Aiwan   Удалить не получается....   May 10 2004, 20:53
- - Tarre Talliorne   В процессе всем нам часто приходится кидать дайсы....   May 13 2004, 15:27
- - Aiwan   Если у вас не очень много дверей, которые закрываю...   May 23 2004, 09:13
- - DBColl   Поправлю. Код//:://///////////////////////...   May 23 2004, 10:59
- - Sir_Sarles   Цитата Вот небольшой скрипт дающий экспу за открыт...   May 26 2004, 08:21
- - Tarre Talliorne   Очередная порция скриптов(начал писать АИ, вот, та...   May 27 2004, 19:18
- - Аваддон   LEX: Ты бы описал в общих чертах, что эти скрипты ...   Jun 24 2004, 00:53
- - Tarre Talliorne   Скрипты: удаляющий эффект (1) и сканирующий эффект...   Jul 3 2004, 19:16
- - Tarre Talliorne   Neverwinter Script Sourceobject oFPC = GetLastAtta...   Jul 4 2004, 13:39
- - Tarre Talliorne   Да, я добрался-таки до тулсы, проверил: все работа...   Jul 4 2004, 20:05
- - Tarre Talliorne   Neverwinter Script Sourceconst string TXT_COLOR_GR...   Jul 7 2004, 15:45
- - Tarre Talliorne   Цветной текст. Пример: Называешь мой инклюд ...   Jul 7 2004, 21:00
- - Аваддон   Скриптики на головоломку. Тоесть не совсем головол...   Jul 10 2004, 06:22
- - Аваддон   Небольшой, совсем простой скриптик банка. В нем не...   Jul 11 2004, 04:01
- - Tarre Talliorne   Часть скрипта из нашей демки. У нас будет более пр...   Jul 17 2004, 20:55
- - Valleo   Ладно думал я думал и решил тут отпостить простень...   Jul 21 2004, 19:58
- - Aiwan   Вот простенький скриптик, если НПС отойдет от свое...   Jul 23 2004, 22:41
- - Valleo   А вот скриптик, если при каких нибуть условиях вы ...   Jul 25 2004, 18:31
- - Lex   автор: _kaa_ Вот стандартный файл для алкоголя...   Aug 12 2004, 20:15
- - Aiwan   Вот простой скриптик, ставится на строку НПС и во ...   Aug 14 2004, 01:50
- - Twin   Благодаря советам вышестоящих модераторов в другом...   Oct 2 2004, 15:12
- - Аваддон   Этот скрипт можно ставить на факел, фонарь, или лу...   Oct 9 2004, 18:51
- - Аваддон   Скрипт получения уровня по алайменту написал [MoF]...   Oct 12 2004, 20:53
- - Аваддон   Ой, чето зачастил я со скриптами Но надеюсь пригод...   Oct 13 2004, 00:05
- - Lex   Источник: Валут. Нашел: Авадон. Neverwinter Scrip...   Nov 5 2004, 22:10
- - Аваддон   Я тут написал пару скриптиков. Они для сервера исп...   Nov 17 2004, 22:29
- - [MoF]Darth_Nick   Neverwinter Script Source//:://///////////////////...   Nov 18 2004, 05:38
- - Лито   у меня вот такий скрипт на OnPlayerDeath CODE void...   Nov 22 2004, 10:49
- - [MoF]Darth_Nick   Я смерть плеера в БД записываю Neverwinter Script...   Nov 24 2004, 04:57
- - Ilharess   Спаунер/анспаунер для гвардов (Утром открывается д...   Nov 24 2004, 12:40
- - Аваддон   долго отсутствовал, с интернетом опять неприятност...   Nov 27 2004, 12:29
- - Аваддон   На ваульте полно Сервер-статус-чекеров, но они бер...   Nov 29 2004, 09:35
- - Аваддон   продолжение OnPlayerLevelUp Neverwinter Script S...   Nov 29 2004, 10:11
- - Аваддон   В одном из моих постов, в Базе Скриптов я опублико...   Dec 4 2004, 23:45
- - Twin   Пара функций для сохранения и восстановления всех ...   Dec 7 2004, 11:38
- - Tarre Talliorne   http://rage-t.boom.ru/creative.html На эой странич...   Jan 5 2005, 13:19
- - Лито   Многие начинающие не могут нормально соединить нес...   Jan 27 2005, 21:00
- - Lex   Скрипт на смерть НПС. НПС исчезает, а на его месте...   Jan 27 2005, 22:14
- - Aiwan   СКРИПТ ВЕДУЩИЙ ИГРОКА ЗА НПС ПО ТОЧКАМ. Вейпов дол...   Mar 13 2005, 20:25
- - Lex   СЕРИЯ "СКРИПТЫ ПРОКЛЯТИЯ ЛЕВОРА" ЦИКЛ ...   Mar 17 2005, 11:51
- - Aiwan   СЕРИЯ "СКРИПТЫ ПРОКЛЯТИЯ ЛЕВОРА" ЦИКЛ ...   Mar 17 2005, 16:18
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 18 2005, 22:42
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 18 2005, 23:50
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 01:06
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 13:56
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 15:03
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 16:06
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 16:21
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 16:22
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 16:23
- - Lex   СЕРИЯ "СКРИПТЫ СТАРОЙ БАЗЫ" ЦИКЛ "С...   Mar 19 2005, 16:24
2 страниц V   1 2 >


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

 



Текстовая версия Сейчас: 23rd April 2024 - 12:58