[Tutorial] Criando Teleporte - RPG/RP
#1

Olб Galerinha do SA-MP

Bem, o Titulo jб diz Tudo ! Entгo Vamos lб, o Tele serб Realizado com /cmd e a Tecla F. Sгo Apenas 3 Passos =D




Bem, primeiramente Precisamos Definir as cores Se nгo Vai dar Erro quando FOR Compilar, coloque o COD seguinte no Topo de seu GM:
pawn Код:
#define VERMELHO 0xAA3333AA
#define AMARELO 0xFFFF00AA
#define BRANCO 0xFFFFFFAA
#define ROXO 0x9900FFAA
Defini mais de uma Cor caso Vocк queira usar Outras Cores...


Apуs ter Definido as Cores vocк Precisa das Coordenadas de Entrada e Saнda do Local e o Interior de Ambos ( No meu Caso й uma Boate ). Procure a public "OnPlayerCommandText" e coloque o COD a Seguir ( Entrando e Saindo do Local ):
pawn Код:
// Entrando da Boate ( Ou seja Lб o que Vocк Quiser )
if(strcmp(cmdtext, "/entrar", true) == 0) // Aqui vocк Coloca o Comando que Quiser ! ( Para Entrar )
{
   if(IsPlayerInRangeOfPoint(playerid, 4.0, 836.20001220703, -2697, 12.89999961853))// Esse IF faz com que os Comandos Abaixo sejam Exedcutados Apenas se o Player estiver no Local das Coords que vocк Colocou
   {
       SetPlayerInterior(playerid, 17); // Setando o Interior ao Entrar, Procure o ID do Interior do Seu Local !
       SetPlayerPos(playerid, 493.39999389648, -24.89999961853, 1000.700012207); // Troque as Coordenadas daqui pelas Coordenadas do seu Comando (IsPlayerInRangeOfPoint) para Sair
       SendClientMessage(playerid, AMARELO, "Vocк Entrou na Boate !/n-$1000"); // Manda Uma mensagem Para o Player, Outro Exemplo: Seja Bem Vindo a Boate !
       GivePlayerMoney(playerid, -1000); // Esta Funзгo Farб com que o Player Ganhe/Perca Dinheiro ! Edite com quiser !
       SetPlayerVirtualWorld(playerid, 1); // Setar Dimensгo do Player para que possa utilizar 1 Interior em mais De 2 Mundos
   }
   return 1; // Returnando a 1
}

// Saindo da Boate ( Ou seja Lб o que Vocк Quiser )
if(strcmp(cmdtext, "/sair", true) == 0) // Aqui vocк Coloca o Comando que Quiser ! ( Para Sair )
{
   if(IsPlayerInRangeOfPoint(playerid, 2.0, 493.39999389648, -24.89999961853, 1000.700012207)) // Esse IF faz com que os Comandos Abaixo sejam Exedcutados Apenas se o Player estiver no Local das Coords que vocк Colocou
   {
      SetPlayerInterior(playerid, 0); // Setando o Interior ao Sair, na Maioria das Vezes Serб 0 !
      SetPlayerPos(playerid, 836.20001220703, -2697, 12.89999961853); // Troque as Coordenadas daqui pelas Coordenadas do seu Comando (IsPlayerInRangeOfPoint) para Entrar
      SendClientMessage(playerid, AMARELO, "TCHAU"); // Manda Uma mensagem Para o Player, Outro Exemplo: Volte Sempre a Boate !
        SetPlayerVirtualWorld(playerid, 0); // Setar Dimensгo do Player para 0 ( Padrгo )
   }
   return 1; // Returnando a 1
}
Intendendo Melhor: Por Increнvel que pareзa vocк precisa Apenas de 2 Coordenadas, Dentro e Fora, veja:
836.20001220703, -2697, 12.89999961853 - Coordenadas de FORA
493.39999389648, -24.89999961853, 1000.700012207 Coordenadas de DENTRO

As Coordenadas de FORA serгo usadas para "SetPlayerPos" para o comando /sair e "IsPlayerInRangeOfPoint" do Comando /entrar =D
As Coordenadas de DENTRO serгo usadas para "SetPlayerPos" para o comando /entrar e "IsPlayerInRangeOfPoint" do Comando /sair =D
Entenderam ?



Agora vamos colocar para Entrar/Sair com a Tecla "F" muito usado em Servidores de RP/RPG, procure pela public "OnPlayerKeyStateChange" e Adicione o Seguinte COD:
pawn Код:
if ((newkeys==KEY_SECONDARY_ATTACK)) // Key ( F / Enter ) a Pй
    {
        OnPlayerCommandText(playerid,"/entrar"); // Ao Apertar "F" Funcionarб o Comando que Calocou Ali
        OnPlayerCommandText(playerid,"/sair"); // Ao Apertar "F" Funcionarб o Comando que Calocou Ali
        // Outras Funзхes com a Tecla F/ENTER coloque Aqui
    }
    return 1;
    }
}
Pronto, seu Tele esta Pronto!!!





CRЙDITOS: 100% by Gustavo_Bonomo
Reply
#2

