Bienvenue sur JeuxOnLine - MMO, MMORPG et MOBA !
Les sites de JeuxOnLine...
 

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Help : Script sur des pouvoirs pseudo-magiques

Par Caillou PierreSang le 16/10/2002 à 19:46:17 (#2347855)

Voilà, je voudrais qu'à l'activation d'un objet ("pouvoir unique, sur soi seulement") celui qui l'active soit pris d'une "rage de barbare", du même nom que le pouvoir de classe des barbares.
Alors, j'ai créée mon objet, sans problème, j'ai réglé ses propriétés sur "Lancer Sort : Pouvoir Unique, sur soi uniquement". Ok, jusque là tout va bien. Ensuite, je vais dans le OnActivateItem du module. Là je rentre tous les trucs préliminaires, GetItemActivator, et compagnie. Pas de problème. Mais là où ça coince, c'est que je sais pas quoi mettre pour lancer cet "effet". J'ai essayer plusieurs choses, mais ça marche pas !!!

ActionCastSpellAtObject(SPELLABILITY_BARBARIAN_RAGE, oPC);


Ca, ça me semblait bon, mais ça marche pas !!:sanglote:

Sinon, j'ai essayé ça... mais ça marche pas mieux....
ApplyEffectToObject(DURATION_TYPE_PERMANENT, MagicalEffect(SPELLABILITY_BARBARIAN_RAGE), oPC);

Par Ozzy Deadcrab le 16/10/2002 à 21:34:20 (#2348534)

j'ai jete un oeil au script en lui meme qui gere la spell like ability de rage... et j'pige pas trop. c't'un peu vide nan ?

//::///////////////////////////////////////////////
//:: Barbarian Rage
//:: NW_S2_Rage.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
//:: [Placeholder Script]
//:://////////////////////////////////////////////
//:: Created By: [Your Name]
//:: Created On: [date]
//:://////////////////////////////////////////////


void main()
{
SpeakString("Barbarian Rage");
}

Par Caillou PierreSang le 16/10/2002 à 21:57:32 (#2348702)

En effet, c'est un peu vide....;)

Ce qu'indique ce script, c'est plutôt d'écrire "Barbarian Rage" lorsque le personnage entre dans sa rage de barbare.... Enfin, ce n'est que mon avis....:)

Par Tyn' le 16/10/2002 à 22:15:59 (#2348809)

//::///////////////////////////////////////////////
//:: Barbarian Rage
//:: NW_S1_BarbRage
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The Str and Con of the Barbarian increases,
Will Save are +2, AC -2.
Greater Rage starts at level 15.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Aug 13, 2001
//:://////////////////////////////////////////////

void main()
{
if(!GetHasFeatEffect(FEAT_BARBARIAN_RAGE))
{
//Declare major variables
int nLevel = GetLevelByClass(CLASS_TYPE_BARBARIAN);
int nIncrease;
int nSave;
if (nLevel 0)
{
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, RoundsToSeconds(nCon));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF) ;
}
}
}

Par Caillou PierreSang le 16/10/2002 à 22:28:07 (#2348882)

Wow !!!
Merci beaucoup Tyn' !!!:merci:

Je pense que je pourrais m'en tirer avec ça... ^_^

Le seul problème, c'est que je voulais justement que celui qui lance la rage ne soit pas un barbare, mais t'inquiète, tu m'as donné un bon départ, et à défaut de ne pas être bon scripteur, j'arrive à tripatouiller à partir de scripts déjà faits.
J'essaye demain, là je suis occupé à scripter les quêtes...

Encore merci !!! :merci: :merci:

Par Tyn' le 16/10/2002 à 22:34:12 (#2348919)

C'est un plaisir ;)

Tous les sorts commencent par NW_S0 ou 1, en général les S2 sont des scripts de template.

Par Caillou PierreSang le 17/10/2002 à 21:10:17 (#2354156)

Aïe... tout ça ne marche pas....
J'ai bien mis le tag de l'objet dans le OnActivateItem du module et j'ai ajouté la propriété du script de la rage du barbare (en changeant le Getlevelbyclass, et en virant la condition "if GetHasFeat...") en dessous du tag de mon objet.

Rien n'y fait, lorsque je clique, y a marqué "xxx utilise le pouvoir spécial d'un objet" mais rien ne se passe...

Alors j'ai copié/collé entièrement, sans le changer le scipt de la rage du barbare en dessous du tag de mon objet. Je prend un persos barbare, et même en activant l'objet, la rage ne se lance pas....:aide: :confus:

M'en vais re-tripatouiller....:lit:

Par Caillou PierreSang le 17/10/2002 à 21:54:48 (#2354369)

Ah ! Ben voilà, j'y suis arrivé !!

En fait, c'était une accolade ("}") d'un autre script du OnItemActivated (faut dire que j'en ai plein dedans :D) qui se baladait et faisait tout foirer...
Moralité, je m'étais lancé dans un débuggage qui servait à rien !!:eek:

Enfin, j'ai légèrement simplifié le script de la rage de barbare, mais ça marche bien... Je vous le mets à disposition si y en a que ça intéresse.
Et je remercie bien Tyn' !! :merci: ;)


void main()
{
object oPC = GetItemActivator();
string sTag = GetTag(oItem);

if (sTag == "objet_qui_décleche_la_rage")

{


//Declare major variables
int nLevel = GetHitDice(oPC);
int nIncrease;
int nSave;
int nCon = 3 + GetAbilityModifier(ABILITY_CONSTITUTION) + nIncrease;
if (nLevel 0)

{
PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
//Determine the duration by getting the con modifier after being modified

ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityIncrease(ABILITY_CONSTITUTION, nIncrease), oPC, RoundsToSeconds(nCon));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectAbilityIncrease(ABILITY_STRENGTH, nIncrease), oPC, RoundsToSeconds(nCon));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectSavingThrowIncrease(SAVING_THROW_WILL, nSave), oPC, RoundsToSeconds(nCon));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectACDecrease(2, AC_DODGE_BONUS), oPC, RoundsToSeconds(nCon));
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE), oPC);
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE), oPC);
}
}


C'est le script simplifié, je vais voir si celui "officiel" marche aussi bien. Mais en tout cas, celui là marche bien !;)

Par Ozzy Deadcrab le 18/10/2002 à 10:39:45 (#2356330)

je pige pas. les s2 y servent a quoi ? parce que si je modifie le s2 de la metamorphose du druide (alors que c'est bien un s2 aussi), ben les modifs marchent en jeu. alors que la rage non. ca veut dire que c'est le s1 qui compte ? dans c'cas, a quoi fichtre sert le s2 rage ?

JOL Archives 1.0.1
@ JOL / JeuxOnLine