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

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

 Правила этого форума ПРАВИЛА РАЗДЕЛА
> Скрипты, Все вопросы и ответы по скриптам
Lex
сообщение Mar 27 2004, 21:58
Сообщение #1


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

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



Все, что связанно со скриптами, постить СЮДА.
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
Bot
сообщение Apr 9 2004, 14:44
Сообщение #2


Level 3
*

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



Прива. Как сделать рельную проклятую вещь(которая не снимается вообще, а не снимается и тут же ождивается. Пртмер- в кампании друид , превращаясь в минотавра, получает топорик, а снять его не може ВООБЩе). Пока есть вот что:
Neverwinter Script Source
//вставить в onUnequip
int isCursed(object oItem)
{
    if (!GetIsObjectValid(oItem))
    { return FALSE; }
    if (GetLocalInt(oItem,"ImmediateUncursed"))
    { return FALSE; }
    else if (GetLocalInt(oItem,"Cursed"))
    { return TRUE; }
    else if (GetStringRight(GetTag(oItem),6) == "Cursed")
    { return TRUE; }
    else
    { return FALSE; }
}

void main()
{
    object oItem = GetPCItemLastUnequipped();
    object oPC = GetPCItemLastUnequippedBy();
    if (isCursed(oItem))
    {

        object oCopy = CopyItem(oItem,oPC,TRUE);
        int nSlot = GetLocalInt(oItem,"InventorySlot");
        if (nSlot != -1)
        {
            if (nSlot == INVENTORY_SLOT_RIGHTHAND)
            {
                object oRightHand = GetItemInSlot(nSlot,oPC);
                object oLeftHand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
                if (isCursed(oRightHand))
                {
                    if (isCursed(oLeftHand))
                    {
                        SetLocalInt(oRightHand,"ImmediateUncursed",1);
                        DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, INVENTORY_SLOT_RIGHTHAND)));
                        DelayCommand(0.1, SetLocalInt(oRightHand, "ImmediateUncursed", 0));
                    }
                    else
                    {
                        DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, INVENTORY_SLOT_LEFTHAND)));
                    }
                }
                else
                {
                    DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, nSlot)));
                }
            }
            else
            {
                object oCurrent = GetItemInSlot(nSlot,oPC);
                if (isCursed(oCurrent))
                {
                    SetLocalInt(oCurrent,"ImmediateUncursed",1);
                    DelayCommand(0.1, SetLocalInt(oCurrent, "ImmediateUncursed", 0));
                }
                DelayCommand(0.05, AssignCommand(oPC, ActionEquipItem(oCopy, nSlot)));
            }
        }
         DestroyObject(oItem,0.01);
    }
}






//вставить в onEquip

void main()
{
    object oItem = GetPCItemLastEquipped();
    object oPC = GetPCItemLastEquippedBy();
    //AssignCommand(oPC,SpeakString("Item Equipped!",TALKVOLUME_SILENT_SHOUT));
    if ((GetLocalInt(oItem,"Cursed") == 1) || (GetStringRight(GetTag(oItem),6) == "Cursed"))
    {
        effect eCurse = EffectLinkEffects(EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE), EffectCurse(2, 2, 2, 2, 4, 2));
        ApplyEffectToObject(DURATION_TYPE_PERMANENT,eCurse,oPC);
        ApplyEffectToObject(DURATION_TYPE_INSTANT, SupernaturalEffect(EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY)), oPC);
        int nSlot = 0;
        int nSlotEquipped = -1;
        while ((nSlot < 18) && (nSlotEquipped == -1))
        {
            if (GetItemInSlot(nSlot,oPC) == oItem)
            {
                nSlotEquipped = nSlot;
            }
            nSlot++;
        }
        SetLocalInt(oItem,"InventorySlot",nSlotEquipped);
        FloatingTextStringOnCreature(GetName(oPC) + " equipped a cursed item.",oPC);
    }
}

//а этот файл сохраните под именем nw_s0_remeffect