Bem explicado, porйm alйm de simples, nгo tem muita utilidade...

O nome do tуpico deveria ser entrar e sair de interiores... Mais fбcil dos novatos acharem

Existem maneiras mais otimizadas de fazer isso
Reply
#3

Isto й um Codigo Util .
Poderia te ro Postado em Codigos Uteis
Reply
#4

Quote:
Originally Posted by GustavoBonomo
Посмотреть сообщение
pawn Код:
// Entrando da Boate ( Ou seja Lб o que Vocк Quiser )
if(strcmp(cmdtext, "/entrar", true) == 0) // Aqui vocк Coloca o Comando que Quiser ! ( Para Entrar )
{
   if(IsPlayerInRangeOfPoint(playerid, 4.0, 836.20001220703, -2697, 12.89999961853))// Esse IF faz com que os Comandos Abaixo sejam Exedcutados Apenas se o Player estiver no Local das Coords que vocк Colocou
   {
       SetPlayerInterior(playerid, 17); // Setando o Interior ao Sair, na Maioria das Vezes Serб 0 !
       SetPlayerPos(playerid, 493.39999389648, -24.89999961853, 1000.700012207); // Troque as Coordenadas daqui pelas Coordenadas do seu Comando (IsPlayerInRangeOfPoint) para Sair
       SendClientMessage(playerid, COLOR_RED, "BOATE"); // Manda Uma mensagem Para o Player, Outro Exemplo: Seja Bem Vindo a Boate !
        GivePlayerMoney(playerid, -1000); // Esta Funзгo Farб com que o Player Ganhe/Perca Dinheiro ! Edite com quiser !
   }
   return 1; // Returnando a 1
}

// Saindo da Boate ( Ou seja Lб o que Vocк Quiser )
if(strcmp(cmdtext, "/sair", true) == 0) // Aqui vocк Coloca o Comando que Quiser ! ( Para Sair )
{
   if(IsPlayerInRangeOfPoint(playerid, 2.0, 493.39999389648, -24.89999961853, 1000.700012207)) // Esse IF faz com que os Comandos Abaixo sejam Exedcutados Apenas se o Player estiver no Local das Coords que vocк Colocou
   {
      SetPlayerInterior(playerid, 0); // Setando o Interior ao Sair, na Maioria das Vezes Serб 0 !
      SetPlayerPos(playerid, 836.20001220703, -2697, 12.89999961853); // Troque as Coordenadas daqui pelas Coordenadas do seu Comando (IsPlayerInRangeOfPoint) para Entrar
      SendClientMessage(playerid, COLOR_RED, "TCHAU"); // Manda Uma mensagem Para o Player, Outro Exemplo: Volte Sempre a Boate !
   }
   return 1; // Returnando a 1
}
Vai dar warning pois a "COLOR_RED" nгo estб definida.


Bom tutorial, menos erros dessa vez.
Reply
#5

TOPICO PRINCIPAL EDITADO 14/12/2011 14:22

--------------------------------------------------------------------------------------------------------------

Quote:

Bem explicado, porйm alйm de simples, nгo tem muita utilidade...

O nome do tуpico deveria ser entrar e sair de interiores... Mais fбcil dos novatos acharem

Existem maneiras mais otimizadas de fazer isso

Sim, a maneira muito mais Simples, mas queria que tambйm Fosse possнvel utilizar /cmd pois Muitas vezes, ao Apertar F vocк Entra e ao Mesmo tempo Sai do Local ...


Quote:

Isto й um Codigo Util .
Poderia te ro Postado em Codigos Uteis

Vocк pode Achar Cуdigo Ъtil, mas isso pode Realmente ajudar muitas Pessoas que estгo comeзando agora...



@EDIT


Quote:
Originally Posted by Los
Посмотреть сообщение
Vai dar warning pois a "COLOR_RED" nгo estб definida.


Bom tutorial, menos erros dessa vez.
Eu jб Sabia, mas tive que sair, agora jб Estou de volta e Jб Consertei =D
Reply
#6

mais facim vc criar um tuto encinando a criar um tele q possa entrar em locais diferentes sem bugar com os mesmos interiores
Reply
#7

TOPICO PRINCIPAL EDITADO 14/12/2011 - 14:49

--------------------------------------------------------------------------------------------------------------------

Quote:
Originally Posted by BrunoBSF
Посмотреть сообщение
mais facim vc criar um tuto encinando a criar um tele q possa entrar em locais diferentes sem bugar com os mesmos interiores
Nгo Man, й um Tele para Servidores RP/RPG, nгo Servidores de Mata-Mata com /drop ETC... Leia o Tнtulo...
Reply
#8

TOPICO PRINCIPAL EDITADO 14/12/2011 - 18:13
Reply
#9

Cara, nao precisa da esses doublepost, otimo tutorial
Reply
#10

Quote:
Originally Posted by euclaro
Посмотреть сообщение
Cara, nao precisa da esses doublepost, otimo tutorial
Mals ae, nem vi o Double, e valew, se Gostou +REP
Reply


Forum Jump:


Users browsing this thread: 8 Guest(s)