Creer une location au hasard

Répondre
Partager Rechercher
J'ai besoin de creer une location au hasard, la seul chose que j'aurais besoin c'est la dimension de l'area en x et y

merci à l'avance
__________________
Florynth ... bientôt un monde sera miens...
pas moyen, pour connaitre la taille maximale, la seule solution ( a part du bidouillage en téléportant des objets), c'est de mettre en variable locale la taille... dommage
Miriandel avait proposé une solution basée sur les GetEclairageDeLaTuile() (désolé je me souviens plus du nom) qui marchait semble-t-il très bien, il faisait une boucle pour chaque dimension et vérifiait la valeur renvoyée, s'il s'agissait de 0 ou -1 (me souvient plus), il en concluait que la tuile n'existait pas. A priori, il semblerait rentable de le faire une bonne fois sur le OnEnter de chaque zone et de le stocker dans deux local ints.
Voici le script que j'ai créé, ne l'utilisé pas car ça marche pas pen toute, il est dans le OnEnter de la Area voulu... J'ai besoin de ça pour compléter mon script de Gestion de population automatique...

Code PHP:

void InitRandomLocation(object areaint gridXint gridY)
{
    
int exist;
    
int light;
    
int i;
    
int y;
    
int nbrLocation 0;

    for (
gridX i++)
    {
        for (
gridY y++)
        {
            
light GetTileMainLight1Color(Location(OBJECT_SELF,Vector(IntToFloat(i),IntToFloat(y),0.0),0.0));

            if(
light >0)
            {
                
nbrLocation++;



                
SetLocalInt(area,ObjectToString(area) + "_grid_x_" IntToString(nbrLocation),i);
                
SetLocalInt(area,ObjectToString(area) + "_grid_y_" IntToString(nbrLocation),y);
            }
        }
    }
    
SetLocalInt(area,ObjectToString(area) + "_nbrRandomLocation",nbrLocation);
}


location GetRandomLocation(object area)
{
    
int nbrRandomLocation GetLocalInt(area,ObjectToString(area) + "_nbrRandomLocation");
    
int rand;
    
int gridX;
    
int gridY;

    
rand Random(nbrRandomLocation) + 1;
    
gridX GetLocalInt(area,ObjectToString(area) + "_grid_x_" IntToString(nbrRandomLocation));
    
gridY GetLocalInt(area,ObjectToString(area) + "_grid_y_" IntToString(nbrRandomLocation));

    return 
Location(area,Vector(gridX*10.0,gridY*10.0,0.0),0.0);

__________________
Florynth ... bientôt un monde sera miens...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés