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

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

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


Level 9
***

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



Jammed, Разве нельзя написать проверку, чтобы если хиты становились меньше 1, существо хилилось? :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
rdx
сообщение May 11 2005, 21:24
Сообщение #1092


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

Класс: Клерик
Характер: Lawful Good
Раса: Человек
NWN: Контент



QUOTE (Jammed @ May 9 2005, 21:29)
Здравствуйте!
Меня давно мучает один вопрос, ответ на который я так и не нашел. Наверняка эта тема уже поднималась, но все-таки:

Я хочу добиться следующего эффекта:
Представьте себе, встречаете вы мирного к вам NPC, нападаете на него (через меню с правой мыши), и как только
его здоровье (NPC то есть) доходит до, к примеру, единицы, он падает на землю, его отношение к вам
становится снова нейтральным. Через нек. время он встаёт, садится отдыхать и т.п.. Однако если будучи
поверженным (лежа на земле) он будет вновь вами атакован, то умрёт окончательно с первого вашего удара (эдакое "добивание").

Посмотри вот это Subdual Damage, примерно что ты описал, но для игроков. Можно расширить и на неписей
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 11 2005, 23:50
Сообщение #1093


Level 5
**

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



QUOTE (Jammed @ May 11 2005, 21:36)
Понимаешь, Buldog, может случиться такое, что у непися останется, допустим, 20хп, а я долбану его, к примеру, критическим на 60хп и у него сразу станет 0хп, минуя единицу.

Прочий внимательней мой пост, я же написал, что эффективней это сделать через не ОнДамаг, а ОнДеас, просто при смерти не убиваешь НПС, а он падает с 1 НР, правда там тогда надо пудет как то придумывать, что бы его добить можно было, но в принципе сразу он уже не помрет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lex
сообщение May 12 2005, 00:30
Сообщение #1094


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

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



если было 20 и дамаг на 60, то сразу труп. Но событие на дамаг произойдет..так что имхо стоит его юзать и можно обработать попробовать. А может и не выйдет нифига.
ибо есть еще такой вариант, как магия смерти. В этом случае смерть не должна "откладываться" имхо
Добавлено в [mergetime]1115847072[/mergetime]
зы: сам в ближайшее время буду себе такую схему писать.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Buldog
сообщение May 12 2005, 00:38
Сообщение #1095


Level 5
**

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



А еще бывает Девастейт, ну это если эпики используются :) Еще у монка дрожащая ладонь, смертельные сники у Ассасина, и если с заклинаниями можно бороться, прописать при провале спаса на смерть, что бы наносился дамаг какой то, то эти фиты правятся только хаками...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
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 скрипт, ну или сразу все при смерти.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

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

 



Текстовая версия Сейчас: 14th May 2025 - 10:05