Jetpack

Vaata eelmist teemat Vaata järgmist teemat Go down

DateN
DateN
Juunior
Liitus : 14/01/2013
Postitusi : 44

PostitamineDateN 18.08.13 17:47

Tervist, tahaks seda: https://forums.alliedmods.net/showthread.php?p=378086 - Jetpacki nii et ainult immu adminid saavad seda kasutada ja et se  oleks nii et kui kirjutad selle kommandi siis se kestaks teatud aja et seda aega saaks sättida cvariga. Tänan ette ära juba (:
Tonight
Tonight

Jetpack Vetera11
Liitus : 19/02/2012
Postitusi : 17983

PostitamineTonight 18.08.13 17:58

Tegin selle osa ära, et ainult immu adminid saavad seda kasutada. See aja sättimine nii lihtne pole, hiljem kui aega saan, süvenen koodi ja üritan ära teha.

Kood:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <cstrike>
#include <engine>

new SPRITE_MODEL[]    = "sprites/explode1.spr"
new JETPACK_PMODEL[]    = "models/p_longjump.mdl"
new JETPACK_GOTSOUND[]    = "items/ammopickup2.wav"

new cvar_cost
new cvar_thrust
new cvar_min_speed
new cvar_max_speed

new sprite_fire

new g_HasJetpack[33]
new g_JetpackEnt[33]

static const PLUGIN_NAME[]    = "SyN Surf Jetpack"
static const PLUGIN_AUTHOR[]    = "Cheap_Suit"
static const PLUGIN_VERSION[]   = "1.4"

