[Ajuda] DynamicCP Bugado.
#1

Estou com um problema no sistema de entregas no meu servidor, quando executo o comando ele aparece o checkpoint para carregar, mas quando entro nele , eles fala como se tivesse carregado e chegado local de descarga. Jб tentei varias formas e ainda nгo obtive sucesso. Agradeзo toda ajuda!

PHP код:
// Topo do GM
enum ALocations_C {
    
ALOC_NAME[24],
    
ALOC_CITY[24],
    
Float:ALOCX,
    
Float:ALOCY,
    
Float:ALOCZ,
    
ALOC_MIN,
    
ALOC_MAX
}
new 
ALocVAR_C[][ALocations_C] = {
    {
"Exportacao""BlueBerry"51.8294 , -284.4816 ,1.2638 135 395},
    {
"Loja de conveniencia""Los Santos"986.7144 ,-920.6162 ,42.7584 250680},
    {
"Burger King""Los Santos"1214.8322, -884.7917 43.5170150490}
new 
CPCarregar[MAX_PLAYERS];
new 
CPDescarregar[MAX_PLAYERS]; 

PHP код:

//Comando /trabalhar
CMD:trabalhar(playerid)
{
    switch(
Player[playerid][pProfissaoID])
    {
        case 
0:
        {
            
SendClientMessage(playeridCOLOR_RED"[ ERRO ] Vocк й um desempregado.");
            
SendClientMessage(playeridCOLOR_RED"[ ERRO ] Vб na prefeitura e escolha um emprego na agкncia de empregos");
        }
        case 
1:
        {
            if(!
IsPlayerinVeiculoTrabalho_C(playerid))
                return 
SendClientMessage(playeridCOLOR_RED,"[ ERRO ] Vocк nгo estб no seu veнculo de trabalho");
            if(!
IsTrailerTrabalhoAttached_C(playerid))
                return 
SendClientMessage(playeridCOLOR_RED,"[ ERRO ] Vocк nгo estб conectado com o seu trailer");
            if(
Player[playerid][pProfissaoID] != 1)
                return 
SendClientMessage(playeridCOLOR_RED"[ ERRO ] Esse veнculo nгo pertece a sua profissгo");
            if(
PlayerWorking[playerid] == true)
                return 
SendClientMessage(playeridCOLOR_RED"[ ERRO ] Vocк jб estб trabalhando");
            
CPCarregar[playerid] = CreateDynamicCP(-172.6250, -210.3235 1.00285.0,  -1, -1playerid STREAMER_CP_SD, -1,  0);
            
SendClientMessage(playeridCOLOR_YELLOW"[ Fleish Berg ] Carregue os produtos na HQ para comeзar a sua entrega.");
            
PlayerWorking[playerid] = true;
        }
    }
    return 
1;
}
alias:trabalhar("t"); 
PHP код:

// OnPlayerEnterDynamicCP
public OnPlayerEnterDynamicCP(playeridcheckpointid)
{
    new 
string[150];
    if(
checkpointid == CPCarregar[playerid])
    {
        
DestroyDynamicCP(CPCarregar[playerid]);
        switch(
Player[playerid][pProfissaoID])
        {
            case 
0SendClientMessage(playeridCOLOR_RED"??????????????????");
            case 
1:
            {
                
DestroyDynamicCP(CPCarregar[playerid]);
                new 
index random(sizeof(ALocVAR_C));
                new 
pay RandomPay(ALocVAR_C[index][ALOC_MIN], ALocVAR_C[index][ALOC_MAX]);
                
format(stringsizeof(string), "[ Fleish Berg ] Leve os produtos a {FFFFFF}%s {FDFF00}localizado em {FFFFFF}%s {FDFF00}para completar a entrega."ALocVAR_C[index][ALOC_NAME], ALocVAR_C[index][ALOC_CITY]);
                
SendClientMessage(playeridCOLOR_YELLOWstring);
                
SetPVarInt(playerid"DinheiroEntrega_C"pay);
                
CPDescarregar[playerid] = CreateDynamicCP(ALocVAR_C[index][ALOCX], ALocVAR_C[index][ALOCY] , ALocVAR_C[index][ALOCZ], 5.0,  -1, -1playerid STREAMER_CP_SD, -1,  0);
            }
        }
    }
    if(
checkpointid == CPDescarregar[playerid])
    {
        switch(
Player[playerid][pProfissaoID])
        {
            case 
0SendClientMessage(playeridCOLOR_RED"??????????????????");
            case 
1:
            {
                new 
pay GetPVarInt(playerid"DinheiroEntrega_C");
                
DestroyDynamicCP(CPDescarregar[playerid]);
                
SendClientMessage(playeridCOLOR_YELLOW"[ Fleish Berg ] Vocк entregou os produtos ao seu destino");
                
format(stringsizeof(string), "[ Fleish Berg ] Vocк ganhou {15FF00}$%d {FDFF00}como pagamento."pay);
                
SendClientMessage(playeridCOLOR_YELLOWstring);
                
PlayerWorking[playerid] = false;
                
GivePlayerMoney(playeridpay);
                
DeletePVar(playerid"DinheiroEntrega_C");
            }
        }
    }
    return 
1;

Realmente ainda nгo entendi por que acontece isso, mas enfim, espero que possam me ajudar ;-

Jб tinha feito um tуpico sobre isso e estou tentando resolver atй agora.
Reply
#2

Saudades respostas.
Reply
#3

Tente:

PHP код:
public OnPlayerEnterDynamicCP(playeridcheckpointid

    new 
string[150]; 
    if(
checkpointid == CPCarregar[playerid]) 
    { 
        
DestroyDynamicCP(CPCarregar[playerid]); 
        switch(
Player[playerid][pProfissaoID]) 
        { 
            case 
0SendClientMessage(playeridCOLOR_RED"??????????????????"); 
            case 
1
            { 
                
DestroyDynamicCP(CPCarregar[playerid]); 
                new 
index random(sizeof(ALocVAR_C)); 
                new 
pay RandomPay(ALocVAR_C[index][ALOC_MIN], ALocVAR_C[index][ALOC_MAX]); 
                
format(stringsizeof(string), "[ Fleish Berg ] Leve os produtos a {FFFFFF}%s {FDFF00}localizado em {FFFFFF}%s {FDFF00}para completar a entrega."ALocVAR_C[index][ALOC_NAME], ALocVAR_C[index][ALOC_CITY]); 
                
SendClientMessage(playeridCOLOR_YELLOWstring); 
                
SetPVarInt(playerid"DinheiroEntrega_C"pay); 
                
CPDescarregar[playerid] = CreateDynamicCP(ALocVAR_C[index][ALOCX], ALocVAR_C[index][ALOCY] , ALocVAR_C[index][ALOCZ], 5.0,  -1, -1playerid STREAMER_CP_SD, -1,  0); 
            } 
        } 
    } 
    else if(
checkpointid == CPDescarregar[playerid]) 
    { 
        switch(
Player[playerid][pProfissaoID]) 
        { 
            case 
0SendClientMessage(playeridCOLOR_RED"??????????????????"); 
            case 
1
            { 
                new 
pay GetPVarInt(playerid"DinheiroEntrega_C"); 
                
DestroyDynamicCP(CPDescarregar[playerid]); 
                
SendClientMessage(playeridCOLOR_YELLOW"[ Fleish Berg ] Vocк entregou os produtos ao seu destino"); 
                
format(stringsizeof(string), "[ Fleish Berg ] Vocк ganhou {15FF00}$%d {FDFF00}como pagamento."pay); 
                
SendClientMessage(playeridCOLOR_YELLOWstring); 
                
PlayerWorking[playerid] = false
                
GivePlayerMoney(playeridpay); 
                
DeletePVar(playerid"DinheiroEntrega_C"); 
            } 
        } 
    } 
    return 
1

Se funcionar o problema estava nos dois ifs que vocк colocou, no primeiro vocк entra no checkpoint e seta o ponto de descarregar e em seguida vocк vai pra o outro if e ele diz que vocк descarregou, colocando um else if no segundo ele nгo vai ser chamado caso o primeiro tenha sido chamado, apenas caso o primeiro nгo tenha sido ele serб checado se ele й a condiзгo vбlida a ser chamada.
Reply
#4

A parte de carregar funcionou , mas nгo estб aparecendo o checkpoint para descarregar ;-
Reply
#5

Faзa um debug e descubra se as variбveis ALocVAR_C[index][ALOCX], ALocVAR_C[index][ALOCY] e ALocVAR_C[index][ALOCZ] estгo retornando a posiзгo correta.
Reply
#6

Ja fiz e esta retornando tudo certo , as posiзхes e o CPDescarregar[playerid] = 1
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)