Can someone help me to fix this plugin. Everything is working fine except knife round does not initiate.
PHP Code:
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fun>
#include <cstrike>
#include <fakemeta>
#include <hamsandwich>
#include <fakemeta_util>
#if AMXX_VERSION_NUM < 183
#include <chatcolor>
#include <dhudmessage>
#endif
new VERSION[] = "4.0"
new gMsgStatusIcon, Choose;
new bool:gBlockBuyZone;
new bool:g_bSpr = false
new const g_weapons[][] =
{
"Knife", "Shotgun", "Deagle", "AWP", "M4A1", "AK-47", "TMP", "Unlimited Nades", "GayGun", "Scout"
}
public plugin_init()
{
register_plugin("Special Round", VERSION, "Abhishek") /* Idea By : Constantine | Credits to : Exolent, Abhishek */
register_clcmd("say /spr", "StartSpr", ADMIN_BAN);
register_clcmd("drop", "DropBlock");
register_cvar("SpecialRound", VERSION, FCVAR_SERVER|FCVAR_SPONLY)
register_logevent("endSPR",2,"1=Round_End")
register_touch("weaponbox", "player", "WeaponTouch");
RegisterHam(Ham_Spawn, "player", "PlayerSpawn", 1)
gMsgStatusIcon = get_user_msgid("StatusIcon");
register_message(gMsgStatusIcon, "MessageStatusIcon");
}
public PlayerSpawn(id){
if(g_bSpr) SendItems(id)
}
public StartSpr(id, lvl, cid)
{
if(!cmd_access(id, lvl, cid, 0))
return PLUGIN_HANDLED;
if(g_bSpr == false)
{
new SprMenu = menu_create("Special Round Selector", "HandleSpr")
new szWeapons[64]
menu_setprop(SprMenu, MPROP_NUMBER_COLOR, "\w" );
for(new i; i < sizeof(g_weapons); i++){
formatex(szWeapons, charsmax(szWeapons), "\y%s \rRound", g_weapons[i])
menu_additem(SprMenu, szWeapons)
}
menu_display( id, SprMenu );
return SprMenu;
}
else{
client_print_color(0, 0, "^4[SPR] ^3SPR is Already ^4Running!");
return PLUGIN_HANDLED;
}
}
public client_putinserver(id)
{
if(g_bSpr)
{
client_print_color(id, 0,"^3[SPR] ^4Special Round is going on.")
}
}
public HandleSpr(id, SprMenu, item)
{
if( item == MENU_EXIT )
{
menu_destroy(SprMenu);
return PLUGIN_HANDLED;
}
new players[32], number, Player
get_players(players, number,"a")
switch(item)
{
case 0:
{
g_bSpr = true
Choose = 0
BlockBuy()
give_item(Player, "weapon_knife")
client_print_color(0, 0, "^3[SPR] ^4Admin Choose ^3Knife ^4Round!")
}
case 1: equipWeapon(1, "weapon_xm1014", CSW_XM1014, 240, "ShotGun")
case 2: equipWeapon(2, "weapon_deagle", CSW_DEAGLE, 240,"Deagle")
case 3: equipWeapon(3, "weapon_awp", CSW_AWP, 240, "Awp")
case 4: equipWeapon(4, "weapon_m4a1", CSW_M4A1, 240,"M4A1")
case 5: equipWeapon(5, "weapon_ak47", CSW_AK47, 240,"AK47")
case 6: equipWeapon(6, "weapon_tmp", CSW_TMP, 240,"Tmp")
case 7: equipWeapon(7, "weapon_hegrenade", CSW_HEGRENADE, 240,"Unlimated Grenades")
case 8: equipWeapon(8, "weapon_g3sg1", CSW_G3SG1, 240,"Gay Gun")
case 9: equipWeapon(9, "weapon_scout", CSW_SCOUT, 240,"Scout")
}
client_print_color(id, 0,"** ^3[SPR] ^4You cannot pickup a Weapon during Special Round!");
menu_destroy(SprMenu);
return PLUGIN_HANDLED;
}
public SendItems(id)
{
switch(Choose){
case 0: {
fm_strip_user_weapons(id)
give_item(id, "weapon_knife")
}
case 1: GiveWeapon(id, "weapon_xm1014", CSW_XM1014, 240)
case 2: GiveWeapon(id, "weapon_deagle", CSW_DEAGLE, 240)
case 3: GiveWeapon(id, "weapon_awp", CSW_AWP, 240)
case 4: GiveWeapon(id, "weapon_m4a1", CSW_M4A1, 240)
case 5: GiveWeapon(id, "weapon_ak47", CSW_AK47, 240)
case 6: GiveWeapon(id, "weapon_tmp", CSW_TMP, 240)
case 7: GiveWeapon(id, "weapon_hegrenade", CSW_HEGRENADE, 240)
case 8: GiveWeapon(id, "weapon_g3sg1", CSW_G3SG1, 240)
case 9: GiveWeapon(id, "weapon_scout", CSW_SCOUT, 240)
}
}
public endSPR()
{
if(g_bSpr)
{
new players[32], number, Player
get_players(players, number,"a")
for(new i=0; i < number; i++)
{
Player = players[i]
if(Choose == 8)
cs_set_user_bpammo(Player, CSW_HEGRENADE, 1)
if(is_user_alive(Player))
{
if(get_user_team(Player) == 1)
GiveWeapon(Player, "weapon_glock18", CSW_GLOCK18, 120)
else if(get_user_team(Player) == 2)
GiveWeapon(Player, "weapon_usp", CSW_USP, 120)
}
}
g_bSpr = false;
gBlockBuyZone = false;
client_print_color(0, 0,"^3[SPR] ^4Special Round is over now!");
}
}
public DropBlock(id)
{
if(g_bSpr)
{
client_print_color(id, 0, "^3[SPR] ^4You cannot drop a weapon during Special Round!");
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}
public WeaponTouch(ent, id)
{
if(g_bSpr)
return PLUGIN_HANDLED;
return PLUGIN_CONTINUE;
}
public MessageStatusIcon(msgID, dest, receiver) {
if(gBlockBuyZone && get_msg_arg_int(1)) {
new const buyzone[] = "buyzone";
new icon[sizeof(buyzone) + 1];
get_msg_arg_string(2, icon, charsmax(icon));
if(equal(icon, buyzone)) {
RemoveFromBuyzone(receiver);
set_msg_arg_int(1, ARG_BYTE, 0);
}
}
return PLUGIN_CONTINUE;
}
BlockBuy() {
message_begin(MSG_BROADCAST, gMsgStatusIcon);
write_byte(0);
write_string("buyzone");
message_end();
new players[32], pnum;
get_players(players, pnum, "a");
while(pnum-- > 0) {
RemoveFromBuyzone(players[pnum]);
}
gBlockBuyZone = true;
}
RemoveFromBuyzone(id) set_pdata_int(id, 235, get_pdata_int(id, 235, 5, 5) & -2, 5, 5)
stock equipWeapon(const choice, weapon[], ammo, amt, print[])
{
Choose = choice
g_bSpr = true;
BlockBuy()
new players[32], number, Player
get_players(players, number,"a")
for(new i=0; i < number; i++)
{
Player = players[i]
fm_strip_user_weapons(Player)
give_item(Player, weapon)
give_item(Player, "weapon_knife")
cs_set_user_bpammo(Player, ammo, amt)
}
set_dhudmessage(255, 255, 255, -1.0, -0.65, 2, 5.0, 3.5)
show_dhudmessage(0, "Admin has Started^n-= [ %s Round ]=-^n Lets have Fun!!", print)
client_print_color(0, 0, "^3[SPR] ^4Admin Choose ^3%s ^4Round!", print)
}
stock GiveWeapon(id, const weapon[], ammo, amt)
{
fm_strip_user_weapons(id)
give_item(id, weapon)
give_item(id, "weapon_knife")
cs_set_user_bpammo(id, ammo, amt)
}