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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 49 50 51 52 53 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Aiwan
сообщение Jun 7 2005, 15:22
Сообщение #1251


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



2GoDoom воткни в начало и будет меньше проблем.
Neverwinter Script Source
//    if (GetArea(OBJECT_SELF)!=GetArea(GetNearestPC())) {return;}
      /*  Проверка для игры несколькими игроками. Разкомментируйте
        если вы собираетесь провести здесь партию. */

    if (GetArea(OBJECT_SELF)!=GetArea(GetFirstPC())) {return;}
    /* Работает это для одиночного режима игры. Так проще и быстрее. */
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Jun 8 2005, 05:31
Сообщение #1252


Level 3
*

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



Пиветсвую всех.
На досуге решил спросить:
1. Обьясните плз, если не трудно, на примере мне функцию float
2. Не знаю где спросить - как можно добавить свой спецэффект заклинания, такое вообще можно?
3. Не помню, потом спрошу :yes:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Jun 8 2005, 08:33
Сообщение #1253


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
Обьясните плз, если не трудно, на примере мне функцию float


float это не функция, а тип чисел с плавающей точкой ( 0.5-это число типа флоат, 3-число типа int)есть функции преобразующие числа одного типа в другой ( FloatToInt например) в скриптах весьма важно какими числами и переменными пользуешся и что за число(какого типа) получается в результате вычислений.

Сообщение отредактировал mamuc - Jun 8 2005, 08:35
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
DBColl
сообщение Jun 8 2005, 13:14
Сообщение #1254


4-х Кубовый
Иконки Групп

Класс: Некромант
Характер: Lawful Evil
Раса: Человек
NWN: Скриптинг [Sn]
Проклятие Левора



QUOTE (Scaled @ Jun 8 2005, 05:31)
2. Не знаю где спросить - как можно добавить свой спецэффект заклинания, такое вообще можно?

Можно, если хорошо знаком с 3DMax'ом и MDL-плагином. Тема достаточно сложная.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Yuri
сообщение Jun 9 2005, 04:56
Сообщение #1255


Level 1


Класс: Вор
Характер: Chaotic Neutral
Раса: Человек



Народ, подскажите начинающему мейкеру.
Проблема такая.
Перс появляется в таверне в начале модуля. Модуль снгл будет порядка 5-го уровня. Нужно чтобы не пришел броневик или слабак, - баланс нужен. Раздеть и вычистить инвентарь могу. Рядом сундук поставить для одевания в шмотки соотв. уровню - все это делается. Но вот, нужен скрипт: если он ниже 5-го добавить экспы - тоже вроде не сложно, а вот как если он будет 20-го до пятого сделать? Вариант как в Леворе "Вы уже где-то были" - не очень нравится.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Pather
сообщение Jun 9 2005, 07:54
Сообщение #1256


Level 1


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



Ответ Yuri: Есть функция, называющаяся,кажется SetXP. Она меняет асболютное количество экспы у PC и может снять уровни, если экспы станет меньше. Так что, делаешь SetXP(oPC, 10000) и он становиться 5 уровня.
Добавлено в [mergetime]1118293160[/mergetime]
Не подскажете, как можно ограничить выбор класса/скиллов/фитов при левелянии? Скажем разрешить брать уровень класса, только если игрок нашел тренера для этого класса?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Jun 9 2005, 09:48
Сообщение #1257


Миловидный Бегрюссунг
Иконки Групп

Класс: Воин
Характер: Chaotic Good
Раса: Человек
NWN: Модмейкер
Проклятие Левора
Порядок Времени



Попробуй на слот OnPlayerLevelUP модуля воткнуть проверку. Какую тебе самому решать. Нет ее, долой уровень назад.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 10 2005, 12:49
Сообщение #1258


Level 4
**

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



mamuc Еще вопрос: я читал, что любой предмет может вместить до 75 строк скрипта. Теперь у меня появились сомнения. Вдруг мой скрипт вылезет за эти рамки, что тогда делать?

QUOTE
и можно сделать так что бы обойтись и без поля int num; (неиспользовать)


А как ты тогда придлагаешь мне различать комбинации с 3 и 4 ингридиентами?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Jun 10 2005, 13:11
Сообщение #1259


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

Класс: Фея
Характер: Chaotic Evil
Раса: Тварь
NWN: Скриптинг [PW]