public plugin_init()
{
   new mapName[33]
   get_mapname(mapName, 32)
   
   if(!equali(mapName, "surf_", 5))
   {
      new pluginName[33]
      format(pluginName, 32, "[Disabled] %s", PLUGIN_NAME)
      register_plugin(pluginName, PLUGIN_VERSION, PLUGIN_AUTHOR)
      pause("ade")
   }
   else
   {
      register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
      register_cvar(PLUGIN_NAME, PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER)
      
      register_clcmd("sjp_givesj" ,       "cmd_GiveSJ",       ADMIN_IMMUNITY, "<userid> - Gives free surf jetpack")
      register_clcmd("sjp_stripsj" ,       "cmd_StripSJ",       ADMIN_IMMUNITY, "<userid> - Strips users surf jetpack")
      
      register_clcmd("say /buyjetpack",    "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
      register_clcmd("say buy_jetpack",    "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
      register_concmd("buy_jetpack",       "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
      register_concmd("buyjetpack",       "cmd_BuySurfJetpack", ADMIN_IMMUNITY, "Buys surf jetpack")
      
      cvar_cost   = register_cvar("sjp_cost", "5000")
      cvar_thrust    = register_cvar("sjp_thrust", "10")
      cvar_min_speed    = register_cvar("sjp_min_speed", "400")
      cvar_max_speed    = register_cvar("sjp_max_speed", "1200")
      
      register_event("DeathMsg",       "Event_DeathMsg", "a")
   }
}

public plugin_precache()
{
   sprite_fire = precache_model(SPRITE_MODEL)
   precache_sound(JETPACK_GOTSOUND)
   precache_model(JETPACK_PMODEL)
}

public client_connect(id)
{
   g_HasJetpack[id] = 0
   _removeJetpackEnt(id)
}
   
public client_disconnect(id)
{
   g_HasJetpack[id] = 0
   _removeJetpackEnt(id)
}

public Event_DeathMsg()
{
   new id = read_data(2)

   g_HasJetpack[id] = 0
   _removeJetpackEnt(id)

   return PLUGIN_CONTINUE
}

public cmd_BuySurfJetpack(id)
{
   new iMoney = cs_get_user_money(id)
   new iCost = get_pcvar_num(cvar_cost)
   
   if(!is_user_alive(id))
      client_print(id, print_center, "You cant buy when your dead!")
   else if(g_HasJetpack[id])
      client_print(id, print_center, "You already own a surf jetpack.")
   else if(iMoney < iCost)
      client_print(id, print_center, "Insufficient funds! ($%d)", iCost)
   else
   {
      _give_Jetpack(id)
      cs_set_user_money(id, iMoney - iCost, 1)
     }
   return PLUGIN_HANDLED
}

public cmd_GiveSJ(id , level , cid)
{
   if(!cmd_access(id , level , cid , 2))
      return PLUGIN_HANDLED
      
   new arg1[33]
   read_argv(1 , arg1 , 32)

   new target = cmd_target(id , arg1 , 0)
   if(!is_user_connected(target))
   {
      console_print(id, "Player does not exist")
      return PLUGIN_HANDLED
   }

   if(g_HasJetpack[target])
   {
      console_print(id, "Player already has a surf jetpack")
      return PLUGIN_HANDLED
   }
   
   _give_Jetpack(target)

   new Name[33], Name2[33]
   get_user_name(id, Name, 32)
   get_user_name(target, Name2, 32)
   
   console_print(id, "You gave %s a surf jetpack", Name2)
   client_print(target, print_chat, "ADMIN: %s gave you a surf jetpack", Name)
   
   return PLUGIN_HANDLED
}

public cmd_StripSJ(id , level , cid)
{
   if(!cmd_access(id , level , cid , 2))
      return PLUGIN_HANDLED
      
   new arg1[33]
   read_argv(1 , arg1 , 32)

   new target = cmd_target(id , arg1 , 0)
   if(!is_user_connected(target))
   {
      console_print(id, "Player does not exist")
      return PLUGIN_HANDLED
   }

   if(!g_HasJetpack[target])
   {
      console_print(id, "Player does not have a surf jetpack")
      return PLUGIN_HANDLED
   }
   
   g_HasJetpack[id] = 0
   _removeJetpackEnt(id)

   new Name[33], Name2[33]
   get_user_name(id, Name, 32)
   get_user_name(target, Name2, 32)
   
   console_print(id, "You stripped %s a surf jetpack", Name2)
   client_print(target, print_chat, "ADMIN: %s stripped your surf jetpack", Name)
   
   return PLUGIN_HANDLED
}

public _give_Jetpack(id)
{
   g_HasJetpack[id] = 1
   client_cmd(id, "spk %s", JETPACK_GOTSOUND)
   client_print(id, print_chat, "You've got a surf jetpack! :: HOW TO USE :: ~ Just Surf ~ ")
   
   if(g_JetpackEnt[id] < 1)
   {
      g_JetpackEnt[id] = create_entity("info_target")
      if(is_valid_ent(g_JetpackEnt[id]))
      {
         entity_set_model(g_JetpackEnt[id], JETPACK_PMODEL)
         entity_set_int(g_JetpackEnt[id], EV_INT_movetype, MOVETYPE_FOLLOW)
         entity_set_edict(g_JetpackEnt[id], EV_ENT_aiment, id)
      }
   }
}

public _removeJetpackEnt(id)
{
   if(g_JetpackEnt[id] > 0)
      remove_entity(g_JetpackEnt[id])
   g_JetpackEnt[id] = 0
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !g_HasJetpack[id])
      return PLUGIN_CONTINUE
      
   if(get_user_speed(id) < get_pcvar_num(cvar_min_speed))
      return PLUGIN_CONTINUE   
      
   new Button = get_user_button(id)
   if(Button & IN_MOVELEFT || Button & IN_MOVERIGHT)
   {      
      _jetEffect(id)   
      _jetThrust(id)
   }
   return PLUGIN_CONTINUE
}

public _jetThrust(id)
{   
   new Float:fVelocity[3]
   entity_get_vector(id, EV_VEC_velocity, fVelocity)

   new Float:fAngle[3]
   entity_get_vector(id, EV_VEC_angles, fAngle)
   engfunc(EngFunc_MakeVectors, fAngle)
            
   new Float:fForward[3]
   get_global_vector(GL_v_forward, fForward)
            
   fVelocity[0] += fForward[0] * get_pcvar_num(cvar_thrust)
   fVelocity[1] += fForward[1] * get_pcvar_num(cvar_thrust)
         
   if(get_user_speed(id) < get_pcvar_num(cvar_max_speed))
      entity_set_vector(id, EV_VEC_velocity, fVelocity)
      
   return PLUGIN_CONTINUE
}

public _jetEffect(id)
{   
   new iOrigin[3]
   get_user_origin(id, iOrigin, 0)
   
   message_begin(MSG_BROADCAST, SVC_TEMPENTITY)
   write_byte(17)
   write_coord(iOrigin[0])
   write_coord(iOrigin[1])
   write_coord(iOrigin[2])
   write_short(sprite_fire)
   write_byte(10)
   write_byte(115)
   message_end()
   
   entity_set_int(id , EV_INT_gaitsequence , 8)
}

stock get_user_speed(id)
{
   new Float:fVelocity[3]
   entity_get_vector(id, EV_VEC_velocity, fVelocity)
   
   new iVelocity[3]
   FVecIVec(fVelocity, iVelocity)
   
   new iVelocity0 = iVelocity[0] * iVelocity[0]
   new iVelocity1 = iVelocity[1] * iVelocity[1]
   
   return sqroot(iVelocity0 + iVelocity1)
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
Tehnik aK
Tehnik aK
Komeet
Liitus : 28/03/2013
Postitusi : 453

PostitamineTehnik aK 13.03.14 1:25

Kas nüüd on aega ära teha ?

Vaata eelmist teemat Vaata järgmist teemat Tagasi üles

Soovid vestluses osaleda?

Selleks logi sisse või tee endale kasutaja.

Liitu foorumiga

Tee endale kasutaja ning osale aruteludes.


Tee uus kasutaja

Logi sisse

Omad foorumis juba kasutajat? Logi sisse.


Logi sisse

 
Permissions in this forum:
Sa ei saa vastata siinsetele teemadele