Clique Aqui‎ para ler as Regras do xat.

Criando Portão – 0.3d Samp

No TOPO do GM:

Cita:
new Portao;
forward ClosePortao(playerid);

Explicação:
São Funções do PAWNO para Definir Coisas ( new é uma array que irá criar algo novo, como Floats, strings, numeros, ETC (Dica do BlueX)… forward para Definir novas Publics )
Este será o Nome do seu Portão, lembre-se que ele será usado no Futuro
Está é a public que Irá ser Fechar seu Portão, coloque com o Nome que mais lhe Agradá…

CODE:

pawn Código:
new Portao;
forward ClosePortao(playerid);

Agora no public OnGameModeInit:

Cita:
Portao = CreateObject(970, 1, 2, 3, 0, 0, 0);

Explicação:
Deve ser usado o mesmo Nome que foi definido no “new” do Topo do GM
Essa Função fará com que Crie o Portão
MODELID, X, Y, Z, ROTX, ROTZ, ROTY do seu Portão Fechado

CODE:

pawn Código:
Portao = CreateObject(970, 1, 2, 3, 0, 0, 0);

public OnPlayerCommandText:

Cita:
if (strcmp(“/portao“, cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,7.0, 1, 2, 3))
{
SendClientMessage(playerid, -1, “Portão Aberto, irá Fechar em 5 Segundos”);
MoveObject(Portao, 1, 2, 2, 1.0, 0.0, 0.0, 0.0);
SetTimer(“ClosePortao”, 5000, false);
}
return 1;
}
return 0;
}

Explicação:
O Comando que fará o Portão Abrir
7.0 = Ratio de Alcance do Comando
1 = Coordenada X do Portão Fechado
2 = Coordenada Y do Portão Fechado
3 = Coordenada Z do Portão Fechado

SendClientMessage = Comando que Manda Mensagem para um Player especifico
playerid = Player que irá Receber a Mensagem, no caso que Executou o Comando
-1 = Cor da Mensagem
“Portão Aberto, irá Fechar em 5 Segundos” = Adivinha?

MoveObject = Comando que fará o Portão se Mover, neste caso, Abrir
Portao, 1, 2, 2, 1.0, 0.0, 0.0, 0.0 = Nome do Portão Definido, X, Y, Z, VELOCIDADE, ROTX, ROTZ, ROTY

ClosePortao = Public que irá ser Executada, no caso, a que irá Fechar o Portão
5000 = Tempo para a Public ser executada, nesse caso, 5000 = 5 Segundos
false = Não Mude =)

return 1; = Retornando a 1
return 0; = Retornando a 0

CODE:

pawn Código:
if (strcmp("/portao", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,7.0, 1, 2, 3))
{
SendClientMessage(playerid, -1, "Portão Aberto, irá Fechar em 5 Segundos");
MoveObject(Portao, 1, 2, 2, 1.0, 0.0, 0.0, 0.0);
SetTimer("ClosePortao", 5000, false);
}
return 1;
}
return 0;
}

Final do GM:

Cita:
public ClosePortao(playerid)
{
MoveObject(Portao, 1, 2, 3, 1.0, 0.0, 0.0, 0.0);
return 1;
}

Explicação:
Coloque a Public Definida no Começo do GM, que nesse caso foi “ClosePortao”
Comando que irá fazer o Portão se Mover, neste caso, Fechando o Portão…
Portao, 1, 2, 3, 1.0, 0.0, 0.0, 0.0 = Nome do Portão Definido, X, Y, Z, VELOCIDADE, ROTX, ROTZ, ROTY
Retornando a 1

CODE:

pawn Código:
public ClosePortao(playerid)
{
MoveObject(Portao, 1, 2, 3, 1.0, 0.0, 0.0, 0.0);
return 1;
}

No public OnPlayerKeyStateChange:

Cita:
if ((newkeys==KEY_JUMP))
{
OnPlayerCommandText(playerid,“/portao”);
}
return 1;
}

Explicação:
KEY_JUMP = Key que Irá executar o que Estiver Abaixo dele ( KEY_JUMP = Freio/Pulo ), lista de KEY’s: http://wiki.sa-mp.com/wiki/GetPlayerKeys
/portao = Comando que será Executado ao Apertar a KEY que foi Selecionada
Retornado a 1

CODE:

pawn Código:
if ((newkeys==KEY_JUMP))
{
OnPlayerCommandText(playerid,"/portao");
}
return 1;
}

CODE Final:

pawn Código:
#include <a_samp>

new Portao;
forward ClosePortao(playerid);

public OnGameModeInit()
{
Portao = CreateObject(970, 1, 2, 3, 0, 0, 0);
return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp("/portao", cmdtext, true, 10) == 0)
{
if(IsPlayerInRangeOfPoint(playerid,7.0, 1, 2, 3))
{
SendClientMessage(playerid, -1, "Portão Aberto, irá Fechar em 5 Segundos");
MoveObject(Portao, 1, 2, 2, 1.0, 0.0, 0.0, 0.0);
SetTimer("ClosePortao", 5000, false);
}
return 1;
}
return 0;
}

public ClosePortao(playerid)
{
MoveObject(Portao, 1, 2, 3, 1.0, 0.0, 0.0, 0.0);
return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys==KEY_JUMP))
{
OnPlayerCommandText(playerid,"/portao");
}
return 1;
}

                                  Creditos: Gustavo_Bonomo

Você vai gostar também...

3 Respostas

  1. Anonymous disse:

    Eu que fiz isso man, pelo menos coloque os créditos, se faz favor. Se não irei reportar o Site…

    Sou o Gustavo_Bonomo

  2. Anonymous disse:

    a tem como colocar o comando ja pronto em rar

  3. Anonymous disse:

    Gustavo Passa Seu Skype?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *