Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Pas de riposte
Pas de riposte
Par Blam le 4/2/2003 à 20:58:59 (#3171547)
et le OnSpellCastAt le script suivant
void main()
{
object oPC = GetLastAttacker();
int cSpell = SPELL_FLAME_STRIKE;
int bCheat = 1;
int bInstantSpell = 1;
string sSpeakString = "Oh !";
{
ActionSpeakString(sSpeakString);
ActionCastSpellAtObject(cSpell, oPC, bCheat, bInstantSpell);
}
}
et rien ne se passe, le joueur ne prends pas sa colonne de feu.
Qu'ais-je oublié ?
Par eMRaistlin le 4/2/2003 à 21:09:30 (#3171608)
void ActionCastSpellAtObject(
int nSpell,
object oTarget,
int nMetaMagic = METAMAGIC_ANY,
int bCheat = FALSE,
int nDomainLevel = 0,
int nProjectilePathType = PROJECTILE_PATH_TYPE_DEFAULT,
int bInstantSpell = FALSE
);
quand tu vois une fonction, definie comme ca, les variables simplement declarées (sans le =...) sont a definir obligatoirement, celle avec un = possendent la valeur apres le signe par defaut. TOUTEFOIS, il ne faut pas zapper leur position :)
Donc, tu dois remettre des parametres par defaut (ou custom) en position 1/2/3 si tu veut modifier la valeur du 4eme parametre, par exemple
Pour ton script, j'aurais mis plusieurs choses en plus :
void main()
{
object oPC = GetLastAttacker();
int cSpell = SPELL_FLAME_STRIKE;
int bCheat = 1;
int bInstantSpell = 1; //Perso, j'aurais mis FALSE, histoire que le PNJ fasse l'anim de casting, mais bon ^^
string sSpeakString = "Oh !";
if (!GetIsPC(oPC)){return;} // cette ligne arrete le script si oPC est pas un PC : economie de temps machine
//{pas besoin de cette accolade (oO)
ClearAllActions(); //ici, je m'assure que le NPC est dispo
ActionSpeakString(sSpeakString);
ActionCastSpellAtObject(cSpell, oPC,METAMAGIC_ANY, bCheat, 0,bInstantSpell); //c'est mieux, la, non? :)
//}pas besoin de cette accolade (oO)
}
Deja, ca devrait être mieux.
Si ca ne marche pas, met cette ligne la sous le actioncastSpell :SpeakString("Ca devrait marcher pourtant");
afin de verifier si le script va bien a la fin...
curieux
Par Blam le 4/2/2003 à 21:31:11 (#3171749)
et il faut puisque c'est une quête, détruire un portail qui permet a des créatures d'arriver toute les 180 secondes.
Par eMRaistlin le 4/2/2003 à 22:24:58 (#3172058)
Par Jaha Effect le 5/2/2003 à 2:06:02 (#3173077)
object oPC = GetLastSpellCaster ();
Jaha Effect :D
Pour la petite histoire
Par Blam le 5/2/2003 à 9:16:32 (#3173729)
colonne de feu (sur aventurier isolé)
Boule de feu (sur groupe, c'est sa tournée!)
DESTRUCTION si supérieur au niveau 15.
il s'agit d'une quête importante avec un portail intelligent qui tentera même la corruption des paladins (la, Mlle Lys se chargera des scripts)
voila
ha oui
:D
Merci Jaha et eM
JOL Archives 1.0.1
@ JOL / JeuxOnLine