GetSpellId()
呪文の識別を得ます。
int GetSpellId();
Description
スクリプトで実行中の呪文のID(SPELL_*)を返します。
プログラムの再利用の為に呪文のeffectを扱う複数の呪文が同一スクリプトに割り当てられていますが、書付は動作中の特定呪文によってわずかに変化します。
例えば、ポリモーフセルフのスクリプト(スクリプト名 NW_S0_POLYSELF)は、変身するモンスターによって異なる呪文から呼出されます。
Remarks
厳格には、呪文や呪文の能力を扱うスクリプトの中で使用し、この関数は既存の呪文や呪文能力(Biowareによってスクリプト化された物やscripts.bifで見つかるスクリプト)を編集していなければ使用すべきではありません。
呪文のスクリプトを書き換え、モジュール内(またはHakパック)に保存することで、Biowareの呪文や呪文の能力(例、フレイム・ストライク用のファイル:NW_S0_FLMSTRIKE)を書き換えることが出来ます。
現在、(筆者の知る限り)既存の呪文や呪文能力を上書きすることができるだけで、新しく呪文を追加する方法はありません。
Version
1.24
Example
//::///////////////////////////////////////////////
//:: Polymorph Self
//:: NW_S0_PolySelf.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The PC is able to changed their form to one of
several forms.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 21, 2002
//:://////////////////////////////////////////////
void main()
{
//Declare major variables
int nSpell = GetSpellId();
object oTarget = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect ePoly;
int nPoly;
int nMetaMagic = GetMetaMagicFeat();
int nDuration = GetCasterLevel(OBJECT_SELF);
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Determine Polymorph subradial type
if(nSpell == 387)
{
nPoly = POLYMORPH_TYPE_GIANT_SPIDER;
}
else if (nSpell == 388)
{
nPoly = POLYMORPH_TYPE_TROLL;
}
else if (nSpell == 389)
{
nPoly = POLYMORPH_TYPE_UMBER_HULK;
}
else if (nSpell == 390)
{
nPoly = POLYMORPH_TYPE_PIXIE;
}
else if (nSpell == 391)
{
nPoly = POLYMORPH_TYPE_ZOMBIE;
}
ePoly = EffectPolymorph(nPoly);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_POLYMORPH_SELF, FALSE));
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, oTarget, TurnsToSeconds(nDuration));
}
See Also
| functions: | GetLastSpell |
| categories: | Spells Functions |
| constants: | SPELL_* Constants |
author: Tom Cassiotis, editor: Charles Feduke, JP team: Rainie
Send comments on this topic.