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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 43 44 45 46 47 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Scaled
сообщение May 12 2005, 11:45
Сообщение #1096


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Вот у меня еще вопосы:
1. Хочу сделать чтобы при попытке написания свитка, требовались компоненты: перо и свиток.
Как это сделать? в 2да лезть?
2. Как при смерти табличку респаун ор дай вызывать?интересно как в ней написать что мол нажмешь кнопку респа и потеряешь 50 хр за левел.(в табличке)
3. Вот я на форуме нашел скрипт респауна в сундуке фиксированой шмотки, как его установить? Я попробывал создать существо в закрытой локе и на ОнСпаун повесить этот скрип - не фига.
П.С.
Lex спасибо за темперературный скрипт - классная штука.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 12 2005, 12:42
Сообщение #1097


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Табличка при смерти вызывается вот этой функцией:
Neverwinter Script Source
// Spawn in the Death GUI.
// The default (as defined by BioWare) can be spawned in by PopUpGUIPanel, but
// if you want to turn off the "Respawn" or "Wait for Help" buttons, this is the
// function to use.
// - oPC
// - bRespawnButtonEnabled: if this is TRUE, the "Respawn" button will be enabled
//  on the Death GUI.
// - bWaitForHelpButtonEnabled: if this is TRUE, the "Wait For Help" button will
//  be enabled on the Death GUI.
// - nHelpStringReference
// - sHelpString
void PopUpDeathGUIPanel(object oPC, int bRespawnButtonEnabled=TRUE, int bWaitForHelpButtonEnabled=TRUE, int nHelpStringReference=0, string sHelpString="")

В OnPlayerDeath ее прописываешь, а там, где sHelpString, я так понимаю, сам ничего не писал там :D, вписываешь нужный тебе текст.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 12 2005, 15:13
Сообщение #1098


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

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



QUOTE (Scaled @ May 12 2005, 12:45)
Lex спасибо за темперературный скрипт - классная штука.

это скрипт Milez'а, там же написано. Я просто со старого форума его перенес. :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 12 2005, 15:46
Сообщение #1099


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Может где есть,но я не нашел. такой баг: когда выходишь в полиморфе, а затем снова заходишь на сервер, кол-во хит-поинтов не сокращается, а так и остается в размере полиморфа. Ну можно еще 10 раз перекинутся и набить себе до 10к хитов.
Вопрос: Кто знает как лечится? :vava:
Ответить знающих прошу срочно, народ уже эксплуатирует, а самому разбиратся долго :(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 12 2005, 18:30
Сообщение #1100


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Вот, одновременно и HP вернет и фиксит баг с перезаходом в полиморфе, когда у сорка становится много много спелов после перезахода в полиморфе :)
Neverwinter Script Source
void RemoveSpells(object oPC)
{
    int i, k, l;
    for(i = 0; i <= 805; i++)
    {
        k = GetHasSpell(i, oPC);
        if(k)
        {
            for(l = 0; l < k; l++)
            {
                DecrementRemainingSpellUses(oPC, i);
            }
        }
    }
}

Neverwinter Script Source
int i;
    int nCHP = GetCurrentHitPoints(oPC);
    int nMHP = GetMaxHitPoints(oPC);
    effect eDmg = EffectDamage(nCHP - nMHP);

    effect eEffect = GetFirstEffect(oPC);
    while(GetIsEffectValid(eEffect))
    {
        if(GetEffectType(eEffect) == EFFECT_TYPE_POLYMORPH)
        {
            RemoveEffect(oPC, eEffect);
            if(nCHP > nMHP) ApplyEffectToObject(DURATION_TYPE_INSTANT, eDmg, oPC);
            DelayCommand(1.0f, RemoveSpells(oPC));
            SendMessageToPC(oPC, "Вот тебе за багоюз!");
            break;
        }
        eEffect = GetNextEffect(oPC);
    }

Это в OnClientEnter модуля.

Сообщение отредактировал Buldog - May 12 2005, 18:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 12 2005, 18:34
Сообщение #1101


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

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



кажись это Каа писал когда-то давно
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 12 2005, 18:36
Сообщение #1102


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Может быть, но конкретно это я сочинял сам :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 12 2005, 18:49
Сообщение #1103


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Buldog, я так понял, эти скрипты, не только баг фиксят,но так же запинают кол-во спеллов и хитов при выходе, а потом их подгружают при заходе?

*добавлено*

или нет, я что то засомневался, вроде нет.



