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

aki esta, qualquer duvida pergunte:

PHP код:

#define MAX_OBJETOS 1000
enum ob
{
    
oColocado,
    
oObjeto,
    
oID,
    
oUnidades,
    
Float:oPos[3],
    
oTimer
}
new 
Objetos[MAX_OBJETOS][ob];
forward CriarObjeto(playeriditemunid);
public 
CriarObjeto(playeriditemunid)
{
    new 
Float:ppp[3];
    
GetPlayerPos(playeridppp[0],ppp[1],ppp[2]);
    for(new 
ii<MAX_OBJETOSi++)
    {
        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(itemObjetos[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.000000);
            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(playeridi);
public 
PegarItem(playeridi)
{
    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.000000);
    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 
ii<MAX_OBJETOSi++)// faremos uma verificaзгo de todos os items
        
{
            if(
Objetos[i][oColocado] == 1)// isso verifica apenas os objetos criados.
            
{
                if(
IsPlayerInRangeOfPoint(playerid1.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(playeridi);
                    break;
                }
// o BREAK novamente servio para terminar a verificaзгo.
            
}
        }
    } 
Espero ter ajudado, apenas nao copie e cole, tente entender cada coisa !!


@edit

lembre de usar a funзгo CriarObjeto(playerid, id do item, e as unidades); para poder criar ( ele nao brota do chao rsrs )
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 2 Guest(s)