[Tutorial] Equipamentos por Tecla(Pickup)
#1

Equipamentos por Tecla (Pickup)
Meu primeiro tutorial. Entгo peguem leve =S

LEIA ANTES DE POSTAR ALGO!
- Creio que ajudarб os novatos...
- Creio que sejб util,para TDM/DM's.
- Designer estб horrivel. Ignorem.
- Como falei,primeiro tutorial. Peguem leve :\
- Erros/bugs. Favor que me corrija.
- Erros de portugues,ignorem ¬¬.
- Irei criar com permissгo para todos e para gangs/orgs.


- A parte,para adicionar para gangs/orgs,irei colocar por ultimo.

- Primeiro,vamos adicionar a pickup.
pawn Код:
new Pickup1; // Variavel para criar a pickup.
- Agora vamos em public OnGameModeInit()
- Coloque o Seguinte Codigo :
pawn Код:
Pickup1 = CreatePickup(1242,1,-2223.6423,20.9773,35.3203);
- Explicaзгo:

Pickup1 : Nome da pickup,colocada no topo do gamemode,que serб utilizada.
= : Para definir,qual vai ser a funзгo da variavel. No caso a Pickup1.
CreatePickup : Para criar a pickup.
1242 : ID Da pickup que serб criada. Pickups : Aqui
1 : Modelo da pickup que serб criada. Estilos : Aqui
-2223.6423,20.9773,35.3203 : Posiзгo que sera colocada a pickup.

> Para mais explicaзхes: Clique Aqui

- Agora vamos criar o 3DTextLabel.(Coloque junto com a pickup)
pawn Код:
Create3DTextLabel("Equipamentos",Vermelho,-2223.6423,20.9773,35.3203,30.0,0);
- Explicaзгo:

Create3DTextLabel : Criar a mensagem em cima da pickup.
"Equipamentos" : Mensagem que serб colocada.
Vermelho : A cor da mensagem.
-2223.6423,20.9773,35.3203 : Posiзгo da mensagem.
,30.0,0 : Distanзia para ser vista a mensagem.

> Para mais explicaзхes: Clique Aqui

- Agora vamos em public OnPlayerPickUpPickup(playerid, pickupid)
- E Adicionamos a mensagem,que quando o player passar na pickup apareзera.
pawn Код:
if(pickupid == Pickup1) // Verifica qual e a pickup.
{ // abre chave
SendClientMessage(playerid,-1,"Pressione a Tecla [F] Para pegar seus equipamentos!"); // Manda Mensagem ao player
} // Fecha
return 1; // Fecha
} // Fecha
- Agora vamos em public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- Aqui vou explicar as funзхes no codigo jб.
- Adicione o codigo :
pawn Код:
if (newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) // Aqui definimos o botгo " F "
{
    if (IsPlayerInRangeOfPoint(playerid, 1.0, -2223.6423, 20.9773, 35.3203)) //Aqui e o Local que pode pegar os equipamentos(Lugar da Pickup)
    {
        GivePlayerWeapon(playerid, 4, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 24, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 27, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 29, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 31, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 34, 800); // Dar a arma para o jogador.
        SetPlayerHealth(playerid, 100.0); // Dar colete para o jogador.
        SetPlayerArmour(playerid, 100.0); // Dar vida para o jogador.
        new zNick[MAX_PLAYER_NAME]; // Definir a Variavel que serб mostrada o Nick.
        new zstring[128]; // Definir a variavel,que mostrara a mensagem.
        GetPlayerName(playerid, zNick, MAX_PLAYER_NAME); // Pega o nome do jogador
        format(zstring, sizeof(zstring), "* %s (ID:%d) Pegou seus equipamentos! *", zNick, playerid); // Qual serб a mensagem.
        SendClientMessageToAll(-1, zstring); // Manda a mensagem para todos.
    }
}
return 1;
}
Primeira parte concluida.

