This code works but whenever I use /usepot pipe or /usepot bong it will not work - It only works when I do /usepot paper - P.S Im sure that I have bongs and Pipes on me before trying. Please help me ASAP. Will +REP you.
pawn Код:
if(strcmp(cmd, "/usepot", true) == 0 || strcmp(cmd, "/usepot", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new x_nr[32];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /usepot [name]");
SendClientMessage(playerid, COLOR_GRAD1, "Available names: Paper Pipe Bong");
return 1;
}
if(strcmp(x_nr,"Paper",true) == 0)
{
if(UseDrugsTimer[playerid]) return SendClientMessage(playerid,COLOR_GREY," You must wait 5 seconds !");
if(PlayerBoxing[playerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " You can't use Pot while you are Boxing !");
return 1;
}
if(PlayerPotStoned[playerid] >= 6)
{
SendClientMessage(playerid, COLOR_GREY, " You are too stoned to use Pot !");
return 1;
}
if(PlayerInfo[playerid][pPot] > 1 && PlayerInfo[playerid][pPaper] >= 1)
{
new Float:health;
GetPlayerHealth(playerid, health);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(health > 80)
{
SetPlayerHealth(playerid, 90.0);
}
else
{
SetPlayerHealth(playerid, health + 10.0);
}
PlayerPotStoned[playerid] += 1;
if(PlayerPotStoned[playerid] >= 6)
{
GameTextForPlayer(playerid, "~w~You are~n~~p~Stoned", 4000, 1);
SetPlayerDrunkLevel(playerid, 500000);
SetPlayerWeather(playerid, -59);
}
SendClientMessage(playerid, COLOR_GRAD1, " You used 1 gram of pot !");
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Stranger has used some pot.");
}
else
{
format(string, sizeof(string), "* %s has used some pot.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(!IsPlayerInAnyVehicle(playerid))
{
ApplyAnimation(playerid,"SMOKING","M_smkstnd_loop",4.0,0,0,0,0,0);
}
UseDrugsTimer[playerid] = 1; PlayerInfo[playerid][pPot] -= 1; PlayerInfo[playerid][pPaper] -= 1;
SetTimerEx("UseDrugs",5*1000,0,"i",playerid);
}
else if(strcmp(x_nr,"Pipe",true) == 0)
{
if(UseDrugsTimer[playerid]) return SendClientMessage(playerid,COLOR_GREY," You must wait 5 seconds !");
if(PlayerBoxing[playerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " You can't use Pot while you are Boxing !");
return 1;
}
if(PlayerPotStoned[playerid] >= 6)
{
SendClientMessage(playerid, COLOR_GREY, " You are too stoned to use Pot !");
return 1;
}
if(PlayerInfo[playerid][pPot] > 1 && PlayerInfo[playerid][pPipe] >= 0)
{
new Float:health;
GetPlayerHealth(playerid, health);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(health > 80)
{
SetPlayerHealth(playerid, 100.0);
}
else
{
SetPlayerHealth(playerid, health + 20.0);
}
PlayerPotStoned[playerid] += 1;
if(PlayerPotStoned[playerid] >= 6)
{
GameTextForPlayer(playerid, "~w~You are~n~~p~Stoned", 4000, 1);
SetPlayerDrunkLevel(playerid, 500000);
SetPlayerWeather(playerid, -59);
}
SendClientMessage(playerid, COLOR_GRAD1, " You used 2 grams of pot !");
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Stranger has used some pot.");
}
else
{
format(string, sizeof(string), "* %s has used some pot.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(!IsPlayerInAnyVehicle(playerid))
{
ApplyAnimation(playerid,"SMOKING","M_smkstnd_loop",4.0,0,0,0,0,0);
}
UseDrugsTimer[playerid] = 1; PlayerInfo[playerid][pPot] -= 2; PlayerInfo[playerid][pPipe] -= 1;
SetTimerEx("UseDrugs",5*1000,0,"i",playerid);
}
else if(strcmp(x_nr,"Bong",true) == 0)
{
if(UseDrugsTimer[playerid]) return SendClientMessage(playerid,COLOR_GREY," You must wait 5 seconds !");
if(PlayerBoxing[playerid] > 0)
{
SendClientMessage(playerid, COLOR_GREY, " You can't use Pot while you are Boxing !");
return 1;
}
if(PlayerPotStoned[playerid] >= 6)
{
SendClientMessage(playerid, COLOR_GREY, " You are too stoned to use Pot !");
return 1;
}
if(PlayerInfo[playerid][pPot] > 2 && PlayerInfo[playerid][pBong] >= 0)
{
new Float:health;
GetPlayerHealth(playerid, health);
GetPlayerName(playerid, sendername, sizeof(sendername));
if(health > 80)
{
SetPlayerHealth(playerid, 110.0);
}
else
{
SetPlayerHealth(playerid, health + 30.0);
}
PlayerPotStoned[playerid] += 1;
if(PlayerPotStoned[playerid] >= 6)
{
GameTextForPlayer(playerid, "~w~You are~n~~p~Stoned", 4000, 1);
SetPlayerDrunkLevel(playerid, 500000);
SetPlayerWeather(playerid, -59);
}
SendClientMessage(playerid, COLOR_GRAD1, " You used 3 grams of pot !");
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Stranger has used some pot.");
}
else
{
format(string, sizeof(string), "* %s has used some pot.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(!IsPlayerInAnyVehicle(playerid))
{
ApplyAnimation(playerid,"SMOKING","M_smkstnd_loop",4.0,0,0,0,0,0);
}
UseDrugsTimer[playerid] = 1; PlayerInfo[playerid][pPot] -= 3; PlayerInfo[playerid][pBong] -= 1;
SetTimerEx("UseDrugs",5*1000,0,"i",playerid);
}
else if(PlayerInfo[playerid][pPot] == 0)
{
SendClientMessage(playerid, COLOR_GREY, " You dont have any pot left !");
}
}
}
}
}
return 1;
}
pawn Код:
if(strcmp(cmd, "/usepot", true) == 0)
{
if(!IsPlayerConnected(playerid)) return 1;
new x_nr[32];
x_nr = strtok(cmdtext, idx);
if(strcmp(x_nr, "Paper", true) != 0 && strcmp(x_nr, "Pipe", true) != 0 && strcmp(x_nr, "Bong", true) != 0)
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /usepot [name]");
return SendClientMessage(playerid, COLOR_GRAD1, "Available names: Paper Pipe Bong");
}
if(PlayerInfo[playerid][pPot] < 1) return SendClientMessage(playerid, COLOR_GREY, " You don't have any Pot left !");
if(UseDrugsTimer[playerid]) return SendClientMessage(playerid,COLOR_GREY," You must wait 5 seconds !");
if(PlayerBoxing[playerid] > 0) return SendClientMessage(playerid, COLOR_GREY, " You can't use Pot while you are Boxing !");
if(PlayerPotStoned[playerid] >= 6) return SendClientMessage(playerid, COLOR_GREY, " You are too stoned to use Pot !");
new count = 0;
if(strcmp(x_nr, "Paper", true) == 0)
{
if(PlayerInfo[playerid][pPaper] < 1) return SendClientMessage(playerid, COLOR_GREY, " You don't have any paper left !");
PlayerInfo[playerid][pPaper] -= 1;
count = 1;
}
else if(strcmp(x_nr, "Pipe", true) == 0)
{
if(PlayerInfo[playerid][pPot] < 2) return SendClientMessage(playerid, COLOR_GREY, " You don't have enough Pot for a pipe !");
if(PlayerInfo[playerid][pPipe] < 1) return SendClientMessage(playerid, COLOR_GREY, " You don't have any pipes left !");
PlayerInfo[playerid][pPipe] -= 1;
count = 2;
}
else if(strcmp(x_nr, "Bong", true) == 0)
{
if(PlayerInfo[playerid][pPot] < 3) return SendClientMessage(playerid, COLOR_GREY, " You don't have enough Pot for a bong !");
if(PlayerInfo[playerid][pBong] < 1) return SendClientMessage(playerid, COLOR_GREY, " You don't have any bongs left !");
PlayerInfo[playerid][pBong] -= 1;
count = 3;
}
new Float:health, dstr[35], playersname[MAX_PLAYER_NAME];
format(dstr, sizeof(dstr), " You used %d grams of pot !", count);
SendClientMessage(playerid, COLOR_GRAD1, dstr);
GetPlayerHealth(playerid, health);
if(health > 80) SetPlayerHealth(playerid, (80.0 + (count * 10.0)));
else SetPlayerHealth(playerid, (health + (count * 10.0)));
PlayerInfo[playerid][pPot] -= count;
GetPlayerName(playerid, playersname, sizeof(playersname));
PlayerPotStoned[playerid] += 1;
if(PlayerPotStoned[playerid] >= 6)
{
GameTextForPlayer(playerid, "~w~You are~n~~p~Stoned", 4000, 1);
SetPlayerDrunkLevel(playerid, 500000);
SetPlayerWeather(playerid, -59);
}
if(PlayerInfo[playerid][pMask] == 1) format(string, sizeof(string), "* Stranger has used some pot.");
else format(string, sizeof(string), "* %s has used some pot.", playersname);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
if(!IsPlayerInAnyVehicle(playerid)) ApplyAnimation(playerid,"SMOKING","M_smkstnd_loop",4.0,0,0,0,0,0);
UseDrugsTimer[playerid] = 1;
SetTimerEx("UseDrugs", 5 * 1000, 0, "i", playerid);
return 1;
}
From 172 lines down to 58 lines. I've even impressed myself :P
I've edited your entire code that it will work in all aspects of the command usage. This was just a case of badly placed 'if' and 'else if' statements.
. Links to the plugins/includes can be found below: