[Tutorial] Criando Portao Automatico 0.3d
#1

A Novas Versгo Samp Tб Ocorrendo Um Bug De Quando Abrir Um Portгo Abre Pelo Lado Errado.. Entгo Venho Lhe Encinar Como Criar Um Portгo Altomatico...
e Percebi que estao fazendo Muitos Topicos pedindo ajuda , nesse caso estar ae um уtimo Tutorial!

OBS : Nao sei se ja tem algum tutorial desse aqui , se ja tiver Algum Moderador pode apagar se for o caso.





No Topo do GM
pawn Код:
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 Код:
new Portao;
    forward ClosePortao(playerid);
Agora na poblic OnGameModeInit
pawn Код:
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


Na Public OnPlayerCommandText
pawn Код:
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


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
Tempo para a Public ser executada, nesse caso, 5000 = 5 Segundos
Nгo Mude =)

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

CODE
pawn Код:
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
pawn Код:
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 Код:
public ClosePortao(playerid)
    {
        MoveObject(Portao, 1, 2, 3, 1.0, 0.0, 0.0, 0.0);
        return 1;
    }

No Public PnPlayerKeyStateChange
pawn Код:
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: WikiSamp
/portao = Comando que serб Executado ao Apertar a KEY que foi Selecionada
Retornado a 1


CODE
pawn Код:
if ((newkeys==KEY_JUMP))
        {
            OnPlayerCommandText(playerid,"/portao");
        }
        return 1;
    }

CODE FINAL

pawn Код:
#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;
    }
Reply


Messages In This Thread
Criando Portao Automatico 0.3d - by Rodrigo_Avenged - 12.01.2012, 05:00
Re: Criando Portao Automatico 0.3d - by 4LiSs0N - 12.01.2012, 09:51
Re: Criando Portao Automatico 0.3d - by BrunoBSF - 12.01.2012, 14:18
Re: Criando Portao Automatico 0.3d - by Rodrigo_Avenged - 12.01.2012, 15:04
Re: Criando Portao Automatico 0.3d - by Bonomo_Returns - 12.01.2012, 16:18
Re: Criando Portao Automatico 0.3d - by Cristhian - 12.01.2012, 16:29
Re: Criando Portao Automatico 0.3d - by Bonomo_Returns - 12.01.2012, 16:30
Re: Criando Portao Automatico 0.3d - by CaioMors - 12.01.2012, 21:31
Re: Criando Portao Automatico 0.3d - by Bonomo_Returns - 12.01.2012, 21:38

Forum Jump:


Users browsing this thread: 7 Guest(s)