minion
плохо читал. скрипт не имеет ограничений по объему. а речь шла об action queue - она вмещает максимум 75 акций.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 10 2005, 13:16
Сообщение #1260


Level 4
**

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



dumbo А-а-а-а! Спасибо что объяснил. И правда не внимательно прочитал! :sorry: Остался еще один вопрос!
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Pather
сообщение Jun 10 2005, 13:17
Сообщение #1261


Level 1


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



minion
Насчет 75 строк ты, наверно, перепутал. Есть ограничение 75 действий в очереди команд. Скажем, если ты приказал персу скастовать подряд на себя 10 разных спеллов, то иконки этих действий выстроятся в левом верхнем углу и он их по очереди выполнит. То же самое, когда ты даешь объекту команду через скрипт. И вот их очередь не может превышать 75.

Никаких ограничений на размер скриптов для предмета нет.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 10 2005, 13:27
Сообщение #1262


Level 4
**

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



Pather
Спасибо это я уже понял. Вот кто бы мне второй вопрос по скрипту ответил. mamuc предложил, но его пока нет. Может кто еще знает?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Jun 10 2005, 14:22
Сообщение #1263


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



ммм я вроде уже написал ,каким образом следовалобы это делать в общих чертах...
пожалуй напишу кокретный пример:
предположим что тот инклюд где ты определил структуру и написал SetupLab(nComboNumber) назыветься
craftspell_inc, тогда на OnClose сундука надо будет повесить примерно такой скрипт проверки наличия компонентов и , при успешной проверки, уничтожение компонентов и создание результата
Neverwinter Script Source
#include "craftspell_inc"

int CheckComponent(object oBox,struct stRec stR)
{
    int C1,C2,C3,C4;
    while (GetIsObjectValid(oItem))
    {
        if (GetTag(oItem)==stR.req1) C1 = TRUE;
        if (stR.req2=="" || GetTag(oItem)==stR.req2) C2 = TRUE;
        if (stR.req3=="" || GetTag(oItem)==stR.req3) C3 = TRUE;
        if (stR.req4=="" || GetTag(oItem)==stR.req4) C4 = TRUE;
        oItem = GetNextItemInInventory(oBox);
    }
    if (C1&&C2&&C3&&C4) return TRUE;
    return FALSE;
}


void main()
{
    object oBox = OBJECT_SELF;
    object oItem = GetFirstItemInInventory(oBox);
    if (!GetIsObjectValid(oItem)) return;
    int nComboNumber;
    // zdesj zadajesh tebe nuzhnim sposobom  znachenije nComboNumber
    // chtobi mozhno bilo bi vzjatj iz include craftspell_inc
    // strukturu skomponentami i rezuljtatom
    struct stRec stR;
    stR = SetupLab(nComboNumber);
    if(CheckComponent(oBox, stR))
    {
        oItem = GetFirstItemInInventory(oBox);
        while (GetIsObjectValid(oItem))
        {
            if (GetTag(oItem)==stR.req1) DestroyObject(oItem);
            if (GetTag(oItem)==stR.req2) DestroyObject(oItem);
            if (GetTag(oItem)==stR.req3) DestroyObject(oItem);
            if (GetTag(oItem)==stR.req4) DestroyObject(oItem);
            oItem = GetNextItemInInventory(oBox);
        }
        CreateItemOnObject(stR.rez,oBox);
    }
}

п.с. поскольку я человек ленивый, то за основу взял скрипт из соседней темы написаный Лехсом :yes:

как видишь количество компонентов в рецепте здесь не используеться

Сообщение отредактировал mamuc - Jun 10 2005, 14:30
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 10 2005, 14:38
Сообщение #1264


Level 4
**

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



mamuc Спасибо! все супер! :good: Но это все будет работать, если ингридиенты просто положить в сундук. А если мне надо что бы при кастовании определенного спелла?
Все равно спасибо за пример. Им я тоже воспользуюсь! :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
mamuc
сообщение Jun 10 2005, 14:48
Сообщение #1265


Лорд AxisTown'a
Иконки Групп

Класс: Монах
Характер: Lawful Good
Раса: Дварф
NWN: Маппинг



QUOTE
А если мне надо что бы при кастовании определенного спелла?

ну тогда надо будет смодифицировать этот скрипт не ставить его наOnClose сундука,а пустить его через спеллхук например ..про спеллхук тут есть весьма подробно обьясненнопросто полистай темы и почитай
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Scaled
сообщение Jun 11 2005, 04:41
Сообщение #1266


