pawn Код:
stock CrearPiso2(veces, Float:posx, Float:posy, Float:posz, objetoid = 19370)
{
new veces2 = veces;
new count;
new Float:objetos[2];
for(new i = 0; i < veces + 1; i++)
{
//Bucle por cuantas veces queramos repetir el objeto en X e Y
//Creamos el objeto principal
objetoinicial = CreateObject(objetoid, posx, posy, posz -0.8200, 0.0, 90.0, 0.0);
for(new a = 0; a < veces2; a++)
{
if( a == veces2 - 1)
{
//Creaciуn objetos del lado X
CreateObject(objetoid, posx, posy+(3.2*(a+1)), posz -0.8200, 0.0, 90.0, 0.0);
objetos[0] = posy-(3.2*(a+1));
//Creaciуn objetos de abajo Y
CreateObject(objetoid, posx+(3.5*(a+1)), posy, posz -0.8200, 0.0, 90.0, 0.0);
objetos[1] = posx+(3.5*(a+1));
}
else
{
CreateObject(objetoid, posx, posy+(3.2*(a+1)), posz -0.8200, 0.0, 90.0, 0.0);
//Creaciуn objetos de abajo Y
CreateObject(objetoid, posx+(3.5*(a+1)), posy, posz -0.8200, 0.0, 90.0, 0.0);
}
count++;
}
//Esta variable disminuye para que se creen los objetos justos
veces2--;
//Bajamos a una nueva posiciуn
posx += 3.5, posy += 3.2;
}
//111.0234, -134.5625, -0.0547
CreateObject(19452, objetos[1], objetos[0], posz -0.6200, 0.0, 0.0, 0.0);
printf("MAX objects: %i", count);
return 1;
}
Funciуn creada por "Stallin", es para crear un piso mediante coordenadas X-Y-Z. Modificala a tu gusto para obtener lo que deseas.
pawn Код:
stock CrearPiso(const itamano, Float:iposx, Float:iposy, Float:iposz, iobjetoid = 19370)
{
new act = 1, bool:ladox, bool:ladoy;
new Float:posicionesp[168][3], totalp = 1;
CreateObject(iobjetoid, iposx, iposy, iposz, 0.0, 90.0, 0.0);
posicionesp[0][0] = iposx, // Se establece a la variable de array [0] la posiciуn X, en йsta variable se almacenarбn los demбs objetos.
posicionesp[0][1] = iposy, // Se establece a la variable de array [1] la posiciуn Y, en йsta variable se almacenarбn los demбs objetos.
posicionesp[0][2] = iposz; // Se establece a la variable de array [2] la posiciуn Z, en йsta variable se almacenarбn los demбs objetos.
new aumentop = 1;
while(act < itamano)
{
posicionesp[act][1] = (ladox) ? (posicionesp[act-2][1]-3.2) : (posicionesp[act-1][1]+3.2);
posicionesp[act][0] = posicionesp[act-aumentop][0];
posicionesp[act][2] = posicionesp[act-aumentop][2];
if(aumentop == 2) aumentop = 1;
else aumentop = 2;
CreateObject(iobjetoid, posicionesp[act][0], posicionesp[act][1], posicionesp[act][2], 0.0, 90.0, 0.0);
act++;
ladox = !ladox;
totalp++;
}
for(new i = 0; i < totalp; i++)
{
act = 0;
while(act < totalp-1)
{
CreateObject(iobjetoid, (ladoy) ? (posicionesp[act][0]-(3.5*(i+1))) : (posicionesp[act][0]+(3.5*(i+1))), posicionesp[act][1], posicionesp[act][2], 0.0, 90.0, 0.0);
act++;
}
}
return 1;
}
Ahн hay otra tambiйn creada por "Stallin", obtiene el mismo resultado pero de diferente forma.
En realidad no son lo mismo, la primera comienza a crear el piso desde una esquina y la segunda desde el centro.