[Ajuda] Duvida: O que hб de errado nesse cуdigo?
#1

Boa tarde, bom to refazendo todo o sistema de entradas e saidas do meu servidor, isso foi pq o meu primeiro sistema feito ficou muito bagunзado etc ... porem esse sistema aqui eu fiz todas delegacias, ai eu entro e saiu de boa delas sem conflitos sem bugs, ai fui comeзar fazer a do banco ...

Eu entro no banco e nгo consigo sair, ou to realmente com muito sono e esquecendo de um detalhe besta ou eu realmente to sendo muito burro mais aqui tб o cуdigo para vocкs verem e para alguйm que precisar "Nгo sгo dos melhores jб vou avisando" A PARTE QUE PRECISA SER ARRUMADA ESTARБ SEPARADA

PHP Code:
#include <a_samp>
#include <YSI\y_hooks>
new bool:Entrada[MAX_PLAYERS][10];
hook OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
IsPlayerInRangeOfPoint(playerid1.01555.1055, -1675.642616.1953))   // Delegacia los santos
    
{
        
Entrada[playerid][0] = true;
        
SetPlayerPos(playerid246.7995,65.9249,1003.6406);
        
SetPlayerInterior(playerid,6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de Los Santos central");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.0627.9832,-571.7913,17.4442))  // Delegacia de Dillimore
    
{
        
Entrada[playerid][1] = true;
        
SetPlayerPos(playerid246.7995,65.9249,1003.6406);
        
SetPlayerInterior(playerid,6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de Los Santos Dillimore");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.0,-2162.4524,-2386.0876,30.6250))// Delegacia Angel Pine
    
{
        
Entrada[playerid][2] = true;
        
SetPlayerPos(playerid246.7995,65.9249,1003.6406);
        
SetPlayerInterior(playerid,6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de Los Santos Angel Pine");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.02290.1243,2430.7190,10.8203)) // Delegacia las venturas
    
{
        
Entrada[playerid][3] = true;
        
SetPlayerPos(playerid246.4518,64.6877,1003.6406);
        
SetPlayerInterior(playerid6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de Las Venturas central");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.0, -217.2057,979.1824,19.5006)) // Delegacia Fort Carson
    
{
        
Entrada[playerid][4] = true;
        
SetPlayerPos(playerid246.4518,64.6877,1003.6406);
        
SetPlayerInterior(playerid6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de Las Venturas Fort Carson");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.0, -1389.9792,2637.6277,55.9844)) // Delegacia las Venturas El Quebrados
    
{
        
Entrada[playerid][5] = true;
        
SetPlayerPos(playerid246.4518,64.6877,1003.6406);
        
SetPlayerInterior(playerid6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de Las Venturas El Quebrados");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.0, -1605.4912711.424213.8672)) // Delegacia SF
    
{
        
Entrada[playerid][6] = true;
        
SetPlayerPos(playerid246.4518,64.6877,1003.6406);
        
SetPlayerInterior(playerid6);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na delegacia de San Fierro Downtown");
    }
    else if(
IsPlayerInRangeOfPoint(playerid1.0593.6790,-1250.0275,18.2274)) // Banco Los Santos 
    
{
        
Entrada[playerid][7] = true;
        
SetPlayerPos(playerid2308.1907,-15.6250,26.7496);
        
SetPlayerInterior(playerid0);
        
SendClientMessage(playeridamarelo"| INFO | Vocк entrou na Agкncia bancбria Los Santos ");
    }
// saidas
    
if(IsPlayerInRangeOfPoint(playerid1.0246.871862.32021003.6406))     // Delegacia
    
{
        if(
Entrada[playerid][0] == true)
        {
            
SetPlayerPos(playerid1551.7937,-1675.5795,16.0063);               // Los Santos central
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][0] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Pershing Square");
        }
        if(
Entrada[playerid][1] == true)
        {
            
SetPlayerPos(playerid631.1216,-571.6235,16.3359);                 // Los Santos Dillimore
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][1] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Dillimore");
        }
        if(
Entrada[playerid][2] == true)
        {
            
SetPlayerPos(playerid, -2164.3137,-2388.2537,30.6250);              // Angel Pine
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][2] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Angel Pine");
        }
        if(
Entrada[playerid][3] == true)
        {
            
SetPlayerPos(playerid2289.9453,2427.4331,10.8203);                // Las Venturas
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][3] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas Roca Escalante");
        }
        if(
Entrada[playerid][4] == true)
        {
            
SetPlayerPos(playerid, -214.2173,980.6703,19.3386);                 // Fort Carson
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][4] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas Fort Carson");
        }
        if(
Entrada[playerid][5] == true)
        {
            
SetPlayerPos(playerid, -1391.2225,2636.0962,55.9844);               // El Quebrados 
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][5] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas El Quebrados");
        }
        if(
Entrada[playerid][6] == true)
        {
            
SetPlayerPos(playerid, -1605.8491,715.1511,12.4780);                // El Quebrados
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][6] = false;
              
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em San Fierro Downtown");
        } 
Agora aqui comeзa a saida do banco ...

PHP Code:
else if(IsPlayerInRangeOfPoint(playerid1.02315.5479,0.3543,26.7422))     // Banco
        
{
        if(
Entrada[playerid][7] == true)
        {
            
SetPlayerPos(playerid592.7502,-1247.3318,18.1243);                // Los Santos 
            
SetPlayerInterior(playerid0);
            
Entrada[playerid][7] = false;
            
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Pershing Square");
      } 
Reply
#2

Tente assim:

PHP Code:
if(IsPlayerInRangeOfPoint(playerid1.0246.871862.32021003.6406))     // Delegacia 

    if(
Entrada[playerid][0] == true
    { 
        
SetPlayerPos(playerid1551.7937,-1675.5795,16.0063);               // Los Santos central 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][0] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Pershing Square"); 
    } 
    else if(
Entrada[playerid][1] == true
    { 
        
SetPlayerPos(playerid631.1216,-571.6235,16.3359);                 // Los Santos Dillimore 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][1] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Dillimore"); 
    } 
    else if(
Entrada[playerid][2] == true
    { 
        
SetPlayerPos(playerid, -2164.3137,-2388.2537,30.6250);              // Angel Pine 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][2] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Angel Pine"); 
    } 
    else if(
Entrada[playerid][3] == true
    { 
        
SetPlayerPos(playerid2289.9453,2427.4331,10.8203);                // Las Venturas 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][3] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas Roca Escalante"); 
    } 
    else if(
Entrada[playerid][4] == true
    { 
        
SetPlayerPos(playerid, -214.2173,980.6703,19.3386);                 // Fort Carson 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][4] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas Fort Carson"); 
    } 
    else if(
Entrada[playerid][5] == true
    { 
        
SetPlayerPos(playerid, -1391.2225,2636.0962,55.9844);               // El Quebrados  
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][5] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas El Quebrados"); 
    } 
    else if(
Entrada[playerid][6] == true
    { 
        
SetPlayerPos(playerid, -1605.8491,715.1511,12.4780);                // El Quebrados 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][6] = false
          
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em San Fierro Downtown"); 
    } 
}
else if(
IsPlayerInRangeOfPoint(playerid1.02315.5479,0.3543,26.7422))     // Banco 

    if(
Entrada[playerid][7] == true
    { 
        
SetPlayerPos(playerid592.7502,-1247.3318,18.1243);                // Los Santos  
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][7] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Pershing Square"); 
  } 
Reply
#3

Ola , vou dar uma sugestгo .
Acaba ficando mais limpo no meu ponto de vista , vlw jovem .


Quote:
Originally Posted by Don_Speed
View Post
Deste modo de pensar da para facilitar a vida em varios pontos .

+1 Ex:
PHP Code:
enum iF{
     
iNome[100],
     
Float:eX,
     
Float:eY,
     
Float:eZ,
     
Float:sX,
     
Float:sY,
     
Float:sZ,
     
Interior
}
new 
EntradaInfo[MAX_ENTRADAS][iF] = {
{
"Teste"0.00.00.00.00.00.00},
{
"Teste"0.00.00.00.00.00.00}
};
CallBacK::OnGameModeInit[]
{
    new 
StringS[300];
    for(new 
inf 0infMAX_ENTRADASinf++)
    {
        
format(StringSsizeof StringS"{FFFFFF}[{6495ED}%s{FFFFFF}]\nAperte 'F' para entrar"EntradaInfo[inf][iNome]);
        
Create3DTextLabel(StringS, -1EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ], 15.000);
        
        
CreatePickup(12391EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ],-1);
        
CreatePickup(12391EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ],-1);
        
        
format(StringSsizeof StringS"{FFFFFF}[{6495ED}%s{FFFFFF}]\nAperte 'F' para saida"EntradaInfo[inf][iNome]);
        
Create3DTextLabel(StringS, -1EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ], 15.000);
    }
    return 
true;
}
CallBacK::OnPlayerKeyStateChange[playeridnewkeysoldkeys]
{
    if(
newkeys == KEY_SECONDARY_ATTACK)
    {
        for(new 
inf 0infMAX_ENTRADASinf++)
        {
               if(
IsPlayerInRangeOfPoint(playerid2.0EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ]))
                    return 
SetPlayerPos(playeridEntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ]), SetPlayerInterior(playeridEntradaInfo[inf][Interior]);
               if(
IsPlayerInRangeOfPoint(playerid2.0EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ]))
                    return 
SetPlayerPos(playeridEntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ]), SetPlayerInterior(playeridEntradaInfo[inf][Interior]);
        }
    }
    return 
true;

Reply
#4

Quote:
Originally Posted by ipsLuan
View Post
Tente assim:

PHP Code:
if(IsPlayerInRangeOfPoint(playerid1.0246.871862.32021003.6406))     // Delegacia 

    if(
Entrada[playerid][0] == true
    { 
        
SetPlayerPos(playerid1551.7937,-1675.5795,16.0063);               // Los Santos central 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][0] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Pershing Square"); 
    } 
    else if(
Entrada[playerid][1] == true
    { 
        
SetPlayerPos(playerid631.1216,-571.6235,16.3359);                 // Los Santos Dillimore 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][1] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Dillimore"); 
    } 
    else if(
Entrada[playerid][2] == true
    { 
        
SetPlayerPos(playerid, -2164.3137,-2388.2537,30.6250);              // Angel Pine 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][2] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Angel Pine"); 
    } 
    else if(
Entrada[playerid][3] == true
    { 
        
SetPlayerPos(playerid2289.9453,2427.4331,10.8203);                // Las Venturas 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][3] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas Roca Escalante"); 
    } 
    else if(
Entrada[playerid][4] == true
    { 
        
SetPlayerPos(playerid, -214.2173,980.6703,19.3386);                 // Fort Carson 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][4] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas Fort Carson"); 
    } 
    else if(
Entrada[playerid][5] == true
    { 
        
SetPlayerPos(playerid, -1391.2225,2636.0962,55.9844);               // El Quebrados  
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][5] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Las Venturas El Quebrados"); 
    } 
    else if(
Entrada[playerid][6] == true
    { 
        
SetPlayerPos(playerid, -1605.8491,715.1511,12.4780);                // El Quebrados 
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][6] = false
          
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em San Fierro Downtown"); 
    } 
}
else if(
IsPlayerInRangeOfPoint(playerid1.02315.5479,0.3543,26.7422))     // Banco 

    if(
Entrada[playerid][7] == true
    { 
        
SetPlayerPos(playerid592.7502,-1247.3318,18.1243);                // Los Santos  
        
SetPlayerInterior(playerid0); 
        
Entrada[playerid][7] = false
        
SendClientMessage(playeridamarelo"| INFO | Vocк atualmente estб em Los Santos Pershing Square"); 
  } 
Obrigado funcionou, grato de coraзгo <3 pelo que entendi, antes de chegar na saida do banco, vocк fechou 2 chaves a mais apenas correto?
Reply
#5

Quote:
Originally Posted by Don_Speed
View Post
Ola , vou dar uma sugestгo .
Acaba ficando mais limpo no meu ponto de vista , vlw jovem .
Olha realmente achei o seu mйtodo mais interessante, porem ao meu olhar, eu consegui entendi melhor o que eu tinha feito lб, mas confesso que quero aprender esse seu jeito ai, irei dar uma olhada mas to sу com um pouco de dificuldade pra entender mais to indo adaptando aqui, se poder da uma base com apenas 1 local aleatorio adaptado ou sу a coordenadas dele ja inserida grato


Pelo que entendi, era pra ficar assim nгo era?


PHP Code:
#include <a_samp>
enum iF{
     
iNome[100],
     
Float:eX,
     
Float:eY,
     
Float:eZ,
     
Float:sX,
     
Float:sY,
     
Float:sZ,
     
Interior
}
new 
EntradaInfo[MAX_ENTRADAS][iF] = {
{
"Delegacia"1555.1055, -1675.642616.1953246.7995,65.9249,1003.64066},
{
"Delegacia Dillimore"627.9832,-571.7913,17.4442246.7995,65.9249,1003.64066}
};
public 
OnGameModeInit()
{
    new 
StringS[300];
    for(new 
inf 0infMAX_ENTRADASinf++)
    {
        
format(StringSsizeof StringS"{FFFFFF}[{6495ED}%s{FFFFFF}]\nAperte 'F' para entrar"EntradaInfo[inf][iNome]);
        
Create3DTextLabel(StringS, -1EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ], 15.000);
        
CreatePickup(12391EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ],-1);
        
CreatePickup(12391EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ],-1);
        
format(StringSsizeof StringS"{FFFFFF}[{6495ED}%s{FFFFFF}]\nAperte 'F' para saida"EntradaInfo[inf][iNome]);
        
Create3DTextLabel(StringS, -1EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ], 15.000);
    }
    return 
true;
}
public 
OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    if(
newkeys == KEY_SECONDARY_ATTACK)
    {
        for(new 
inf 0infMAX_ENTRADASinf++)
        {
               if(
IsPlayerInRangeOfPoint(playerid2.0EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ]))
                    return 
SetPlayerPos(playeridEntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ]), SetPlayerInterior(playeridEntradaInfo[inf][Interior]);
               if(
IsPlayerInRangeOfPoint(playerid2.0EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ]))
                    return 
SetPlayerPos(playeridEntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ]), SetPlayerInterior(playeridEntradaInfo[inf][Interior]);
        }
    }
    return 
true;

sу que da esses erros

E:\UnderWorld\gamemodes\funfo.pwn(13) : error 017: undefined symbol "MAX_ENTRADAS"
E:\UnderWorld\gamemodes\funfo.pwn(21) : error 017: undefined symbol "MAX_ENTRADAS"
E:\UnderWorld\gamemodes\funfo.pwn(3 : error 017: undefined symbol "MAX_ENTRADAS"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase


3 Errors.
Reply
#6

Tente assim:

#include <a_samp>
#define MAX_ENTRADAS 2

enum iF{
iNome[100],
Float:eX,
Float:eY,
Float:eZ,
FloatX,
FloatY,
FloatZ,
Interior
}
new EntradaInfo[MAX_ENTRADAS][iF] = {
{"Delegacia", 1555.1055, -1675.6426, 16.1953, 246.7995,65.9249,1003.6406, 6},
{"Delegacia Dillimore", 627.9832,-571.7913,17.4442, 246.7995,65.9249,1003.6406, 6}
};

public OnGameModeInit()
{
new StringS[300];
for(new inf = 0; inf< MAX_ENTRADAS; inf++)
{
format(StringS, sizeof StringS, "{FFFFFF}[{6495ED}%s{FFFFFF}]\nAperte 'F' para entrar", EntradaInfo[inf][iNome]);
Create3DTextLabel(StringS, -1, EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ], 15.0, 0, 0);

CreatePickup(1239, 1, EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ],-1);
CreatePickup(1239, 1, EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ],-1);

format(StringS, sizeof StringS, "{FFFFFF}[{6495ED}%s{FFFFFF}]\nAperte 'F' para saida", EntradaInfo[inf][iNome]);
Create3DTextLabel(StringS, -1, EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ], 15.0, 0, 0);
}
return true;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys == KEY_SECONDARY_ATTACK)
{
for(new inf = 0; inf< MAX_ENTRADAS; inf++)
{
if(IsPlayerInRangeOfPoint(playerid, 2.0, EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ]))
return SetPlayerPos(playerid, EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ]), SetPlayerInterior(playerid, EntradaInfo[inf][Interior]);
if(IsPlayerInRangeOfPoint(playerid, 2.0, EntradaInfo[inf][sX],EntradaInfo[inf][sY],EntradaInfo[inf][sZ]))
return SetPlayerPos(playerid, EntradaInfo[inf][eX],EntradaInfo[inf][eY],EntradaInfo[inf][eZ]), SetPlayerInterior(playerid, EntradaInfo[inf][Interior]);
}
}
return true;
}
Reply
#7

Bom testei esse sistema, funcionou certinho, e й bem mais rapido e facil de se fazer, porem ele da conflito, entra na delegacia de dillimore e sai na delegacia de los santos, fora que nгo consegui colocar o interior 0 para quando o player sai, a desvantagem eh q nisso tambйm nгo da pra colocar mensagem quando ele entra e nem quando ele sai pelo que percebi
Reply
#8

Quote:
Originally Posted by Ryuzaki07
View Post
Bom testei esse sistema, funcionou certinho, e й bem mais rapido e facil de se fazer, porem ele da conflito, entra na delegacia de dillimore e sai na delegacia de los santos, fora que nгo consegui colocar o interior 0 para quando o player sai, a desvantagem eh q nisso tambйm nгo da pra colocar mensagem quando ele entra e nem quando ele sai pelo que percebi
Adiciona uma opзao na enum de id de interior , depois e so fazer a verificaзгo .
Desculpa nгo responder rapido , passo aqui bem pouco haha.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)