Level 3
*

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



javascript:ins("mamuc")
То есть проще говоря float - это дробное число.
А на примере какого-нибудь скрипта, а то я не очень сооброжу важность этого

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

Да вот еще хотел спросить: вот есть скрипт такой проверка простейшая наличия 1000 монет у игрока, основаный на if и else
как привизать его к диалогу,чтобы при наличии попадать на одну ветьв диалога, а при отсутствии на другую?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Tiger Greyhawk
сообщение Jun 11 2005, 06:27
Сообщение #1267



Иконки Групп

Класс: Обыватель
Характер: Chaotic Good
Раса: Человек
NWN: Скриптинг [Sn]



1.
QUOTE (Scaled @ Jun 11 2005, 05:41)
То есть проще говоря float - это дробное число. А на примере какого-нибудь скрипта, а то я не очень сооброжу важность этого

в разных функциях используются разные числа. Если функция использует float, то именно число с
плавующей точкой и надо писать: void ActionMoveToObject(object oMoveTo, int bRun=FALSE, float fRange=1.0f). Т.е. : ActionMoveToObject(oWP, FALSE, 2.5); крич подойдет на расстояние 2.5 метра до oWP.
А если int, то именно int и надо void JumpToObject(object oToJumpTo, int nWalkStraightLineToPoint=1)
Т.е. JumpToObject(oWP, 3); крич "прыгнет" к третьему oWP по счету от предмета с которого запустился скрипт... здесь же не может быть 3.5 по счету предмет...
2.
QUOTE (Scaled @ Jun 11 2005, 05:41)
Обьясните как замкнуть диалог, т. е. когда есть в диалоге некое главное меню и после рассказа одной истории происхдит возвращение в начало, ан е выход из диалога.

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


З.Ы. Лекс или Лем, в вопросах и ответах я не нашел этого :xz:

3.
QUOTE (Scaled @ Jun 11 2005, 05:41)
Да вот еще хотел спросить: вот есть скрипт такой проверка простейшая наличия 1000 монет у игрока, основаный на if и else как привизать его к диалогу,чтобы при наличии попадать на одну ветьв диалога, а при отсутствии на другую?



QUOTE (Lex @ Feb 12 2005, 23:02)
ВОПРОС Есть диалог, в котором должно быть две ветки. Первая, в случае истинности условия, вторая в случае его ложности. Объясните поподробнее, куда должен вставляться скрипт и как его писать. (условие - наличие оружие в руках героя).

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

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Jun 11 2005, 14:12
Сообщение #1268


Level 9
***

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



Вот такая проблема. Не умею работать с DataBase, но необходимо сохранить стринг(сохранить его так, чтобы он пережил рестарт.)
Вот скрипт-инклюд:
Neverwinter Script Source
//##############################
//##############################

void SendMessageToAllPlayers( string sMessage );

void SendMessageToAll( string sMessage );

void CheckAccount( object oPC );

//##############################

void SendMessageToAllPlayers( string sMessage )
{
object oPlayer = GetFirstPC();
while( GetIsObjectValid( oPlayer ) )
  {
  SendMessageToPC( oPlayer, sMessage );
  oPlayer = GetNextPC();
  }
}

void SendMessageToAll( string sMessage )
{
SendMessageToAllDMs( sMessage );
SendMessageToAllPlayers( sMessage );
}

void CheckAccount( object oPC )
{
object oStore = "IPaddress";
string sStoreName = GetPCIPAddress( oPC );
string sAccount = GetCampaignString( oStore, sStoreName );

if( ( sAccount != GetPCPlayerName( oPC ) ) && ( sAccount != "" ) )
  {
  string sMessage = GetName( oPC ) + ". " + "Зафиксирована смена аккаунта. " + sAccount + " -> " + GetPCPlayerName( oPC );
  SendMessageToAll( sMessage );
  }
SetCampaignString( oStore, sStoreName, GetPCPlayerName( oPC ) );

}

Тестирую на Windows-сервере. До рестарта смену аккаунта засекает, после нет. :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 11 2005, 18:19
Сообщение #1269


Level 4
**

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



mamuc К примеру поставитть его на ОнСпеллКастедЭт? И как я предложил с самого начала отслеживать кастуемый спелл и затем проверять к какому комбо он подходит. Пошел работать. Позже выложу что у меня получилось.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 11 2005, 21:22
Сообщение #1270


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



Ребят от чистого сердца прошу, помогите мне.
Постараюсь объяснить на пальцах. У меня задумка, Игрок входит в дом, пройдётся по нему посмотрит всё и пойдёт обратно, а дверь закрылась как так? И попытается найти выход, и тут попадется ему странная полка он отодвинет её и найдёт потайной путь в подземелье.
А теперь по русски. Мне нужно чтобы ПК вошел в локу и Дверь закрылась, и открыть её можно было бы, только определённым ключом, если ПК кликнет на дверь то начнётся разговор, с самим собой, и. Только после этого можно будет использовать полку, и поговорить с ней. Я понимаю скрипт сложный. Но самому мне не справится. :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 11 2005, 21:30
Сообщение #1271


Level 4
**

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



Для начала на событие локации ОнЭнтер повесь скрипт, который закроет дверь. На ОнЮзед двери повесь скрипт, который будет выполняться один раз. Т.е. запускать сам диалог. Следующая часть скрипта должна проверять на наличие ключа в рюкзаке. Если такого нет то сказать что дверь закрыта. Если есть то отпирать дверь и дестроить ключ. Вроде так.
Добавлено в [mergetime]1118514915[/mergetime]
На ОнЭнтер Вешаешь что-то типа:
Neverwinter Script Source
void main ()
{
  object oDoor = GetObjectByTag ("sdes` pewew` tag dveri");
  ActionCloseDoor (oDoor);
  SetLocked (oDoor, TRUE);
}

