[Ajuda] Dъvida todo dia, saъde e alegria.
#1

Bom vamos lб entгo, estava eu lб trabalhando em meu sistema de drogas quando de-repente um menu resolveu dar piti, vamos ao cуdigo:

PHP код:
            case 0//5 kg (R$395,00) [Lvl: 10]
            
{
                      if(
GetPlayerMoney(playerid)>=395 && GetPlayerScore(playerid) >= 10)
                          {
                            
SendClientMessage(playerid0xA135484A"Muito bom, agora adentre em uma das vans que estгo estacionadas e vamos carregб-la.");
                            
GivePlayerMoney(playerid, -395);
                            
GameTextForPlayer(playerid"Dinheiro: -R$395,00"30001);
                            
TogglePlayerControllable(playerid1);
                            
crackmis[playerid] = 10;
                          }
                      if(
GetPlayerMoney(playerid)<=394 && GetPlayerScore(playerid) <= 9)
                          {
                            
SendClientMessage(playerid0xA135484A"Ei amigo o que estб achando? O trбfego de drogas nгo й para um qualquer! Vocк nгo estб apto para realizar esta compra.");
                            
TogglePlayerControllable(playerid1);
                        }
            } 
O menu tem 12 opзхes, tudo estб definido e compilando sem erros, porйm ingame a funзгo nгo й executada.
Sugestхes por favor.
Reply
#2

Debugging via printf.
Reply
#3

Traduz, aka nгo sei como se faz isso.
Reply
#4

Qual й o seu problema expecifique-o
Reply
#5

Quote:

O menu tem 12 opзхes, tudo estб definido e compilando sem erros, porйm ingame a funзгo nгo й executada.
Sugestхes por favor.

Especificado.

#edit

Esse menu deriva de outro menu, quero dizer: a opcao de 1 leva a outro. Os seguintes erros se decorrem: quando seleciono a opcao no menu 1, o menu 2 й aberto. Logo: a segunda opcao do menu 2 й aberta e aceitada automaticamente. ( o que coincide pois a 2 opcao do menu 1 leva ao menu 2). Acho que um return resolveria?
Segundo erro, se a condiзгo nгo for estabelecida, a mensagem nгo й enviada ( segundo if).
Reply
#6

Not! Eu pelo menos nгo entendi qual seria o problema exato mas vou tentar ver se acho algo de errado
Reply
#7

Eu fiz em forma de dialog aqui e funfo de boa esse code que eu editei aqui pra vocк

PHP код:
            if(GetPlayerMoney(playerid) >=395 || GetPlayerScore(playerid) >= 10)
            {
                
SendClientMessage(playerid0xA135484A"Muito bom, agora adentre em uma das vans que estгo estacionadas e vamos carregб-la.");
                
GivePlayerMoney(playerid, -395);
                
GameTextForPlayer(playerid"Dinheiro: -R$395,00"30001);
                
TogglePlayerControllable(playerid1);
                
crackmis[playerid] = 10;
            }
            else if(
GetPlayerMoney(playerid)<= 394 || GetPlayerScore(playerid) <= 9)
            {
                
SendClientMessage(playerid0xA135484A"Ei amigo o que estб achando? O trбfego de drogas nгo й para um qualquer! Vocк nгo estб apto para realizar esta compra.");
                
TogglePlayerControllable(playerid1);
            } 
Reply
#8

PHP код:
              case 0
            {
                        
printf("MONEY > %d | SCORE: > %d" GetPlayerMoney(playerid), GetPlayerScore(playerid));
                        
                         if(
GetPlayerMoney(playerid)>=395 && GetPlayerScore(playerid) >= 10)
                         {
                            
SendClientMessage(playerid0xA135484A"Muito bom, agora adentre em uma das vans que estгo estacionadas e vamos carregб-la.");
                            
GivePlayerMoney(playerid, -395);
                            
GameTextForPlayer(playerid"Dinheiro: -R$395,00"30001);
                            
TogglePlayerControllable(playerid1);
                            
crackmis[playerid] = 10;
                            
printf("CARREGANDO");
                        }
                         if(
GetPlayerMoney(playerid)<=394 && GetPlayerScore(playerid) <= 9)
                        {
                            
SendClientMessage(playerid0xA135484A"Ei amigo o que estб achando? O trбfego de drogas nгo й para um qualquer! Vocк nгo estб apto para realizar esta compra.");
                            
TogglePlayerControllable(playerid1);
                            
printf("NГO APTO");
                        }
            } 
Rode isto e mostre seus resultados.
Reply
#9

Quote:
Originally Posted by hard_dalzot
Посмотреть сообщение
Eu fiz em forma de dialog aqui e funfo de boa esse code que eu editei aqui pra vocк

PHP код:
            if(GetPlayerMoney(playerid) >=395 || GetPlayerScore(playerid) >= 10)
            {
                
SendClientMessage(playerid0xA135484A"Muito bom, agora adentre em uma das vans que estгo estacionadas e vamos carregб-la.");
                
GivePlayerMoney(playerid, -395);
                
GameTextForPlayer(playerid"Dinheiro: -R$395,00"30001);
                
TogglePlayerControllable(playerid1);
                
crackmis[playerid] = 10;
            }
            else if(
GetPlayerMoney(playerid)<= 394 || GetPlayerScore(playerid) <= 9)
            {
                
SendClientMessage(playerid0xA135484A"Ei amigo o que estб achando? O trбfego de drogas nгo й para um qualquer! Vocк nгo estб apto para realizar esta compra.");
                
TogglePlayerControllable(playerid1);
            } 
Desse seu jeito colocando as "||" vocк cria "uma ou outra" condiзгo: eu quero que as duas condiзхes sejam estabelecidas e se uma das duas nгo for preenchida a funзгo nгo se iniciarб. Desse jeito se a pessoa tiver o score 1 e tiver dinheiro a funзгo se iniciarб, ou se ela for score 10 e nгo tiver dinheiro, ficarб vermelho seu saldo.

Quote:
Originally Posted by [Full]Garfield[XDB]
Посмотреть сообщение
PHP код:
              case 0
            {
                        
printf("MONEY > %d | SCORE: > %d" GetPlayerMoney(playerid), GetPlayerScore(playerid));
                        
                         if(
GetPlayerMoney(playerid)>=395 && GetPlayerScore(playerid) >= 10)
                         {
                            
SendClientMessage(playerid0xA135484A"Muito bom, agora adentre em uma das vans que estгo estacionadas e vamos carregб-la.");
                            
GivePlayerMoney(playerid, -395);
                            
GameTextForPlayer(playerid"Dinheiro: -R$395,00"30001);
                            
TogglePlayerControllable(playerid1);
                            
crackmis[playerid] = 10;
                            
printf("CARREGANDO");
                        }
                         if(
GetPlayerMoney(playerid)<=394 && GetPlayerScore(playerid) <= 9)
                        {
                            
SendClientMessage(playerid0xA135484A"Ei amigo o que estб achando? O trбfego de drogas nгo й para um qualquer! Vocк nгo estб apto para realizar esta compra.");
                            
TogglePlayerControllable(playerid1);
                            
printf("NГO APTO");
                        }
            } 
Rode isto e mostre seus resultados.
Ele checou que o meu score era menor que 10, apareceu no log, porйm a funзгo "Nгo Apto", que deveria ter aparecido no log nгo foi executada. Jб, quando os 2 requirimentos sгo preenchidos corretamente a funзгo "Carregando" foi executada com sucesso; O que centraliza o bug na segunda parte que seria quando o player nгo preenche os requirimentos para fazer a compra. Soluзхes?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)