#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
if (!X2PreSpellCastCode()){}
    int nSpellID = GetSpellId();
    object oTarget = GetSpellTargetObject();
    int nEffect1;
    int nEffect2;
    int nEffect3;
    int bAreaOfEffect = FALSE;
    effect eVis = EffectVisualEffect(VFX_IMP_REMOVE_CONDITION);
  if(nSpellID == SPELL_REMOVE_BLINDNESS_AND_DEAFNESS)
    {
        nEffect1 = EFFECT_TYPE_BLINDNESS;
        nEffect2 = EFFECT_TYPE_DEAF;
        bAreaOfEffect = TRUE;
    }
    else if(nSpellID == SPELL_REMOVE_CURSE)
    {
        nEffect1 = EFFECT_TYPE_CURSE;
        int nSlot = 0;
        object oItem;
        object oUncursed;
        string sUncursedForm;
        while (nSlot < 18)
        {
            oItem = GetItemInSlot(nSlot,oTarget);
            if ((GetLocalInt(oItem,"Cursed") == 1) || (GetStringRight(GetTag(oItem),6) == "Cursed"))
            {
                sUncursedForm = GetLocalString(oItem,"UncursedVersion");
                if (sUncursedForm == "")
                {
                    sUncursedForm = GetStringLeft(GetStringLowerCase(GetTag(oItem)),GetStringLength(GetTag(oItem)) - 6);
                }
                oUncursed = CreateItemOnObject(sUncursedForm,oTarget);
                if (GetIdentified(oItem))
                {
                    SetIdentified(oUncursed,TRUE);
                }
                SetLocalInt(oItem,"ImmediateUncursed",1);
                DestroyObject(oItem,0.1);
                FloatingTextStringOnCreature(GetName(oItem) + " is no longer cursed.",oTarget,FALSE);
                ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_PULSE_HOLY_SILENT), oTarget);
                ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_PULSE_HOLY_SILENT), oTarget);
            }
            nSlot++;
        }
    }
    else if(nSpellID == SPELL_REMOVE_DISEASE || nSpellID == SPELLABILITY_REMOVE_DISEASE)
    {
        nEffect1 = EFFECT_TYPE_DISEASE;
        nEffect2 = EFFECT_TYPE_ABILITY_DECREASE;
    }
    else if(nSpellID == SPELL_NEUTRALIZE_POISON)
    {
        nEffect1 = EFFECT_TYPE_POISON;
        nEffect2 = EFFECT_TYPE_DISEASE;
        nEffect3 = EFFECT_TYPE_ABILITY_DECREASE;
    }

    if (bAreaOfEffect == TRUE)
    {
        effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
        effect eLink;
        spellsGenericAreaOfEffect(OBJECT_SELF, GetSpellTargetLocation(), SHAPE_SPHERE, RADIUS_SIZE_MEDIUM,
            SPELL_REMOVE_BLINDNESS_AND_DEAFNESS, eImpact, eLink, eVis,
            DURATION_TYPE_INSTANT, 0.0,
            SPELL_TARGET_ALLALLIES, FALSE, TRUE, nEffect1, nEffect2);
        return;
    }
     SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, nSpellID, FALSE));
     RemoveSpecificEffect(nEffect1, oTarget);
    if(nEffect2 != 0)
    {
        RemoveSpecificEffect(nEffect2, oTarget);
    }
    if(nEffect3 != 0)
    {
        RemoveSpecificEffect(nEffect3, oTarget);
    }
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}

// чтобы создать проклЯтую(неснимаемую) вещь, надо просто присвоить ей тэг &#39;XCursed&#39;, где Х - уникальное имя //шмотки. Авторство - CelestialRyan.

<small>Добавлено в 14:47</small>
LexSuS , можно попробовать на онХертбит мода, но это не есть гут, ибо ресурсы жрет. Попытайся вставалять цикл в онЭкьюп мода(не забудь добавить гетИзОбъектВалид(чтоб пропадал при снимании, хотя можно эзать и онАнэкьюп)).

