12.06.2014, 13:32
Isso acontece porque vocк usa apenas 1 variбvel(Proxycords[playerid][MineObject2]), quando uma arvore й criado ela й redefinida ou seja, as outras criados anteriormente que nгo cresceram sгo "apagadas" de sua variбvel e apenas a ultima continua ativa, minha sugestгo seria limitar o nъmero de бrvores, ex 10:
Ou limitar para apenas 1 бrvore
pawn Код:
#define ArvoreID 10
enum PLaranja
{
ArvoreCriada,
Proxymine,
Float:MineX,
Float:MineY,
Float:MineZ,
MineObject,
MineObject2[32]
}
new Proxycords[MAX_AL][ArvoreID][PLaranja];
CMD:arvore1(playerid, params[])
{
new Float: X,
Float: Y,
Float: Z,
disponivel; disponivel = 0;
GetPlayerPos(playerid, X, Y, Z);
for(new i = 0; i < ArvoreID; i++)
{
if(Proxycords[playerid][i][ArvoreCriada] == 0 && disponivel == 0)
{
disponivel = 1;
Proxycords[playerid][i][ArvoreCriada] = 1;
Proxycords[playerid][i][MineObject2] = CreateObject(728, X, Y, Z, 0, 0, 0, 50);
}
}
if(disponivel == 1)
{
SendClientMessage(playerid, AMARELO, "Бrvore de laranja plantada");
}
SetTimerEx("PLARANJA", 5000,false,"i",playerid);
return 1;
}
forward PLARANJA(playerid);
public PLARANJA(playerid)
{
for(new i = 0; i < ArvoreID; i++)
{
new Float:x,Float:y,Float:z,Float:PposA;
GetPlayerFacingAngle(playerid, PposA);
x+= (3 * floatsin(-PposA, degrees));
y += (3 * floatcos(-PposA, degrees));
GetObjectPos(Proxycords[playerid][i][MineObject2] , x , y , z);
CreatePLaranja(x,y,z);
DestroyObject(Proxycords[playerid][i][MineObject2]);
return 1;
}
}
stock CreatePLaranja(Float:x,Float:y,Float:z)
{
for(new i = 0; i < sizeof(Proxycords); i++)
{
for(new is = 0; is < ArvoreID; is++)
{
if(Proxycords[i][is][Proxymine] == 0)
{
Proxycords[i][is][Proxymine] =1;
Proxycords[i][is][MineX] = x;
Proxycords[i][is][MineY] = y;
Proxycords[i][is][MineZ] = z;
Proxycords[i][is][MineObject] = CreateObject(717, x, y, z-1.0,0,0,0,50);
return 1;
}
}
}
return 0;
}
pawn Код:
enum PLaranja
{
ArvoreCriada,
Proxymine,
Float:MineX,
Float:MineY,
Float:MineZ,
MineObject,
MineObject2[32]
}
new Proxycords[MAX_AL][PLaranja];
CMD:arvore1(playerid, params[])
{
new Float: X,
Float: Y,
Float: Z;
GetPlayerPos(playerid, X, Y, Z);
if(Proxycords[playerid][ArvoreCriada] == 0)
{
Proxycords[playerid][ArvoreCriada] = 1;
Proxycords[playerid][MineObject2] = CreateObject(728, X, Y, Z, 0, 0, 0, 50);
SendClientMessage(playerid, AMARELO, "Бrvore de laranja plantada");
SetTimerEx("PLARANJA", 5000,false,"i",playerid);
}
else
{
SendClientMessage(playerid, AMARELO, "Vocк jб plantou uma бrvore");
}
return 1;
}
forward PLARANJA(playerid);
public PLARANJA(playerid)
{
if(Proxycords[playerid][ArvoreCriada] == 1)
{
new Float:x,Float:y,Float:z,Float:PposA;
GetPlayerFacingAngle(playerid, PposA);
x+= (3 * floatsin(-PposA, degrees));
y += (3 * floatcos(-PposA, degrees));
GetObjectPos(Proxycords[playerid][MineObject2] , x , y , z);
CreatePLaranja(x,y,z);
DestroyObject(Proxycords[playerid][MineObject2]);
return 1;
}
}
stock CreatePLaranja(Float:x,Float:y,Float:z)
{
for(new i = 0; i < sizeof(Proxycords); i++)
{
if(Proxycords[i][Proxymine] == 0 && Proxycords[i][ArvoreCriada] == 1)
{
Proxycords[i][Proxymine] =1;
Proxycords[i][MineX] = x;
Proxycords[i][MineY] = y;
Proxycords[i][MineZ] = z;
Proxycords[i][MineObject] = CreateObject(717, x, y, z-1.0,0,0,0,50);
return 1;
}
}
return 0;
}