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

Ai galera, tipo eu jб tinha tentado fazer etc, mas tipo o mбximo, com oque eu consigo usar da minha logica e dos meus conhecimentos, foi cria a mochila e guarda os items!

Quero saber como crio um "sistema" pra pegar items do chгo?

E se tiverem um "curso" em PDF me mandem! os que eu acho nгo consigo me evoluir!, tipo eu quero aprender sу para uso pessoal, pois nгo tem futuro em emprego k, mas manda quem tiver um bom.
Reply
#2

Quote:
Originally Posted by SerjaumBerranteiro
Посмотреть сообщение
Ai galera, tipo eu jб tinha tentado fazer etc, mas tipo o mбximo, com oque eu consigo usar da minha logica e dos meus conhecimentos, foi cria a mochila e guarda os items!

Quero saber como crio um "sistema" pra pegar items do chгo?

E se tiverem um "curso" em PDF me mandem! os que eu acho nгo consigo me evoluir!, tipo eu quero aprender sу para uso pessoal, pois nгo tem futuro em emprego k, mas manda quem tiver um bom.
Tbm estou querendo aprender sobre o assunto!
Reply
#3

Tem uma GM que foi postada hoje e tem esse sistema. Sу estudar.

https://sampforum.blast.hk/showthread.php?tid=638232
Reply
#4

Vou fazer um pra vocк, mais, nao vai dar pra explicar coisa por coisa, vc vai ter que entender sozinho, vc usa streamer ?
Reply
#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
#6

Quote:
Originally Posted by Andinho
Посмотреть сообщение
Vou fazer um pra vocк, mais, nao vai dar pra explicar coisa por coisa, vc vai ter que entender sozinho, vc usa streamer ?
Sim uso

Vlw pelo o sistema ai! REP

Ai ta assim?:
Tipo ele tem um obj pode coloca-lo no chгo, alguem pode pegar, ou ele msm! e se ninguem pegar ele some!, mas como eu vou crio o obj e dou para o jogador!

Tipo oque eu faзo pra chamar a public public CriarObjeto(playerid, item, unid) ?
Atlg nгo tinha visto ai em baixo! tlg, da pra usar ate a sscanf
Reply
#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(playeriditemunidades);
     
//seria assim?
     
return 1;
}
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. 
            

        } 
    } 
Esses loop ai pra MAX_PLAYERs, se um player pega um obj, ele num vai pegar de todos nгo?
Reply
#8

Tipo, com a funзгo que eu disse, vc consegue dropar um item, pra transferir um itempra outro player, ai й pelo inventario, й vc que tem que fazer isso, vc esta guadando as variaveis dos items do inventario pra cada player certo? entгo vc transfere do player para outro, ou seja:

Код:
Variavel[outroplayer] = Variavel[playerid];
Variavel[playerid] = 0;
isso й sу o conceito, vc precisa usar suas variaveis e etc... espero ter ajudado !
Reply
#9

Quote:
Originally Posted by Andinho
Посмотреть сообщение
Tipo, com a funзгo que eu disse, vc consegue dropar um item, pra transferir um itempra outro player, ai й pelo inventario, й vc que tem que fazer isso, vc esta guadando as variaveis dos items do inventario pra cada player certo? entгo vc transfere do player para outro, ou seja:

Код:
Variavel[outroplayer] = Variavel[playerid];
Variavel[playerid] = 0;
isso й sу o conceito, vc precisa usar suas variaveis e etc... espero ter ajudado !
Mano serio nгo to entendendo vocк poderia criar um comando? tipo simulando como й no inventбrio? e como usar esses sistema que vc criou!, se se vc quiser
Reply
#10

Estou vendo que vocк quer dar um passo maior que suas pernas, primeiro estude lуgica de programaзгo vai te dar uma base e com essa base serб possнvel vocк programar em pawn. Depois de estudar a lуgica estude a linguagem.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)