[Ajuda] Problema com DIALOGS
#1

Tф com um puta problemгo com uma dialog de donater aqui. O problema й que ela simplesmente nгo afere em NADA. Segue o cуdigo:

Primeiro, no topo do gm:
Код:
#define DIALOG_DONATER  1325
(por qual motivo vocк definiu a porra de uma dialog com um nъmero?; eu peguei um gamemode jб feito e existente e tф fazendo umas alteraзхes radicais nele; se eu nгo definisse essa bosta dessa dialog o compilador do sublime text nгo ia compilar).

Depois, a dialog:
Код:
Dialog:DIALOG_DONATER(playerid, response, listitem, inputtext[])
{
	if(!response)
	{
		return SendErrorMessage(playerid, "Vocк fechou o menu donater.");
	}
	else
	{
		switch(listitem){
			case 0:
			{
				if(PlayerInfo[playerid][pVipPoints] < 5)
					return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");

				PlayerInfo[playerid][pVipPoints] -= 5;
				SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
				PlayerInfo[playerid][pChangeNames]++;
				format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
				SendAdminMessage(COLOR_YELLOW, stringGlobal);
			}
			default: return SendErrorMessage(playerid, "Vai tomar no cu.");
		}
	}

	return 1;
}
Fiz SУ o case 0 e fiz o default pra testar, mas nem essa merda tб indo. Jб tentei colocar na OnDialogResponse mas mesmo assim nгo vai. Segue o comando:

Код:
CMD:menudonater(playerid, params[]){
	
	Dialog_Show(playerid, DIALOG_DONATER, DIALOG_STYLE_TABLIST_HEADERS, stringGlobal, 
                "Benefнcio\tPreзo\tDuraзгo (em dias)\n \
		Mudanзa de nome\t5 VIP POINTS\t--\n \
		Mudanзa de nъmero de telefone\t5 VIP POINTS\t--\n \
		+50 de score\t10 VIP POINTS\t--\n \
		+20 pontos de upgrade\t5 VIP POINTS\t--\n \
		3x payday\t10 VIP POINTS\t30 dias\n \
		Pacote benefнcios 1\t10 VIP POINTS\t30 dias\n \
		Pacote benefнcios 2\t20 VIP POINTS\t30 dias\n \
		Pacote benefнcios 3\t30 VIP POINTS\t30 dias \
		", "Selecionar", "Fechar");
	return 1;
}
O dialog abre normal, aparece tudo normal, sу que a merda й que quando eu clico em qualquer opзгo que seja ou clique esc (que no caso seria o !response), nгo me retorna bosta nenhuma, NADA, simplesmente a dialog existe mas ela nгo responde aos meus cases. O que poderia ser? Jб tentei com ShowPlayerDialog e й a mesma merda.
Reply
#2

Que revolta й essa, jovem?

Vocк jб tentou trocar o ID? Аs vezes й algum conflito de ID, aн rola essas paradas mesmo.


Por via das dъvidas, coloca aqui o cуdigo usando ShowPlayerDialog e OnDialogResponse
Reply
#3

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Que revolta й essa, jovem?

Vocк jб tentou trocar o ID? Аs vezes й algum conflito de ID, aн rola essas paradas mesmo.


Por via das dъvidas, coloca aqui o cуdigo usando ShowPlayerDialog e OnDialogResponse
Utilizei da forma que vocк falou, e tentei vбrios cases iguais atй ver se vai algum certo. Na OnDialogResponse agora ao menos quando clico em alguma opзгo aparece o "Vai tomar no cu", que й o default.

Код:
		case DIALOG_DONATER:
			
			if(!response)
			{
			return SendErrorMessage(playerid, "Vocк fechou o menu donater.");
			}
			else
			{
				switch(PlayerInfo[playerid][pDonater]){
					case 0:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 1:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 2:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 3:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 4:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 5:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 6:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 7:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}

					default: return SendErrorMessage(playerid, "Vai tomar no cu.");
				}
O default e o !response estгo funcionando corretamente.

Ah, e se achar que й porque nгo coloquei a chave "{" no inнcio do case nгo й. Corrigi isso e continua o mesmo que passei.

EDIT1: Quando clico em qualquer opзгo dб default: return SendErrorMessage(playerid, "Vai tomar no cu.");
Reply
#4

Quote:
Originally Posted by Diggie
Посмотреть сообщение
Utilizei da forma que vocк falou, e tentei vбrios cases iguais atй ver se vai algum certo. Na OnDialogResponse agora ao menos quando clico em alguma opзгo aparece o "Vai tomar no cu", que й o default.

Код:
		case DIALOG_DONATER:
			
			if(!response)
			{
			return SendErrorMessage(playerid, "Vocк fechou o menu donater.");
			}
			else
			{
				switch(PlayerInfo[playerid][pDonater]){
					case 0:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 1:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 2:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 3:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 4:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 5:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 6:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}
					case 7:
					{	
						if(PlayerInfo[playerid][pVipPoints] < 5){
							return SendErrorMessage(playerid, "Vocк nгo tem vip points suficientes para comprar este benefнcio.");
						}

						PlayerInfo[playerid][pVipPoints] -= 5;
						SendClientMessage(playerid, COLOR_LIGHTGREEN, "Vocк adquiriu 1x mudanзa de nome! Utilize /changename para usufruir do benefнcio.");
						PlayerInfo[playerid][pChangeNames]++;
						format(stringGlobal, sizeof(stringGlobal), "DonatorSys: %s adquiriu uma mudanзa de nome.", PlayerName(playerid, 0));
						SendAdminMessage(COLOR_YELLOW, stringGlobal);
					}

					default: return SendErrorMessage(playerid, "Vai tomar no cu.");
				}
O default e o !response estгo funcionando corretamente.

Ah, e se achar que й porque nгo coloquei a chave "{" no inнcio do case nгo й. Corrigi isso e continua o mesmo que passei.

EDIT1: Quando clico em qualquer opзгo dб default: return SendErrorMessage(playerid, "Vai tomar no cu.");
Vocк estб usando..
PHP код:
switch(PlayerInfo[playerid][pDonater]) 
Para verificar em qual opзгo da lista ele estб clicando, deve-se utilizar:

PHP код:
switch(listitem
Reply
#5

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Vocк estб usando..
PHP код:
switch(PlayerInfo[playerid][pDonater]) 
Para verificar em qual opзгo da lista ele estб clicando, deve-se utilizar:

PHP код:
switch(listitem
Eu defini listitem como PlayerInfo[playerid][pDonater].
Reply
#6

Quote:
Originally Posted by Diggie
Посмотреть сообщение
Eu defini listitem como PlayerInfo[playerid][pDonater].
Qual o sentido?! listitem й listitem, gnt
Reply
#7

Poderia simplesmente fazer um debug!
Reply
#8

Fiz a feiзгo que o mano ali falou, +rep, deu certinho agora.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)