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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Augmenter sa force

Par Nefta13 le 18/7/2002 à 16:35:40 (#1823874)

Voilà,

je viens de rédiger ce script pour permettre d'augmenter la force d'un PC, il doit être placé sur un item placeable type tas de caillou
et attaché sur la fonction On used (ou une autre d'ailleurs)
il permet d'augmenter la force une fois de un point et un seul, de façon permanente, mais pour un module.
(le perso exporté ne conservera pas ce point dans un autre module seulement dans le module dans lequel le script est implanté).

Bien entendu ce script peut être adapté pout toutes les caractéristiques du perso (intel, sagesse, etc..)

j'ai pensé l'utiliser à l'issu d'une quête comme une gratification, mais aussi à l'issu d'un stage d'entrainement qui récompenserait le perso par un point de force.

le script :

//:://///////////////////////
//::md_StrengthInc_01
//::Copyright Nefta 13
//:: French Power
//:://////////////////////

/*
Increase Strength of one point
*/
//::///////////////////////

void main()
{

object oTarget = GetLastUsedBy();
int nCount = GetLocalInt(OBJECT_SELF, "STRENGTH_COUNT");

int nSkill = GetAbilityScore(oTarget,ABILITY_STRENGTH);
int nBonus = (nSkill - (nSkill - 1));

if (GetIsPC(oTarget))

{
if (GetLocalInt(OBJECT_SELF, "STRENGTH_COUNT") == 0)

{

effect eDur = EffectVisualEffect(VFX_IMP_HOLY_AID);
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, nBonus );

effect eLink = EffectLinkEffects (eStr,eDur);

ApplyEffectToObject (DURATION_TYPE_PERMANENT, eLink, oTarget);
nCount++;
SetLocalInt ( OBJECT_SELF, "STRENGTH_COUNT",nCount);
}


}
}

j'aimerais juste un retour sur l'utilité ou non de ce script , merci

Par Nefta13 le 19/7/2002 à 0:40:22 (#1825858)

Bon je viens de me rendre compte que lorsque le PC se prend un dispel magic dans la gueule, il perd le bénéfice du point de force.

Je ne sais pas comment le rendre définitif si quelqu'un a une idée....

Par Kemay le 19/7/2002 à 1:27:58 (#1826060)

Pour qu'un effet ne soit pas dispellable, il faut appeler la fonction Extraordinary Effect(Effet). Dans ton script, il faudrait définir eStr ainsi pour qu'il ne soit pas dispellable :

effect eStr = ExtraordinaryEffect(EffectAbilityIncrease(ABILITY_STRENGTH, nBonus ));

Voilà :)

Par Nefta13 le 19/7/2002 à 1:30:58 (#1826075)

non malheureusement je viens d'essayer et si je cast dispel magic sur mon perso, le point de force sup dégage.

Par Kemay le 19/7/2002 à 3:02:34 (#1826344)

Mmm je viens de tester et chez moi ca marche. :eek: Cela dit je n'ai pas utilisé la fonction EffectLinkEffects et ça vient peut-être de là. Essaie avec ce script, je viens de le tester et ça ne se dispelle pas.

void main()
{
object oPC = GetLastUsedBy();
effect eStr = ExtraordinaryEffect(EffectAbilityIncrease(ABILITY_STRENGTH,1));
effect eVisual = EffectVisualEffect(VFX_IMP_HOLY_AID);
location lPCloc = GetLocation(oPC);
if ( GetIsPC(oPC) && GetLocalInt(oPC,"Strength_Increased")==0 ) {
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,eVisual,lPCloc);
ApplyEffectToObject(DURATION_TYPE_PERMANENT,eStr,oPC);
SetLocalInt(oPC,"Strength_Increased",1); }
}

Par Nefta13 le 19/7/2002 à 17:05:24 (#1829598)

marche toujours pas. l'effet résiste au dispel magic mais pas au repos qui supprime le point supplémentaire.

merci qd même.

Par Kemay le 19/7/2002 à 21:27:04 (#1830925)

Ca c'est normal, le seul moyen de faire "résister" un effet au repos (il me semble) c'est de modifier le onRest script :(

Par Caepolla le 19/7/2002 à 22:59:57 (#1831424)

A mon avis, le plus simple consiste à créer un objet donnant +1 de force qui se place dans une des 4 cases invisibles de l'inventaire auquel le joueur n'a pas accès. Comme ça, ni problème de dispell ni de problème de repos. Et le joueur ne voit pas l'objet.
Par contre, ça va rester.

Par Nefta13 le 21/7/2002 à 21:29:19 (#1838717)

bon j'ai regardé et le wizard ne permet pas de créer un objet qui augmente la force de façon permanente, il n'y a pas de fonction increase ability (strength) seulement decrease.

et c'est tout de même dommage de ne pas pouvoir attribuer de point supplémentaire par script; ce qui m' a été confirmé sur le NWN Scripting forum.

Par Mastokk le 22/7/2002 à 13:52:15 (#1841853)

Provient du message de Nefta13
bon j'ai regardé et le wizard ne permet pas de créer un objet qui augmente la force de façon permanente, il n'y a pas de fonction increase ability (strength) seulement decrease.

et c'est tout de même dommage de ne pas pouvoir attribuer de point supplémentaire par script; ce qui m' a été confirmé sur le NWN Scripting forum.



:doute: :doute: :doute:

Tu te trompes là. Ce que tu cherches n'est pas à increase ability mais à Ability Bonus, soit la première option dans les properties des objets que tu crées.... :rolleyes: :merci:

Par Nefta13 le 22/7/2002 à 14:34:06 (#1842087)

je cherche a octoyer un point de force de façon permanente et l'octroi de ce point de force par une arme qui confère un ability bonus ne se fait que pendant que l'arme est en main.

Ce qui est loin d'être permanent.

merci d'avoir essayé. héhé

Par Kemay le 22/7/2002 à 15:01:34 (#1842230)

Si l'arme est un "creature item" le joueur ne pourra pas l'enlever, il ne pourra même pas la voir dans son inventaire. Le point de force serait donc permanent jusqu'à ce que l'objet soit retiré par script.

Par Mastokk le 22/7/2002 à 18:29:20 (#1843429)

Provient du message de Nefta13
je cherche a octoyer un point de force de façon permanente et l'octroi de ce point de force par une arme qui confère un ability bonus ne se fait que pendant que l'arme est en main.

Ce qui est loin d'être permanent.

merci d'avoir essayé. héhé


Je comprends pas bien là.... Qu'est ce qui t'empeche d'utiliser la methode de Caepola en mettant un ability bonus sur l'objet? :doute:

Par Nefta13 le 22/7/2002 à 20:07:18 (#1843899)

[ Je comprends pas bien là.... Qu'est ce qui t'empeche d'utiliser la methode de Caepola en mettant un ability bonus sur l'objet?]

Rien mais ce que j'aurais préféré c'est tout simplement de pouvoir attribuer un point en force ou en n'importe quoi d'autres d'ailleurs avec le script. l'idée d'utiliser des procédés détournés me déplait assez . Voilà

Par Sobert le 22/7/2002 à 21:12:07 (#1844304)

Comme l'a dit un grand sage : quand on peut pas, on peut pas. Je viens de passer quelques heures a tester ce genre de scripts pour augmenter les stats, et bien non. Peut etre est-ce programmé comme ca egalement pour eviter les persos surboosté abusivement.

JOL Archives 1.0.1
@ JOL / JeuxOnLine