ArtofDrowning07
09-14-2004, 23:45
ok thought of a hero, been workin on it for a week..heres the code
//***Embroiler by -=cKy=- <Killer>
//Confuses enemy: Mixes up their move keys (7 diff. configs)
//CVARS
//embroiler_level 7
//embroiler_health 100
//embroiler_armor 150
#include <amxmod.inc>
#include <xtrafun>
#include <superheromod.inc>
new gHeroName[]="Embroiler"
new gHasEmbroilerPower[SH_MAXSLOTS+1]
new coption
new xvar
//new oldetarget
public plugin_init()
{
register_plugin("SUPERHERO Embroiler","1.0","-=cKy=- <Killer>")
if ( isDebugOn() ) server_print("Attempting to create Embroiler hero")
if ( !cvar_exists("embroiler_level") ) register_cvar("embroiler_level", "7")
shCreateHero(gHeroName, "Confuses Enemy", "At round start, random enemy's move keys become mixed up!", false, "embroiler_level")
register_srvcmd("Embroiler_init", "Embroiler_init")
shRegHeroInit(gHeroName, "Embroiler_init")
register_event("ResetHUD","newRound","b")
set_task(0.01,"embroiler_loop",0,"",0,"b")
register_cvar("embroiler_health","100")
register_cvar("embroiler_armor","150")
shSetMaxHealth(gHeroName, "embroiler_health")
shSetMaxArmor(gHeroName, "embroiler_armor")
}
//----------------------------------------------------------------------------------
public Embroiler_init()
{
new temp[6]
read_argv(1,temp,5)
new id=str_to_num(temp)
read_argv(2,temp,5)
new hasPowers=str_to_num(temp)
xvar=0
gHasEmbroilerPower[id]=(hasPowers!=0)
if( !gHasEmbroilerPower[id] )
{
shRemHealthPower(id)
shRemArmorPower(id)
remove_task(id)
}
}
public newRound(id)
{
if( !shModActive() || !is_user_alive(id) || !gHasEmbroilerPower[id] ) return PLUGIN_CONTINUE
new enemyNum=0
xvar=0
for (new enemy=1; enemy<=SH_MAXSLOTS; enemy++)
{
if ( is_user_alive(enemy) && get_user_team(enemy)!=get_user_team(id) && enemy!=id ) enemyNum++
}
if (enemyNum==0) return PLUGIN_CONTINUE
// oldetarget=etarget
new etarget=random_num(1, enemyNum)
for (new x=etarget; (x!=id || get_user_team(x)!=get_user_team(id)); x=etarget)
{
etarget = random_num(1, enemyNum)
}
coption=random_num(1, 8)
check_button(etarget)
new parm[1]
parm[0]=etarget
new enemyName[32]
get_user_name(etarget,enemyName,31)
new message[128]
if(coption==8)
format(message, 127, "You got lucky and didn't get confused by Embroiler's power!")
if(coption!=8)
format(message, 127, "You, %s, became confused by Embroiler's power! #%d", enemyName, coption)
set_hudmessage(128,0,128,-1.0,0.25,0,0.25,2.0,0.0,0.0,4)
show_hudmessage(etarget, message)
//format(message, 127, "You have released your power on enemy %s!", enemyName)
//set_hudmessage(128,0,128,-1.0,0.25,0,0.25,2.0,0.0,0.0,4)
//show_hudmessage(id, message)
set_task(0.01,"embroiler_loop",etarget,parm,1,"b")
return PLUGIN_CONTINUE
}
public embroiler_loop(etarget)
{
check_button(etarget)
return PLUGIN_CONTINUE
}
public check_button(etarget)
{
new message[128]
format(message, 127, "xvar: %d ", xvar)
set_hudmessage(128,0,128,-1.0,0.25,0,0.25,2.0,0.0,0.0,4)
show_hudmessage(etarget, message)
if(!is_user_alive(etarget)) return PLUGIN_CONTINUE
switch(coption)
{
case 1:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveleft",0)
register_clcmd("+moveleft","moveright",0)
register_clcmd("+back","moveup",0)
register_clcmd("+forward","movedown",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 2:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","movedown",0)
register_clcmd("+moveleft","moveup",0)
register_clcmd("+back","moveleft",0)
register_clcmd("+forward","moveright",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 3:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveup",0)
register_clcmd("+moveleft","movedown",0)
register_clcmd("+back","moveright",0)
register_clcmd("+forward","moveleft",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 4:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveleft",0)
register_clcmd("+moveleft","moveup",0)
register_clcmd("+back","moveright",0)
register_clcmd("+forward","movedown",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 5:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveleft",0)
register_clcmd("+moveleft","movedown",0)
register_clcmd("+back","moveup",0)
register_clcmd("+forward","moveright",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 6:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","movedown",0)
register_clcmd("+moveleft","moveright",0)
register_clcmd("+back","moveup",0)
register_clcmd("+forward","moveleft",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 7:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveup",0)
register_clcmd("+moveleft","moveright",0)
register_clcmd("+back","moveleft",0)
register_clcmd("+forward","movedown",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 8:{
if(get_user_button(etarget)&IN_MOVELEFT) client_cmd(etarget, "+moveleft")
}
}
return PLUGIN_CONTINUE
}
public moveleft(id)
{
client_cmd(id, "+moveleft")
return PLUGIN_HANDLED
}
public moveright(id)
{
client_cmd(id, "+moveright")
return PLUGIN_HANDLED
}
public moveup(id)
{
client_cmd(id, "+forward")
return PLUGIN_HANDLED
}
public movedown(id)
{
client_cmd(id, "+back")
return PLUGIN_HANDLED
}
i put the xvar=2 shit in there to test if it went through the if(get_user_button) statements when they were pressed and i found out that that is the problem; the program doesnt go thru those parts when the specific button is pressed..how can i fix this?
thanks for the help
EDIT***: oh btw this part:
for (new x=etarget; (x!=id || get_user_team(x)!=get_user_team(id)); x=etarget)
{
etarget = random_num(1, enemyNum)
}
is so i could test the heros powers on myself..yeah..just incase u were wondering lol
//***Embroiler by -=cKy=- <Killer>
//Confuses enemy: Mixes up their move keys (7 diff. configs)
//CVARS
//embroiler_level 7
//embroiler_health 100
//embroiler_armor 150
#include <amxmod.inc>
#include <xtrafun>
#include <superheromod.inc>
new gHeroName[]="Embroiler"
new gHasEmbroilerPower[SH_MAXSLOTS+1]
new coption
new xvar
//new oldetarget
public plugin_init()
{
register_plugin("SUPERHERO Embroiler","1.0","-=cKy=- <Killer>")
if ( isDebugOn() ) server_print("Attempting to create Embroiler hero")
if ( !cvar_exists("embroiler_level") ) register_cvar("embroiler_level", "7")
shCreateHero(gHeroName, "Confuses Enemy", "At round start, random enemy's move keys become mixed up!", false, "embroiler_level")
register_srvcmd("Embroiler_init", "Embroiler_init")
shRegHeroInit(gHeroName, "Embroiler_init")
register_event("ResetHUD","newRound","b")
set_task(0.01,"embroiler_loop",0,"",0,"b")
register_cvar("embroiler_health","100")
register_cvar("embroiler_armor","150")
shSetMaxHealth(gHeroName, "embroiler_health")
shSetMaxArmor(gHeroName, "embroiler_armor")
}
//----------------------------------------------------------------------------------
public Embroiler_init()
{
new temp[6]
read_argv(1,temp,5)
new id=str_to_num(temp)
read_argv(2,temp,5)
new hasPowers=str_to_num(temp)
xvar=0
gHasEmbroilerPower[id]=(hasPowers!=0)
if( !gHasEmbroilerPower[id] )
{
shRemHealthPower(id)
shRemArmorPower(id)
remove_task(id)
}
}
public newRound(id)
{
if( !shModActive() || !is_user_alive(id) || !gHasEmbroilerPower[id] ) return PLUGIN_CONTINUE
new enemyNum=0
xvar=0
for (new enemy=1; enemy<=SH_MAXSLOTS; enemy++)
{
if ( is_user_alive(enemy) && get_user_team(enemy)!=get_user_team(id) && enemy!=id ) enemyNum++
}
if (enemyNum==0) return PLUGIN_CONTINUE
// oldetarget=etarget
new etarget=random_num(1, enemyNum)
for (new x=etarget; (x!=id || get_user_team(x)!=get_user_team(id)); x=etarget)
{
etarget = random_num(1, enemyNum)
}
coption=random_num(1, 8)
check_button(etarget)
new parm[1]
parm[0]=etarget
new enemyName[32]
get_user_name(etarget,enemyName,31)
new message[128]
if(coption==8)
format(message, 127, "You got lucky and didn't get confused by Embroiler's power!")
if(coption!=8)
format(message, 127, "You, %s, became confused by Embroiler's power! #%d", enemyName, coption)
set_hudmessage(128,0,128,-1.0,0.25,0,0.25,2.0,0.0,0.0,4)
show_hudmessage(etarget, message)
//format(message, 127, "You have released your power on enemy %s!", enemyName)
//set_hudmessage(128,0,128,-1.0,0.25,0,0.25,2.0,0.0,0.0,4)
//show_hudmessage(id, message)
set_task(0.01,"embroiler_loop",etarget,parm,1,"b")
return PLUGIN_CONTINUE
}
public embroiler_loop(etarget)
{
check_button(etarget)
return PLUGIN_CONTINUE
}
public check_button(etarget)
{
new message[128]
format(message, 127, "xvar: %d ", xvar)
set_hudmessage(128,0,128,-1.0,0.25,0,0.25,2.0,0.0,0.0,4)
show_hudmessage(etarget, message)
if(!is_user_alive(etarget)) return PLUGIN_CONTINUE
switch(coption)
{
case 1:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveleft",0)
register_clcmd("+moveleft","moveright",0)
register_clcmd("+back","moveup",0)
register_clcmd("+forward","movedown",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 2:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","movedown",0)
register_clcmd("+moveleft","moveup",0)
register_clcmd("+back","moveleft",0)
register_clcmd("+forward","moveright",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 3:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveup",0)
register_clcmd("+moveleft","movedown",0)
register_clcmd("+back","moveright",0)
register_clcmd("+forward","moveleft",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 4:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveleft",0)
register_clcmd("+moveleft","moveup",0)
register_clcmd("+back","moveright",0)
register_clcmd("+forward","movedown",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 5:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveleft",0)
register_clcmd("+moveleft","movedown",0)
register_clcmd("+back","moveup",0)
register_clcmd("+forward","moveright",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 6:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","movedown",0)
register_clcmd("+moveleft","moveright",0)
register_clcmd("+back","moveup",0)
register_clcmd("+forward","moveleft",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 7:{
if(xvar!=1 && xvar!=2)
{
register_clcmd("+moveright","moveup",0)
register_clcmd("+moveleft","moveright",0)
register_clcmd("+back","moveleft",0)
register_clcmd("+forward","movedown",0)
xvar=1
}
if(get_user_button(etarget)&IN_MOVELEFT) {
xvar=2
client_cmd(etarget, "+moveleft")
}
if(get_user_button(etarget)&IN_MOVERIGHT) client_cmd(etarget, "+moveright")
if(get_user_button(etarget)&IN_FORWARD) client_cmd(etarget, "+forward")
if(get_user_button(etarget)&IN_BACK) client_cmd(etarget, "+back")
}
case 8:{
if(get_user_button(etarget)&IN_MOVELEFT) client_cmd(etarget, "+moveleft")
}
}
return PLUGIN_CONTINUE
}
public moveleft(id)
{
client_cmd(id, "+moveleft")
return PLUGIN_HANDLED
}
public moveright(id)
{
client_cmd(id, "+moveright")
return PLUGIN_HANDLED
}
public moveup(id)
{
client_cmd(id, "+forward")
return PLUGIN_HANDLED
}
public movedown(id)
{
client_cmd(id, "+back")
return PLUGIN_HANDLED
}
i put the xvar=2 shit in there to test if it went through the if(get_user_button) statements when they were pressed and i found out that that is the problem; the program doesnt go thru those parts when the specific button is pressed..how can i fix this?
thanks for the help
EDIT***: oh btw this part:
for (new x=etarget; (x!=id || get_user_team(x)!=get_user_team(id)); x=etarget)
{
etarget = random_num(1, enemyNum)
}
is so i could test the heros powers on myself..yeah..just incase u were wondering lol