OnPlayerDeath...
#1

here is my code
pawn Код:
public OnPlayerDeath(playerid,killerid,reason)
{
    if(GetPlayerMoney(playerid) >= 1 || GetPlayerMoney(playerid) <= 1001)
    {
                 //my code here
        }
        if(GetPlayerMoney(playerid) > 1001 || GetPlayerMoney(playerid) < 4000)
    {
                //my code here
        }
        if(GetPlayerMoney(playerid) > 4000 || GetPlayerMoney(playerid) < 10000)
    {
                //my code here
        }
        else return 1;
        return 1;
}
but when i death my money is 0 but they just have just happen every thing but i have put this GetPlayerMoney(playerid) >= 1...
please help me and sorry for bad english
Reply
#2

Any help please ...
Reply
#3

make a enum for it
Reply
#4

Can you make a example?
Reply
#5

Use && instead of ||. Case statements don't accept relation operators!
Reply
#6

here my code:
pawn Код:
public OnPlayerDeath( playerid, killerid, reason )
{
     new _cash = GetPlayerMoney(playerid);
     switch( _cash )
     {
            case (_cash > -1 && _cash < 1000):
            {
                new string[128];
                GetPlayerName(playerid,pname[playerid],MAX_PLAYER_NAME);
                format(string,sizeof(string),"%s has drop he or she money use /finddeadcash to find it",pname[playerid]);
                SendClientMessageToAll(Green,string);
                dcmoney = GetPlayerMoney(playerid);
                GetPlayerPos(playerid,dcmoneyx,dcmoneyy,dcmoneyz);
                dcmoneypick = CreatePickup(1212,1,dcmoneyx,dcmoneyy,dcmoneyz,0);
                dcPickupInfo[dcmoneypick][dchavefmoney] = 1;
                moneydrop[playerid] = 1;
            }
          case (_cash > 1000 && _cash < 4000):
          {
            new string[128];
            GetPlayerName(playerid,pname[playerid],MAX_PLAYER_NAME);
            format(string,sizeof(string),"%s has drop he or she money use /finddeadicon to find it",pname[playerid]);
            SendClientMessageToAll(Green,string);
            dimoney = GetPlayerMoney(playerid);
            GetPlayerPos(playerid,dimoneyx,dimoneyy,dimoneyz);
            dimoneypick = CreatePickup(1274,1,dimoneyx,dimoneyy,dimoneyz,0);
            diPickupInfo[dimoneypick][dihavefmoney] = 1;
            moneydrop[playerid] = 1;
          }
     }
     return 1;
}
but have these error
pawn Код:
error 008: must be a constant expression; assumed zero
error 008: must be a constant expression; assumed zero
on this line
pawn Код:
case (_cash > -1 && _cash < 1000):
and this
pawn Код:
case (_cash > 1000 && _cash < 4000):
please help
Reply
#7

Your error was simple.

You are using || (OR), so if your cash is grater than 4000 or lower than 10000, a 0 value will pass this condition because 0 is lower than 10000.

You should use && (AND)

So the cash must be greater than 4000 and lower than 10000, a 0 value will not pass because it's lower than 4000.

pawn Код:
public OnPlayerDeath(playerid,killerid,reason)
{
    if(GetPlayerMoney(playerid) >= 1 && GetPlayerMoney(playerid) <= 1001)
    {
                 //my code here
        }
        if(GetPlayerMoney(playerid) > 1001 && GetPlayerMoney(playerid) < 4000)
    {
                //my code here
        }
        if(GetPlayerMoney(playerid) > 4000 && GetPlayerMoney(playerid) < 10000)
    {
                //my code here
        }
        else return 1;
        return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)