OnDialogResponse (Dialog_Style_Input) need help! T_T
#1

well... on dialog response 1 - 9 its okay
when the 10 - 14 its going error

the erorrs
Код:
D:\GTA SERVER\GTA Server\filterscripts\asdasd.pwn(5366) : error 027: invalid character constant
D:\GTA SERVER\GTA Server\filterscripts\asdasd.pwn(5366) : error 027: invalid character constant
D:\GTA SERVER\GTA Server\filterscripts\asdasd.pwn(5366 -- 5367) : error 029: invalid expression, assumed zero
D:\GTA SERVER\GTA Server\filterscripts\asdasd.pwn(5366 -- 5367) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase

4 Errors.
the code... on (5366 -- 5416)
Код:
        else if(inputtext[0] == '10')
        {
        	if(GetPlayerMoney(playerid) < 9000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
         	else
          	{
           		GivePlayerMoney(playerid, -9000);
             	GivePlayerWeapon(playerid, 33, 800);
              	SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '11')
        {
        	if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
         	else
          	{
           		GivePlayerMoney(playerid, -10000);
             	GivePlayerWeapon(playerid, 34, 800);
              	SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '12')
        {
        	if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
         	else
          	{
           		GivePlayerMoney(playerid, -6500);
             	GivePlayerWeapon(playerid, 30, 1000);
              	SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '13')
        {
        	if(GetPlayerMoney(playerid) < 7000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
         	else
          	{
           		GivePlayerMoney(playerid, -7000);
             	GivePlayerWeapon(playerid, 31, 1000);
              	SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '14')
        {
        	if(GetPlayerMoney(playerid) < 300) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
         	else
          	{
           		GivePlayerMoney(playerid, -300);
             	SetPlayerHealth(playerid, 100);
             	SetPlayerArmour(playerid, 100);
              	SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
what the hell happen??
are Dialog_Style_Input cannot response 2 numbers or more ??
help pls
Reply
#2

What about this?
pawn Код:
else if(inputtext == "10")
Reply
#3

@varthshenon
Doesn't work -_-"
Reply
#4

pawn Код:
else if(strval(inputtext) == 10)
Reply
#5

thats can compiled but.. get some bugs... -_-
when i buy id 10 i get weapon id 1 :3
Reply
#6

I think it will solve your problem .


Just one symbol can be put inside the ' '.


Example:


pawn Код:
'A' //It will work
'1'//It will work
'10'//It won't work
'AB'//It won't work

So, just separate the numbers (like 10) in parts :


pawn Код:
else if(inputtext[0] == '1' && inputtext[1] == '0')
        {
            if(GetPlayerMoney(playerid) < 9000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -9000);
                GivePlayerWeapon(playerid, 33, 800);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '1' && inputtext[1] == '1')
        {
            if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -10000);
                GivePlayerWeapon(playerid, 34, 800);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '1' && inputtext[1] == '2')
        {
            if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -6500);
                GivePlayerWeapon(playerid, 30, 1000);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '1' && inputtext[1] == '3')
        {
            if(GetPlayerMoney(playerid) < 7000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -7000);
                GivePlayerWeapon(playerid, 31, 1000);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        else if(inputtext[0] == '1' && inputtext[1] == '4')
        {
            if(GetPlayerMoney(playerid) < 300) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -300);
                SetPlayerHealth(playerid, 100);
                SetPlayerArmour(playerid, 100);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }


I hope that i have helped .
Reply
#7

Did you convert all of your inputtext to integer? (strval)
Btw it's easier if you make dialog list for that.
Reply
#8

You could use strcmp..

if(!strcmp(inputtext, "10"))

Try convert everything to this.
Reply
#9

Quote:
Originally Posted by Lorenc_
Посмотреть сообщение
You could use strcmp..

if(!strcmp(inputtext, "10"))

Try convert everything to this.
still error
Reply
#10

pawn Код:
switch(strval(inputtext))
{
        //Some more here, for example: case 9:
        case 10:
        {
            if(GetPlayerMoney(playerid) < 9000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -9000);
                GivePlayerWeapon(playerid, 33, 800);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        case 11:
        {
            if(GetPlayerMoney(playerid) < 10000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -10000);
                GivePlayerWeapon(playerid, 34, 800);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        case 12:
        {
            if(GetPlayerMoney(playerid) < 6500) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -6500);
                GivePlayerWeapon(playerid, 30, 1000);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        case 13:
        {
            if(GetPlayerMoney(playerid) < 7000) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -7000);
                GivePlayerWeapon(playerid, 31, 1000);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
        case 14:
        {
            if(GetPlayerMoney(playerid) < 300) return SendClientMessage(playerid, 0xFFFFFFFF, NEC);
            else
            {
                GivePlayerMoney(playerid, -300);
                SetPlayerHealth(playerid, 100);
                SetPlayerArmour(playerid, 100);
                SendClientMessage(playerid, 0xFFFFFFFF, "Buying weapon success.");
            }
        }
}
Actually #5 and #7 are correct. You get wrong weapon is because the parameters in your GivePlayerWeapon are wrong.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)