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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Feuille de Référence - Types de Données

Par Paoh le 20/7/2001 à 10:23:00 (#24461)

Vous aurez reconnu la traduction de la première partie de la Reference Sheet.
Elle met pas mal de choses au clair sur les types de variables.

Types de Données

x) nomdonnée (traduction) Description

1) int (int) Entier signé sur 32 bits.

2) float (flottant) Nombre à virgule flottante sur 32 bits

3) string (Chaîne) Chaîne de caractères de taille arbitraire, terminée par un caractère NULL.

4) object (Objet) Entier représentant un objet particulier dans le monde.

5) vector (Vecteur) Structure de trois floats, utile pour définir les positions et les vecteurs dorientation.
Pour accéder aux composants dun vector (x, y et z), vous pouvez utiliser lopérateur point (.).
Voici un exemple du moyen pour y parvenir :
vector v = GetPosition(OBJECT_SELF) - GetPosition(oidTargetObject)
// les vecteurs peuvent sadditionner, se soustraire, et plus
// ci-dessus, la soustraction de deux vecteurs donne le vecteur v
fDistanceToTarget = sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
// la, cest plus mathematique, la racine de la somme des carres des composantes
// du vecteur v donne la distance de lobjet (identifie par la constante OBJECT_SELF)
// a lobjet cible (identifie par la variable oidTargetObject)
vector v = Vector(fX, fY, fZ); // Construit un vecteur


6) command (Commande) Fonction retournant void (rien), si elle est définie par lutilisateur ou par le moteur.
Type utilisé par les fonctions DelayCommand() et AssignCommand().

7) event (événement) Tous les évenements qui lancent des scripts à lintérieur du script ont leurs propres fonctions de création, auxquelles vous pouvez donner nimporte quel objet.
Ainsi, si vous voulez dire à un objet (identifié par oidTarget) de se comporter comme si lobjet qui lance le script lattaque, vous écrirez :
event evAttacked = EventOnAttacked(OBJECT_SELF);
SignalEvent(oidTarget, evAttacked);


8) effect (effet) Chaque effet que vous êtes autorisé à mettre sur un objet a un constructeur à lintérieur du script que vous pourrez ensuite utiliser dans ApplyEffectOnObject().
Par exemple:
effect eStrengthBonus = EffectAbilityBonus(ABILITY_STRENGTH, 5);
ApplyEffectOnObject(oidTarget, eStrengthBonus); // Applique le bonus de force (strength) a lobjet cible (target).


9) location (lieu) Un lieu a trois composants, lID (identifiant ou « oid ») de la zone, un vecteur représentant sa position dans la zone, et un nombre à virgule flottante représentant lorientation (facing).
location loc = Location(objArea, vecPosition, fFacing); // Construit un location
Donc, plutôt quune fonction compliquée comme celle-ci :
JumpToPoint(object oidArea, vector vPosition, float fFacing);
Nous aurons :
JumpToLocation(location locJumpTo);

Je la met ici plutôt qu'en zip sur un site car je veux avoir un avis sur la clarté et la pertinence de la traduction.
Dites-moi si qqchose vous choque ou vous torture le cerveau :D

[ 20 juillet 2001: Message édité par : Paoh ]

Par Myvain le 20/7/2001 à 11:22:00 (#24462)

Débat lancé par Paoh:
Dites-moi si qqchose vous choque ou vous torture le cerveau :D


Ca me semble clair dans l'ensemble, mais comme je suis mauvais en math, c'est la partie suivante qui me pose quelques problêmes:
5) vector (Vecteur) Structure de trois floats, utile pour définir les positions et les vecteurs dorientation.
Pour accéder aux composants dun vector (x, y et z), vous pouvez utiliser lopérateur point (.).
Voici un exemple du moyen pour y parvenir :
vector v = GetPosition(OBJECT_SELF) - GetPosition(oidTargetObject)
// les vecteurs peuvent sadditionner, se soustraire, et plus
// ci-dessus, la soustraction de deux vecteurs donne le vecteur v
fDistanceToTarget = sqrt(v.x * v.x + v.y * v.y + v.z * v.z);
// la, cest plus mathematique, la racine de la somme des carres des composantes
// du vecteur v donne la distance de lobjet (identifie par la constante OBJECT_SELF)
// a lobjet cible (identifie par la variable oidTargetObject)
vector v = Vector(fX, fY, fZ); // Construit un vecteur


J'ai un peu de mal à comprendre...
http://jppetit.free.fr/smileys/sley2/bonk.gif
Help Wanted !!!! http://www.smilies.org/basesmilies/S40.gif

Par Paoh le 20/7/2001 à 11:49:00 (#24463)

alors si je me trompe pas (gloups :D)
soit 2 vecteurs
v1 (x1, y1, z1) et v2 (x2, y2, z2)
la distance entre les deux se calcule comme ceci :
Racine((x1-x2)^2 +(y1-y2)^2+(z1-z2)^2)
mais je suis plus sûr... :p

Par Darkmore le druide le 20/7/2001 à 15:16:00 (#24464)

ATTENTION FRIMOMETRE A 4000%

Rappellons tout d'abord que les vecteurs de NWScript on pour origine l'origine des plans x=0;y=0;z=0 puisque ils sont calculés à partir des coordonnées d'un seul point...

Et le but est de calculer la distance entre ses deux points et non entre deux vecteurs on est d'accord ..

Dans le plan XY .. on relie ses deux points on obtient l'hypoténus d'un triangle rectangle dont l'hypoténus est la distance au sol entre ces deux point .. un coté de valeur (x1-x2) et un coté de valeur (y1-y2) ..

Et hypoténus²=(x1-x2)²+(y1-y2)² (pythagore of course)
si la distance est négative peut importe les carrés sont tjrs positifs .. (autrement dit (x2-x1)² = (x1-x2)² ...

Ensuite dans l'espace le projeté des points sur le plan XY forme un triangle rectangle avec un coté de valeur (z1-z2) et un coté formé par l'hypoténus calculé ..
La distance dans l'espace est donc ce nouvel hypothénus ...

hypothénus2²=hypotenus1²+(z1-z2)²
donc fDistanceobjet²=(x1-x2)²+(y1-y2)²+(z1-z2)²
Et après on fait la racine ...CQFD avec la formule du génial Poh

Bon je vais faire reposer mes chevilles là ... :cool: :cool: :cool: :cool:

[ 20 juillet 2001: Message édité par : DaRKmore Le Druide ]

Par Myvain le 20/7/2001 à 16:32:00 (#24465)

Je me souviens maintenant pourquoi j'ai arrêté la programmation... :rolleyes:
Merçi de me l'avoir rappeler :D

Quand je pense que les developpeurs osent nous dire que les scripts seront accessibles à tout le monde...J'espère seulement que l'éditeur sera suffisament bien fait pour nous permettre de créer des scripts de manière plus intuitive :)

[ 20 juillet 2001: Message édité par : Myvain ]

Par eden le 20/7/2001 à 17:22:00 (#24466)

..

Dur

JOL Archives 1.0.1
@ JOL / JeuxOnLine