Problems With Moneybag System +REP
#1

There Is 2 Problems I Face In The Moneybag System, 1st: Sometimes When 2 Players Drop Multiple Moneybags, The 2nd Player Who Dropped His Moneybag, When He Takes Other Moneybags, It Says That He Has Took His Money Bag Back, Codes Under OnPlayerPickUpPickup:
pawn Код:
if(pickupid == moneybagplayer)
    {
        new pName[MAX_PLAYER_NAME], Message[128];
        if(moneybagowner[playerid] == 1)
        {
           GetPlayerName(playerid,pName,sizeof(pName));
           format(Message, sizeof(Message), "%s (%d) Has Took His MoneyBag Back!", pName, playerid), SendClientMessageToAll(0xFFAE00FF, Message);
           SendClientMessage(playerid,0xFFEE00FF,"You Have Took Your MoneyBag Back.");
           GivePlayerMoney(playerid, moneyam);
           moneybagowner[playerid] = 0;
           DestroyPickup(moneybagplayer);
        }
        else if(moneybagowner[playerid] == 0)
        {
           GetPlayerName(playerid,pName,sizeof(pName));
           format(Message, sizeof(Message), "%s (%d) Has Found The MoneyBag And $%d Dropped By Someone!", pName, playerid, moneyam), SendClientMessageToAll(0xFFAE00FF, Message);
           SendClientMessage(playerid,0xFFEE00FF,"You Have Found The MoneyBag!");
           SetPlayerScore(playerid,GetPlayerScore(playerid) +5);
           GivePlayerMoney(playerid, moneyam);
           DestroyPickup(moneybagplayer);
           moneybagowner[playerid] = 0;
        }
    }
2nd Problem: Sometimes It Says That I Took 0 Money, /moneybag Command To Drop A Money Bag Codes:
pawn Код:
dcmd_moneybag(playerid, params[])
{

    if(sscanf(params, "d", moneyam)) return SendClientMessage(playerid, -1, "Syntax: {FF9900}/moneybag <Amount>"); // SSCANF, if you didn't type a prize the message /setlotto <prize> will show up as a syntax error
    if(moneyam < 10000 || moneyam > 1000000) return SendClientMessage(playerid, -1, "You Can Drop A Moneybag Only From $10000 To $1000000."); // Surpassing the prize limit
    if(GetPlayerMoney(playerid) < moneyam) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You Don't Have That Much!"); // Surpassing the prize limit
    if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: You Can't Drop A MoneyBag While In Vehicle!");

    new Float:x,Float:y,Float:z,pName[MAX_PLAYER_NAME], Message[128];
    GetPlayerPos(playerid, x,y,z);
    moneybagplayer = CreatePickup(1210, 15,x+5, y, z, -1);
    GetPlayerName(playerid,pName,sizeof(pName));
    format(Message, sizeof(Message), "%s (%d) Has Dropped A MoneyBag Somewhere In Los Santos!", pName, playerid);
    SendClientMessageToAll(0xFFAE00FF, Message);
    GivePlayerMoney(playerid, -moneyam);
    moneybagowner[playerid] = 1;
    SendClientMessage(playerid,0xFFEE00FF,"You Have Dropped A MoneyBag,All Players Have Been Notified.");

    return 1;
}
Please Help For REP.
Reply
#2

easy i found the bug first you should make variables for money bag and store the owner in that variable of money bag and compare it
Reply
#3

how can i do that lol?
Reply
#4

use enum for money bag data like its position,cash in it, owner and more if u want
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)