Сообщение отредактировал Лито - May 12 2005, 19:00
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 12 2005, 18:59
Сообщение #1104


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Нет, эта часть только для перезахода в полиморфе :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 12 2005, 19:00
Сообщение #1105


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Все разобрался, спасибо Буль, как всегда меня выручил :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 12 2005, 19:03
Сообщение #1106


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Для сохранения HP и спелов вот эта часть, правда это я не сам писал, но идея мне понятна :) Модуль мы не сами делали, а разгребали какой то старый :)
Вот это в OnClientEnter:
Neverwinter Script Source
int iSavedHP = GetLocalInt(oStore, sStoreName);

    if (iSavedHP != 0)
    {
        effect efDamage = EffectDamage(GetMaxHitPoints(oPC)-iSavedHP,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_ENERGY);
        ApplyEffectToObject(DURATION_TYPE_INSTANT,efDamage,oPC);
    }

    int k, j, nSpells;
    for (k = 1; k <= 805; k++)
    {
        nSpells = GetLocalArrayInt(oStore, sStoreName+"_spells", k);
        if (nSpells)
        for (j = 0; j <= GetHasSpell(k, oPC) - nSpells; j++) DecrementRemainingSpellUses(oPC, k);
    }

А вот это в OnClientLeave:
Neverwinter Script Source
//@by _Kaa_ 20.05.30
#include "nw_o0_itemmaker"
void main()
{
object oPC = GetExitingObject();
object oStore = GetModule();
string sStoreName = GetLocalString(oPC,"HP_MyIdString");
SetLocalInt(oStore, sStoreName, GetCurrentHitPoints(oPC));
int k,nSpells;
for (k=1;k<805;k++)
{
nSpells = GetHasSpell(k,oPC);
if (nSpells)
SetLocalArrayInt(oStore,sStoreName+"_spells",k,nSpells);
}
}

Добавлено в [mergetime]1115914001[/mergetime]
В OnClientEnter тож этот инклюд нужен:
Neverwinter Script Source
#include "nw_o0_itemmaker"
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение May 12 2005, 19:41
Сообщение #1107


Level 9
***

Класс: Страж Тьмы
Характер: Chaotic Evil
Раса: Нежить



Buldog, это у меня стоит :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение May 13 2005, 08:43
Сообщение #1108


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Спасибо, вот еще у меня вопросы :D :
Как сделать чтобы в закле компонентом была ЛЮБАЯ , скажем, бутылочка с повышением ловкости?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 13 2005, 09:34
Сообщение #1109


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

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



Те не какой-то определенный предмет, а вещь с эффектом?
по идее так: вместо твоей
Neverwinter Script Source
if (GetTag(oItem)=="TAG")

сделай
Neverwinter Script Source
if ((GetBaseItemType(oItem)==BASE_ITEM_POTIONS)&&(ПРОВЕРКА, ЧТО У ВЕЩИ ЕСТЬ СВОЙСТВО - CAST SPELL тебе нужный))

проблема в том, что я такой функции не знаю :(
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение May 16 2005, 10:30
Сообщение #1110


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Обьясните мне, плз, как делать респаун в ящике фиксированой шмотки.
Я что не врубаюсь.Скрипт есть шмотка есть, а куда скрипт пихать не понимаю. :shout:
Заранее спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 16 2005, 12:54
Сообщение #1111


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Смотря какой скрипт, но, скорей всего, в OnUsed сундука.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение May 16 2005, 14:13
Сообщение #1112


Level 9
***

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Вот кстати мой скрипт выращивания яблок на кустах :)
CODE

#include "nw_i0_plot"
void DefaultFoodHeartbeat()
{
   object oFood = OBJECT_SELF;
   string food_name = GetLocalString(oFood,"food_name"); //Берем локальную переменную с куста
   int food_max = GetLocalInt(oFood,"food_maximum"); // Максимальное кол-во яблок на кусте
   int food_amount = GetLocalInt(oFood,"food_crop_amount"); //К-во яблок, вырастающих за 1раз
   int food_period = GetLocalInt(oFood,"food_crop_period"); //Период вырастания яблок
   //Если имя объекта на локалинте куста не равно пустоте.
   if( food_name != "" ) {
       int food_timer = GetLocalInt(oFood,"food_timer"); //Берем значение таймера
       int food_count = GetNumItems(oFood, food_name); //И количество выросших яблок
       //И если настало время...
       if( food_timer >= food_period ) {
           // Очищаем таймер
           SetLocalInt(oFood,"food_timer",0);
           if( food_count < food_max) {
               //И создаем объект
               int i;
               for(i=0; i < food_amount; i++) {
                   object item = CreateItemOnObject (food_name, oFood, 1);
                   }
           }
       } else {
           // increase the timer
           SetLocalInt(oFood,"food_timer",food_timer+1);
       }
   }
}


