problem with checkpoint -
dominik523 - 02.05.2013
Hey! I created job drug smuggler, and added some checkpoints, but I have one little problem. When I enter checkpoint I created, nothing happens, even checkpoint won't disappear, and that is odd I think :/
here's my code:
Код:
// Comand:
CMD:getweed(playerid,params[])
{
if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(CP[playerid] != 0) return SendClientMessage(playerid, COLOR_WHITE, "You already have a task, use /killcheckpoint first.");
if(PlayerInfo[playerid][pDPackages]) return SendClientMessage(playerid, COLOR_GREY, "You already have packages.");
if(!IsPlayerInRangeOfPoint(playerid, 3, -2839.5,-513.5,7.6)) return SendClientMessage(playerid, COLOR_GREY, "You are not near the drug store.");
SendClientMessage(playerid, COLOR_LIGHTBLUE, "Go to the weed pickup to get packages.");
CP[playerid] = 5001;
if(DrugCP == 0)
SetPlayerCheckpoint(playerid,-1958.2,-147,24.7,1);
else if(DrugCP == 1)
SetPlayerCheckpoint(playerid,-1721.8,-152,2.7,1);
else if(DrugCP == 2)
SetPlayerCheckpoint(playerid,-1808.4,1028.1,44.3,1);
else if(DrugCP == 3)
SetPlayerCheckpoint(playerid,-1789.5,1542.8,6.3,1);
else if(DrugCP == 4)
SetPlayerCheckpoint(playerid,-1663.9,1085.7,6.9,1);
else if(DrugCP == 5)
SetPlayerCheckpoint(playerid,-1951.9,-1089.9,29.8,1);
else if(DrugCP == 6)
SetPlayerCheckpoint(playerid,-2044.2,-9.9,34.3,1);
else if(DrugCP == 7)
SetPlayerCheckpoint(playerid,-1364.2,-191.5,5.3,1);
return 1;
}
// Checkpoint
else if(CP[playerid] == 5001)
{
new packages, string[128];
if(IsPlayerInRangeOfPoint(playerid, 2, -1958.2,-147,24.7) || IsPlayerInRangeOfPoint(playerid, 2, -1721.8,-152,2.7) || IsPlayerInRangeOfPoint(playerid, 2, -1808.4,1028.1,44.3) || IsPlayerInRangeOfPoint(playerid, 2, -1789.5,1542.8,6.3) || IsPlayerInRangeOfPoint(playerid, 2, -1663.9,1085.7,6.9)
|| IsPlayerInRangeOfPoint(playerid, 2, -1951.9,-1089.9,29.8) || IsPlayerInRangeOfPoint(playerid, 2, -2044.2,-9.9,34.3) || IsPlayerInRangeOfPoint(playerid, 2, -1364.2,-191.5,5.3))
{
if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 80) packages = 4;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 160) packages = 6;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 240) packages = 10;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 320) packages = 15;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] >= 400) packages = 20;
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(PlayerInfo[playerid][pDPackages]) return SendClientMessage(playerid, COLOR_GREY, "You already have packages.");
PlayerInfo[playerid][pDPackages] = 1;
format(string,sizeof(string),"You have picked %d packages of weed, deliver them to drug store.",packages);
SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
SetPlayerCheckpoint(playerid,-2839.5,-513.5,7.6,2);
}
else if(IsPlayerInRangeOfPoint(playerid,2,-2839.5,-513.5,7.6))
{
if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 80) packages = 5;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 180) packages = 10;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 240) packages = 15;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 320) packages = 20;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] >= 400) packages = 25;
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(PlayerInfo[playerid][pDPackages] != 1) return SendClientMessage(playerid, COLOR_GREY, "You have no weed packages on you.");
if(Weed >= 2000) return SendClientMessage(playerid, COLOR_GREY, "The Drugs House can't hold any more weed at the moment.");
PlayerInfo[playerid][pDPackages] = 0;
PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] ++;
Weed = packages*2;
GiveDodMoney(playerid, packages*20);
format(string, sizeof(string), "USAGE: /buydrugs\nWeed in stock: %d/2000\nCocaine in stock: %d/1200", Weed,cocaine);
Update3DTextLabelText(buydrugsText, COLOR_WHITE, string);
format(string, sizeof(string), "* You have delivered {FF6347}%d{33CCFF} packages for {FF6347}$%d{33CCFF}.", packages, packages*20);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
CP[playerid] = 0;
}
return 1;
}
I have no idea what could be wrong in code so checkpoint won't work. Please someone help me
Re: problem with checkpoint -
Calabresi - 02.05.2013
Did you use the checkpoint code in "OnPlayerEnterCheckpoint" callback?
pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
if(CP[playerid] == 5001)
{
new packages, string[128];
if(IsPlayerInRangeOfPoint(playerid, 2, -1958.2,-147,24.7) || IsPlayerInRangeOfPoint(playerid, 2, -1721.8,-152,2.7) || IsPlayerInRangeOfPoint(playerid, 2, -1808.4,1028.1,44.3) || IsPlayerInRangeOfPoint(playerid, 2, -1789.5,1542.8,6.3) || IsPlayerInRangeOfPoint(playerid, 2, -1663.9,1085.7,6.9)
|| IsPlayerInRangeOfPoint(playerid, 2, -1951.9,-1089.9,29.8) || IsPlayerInRangeOfPoint(playerid, 2, -2044.2,-9.9,34.3) || IsPlayerInRangeOfPoint(playerid, 2, -1364.2,-191.5,5.3))
{
if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 80) packages = 4;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 160) packages = 6;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 240) packages = 10;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 320) packages = 15;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] >= 400) packages = 20;
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(PlayerInfo[playerid][pDPackages]) return SendClientMessage(playerid, COLOR_GREY, "You already have packages.");
PlayerInfo[playerid][pDPackages] = 1;
format(string,sizeof(string),"You have picked %d packages of weed, deliver them to drug store.",packages);
SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
SetPlayerCheckpoint(playerid,-2839.5,-513.5,7.6,2);
}
else if(IsPlayerInRangeOfPoint(playerid,2,-2839.5,-513.5,7.6))
{
if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 80) packages = 5;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 180) packages = 10;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 240) packages = 15;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 320) packages = 20;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] >= 400) packages = 25;
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(PlayerInfo[playerid][pDPackages] != 1) return SendClientMessage(playerid, COLOR_GREY, "You have no weed packages on you.");
if(Weed >= 2000) return SendClientMessage(playerid, COLOR_GREY, "The Drugs House can't hold any more weed at the moment.");
PlayerInfo[playerid][pDPackages] = 0;
PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] ++;
Weed = packages*2;
GiveDodMoney(playerid, packages*20);
format(string, sizeof(string), "USAGE: /buydrugs\nWeed in stock: %d/2000\nCocaine in stock: %d/1200", Weed,cocaine);
Update3DTextLabelText(buydrugsText, COLOR_WHITE, string);
format(string, sizeof(string), "* You have delivered {FF6347}%d{33CCFF} packages for {FF6347}$%d{33CCFF}.", packages, packages*20);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
CP[playerid] = 0;
}
return 1;
}
}
Re: problem with checkpoint -
dominik523 - 02.05.2013
yeah, I did
Re: problem with checkpoint -
Calabresi - 02.05.2013
Try this;
pawn Код:
public OnPlayerEnterCheckpoint(playerid)
{
if(CP[playerid] == 5001)
{
DisablePlayerCheckpoint(playerid);
new packages, string[128];
if(IsPlayerInRangeOfPoint(playerid, 2, -1958.2,-147,24.7) || IsPlayerInRangeOfPoint(playerid, 2, -1721.8,-152,2.7) || IsPlayerInRangeOfPoint(playerid, 2, -1808.4,1028.1,44.3) || IsPlayerInRangeOfPoint(playerid, 2, -1789.5,1542.8,6.3) || IsPlayerInRangeOfPoint(playerid, 2, -1663.9,1085.7,6.9)
|| IsPlayerInRangeOfPoint(playerid, 2, -1951.9,-1089.9,29.8) || IsPlayerInRangeOfPoint(playerid, 2, -2044.2,-9.9,34.3) || IsPlayerInRangeOfPoint(playerid, 2, -1364.2,-191.5,5.3))
{
if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 80) packages = 4;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 160) packages = 6;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 240) packages = 10;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 320) packages = 15;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] >= 400) packages = 20;
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(PlayerInfo[playerid][pDPackages]) return SendClientMessage(playerid, COLOR_GREY, "You already have packages.");
PlayerInfo[playerid][pDPackages] = 1;
format(string,sizeof(string),"You have picked %d packages of weed, deliver them to drug store.",packages);
SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
SetPlayerCheckpoint(playerid,-2839.5,-513.5,7.6,2);
}
else if(IsPlayerInRangeOfPoint(playerid,2,-2839.5,-513.5,7.6))
{
if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 80) packages = 5;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 180) packages = 10;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 240) packages = 15;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] < 320) packages = 20;
else if(PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] >= 400) packages = 25;
if(PlayerInfo[playerid][pJob] != JOB_DSMUGGLER && PlayerInfo[playerid][pVIPJob] != JOB_DSMUGGLER) return SendClientMessage(playerid, COLOR_GREY, "You are not a Drugs Smuggler.");
if(PlayerInfo[playerid][pDPackages] != 1) return SendClientMessage(playerid, COLOR_GREY, "You have no weed packages on you.");
if(Weed >= 2000) return SendClientMessage(playerid, COLOR_GREY, "The Drugs House can't hold any more weed at the moment.");
PlayerInfo[playerid][pDPackages] = 0;
PlayerInfo[playerid][pJobSkill][JOB_DSMUGGLER] ++;
Weed = packages*2;
GiveDodMoney(playerid, packages*20);
format(string, sizeof(string), "USAGE: /buydrugs\nWeed in stock: %d/2000\nCocaine in stock: %d/1200", Weed,cocaine);
Update3DTextLabelText(buydrugsText, COLOR_WHITE, string);
format(string, sizeof(string), "* You have delivered {FF6347}%d{33CCFF} packages for {FF6347}$%d{33CCFF}.", packages, packages*20);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
CP[playerid] = 0;
}
return 1;
}
}
Re: problem with checkpoint -
dominik523 - 03.05.2013
nope, wont work. When I enter checkpoint, nothing happens and checkpoint wont dissapear again
Re: problem with checkpoint -
dominik523 - 03.05.2013
does anyone else knows why this is happening?