Some bugs.
#1

Hello i have a robbery checkpoint and its kinda bug + i dont know how to fix the bugs lol

pawn Код:
public Rob(playerid)
{
    new string[128];
    countn[playerid]--;
    format(string, sizeof(string), "Attempting robbery~n~~b~%i~n~~r~Stay in the checkpoint", countn[playerid]);
    TextDrawSetString(robbery, string);
    TextDrawShowForPlayer(playerid, robbery);
    if(!IsPlayerInDynamicCP(playerid, burgerrob))
    {
        SendClientMessage(playerid, COLOR_RED, "You are supposed to stay in the checkpoint!");
        KillTimer(dstimer[playerid]);
        TextDrawHideForPlayer(playerid, robbery);
    }
    if(countn[playerid]<=0)
    {
        if(IsPlayerInDynamicCP(playerid, burgerrob))
        {
            RobbedR = true;
            SetTimer("RR", 300000, false);
            GivePlayerMoney(playerid, random(50000));
            KillTimer(dstimer[playerid]);
            TextDrawHideForPlayer(playerid, robbery);
        }
    }
    return 1;
}
When your out the checkpoint it just spams you and doesnt stop until ur standing in the checkpoint again
also if say i was in checkpoint and i got 15k every player on the server would get 15 k
Reply
#2

Where actually do you start the timer and what do you do when player enters a checkpoint he wants to rob?
Reply
#3

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_CROUCH)) {
        if(IsPlayerInRangeOfPoint(playerid, 5.0, 379.0827,-65.4114,1001.5078)) {
            if(RobbedR == false)
            {
                countn[playerid]=12;
                dstimer[playerid]=SetTimerEx("Rob",1000,true,"i",playerid);
            }
            else
            {
                SendClientMessage(playerid, COLOR_RED, "This store has been robbed recently. Please try again");
            }
            return 1;
        }
    }
    return true;
}
thats how you rob it
Reply
#4

pawn Код:
public Rob(playerid)
{
    if(IsPlayerInDynamicCP(playerid, burgerrob))
    {
        countn[playerid]--;
        new string[128];
        format(string, sizeof(string), "Attempting robbery~n~~b~%i~n~~r~Stay in the checkpoint", countn[playerid]);
        TextDrawSetString(robbery, string);
        TextDrawShowForPlayer(playerid, robbery);
    }
    else
    {
        SendClientMessage(playerid, COLOR_RED, "You are supposed to stay in the checkpoint!");
        KillTimer(dstimer[playerid]);
        TextDrawHideForPlayer(playerid, robbery);
    }
    if(countn[playerid] <= 0)
    {
        if(IsPlayerInDynamicCP(playerid, burgerrob))
        {
            RobbedR = true;
            SetTimer("RR", 300000, false);
            GivePlayerMoney(playerid, random(50000));
            KillTimer(dstimer[playerid]);
            TextDrawHideForPlayer(playerid, robbery);
        }
    }
    return 1;
}
You can also check if the player was robbing the checkpoint and when he gets out you can stop the robbery like:

pawn Код:
public OnPlayerLeaveDynamicCP(playerid, checkpointid)
{
    if(checkpointid == burgerrob)
    {
       if(countn[playerid] > 0)
       {
          SendClientMessage(playerid, COLOR_RED, "You are supposed to stay in the checkpoint!");
          KillTimer(dstimer[playerid]);
          TextDrawHideForPlayer(playerid, robbery);
          countn[playerid] = 0;
       }
    }
    return 1;
}
If you'll use the one with OnPlayerLeaveDynamicCP then make it like:

pawn Код:
public Rob(playerid)
{
    if(IsPlayerInDynamicCP(playerid, burgerrob))
    {
        countn[playerid]--;
        new string[128];
        format(string, sizeof(string), "Attempting robbery~n~~b~%i~n~~r~Stay in the checkpoint", countn[playerid]);
        TextDrawSetString(robbery, string);
        TextDrawShowForPlayer(playerid, robbery);
    }
    if(countn[playerid] <= 0)
    {
        if(IsPlayerInDynamicCP(playerid, burgerrob))
        {
            RobbedR = true;
            SetTimer("RR", 300000, false);
            GivePlayerMoney(playerid, random(50000));
            KillTimer(dstimer[playerid]);
            TextDrawHideForPlayer(playerid, robbery);
        }
    }
    return 1;
}
I don't know which of the ways will work, just check em out.
Reply
#5

Thanks it now stops spamming me but now whenever i enter the checkpoint (note: i havent changed anything just got ur code) without pressing C it will give me cash
Reply
#6

I don't see any reason of why it gives you cash. Since timer is not starting when you enter on the checkpoint, or is it?

Show me the OnPlayerEnterDynamicCP or look inside, maybe there's something wrong around you have missed.
Reply
#7

Ill give my onplayer keystate change if its any help

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_CROUCH)) {
        if(IsPlayerInRangeOfPoint(playerid, 5.0, 379.0827,-65.4114,1001.5078)) {
            if(RobbedR == false)
            {
                countn[playerid]=12;
                dstimer[playerid]=SetTimerEx("Rob",1000,true,"i",playerid);
            }
            else
            {
                SendClientMessage(playerid, COLOR_RED, "This store has been robbed recently. Please try again");
            }
            return 1;
        }
    }
    return true;
}
pawn Код:
public Rob(playerid)
{
    if(IsPlayerInDynamicCP(playerid, burgerrob))
    {
        countn[playerid]--;
        new string[128];
        format(string, sizeof(string), "Attempting robbery~n~~b~%i~n~~r~Stay in the checkpoint", countn[playerid]);
        TextDrawSetString(robbery, string);
        TextDrawShowForPlayer(playerid, robbery);
    }
    if(countn[playerid] <= 0)
    {
        if(IsPlayerInDynamicCP(playerid, burgerrob))
        {
            RobbedR = true;
            SetTimer("RR", 300000, false);
            GivePlayerMoney(playerid, random(50000));
            KillTimer(dstimer[playerid]);
            TextDrawHideForPlayer(playerid, robbery);
        }
    }
    return 1;
}
pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    if(checkpointid == burgerrob) {
        SendClientMessage(playerid, COLOR_ORANGE, "Use the 'C' button To rob this store");
        return 1;
    }
    //my other code
    return 1;
}
Reply
#8

Sorry toooo late.
Reply
#9

wha?
Reply
#10

So what actually happens on when you enter to the checkpoint without pressing the 'C' key?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)