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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
147 страниц V  « < 31 32 33 34 35 > »   
Ответить в эту темуОткрыть новую тему
> Скрипты, Все вопросы и ответы по скриптам
Lexey aka Hawk
сообщение Mar 2 2005, 13:14
Сообщение #801


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



Сейчас посмотрю как у нас на Геме это было написано.

Neverwinter Script Source
int TestDivineFocus( object oTarget, int nClass )
{
    int bResult = TRUE; // Bard also affected, and some classes too
    if (nClass == CLASS_TYPE_CLERIC )
  {
        // Используем стандартный символ до установки полной поддержки системы Diety
        object oSymbol = GetItemInSlot( INVENTORY_SLOT_LEFTHAND, oTarget );
        bResult = GetTag(oSymbol) == "cleric_symbol";
    }
    else if( nClass == CLASS_TYPE_DRUID )
    {
        // Символ друида может просто лежать в рюкзаке чара
        object oSymbol = GetItemPossessedBy( oTarget, "druid_symbol" );
        bResult = GetIsObjectValid( oSymbol );
    }
    else if( nClass == CLASS_TYPE_PALADIN )
    {
        // Используем стандартный символ до установки полной поддержки системы Diety
        object oSymbol = GetItemInSlot( INVENTORY_SLOT_LEFTHAND, oTarget );
        bResult = GetTag(oSymbol) == "cleric_symbol";
    }
    else if( nClass == CLASS_TYPE_RANGER )
  {
        object oSymbol = GetItemPossessedBy( oTarget, "druid_symbol" );
        bResult = GetIsObjectValid( oSymbol );
    }

    return bResult;
}


Сообщение отредактировал Lexey aka Hawk - Mar 2 2005, 13:14
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 2 2005, 13:22
Сообщение #802


Level 9
***

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



Жутко ступил :D спасибо Lexey

Сообщение отредактировал Лито - Mar 2 2005, 13:40
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
bloodwheel
сообщение Mar 2 2005, 13:38
Сообщение #803


Level 2
*

Класс: Ниндзя
Характер: Neutral Evil
Раса: Человек



Народ, хелпните, проблема такая:
Ставлю скрип, чтоб нпс после квеста выдал кастомную шмотку - неработает. (CreateItemOnObject)
ставлю в тот же скрипт стандартную шмотку - работает.
ставлю кастомную шмотку, взятую из другого модуля -работает.
ставлю свой кастом - опять не работает.
В чем может быть дело?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 2 2005, 13:41
Сообщение #804


Level 9
***

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



Напиши скрипт. Напомню что в CreateItemOnObject указывается не тэг предмета, а ResRef
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 2 2005, 15:43
Сообщение #805


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

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



QUOTE (bloodwheel @ Mar 2 2005, 16:38)
Ставлю скрип, чтоб нпс после квеста выдал кастомную шмотку - неработает. (CreateItemOnObject)

Во первых, CreateItemOnObject СОЗДАТЬ итем в инвентаре объекта. Ясно? Ты его создаешь. Он должен быть в твоей палитре. Следовательно ...
QUOTE (bloodwheel @ Mar 2 2005, 16:38)
ставлю свой кастом - опять не работает.

