liptonabcde 发表于 2005-10-6 13:25:24

好东西啊~~这个是使你跑步没声音的鞋子

/*
*
*   Stealth Shoes
*   Version 2.0
*   Author: AssKicR;   to_asskicr@hotmail.com (MSN)DaAssKicR (AIM)
*
*   This plugin will add a Stealth Shoes to Counter-Strike. You can buy/sell your shoes
*   While using it you will have silent footsteps
*   You can set the cost of the Stealth Shoes and enable/disable buyzone & buytime.
*
*   Requirements:
*      Compiled on 0.9.4.
*      Should work successfully on 0.9.3
*      Tested successfully on 0.9.4.
*      Should work successfully on 0.9.5.
*
*   Admin Commands:
*      amx_shoes < nick, uniqueid, #userid, @TEAM, or * > <- Gives Stealth Shoes to specified client(s)
*      amx_unshoes < nick, uniqueid, #userid, @TEAM, or * > <- Take Away Stealth Shoes
*
*   Client Commands:
*      say /shoes <- Displays the Stealth Shoes help menu
*      buyshoes <- Buys a Stealth Shoes for specified player
*         (Player must be in buyzone if specified by CVAR)
*      sellshoes <- Sells player's Stealth Shoes for 75% of the buy price
*
*   Server CVARs:
*      shoes_cost "1500 - 10000" <- Amount of cash it takes to buy a Stealth Shoes
*      shoes_buyzone 1/0 <- If on, player will required to be in a buyzone when buying Stealth Shoes
*      shoes_buytime 1/0 <- If on, only allows player to buy Stealth Shoes during buytime
*
*/

#include <amxmod>
#include <amxmisc>
#include <xtrafun>

new bool:StealthShoes

new bool:BuyTimeAllow
new bool:BuyZoneAllow
new Float:BuyTimeFloat
new BuyTimeNum
new bool:BuyTimeCvar
new bool:BuyZoneCvar

//TAKE AWAY CODE BELOW TO REMOVE CONNECT MESSAGE
public client_connect(id) {
   client_cmd(id,"echo ^"========================================================================^"")
   client_cmd(id,"echo ^" This server is running the Stealth Shoes plugin.            ^"")
   client_cmd(id,"echo ^"In order to buy a Stealth Shoes, type /shoes for details.            ^"")
   client_cmd(id,"echo ^"========================================================================^"")
   StealthShoes=false
}
//TAKE AWAY CODE ABOVE TO REMOVE CONNECT MESSAGE

public client_disconnect(id) {
   StealthShoes=false
}

public ass_sshoes(id,level,cid) {
   if (!cmd_access(id,level,cid,2)) {
      return PLUGIN_HANDLED
   }

   new victim
   read_argv(1,victim,31)

   new admin
   get_user_name(id,admin,31)

   if (victim=='@') {
      new team, inum
      get_players(team,inum,"e",victim)
      if (inum==0) {
         console_print(id," No clients found on such team.")
         return PLUGIN_HANDLED
      }
      for (new i=0;i<inum;++i) {
         StealthShoes]=true
         set_user_footsteps(team,1)
         client_print(0,print_chat,"AMX Command: %s has gave all %s's Stealth Shoes.",admin,victim)
      }
   }
   else if (victim=='*') {
      new all, inum
      get_players(all,inum)
      for (new i=0;i<inum;++i) {
         StealthShoes]=true
         set_user_footsteps(all,1)
         client_print(0,print_chat,"AMX Command: %s has gave all clients Stealth Shoes.",admin)
      }
   }
   else {
      new player = cmd_target(id,victim,0)
      new playername
      get_user_name(player,playername,31)

      if (!player) {
         return PLUGIN_HANDLED
      }

      StealthShoes=true
      set_user_footsteps(player,1)
      client_print(0,print_chat,"AMX Command: %s has given %s a pair of Stealth Shoes.",admin,playername)
   }

   return PLUGIN_HANDLED
}

public ass_unsshoes(id,level,cid) {
   if (!cmd_access(id,level,cid,2)) {
      return PLUGIN_HANDLED
   }

   new victim
   read_argv(1,victim,31)

   new admin
   get_user_name(id,admin,31)

   if (victim=='@') {
      new team, inum
      get_players(team,inum,"e",victim)
      if (inum==0) {
         console_print(id," No clients found on such team.")
         return   PLUGIN_HANDLED
      }
      for (new i=0;i<inum;i++) {
         StealthShoes]=false
         set_user_footsteps(team,0)
         client_print(0,print_chat,"AMX Command: %s sabotaged all %s's Stealth Shoess.",admin,victim)
      }
   }
   else if (victim=='*') {
      new all, inum
      get_players(all,inum)
      for (new i=0;i<inum;++i) {
         StealthShoes]=false
         set_user_footsteps(all,0)
         client_print(0,print_chat,"AMX Command: %s sabotaged everyones Stealth Shoess.",admin)
      }
   }
   else {
      new player = cmd_target(id,victim,0)
      new playername
      get_user_name(player,playername,31)

      if (!player) {
         return PLUGIN_HANDLED
      }

      StealthShoes=false
      set_user_footsteps(player,0)
      client_print(0,print_chat,"AMX Command: %s sabotaged %s's Stealth Shoes.",admin,playername)
   }

   return PLUGIN_HANDLED
}

public cost_force() {
   if (get_cvar_num("shoes_cost") < 1500) {
      set_cvar_num("shoes_cost",1500)
   }
   if (get_cvar_num("shoes_cost") > 10000) {
      set_cvar_num("shoes_cost",10000)
   }
   return PLUGIN_CONTINUE
}

public RoundTime()
{
   if ( read_data(1)==get_cvar_num("mp_freezetime") || read_data(1)==6 ) // freezetime starts
   {
      remove_task(701) // remove buytime task
      BuyTimeAllow = true
      BuyTimeFloat = get_cvar_float("mp_buytime") * 60
      BuyTimeNum = floatround(BuyTimeFloat,floatround_floor)
      BuyTimeCvar = (get_cvar_num("shoes_buytime")) ? true : false
      BuyZoneCvar = (get_cvar_num("shoes_buyzone")) ? true : false
   }
   else // freezetime is over
   {
      set_task(BuyTimeFloat,"BuyTimeTask",701)
   }

   return PLUGIN_CONTINUE
}

public BuyTimeTask()
{
   BuyTimeAllow = false // buytime is over
}

public BuyIcon(id) // player is in buyzone?
{
   if (read_data(1))
      BuyZoneAllow = true
   else
      BuyZoneAllow = false

   return PLUGIN_CONTINUE
}

public Check(id) // check if player can buy
{
   if ( !is_user_alive(id)){
      client_print(id,print_center,"You cannot buy while dead.")
      return false
   }
   
   if ((!BuyZoneAllow&&BuyZoneCvar) ) {
      client_print(id,print_center,"You cannot buy outside of the buyzone.")
      return false
   }
   
   if (BuyTimeCvar) {
      if (!CheckTime(id))
         return false
   }
   return true
}

public CheckTime(id) // check buytime
{
   if (!BuyTimeAllow)
   {
      client_print(id,print_center,"%d seconds have passed...^n^nYou can't buy anything now!",BuyTimeNum)
      return false
   }
   return true
}

public buy_shoes(id) {
   new name
   get_user_name(id,name,31)
   new userCash = get_user_money(id)
   new shade_cost = get_cvar_num("shoes_cost")
   
   if (StealthShoes) {
      client_print(id,print_chat," You currently have a pair of Stealth Shoes.")
      return PLUGIN_HANDLED
   }
   if (!Check(id)) {
      return PLUGIN_HANDLED
   }

   if (!is_user_alive(id)) {
      return   PLUGIN_HANDLED
   }

   if (userCash < shade_cost) {
      client_print(id,print_center,"You have insufficient funds!")
      client_print(id,print_chat," You do not have enough money to buy Stealth Shoes. You need $%i.",shade_cost)
      return   PLUGIN_HANDLED
   }
   else if (userCash >= shade_cost) {
      StealthShoes=true
      set_user_footsteps(id,1)
      set_user_money(id,userCash - shade_cost,1)
      client_print(id,print_chat," You have successfully bought a pair of Stealth Shoes.")
      return   PLUGIN_HANDLED
   }
   
   return PLUGIN_HANDLED
}

public sell_shoes(id) {
   new name
   get_user_name(id,name,31)
   new userCash = get_user_money(id)
   new shade_sell = get_cvar_num("shoes_cost")*2/3

   if (!StealthShoes) {
      client_print(id,print_chat," You currently do not have a pair of Stealth Shoes.")
   }

   if (StealthShoes) {
      StealthShoes=false
      set_user_footsteps(id,0)
      set_user_money(id,userCash + shade_sell,1)
      client_print(id,print_chat," You have sold your Stealth Shoes for 75 percent of the sell price.")
   }

   return PLUGIN_HANDLED
}

