SA-MP Forums Archive
OnPlayerEnterDynamicCP [+REP] - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: OnPlayerEnterDynamicCP [+REP] (/showthread.php?tid=489355)



OnPlayerEnterDynamicCP [+REP] - EliteApple - 22.01.2014

This simply doesn't work, I've been messing with it, but still doesn't work. I don't know why.

pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    new string[128];
    for(new h = 0; h < sizeof(Houses); c++)
    {
        if(checkpointid == Houses[h][PickupID])
        {
            if(Houses[h][Owned] == 0)
            {
                SendClientMessage(playerid, COLOR_GREEN, "Would you like to buy this?");
                format(string, sizeof(string), "Price: $%d", Houses[h][HousePrice]);
                SendClientMessage(playerid, COLOR_GREEN, string);
                SendClientMessage(playerid, COLOR_WHITE, "Available commands: /enter, /ds(hout)");
                SendClientMessage(playerid, COLOR_WHITE, "/buyhouse");
            }
            if(Houses[h][Rentable] == 1)
            {
                new string2[128];
                format(string, sizeof(string), "[Address: %d] You're standing on %s's porch.",h,Houses[h][Owner]);
                SendClientMessage(playerid, COLOR_GREEN, string);
                format(string2, sizeof(string2), "Available commands: /enter, /ds(hout), /rentroom (Price: $%d)", Houses[h][RentCost]);
                SendClientMessage(playerid, COLOR_WHITE, string2);
            }
                format(string, sizeof(string), "[Address: %d] You're standing on %s's porch.",h,Houses[h][Owner]);
                SendClientMessage(playerid, COLOR_GREEN, string);
                SendClientMessage(playerid, COLOR_WHITE, "Available commands: /enter, /ds(hout)");
            }
        }
    }
    return 1;
}

Any ideas?


Re: OnPlayerEnterDynamicCP [+REP] - Copfan5 - 22.01.2014

Change
pawn Код:
for(new h = 0; h < sizeof(Houses); c++)
To
pawn Код:
for(new h = 0; h < sizeof(Houses); h++)



Re: OnPlayerEnterDynamicCP [+REP] - EliteApple - 22.01.2014

I did, either way it still didn't work. I'm not sure why this is like this, it was working before.


Re: OnPlayerEnterDynamicCP [+REP] - Scenario - 22.01.2014

You're missing an if statement.


Re: OnPlayerEnterDynamicCP [+REP] - ]Rafaellos[ - 22.01.2014

Are you sure you are using Checkpoints? You compare with Pickup here.

pawn Код:
checkpointid == Houses[h][PickupID]



Re: OnPlayerEnterDynamicCP [+REP] - VishvaJeet - 22.01.2014

Try it
Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    new string[128];
    for(new h = 0; h < sizeof(Houses); h++)
    {
        if(checkpointid == Houses[h][PickupID])
        {
            if(Houses[h][Owned] == 0)
            {
                SendClientMessage(playerid, COLOR_GREEN, "Would you like to buy this?");
                format(string, sizeof(string), "Price: $%d", Houses[h][HousePrice]);
                SendClientMessage(playerid, COLOR_GREEN, string);
                SendClientMessage(playerid, COLOR_WHITE, "Available commands: /enter, /ds(hout)");
                SendClientMessage(playerid, COLOR_WHITE, "/buyhouse");
            }
            if(Houses[h][Rentable] == 1)
            {
                new string2[128];
                format(string, sizeof(string), "[Address: %d] You're standing on %s's porch.",h,Houses[h][Owner]);
                SendClientMessage(playerid, COLOR_GREEN, string);
                format(string2, sizeof(string2), "Available commands: /enter, /ds(hout), /rentroom (Price: $%d)", Houses[h][RentCost]);
                SendClientMessage(playerid, COLOR_WHITE, string2);
            } 
            else
            {
               format(string, sizeof(string), "[Address: %d] You're standing on %s's porch.",h,Houses[h][Owner]);
               SendClientMessage(playerid, COLOR_GREEN, string);
               SendClientMessage(playerid, COLOR_WHITE, "Available commands: /enter, /ds(hout)");
            }
        }
    }
    return 1;
}



Re: OnPlayerEnterDynamicCP [+REP] - EliteApple - 22.01.2014

Didn't work either.


And yes, I do have the checkpoint being created,
pawn Код:
Houses[idx][PickupID] = CreateDynamicCP(Houses[idx][EnterX], Houses[idx][EnterY], Houses[idx][EnterZ], 2.5, 0, 0, -1, 1.2);

EDIT: See, I dont even think the checkpoint is being created correctly.

I did this:
pawn Код:
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
    new string[64];
    for(new h = 0; h < sizeof(Houses); h++)
    {
        if(checkpointid == Houses[h][PickupID])
        {
            format(string, sizeof(string), "Checkpoint: %d", checkpointid);
            SendClientMessage(playerid, COLOR_GREEN, string);
        }
    }
    return 1;
}
That didn't even work. But when I walk into the checkpoint it appears, it just doesnt say nothing


Re: OnPlayerEnterDynamicCP [+REP] - laimalgirdas - 11.02.2015

The Checkpoint has to be toggled. I mean, you have to use TogglePlayerDynamicCP(playerid,checkpointid,(true/false)).

Checkpoint has to be created in OnGameModeInit(). After that, you have to make sure, that stream distance is not far enough from player.

In example:
Код:
new carcp, car;
OnGameModeInit()
{
   //array = CreateDynamicCP(x,y,z,size,virtualworld,interior,playerid(-1 for all), strdistance);
     carcp = CreateDynamicCP(-2000,-1000,20,1.0,0,0,-1,5000.0);
     return 1;
}

OnPlayerSpawn(playerid)
{
     // TogglePlayerDynamicCP(playerid,checkpointid,toggle);
     TogglePlayerDynamicCP(playerid,carcp,true);
     return 1;
}

OnPlayerEnterDynamicCP(playerid,checkpointid)
{
     if(checkpointid == carcp)
     {
         //array  CreateVehicle(modelid,x,y,z,rotation,color1,color2,respawn delay);
            car = CreateVehicle(522,-2000,-1000,20,60,6,0,120);
            TogglePlayerDynamicCP(playerid,carcp,false);
     }
     return 1;
}
OnVehicleDeath(vehicleid)
{
     if(vehicleid == car) return DestroyVehicle(car);
     return 1;
}
OnPlayerDeath(playerid)
{
     TogglePlayerDynamicCP(playerid,carcp,false);
     return 1;
}