AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Off-Topic / General Chat (https://forums.alliedmods.net/forumdisplay.php?f=38)
-   -   Xtrafun_to_Vexd: Guide for converting a plugin using xtrafun (https://forums.alliedmods.net/showthread.php?t=33059)

[ACORNS]*KENNY* 04-05-2005 02:00

Xtrafun_to_Vexd: Guide for converting a plugin using xtrafun
 
1 Attachment(s)
Alright guys, heres a guide for getting your plugins to work with the newer verions of AMX that require xtrafun.

1. download this: http://djeyl.net/forum/index.php?act...post&id=257674 and put it in your include folder:
C:\Program Files\Valve\Steam\SteamApps\<your steam account>\Counter-Strike\cstrike\addons\amx\examples\include
or
C:\Program Files\Valve\Steam\SteamApps\<your steam account>\Dedicated Server\cstrike\addons\amx\examples\include
and download the latest version of VexdUM at http://djeyl.net/forum/index.php?act...post&id=260918 to replace the one that came with 0.9.9

2. open the sma file with a simple text editor such as wordpad and replace the line <xtrafun> with <Xtrafun_to_Vexd> like so:

Code:

<amxmod>
<xtrafun>
<superheromod.inc>

to
Code:

<amxmod>
<Xtrafun_to_Vexd>
<superheromod.inc>

and then save (make sure it saves as .sma and not .txt)

3. compile the sma, goto the compile folder, take the amx and place it into your plugins folder, then add to plugins.ini the plugin name, ex. sh_cannonball.amx

4. Restart your server and your good to go

Heres an example sma:

Code:

#include <amxmod>
#include <Xtrafun_to_Vexd.inc>
#include <superheromod.inc>

// CANNONBALL

// VARIABLES
new gHeroName[]="CannonBall" //Name of the Hero
new bool:ghasCannonballPower[SH_MAXSLOTS+1]
new gCanFire[SH_MAXSLOTS+1]
new gSpriteSmoke, gMaxSpeed, gThrust, gUseFuel, gFuelCost, gCanArmor, gSpriteFire, gCanTimer[SH_MAXSLOTS+1] //gSpriteBurning,
new Float:gMultiplier
//----------------------------------------------------------------------------------------------
public plugin_init()
{
  // Plugin Info
  register_plugin("SUPERHERO CannonBall","1.0","StuD|MaN and <A<o>L>EvilGoten") //Registers Plugin
 
  // FIRE THE EVENT TO CREATE THIS SUPERHERO!
  if ( isDebugOn() ) server_print("Attempting to create CannonBall Hero")
  if (!cvar_exists("can_level")) register_cvar("can_level", "5" ) //Tells the level of hero
  shCreateHero(gHeroName, "Burst Of Super Speed", "Recharge The Boosters And Soar Fast", true, "can_level" ) //Creates hero into list

 
  // REGISTER EVENTS THIS HERO WILL RESPOND TO! (AND SERVER COMMANDS)
  // INIT
  register_srvcmd("can_init", "can_init") //Called when someone gets hero
  shRegHeroInit(gHeroName, "can_init") //Tells server u made init
  register_event("ResetHUD","newRound","b")
  register_srvcmd("can_kd", "can_kd")
  shRegKeyDown(gHeroName, "can_kd")
  register_event("DeathMsg", "can_death", "a")
  register_srvcmd("can_loop", "can_loop")
  set_task(1.0,"can_loop",0,"",0,"b" )
 
 
  // DEFAULT THE CVARS
  register_cvar("can_gravity", "0.20" )
  register_cvar("can_gravitya", "1" )
  register_cvar("can_maxspeed", "1200" )
  register_cvar("can_timer", "0.1" )
  register_cvar("can_armorcost", "100" )
  register_cvar("can_armorfuel", "5" )
  register_cvar("can_expradius", "50" )
  register_cvar("can_expdamage", "20" )
  register_cvar("can_armor", "150" )
  register_cvar("can_thrust", "900" )
  register_cvar("can_xymult", "5")
  register_cvar("can_cool", "1")
  gMultiplier=get_cvar_float("can_xymult")
  gThrust=get_cvar_num("can_thrust")
  gMaxSpeed=get_cvar_num("can_maxspeed")
  gUseFuel=get_cvar_num("can_armorfuel")
  gFuelCost=get_cvar_num("can_armorcost")
  gCanArmor=get_cvar_num("can_armor")

  shSetMaxArmor(gHeroName, "can_armor" )
}
//----------------------------------------------------------------------------------------------
public plugin_precache()
{
  gSpriteSmoke  = precache_model("sprites/steam1.spr")
  gSpriteFire    = precache_model("sprites/hexplo.spr")
  // gSpriteBurning = precache_model("sprites/xfire.spr")
  precache_sound("misc/missile.wav")
}
//----------------------------------------------------------------------------------------------
public can_init()
{
  new temp[6]
  // First Argument is an id
  read_argv(1,temp,5)
  new id=str_to_num(temp)
 
  // 2nd Argument is 0 or 1 depending on whether the id has cannonball powers
  read_argv(2,temp,5)
  new hasPowers=str_to_num(temp)
 
  ghasCannonballPower[id]=(hasPowers!=0)
  new parm[1]
  parm[0]=id
  if ( hasPowers!=0 )
  {
    set_task( get_cvar_float("can_timer"), "can_loop", id, parm, 1, "b")
  }
  else
  {
    remove_task(id)
  }
}
//----------------------------------------------------------------------------------------------
public canExpEffect(location[3])
{
  message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  write_byte(17)
  write_coord(location[0])
  write_coord(location[1])
  write_coord(location[2])
  write_short(gSpriteFire)
  write_byte(5)
  write_byte(125)
  message_end()
  message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
  write_byte(17)
  write_coord(location[0])
  write_coord(location[1])
  write_coord(location[2])
  write_short(gSpriteSmoke)
  write_byte(5)
  write_byte(125)
  message_end()
}
//----------------------------------------------------------------------------------------------
public can_loop(parm[])
{
  new id=parm[0]
  new velocity[3]
  new origin[3]
  new userArmor

  if ( !is_user_alive(id) ) return
 
  // Increase armor for this guy
  userArmor=get_user_armor(id)
  if ( userArmor<gCanArmor )
  {
    set_user_armor(id, userArmor + gUseFuel )
    return
  }
   
  // OK - We'll make this armor based - but also add armor
  // But get it back too
  if ( gUseFuel != 0 && gFuelCost > userArmor )
  {
    playSoundDenySelect(id)
    return
  }
 
  new canThrust=gThrust
  new canMaxSpeed=gMaxSpeed
  new Float:canXYMult=gMultiplier
 
  if (gCanFire[id] == 1)
  {       
    // Decrement Fuel
    if ( gUseFuel!=0 )
    set_user_armor(id, userArmor - gFuelCost )
    get_user_velocity(id, velocity)
    velocity[0] = floatround(velocity[0] * canXYMult)
    velocity[1] = floatround(velocity[1] * canXYMult)
    velocity[2] += canThrust
    if ( velocity[0]>canMaxSpeed  ) velocity[0]=canMaxSpeed
    if ( velocity[0]<-canMaxSpeed ) velocity[0]=-canMaxSpeed
    if ( velocity[1]>canMaxSpeed  ) velocity[1]=canMaxSpeed
    if ( velocity[1]<-canMaxSpeed ) velocity[1]=-canMaxSpeed
    if ( velocity[2]>canMaxSpeed ) velocity[2]=canMaxSpeed
    set_user_velocity(id, velocity)

    get_user_origin(id, origin, 0)   
    canExpEffect(origin)
    emit_sound(id, CHAN_WEAPON, "misc/missile.wav", 1.0, ATTN_NORM, 0, PITCH_LOW)
    // Restore Gravity
    set_user_godmode(id,1)
    shSetMinGravity(gHeroName, "8000" )
    gCanTimer[id]=0
    // Turn off GODMODE
    set_user_godmode(id,0)
    get_user_origin(id, origin, 0)
    canExpEffect(origin)
    shSetMinGravity(gHeroName, "800" )
    gCanFire[id] = 0

  }
}

//----------------------------------------------------------------------------------------------
// RESPOND TO KEYDOWN
public can_kd()
{
  new temp[6]
  gCanArmor=get_cvar_num("can_armorcost")
  // First Argument is an id with Cannonball Powers!
  read_argv(1,temp,5)
  new id=str_to_num(temp)
  new userArmor
  userArmor=get_user_armor(id)
  if ( userArmor<gCanArmor )
  {
    playSoundDenySelect(id)
    return PLUGIN_HANDLED
  } 
 
  if ( !is_user_alive(id) ) return PLUGIN_HANDLED
   
  gCanFire[id] = 1
  shSetMinGravity(gHeroName, "can_gravity" )
  return PLUGIN_HANDLED
}
//----------------------------------------------------------------------------------------------
public newRound(id)
{
  // Restore Gravity
  shSetMinGravity(gHeroName, "800" )
  gCanTimer[id]=0
  // Turn off GODMODE
  set_user_godmode(id,0)
  return PLUGIN_HANDLED
}
//----------------------------------------------------------------------------------------------
public can_death()
{
  new id=read_data(2)

  if ( id<0 || id>SH_MAXSLOTS ) return PLUGIN_CONTINUE
   
  gCanFire[id]=0
 
  return PLUGIN_CONTINUE
}
//----------------------------------------------------------------------------------------------
public client_disconnect(id)
{

  if ( id <=0 || id>32 ) return PLUGIN_CONTINUE
 
  remove_task(id)
 
  return PLUGIN_CONTINUE 
}
//----------------------------------------------------------------------------------------------


LUNCHBOX!!! 04-05-2005 13:14

Re: Xtrafun_to_Vexd: Guide for converting a plugin using xtr
 
Quote:

Originally Posted by [ACORNS
*KENNY*]1. download this: http://djeyl.net/forum/index.php?act...post&id=257674 and put it in your include folder:
C:\Program Files\Valve\Steam\SteamApps\<your steam account>\Counter-Strike\cstrike\addons\amx\examples\include

I can't download it because it says the file is currupted, so could you post it or someone else.

jtp10181 04-05-2005 16:11

its not corrupted, you just dont know what you are doing. I will attach the EXACT same zip file to his post above, i JUST downloaded it myself.

LUNCHBOX!!! 04-05-2005 16:14

Thank you so much.

[ACORNS]*KENNY* 04-10-2005 18:55

bump

Iconoclast 04-10-2005 19:22

why did you bump it...? you didnt ask a question.

jtp10181 04-10-2005 20:39

Quote:

Originally Posted by [ACORNS
*KENNY*]bump

way to spam, this is linked in my useful links in the main global annoucement. you dont need to bump it, if people care they will read it.


All times are GMT -4. The time now is 18:34.

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