Сообщение отредактировал Twin - Jan 5 2005, 14:21
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме
- Lex   Скрипты   Mar 27 2004, 21:58
- - Plut   Вот бы мне кто разъяснил как катсцены писать... Ес...   Apr 8 2004, 19:41
- - Aiwan   Хм... Что именно ты хочешь узнать, Plut ?   Apr 8 2004, 21:08
- - LexSuS   вот у меня вопрос: (уже зажовал) можно ли с помощю...   Apr 9 2004, 04:24
- - Aiwan   Можно сделать ОДИН звук на всю арену и кретить его...   Apr 9 2004, 04:29
- - Bot   Прива. Как сделать рельную проклятую вещь(которая ...   Apr 9 2004, 14:44
- - Tomb   2All: как вы уже наверное прочитали мы сейчас нача...   Apr 16 2004, 08:57
- - Lex   С мультискриптами никто из нас не работал Рам...   Apr 18 2004, 17:51
- - Auren   Вообщем описываю ситуацию. Это про с-му смерти. Пр...   Apr 19 2004, 12:00
- - Bot   Насчет мульта ДБ: он там хитренько запрятан даже...   Apr 19 2004, 17:33
- - Auren   Сенк, я уже разобрался=)   Apr 19 2004, 17:43
- - Lex   Tarre Talliorne, дай ссылку на тот пост Каа, пожал...   Apr 19 2004, 19:17
- - Aiwan   Tarre Talliorne я могу выложить мульты в теме наши...   Apr 19 2004, 20:28
- - Bot   Aiwan, неа, мне зачем-то, я сам могу катсцену напи...   Apr 20 2004, 11:58
- - Lex   1. если ворует Игрок то можно. Модульные скрипты -...   Apr 21 2004, 18:21
- - Tomb   Lex помоги со скриптами для AI бота...   Apr 22 2004, 08:13
- - Aiwan   Tomb у Лекса работы по ... Лучше Баал попроси ...   Apr 22 2004, 08:33
- - Elven king   На рельсах уже просил такой скрипт, но попрашу и т...   May 4 2004, 00:19
- - Aiwan   Могу дать свой код, где Стинки ведет игрока к прол...   May 4 2004, 08:31
- - Elven king   Годится.   May 4 2004, 09:45
- - DBColl   2Tarre Talliorne. Цитата1. Можно ли определять мом...   May 4 2004, 13:08
- - Aiwan   Вейпов должно быть столько сколько я нарисовал, но...   May 4 2004, 13:08
- - Elven king   Ну спасибо! Теперь опять вопросик, даже два ...   May 4 2004, 15:20
- - DBColl   2Elven king 1. Сделать всех врагов в локе в какой...   May 4 2004, 17:35
- - Aiwan   Цитата1. Как сделать так чтобы когда все враги в л...   May 4 2004, 18:55
- - 2GoDoom   Заинтерисовала идея Элвен Кинга... Начал реализовы...   May 6 2004, 14:24
- - DBColl   Попробуй через SetSpawnInCondition(NW_FLAG_STEALTH...   May 6 2004, 18:25
- - 2GoDoom   Окей, спасибо! Будем разбираться дальше   May 7 2004, 10:12
- - Plut   Народ, всвязи с моим не оч хорошим знанием правил ...   May 10 2004, 19:53
- - 2GoDoom   хм... На убеждение при диалоге? Это типа в тех что...   May 10 2004, 21:49
- - Plut   Цитатаобычно кубики там кидаются как укажешь Вот э...   May 10 2004, 23:04
- - DBColl   Это система зовется d20(). Кидается d20() + скилл,...   May 12 2004, 00:26
- - 2GoDoom   Ага... ЦитатаВот это я как раз понял. Существуют ...   May 13 2004, 16:41
- - Sir_Sarles   1. Как попросить своего вора обокрасть какого-нибу...   May 25 2004, 20:55
- - Aiwan   ЦитатаКак сделать так, что бы sir/madam (и т.п.) в...   May 25 2004, 21:20
- - Sir_Sarles   Конкретизирую про вора: У вас есть хенчмен Томми. ...   May 26 2004, 08:24
- - DBColl   Сарлес, я когда-то начинал писать эту системку, но...   May 28 2004, 01:11
- - Sir_Sarles   Как называются функции "украсть что-то у кого...   May 29 2004, 22:28
- - Osiris   Начал разбираться в днём и ночью. в OnSP простолюд...   May 30 2004, 16:31
- - DBColl   Sir_Sarles А зачем тебе это??? ActionUseSkill(SKIL...   May 30 2004, 17:11
- - Sir_Sarles   В моем модуле, у одного типа есть кольцо регенерац...   May 30 2004, 18:29
- - DBColl   Тогда 100% тебе надо писать единичный (не универса...   May 30 2004, 23:39
- - Doc Feert   Вот здесь есть пара скриптов.   Jun 3 2004, 19:35
- - Auren   Вот вопрос. Какая функция(если такая есть) возвращ...   Jun 8 2004, 19:59
- - Doc Feert   Такой функции нет.   Jun 11 2004, 15:41
- - Elven king   Нужен ну ооочень простой скрипт, но я не знаю как ...   Jun 11 2004, 19:06
- - Lex   удали триггер сразу после наступания Добавлено в...   Jun 11 2004, 19:28
- - Elven king   Нет, скрипт вобще так выгледет: Кодvoid main(...   Jun 11 2004, 19:58
- - Lex   из object oNPC = GetObjectByTag("TAG_SIGILSTU...   Jun 11 2004, 20:13
- - Aiwan   Elven king вот простое решение твоей проблемы. Ко...   Jun 12 2004, 07:55
- - Lex   Айв, не говори ерунды, если все через Assign то ни...   Jun 12 2004, 16:27
- - Aiwan   Ну это ты знаешь. А он не волокет в тонкостях. Ему...   Jun 12 2004, 17:04
- - _kaa_   Вопрос по анимации. Как сделать анимацию атаки? Им...   Jun 14 2004, 08:35
- - DBColl   Стандартными способами нельзя. Можно поменять саму...   Jun 14 2004, 11:07
- - _kaa_   Не, спасибо. Либо просто - либо никак   Jun 14 2004, 12:57
- - Lex   да, к сожалению констант нет.   Jun 14 2004, 16:52
- - Elven king   Такой вот вопрос, как вам кажется, как легче созда...   Jun 16 2004, 12:26
- - DBColl   Мне кажется здесь надо переписать чуток 2да по фит...   Jun 17 2004, 09:46
- - Elven king   Ну... это то да, а вот как быть с тем чтобы магия ...   Jun 17 2004, 11:44
- - Aiwan   Elven king слишком пространнственный вопрос. Конкр...   Jun 17 2004, 15:35
62 страниц V   1 2 3 > » 


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

 



Текстовая версия Сейчас: 26th April 2024 - 07:07