public HandleSay(id) {
   new Speech
   read_args(Speech,192)
   remove_quotes(Speech)
   if( (containi(Speech, "water") != -1) || (containi(Speech, "diving") != -1) || (containi(Speech, "damage") != -1) || (containi(Speech, "breathe") != -1) ){
         client_print(id,print_chat, " You can buy Stealth Shoes on this server. Type /shoes for details.")
      }
   return PLUGIN_CONTINUE
}

public shoes_help(id)
{
new buffer
new len = copy( buffer ,1023 ,"Buy Stealth Shoes:^n\
Bind a key to buyshoes -- OR -- Type buyshoes in console^n^n\
Sell Stealth Shoes:^n\
Bind a key to sellshoes -- OR -- type sellshoes in console^n^n\
In order to bind a key you must open your console and use the bind command: ^n\
Bind ^"key^" ^"command^" ^n^n" )
   
len += copy( buffer ,1023-len , "In this case the commands are ^"buyshoes^" & ^"sellshoes^".^nHere are some examples:^n\
    bind / buyshoes            bind / sellshoes^n^n\
When you have the Stealth Shoes:^n\
- You will have silent footsteps when using this. ")
show_motd(id,buffer ,"Stealth Shoes Help:")
return PLUGIN_HANDLED
}

public CheckIt() {
   new all, inum
   get_players(all,inum)
   for (new i=0;i<inum;++i) {
      if (StealthShoes){
         set_user_footsteps(i,1)
      }else{
      set_user_footsteps(i,0)
      }
   }
}

public player_death()
{
   new id = read_data(2)
   set_user_footsteps(id,0)       
   StealthShoes=false
   return PLUGIN_HANDLED
}

public plugin_init() {
   register_plugin("Stealth Shoes","2.0","AssKicR")
   register_clcmd("buyshoes","buy_shoes")
   register_clcmd("sellshoes","sell_shoes")
   register_concmd("amx_shoes","ass_sshoes",ADMIN_LEVEL_A,"< Nick, UniqueID, #userid, @TEAM, or * > gives player a pair of stealth shoes")
   register_concmd("amx_unshoes","ass_unsshoes",ADMIN_LEVEL_A,"< Nick, UniqueID< #userid, @TEAM, or * > removes player's stealth shoes")
   register_cvar("shoes_cost","2000")
   register_cvar("shoes_buyzone","1")
   register_cvar("shoes_buytime","1")

   register_event("StatusIcon","BuyIcon","be","2=buyzone")
   register_event("RoundTime","RoundTime","bc")
   register_event("DeathMsg", "player_death", "a")

   register_clcmd("say","HandleSay",0)
   register_clcmd("say /shoes", "shoes_help",0,": Opens Stealth Shoes help menu")

   set_task(0.5,"cost_force",0,"",0,"b")
   set_task(1.0,"CheckIt",0,"",0,"b")

   return PLUGIN_CONTINUE
}

Ulu2005 发表于 2005-10-6 16:02:11

回复: 好东西啊~~这个是使你跑步没声音的鞋子


给个注释吧 ;)

kila华少 发表于 2005-10-6 17:32:46

回复: 好东西啊~~这个是使你跑步没声音的鞋子

这个是不公平的...比赛肯定不会采纳!

Enigmaya 发表于 2005-10-6 21:54:57

回复: 好东西啊~~这个是使你跑步没声音的鞋子

Post by kila华少
这个是不公平的...比赛肯定不会采纳!

干嘛扯到比赛? 大部分插件不是为了比赛而开发的哦。。。 :p

kila华少 发表于 2005-10-7 13:28:22

回复: 好东西啊~~这个是使你跑步没声音的鞋子

Post by Enigmaya
干嘛扯到比赛? 大部分插件不是为了比赛而开发的哦。。。 :p
如果自己以前是靠这个插件...次次都能打赢...但如果(我说如果,就是一些长大了会去大比赛的CSER)
一到比赛不用的次次都输...哈哈哈哈哈哈哈哈哈哈哈 :boss:
页: [1]
查看完整版本: 好东西啊~~这个是使你跑步没声音的鞋子