Raised This Month: $51 Target: $400
 12% 

help with hero


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
ArtofDrowning07
Senior Member
Join Date: Aug 2004
Old 09-14-2004 , 23:45   help with hero
Reply With Quote #1

ok thought of a hero, been workin on it for a week..heres the code

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
ArtofDrowning07 is offline
ArtofDrowning07
Senior Member
Join Date: Aug 2004
Old 09-15-2004 , 22:53  
Reply With Quote #2

k nvm ill get it thx anyway
ArtofDrowning07 is offline
Chivas2973
Veteran Member
Join Date: Mar 2004
Location: Wisconsin
Old 09-15-2004 , 23:30  
Reply With Quote #3

lol, ok
__________________
Chivas2973 is offline
ArtofDrowning07
Senior Member
Join Date: Aug 2004
Old 09-16-2004 , 15:20  
Reply With Quote #4

yeah that code was all fucked up so im rewriting it lol is this kinda thing possible?
ArtofDrowning07 is offline
reaper
Senior Member
Join Date: May 2004
Old 09-16-2004 , 16:44  
Reply With Quote #5

yea its possible i got a hero like it already where if you shoot me your keys gets all messed up and you see bright lights flashing.
reaper is offline
Send a message via AIM to reaper Send a message via Yahoo to reaper
imported_Phiber
Senior Member
Join Date: Jul 2004
Location: Sweden
Old 09-16-2004 , 16:50  
Reply With Quote #6

hey reaper post that hero on the forum!
imported_Phiber is offline
Send a message via MSN to imported_Phiber Send a message via Yahoo to imported_Phiber
reaper
Senior Member
Join Date: May 2004
Old 09-16-2004 , 17:59  
Reply With Quote #7

No i cannot and will not post any of my exclusive hero's if i did that they wouldnt be exclusive would they? lol, na but if the original author wanted them published he would publish them himslef thats not up to me to decide sry bro.
reaper is offline
Send a message via AIM to reaper Send a message via Yahoo to reaper
imported_TicoMeElmo
Senior Member
Join Date: Mar 2004
Location: 123 Fake Street
Old 09-16-2004 , 18:30  
Reply With Quote #8

wait after it mixes it up theres a timer right? then it changes back right? lol cuz then thats messed up if there new to cs or cz wutevers and just happen to join your server for first time thatll suck
__________________

 http://sh-server.tk 

Weirdest Conv of my life: Episode 1 | Weirdest Conv of my life: Episode 2 | Episode 3 Coming Soon, BBoY
imported_TicoMeElmo is offline
Send a message via AIM to imported_TicoMeElmo
reaper
Senior Member
Join Date: May 2004
Old 09-16-2004 , 19:30  
Reply With Quote #9

Hmm... i dont even know if theres a timer i have never had it done to me before lol ill ask the original author :p.
reaper is offline
Send a message via AIM to reaper Send a message via Yahoo to reaper
imported_TicoMeElmo
Senior Member
Join Date: Mar 2004
Location: 123 Fake Street
Old 09-16-2004 , 20:12  
Reply With Quote #10

or atleast the next round does it change back? if it does then thats cool i guess
__________________

 http://sh-server.tk 

Weirdest Conv of my life: Episode 1 | Weirdest Conv of my life: Episode 2 | Episode 3 Coming Soon, BBoY
imported_TicoMeElmo is offline
Send a message via AIM to imported_TicoMeElmo
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 10:37.


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