Твой кастом в синьку вбит? Или он валяется в чулане? К тому же, покапайся, скриптов на создание шмотки тут тонна уже приводилась.
Neverwinter Script Source
void main()
{   
  object oPC = GetEnteringObject();
            CreateItemOnObject("ResRef", oPC, 1);
            // Создаем предметы. ResRef, у кого,
            // количкство в стеке (например стрел 30)
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 2 2005, 17:58
Сообщение #806


Level 9
***

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



Решил я сделать компонентную магию, подредактировал скриптик файрболла. Все работает отлично, за одним исключением...Когда файрболл кастует ДМ, от него тоже требуют наличие компонента! :D Как сделать так, чтобы от ДМ не требовали этого самого компонента.
Вот собственно скрипт:
Neverwinter Script Source
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"

void main()
{

/*
  Spellcast Hook Code
  Added 2003-06-20 by Georg
  If you want to make changes to all spells,
  check x2_inc_spellhook.nss to find out more

*/


    if (!X2PreSpellCastCode())
    {
    // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
        return;
    }
    object oCaster = OBJECT_SELF;
    if (HasItem(oCaster,"bottle_fire")==FALSE)
    {
    ActionSpeakString("У вас нет необходимых компонентов!", TALKVOLUME_SHOUT);
    return;
    }


// End of Spell Cast Hook


    //Declare major variables

    int nCasterLvl = GetCasterLevel(oCaster);
    int nMetaMagic = GetMetaMagicFeat();
    int nDamage;
    float fDelay;
    effect eExplode = EffectVisualEffect(VFX_FNF_FIREBALL);
    effect eVis = EffectVisualEffect(VFX_IMP_FLAME_M);
    effect eDam;
    //Get the spell target location as opposed to the spell target.
    location lTarget = GetSpellTargetLocation();
    //Limit Caster level for the purposes of damage
    if (nCasterLvl > 10)
    {
        nCasterLvl = 10;
    }
    //Apply the fireball explosion at the location captured above.
    ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget);
    //Declare the spell shape, size and the location.  Capture the first target object in the shape.
    object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
    //Cycle through the targets within the spell shape until an invalid object is captured.
    while (GetIsObjectValid(oTarget))
    {
        if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
        {
            if((GetSpellId() == 341) || GetSpellId() == 58)
            {
                //Fire cast spell at event for the specified target
                SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_FIREBALL));
                //Get the distance between the explosion and the target to calculate delay
                fDelay = GetDistanceBetweenLocations(lTarget, GetLocation(oTarget))/20;
                if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay))
                {
                    //Roll damage for each target
                    nDamage = d6(nCasterLvl);
                    //Resolve metamagic
                    if (nMetaMagic == METAMAGIC_MAXIMIZE)
                    {
                        nDamage = 6 * nCasterLvl;
                    }
                    else if (nMetaMagic == METAMAGIC_EMPOWER)
                    {
                      nDamage = nDamage + nDamage / 2;
                    }
                    //Adjust the damage based on the Reflex Save, Evasion and Improved Evasion.
                    nDamage = GetReflexAdjustedDamage(nDamage, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FIRE);
                    //Set the damage effect
                    eDam = EffectDamage(nDamage, DAMAGE_TYPE_FIRE);
                    if(nDamage > 0)
                    {
                        // Apply effects to the currently selected target.
                        DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
                        //This visual effect is applied to the target object not the location as above.  This visual effect
                        //represents the flame that erupts on the target not on the ground.
                        DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
                    }
                }
            }
        }
      //Select the next target within the spell shape.
      oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
    }
}

Наверное весь скрипт целиком не нужен, однако выложил весь на всякий случай.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Mar 2 2005, 18:06
Сообщение #807


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



Neverwinter Script Source
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"

void main()
{

/*
  Spellcast Hook Code
  Added 2003-06-20 by Georg
  If you want to make changes to all spells,
  check x2_inc_spellhook.nss to find out more

*/


    if (!X2PreSpellCastCode())
    {
    // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
        return;
    }
    object oCaster = OBJECT_SELF;
    if ((HasItem(oCaster,"bottle_fire") == FALSE) && (GetIsDM(oCaster) == FALSE))
    {
        ActionSpeakString("У вас нет необходимых компонентов!", TALKVOLUME_SHOUT);
        return;
    }


// End of Spell Cast Hook

Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 2 2005, 18:15
Сообщение #808


Level 9
***

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



Еще раз спасибо ;)

Я щас заплачу :cray:
Решил сделать такой же компонент для огненного шара замедленного действия. Просто скопировал всю проверку в другой скрипт

Neverwinter Script Source
#include "x2_inc_spellhook"

