30.04.2014, 00:09
Bom, eu estou com um problema ainda, no meu cуdigo de plantar arvores. Eu fiz uma array para essa arvore, mas o problema antes era apenas a ultima arvore planta que crescia, hoje, apenas a primeira arvore plantada cresce. Exemplo: se eu digitar o comando 2 vezes consecutivas, apenas o primeiro comando seria exucutado corretamente, ja o ultimo comando, apenas ficaria no primeiro objeto e assim nгo chamando o timer para crescer a arvore. Siga os cуdigos abaixo:
Array:
comando ,publics,stock:
PHP код:
#define MAX_AL 1000
PHP код:
enum PLaranja
{
Proxyarv,
Float:ArvX,
Float:ArvY,
Float:ArvZ,
ArvoreObject,
ArvoreObject2[32]
}
PHP код:
new ProxyArv[MAX_AL][PLaranja];
new tarvore = 0;
comando ,publics,stock:
PHP код:
CMD:arvore1(playerid, params[])
{
new Float: X,
Float: Y,
Float: Z,
arvorep;
GetPlayerPos(playerid, X, Y, Z);
SendClientMessage(playerid, AMARELO, "Бrvore de laranja plantada");
arvorep = CreateObject(728, X, Y, Z, 0, 0, 0, 50);
ProxyArv[playerid][ArvoreObject2][tarvore] = arvorep;
tarvore ++;
SetTimerEx("PLARANJA", 5000,false,"i",playerid);
return 1;
}
forward PLARANJA(playerid);
public PLARANJA(playerid)
{
new Float:x,Float:y,Float:z,Float:PposA;
GetPlayerFacingAngle(playerid, PposA);
x+= (3 * floatsin(-PposA, degrees));
y += (3 * floatcos(-PposA, degrees));
GetObjectPos(ProxyArv[playerid][ArvoreObject2] , x , y , z);
CreatePLaranja(x,y,z);
DestroyObject(ProxyArv[playerid][ArvoreObject2]);
return 1;
}
stock CreatePLaranja(Float:x,Float:y,Float:z)
{
for(new i = 0; i < sizeof(ProxyArv); i++)
{
if(Proxycords[i][Proxyarv] == 0)
{
ProxyArv[i][Proxyarv]=1;
ProxyArv[i][ArvX]=x;
ProxyArv[i][ArvY]=y;
ProxyArv[i][ArvZ]=z;
ProxyArv[i][ArvoreObject] = CreateObject(717, x, y, z-1.0,0,0,0,50);
return 1;
}
}
return 0;
}