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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Changement d'alignement

Par Blam le 13/8/2002 à 12:41:51 (#1955652)

Il semblerait que les changement d'alignement ne se fassent que dans le sens Bien/Mal (good/evil) ce qui n'arrange absolument pas mes affaires.
Quelq'un peut il me confirmer cela ou, tout simplement m'expliquer comment faire fonctionner cela dans le sens CHAOS/LOI (chaotic/lawful).

Si j'ai l'air assez ennuyé avec ce fait c'est que j'ai besoin de simuler des conversions de pj dans des temples spécifiques.

merci a ceux qui peuvent me répondre.

Par Fed le 13/8/2002 à 12:53:25 (#1955711)


// Adjust the alignment of oSubject.
// - oSubject
// - nAlignment:
// -> ALIGNMENT_LAW/ALIGNMENT_CHAOS/ALIGNMENT_GOOD/ALIGNMENT_EVIL: oSubject's
// alignment will be shifted in the direction specified
// -> ALIGNMENT_ALL: nShift will be added to oSubject's law/chaos and
// good/evil alignment values
// -> ALIGNMENT_NEUTRAL: nShift is applied to oSubject's law/chaos and
// good/evil alignment values in the direction which is towards neutrality.
// e.g. If oSubject has a law/chaos value of 10 (i.e. chaotic) and a
// good/evil value of 80 (i.e. good) then if nShift is 15, the
// law/chaos value will become (10+15)=25 and the good/evil value will
// become (80-25)=55
// Furthermore, the shift will at most take the alignment value to 50 and
// not beyond.
// e.g. If oSubject has a law/chaos value of 40 and a good/evil value of 70,
// then if nShift is 15, the law/chaos value will become 50 and the
// good/evil value will become 55
// - nShift: this is the desired shift in alignment
// * No return value
void AdjustAlignment(object oSubject, int nAlignment, int nShift)


tiré de l'éditeur de script de neverwinter

Merci fed

Par Blam le 18/8/2002 à 19:00:43 (#1980063)

mais le probleme c'est que j'arrive pas a m'en servir

qq explications ? stp

ex: je veux qu'apres le discours d'un pretre LN l'assistance (le PJ)
gagne 5 en direction de la loi.

mci :)

Par Fed le 18/8/2002 à 21:12:05 (#1980719)

hehe, alors on va de faire de ton pretre un bon prêcheur ;)


Je vai tacher d'expliquer l'utilisation de la fonction.

Cette fonction accepte trois paramètres :
- oSubject : la creature cible.
- nShift : la valeur dont laquelle on souhaite modifier l'alignement (voir plus bas).
- nAlignment : le parametre le plus complexe. C'est grâce à cette valeur que l'on choisit dans quel sens modifier l'alignement.

Il y a quatres valeurs de base :
- ALIGNMENT_LAWFUL : modifier l'alignement Loyal/Chaotique vers loyal
- ALIGNMENT_CHAOTIC: modifier l'alignement Loyal/Chaotique vers chaotique
- ALIGNMENT_GOOD : modifier l'alignement Bon/Mauvais vers bon
- ALIGNMENT_EVIL : modifier l'alignement Bon/Mauvais vers modifier


Quelques exemples :
Imaginons un pj dont l'alignement est loyal neutre. C'est a dire 85/25 en valeur. Le premier chiffre représentant la balance Loyal/Chaotique (100 => pur loyal, 0 pur chaotique) et le second chiffre la balance Bon/mauvais (100 => pur bon, 0 => pur mauvais). Ce personnage est donc plutôt loyal mauvais

Appliquons lui maintenant la fonction AdjustAlignment. oPJ est la variable pointant vers l'objet du PJ

1) AdjustAlignment(oPJ, ALIGNMENT_LAWFUL, 5) => (90, 25)
2) AdjustAlignment(oPJ, ALIGNMENT_CHAOTIC, 5) => (80, 25)
3) AdjustAlignment(oPJ, ALIGNMENT_GOOD , 5) => (85, 30)
4) AdjustAlignment(oPJ, ALIGNMENT_EVIL , 5) => (85, 20)



Remarque : AdjustAlignment(oPJ, ALIGNMENT_LAWFUL, 5) est équivalent à AdjustAlignment(oPJ, ALIGNMENT_CHAOTIC, -5). De même pour Good/Evil.




- ALIGNMENT_NEUTRAL :

Cette valeur fait tendre l'alignement de la cible vers le neutre strict.

Ainsi, si la cible est chaotique, son alignement sera décalé vers loyal, et inversement si elle est loyale.
Si la cible est bonne, son alignement sera décalé vers mauvais, et inversement à nouveau.


Exemple :

AdjustAlignment(oPc, ALIGNMENT_NEUTRAL, 10) => (75, 35)

- ALIGNMENT_ALL.

Cette valeur permet de modifier les deux balances d'un seul coup.

Exemple :

AdjustAlignment(oPc, ALIGNMENT_ALL, 10) => (95, 35)

C'est équivalent à appliquer deux fois la fonction avec comme parametre ALIGNMENT_LAW puis ALIGNMENT_GOOD.

Remarque : Avec cette valeur comme parametre, la fonction ne semble pas prendre en compte les valeurs négatives. Si on lui passe une valeur négative, alors la valeur positive équivalente est utilisée. Ainsi AdjustAlignment(oPc, ALIGNMENT_ALL, 10) serait équivalent à AdjustAlignment(oPc, ALIGNMENT_ALL, -10).




Mais je n'ai pas du tout connaissance des règles officielles au sujet de l'alignement. Tout ce que j'ai décrit plus haut est tiré de mes tests. Il se peut qu'une erreur s'y soit glissée, et si c'est le cas, je suis preneur de la correction :)

D'ailleurs, j'ai remarqué un comportement étrange. Lors de la modification de l'alignement, des valeurs sont sautées. Par exemple, si l'alignement d'un PJ est (25, 50) est qu'on lui applique AdjustAlignment(oPC, ALIGNMENT_LAW, 10), son alignement deviend (50, 50). Si quelqu'un pouvait m'éclairer à ce sujet :merci:

interessant !

Par Blam le 19/8/2002 à 0:20:41 (#1981685)

merci a toi,

Je vais essayer d'en tirer partie :)

JOL Archives 1.0.1
@ JOL / JeuxOnLine