Для сундуков делаем соответственно. Ставим на heartbeat. Для удобства можешь переименовать переменные из food в loot например. На самом сундуке ставь эти переменные. Можно еще сделать генерацию нескоьких видов предмета на этом "кусте" или сундуке и прописывать их теги в соответствующей переменной.

Хотя для сундука действительно лучше на OnUsed, хотя на хертбите все равно доолжен торчать таймер.
CODE

SetLocalInt(OBJECT_SELF,"timer", timer+1);

На он юсд:
CODE

int timer = GetLocalInt (OBJECT_SELF, "timer");
if( timer >= УКАЗАТЬ ВРЕМЯ В РАУНДАХ ) {
           // Очищаем таймер
           SetLocalInt(OBJECT_SELF ,"timer",0);
           //И создаем объект
           object item = CreateItemOnObject (ТЕГ ОБЪЕКТА, OBJECT_SELF, 1);
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 16 2005, 15:01
Сообщение #1113


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Я блоки это конечно хорошо, но вот скрипты для генерации лута куда удобней делать под OnUsed или OnOpen
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение May 18 2005, 23:11
Сообщение #1114


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Вопрос о системе выпадения лута. Мне интересно какие скрипты отвечают за это?
Я сделаю палитру вещей и хочу чтобы они выпадали из мобов. Обьесните, плз, как это сделать.
Заранее спасибо.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 19 2005, 00:49
Сообщение #1115


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Если ты хочешь, что бы вещи выпадали стандартным образом тебе придется редактировать 2da таблицы, какие сказать немогу, никогда этим не занимался, либо придумать свою собственную систему. Можно генерить лут при спавне моба, тогда нужные действия прописываются в OnSpawn скрипте, а потом выбрасывать лут при смерти моба, необходимые действия в OnDeath скрипт, ну или сразу все при смерти.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение May 19 2005, 11:26
Сообщение #1116


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Ага, это получаеться для каждого моба свой скрипт с генерацией лута писать?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 19 2005, 11:28
Сообщение #1117


Level 5
**

Класс: Мастер Оружия
Характер: Chaotic Neutral
Раса: Полуорк



Нет, для всех мобов существуют стандартные скрипты nw_c2_default9 для OnSpawn и nw_c2_default7 для OnDeath, в них и вноси нужные изменения.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение May 19 2005, 12:00
Сообщение #1118


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Buldog Спасибо. :pilot:
Добавлено в [mergetime]1116493278[/mergetime]
Изменения тоже через переменную в свойствах модуля?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lorendroll
сообщение May 19 2005, 15:23
Сообщение #1119


Level 9
***

Класс: Волшебник
Характер: Neutral Good
Раса: Эльф



Я вот наверное сделаю скрипт по выпадению лута как копирование рандомного объекта из определенного сундука в инвентарь кричи на спауне. (во завернул то,сам не пойму! :) )
То есть для гоблина воина стоит сундук с всевозможными объектами для гоблина-воина. На гобе висит переменная с тегом сундука, к которому он будет обращаться. Соответственно на спауне он будет генерить некое количество рандомных вещей из присвоенного сундука себе в инвентарь. Вещи помечены как "выпадаемые", а сундуки стоят где-нибудь на недоступной ДМской локе.
Для разных типов существ разные типы сундуков. Это мне кажется легче сделать. И для редк\актирования удобнее.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение May 19 2005, 18:05
Сообщение #1120


Level 3
*

Класс: Волшебник
Характер: True Neutral
Раса: Человек



Я уже засыпал тупыми вопросами :crazy:
Вот еще оди:
Я хочу переписал закл баньши так чтобы при убиении врагов рассы эльф и пола женщина
поднимались зомби(они из моей палитры со способностью особой какой нить).
Вот делал делал, застопорился на определении пола, как быть? там нескольео констант пола.
А вообще такой закл возможно сделать или может и пытаться не стоит. :lol:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 43 44 45 46 47 > » 
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 12th July 2025 - 20:35