Warning 209 [URGENT HELP]
#1

Okay so I have this warning (it bugs me a lot)

Код:
C:\Users\renny_000\Desktop\Scripting SAMP\gamemodes\renscript.pwn(1632) : warning 209: function "OnDialogResponse" should return a value
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Warning.
And this is the script which causes it.

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
if(dialogid==1)
{
 switch(listitem)
 {
  case 0:
  {
   if (GetPlayerMoney(playerid) < 12500)
   return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
   GivePlayerWeapon(playerid, 24, 0x7FFFFFFF);
   GivePlayerMoney(playerid, -12500);
  }
  case 1:
  {
   if (GetPlayerMoney(playerid) < 15000)
   return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
   GivePlayerWeapon(playerid, 27, 0x7FFFFFFF);
   GivePlayerMoney(playerid, -15000);
  }
  case 2:
  {
   if (GetPlayerMoney(playerid) < 20000)
   return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
   GivePlayerWeapon(playerid, 31, 0x7FFFFFFF);
   GivePlayerMoney(playerid, -20000);
  }
  case 3:
  {
   if (GetPlayerMoney(playerid) < 10000)
   return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
   SetPlayerArmour(playerid, 100);
   GivePlayerMoney(playerid, -10000);
  }
 }
}
Help... Please.
Reply
#2

You got that warning because you used "return" inside your code, but didn't return anything when no match was found (if dialogid would be 2, the function wouldn't return anything).
If you used "return" anywhere in a function, your function must return something in ALL cases.

Just put "return 1;" before the closing bracket (the last one) of the callback.
That will return 1 in all cases and your warning is gone.
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{ // This bracket was missing
    if(dialogid==1)
    {
        switch(listitem)
        {
            case 0:
            {
                if (GetPlayerMoney(playerid) < 12500)
                    return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
                GivePlayerWeapon(playerid, 24, 0x7FFFFFFF);
                GivePlayerMoney(playerid, -12500);
            }
            case 1:
            {
                if (GetPlayerMoney(playerid) < 15000)
                    return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
                GivePlayerWeapon(playerid, 27, 0x7FFFFFFF);
                GivePlayerMoney(playerid, -15000);
            }
            case 2:
            {
                if (GetPlayerMoney(playerid) < 20000)
                    return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
                GivePlayerWeapon(playerid, 31, 0x7FFFFFFF);
                GivePlayerMoney(playerid, -20000);
            }
            case 3:
            {
                if (GetPlayerMoney(playerid) < 10000)
                    return SendClientMessage(playerid, 0x00FFFFAA, "You don't have enough cash to buy this Weapon.");
                SetPlayerArmour(playerid, 100);
                GivePlayerMoney(playerid, -10000);
            }
        }
    }

    return 1; // Add this to your callback
} // This bracket was missing
Also, properly indent your code like above.
It's easier to spot problems later on.

I wonder how your code would even compile without having the opening and closing brackets of your callback.
Reply
#3

Thank, YOU!!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)