void main()
{

/*
  Spellcast Hook Code
  Added 2003-06-20 by Georg
  If you want to make changes to all spells,
  check x2_inc_spellhook.nss to find out more

*/


    if (!X2PreSpellCastCode())
    {
    // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
        return;
    }
    object oCaster = OBJECT_SELF;
     if((HasItem(oCaster,"bottle_fire") == FALSE) && (GetIsDM(oCaster) == FALSE)) //вот тут выдает ошибку"непонятное условие компилятора"
    {
    ActionSpeakString("У вас нет необходимых компонентов!", TALKVOLUME_SHOUT);
    return;
    }
// End of Spell Cast Hook

    //Declare major variables including Area of Effect Object
    effect eAOE = EffectAreaOfEffect(AOE_PER_DELAY_BLAST_FIREBALL);
    location lTarget = GetSpellTargetLocation();
    int nDuration = GetCasterLevel(OBJECT_SELF) / 2;
    //Make sure the duration is at least one round
    if (nDuration == 0)
    {
        nDuration = 1;
    }
    int nMetaMagic = GetMetaMagicFeat();
    //Check Extend metamagic feat.
    if (nMetaMagic == METAMAGIC_EXTEND)
    {
       nDuration = nDuration *2;//Duration is +100%
    }
    //Create an instance of the AOE Object using the Apply Effect function

    ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eAOE, lTarget, RoundsToSeconds(nDuration));
}


Lexey aka Hawk, хотелось бы узнать, если это не секрет, на Геме исправлен каждый спелл? или создана какая то другая система?
На предыдущей странице ты привел кусок скрипта, с использованием системы святых символов для дивайновых кастеров. Можно было бы получить полную систему?

Сообщение отредактировал Лито - Mar 2 2005, 18:58
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Mar 2 2005, 20:51
Сообщение #809


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



Да главное не в скрипте, а чтобы ты сам понимал как это работает. Если предположить даже, что я дам тебе всю систему Гемовской компонетной магии, то даже с моими подробными интсрукциями на форуме, ты вряд ли сможешь ее установить так, чтобы она корректно работала. У нас переписан ряд стандартных скриптов, использован хак-пак, а в данный момент мы фактически заново все переписываем.
Добавлено в [mergetime]1109786155[/mergetime]
По поводу скрипта. Вставь наверху строчку:
Neverwinter Script Source
#include "nw_i0_plot"


А то у тебя функция HasItem не отрабатывает.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
bloodwheel
сообщение Mar 3 2005, 14:30
Сообщение #810


Level 2
*

Класс: Ниндзя
Характер: Neutral Evil
Раса: Человек



Да, так и есть, я туда тэг вписывал вместо RasRef. Нюб ептить :D

Сообщение отредактировал bloodwheel - Mar 3 2005, 14:33
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 3 2005, 17:02
Сообщение #811


Level 9
***

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



Уже на пару с Айваном кому то помог :pilot:


Сообщение отредактировал Лито - Mar 4 2005, 18:32
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 4 2005, 18:32
Сообщение #812


Level 9
***

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



Лекс привел пример скрипта респавна вещей в сундуках
Neverwinter Script Source
void main()
{
object oChest = GetObjectByTag("licorice_Chest");
object oItem = GetFirstItemInInventory(oChest);
while GetIsObjectValid(oItem)
  {
  DestroyObject(oItem);
  oItem = GetNextItemInInventory(oChest);
  }
CreateItemOnObject("licorice",oChest,1);
ExecuteScript(600.0,"spw_chestmaster");
}


но на 5 строчке
Neverwinter Script Source
while GetIsObjectValid(oItem)
компилятор выдает ошибку, мол нет левой скобки в выражении :xz:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Lexey aka Hawk
сообщение Mar 4 2005, 19:12
Сообщение #813


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

Класс: Фея
Характер: Chaotic Good
Раса: Элементаль
NWN: Маппинг
Gem of the North



Попробуй так

Neverwinter Script Source
{
while (GetIsObjectValid(oItem) == TRUE)
  {
  DestroyObject(oItem);
  oItem = GetNextItemInInventory(oChest);
  }
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
dumbo
сообщение Mar 4 2005, 20:57
Сообщение #814


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

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



QUOTE (Лито @ Mar 4 2005, 18:32)
но на 5 строчке
Neverwinter Script Source
while GetIsObjectValid(oItem)
компилятор выдает ошибку, мол нет левой скобки в выражении :xz:

ну ребяты! ну вы че?! :swoon:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 5 2005, 15:05
Сообщение #815


Level 9
***

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



Вопрос такой. Как спавнить вещи в сундук, через некоторое время после того, как из него все забрали. То есть у меня есть в локации ягодный куст, его оборвали и через 10 минут на этот куст создаются предмет "ягоды"... кустов много :)

