[Tutorial] Criando Entradas para interiores

21 de dez. de 2012.
Este tutorial vai te mostrar como e mais simples fazer entradas, você terá que botar as coordenada
da entrada e da saída e id do interior vamos a pratica

Pratica:
Vamos definir o máximo de entradas
pawn Code:
#define MAX_ENTRADAS  1 // Altere para quanto voce criar de entradas
Agora vamos criar o enum com as informações.
pawn Code:
enum Entradas {      IdPinckup, // ID pinckup      NomeEntrada[30], // Nome da Entrada      Float:EX, // Coord 1  Entrada      Float:EY, // Coord 2  Entrada      Float:EZ, // Coord 3 Entrada      NomeSaida[30], // Nome sairda      Float:SX, // Coord 4 Saida      Float:SY, // Coord 5 Saida      Float:SZ, // Coord 6 Saida      IDInt // Id Do interior };
Agora logo abaixo você irar adicionar as informações.
pawn Code:
Exemplo : new EntradasInfo[MAX_ENTRADAS][Entradas] = { {1318,"NomeEntrada", 0.0, 0.0, 0.0,"NomeSaida", 0.0, 0.0, 0.0, 3} };
Caso se perca com as informações e assim adicione.
PHP Code:
(ID pinckupNome da EntradaCord1Cord2Cord3NomeSaidaCord4Cord5Cord6Id do Interior}  
Agora iremos criar um loop para criar todos os Pickup das entradas/saídas , tudo que conter no loop vai
ser carregado do enum criado acima.
pawn Code:
new str[30], tito[30];     for(new e=0; e<MAX_ENTRADAS; e++)     {        CreatePickup(EntradasInfo[e][IdPinckup], 2, EntradasInfo[e][EX], EntradasInfo[e][EY], EntradasInfo[e][EZ]);// Criar o Pickup        CreatePickup(EntradasInfo[e][IdPinckup], 2, EntradasInfo[e][SX], EntradasInfo[e][SY], EntradasInfo[e][SZ], EntradasInfo[e][IDInt]);// Criar o Pickup        format(str, sizeof(str), "%s",EntradasInfo[e][NomeEntrada]);        Create3DTextLabel(str , 0x008080FF, EntradasInfo[e][EX], EntradasInfo[e][EY], EntradasInfo[e][EZ], EntradasInfo[e][IdPinckup], 0, 0);        format(tito, sizeof(tito), "%s",EntradasInfo[e][NomeSaida]);        Create3DTextLabel(tito , 0x008080FF, EntradasInfo[e][SX], EntradasInfo[e][SY], EntradasInfo[e][SZ], EntradasInfo[e][IdPinckup], 0, 0);     }
Você só vai precisar criar 2 Pickup. Um dentro e outro fora do interior, igualmente com a Label.

Agora claro para entrar no interior ele tera que apertar F vocês terão que ir na public OnPlayerKeyStateChange. La também usaremos loop para carregar as informações do enum, vamos la.
pawn Code:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {     for(new e=0; e<MAX_ENTRADAS; e++)     {         if ((newkeys == KEY_SECONDARY_ATTACK))         {             if(IsPlayerInRangeOfPoint(playerid, 2.0, EntradasInfo[e][EX], EntradasInfo[e][EY], EntradasInfo[e][EZ]))             {                 SetPlayerInterior(playerid,  EntradasInfo[e][IDInt]); // id do interiror                 SetPlayerPos(playerid, EntradasInfo[e][SX], EntradasInfo[e][SY], EntradasInfo[e][SZ]); // vai pegar coordenadas de dentro do interiror             }             else if(IsPlayerInRangeOfPoint(playerid, 2.0, EntradasInfo[e][SX], EntradasInfo[e][SY], EntradasInfo[e][SZ]))             {                 SetPlayerInterior(playerid,  0);  // interior da city SA                 SetPlayerPos(playerid, EntradasInfo[e][EX], EntradasInfo[e][EY], EntradasInfo[e][EZ]);             }             return 1;         }     }     return 1; }
Espero ter ajudado alguns que tenha dificuldade neste tipo de coisa.

Creditos:
PHP Code:
mau titofez code
     Jonhatan Feitosa tutorial dele me ajudou a pensar ni

0 comentários:

Postar um comentário