AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Suggestions / Requests (https://forums.alliedmods.net/forumdisplay.php?f=12)
-   -   ask whether they want to Use [Lives] (https://forums.alliedmods.net/showthread.php?t=173838)

lqlqlq 12-11-2011 05:04

ask whether they want to Use [Lives]
 
Can you make a "menu" to ask whether they want to use a lives ?
Here is source:
Code:


#include <amxmodx>
#include <hamsandwich>
#include <fakemeta>
#include <fun>
#include <nvault>

new kills[33],lifes[33],pos[33][3],vault, on,start,kill,life,maxlifes,res_time,res_save_pos,save,savetype
public plugin_init()
{
  register_plugin("Lifes", "1.3", "<VeCo>")
  register_event("DeathMsg","hook_death","a")
  register_forward(FM_PlayerPreThink,"player_think")
  register_cvar("lf_version","1.3",FCVAR_SERVER | FCVAR_SPONLY)
 
  on = register_cvar("lf_on","1")
  start = register_cvar("lf_start_lifes","0")
  kill = register_cvar("lf_kills_needed","2")
  life = register_cvar("lf_lifes_give","1")
  maxlifes = register_cvar("lf_max_lifes","0")
  res_time = register_cvar("lf_respawn_time","2.0")
  res_save_pos = register_cvar("lf_respawn_save_position","0")
  save = register_cvar("lf_save_lifes","0")
  savetype = register_cvar("lf_save_lifes_type","0")
  vault = nvault_open("lifes")
}

public client_connect(id)
{
  kills[id] = 0
  if(get_pcvar_num(save))
  {
      load_lifes(id)
  } else {
      lifes[id] = get_pcvar_num(start)
  }
}

public client_disconnect(id)
{
  if(get_pcvar_num(save)) save_lifes(id)
  lifes[id] = 0
  kills[id] = 0
}

public hook_death()
{
  if(!get_pcvar_num(on)) return
 
  new killer = read_data(1)
  new victim = read_data(2)

  if(get_user_userid(killer) == get_user_userid(victim))
  {
      kills[killer] = 0
  } else {
      kills[killer] += 1
  }
 
  if(get_pcvar_num(maxlifes) < 1)
  {
      if(kills[killer] > get_pcvar_num(kill) - 1)
      {
        lifes[killer] += get_pcvar_num(life)
        kills[killer] = 0
      }
  } else {
      if(kills[killer] > get_pcvar_num(kill) - 1 && lifes[killer] < get_pcvar_num(maxlifes))
      {
        lifes[killer] += get_pcvar_num(life)
        kills[killer] = 0
      }
  }

  if(lifes[victim] >= 1)
  {
      lifes[victim] -= 1
      if(get_pcvar_num(res_save_pos))
      {
        new origin[3]
        get_user_origin(victim,origin)
        pos[victim][0] = origin[0]
        pos[victim][1] = origin[1]
        pos[victim][2] = origin[2]
      }
      set_task(get_pcvar_float(res_time),"respawn",victim)
  }
}

public respawn(id)
{
  if(!is_user_connected(id)) return
  ExecuteHamB(Ham_CS_RoundRespawn,id)
 
  if(get_pcvar_num(res_save_pos))
  {
      new origin[3]
      origin[0] = pos[id][0]
      origin[1] = pos[id][1]
      origin[2] = pos[id][2]
      set_user_origin(id,origin)
  }
}

public player_think(id)
{
  new msg[32]
 
  if(get_pcvar_num(on))
  {
      if(get_pcvar_num(maxlifes) < 1)
      {
        format(msg,31,"Lifes: %i",lifes[id])
      } else {
        format(msg,31,"Lifes: %i/%i",lifes[id],get_pcvar_num(maxlifes))
      }
  } else {
      format(msg,31,"")
  }
 
  message_begin(MSG_ONE,get_user_msgid("StatusText"),{0,0,0},id)
  write_byte(0)
  write_string(msg)
  message_end()
}

public load_lifes(id)
{
  new name[32],ip[16],authid[64],vaultkey[64],vaultdata[256],player_lifes[33]
 
  switch(get_pcvar_num(savetype))
  {
      case 0:
      {
        get_user_name(id,name,31)
        format(vaultkey,63,"[name]%s",name)
      }
      case 1:
      {
        get_user_ip(id,ip,15)
        format(vaultkey,63,"[ip]%s",ip)
      }
      case 2:
      {
        get_user_authid(id,authid,63)
        format(vaultkey,63,"[aulthid]%s",authid)
      }
  }
 
  format(vaultdata,255,"%i#",lifes[id])
  nvault_get(vault,vaultkey,vaultdata,255)
  replace_all(vaultdata, 255, "#", " ")
 
  parse(vaultdata, player_lifes, 31)
  lifes[id] = str_to_num(player_lifes)
}

public save_lifes(id)
{
  new name[32],ip[16],authid[64],vaultkey[64],vaultdata[256]
 
  switch(get_pcvar_num(savetype))
  {
      case 0:
      {
        get_user_name(id,name,31)
        format(vaultkey,63,"[name]%s",name)
      }
      case 1:
      {
        get_user_ip(id,ip,15)
        format(vaultkey,63,"[ip]%s",ip)
      }
      case 2:
      {
        get_user_authid(id,authid,63)
        format(vaultkey,63,"[aulthid]%s",authid)
      }
  }
 
  format(vaultdata,255,"%i#",lifes[id])
  nvault_set(vault,vaultkey,vaultdata)
}



All times are GMT -4. The time now is 20:58.

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