Portal SAMP
[Ajuda] switch case e if - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] switch case e if (/showthread.php?tid=2275)



switch case e if - CoelhaO_LokaO - 07/04/2022

DUVIDA SOBRE ESTA LINHA NÃO PUXA O VALOR
Código PHP:
case 1nomecorp ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME]; //ORGINFO[1][ORG_NOME] 

DUVIDA PORQUE no /RG2 nomecorp não esta sendo recebendo valor de ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME] CASE 1?
case 1: nomecorp = ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME];
JA NO /RG TA OK
SÓ QUE SE EU COLOCAR APENAS
format(aString, sizeof(aString), "%s %s",NomeJogador(playerid), ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME]);
ELE JÀ MOSTRA O VALOR DIRETO POREM SE FOR JOGADOR[playerid][JOGADOR_ORG] == 0 que seria ORGINFO[0][ORG_NOME] NÃO MOSTRA NADA pois não recebe valor

Código:
CMD:rg(playerid){
    new aString[1600];
    new nomecorp[50];
    switch(JOGADOR[playerid][JOGADOR_ORG])
    {
        case 1: nomecorp = "Polícia Militar";
        default: nomecorp = "Nada";
    }
    format(aString, sizeof(aString), "%s %s %d %s",NomeJogador(playerid),nomecorp,JOGADOR[playerid][JOGADOR_ORG],ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME]);
    return 1;
}

CMD:rg2(playerid){
    new aString[1600];
    new nomecorp[24];
    switch(JOGADOR[playerid][JOGADOR_ORG])
    {
        case 1: nomecorp = ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME]; //ORGINFO[1][ORG_NOME]
        default: nomecorp = "Nada";
    }
    format(aString, sizeof(aString), "%s %s %d %s",NomeJogador(playerid),nomecorp,JOGADOR[playerid][JOGADOR_ORG],ORGINFO[JOGADOR[playerid][JOGADOR_ORG]][ORG_NOME]);
    SendClientMessage(playerid, 0xF781BEFF, aString);
    return 1;
}

[Imagem: CJ9HshE.png]


RE: switch case e if - Morfeu - 07/04/2022

n sei mais tenho um comandoi aki de /rg testa la
CMD:rg(playerid)
{
new string[500];
format(string, 500, "{0000FF}Nome: %s\n\n{00FF00}Dinheiro: %d", pName(playerid), GetPlayerMoney(playerid));
ShowPlayerDialog(playerid, 090, DIALOG_STYLE_MSGBOX, "[BCR] RG", string, "OK", "FECHAR");
return 1;
}


RE: switch case e if - CoelhaO_LokaO - 07/04/2022

(07/04/2022 11:53)Morfeu Escreveu: n sei mais tenho um comandoi aki de /rg testa la
CMD:rg(playerid)
{
new string[500];
format(string, 500, "{0000FF}Nome: %s\n\n{00FF00}Dinheiro: %d", pName(playerid), GetPlayerMoney(playerid));
ShowPlayerDialog(playerid, 090, DIALOG_STYLE_MSGBOX, "[BCR] RG", string, "OK", "FECHAR");
return 1;
}

Obrigado pela tentativa de ajudar mas não tem nada a ver com este código, aposto você nem leu o tópico amigo leia antes de responder



RE: switch case e if - ipsLuan - 07/04/2022

O ideal é fazer uma callback com todas as orgs e puxar o nome diretamente sem precisar fazer esse loop no comando.

Exemplo:
Código PHP:
static stock GetOrgName(orgid)
{
    new 
name[35];
    switch(
orgid)
    {
        case 
1:name "PMESP";
        case 
2:name "Policia Federal";
        case 
3:name "Policia Civil";
        case 
4:name "Exercito";
        case 
6:name "FORCA AEREA";
        case 
7:name "ROTAM";
        case 
8:name "PMERJ";
        case 
9:name "FBI";
        case 
17:name "BOPE";
        case 
18:name "MARINHA DO BRASIL";
        case 
19:name "TROPA DE CHOQUE";
        case 
20:name "CIA";
        case 
21:name "GATE";
        case 
22:name "GAECO";
        case 
23:name "PETO";
        case 
24:name "FORCA TATICA";
        case 
25:name "CAATINGA";
        case 
5:name "SAMU";
        case 
11:name "GDAT";
        case 
12:name "TURQUIA";
        case 
13:name "RUSSIA";
        case 
14:name "JAGATA";
        case 
15:name "BELGICA";
        case 
40:name "ALQEADA";
        case 
41:name "ESCOCIA";
        case 
42:name "GROTA";
        case 
43:name "BALLAS";
        case 
45:name "ELEMENTS";
        case 
50:name "Mafia";
        case 
51:name "FRANCA";
        case 
52:name "KOREA";
        case 
53:name "GROOVE";
    }
    return 
name;


E apenas puxar a função no comando:

Código PHP:
GetOrgName(JOGADOR[playerid][JOGADOR_ORG]); 

Esse é um dos bugs que já vi do SA-MP em uma postagem na board inglesa... o SA-MP as vezes buga ao retornar valores de String em uma switch.
Não me lembro em qual contexto eu vi, mas recordo que já li algo parecido sobre isso.
Talvez com o samp-fixes você consiga tal objetivo.


RE: switch case e if - xbruno1000x - 07/04/2022

Peço-lhe encarecidamente que atente-se a área da postagem. Você postou na área mobile um problema sem correlação alguma com a mesma.

Sobre o problema:
Creio que a solução do Luan seja a mais adequada e resolva seu problema.


RE: switch case e if - CoelhaO_LokaO - 07/04/2022

ATÉ DARIA CERTO MAS MEU SERVIDOR É TODO EM MYSQLSTOCK IMPOSSIBILITARIA DE CARREGAR OS NOMES NA VARIÁVEL AUTOMATICAMENTE POIS O VALOR SERIA FIXO DO MESMO JEITO.
ACHEI UMA SOLUÇÃO MELHOR
[Imagem: jDOhvIt.png]

RESULTADO:
[Imagem: CSbW9w0.png]