- Agora vamos adicionar para gang/org.
Veja qual e a define de sua gang/org.
Ex:
pawn Код:
#define FirstLine 1
- Vamos Adicionar no topo do codigo,onde й apertada a tecla :
pawn Код:
if(gTeam[playerid] == FirstLine) // Verifica se ele e da gang/org "FirstLine".
{// Abre chave
- Agora adicionando no codigo inteiro.
pawn Код:
if (newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) // Aqui definimos o botгo " F "
{
// Aqui adicionamos o codigo acima :
if(gTeam[playerid] == FirstLine) // Verifica se ele e da gang/org "FirstLine".
{// Abre nova Chave
    if (IsPlayerInRangeOfPoint(playerid, 1.0, -2223.6423, 20.9773, 35.3203)) //Aqui e o Local que pode pegar os equipamentos(Lugar da Pickup)
    {
        GivePlayerWeapon(playerid, 4, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 24, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 27, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 29, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 31, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 34, 800); // Dar a arma para o jogador.
        SetPlayerHealth(playerid, 100.0); // Dar colete para o jogador.
        SetPlayerArmour(playerid, 100.0); // Dar vida para o jogador.
        new zNick[MAX_PLAYER_NAME]; // Definir a Variavel que serб mostrada o Nick.
        new zstring[128]; // Definir a variavel,que mostrara a mensagem.
        GetPlayerName(playerid, zNick, MAX_PLAYER_NAME); // Pega o nome do jogador
        format(zstring, sizeof(zstring), "* %s (ID:%d) Pegou seus equipamentos! *", zNick, playerid); // Qual serб a mensagem.
        SendClientMessageToAll(-1, zstring); // Manda a mensagem para todos.
        }
    }// Fechamos +1 Chave
}
return 1;
}
Segunda parte concluida.

- Agora vamos adicionar tempo/segundos.
Vamos no topo do seu gm e adicione :
pawn Код:
new VoceJaClicou[MAX_PLAYERS]; // Criamos uma nova variavel
Agora Vamos no codigo,aonde pega os equipamentos e adicionamos no topo:
pawn Код:
if(VoceJaClicou[playerid] > gettime()) return SendClientMessage(playerid, -1,"Aguarde 2 Minutos,para pegar os equipamentos novamente!");// Verifica se nao passou os segundos,e manda a mensagem.
E No Final :
pawn Код:
VoceJaClicou[playerid] = gettime() + 120;// Setб os segundos. || 120 = Segundos = 2 Minutos.
- Ficando o codigo completo :
pawn Код:
if (newkeys == 16 && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) // Aqui definimos o botгo " F "
{
// Aqui adicionamos o codigo acima :
if(gTeam[playerid] == FirstLine) // Verifica se ele e da gang/org "FirstLine".
{// Abre nova Chave
    if (IsPlayerInRangeOfPoint(playerid, 1.0, -2223.6423, 20.9773, 35.3203)) //Aqui e o Local que pode pegar os equipamentos(Lugar da Pickup)
    {
        if(VoceJaClicou[playerid] > gettime()) return SendClientMessage(playerid, -1,"Aguarde 2 Minutos,para pegar os equipamentos novamente!");// Verifica se nao passou os segundos,e manda a mensagem.
        GivePlayerWeapon(playerid, 4, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 24, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 27, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 29, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 31, 800); // Dar a arma para o jogador.
        GivePlayerWeapon(playerid, 34, 800); // Dar a arma para o jogador.
        SetPlayerHealth(playerid, 100.0); // Dar colete para o jogador.
        SetPlayerArmour(playerid, 100.0); // Dar vida para o jogador.
        new zNick[MAX_PLAYER_NAME]; // Definir a Variavel que serб mostrada o Nick.
        new zstring[128]; // Definir a variavel,que mostrara a mensagem.
        GetPlayerName(playerid, zNick, MAX_PLAYER_NAME); // Pega o nome do jogador
        format(zstring, sizeof(zstring), "* %s (ID:%d) Pegou seus equipamentos! *", zNick, playerid); // Qual serб a mensagem.
        SendClientMessageToAll(-1, zstring); // Manda a mensagem para todos.
        VoceJaClicou[playerid] = gettime() + 120;// Setб os segundos. || 120 = Segundos = 2 Minutos.
        }
    }// Fechamos +1 Chave
}
return 1;
}
Uso,isso em meu servidor de TDM que estou montando.
No momento nao encontrei nem um bug ou erro.

- Creditos
@Riichard(Eu)
BreakDrift > Algumas duvidas rapidas
O Sistema do Segundos,encontrei em um topico de pedido
Se encontrarem o topico me falem o nome do postador.
Porque eu esqueзi o nome.


