JeuxOnLineForumsPlusConnectés : 639 (sites) | 1168 (forums)Créer un compte
Forum jeux-vidéo>Neverwinter Nights
Maskado
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [fonction] Génération aléatoire de Location dans un trigger rectangle. RSS
   
Répondre
Partager Outils Rechercher
Avatar de Ange Musicien
JOL Ange Musicien
Alpha & Oméga
 
Avatar de Ange Musicien
 
Post

[fonction] Génération aléatoire de Location dans un trigger rectangle.

(Je met ça dans un nouveau thread afin de pouvoir le linker dans le sommaire et afin de fair partager plus facilement la fonction, qui est planquée en réponse dans un autre topic)

Script de génération aléatoire de location dans une zone définie (un trigger rectangle).

Tout d'abord, voici le premier script, "io_gen_rdmloc", qui permet d'avoir accès à une fonction nommée GenerateRandomLocation().
Code PHP:
//  io_gen_rdmloc  //
// fichier include //

//::///////////////////////////////////////////////
//:: GenerateRandomLocation
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*

 Cette fonction cree une location aleatoire dans une zone rectangle.
 Elle admet un degre de precision (entre 1 et 0.000001, et inferieur),
 et admet un bon nombre de parametres.

*/
//:://////////////////////////////////////////////
//:: Created By: Ange Musicien
//:: Created On: Forum Maskado - JOL
//:://////////////////////////////////////////////

// Générer aléatoirement une location dans une zone rectangle, qui peut etre une aire.
// - oArea: Aire dans laquelle est situee la zone rectangle.
// - Xmin : minimum en abscisse pour la zone
// - Ymin : minimum en ordonnee pour la zone
// - Xmax : maximum en abscisse pour la zone
// - Ymax : maximum en ordonnee pour la zone
// - fPrecision : la precision de la location. Elle est a 0.01f par defaut, mais peut
//   aller de 1 a 0.000001 ou inferieur. C'est le nombre de decimales admises pour
//   les abscisses et ordonees de la location aleatoire.
// - fZ   : hauteur de la location, par defaut 1.0
location GenerateRandomLocation(object oAreafloat Xminfloat Yminfloat Xmaxfloat Ymaxfloat fPrecision 0.01float fZ 1.0);

location GenerateRandomLocation(object oAreafloat Xminfloat Yminfloat Xmaxfloat Ymaxfloat fPrecisionfloat fZ)
{
float XdifYdiffXfYYdifPreXdifPreYdifPre2XdifPre2XmulYmul;
int nXnYnXPnYP ;
vector v;
location l;

Xdif Xmax-Xmin;
Ydif Ymax-Ymin;

XdifPre  Xdif/fPrecision;
YdifPre  Ydif/fPrecision;
XdifPre2 XdifPre 1.0;
YdifPre2 YdifPre 1.0;
nX Random(FloatToInt(XdifPre2));
nY Random(FloatToInt(YdifPre2));
Xmul IntToFloat(nX);
Ymul IntToFloat(nY);
fX Xmul*fPrecision;
fY Ymul*fPrecision;
fX fX Xmin;
fY fY Ymin;

Vector(fX,fY,fZ);
Location(oArea,v,0.0);
return 
l;

Voici un exemple d'application, ce script crée une boule de feu aléatoirement toutes les six secondes, dans un rectangle de 10x10 (placé au milieu d'une zone de 30x30). Il est placé dans le OnHeartBeat d'une zone :
Code PHP:
// OnHeartBeat //
#include "io_gen_rdmloc"
void main()
{
object oArea;
location l;
effect e;

oArea OBJECT_SELF;
GenerateRandomLocation(oArea,10.0,10.0,20.0,20.0);
EffectVisualEffect(VFX_FNF_FIREBALL);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT,e,l);

Lien direct vers le message - Vieux
Avatar de Ange Musicien
JOL Ange Musicien
Alpha & Oméga
 
Avatar de Ange Musicien
 
Hs : scusez les fautes, je bosse sur clavier qwerty

Je suis en train de mettre au point plusieurs fonctions, en rapport avec celles-ci et assez utiles :

float Random(float f);
>> enrichit la fonction random pour lui permettre d'accepter les floats -retourne une float du meme nombre de decimales que f.

int GetNumDecimals(float f);
>> retourne le nombre de decimales de f.

float Arrondi(float f, float fPrecision)
>> retourne l'arrondi a fPrecision pres de f

Ca existe probablement deja, et sinon tant mieux
Lien direct vers le message - Vieux
Répondre
Les forums JOL > Forum jeux-vidéo > Neverwinter Nights > NWN - Maskado > [fonction] Génération aléatoire de Location dans un trigger rectangle.
   

Outils Rechercher
Rechercher:

Recherche avancée

Les vidéos de Neverwinter Nights RSS
  • Aucune vidéo pour le moment...
Thème visuel : Fuseau horaire GMT +1. Il est actuellement 20h51.
   

© JeuxOnLine, le site des MMO, MMORPG et MOBA. Tous droits réservés. - Conditions générales d'utilisation - Conditions d'utilisation des forums - Traitement des données personnelles - ! Signaler un contenu illicite