#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <colorchat>
#include <dhudmessage>
#include <cstrike>
#include hamsandwich
#include fakemeta
#include adv_vault
#define NivelSiguente(%1) (%1 * 150 + 50)
#define NivelMax 1010
new Nivel[33], exp[33], gBlock[33]
new g_maxplayers, cvar_expHS
new g_contra[33][20], g_contra2[33][20], g_cuenta[33][32];
new g_vault,g_MsgVgui, g_MsgShowMenu;
new g_Estado[33], g_Can[33], g_Fecha[33][32];
// CONST & ENUMS
enum {
LVL,
EXP,
FECHA,
PASSWORD,
DATA_M
};
enum {
NOREGISTRADO = 0,
REGISTRADO,
LOGUEADO,
ESTADOS
};
new const Estado[ESTADOS][] = { "Sin Registrar", "Registrado", "Logueado" };
new g_campo[DATA_M];
new const WEAPONENTNAMES[][] = { "", "weapon_hegrenade", "weapon_xm1014", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249", "weapon_p228", "weapon_tmp", "weapon_ump45", "weapon_sg552",
"weapon_m3", "weapon_elite", "weapon_scout", "weapon_famas", "weapon_p90", "weapon_galil", "weapon_fiveseven", "weapon_m4a1", "weapon_g3sg1", "weapon_sg550", "weapon_deagle", "weapon_ak47", "weapon_knife",
"weapon_mac10", "weapon_aug"
}
// MODELS & SOUND
new const
//CUCHILLOS
knife1[] = "models/LF-Models/v_knife-20.mdl",
knife2[] = "models/LF-Models/v_knife-320.mdl",
knife3[] = "models/LF-Models/v_knife-620.mdl",
//PISTOLAS
usp1[] = "models/LF-Models/v_usp-35.mdl",
usp2[] = "models/LF-Models/v_usp-335.mdl",
usp3[] = "models/LF-Models/v_usp-635.mdl",
glock1[] = "models/LF-Models/v_glock18-35.mdl",
glock2[] = "models/LF-Models/v_glock18-335.mdl",
glock3[] = "models/LF-Models/v_glock18-635.mdl",
fiveseven1[] = "models/LF-Models/v_fiveseven-50.mdl",
fiveseven2[] = "models/LF-Models/v_fiveseven-350.mdl",
fiveseven3[] = "models/LF-Models/v_fiveseven-650.mdl",
dualelites1[] = "models/LF-Models/v_elite-50.mdl",
dualelites2[] = "models/LF-Models/v_elite-350.mdl",
dualelites3[] = "models/LF-Models/v_elite-650.mdl",
deagle1[] = "models/LF-Models/v_deagle-70.mdl",
deagle2[] = "models/LF-Models/v_deagle-370.mdl",
deagle3[] = "models/LF-Models/v_deagle-670.mdl",
p2281[] = "models/LF-Models/v_p228-40.mdl",
p2282[] = "models/LF-Models/v_p228-340.mdl",
p2283[] = "models/LF-Models/v_p228-640.mdl",
//METRALLETAS
mp51[] = "models/LF-Models/v_mp5-110.mdl",
mp52[] = "models/LF-Models/v_mp5-410.mdl",
mp53[] = "models/LF-Models/v_mp5-710.mdl",
p901[] = "models/LF-Models/v_p90-120.mdl",
p902[] = "models/LF-Models/v_p90-420.mdl",
p903[] = "models/LF-Models/v_p90-720.mdl",
mac1[] = "models/LF-Models/v_mac10-100.mdl",
mac2[] = "models/LF-Models/v_mac10-400.mdl",
mac3[] = "models/LF-Models/v_mac10-700.mdl",
tmp1[] = "models/LF-Models/v_tmp-130.mdl",
tmp2[] = "models/LF-Models/v_tmp-430.mdl",
tmp3[] = "models/LF-Models/v_tmp-730.mdl",
ump1[] = "models/LF-Models/v_ump45-140.mdl",
ump2[] = "models/LF-Models/v_ump45-440.mdl",
ump3[] = "models/LF-Models/v_ump45-740.mdl",
//RIFLES
ak471[] = "models/LF-Models/v_ak47-170.mdl",
ak472[] = "models/LF-Models/v_ak47-470.mdl",
ak473[] = "models/LF-Models/v_ak47-770.mdl",
aug1[] = "models/LF-Models/v_aug-180.mdl",
aug2[] = "models/LF-Models/v_aug-480.mdl",
aug3[] = "models/LF-Models/v_aug-780.mdl",
awp1[] = "models/LF-Models/v_awp-250.mdl",
awp2[] = "models/LF-Models/v_awp-550.mdl",
awp3[] = "models/LF-Models/v_awp-850.mdl",
famas1[] = "models/LF-Models/v_famas-150.mdl",
famas2[] = "models/LF-Models/v_famas-450.mdl",
famas3[] = "models/LF-Models/v_famas-750.mdl",
g31[] = "models/LF-Models/v_g3sg1-200.mdl",
g32[] = "models/LF-Models/v_g3sg1-500.mdl",
g33[] = "models/LF-Models/v_g3sg1-800.mdl",
galil1[] = "models/LF-Models/v_galil-150.mdl",
galil2[] = "models/LF-Models/v_galil-450.mdl",
galil3[] = "models/LF-Models/v_galil-750.mdl",
m41[] = "models/LF-Models/v_m4a1-170.mdl",
m42[] = "models/LF-Models/v_m4a1-470.mdl",
m43[] = "models/LF-Models/v_m4a1-770.mdl",
sg1[] = "models/LF-Models/v_sg550-200.mdl",
sg2[] = "models/LF-Models/v_sg550-500.mdl",
sg3[] = "models/LF-Models/v_sg550-800.mdl",
scout1[] = "models/LF-Models/v_scout-145.mdl",
scout2[] = "models/LF-Models/v_scout-445.mdl",
scout3[] = "models/LF-Models/v_scout-745.mdl",
sg21[] = "models/LF-Models/v_sg552-180.mdl",
sg22[] = "models/LF-Models/v_sg552-480.mdl",
sg23[] = "models/LF-Models/v_sg552-780.mdl",
//MACHINE GUN
m2491[] = "models/LF-Models/v_m249-270.mdl",
m2492[] = "models/LF-Models/v_m249-570.mdl",
m2493[] = "models/LF-Models/v_m249-870.mdl",
//ESCOPETAS
m31[] = "models/LF-Models/v_m3-80.mdl",
m32[] = "models/LF-Models/v_m3-380.mdl",
m33[] = "models/LF-Models/v_m3-680.mdl",
m34[] = "models/LF-Models/v_m3-980.mdl",
mx1[] = "models/LF-Models/v_xm1014-90.mdl",
mx2[] = "models/LF-Models/v_xm1014-390.mdl",
mx3[] = "models/LF-Models/v_xm1014-690.mdl",
mx4[] = "models/LF-Models/v_xm1014-990.mdl",
//BOMBAS
he1[] = "models/LF-Models/v_hegrenade-60.mdl",
he2[] = "models/LF-Models/v_hegrenade-360.mdl",
he3[] = "models/LF-Models/v_hegrenade-660.mdl"
public plugin_init()
{
register_plugin("Surf", "2.0", "Nazi.-")
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_event("DeathMsg", "EventoMuerte", "a")
RegisterHam(Ham_TakeDamage, "player", "fwHamTakeDamage");
for (new i = 1; i < sizeof WEAPONENTNAMES; i++)
if (WEAPONENTNAMES[i][0]) RegisterHam(Ham_Item_Deploy, WEAPONENTNAMES[i], "fw_Item_Deploy_Post", 1)
register_concmd("sf_remove", "cmd_quitarlvl", ADMIN_RCON, "<Nombre>") // Quitar todos los niveles y experiencia
register_concmd("sf_lvl", "cmd_lvl", ADMIN_RCON, "<Nombre> <Nivel>") // Quitar cantidad moderada de niveles
register_concmd("sf_exp", "cmd_exp", ADMIN_RCON, "<Nombre> <Experiencia>") // Quitar cantidad moderada de experiencia
register_clcmd("/level", "verlevel")
register_clcmd("/xp", "VerExp")
register_clcmd("/nextlevel", "nextlevel")
register_clcmd("INGRESAR_PASSWORD", "Contra");
register_clcmd("nightvision", "menuprim")
g_maxplayers = get_maxplayers()
cvar_expHS = register_cvar("Puntos_HS", "3");
g_MsgVgui = get_user_msgid("VGUIMenu");
g_MsgShowMenu = get_user_msgid("ShowMenu");
register_message(g_MsgVgui, "message_VGUImenu");
register_message(g_MsgShowMenu, "message_VGUImenu");
register_forward(FM_ClientUserInfoChanged, "fw_clientinfo_changed");
g_vault = adv_vault_open("Cuentas", false);
g_campo[EXP] = adv_vault_register_field(g_vault, "EXP")
g_campo[LVL] = adv_vault_register_field(g_vault, "LVL")
g_campo[FECHA] = adv_vault_register_field(g_vault, "FECHA", DATATYPE_STRING, 32);
g_campo[PASSWORD] = adv_vault_register_field(g_vault, "PW", DATATYPE_STRING, 20);
adv_vault_init(g_vault);
set_task(0.9,"hudjuego",_,_,_,"b")
}
public plugin_cfg() {
server_cmd("mp_freezetime 0")
server_cmd("mp_autoteambalance 1")
server_cmd("mp_startmoney 16000")
server_cmd("mp_buytime 99999")
server_cmd("mp_timelimit 40")
server_cmd("sv_airaccelerate 100")
server_cmd("sv_airmove 9999")
}
public plugin_precache() {
set_lights("h")
//CUCHILLOS
precache_model(knife1)
precache_model(knife2)
precache_model(knife3)
//PISTOLAS
precache_model(usp1)
precache_model(usp2)
precache_model(usp3)
precache_model(glock1)
precache_model(glock2)
precache_model(glock3)
precache_model(fiveseven1)
precache_model(fiveseven2)
precache_model(fiveseven3)
precache_model(dualelites1)
precache_model(dualelites2)
precache_model(dualelites3)
precache_model(deagle1)
precache_model(deagle2)
precache_model(deagle3)
precache_model(p2281)
precache_model(p2282)
precache_model(p2283)
//METRALLETAS
precache_model(mp51)
precache_model(mp52)
precache_model(mp53)
precache_model(p901)
precache_model(p902)
precache_model(p903)
precache_model(mac1)
precache_model(mac2)
precache_model(mac3)
precache_model(tmp1)
precache_model(tmp2)
precache_model(tmp3)
precache_model(ump1)
precache_model(ump2)
precache_model(ump3)
//RIFLES
precache_model(ak471)
precache_model(ak472)
precache_model(ak473)
precache_model(aug1)
precache_model(aug2)
precache_model(aug3)
precache_model(awp1)
precache_model(awp2)
precache_model(awp3)
precache_model(famas1)
precache_model(famas2)
precache_model(famas3)
precache_model(g31)
precache_model(g32)
precache_model(g33)
precache_model(galil1)
precache_model(galil2)
precache_model(galil3)
precache_model(m41)
precache_model(m42)
precache_model(m43)
precache_model(sg1)
precache_model(sg2)
precache_model(sg3)
precache_model(scout1)
precache_model(scout2)
precache_model(scout3)
precache_model(sg21)
precache_model(sg22)
precache_model(sg23)
//MACHINE GUN
precache_model(m2491)
precache_model(m2492)
precache_model(m2493)
//ESCOPETAS
precache_model(m31)
precache_model(m32)
precache_model(m33)
precache_model(m34)
precache_model(mx1)
precache_model(mx2)
precache_model(mx3)
precache_model(mx4)
//BOMBAS
precache_model(he1)
precache_model(he2)
precache_model(he3)
}
public client_putinserver(id) {
get_user_name(id, g_cuenta[id], 31);
get_time("%c", g_Fecha[id], 31);
g_contra[id][0] = '^0';
g_Estado[id] = NOREGISTRADO;
g_Can[id] = 0;
Nivel[id] = 1
exp[id] = 0
Cargar(id);
}
public client_disconnect(id) {
Guardar(id);
}
public event_round_start() {
for(new i = 1; i <= get_maxplayers();i++) {
if(!is_user_connected(i))continue
gBlock[i] = 0
}
}
public EventoMuerte() {
new attacker = read_data(1)
new victim = read_data(2)
new hs = read_data(3)
new weaponid = get_user_weapon(attacker);
if(attacker == victim || !is_user_connected(attacker) || !is_user_connected(victim))
return
exp[attacker]+= 30
if(get_pcvar_num(cvar_expHS)) {
if(hs) exp[attacker]+= 10
}
if(weaponid == CSW_KNIFE) {
exp[attacker]+= 15
}
ver_nivel(attacker)
}
public ver_nivel(id) {
new subido = false
while(exp[id] >= NivelSiguente(Nivel[id]) && Nivel[id] < NivelMax) {
Nivel[id]++
subido = true;
}
if(subido) {
client_cmd(id, "spk ^"%s^"");
ColorChat(id, NORMAL, "^3Felicitaciones, subiste al nivel ^4%d", Nivel[id])
subido = false
}
}
public fw_Item_Deploy_Post(wpn) {
static id; id = get_weapon_ent_owner(wpn);
if (!pev_valid(id) || !is_user_alive( id )) return;
static WeaponID; WeaponID = cs_get_weapon_id(wpn);
// Primera ronda de armas
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 20) set_pev(id, pev_viewmodel2, knife1);
if(WeaponID == CSW_GLOCK18) if(Nivel[id] >= 35) set_pev(id, pev_viewmodel2, glock1);
if(WeaponID == CSW_USP) if(Nivel[id] >= 35) set_pev(id, pev_viewmodel2, usp1);
if(WeaponID == CSW_P228) if(Nivel[id] >= 40) set_pev(id, pev_viewmodel2, p2281);
if(WeaponID == CSW_ELITE) if(Nivel[id] >= 50) set_pev(id, pev_viewmodel2, dualelites1);
if(WeaponID == CSW_FIVESEVEN) if(Nivel[id] >= 50) set_pev(id, pev_viewmodel2, fiveseven1);
if(WeaponID == CSW_DEAGLE) if(Nivel[id] >= 70) set_pev(id, pev_viewmodel2, deagle1);
if(WeaponID == CSW_M3) if(Nivel[id] >= 80) set_pev(id, pev_viewmodel2, m31);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 90) set_pev(id, pev_viewmodel2, mx1);
if(WeaponID == CSW_MAC10) if(Nivel[id] >= 100) set_pev(id, pev_viewmodel2, mac1);
if(WeaponID == CSW_MP5NAVY) if(Nivel[id] >= 110) set_pev(id, pev_viewmodel2, mp51);
if(WeaponID == CSW_P90) if(Nivel[id] >= 120) set_pev(id, pev_viewmodel2, p901);
if(WeaponID == CSW_TMP) if(Nivel[id] >= 130) set_pev(id, pev_viewmodel2, tmp1);
if(WeaponID == CSW_UMP45) if(Nivel[id] >= 140) set_pev(id, pev_viewmodel2, ump1);
if(WeaponID == CSW_GALIL) if(Nivel[id] >= 150) set_pev(id, pev_viewmodel2, galil1);
if(WeaponID == CSW_FAMAS) if(Nivel[id] >= 150) set_pev(id, pev_viewmodel2, famas1);
if(WeaponID == CSW_AK47) if(Nivel[id] >= 170) set_pev(id, pev_viewmodel2, ak471);
if(WeaponID == CSW_M4A1) if(Nivel[id] >= 170) set_pev(id, pev_viewmodel2, m41);
if(WeaponID == CSW_SCOUT) if(Nivel[id] >= 145) set_pev(id, pev_viewmodel2, scout1);
if(WeaponID == CSW_AUG) if(Nivel[id] >= 180) set_pev(id, pev_viewmodel2, aug1);
if(WeaponID == CSW_SG552) if(Nivel[id] >= 180) set_pev(id, pev_viewmodel2, sg21);
if(WeaponID == CSW_SG550) if(Nivel[id] >= 200) set_pev(id, pev_viewmodel2, sg1);
if(WeaponID == CSW_G3SG1) if(Nivel[id] >= 200) set_pev(id, pev_viewmodel2, g31);
if(WeaponID == CSW_AWP) if(Nivel[id] >= 250) set_pev(id, pev_viewmodel2, awp1);
if(WeaponID == CSW_M249) if(Nivel[id] >= 270) set_pev(id, pev_viewmodel2, m2491);
if(WeaponID == CSW_HEGRENADE) if(Nivel[id] >= 60) set_pev(id, pev_viewmodel2, he1);
// Segunda ronda de armas
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 320) set_pev(id, pev_viewmodel2, knife2);
if(WeaponID == CSW_GLOCK18) if(Nivel[id] >= 335) set_pev(id, pev_viewmodel2, glock2);
if(WeaponID == CSW_USP) if(Nivel[id] >= 335) set_pev(id, pev_viewmodel2, usp2);
if(WeaponID == CSW_P228) if(Nivel[id] >= 340) set_pev(id, pev_viewmodel2, p2282);
if(WeaponID == CSW_ELITE) if(Nivel[id] >= 350) set_pev(id, pev_viewmodel2, dualelites2);
if(WeaponID == CSW_FIVESEVEN) if(Nivel[id] >= 350) set_pev(id, pev_viewmodel2, fiveseven2);
if(WeaponID == CSW_DEAGLE) if(Nivel[id] >= 370) set_pev(id, pev_viewmodel2, deagle2);
if(WeaponID == CSW_M3) if(Nivel[id] >= 380) set_pev(id, pev_viewmodel2, m32);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 390) set_pev(id, pev_viewmodel2, mx2);
if(WeaponID == CSW_MAC10) if(Nivel[id] >= 400) set_pev(id, pev_viewmodel2, mac2);
if(WeaponID == CSW_MP5NAVY) if(Nivel[id] >= 410) set_pev(id, pev_viewmodel2, mp52);
if(WeaponID == CSW_P90) if(Nivel[id] >= 420) set_pev(id, pev_viewmodel2, p902);
if(WeaponID == CSW_TMP) if(Nivel[id] >= 430) set_pev(id, pev_viewmodel2, tmp2);
if(WeaponID == CSW_UMP45) if(Nivel[id] >= 440) set_pev(id, pev_viewmodel2, ump2);
if(WeaponID == CSW_GALIL) if(Nivel[id] >= 450) set_pev(id, pev_viewmodel2, galil2);
if(WeaponID == CSW_FAMAS) if(Nivel[id] >= 450) set_pev(id, pev_viewmodel2, famas2);
if(WeaponID == CSW_AK47) if(Nivel[id] >= 470) set_pev(id, pev_viewmodel2, ak472);
if(WeaponID == CSW_M4A1) if(Nivel[id] >= 470) set_pev(id, pev_viewmodel2, m42);
if(WeaponID == CSW_SCOUT) if(Nivel[id] >= 445) set_pev(id, pev_viewmodel2, scout2);
if(WeaponID == CSW_AUG) if(Nivel[id] >= 480) set_pev(id, pev_viewmodel2, aug2);
if(WeaponID == CSW_SG552) if(Nivel[id] >= 480) set_pev(id, pev_viewmodel2, sg22);
if(WeaponID == CSW_SG550) if(Nivel[id] >= 500) set_pev(id, pev_viewmodel2, sg2);
if(WeaponID == CSW_G3SG1) if(Nivel[id] >= 500) set_pev(id, pev_viewmodel2, g32);
if(WeaponID == CSW_AWP) if(Nivel[id] >= 550) set_pev(id, pev_viewmodel2, awp2);
if(WeaponID == CSW_M249) if(Nivel[id] >= 570) set_pev(id, pev_viewmodel2, m2492);
if(WeaponID == CSW_HEGRENADE) if(Nivel[id] >= 360) set_pev(id, pev_viewmodel2, he2);
// Tercera ronda de armas
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 620) set_pev(id, pev_viewmodel2, knife3);
if(WeaponID == CSW_GLOCK18) if(Nivel[id] >= 635) set_pev(id, pev_viewmodel2, glock3);
if(WeaponID == CSW_USP) if(Nivel[id] >= 635) set_pev(id, pev_viewmodel2, usp3);
if(WeaponID == CSW_P228) if(Nivel[id] >= 640) set_pev(id, pev_viewmodel2, p2283);
if(WeaponID == CSW_ELITE) if(Nivel[id] >= 650) set_pev(id, pev_viewmodel2, dualelites3);
if(WeaponID == CSW_FIVESEVEN) if(Nivel[id] >= 650) set_pev(id, pev_viewmodel2, fiveseven3);
if(WeaponID == CSW_DEAGLE) if(Nivel[id] >= 670) set_pev(id, pev_viewmodel2, deagle3);
if(WeaponID == CSW_M3) if(Nivel[id] >= 680) set_pev(id, pev_viewmodel2, m33);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 690) set_pev(id, pev_viewmodel2, mx3);
if(WeaponID == CSW_MAC10) if(Nivel[id] >= 700) set_pev(id, pev_viewmodel2, mac3);
if(WeaponID == CSW_MP5NAVY) if(Nivel[id] >= 710) set_pev(id, pev_viewmodel2, mp53);
if(WeaponID == CSW_P90) if(Nivel[id] >= 720) set_pev(id, pev_viewmodel2, p903);
if(WeaponID == CSW_TMP) if(Nivel[id] >= 730) set_pev(id, pev_viewmodel2, tmp3);
if(WeaponID == CSW_UMP45) if(Nivel[id] >= 740) set_pev(id, pev_viewmodel2, ump3);
if(WeaponID == CSW_GALIL) if(Nivel[id] >= 750) set_pev(id, pev_viewmodel2, galil3);
if(WeaponID == CSW_FAMAS) if(Nivel[id] >= 750) set_pev(id, pev_viewmodel2, famas3);
if(WeaponID == CSW_AK47) if(Nivel[id] >= 770) set_pev(id, pev_viewmodel2, ak473);
if(WeaponID == CSW_M4A1) if(Nivel[id] >= 770) set_pev(id, pev_viewmodel2, m43);
if(WeaponID == CSW_SCOUT) if(Nivel[id] >= 745) set_pev(id, pev_viewmodel2, scout3);
if(WeaponID == CSW_AUG) if(Nivel[id] >= 780) set_pev(id, pev_viewmodel2, aug3);
if(WeaponID == CSW_SG552) if(Nivel[id] >= 780) set_pev(id, pev_viewmodel2, sg23);
if(WeaponID == CSW_SG550) if(Nivel[id] >= 800) set_pev(id, pev_viewmodel2, sg3);
if(WeaponID == CSW_G3SG1) if(Nivel[id] >= 800) set_pev(id, pev_viewmodel2, g33);
if(WeaponID == CSW_AWP) if(Nivel[id] >= 850) set_pev(id, pev_viewmodel2, awp3);
if(WeaponID == CSW_M249) if(Nivel[id] >= 870) set_pev(id, pev_viewmodel2, m2493);
if(WeaponID == CSW_HEGRENADE) if(Nivel[id] >= 660) set_pev(id, pev_viewmodel2, he3);
// Cuarta ronda de armas
if(WeaponID == CSW_M3) if(Nivel[id] >= 980) set_pev(id, pev_viewmodel2, m34);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 990) set_pev(id, pev_viewmodel2, mx4);
}
public fwHamTakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!is_user_connected(attacker))
return HAM_IGNORED
new weapon = get_user_weapon(attacker)
switch(weapon)
{
// Primera ronda de armas
case CSW_KNIFE : if(Nivel[ attacker ] >= 20)SetHamParamFloat(4, damage * 1.2)
case CSW_GLOCK18 : if(Nivel[ attacker ] >= 35)SetHamParamFloat(4, damage * 1.2)
case CSW_USP : if(Nivel[ attacker ] >= 35)SetHamParamFloat(4, damage * 1.2)
case CSW_P228 : if(Nivel[ attacker ] >= 40)SetHamParamFloat(4, damage * 1.2)
case CSW_ELITE : if(Nivel[ attacker ] >= 50)SetHamParamFloat(4, damage * 1.2)
case CSW_FIVESEVEN : if(Nivel[ attacker ] >= 50)SetHamParamFloat(4, damage * 1.2)
case CSW_DEAGLE : if(Nivel[ attacker ] >= 70)SetHamParamFloat(4, damage * 1.2)
case CSW_M3 : if(Nivel[ attacker ] >= 80)SetHamParamFloat(4, damage * 1.2)
case CSW_XM1014 : if(Nivel[ attacker ] >= 90)SetHamParamFloat(4, damage * 1.2)
case CSW_MAC10 : if(Nivel[ attacker ] >= 100)SetHamParamFloat(4, damage * 1.3)
case CSW_MP5NAVY : if(Nivel[ attacker ] >= 110)SetHamParamFloat(4, damage * 1.3)
case CSW_P90 : if(Nivel[ attacker ] >= 120)SetHamParamFloat(4, damage * 1.3)
case CSW_TMP : if(Nivel[ attacker ] >= 130)SetHamParamFloat(4, damage * 1.3)
case CSW_UMP45 : if(Nivel[ attacker ] >= 140)SetHamParamFloat(4, damage * 1.3)
case CSW_GALIL : if(Nivel[ attacker ] >= 150)SetHamParamFloat(4, damage * 1.3)
case CSW_FAMAS : if(Nivel[ attacker ] >= 150)SetHamParamFloat(4, damage * 1.3)
case CSW_AK47 : if(Nivel[ attacker ] >= 170)SetHamParamFloat(4, damage * 1.3)
case CSW_M4A1 : if(Nivel[ attacker ] >= 170)SetHamParamFloat(4, damage * 1.3)
case CSW_SCOUT : if(Nivel[ attacker ] >= 145)SetHamParamFloat(4, damage * 1.3)
case CSW_AUG : if(Nivel[ attacker ] >= 180)SetHamParamFloat(4, damage * 1.3)
case CSW_SG552 : if(Nivel[ attacker ] >= 180)SetHamParamFloat(4, damage * 1.3)
case CSW_SG550 : if(Nivel[ attacker ] >= 200)SetHamParamFloat(4, damage * 1.4)
case CSW_G3SG1 : if(Nivel[ attacker ] >= 200)SetHamParamFloat(4, damage * 1.4)
case CSW_AWP : if(Nivel[ attacker ] >= 250)SetHamParamFloat(4, damage * 1.4)
case CSW_M249 : if(Nivel[ attacker ] >= 270)SetHamParamFloat(4, damage * 1.4)
case CSW_HEGRENADE : if(Nivel[ attacker ] >= 60)SetHamParamFloat(4, damage * 1.2)
}
switch(weapon)
{
// Segunda ronda de armas
case CSW_KNIFE : if(Nivel[ attacker ] >= 320)SetHamParamFloat(4, damage * 1.4)
case CSW_GLOCK18 : if(Nivel[ attacker ] >= 335)SetHamParamFloat(4, damage * 1.4)
case CSW_USP : if(Nivel[ attacker ] >= 335)SetHamParamFloat(4, damage * 1.4)
case CSW_P228 : if(Nivel[ attacker ] >= 340)SetHamParamFloat(4, damage * 1.4)
case CSW_ELITE : if(Nivel[ attacker ] >= 350)SetHamParamFloat(4, damage * 1.4)
case CSW_FIVESEVEN : if(Nivel[ attacker ] >= 350)SetHamParamFloat(4, damage * 1.4)
case CSW_DEAGLE : if(Nivel[ attacker ] >= 370)SetHamParamFloat(4, damage * 1.4)
case CSW_M3 : if(Nivel[ attacker ] >= 380)SetHamParamFloat(4, damage * 1.4)
case CSW_XM1014 : if(Nivel[ attacker ] >= 390)SetHamParamFloat(4, damage * 1.4)
case CSW_MAC10 : if(Nivel[ attacker ] >= 400)SetHamParamFloat(4, damage * 1.5)
case CSW_MP5NAVY : if(Nivel[ attacker ] >= 410)SetHamParamFloat(4, damage * 1.5)
case CSW_P90 : if(Nivel[ attacker ] >= 420)SetHamParamFloat(4, damage * 1.5)
case CSW_TMP : if(Nivel[ attacker ] >= 430)SetHamParamFloat(4, damage * 1.5)
case CSW_UMP45 : if(Nivel[ attacker ] >= 440)SetHamParamFloat(4, damage * 1.5)
case CSW_GALIL : if(Nivel[ attacker ] >= 450)SetHamParamFloat(4, damage * 1.5)
case CSW_FAMAS : if(Nivel[ attacker ] >= 450)SetHamParamFloat(4, damage * 1.5)
case CSW_AK47 : if(Nivel[ attacker ] >= 470)SetHamParamFloat(4, damage * 1.5)
case CSW_M4A1 : if(Nivel[ attacker ] >= 470)SetHamParamFloat(4, damage * 1.5)
case CSW_SCOUT : if(Nivel[ attacker ] >= 445)SetHamParamFloat(4, damage * 1.5)
case CSW_AUG : if(Nivel[ attacker ] >= 480)SetHamParamFloat(4, damage * 1.5)
case CSW_SG552 : if(Nivel[ attacker ] >= 480)SetHamParamFloat(4, damage * 1.5)
case CSW_SG550 : if(Nivel[ attacker ] >= 500)SetHamParamFloat(4, damage * 1.5)
case CSW_G3SG1 : if(Nivel[ attacker ] >= 500)SetHamParamFloat(4, damage * 1.5)
case CSW_AWP : if(Nivel[ attacker ] >= 550)SetHamParamFloat(4, damage * 1.5)
case CSW_M249 : if(Nivel[ attacker ] >= 570)SetHamParamFloat(4, damage * 1.5)
case CSW_HEGRENADE : if(Nivel[ attacker ] >= 360)SetHamParamFloat(4, damage * 1.4)
}
switch(weapon)
{
// Tercera ronda de armas
case CSW_KNIFE : if(Nivel[ attacker ] >= 620)SetHamParamFloat(4, damage * 1.6)
case CSW_GLOCK18 : if(Nivel[ attacker ] >= 635)SetHamParamFloat(4, damage * 1.6)
case CSW_USP : if(Nivel[ attacker ] >= 635)SetHamParamFloat(4, damage * 1.6)
case CSW_P228 : if(Nivel[ attacker ] >= 640)SetHamParamFloat(4, damage * 1.6)
case CSW_ELITE : if(Nivel[ attacker ] >= 650)SetHamParamFloat(4, damage * 1.6)
case CSW_FIVESEVEN : if(Nivel[ attacker ] >= 650)SetHamParamFloat(4, damage * 1.6)
case CSW_DEAGLE : if(Nivel[ attacker ] >= 670)SetHamParamFloat(4, damage * 1.6)
case CSW_M3 : if(Nivel[ attacker ] >= 680)SetHamParamFloat(4, damage * 1.6)
case CSW_XM1014 : if(Nivel[ attacker ] >= 690)SetHamParamFloat(4, damage * 1.6)
case CSW_MAC10 : if(Nivel[ attacker ] >= 700)SetHamParamFloat(4, damage * 1.6)
case CSW_MP5NAVY : if(Nivel[ attacker ] >= 710)SetHamParamFloat(4, damage * 1.6)
case CSW_P90 : if(Nivel[ attacker ] >= 720)SetHamParamFloat(4, damage * 1.6)
case CSW_TMP : if(Nivel[ attacker ] >= 730)SetHamParamFloat(4, damage * 1.6)
case CSW_UMP45 : if(Nivel[ attacker ] >= 740)SetHamParamFloat(4, damage * 1.6)
case CSW_GALIL : if(Nivel[ attacker ] >= 750)SetHamParamFloat(4, damage * 1.6)
case CSW_FAMAS : if(Nivel[ attacker ] >= 750)SetHamParamFloat(4, damage * 1.6)
case CSW_AK47 : if(Nivel[ attacker ] >= 770)SetHamParamFloat(4, damage * 1.6)
case CSW_M4A1 : if(Nivel[ attacker ] >= 770)SetHamParamFloat(4, damage * 1.6)
case CSW_SCOUT : if(Nivel[ attacker ] >= 745)SetHamParamFloat(4, damage * 1.6)
case CSW_AUG : if(Nivel[ attacker ] >= 780)SetHamParamFloat(4, damage * 1.6)
case CSW_SG552 : if(Nivel[ attacker ] >= 780)SetHamParamFloat(4, damage * 1.6)
case CSW_SG550 : if(Nivel[ attacker ] >= 800)SetHamParamFloat(4, damage * 1.7)
case CSW_G3SG1 : if(Nivel[ attacker ] >= 800)SetHamParamFloat(4, damage * 1.7)
case CSW_AWP : if(Nivel[ attacker ] >= 850)SetHamParamFloat(4, damage * 1.7)
case CSW_M249 : if(Nivel[ attacker ] >= 870)SetHamParamFloat(4, damage * 1.7)
case CSW_HEGRENADE : if(Nivel[ attacker ] >= 660)SetHamParamFloat(4, damage * 1.6)
}
switch(weapon)
{
// Cuarta ronda de armas
case CSW_M3 : if(Nivel[ attacker ] >= 980)SetHamParamFloat(4, damage * 1.8)
case CSW_XM1014 : if(Nivel[ attacker ] >= 990)SetHamParamFloat(4, damage * 1.8)
}
return PLUGIN_CONTINUE;
}
public hudjuego(id) {
for(new id = 1; id <= g_maxplayers; id++) {
if(!is_user_connected(id)) continue;
new name[33]
get_user_name(id,name,32)
if(is_user_alive(id)) {
set_dhudmessage(172, 0, 0, -1.0, 0.79, 0, 6.0, 1.0)
show_dhudmessage(id, "[Informacion]^n[Nivel: %d/%d]^n[Exp: %d/%d]", Nivel[id], NivelMax, exp[id], NivelSiguente(Nivel[id]))
set_dhudmessage(0, 31, 184, 0.0, 0.21, 0, 6.0, 1.0)
show_dhudmessage(id, "[Nombre: %s]", name)
} else {
new spect = pev(id, pev_iuser2);
if(!spect) return;
new nombre[32]
get_user_name(spect, nombre, charsmax(nombre))
new salud = get_user_health(spect)
new armor = get_user_armor(spect)
set_dhudmessage(190, 190, 190, 0.0, 0.21, 0, 6.0, 1.0)
show_dhudmessage(id, "Espiando ---> %s^nSalud: %d^nArmadura: %d^nNivel: %d", nombre, salud, armor, Nivel[spect])
}
}
}
public ShowLogMenu(id) {
new Tit[128];
formatex(Tit, charsmax(Tit), "Sistema de cuentas by \dkikizon^n\wBienvenido \r%s^n\wESTADO: \r%s^n\wTu ultima visita fue: \r%s", g_cuenta[id], Estado[g_Estado[id]], g_Fecha[id]);
new menu = menu_create(Tit,"menu_log");
menu_additem(menu, (g_Estado[id] == REGISTRADO && adv_vault_get_prepare(g_vault, _, g_cuenta[id]))?"Loguearse":"\dLoguearse", "1");
menu_additem(menu, (g_Estado[id] == NOREGISTRADO && !adv_vault_get_prepare(g_vault, _, g_cuenta[id]))?"Registrarse^n":"\dRegistrarse^n", "2");
menu_additem(menu, (g_Estado[id] == LOGUEADO && !g_Can[id])?"Cambiar Contra":"\dCambiar Contra", "3");
menu_display(id, menu, 0);
}
public menu_log(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: {
if(g_Estado[id] == REGISTRADO && adv_vault_get_prepare(g_vault, _, g_cuenta[id])) {
client_print(id, print_center, "Ingresa tu PASSWORD para entrar a tu cuenta");
client_cmd(id,"messagemode INGRESAR_PASSWORD");
} else {
client_print(id, print_center, "No puedes elegir esta opcion");
return PLUGIN_HANDLED;
}
}
case 1: {
if(g_Estado[id] == NOREGISTRADO && !adv_vault_get_prepare(g_vault, _, g_cuenta[id])) {
client_print(id, print_center, "Ingresa una PASSWORD para crear una cuenta");
client_cmd(id,"messagemode INGRESAR_PASSWORD");
} else {
client_print(id, print_center, "No puedes elegir esta opcion");
return PLUGIN_HANDLED;
}
}
case 2: {
if(g_Estado[id] == LOGUEADO && !g_Can[id]) {
client_print(id, print_center, "Ingresa tu nueva PASSWORD");
client_cmd(id,"messagemode INGRESAR_PASSWORD");
} else {
client_print(id, print_center, "No estas logueado o ya cambiaste tu password durante el mapa");
return PLUGIN_HANDLED;
}
}
}
return PLUGIN_HANDLED;
}
public Confirmar(id) {
new Tit[128];
formatex(Tit, charsmax(Tit),"La password sera \r%s^n^n\yConfirmar?", g_contra2[id]);
new menu = menu_create(Tit,"menu_confirmar");
menu_additem(menu,"\rSi\w, confirmar","1");
menu_additem(menu,"\rNo\w, deseo reescribirla","2");
menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER);
menu_display(id, menu, 0);
}
public menu_confirmar(id, menu, item) {
switch(item) {
case 0: {
switch(g_Estado[id]) {
case LOGUEADO: {
copy(g_contra[id], 19 ,g_contra2[id]);
Guardar(id);
client_print(id, print_center, "Tu password ha sido cambiada satisfactoriamente");
g_Can[id] = 1;
}
case NOREGISTRADO: {
client_print(id, print_center, "Tu cuenta ha sido creada satisfactoriamente");
client_cmd(id, "spk ^"%s^"")
copy(g_contra[id], 31, g_contra2[id]);
Guardar(id);
jTeam(id);
}
}
}
case 1: {
menu_destroy(menu);
client_cmd(id,"messagemode INGRESAR_PASSWORD");
if(g_Estado[id] == LOGUEADO)
client_print(id, print_center, "Ingresa tu nueva PASSWORD");
else
client_print(id, print_center, "Ingresa la PASSWORD para tu nueva cuenta");
}
}
return PLUGIN_HANDLED;
}
public menuprim(id) {
new menu = menu_create("\wMenu\r Surf", "handlerprim")
menu_additem(menu, "\wCuenta\d (Datos)", "1")
menu_additem(menu, "\wCambiar\r Equipo", "2")
menu_additem(menu, "\wGuardar\d (Datos)", "3")
menu_display(id, menu, 0)
}
public handlerprim(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
switch(item) {
case 0: ShowLogMenu(id)
case 1: mostrar_team(id)
case 2: {
Guardar(id)
ColorChat(id, NORMAL, "^4DATOS GUARDADOS^3 CORRECTAMENTE")
}
}
menu_destroy(menu)
return PLUGIN_HANDLED;
}
public mostrar_team(id) {
new menu = menu_create("\wElije un\r Equipo:", "menu_handler")
menu_additem(menu, "\wAnti-Terroristas", "1")
menu_additem(menu, "\wTerroristas", "2")
menu_additem(menu, "\wEspectador", "3")
menu_display(id, menu, 0);
}
public menu_handler(id, menu, item) {
if(gBlock[id]) {
ColorChat(id, NORMAL, "^4No puedes cambiar de equipo durante esta^3 Ronda")
return PLUGIN_HANDLED
}
switch(item) {
case MENU_EXIT:{
menu_destroy(menu)
return PLUGIN_HANDLED
}
case 0: {
user_silentkill(id)
cs_set_user_team(id,CS_TEAM_CT)
ColorChat(id, NORMAL, "^4Ahora estas en el equipo ^3Anti-Terroristas")
}
case 1: {
user_silentkill(id)
cs_set_user_team(id,CS_TEAM_T)
ColorChat(id, NORMAL, "^4Ahora estas en el equipo ^3Terroristas")
}
case 2: {
if(cs_set_user_team(id,CS_TEAM_SPECTATOR)) {
user_silentkill(id)
cs_set_user_team(id,CS_TEAM_SPECTATOR)
ColorChat(id, NORMAL, "^4Ahora estas como ^3Espectador")
}
}
}
gBlock[id] = 1;
menu_destroy( menu );
return PLUGIN_HANDLED
}
public fw_clientinfo_changed(id, buffer) {
if(is_user_connected(id)) {
if(g_Estado[id] == LOGUEADO) {
static OldName[33];
engfunc(EngFunc_InfoKeyValue, buffer, "name", OldName, sizeof OldName - 1);
if(equal(OldName, g_cuenta[id]))
return FMRES_IGNORED;
set_user_info(id, "name", g_cuenta[id]);
client_cmd(id, "setinfo ^"name^" ^"%s^"", g_cuenta[id]);
}
}
return FMRES_IGNORED;
}
public Guardar(id) {
if(!is_user_connected(id)) return;
adv_vault_set_start(g_vault);
adv_vault_set_field(g_vault, g_campo[EXP], exp[id])
adv_vault_set_field(g_vault, g_campo[LVL], Nivel[id])
adv_vault_set_field(g_vault, g_campo[FECHA], g_Fecha[id]);
adv_vault_set_field(g_vault, g_campo[PASSWORD], g_contra[id]);
adv_vault_set_end(g_vault, 0, g_cuenta[id]);
}
public Cargar(id) {
if(!adv_vault_get_prepare(g_vault, _, g_cuenta[id])) {
g_Estado[id] = NOREGISTRADO;
return;
} else {
g_Estado[id] = REGISTRADO;
exp[id] = adv_vault_get_field(g_vault, g_campo[EXP]);
Nivel[id] = adv_vault_get_field(g_vault, g_campo[LVL]);
adv_vault_get_field(g_vault, g_campo[FECHA], g_Fecha[id], charsmax(g_Fecha[]));
adv_vault_get_field(g_vault, g_campo[PASSWORD], g_contra[id], charsmax(g_contra[]));
}
}
public Contra(id) {
read_args(g_contra[id], charsmax(g_contra));
remove_quotes(g_contra[id]);trim(g_contra[id]);
if(equal(g_contra[id],"") || containi(g_contra[id]," ") != -1 ) {
client_print(id, print_center, "Tu password contiene errores");
return 1;
}
switch(g_Estado[id]) {
case NOREGISTRADO: {
client_print(id, print_center, "Confirma tu password para proseguir");
copy(g_contra2[id], 19, g_contra[id]);
Confirmar(id);
}
case REGISTRADO: {
new buffer[40];
adv_vault_get_prepare(g_vault, _, g_cuenta[id]);
adv_vault_get_field(g_vault, g_campo[PASSWORD], buffer, charsmax(buffer));
if(equal(buffer, g_contra[id])) {
Guardar(id);
client_print(id, print_center, "Te logueaste satisfactoriamente en tu cuenta");
jTeam(id);
} else {
ShowLogMenu(id);
client_print(id, print_center, "Password Incorrecta.");
}
}
case LOGUEADO: {
if(g_Can[id]) {
client_print(id, print_center, "Ya cambiaste tu contra en este mapa");
return PLUGIN_HANDLED;
}
client_print(id, print_center, "Confirma tu password para cambiarla...");
copy(g_contra2[id], 19, g_contra[id]);
Confirmar(id);
}
}
return PLUGIN_HANDLED;
}
public message_VGUImenu(msgid, dest, id) {
if(g_Estado[id] != LOGUEADO)
ShowLogMenu(id);
return 1;
}
public jTeam(id){
static teammsg_block, teammsg_block_vgui, restore, vgui;
restore = get_pdata_int(id, 510);
vgui = restore & (1<<0);
if (vgui)
set_pdata_int(id, 510, restore & ~(1<<0));
teammsg_block = get_msg_block(g_MsgShowMenu);
teammsg_block_vgui = get_msg_block(g_MsgVgui);
set_msg_block(g_MsgShowMenu, BLOCK_ONCE);
set_msg_block(g_MsgVgui, BLOCK_ONCE);
engclient_cmd(id, "jointeam", "5");
engclient_cmd(id, "joinclass", "5");
set_msg_block(g_MsgShowMenu, teammsg_block);
set_msg_block(g_MsgVgui, teammsg_block_vgui);
if (vgui)
set_pdata_int(id, 510, restore);
g_Estado[id] = LOGUEADO;
}
public cmd_lvl (id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg[33], arg2[10]
read_argv(1, arg, charsmax(arg))
read_argv(2, arg2, charsmax(arg2))
new Player = cmd_target(id, arg,CMDTARGET_ONLY_ALIVE)
if (!Player)
{
client_print(id, print_console, "Player no esta.")
return PLUGIN_HANDLED;
}
Nivel[Player] = str_to_num(arg2)
return PLUGIN_HANDLED;
}
public cmd_exp (id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg[33], arg2[10]
read_argv(1, arg, charsmax(arg))
read_argv(2, arg2, charsmax(arg2))
new Player = cmd_target(id, arg,CMDTARGET_ONLY_ALIVE)
if (!Player)
{
client_print(id, print_console, "Player no esta.")
return PLUGIN_HANDLED;
}
exp[Player]+= str_to_num(arg2)
ver_nivel(id)
return PLUGIN_HANDLED;
}
stock get_weapon_ent_owner(ent){
if (pev_valid(ent) != 2)
return -1;
return get_pdata_cbase(ent, 41, 4);
}
public cmd_quitarlvl(id, level, cid)
{
if (!cmd_access(id, level, cid, 3))
return PLUGIN_HANDLED;
new arg[33]
read_argv(1, arg, charsmax(arg))
new Player = cmd_target(id, arg,CMDTARGET_ONLY_ALIVE)
if (!Player)
{
client_print(id, print_console, "El player no esta.")
return PLUGIN_HANDLED;
}
Nivel[Player] = 1
exp[Player] = 0
return PLUGIN_HANDLED;
}
public verlevel(id)
{
client_print(id, print_chat, "^3tu nivel es ^4%d", Nivel[id])
}
public VerExp(id)
{
client_print(id, print_chat, "^3tu exp es ^4%d", exp[id])
}
public nextlevel (id)
{
client_print(id, print_chat, "^3Siguiente nivel en ^4%d XP", NivelSiguente(Nivel[id]))
}