Portal SAMP
[Ajuda] dialog - 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] dialog (/showthread.php?tid=4629)



dialog - reset157 - 16/03/2024

bom dia, preciso de uma ajuda... estou fazendo uma gm de facção, e estou criando um sistema de guerra, que quando um player chama uma favela pra guerra, aparece uma dialog para dois frentes da favela que o player chamou. E em uma favela, tem no total de 5 frentes. e eu preciso que a dialog apareça só para 2 frentes da favela que estiver online, e aparecer uma mensagem para o player que convidou dizendo que só tem um frente daquela favela online. Pode me ajudar??


RE: dialog - Mateus Lima - 19/03/2024

(16/03/2024 09:20)reset157 Escreveu: bom dia, preciso de uma ajuda... estou fazendo uma gm de facção, e estou criando um sistema de guerra, que quando um player chama uma favela pra guerra, aparece uma dialog para dois frentes da favela que o player chamou. E em uma favela, tem no total de 5 frentes. e eu preciso que a dialog apareça só para 2 frentes da favela que estiver online, e aparecer uma mensagem para o player que convidou dizendo que só tem um frente daquela favela online. Pode me ajudar??

isso provavelmente deve ser pelo mal uso de variaveis, verifique o codigo responsavel pelo aparecimento do dialog, debug as funções e as variaveis, se ainda sim não conseguir resolver, mande o codigo.


RE: dialog - samuelmatheus0502 - 23/03/2024

amigo posta seu código que eu tento te ajudar


RE: dialog - reset157 - 28/03/2024

(19/03/2024 11:00)Mateus Lima Escreveu:
(16/03/2024 09:20)reset157 Escreveu: bom dia, preciso de uma ajuda... estou fazendo uma gm de facção, e estou criando um sistema de guerra, que quando um player chama uma favela pra guerra, aparece uma dialog para dois frentes da favela que o player chamou. E em uma favela, tem no total de 5 frentes. e eu preciso que a dialog apareça só para 2 frentes da favela que estiver online, e aparecer uma mensagem para o player que convidou dizendo que só tem um frente daquela favela online. Pode me ajudar??

isso provavelmente deve ser pelo mal uso de variaveis, verifique o codigo responsavel pelo aparecimento do dialog, debug as funções e as variaveis, se ainda sim não conseguir resolver, mande o codigo.

CODIGO :
[public Start_Guerra(playerid, id_favela)
{
new id;
new String[128];

if(GuerraInfo[id_favela][gAcontecendo] == true)
return SendErrorMessage(playerid, "Essa favela já está tendo uma guerra!");

if(TotalPlayersFavela(id_favela) < 1)
{
ShowPlayerDialogGuerra(playerid);
return !SendErrorMessage(playerid, "Essa favela não tem 1 players on!");
}

new fid = PlayerInfo[id][pFavela];
GuerraInfo[id_favela][gTipo] = 1;
GuerraInfo[id_favela][gAtaque] = PlayerInfo[playerid][pFavela];
GuerraInfo[id_favela][gDefende] = fid;
GuerraInfo[id_favela][gTempo] = 0;
GuerraInfo[id_favela][gDominada] = false;
GuerraInfo[id_favela][gAcontecendo] = false;
GuerraInfo[id_favela][gTempoCifrao] = 0;
GuerraInfo[id_favela][gCifraoLiberado] = false;
GuerraInfo[id_favela][gPegouCifrao] = false;
SetPVarInt(id, "namewar", playerid);

SendClientMessageToAllEx(COLOR_WHITE, "[Guerra] %s fez uma proposta de guerra para comunidade '%s'.", Nome(playerid), FaccaoInfo[id_favela][fNome]);
format(String, sizeof String, "%s fez uma proposta de guerra conta a sua comunidade\n", Nome(playerid));
ShowPlayerDialog(id, DIALOG_ACTGUERRA, DIALOG_STYLE_MSGBOX, "{FFFFFF}Convite Guerra", String ,"Aceitar", "Recusar");
return 1;
}]

Esse é o código,quando eu seleciono a favela que eu vou propor a guerra a dialog nao aparece para os players dela que tem o cargo de frente,as vezes a dialog aparece porem aparece para os players de outras favela que tem o mesmo cargo...

(23/03/2024 13:59)samuelmatheus0502 Escreveu: amigo posta seu código que eu tento te ajudar

Postei


RE: dialog - samuelmatheus0502 - 28/03/2024

Olhando assim seu código o que da a entender é que o erro está nessa variável "id"

Código:
new id; // voce seta ela aqui
SetPVarInt(id, "namewar", playerid); // aqui voce tenta setar algum valor mas ta meio nada a ver, aqui deve estar o problema
ShowPlayerDialog(id, DIALOG_ACTGUERRA, DIALOG_STYLE_MSGBOX, "{FFFFFF}Convite Guerra", String ,"Aceitar", "Recusar");// e aqui voce mostra pra ele a dialog, porém como em teoria essa variável "id" está sem nenhum valor setado, por isso a dialog nao aparece para ninguem

o que você pode fazer é isso, antes de mostrar a dialog você poderia fazer uma validação desse tipo.

Código:
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(PlayerInfo[i]["coloca sua variavel de dono da favela"] == idfavela)
    {
        format(String, sizeof String, "%s fez uma proposta de guerra conta a sua comunidade\n", Nome(playerid));
        ShowPlayerDialog(i, DIALOG_ACTGUERRA, DIALOG_STYLE_MSGBOX, "{FFFFFF}Convite Guerra", String ,"Aceitar", "Recusar");
    }
}



RE: dialog - reset157 - 29/03/2024

(28/03/2024 23:40)samuelmatheus0502 Escreveu: Olhando assim seu código o que da a entender é que o erro está nessa variável "id"

Código:
new id; // voce seta ela aqui
SetPVarInt(id, "namewar", playerid); // aqui voce tenta setar algum valor mas ta meio nada a ver, aqui deve estar o problema
ShowPlayerDialog(id, DIALOG_ACTGUERRA, DIALOG_STYLE_MSGBOX, "{FFFFFF}Convite Guerra", String ,"Aceitar", "Recusar");// e aqui voce mostra pra ele a dialog, porém como em teoria essa variável "id" está sem nenhum valor setado, por isso a dialog nao aparece para ninguem
aqui nesta parte "SetPVarInt(id, "namewar", playerid); em que vc diz:aqui voce tenta setar algum valor mas ta meio nada a ver, aqui deve estar o problema.
tem no DIALOG_ACTGUERRA:

[Code:]
[case DIALOG_ACTGUERRA:
  {
   if(response)
   {
          new id = GetPVarInt(playerid, "namewar"), favela_id = PlayerInfo[playerid][pFavela];
          if(GuerraInfo[favela_id][gAtaque] != -1)

          {
             GuerraInfo[favela_id][gAcontecendo] = true;
             SendFormattedMessageToAll(COLOR_WHITE, "[GUERRA] '%s' iniciou uma guerra contra a comunidade '%s'!", FaccaoInfo[GuerraInfo[favela_id][gAtaque]][fNome], FaccaoInfo[GuerraInfo[favela_id][gDefende]][fNome]);
             SendFormattedMessage(id, COLOR_LIGHTYELLOW, "[PROPOSTA] %s aceitou a guerra.", Nome(playerid));
             SendClientMessage(playerid, COLOR_ORANGE, "[PROPOSTA] Voce aceitou a guerra.");
       }
   }
  }]