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

Panneau de contrôle

Recherche | Retour aux forums

JOL Archives

Comment connaitre la taille d'une area ?

Par Azrael07 le 17/11/2002 à 21:37:20 (#2582420)

Voila tout est dans le titre, mais apparament y'a pas de fonction (j'en ai po vu), d'un autre coté ca m'étonne que rien n'ai été prevu pour ca, si quelqu'un a une idée sur la question.........

mici ;)

Par coolstar le 18/11/2002 à 0:50:39 (#2583575)

Hi!


Taille de l'Area ? Tu veux dire en Cases (genre 8x8) ou en ko ??? :confus:


Si c le premier cas tu regardes la Propriété de la Zone avec Clic Droit dans l'Arborescence... ;)

Si c le 2e cas, tu te contentes de regarder le poids du Mod, vu qu'au niveau Area on veut pas dire grand chose à mon sens si on considère que les Scritps et autres Dials sont indépendants et valables pour tous les Areas en fait... :D


Et juste pour note, le poids d'une Area n'a rien à voir avec le temps de chargement en partie, mais bien avec le nombre de Cases (sa Superficie)... :blabla:

:rasta:

Par Tynril le 18/11/2002 à 0:51:52 (#2583582)

La taille d'une Area en script, mon canard :p

Et malheureusement non, aucune fonction :(

Par coolstar le 18/11/2002 à 2:38:32 (#2583960)

Heeuuu... T'es sûr que c bien ce qu'il voulait ??? :confus:


Nan parce que là je vois même pas de quoi vous voulez parler ?? Une Taille d'Aréa en Script ??? :confus:

...

Par mobidique le 18/11/2002 à 9:39:30 (#2584631)

Recupérer la taille d'une area via un script, je pense ...

Par eMRaistlin le 18/11/2002 à 10:21:16 (#2584795)

J'ai un script pour ca, je te le passe des que je suis chez moi... ^^


[Edit]Bon, je l'ai retrouvé sur le Vault



//
// GetAreaWidth() & GetAreaHeight()
// Utility functions to get maximum # tiles in X and Y dimensions.
//
// 1.1 07/13/02 Richard Conner
//
int GetAreaWidth(object oArea)
{

location locTile;
vector vTile;

int iX = 0;
int iY = 0;
vTile = Vector(0.0, 0.0, 0.0);
for (iX= 0; iX 32 || iRes < 0)
return(iX);
}

return 32;
}

int GetAreaHeight(object oArea)
{
location locTile;
vector vTile;

int iX = 0;
int iY = 0;
vTile = Vector(0.0, 0.0, 0.0);
for (iY=0; iY 32 || iRes < 0)
return(iY);
}

return 32;
}

void main()
{
object oArea = GetArea(OBJECT_SELF);
object oPC = GetFirstPC();
int iAreaX = GetAreaWidth(oArea);
int iAreaY = GetAreaHeight(oArea);
SendMessageToPC(oPC, "Area size= "+IntToString(iAreaX)+"x"+IntToString(iAreaY));
}


Credits to Richard Conner (rkc@pacbell.net )

Par coolstar le 18/11/2002 à 12:52:03 (#2585709)

Alors là je suis largué! :D


Dites là... vous pourriez m'éclairer sur le principe et l'utilité de ce type de démarche ??? :confus:

Merci. :merci:

Par eMRaistlin le 18/11/2002 à 13:00:32 (#2585778)

Ca te permet de pouvoir faire des apparition d'Object a des position générées aleatoirement, par exemple.

Comme ca, tu fais un seul script pour un Respawn sans WP, ou tu fais une selection de X et Y de telle sorte que X & Y soit enferieur a L & l. Comme ca, avec un script, tu gere toute tes areas. (enfin, ce n'est qu'un exemple...)

Par coolstar le 18/11/2002 à 13:01:59 (#2585788)

How!! :eek:

:p

Par Skanzo Sylan le 18/11/2002 à 14:20:54 (#2586383)

Si j'ai bien compris, ce script vérifie si l'eclairage est valide sur telle ou telle tuile. Si l'eclairage est non-valide, c'est qu'on est arrivé en bout de zone.

Héhé pô bête :)

Si quelqu'un pouvait me tester ça et me dire ce qu'il en pense. Ça fait un bout de temps que j'ai fait ça et ça n'a jamais marché à cause d'un bug résolu avec la 1.26 :rolleyes:

int nTileX1;
int nTileX2;
int nTileY1;
int nTileY2;
int nIncX;
int nIncY;
int nMainLight1Color;
int nMainLight2Color;
int nSourceLight1Color;
int nSourceLight2Color;


// Modifie la lumiere ambiante sur plusieurs tuiles
void SetTilesMainLight( int nMainLight1Color, int nMainLight2Color, int nTileX1, int nTileX2, int nTileY1, int nTileY2);

// Modifie les sources de lumiere sur plusieurs tuiles
void SetTilesSourceLight( int nSourceLight1Color, int nSourceLight2Color, int nTileX1, int nTileX2, int nTileY1, int nTileY2);


void SetTilesMainLight( int nMainLight1Color, int nMainLight2Color, int nTileX1, int nTileX2, int nTileY1, int nTileY2) {
for (nIncX = nTileX1; nIncX <= nTileX2; nIncX ++) {
for (nIncY = nTileY1; nIncY <= nTileY2; nIncY ++) {
vector vTileLight = Vector( IntToFloat( nIncX), IntToFloat( nIncY));
location lTileLight = Location( GetArea( OBJECT_SELF), vTileLight, 1.0);
SetTileMainLightColor( lTileLight, nMainLight1Color, nMainLight2Color);
RecomputeStaticLighting( GetArea( OBJECT_SELF));
}
}
}


void SetTilesSourceLight( int nSourceLight1Color, int nSourceLight2Color, int nTileX1, int nTileX2, int nTileY1, int nTileY2) {
for (nIncX = nTileX1; nIncX <= nTileX2; nIncX ++) {
for (nIncY = nTileY1; nIncY <= nTileY2; nIncY ++) {
vector vTileLight = Vector( IntToFloat( nIncX), IntToFloat( nIncY));
location lTileLight = Location( GetArea( OBJECT_SELF), vTileLight, 1.0);
SetTileSourceLightColor( lTileLight, nSourceLight1Color, nSourceLight2Color);
RecomputeStaticLighting( GetArea( OBJECT_SELF));
}
}
}

Par Azrael07 le 18/11/2002 à 17:15:33 (#2587621)

arf merci pour le script mais je passe vraiment pour un flemmard, j'allais le faire mais ct juste pour savoir ci j'allais pas me faire chier pour rien, enfin le problème c que c un peu lourd, je sais pas si je pourrais vraiment m'en servir... On verra bien.

Oui quand je dis taille c bien la taille en carreaux, (en théorie pour un fichier on dit le poid) mais c vrai k'il faudrai voir a apprendre a m'exprimer correctement. dsl ^_^

eh ben sinon merci les gars

JOL Archives 1.0.1
@ JOL / JeuxOnLine