[Ajuda] [AJUDA/PEDIDO] Quero saber como crio ...
#7

PHP код:
#define MAX_OBJETOS 1000 
enum ob 
{ 
    
oColocado, 
    
oObjeto, 
    
oID, 
    
oUnidades, 
    
Float:oPos[3], 
    
oTimer 
} 
new 
Objetos[MAX_OBJETOS][ob]; 
CMD:derrubar(playerid,params[])
{
     
//vinge que aqui e o inventбrio
    
new item = 5;
    new 
unidades = 1;
     
CriarObjeto(playerid, item, unidades);
     
//seria assim?
     
return 1;
}
forward CriarObjeto(playerid, item, unid); 
public 
CriarObjeto(playerid, item, unid) 
{ 
    new 
Float:ppp[3]; 
    
GetPlayerPos(playerid, ppp[0],ppp[1],ppp[2]); 
    for(new 
i; i<MAX_OBJETOS; i++) 
    { 
        if(
Objetos[i][oColocado] == 0) 
        { 
            
SendClientMessage(playerid, -1, "  Vocк colocou um item no chao !"); 
            
Objetos[i][oColocado] = 1; 
            
Objetos[i][oPos][0] = ppp[0]; 
            
Objetos[i][oPos][2] = ppp[2]; 
            
Objetos[i][oPos][3] = ppp[3]-0.95; 
            
Objetos[i][oUnidades] = unid; 
            
Objetos[i][oID] = item; 
            
Objetos[i][oObjeto] = CreateObject(item, Objetos[i][oPos][0],Objetos[i][oPos][0],Objetos[i][oPos][0],0,0,random(360),100); 
            
Objetos[i][oTimer] = SetTimerEx("DestruirObjeto", 5*(60000), 0, "i", i); // 5*(60000) = 5 minutos, isso para destruir o objeto sozinho 
            
ApplyAnimation(playerid, "BOMBER", "BOM_Plant_2Idle", 4.0, 0, 0, 0, 0, 0); 
            break; 
// verifica algum objeto que nгo exista, e cria ele, o BREAK da um stop, para que nao crie mais de 1 objeto. 
        
} 
    } 
    return 
1; 
} 
forward DestruirObjeto(i); 
public 
DestruirObjeto(i) 
{ 
    
KillTimer(Objetos[i][oTimer]); 
    
Objetos[i][oColocado] = 0; 
    
DestroyObject(Objetos[i][oObjeto]); 
    return 
1; 
} 
forward PegarItem(playerid, i); 
public 
PegarItem(playerid, i) 
{ 
    new 
item = Objetos[i][oID]; // ID doobjeto que estava o chao 
    
new unids = Objetos[i][oUnidades]; //  unidades do objeto que estava no chao 
    // nesta parte, coloque a variavel onde vc vai armazenar o item e a unidade 
    // provavelmente seria um inventario, entao use as variavei acima como item e unidades. 
    
SendClientMessage(playerid, -1, "  Vocк pegou um item do chao !"); 
    
DestruirObjeto(i); 
    
ApplyAnimation(playerid, "BOMBER", "BOM_Plant_2Idle", 4.0, 0, 0, 0, 0, 0); 
    return 
1; //  isso faz com que destrua o objeto apos pegar ele. 
} 
// agora na public OnPlayerKeyStateChange do seu server coloque ... 
     
     
    
if(newkeys == KEY_SECONDARY_ATTACK)//  <<  vamos verificar se ele apertou f ou enter. 
    
{ 
        for(new 
i; i<MAX_OBJETOS; i++)// faremos uma verificaзгo de todos os items 
        
{ 
            if(
Objetos[i][oColocado] == 1)// isso verifica apenas os objetos criados. 
            
{ 
                if(
IsPlayerInRangeOfPoint(playerid, 1.5,Objetos[i][Pos][0],Objetos[i][Pos][1],Objetos[i][Pos][2])) 
                { 
                    
// esta verificaзгo acima, serve para saber se ele esta proximo a um certo local, no raio de 1.5 metros 
                     // no caso verificamos se ele esta a 1.5 metros de algum item que ja esteja no chao. 
                    
PegarItem(playerid, i); 
                    break; 
                }
// o BREAK novamente servio para terminar a verificaзгo. 
            
} 
        } 
    } 
Esses loop ai pra MAX_PLAYERs, se um player pega um obj, ele num vai pegar de todos nгo?
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)