Archives des forums MMO/MMORPG > Neverwinter Nights > NWN - Maskado > Comment connaitre la taille d'une area ?
Comment connaitre la taille d'une area ?
Par Azrael07 le 17/11/2002 à 21:37:20 (#2582420)
mici ;)
Par coolstar le 18/11/2002 à 0:50:39 (#2583575)
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)
Et malheureusement non, aucune fonction :(
Par coolstar le 18/11/2002 à 2:38:32 (#2583960)
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)
Par eMRaistlin le 18/11/2002 à 10:21:16 (#2584795)
[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)
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)
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)
:p
Par Skanzo Sylan le 18/11/2002 à 14:20:54 (#2586383)
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)
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