- Prints

-
Reply
#2

Muito bom, irб ajudar muitos novatos.

Porque esta mania ?
PHP код:
new zstring[128]; 
Para um 'Nick' e um 'ID' o suficiente й isto.

PHP код:
new zstring[42]; 
Me corriga se estiver errado, obrigado e + REP pra vocк =D
Reply
#3

Quote:
Originally Posted by GReeN_WOoD
Посмотреть сообщение
Muito bom, irб ajudar muitos novatos.

Porque esta mania ?
PHP код:
new zstring[128]; 
Para um 'Nick' e um 'ID' o suficiente й isto.

PHP код:
new zstring[42]; 
Me corriga se estiver errado, obrigado e + REP pra vocк =D
Sim,voce,esta certo.
Eu nгo conto as celulas.
Sei que amx fica maior,e demora a mensagem ...
e Obrigado.
Reply
#4

Quote:
Originally Posted by GReeN_WOoD
Посмотреть сообщение
Muito bom, irб ajudar muitos novatos.

Porque esta mania ?
PHP код:
new zstring[128]; 
Para um 'Nick' e um 'ID' o suficiente й isto.

PHP код:
new zstring[42]; 
Me corriga se estiver errado, obrigado e + REP pra vocк =D
Vocк estб errado, a seguinte string tem 43 caracteres.
"* %s (ID:%d) Pegou seus equipamentos! *"

O Mбximo para o nome й "24", agora iremos somar:

24 + 43 = 67 caracteres.


Bom tutorial.
Reply
#5

Garfield, tipo, string nгo irб contar sу o %s, %d ?
Reply
#6

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
Vocк estб errado, a seguinte string tem 43 caracteres.
"* %s (ID:%d) Pegou seus equipamentos! *"

O Mбximo para o nome й "24", agora iremos somar:

24 + 43 = 67 caracteres.


Bom tutorial.
Obrigado Gayfield. Ops
Garfield
Reply
#7

Bom tutorial emo .

Maximo no nome do cara й 24(Acho). Id й 3..
Mais estб certo no chat o maximo й 128.
Contara tudo digitado no format

@Aff nem vi o post desse Gatogaiiii.
Reply
#8

Quote:
Originally Posted by GReeN_WOoD
Посмотреть сообщение
Nгo й questгo de contar cйlulas, eu tambйm era assim, mais em questao do 'GRANDE GODFATHER' imunizou os Scripters Brasileiros em colocar Cйlulas que nгo tem explicaзгo, como: 1024, 512, 256, entre outros.
Caro amigo, vocк pode ter percebido que na maioria dos meus projetos vocк encontrarб strings
com 128 cйlulas, porque em TODAS as callback's do sa-mp, o mбximo de cйlulas(com funзхes nativas)
permitido й 128.

Agora, caso o script tenha que fazer uma consulta MySQL, ai pode usar quantas cйlulas quiserem,
mais no caso de sua correзгo, vocк estava errado, porque a mensagem iria ser mandada pela metade...


Quote:
Originally Posted by GReeN_WOoD
Посмотреть сообщение
Garfield, tipo, string nгo irб contar sу o %s, %d ?
Nгo, porque "%s" й interaзгo de string.

Quote:
Originally Posted by @Riichard
Посмотреть сообщение
Obrigado Gayfield. Ops
Garfield
Estou te defendendo e vocк me ofende ...


Vish
Reply
#9

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
Caro amigo, vocк pode ter percebido que na maioria dos meus projetos vocк encontrarб strings
com 128 cйlulas, porque em TODAS as callback's do sa-mp, o mбximo de cйlulas(com funзхes nativas)
permitido й 128.

Agora, caso o script tenha que fazer uma consulta MySQL, ai pode usar quantas cйlulas quiserem,
mais no caso de sua correзгo, vocк estava errado, porque a mensagem iria ser mandada pela metade...



Estou te defendendo e vocк me ofende ...


Vish
Levo a serio? LOL
Nao sabe oque e zoa n?'



taparey.
Reply
#10

Vlw gatinho. tirou uma grande dъvida minha.
Gatinho ? foi malz ( anda de 4, bebe leitinho e balanзa rabinho LOOL# )
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)