Добавлено в [mergetime]1118515322[/mergetime]
На ОнЮзед вешаешь что-то типа:
Neverwinter Script Source
void main ()
{
  int iDoOnce = 0;
  if (iDoOnce != 1)
  {
      &#092;&#092; сдесь начинаешь говорить с ПС
      iDoOnce = 1;
      &#092;&#092; и создаешь свою полку
  }
  &#092;&#092;сдесь проверяешь наличие ключа
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Мефистофель
сообщение Jun 12 2005, 01:29
Сообщение #1272


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

Класс: Страж Тьмы
Характер: Lawful Good
Раса: Баатезу



minion Насчёт первого скрипта я понел.
А вот насчёт второго, извени но обсалютно ничего, я просто скрипты плохо знаю.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 12 2005, 15:32
Сообщение #1273


Level 4
**

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



вот примерный скрипт:
Neverwinter Script Source
void ActionCreateObject (string sCreature, location lLoc)
{
    CreateObject(OBJECT_TYPE_PLACEABLE, sCreature, lLoc);
}

int PlayerHasItem(object oPC, string s)
{
    return  GetIsObjectValid(GetItemPossessedBy(oPC, s));
}

void main()
{
    object oPC = GetEnteringObject ();
    object oDoor = GetObjectByTag ("zdes piwew tag dveri")
    string sPolka = "zdes piwew resref polki, kotoruu sozdaem";
    location locPolka = GetLocation (GetWaypointByTag ("zdes piwew tag triggera mesta gde budet polka"))
    if (GetLocalInt (oPC, "DoOnce") == 0)
    {
        ActionStartConversation (oPC, "zdes piwew resref dialoga");
        ActionCreateObject (sPolka, locPolka);
        SetLocalInt (oPC, "DoOnce", 1); //teper dialog budet rabotat odin raz
    }
    //teper proveryaem nali4ie klu4a
    if (PlayerHasItem (oPC, "zdes piwew tag klu4a kotorim otkrivaetsya dver"))
    {
        SetLocked (oDoor, FALSE);
        ActionOpenDoor (oDoor);
        DestroyObject (GetObjectByTag ("zdes piwew tag klu4a"));
    }
    else
    {
        AssignCommand (oPC, SpeakString ("Sorry!! The door is locked!"));
    }

}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
-fenix-
сообщение Jun 12 2005, 16:17
Сообщение #1274


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

Класс: Воин
Характер: Lawful Good
Раса: Человек
NWN: Скриптинг [Sn]



У меня такой вопросик. Если нужно сделать кутсцену в самом начале модуля, типа это сон герою снится, то как быть с запуском скрипта. Тут говорили, что на онэнтер локи скрипты ставить не льзя, они глючить будут. А если в начале скрипта черный экран сделать секунды на 3, это прокатит?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
minion
сообщение Jun 12 2005, 17:13
Сообщение #1275


Level 4
**

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



Не знаю у меня висит на ОнЭнтер и работает нормально.
Я дописал свой скрипт!!! Огромное спасибо за помощь Aiwanу и отдельное спасибо mamucу. Теперь все готово и работает. Вот скрипт.
Этот кусок обзываем как spell_items_0
Neverwinter Script Source
struct stRec
{
    string req1;
    string req2;
    string req3;
    string req4;
    string req5;
    string rez;
};//sozdaem structuru dlya kombinacij

struct stRec SetupLab (int nSpellID)
{
    struct stRec stR;
    switch (nSpellID)
    {
        case 115:    //kislotnaya strela melfa
            stR.req1 = "NW_IT_MSMLMISC12"// bolotnaya yagoda
            stR.req2 = "NW_IT_MSMLMISC09"// glaz rakwasa
            stR.req3 = "NW_IT_MSMLMISC10"// yazik slaada
            stR.req4 = "NW_IT_MSMLMISK08"// bruho ognennogo guka
            stR.rez = "NW_IT_MRING004";    // to 4to hotim polu4it
            break;
        case 107:                          // volwebnaya raketa
            stR.req1 = "NW_IT_MSMLMISC12";
            stR.req2 = "NW_IT_MSMLMISC10";
            stR.req3 = "NW_IT_MSMLMISK14";//4erep gorgul`i
            stR.rez = "NW_IT_MBOOTS004";
            break;
    }
    return stR;
}

int CheckOneItem (string sItem, struct stRec strItem)
{
    if ((sItem == "") || (sItem == strItem.req1) || (sItem == strItem.req2) || (sItem == strItem.req3) || (sItem == strItem.req4) || (sItem == strItem.req5))
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

int CheckFirstItem (string sItem, struct stRec strItem)
{
    if ((sItem == strItem.req1) || (sItem == strItem.req2) || (sItem == strItem.req3) || (sItem == strItem.req4) || (sItem == strItem.req5))
    {
        return TRUE;
    }
    else
    {
        return FALSE;
    }
}

int CheckComponent (struct stRec stR, object oBox)
{
    int C1,C2,C3,C4,C5;
    object oItem = GetFirstItemInInventory (oBox);
    while (GetIsObjectValid (oItem))
    {
        if (CheckFirstItem (GetTag(oItem), stR)) C1 = TRUE;
        if (CheckOneItem (GetTag(oItem), stR)) C2 = TRUE;
        if (CheckOneItem (GetTag(oItem), stR)) C3 = TRUE;
        if (CheckOneItem (GetTag(oItem), stR)) C4 = TRUE;
        if (CheckOneItem (GetTag(oItem), stR)) C5 = TRUE;
        oItem = GetNextItemInInventory (oBox);
    }
    if (C1&&C2&&C3&&C4&&C5) return TRUE;
    return FALSE;
// proveryaet sootvetstvuet li to 4to mi pologili v sunduk s kombinaciej

void BadResult ()
{
    object oPC = GetLastSpellCaster ();
    int nDamage = d20() * 2;
    effect eVis = EffectVisualEffect (VFX_IMP_FLAME_S);
    effect eDam = EffectDamage (nDamage, DAMAGE_TYPE_FIRE);
    DelayCommand (0.6, ApplyEffectToObject (DURATION_TYPE_INSTANT, eVis, oPC));
    DelayCommand (0.6, ApplyEffectToObject (DURATION_TYPE_INSTANT, eDam, oPC));
// esli ne sootvetstvuet nanosim povregdeniya

void CreateLabItem (int nCastedSpell)
{
    struct stRec stR;
    stR = SetupLab (nCastedSpell);
    if(CheckComponent(stR, OBJECT_SELF))
    {
        object oItem = GetFirstItemInInventory(OBJECT_SELF);
        while (GetIsObjectValid(oItem))
        {
            DestroyObject(oItem); // uni4togaem ob`ekti
            oItem = GetNextItemInInventory(OBJECT_SELF);
        }
        CreateItemOnObject(stR.rez);
    }
    else
    {
        BadResult ();
    }
}  // sozdaem vew,

вот основной скрипт
Neverwinter Script Source
#include "spell_items_0"
void main()
{
    CreateLabItem (GetLastSpell ());
}

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

147 страниц V  « < 49 50 51 52 53 > » 
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29th April 2024 - 11:20