AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   I need some help >.< (https://forums.alliedmods.net/showthread.php?t=27695)

PainKiller6 04-27-2006 01:04

I need some help >.<
 
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 }

GHW_Chronic 04-27-2006 01:20

incorrect syntax.
Code:
show_menu(id,mkeys,menubody,-1,"menu_offensive")

and this
Code:
new showmenu[32] = {0//...

all variables by default are 0/off/false/blank/empty etc. Setting these varaibles like you did is completely unnecessary except the ones you set to true.

v3x 04-27-2006 01:32

One other thing: Use switch statements for your menus.
Code:
switch(key) {   case 0:   {     // blah     // blah   }   case 1:   {     // blah     // blah   } }
etc.

PainKiller6 04-27-2006 02:13

I tried what chronic told me and it still doesn't work, and v3x, if I use a switch how will I be able to determine whether they chose defensive or physical for example?

v3x 04-27-2006 02:18

Throw an if() statement in the case ;)

GHW_Chronic 04-27-2006 02:19

it's all a mess. Fix the forums v3x so we can make a neatness tut.

PainKiller6 04-27-2006 02:29

Meh... I threw it together in a hurry... besides, as much as you might wish people don't become master coders overnight >.<... Now tell me whats wrong! :P

GHW_Chronic 04-27-2006 02:35

I dunno, my eyes streign.

Xanimos 04-27-2006 07:33

You have a function called "event_new_round" but nowhere do I see where you have that called. Did you forget to register_* it?

PainKiller6 04-27-2006 16:35

No, event_round_time calls it with a set_task, I did it that way to make sure everyone was spawned.

Did I at least do the menus right? Cuz those things were confusing as hell :?

Edit: I finally got it working... to me forever to figure out what the problem was cuz my code was so messy :?


All times are GMT -4. The time now is 05:12.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.