Dynamic CheckPoint [Rep++]
#1

I made this code
PHP код:
public OnPlayerEnterDynamicCP(playeridcheckpointid)
{
    if(
checkpointid == cp1)
    {
    
DestroyDynamicCP(cp1);
    
RemovePlayerMapIcon(playeridi1);
    
i2 SetPlayerMapIcon(playerid12380.4260,-1366.8895,24.00000COLOR_REDMAPICON_GLOBAL);
    
SendClientMessage(playeridCOLOR_ORANGE"Go to the next checkpoint");
    
cp2 CreateDynamicCP(2380.4260,-1366.8895,24.0000,3, -1, -1playerid100.0);
    return 
1;
    }
    if(
checkpointid == cp2)
    {
    
DestroyDynamicCP(cp2);
    
RemovePlayerMapIcon(playeridi2);
    
i3 SetPlayerMapIcon(playerid12808.4329,-1189.1318,25.33880COLOR_REDMAPICON_GLOBAL);
    
cp3 CreateDynamicCP(2808.4329,-1189.1318,25.33803, -1, -1playerid100.0);
    
SendClientMessage(playeridCOLOR_ORANGE"Go to the next checkpoint");
    return 
1;
    }
    if(
checkpointid == cp3)
    {
    
DestroyDynamicCP(cp3);
    
RemovePlayerMapIcon(playeridi3);
    
i4 SetPlayerMapIcon(playerid12487.9919,-1139.2998,38.43840COLOR_REDMAPICON_GLOBAL);
    
cp4 CreateDynamicCP(2487.9919,-1139.2998,38.43843, -1, -1playerid100.0);
    
SendClientMessage(playeridCOLOR_ORANGE"Go to the next checkpoint");
    return 
1;
    }
    if(
checkpointid == cp4)
    {
    
DestroyDynamicCP(cp4);
    
RemovePlayerMapIcon(playeridi4);
    
i5 SetPlayerMapIcon(playerid11270.8938,-1156.5397,23.82810COLOR_REDMAPICON_GLOBAL);
    
cp5 CreateDynamicCP(1270.8938,-1156.5397,23.82813, -1, -1playerid100.0);
    
SendClientMessage(playeridCOLOR_ORANGE"Go to the next checkpoint");
    return 
1;
    }
    if(
checkpointid == cp5)
    {
    
DestroyDynamicCP(cp5);
    
RemovePlayerMapIcon(playeridi5);
    
i6 SetPlayerMapIcon(playerid12099.3909,-1807.4417,13.10190COLOR_REDMAPICON_GLOBAL);
    
cp6 CreateDynamicCP(2099.3909,-1807.4417,13.10193, -1, -1playerid100.0);
    
SendClientMessage(playeridCOLOR_ORANGE"Now, Return back to the shop !");
    return 
1;
    }
    if(
checkpointid == cp6)
    {
    
DestroyDynamicCP(cp6);
    
RemovePlayerMapIcon(playeridi6);
    
SendClientMessage(playeridCOLOR_RED"Good job, Now here is some moeny !");
    
GivePlayerMoney(playerid2000);
    return 
1;
    }
    return 
1;

But when i enter the second checkpoint it didn't destroy and still apear and all the code under it happen 20 time and the code under it doesn't work .
Hope u understand.
Please Help !!
Reply
#2

OnGameModeInit
pawn Код:
cp1 = CreateDynamicCP(/* the coords */,3, -1, -1, playerid, 100.0);
cp2 = CreateDynamicCP(2380.4260,-1366.8895,24.0000,3, -1, -1, playerid, 100.0);
cp3 = CreateDynamicCP(2808.4329,-1189.1318,25.3380, 3, -1, -1, playerid, 100.0);
cp4 = CreateDynamicCP(2487.9919,-1139.2998,38.4384, 3, -1, -1, playerid, 100.0);
cp5 = CreateDynamicCP(1270.8938,-1156.5397,23.8281, 3, -1, -1, playerid, 100.0);
cp6 = CreateDynamicCP(2099.3909,-1807.4417,13.1019, 3, -1, -1, playerid, 100.0);


And Change Your OnplayerEnterDynamicCp To This

pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    if(checkpointid == cp1)
    {
        TogglePlayerDynamicCP(playerid, cp1, 0);
        TogglePlayerDynamicCP(playerid, cp2, 1);
        RemovePlayerMapIcon(playerid, i1);
        i2 = SetPlayerMapIcon(playerid, 1, 2380.4260,-1366.8895,24.0000, 0, COLOR_RED, MAPICON_GLOBAL);
        SendClientMessage(playerid, COLOR_ORANGE, "Go to the next checkpoint");
    }
    else if(checkpointid == cp2)
    {
        TogglePlayerDynamicCP(playerid, cp2, 0);
        TogglePlayerDynamicCP(playerid, cp3, 1);
        RemovePlayerMapIcon(playerid, i2);
        i3 = SetPlayerMapIcon(playerid, 1, 2808.4329,-1189.1318,25.3388, 0, COLOR_RED, MAPICON_GLOBAL);
        SendClientMessage(playerid, COLOR_ORANGE, "Go to the next checkpoint");
    }
    else if(checkpointid == cp3)
    {
        TogglePlayerDynamicCP(playerid, cp3, 0);
        TogglePlayerDynamicCP(playerid, cp4, 1);
        RemovePlayerMapIcon(playerid, i3);
        i4 = SetPlayerMapIcon(playerid, 1, 2487.9919,-1139.2998,38.4384, 0, COLOR_RED, MAPICON_GLOBAL);
        SendClientMessage(playerid, COLOR_ORANGE, "Go to the next checkpoint");
    }
    else if(checkpointid == cp4)
    {
        TogglePlayerDynamicCP(playerid, cp4, 0);
        TogglePlayerDynamicCP(playerid, cp5, 1);
        RemovePlayerMapIcon(playerid, i4);
        i5 = SetPlayerMapIcon(playerid, 1, 1270.8938,-1156.5397,23.8281, 0, COLOR_RED, MAPICON_GLOBAL);
        SendClientMessage(playerid, COLOR_ORANGE, "Go to the next checkpoint");
    }
    else if(checkpointid == cp5)
    {
        TogglePlayerDynamicCP(playerid, cp5, 0);
        TogglePlayerDynamicCP(playerid, cp6, 1);
        RemovePlayerMapIcon(playerid, i5);
        i6 = SetPlayerMapIcon(playerid, 1, 2099.3909,-1807.4417,13.1019, 0, COLOR_RED, MAPICON_GLOBAL);
        SendClientMessage(playerid, COLOR_ORANGE, "Now, Return back to the shop !");
    }
    else if(checkpointid == cp6)
    {
        TogglePlayerDynamicCP(playerid, cp5, 0);
        TogglePlayerDynamicCP(playerid, cp6, 0);
        GivePlayerMoney(playerid, 2000);
        RemovePlayerMapIcon(playerid, i6);
        SendClientMessage(playerid, COLOR_RED, "Good job, Now here is some moeny !");
    }
    return 1;
}
Reply
#3

