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)
}
|