Well... I'm havin some trouble with the plugin I'm writing, it's not quite done yet, when I'm done it will be a power up mod, you'll be able to select an offensive skill, a defensive skill, and a physical ability, when you get to 5, 15, and 30 kills (Or whatever the cvar's set to), anyways, all the special abilities work, but once you hit 5 kills the menu to select your skill doesn't appear, I have no idea what the problem is, if someone could look this over and help me out it would be greatly appreciated! This is my first real plugin ever and I'm sure its filled with problems >.<, it compiles fine tho :wink:
Code:
/*Credits - Thanks v3x for your unlimited ammo plugin*/
#include <amxmodx>
#include <engine>
#include <engine_stocks>
#include <cstrike>
#include <fun>
new bool:doubledmg[32] = false
new bool:unlimitedammo[32] = false
new bool:disarmweap[32] = false
new bool:healthregen[32] = false
new bool:chestarmor[32] = false
new bool:healthsteal[32] = false
new bool:morehealth[32] = false
new bool:runfaster[32] = false
new bool:lowergrav[32] = false
new bool:offensive[32] = true
new bool:defensive[32] = true
new bool:physical[32] = true
new showmenu[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
new powerups[32] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
public plugin_init() {
register_plugin("Powerup Mod", "0.5","PainKiller")
register_event("CurWeapon" , "event_CurWeapon" , "be" , "1=1")
register_event("RoundTime", "event_round_time", "b")
register_event("DeathMsg","event_death","b")
register_cvar("powerup1","5")
register_cvar("powerup2","15")
register_cvar("powerup3","30")
register_menucmd(register_menuid("Offensive Powerups"),1023,"menu_offensive")
register_menucmd(register_menuid("Defensive Powerups"),1023,"menu_defensive")
register_menucmd(register_menuid("Physical Powerups"),1023,"menu_physical")
}
public client_damage(attacker, victim, damage, wpnindex, hitplace, TA) {
if(is_user_alive(victim)) {
if(doubledmg[attacker]) {
new weapon[33]
get_weaponname(wpnindex,weapon[0],32)
new newhealth = get_user_health(victim) - damage
if(newhealth > 0) {
set_user_health(victim,newhealth)
}
else if(hitplace == HIT_HEAD) {
user_silentkill(victim)
if(weapon[0] == 'w') {
make_deathmsg(attacker,victim,1,weapon[7])
}
else {
make_deathmsg(attacker,victim,1,weapon)
}
if(TA != 1) {
set_user_frags(attacker,get_user_frags(attacker) + 1)
cs_set_user_money(attacker,cs_get_user_money(attacker) + 300,1)
}
else if(TA == 1) {
set_user_frags(attacker,get_user_frags(attacker) - 1)
cs_set_user_money(attacker,cs_get_user_money(attacker) - 3300,1)
}
}
else if(hitplace != HIT_HEAD) {
user_silentkill(victim)
if(weapon[0] == 'w') {
make_deathmsg(attacker,victim,0,weapon[7])
}
else {
make_deathmsg(attacker,victim,0,weapon)
}
if(TA != 1) {
set_user_frags(attacker,get_user_frags(attacker) + 1)
cs_set_user_money(attacker,cs_get_user_money(attacker) + 300,1)
}
else if(TA == 1) {
set_user_frags(attacker,get_user_frags(attacker) - 1)
cs_set_user_money(attacker,cs_get_user_money(attacker) - 3300,1)
}
}
}
if(disarmweap[attacker]) {
if((random(5) == 3) && !TA) {
new wpnname[33], wammo, wclip, wid
wid = get_user_weapon(victim,wclip,wammo)
get_weaponname(wid,wpnname,32)
engclient_cmd(victim,"drop",wpnname)
}
}
if(healthregen[victim]) {
new victid[3]
victid[0] = victim
set_task(2.0,"regen",0,victid[0],2)
}
}
if(healthsteal[attacker]) {
if(morehealth[attacker]) {
if(get_user_health(attacker) < 150) {
if((get_user_health(attacker) + (damage / 2)) > 150) {
set_user_health(attacker,150)
}
else {
set_user_health(attacker,get_user_health(attacker) + (damage / 2))
}
}
}
else if(!morehealth[attacker]) {
if(get_user_health(attacker) < 100) {
if((get_user_health(attacker) + (damage / 2)) > 100) {
set_user_health(attacker,100)
}
else {
set_user_health(attacker,get_user_health(attacker) + (damage / 2))
}
}
}
}
return PLUGIN_HANDLED
}
public event_death() {
new id = read_data(1)
new frags = get_user_frags(id)
if((frags >= get_cvar_num("powerup1")) && !powerups[id]) {
powerups[id] = 1
showmenu[id] += 1
}
else if((frags >= get_cvar_num("powerup2")) && (powerups[id] == 1)) {
powerups[id] = 2
showmenu[id] += 1
}
else if((frags >= get_cvar_num("powerup3")) && (powerups[id] == 2)) {
powerups[id] = 3
showmenu[id] += 1
}
return PLUGIN_HANDLED
}
public newround_event(uid[]) {
new id = uid[0]
if(morehealth[id]) {
set_user_health(id,150)
}
if(lowergrav[id]) {
set_user_gravity(id,0.4)
}
if(chestarmor[id]) {
set_user_hitzones(0,id,252)
}
if(showmenu[id]) {
menu_start(id)
}
return PLUGIN_HANDLED
}
public event_CurWeapon(id) {
if(!is_user_alive(id)) {
return PLUGIN_HANDLED
}
if(!unlimitedammo[id]) {
return PLUGIN_HANDLED
}
new wpnid = read_data(2) , clip = read_data(3)
give_ammo(id , wpnid , clip)
return PLUGIN_HANDLED
}
public give_ammo(id , wpnid , clip) {
if(!is_user_alive(id))
return PLUGIN_HANDLED
if( wpnid==CSW_C4 ||
wpnid==CSW_KNIFE ||
wpnid==CSW_HEGRENADE ||
wpnid==CSW_SMOKEGRENADE ||
wpnid==CSW_FLASHBANG )
return PLUGIN_HANDLED
if(!clip)
{
new weapname[33]
get_weaponname(wpnid , weapname , 32)
new wpn = -1
while((wpn = find_ent_by_class(wpn , weapname)) != 0)
{
if(id == entity_get_edict(wpn , EV_ENT_owner))
{
cs_set_weapon_ammo(wpn , maxclip(wpnid))
break
}
}
}
return PLUGIN_HANDLED
}
stock maxclip(wpnid) {
new ca = 0
switch (wpnid)
{
case CSW_P228 : ca = 13
case CSW_SCOUT : ca = 10
case CSW_HEGRENADE : ca = 0
case CSW_XM1014 : ca = 7
case CSW_C4 : ca = 0
case CSW_MAC10 : ca = 30
case CSW_AUG : ca = 30
case CSW_SMOKEGRENADE : ca = 0
case CSW_ELITE : ca = 15
case CSW_FIVESEVEN : ca = 20
case CSW_UMP45 : ca = 25
case CSW_SG550 : ca = 30
case CSW_GALI : ca = 35
case CSW_FAMAS : ca = 25
case CSW_USP : ca = 12
case CSW_GLOCK18 : ca = 20
case CSW_AWP : ca = 10
case CSW_MP5NAVY : ca = 30
case CSW_M249 : ca = 100
case CSW_M3 : ca = 8
case CSW_M4A1 : ca = 30
case CSW_TMP : ca = 30
case CSW_G3SG1 : ca = 20
case CSW_FLASHBANG : ca = 0
case CSW_DEAGLE : ca = 7
case CSW_SG552 : ca = 30
case CSW_AK47 : ca = 30
}
return ca
}
public event_round_time(id) {
new uid[3]
uid[0] = id
if (read_data(1) == get_cvar_num("mp_freezetime")) {
set_task(0.2,"newround_event",0,uid[0],2)
return PLUGIN_HANDLED
}
else if(read_data(1) >= get_cvar_float("mp_roundtime") * 60) {
if(runfaster[id]) {
speed(id)
set_task(0.2,"newround_event",0,uid[0],2)
}
}
return PLUGIN_HANDLED
}
public regen(uid[]) {
new id = uid[0]
if(morehealth[id]) {
if(get_user_health(id) < 148) {
set_user_health(id,get_user_health(id) + 3)
set_task(2.0,"regen",0,uid[0],2)
return PLUGIN_HANDLED
}
else if((get_user_health(id) == 148) || (get_user_health(id) == 149)) {
set_user_health(id,150)
return PLUGIN_HANDLED
}
}
else if(!morehealth[id]) {
if(get_user_health(id) < 98) {
set_user_health(id,get_user_health(id) + 3)
set_task(2.0,"regen",0,uid[0],2)
return PLUGIN_HANDLED
}
else if((get_user_health(id) == 98) || (get_user_health(id) == 99)) {
set_user_health(id,100)
return PLUGIN_HANDLED
}
}
return PLUGIN_HANDLED
}
public speed(id) {
set_user_maxspeed(id,960.0)
return PLUGIN_HANDLED
}
public menu_start(id) {
if(offensive[id]) {
showmenu_offensive(id)
}
else if(defensive[id]) {
showmenu_defensive(id)
}
else if(physical[id]) {
showmenu_physical(id)
}
return PLUGIN_HANDLED
}
public showmenu_offensive(id) {
new menubody[256], mkeys = (1<<0)|(1<<1)|(1<<2)|(1<<9)
new len = format(menubody,255,"/rOffensive Powerups/w^n^n1. Double Damage^n2. Unlimited Ammo^n3. Disarm^n^n")
if(defensive[id]) {
mkeys |= (1<<3)
len += format(menubody[len],255 - len,"/g4. Defensive Powerups/w^n")
}
else if(physical[id]) {
mkeys |= (1<<3)
len += format(menubody[len],255 - len,"/b4. Physical Powerups/w^n")
}
len += format(menubody[len],511 - len,"0. Exit")
show_menu(id,mkeys,menubody)
}
public showmenu_defensive(id) {
new menubody[256], mkeys = (1<<0)|(1<<1)|(1<<2)|(1<<9)
new len = format(menubody,255,"/gDefensive Powerups/w^n^n1. Health Regeneration^n2. Indestructible Chest Plating^n3. Health Leeching^n^n")
if(physical[id]) {
mkeys |= (1<<3)
len += format(menubody[len],255 - len,"/b4. Physical Powerups/w^n")
}
else if(offensive[id]) {
mkeys |= (1<<3)
len += format(menubody[len],255 - len,"/r4. Offensive Powerups/w^n")
}
len += format(menubody[len],511 - len,"0. Exit")
show_menu(id,mkeys,menubody)
}
public showmenu_physical(id) {
new menubody[256], mkeys = (1<<0)|(1<<1)|(1<<2)|(1<<9)
new len = format(menubody,255,"/bPhysical Powerups/w^n^n1. Bonus Starting Health^n2. Increased Running Speed^n3. Reduced Gravity^n^n")
if(offensive[id]) {
mkeys |= (1<<3)
len += format(menubody[len],255 - len,"/r4. Offensive Powerups/w^n")
}
else if(defensive[id]) {
mkeys |= (1<<3)
len += format(menubody[len],255 - len,"/g4. Defensive Powerups/w^n")
}
len += format(menubody[len], 511 - len, "0. Exit")
show_menu(id, mkeys, menubody)
}
public menu_offensive(id,key) {
if(key == 0) {
doubledmg[id] = true
offensive[id] = false
showmenu[id] -= 1
}
else if(key == 1) {
unlimitedammo[id] = true
offensive[id] = false
showmenu[id] -= 1
}
else if(key == 2) {
disarmweap[id] = true
offensive[id] = false
showmenu[id] -= 1
}
else if((key == 3) && defensive[id]) {
showmenu_defensive(id)
}
else if((key == 3) && physical[id]) {
showmenu_physical(id)
}
else if(key == 9) {
return PLUGIN_HANDLED
}
if(showmenu[id] && defensive[id]) {
showmenu_defensive(id)
}
else if(showmenu[id] && physical[id]) {
showmenu_physical(id)
}
return PLUGIN_HANDLED
}
public menu_defensive(id,key) {
if(key == 0) {
healthregen[id] = true
defensive[id] = false
showmenu[id] -= 1
}
else if(key == 1) {
chestarmor[id] = true
defensive[id] = false
showmenu[id] -= 1
}
else if(key == 2) {
healthsteal[id] = true
defensive[id] = false
showmenu[id] -= 1
}
else if((key == 3) && physical[id]) {
showmenu_physical(id)
}
else if((key == 3) && offensive[id]) {
showmenu_offensive(id)
}
else if(key == 9) {
return PLUGIN_HANDLED
}
if(showmenu[id] && physical[id]) {
showmenu_physical(id)
}
else if(showmenu[id] && offensive[id]) {
showmenu_offensive(id)
}
return PLUGIN_HANDLED
}
public menu_physical(id,key) {
if(key == 0) {
morehealth[id] = true
physical[id] = false
showmenu[id] -= 1
}
else if(key == 1) {
runfaster[id] = true
physical[id] = false
showmenu[id] -= 1
}
else if(key == 2) {
lowergrav[id] = true
physical[id] = false
showmenu[id] -= 1
}
else if((key == 3) && offensive[id]) {
showmenu_offensive(id)
}
else if((key == 3) && defensive[id]) {
showmenu_defensive(id)
}
else if(key == 9) {
return PLUGIN_HANDLED
}
if(showmenu[id] && offensive[id]) {
showmenu_offensive(id)
}
else if(showmenu[id] && defensive[id]) {
showmenu_defensive(id)
}
return PLUGIN_HANDLED
}