I can't use playerid in OnGameModint
Reply
#4

Btw, make these CP ids player specific.

Like cp1[playerid], cp2[playerid],...............
Reply
#5

If i use it under onplayerconnect it will show all the time not when the player start the job because it shows by a command
Reply
#6

ohh sorry , My Bad

you can change it like this :

pawn Код:
cp2 = CreateDynamicCP(/* coords */, 2.0);
For Example

pawn Код:
cp5 = CreateDynamicCP(1270.8938,-1156.5397,23.8281, 2.0);
and onplayerconnect

pawn Код:
TogglePlayerDynamicCP(playerid, cp1, 0);
TogglePlayerDynamicCP(playerid, cp2, 0);
TogglePlayerDynamicCP(playerid, cp3, 0);
and the work cmd use this to show the first dynamicCP
pawn Код:
TogglePlayerDynamicCP(playerid, cp1, 1);
Reply
#7

Can you explain some more of the situation?
Reply
#8

Okai i made this command to start work
PHP код:
CMD:pizza(playeridparams[])
{
    if(
PlayerInfo[playerid][pJob] != pizza) return SendClientMessage(playeridCOLOR_RED"You are not a part from pizza company");
    if(!
IsPlayerInVehicle(playeridpc1) && !IsPlayerInVehicle(playeridpc2) && !IsPlayerInVehicle(playeridpc3) && !IsPlayerInVehicle(playeridpc4) && !IsPlayerInVehicle(playeridpc5) && !IsPlayerInVehicle(playeridpc6) && !IsPlayerInVehicle(playeridpc7) && !IsPlayerInVehicle(playeridpc8)) return SendClientMessage(playeridCOLOR_RED"You are not in any pizza's company car !");
    
cp1 CreateDynamicCP(2148.9041,-1433.6654,25.5391,3, -1, -1playerid100.0);
    
i1 SetPlayerMapIcon(playerid12148.9041, -1433.665425.53910COLOR_REDMAPICON_GLOBAL);
    
SendClientMessage(playeridCOLOR_ORANGE"Go to the checkpoint and deliver the pizza");
    return 
1;

And when i enter the first checkpoint i works well but when i enter the second it send for me the message but didn't remove the marker and didn't destroy the checkpoint
Reply
#9

Were you testing this with any of your friend?

Also, make all variables player specific like I said in my previous post.
Reply
#10

Why ?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)