P.S. скрипт(тот что приведен в теме вопросы и ответы) Лекса не пашет.

ААА :shout: помогайте, сделал через спелл хук, компоненты на заклы(сила быка, кошачья грация...). Так он компоненты даже с бутылок просит! что делать? :xz:

Сообщение отредактировал Лито - Mar 6 2005, 11:05
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 6 2005, 11:32
Сообщение #816


Level 9
***

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



Ну очень прошу помочь, это важно. :shout:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Leon PRO
сообщение Mar 6 2005, 14:48
Сообщение #817


Ушедший на войну
Иконки Групп

Класс: Маг
Характер: Chaotic Good
Раса: Человек
NWN: Контент



QUOTE (Лито @ Mar 5 2005, 15:05)
ААА  помогайте, сделал через спелл хук, компоненты на заклы(сила быка, кошачья грация...). Так он компоненты даже с бутылок просит! что делать?

А поставить такое-же исключение как в случае с ДМ-ом не вариант ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 6 2005, 19:49
Сообщение #818


Level 9
***

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



Я не очень силен в скриптинге, точнее совсем не силен, поэтому задаю такой вопрос:
Разве есть такая функция? (GetPotion? GetWand :D )а если серьезно все опять упирается в реализацию, я не знаю, как это сделать и поэтому страдаю и я и игроки :cray:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
][umepa
сообщение Mar 6 2005, 20:29
Сообщение #819


Level 3
*

Класс: Некромант
Характер: Neutral Evil
Раса: Человек



ааааа помогите нубу!!!
нужен скрипт чтоб воскрешать не 1 селета а например 5 вампиров , пллз кто нить help
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 6 2005, 20:42
Сообщение #820


Level 9
***

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



][umepa не понял...
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kondor
сообщение Mar 7 2005, 01:51
Сообщение #821


Level 10
***

Класс: Убийца
Характер: Neutral Evil
Раса: Эльф



У меня два вопроса, как посадить перса и какой скрипт на то что бы при входе в локу давали ХР?
В скриптах ни бум бум :(
Зарание спасибо :)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 7 2005, 08:46
Сообщение #822


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

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



][umepa , Лито УСНЫЙ ПРЕД. Увижу еще флуд в этой теме влеплю преды.
Kondor объясни куда хочешь посадить перса. ИМЕННО, На стул, землю?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Лито
сообщение Mar 7 2005, 10:38
Сообщение #823


Level 9
***

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



QUOTE
какой скрипт на то что бы при входе в локу давали ХР?

На слот OnEnter локации.
Neverwinter Script Source
void main()
{
object oPC = GetEnteringObject();
GiveXPToCreature(oPC, 100);
}

100 - кол-во опыта даваемого вошедшему в локу, можно подставить любое число
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Kondor
сообщение Mar 7 2005, 11:53
Сообщение #824


Level 10
***

Класс: Убийца
Характер: Neutral Evil
Раса: Эльф



Лито спасибо, хоть я и знаю что это легкий скипт, но все равно спасибо. Щас начну потихоньку скрипты изучать, так на всякий случай.
Aiwan на самом деле мне чем больше вариантов тем лучше. А в чем разница куда сажать?
Зарание спасибо :good:
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
Aiwan
сообщение Mar 7 2005, 13:03
Сообщение #825


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

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



Вариант сесть на объект, т.е. СТУЛ, кресло, диван...
Neverwinter Script Source
{
object oPC = GetFirstPC();
object oChair = GetObjectByTag("TAG_STULA");
AssignCommand(oPC, ActionSit(oChair));
}


Так сажать на землю или невидимый плейс. но на плейс надо указать анимацию ANIMATION_LOOPING_SIT_CHAIR
Neverwinter Script Source
void main()
{
object oPC = GetFirstPC();
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 100.0));
}
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

147 страниц V  « < 31 32 33 34 35 > » 
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



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