16/08/2017, 05:04 PM
Buenas amigos, alguien me le podría quitar El Rango y La Happy Hour a este surf mod por favor, soy nuevo.
Graciass
Código PHP:
/*
Creditos:
1-Destro (Por si guardado adv_vault)
2-Kikizon (Por su sistema de cuentas)
3-NkkI (aclare dudas de item deploy)
*/
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <colorchat>
#include <dhudmessage>
#include <cstrike>
#include hamsandwich
#include fakemeta
#include adv_vault
#define NivelSiguente(%1) (%1 * 400 + 200)
#define NivelMax 400
new Nivel[33], exp[33], Rango[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 _:rango { rangos_nombre[64], rango_requerido }
enum {
LVL,
RG,
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 horas[] = { 00, 02, 10, 12, 18, 19, 22, 21 }
new bool: g_happytime
new const rangos[][rango] = {
{ "Recien llegado", 1 }, { "Aventurero", 5 }, { "Principiante", 10 }, { "Experimentado", 15 } , { "Civil I", 20 },
{ "Civil II", 25 }, { "Soldado ", 30 }, { "Distinguido", 35 }, { "Cabo II", 40 }, { "Cabo I", 45 }, { "Sargento I", 50 },
{ "Sargento II", 55 }, { "Sargento Mayor I", 60 }, { "Sargento Mayor II", 65 }, { "Sargento Mayor III", 70 } ,
{ "Sargento Ayudante", 75 }, { "Sargento Supervisor", 80 }, { "Sargento Técnico I", 85 }, { "Sargento Técnico II", 90 },
{ "Sargento Técnico III", 95 }, { "Maestro Técnico I", 100 }, { "Maestro Técnico II", 105 }, { "Maestro Técnico III", 110 },
{ "Maestro Técnico Supervisor", 115 }, { "Sub-Teniente I", 120 }, { "Sub-Teniente II", 125 } , { "Sub-Teniente III", 130 },
{ "Teniente I", 135 }, { "Teniente II", 140 }, { "Teniente III", 145 }, { "Capitán I", 150 }, { "Capitán II", 200 }, { "Capitán III", 210 },
{ "Teniente Coronel", 220 }, { "Coronel I", 230 }, { "Coronel II", 240 }, { "Coronel III", 250 } , { "General de Brigada I", 260 },
{ "General de Brigada II", 270 }, { "General de Brigada III", 280 }, { "General de División", 290 }, { "General en Jefe I", 300 },
{ "General en Jefe II", 320 }, { "General en Jefe III", 340 }, { "Perra", 360 }, { "Puta", 380 }, { "Mega Puta", 400 }
}
new const WEAPONENTNAMES[][] = { "", "weapon_hegrenade", "weapon_xm1014", "weapon_usp", "weapon_glock18", "weapon_awp", "weapon_mp5navy", "weapon_m249",
"weapon_m3", "weapon_m4a1", "weapon_g3sg1", "weapon_deagle", "weapon_ak47", "weapon_knife"
}
// MODELS & SOUND
new const Glock181[] = "models/Surf/v_Glock18-1.mdl", USP[] = "models/Surf/v_Usp-1.mdl", Knife1[] = "models/Surf/v_Knife-1.mdl",
Knife2[] = "models/Surf/v_Knife-2.mdl", Knife3[] = "models/Surf/v_Knife-3.mdl", Knife4[] = "models/Surf/v_Knife-4.mdl",
Deagle1[] = "models/Surf/v_Deagle-1.mdl", Deagle2[] = "models/Surf/v_Deagle-2.mdl", Deagle3[] = "models/Surf/v_Deagle-3.mdl",
MP51[] = "models/Surf/v_Mp5-1.mdl", Ak471[] = "models/Surf/v_Ak47-1.mdl", Ak472[] = "models/Surf/v_Ak47-2.mdl",
M4a11[] = "models/Surf/v_M4a1-1.mdl", M4a12[] = "models/Surf/v_M4a1-2.mdl", M31[] = "models/Surf/v_M3-1.mdl",
M32[] = "models/Surf/v_M3-2.mdl", M33[] = "models/Surf/v_M3-3.mdl", M34[] = "models/Surf/v_M3-4.mdl",
Awp1[] = "models/Surf/v_Awp-1.mdl", Awp2[] = "models/Surf/v_Awp-2.mdl", Awp3[] = "models/Surf/v_Awp-3.mdl",
Taka1[] = "models/Surf/v_Taka-1.mdl", Taka2[] = "models/Surf/v_Taka-2.mdl", Taka3[] = "models/Surf/v_Taka-3.mdl",
Xm10141[] = "models/Surf/v_Xm1014-1.mdl", Xm10142[] = "models/Surf/v_Xm1014-2.mdl", Xm10143[] = "models/Surf/v_Xm1014-3.mdl",
He1[] = "models/Surf/v_Hegranade-1.mdl", He2[] = "models/Surf/v_Hegranade-2.mdl", He3[] = "models/Surf/v_Hegranade-3.mdl", M249[] = "models/Surf/v_m249.mdl"
new const sonido[] = "Nivel/Nivel.wav"
new const Ambient[] = "sound/surfSound/ambient.mp3"
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_lvl", "cmd_lvl", ADMIN_RCON, "<Nombre> <Nivel>")
register_concmd("sf_exp", "cmd_exp", ADMIN_RCON, "<Nombre> <Experiencia>")
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[RG] = adv_vault_register_field(g_vault, "RG")
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_autoteambalance 1")
server_cmd("mp_startmoney 16000")
server_cmd("mp_freezetime 0")
}
public plugin_precache() {
set_lights("h")
precache_model(Glock181)
precache_model(USP)
precache_model(Knife1)
precache_model(Knife2)
precache_model(Knife3)
precache_model(Knife4)
precache_model(Deagle1)
precache_model(Deagle2)
precache_model(Deagle3)
precache_model(MP51)
precache_model(Ak471)
precache_model(Ak472)
precache_model(M4a11)
precache_model(M4a12)
precache_model(M31)
precache_model(M32)
precache_model(M33)
precache_model(M34)
precache_model(Awp1)
precache_model(Awp2)
precache_model(Awp3)
precache_model(Taka1)
precache_model(Taka2)
precache_model(Taka3)
precache_model(Xm10141)
precache_model(Xm10142)
precache_model(Xm10143)
precache_model(He1)
precache_model(He2)
precache_model(He3)
precache_model(M249)
precache_generic(Ambient)
precache_sound(sonido)
}
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
Rango[id] = 0
Cargar(id);
}
public client_disconnect(id) {
Guardar(id);
if(g_happytime) {
client_cmd(0, "mp3 stop")
}
}
public event_round_start() {
set_task(0.1,"happyhour")
if(g_happytime) {
client_cmd(0, "mp3 stop")
}
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]+= g_happytime ? 60 : 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^"", sonido);
ColorChat(id, NORMAL, "^3Felicitaciones, subiste al nivel ^4%d", Nivel[id])
ver_rango(id)
subido = false
}
}
public ver_rango(id) {
new Rsubido = false
while(Nivel[id] >= rangos[Rango[id] + 1][rango_requerido]) {
Rango[id]++
Rsubido = true
}
if(Rsubido) {
ColorChat(id, NORMAL, "^3Felicitaciones, subiste al rango ^4%s", rangos[Rango[id]][rangos_nombre])
Rsubido = 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);
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 10) set_pev(id, pev_viewmodel2, Knife1);
if(WeaponID == CSW_GLOCK18) if(Nivel[id] >= 10) set_pev(id, pev_viewmodel2, Glock181);
if(WeaponID == CSW_USP) if(Nivel[id] >= 10) set_pev(id, pev_viewmodel2, USP);
if(WeaponID == CSW_DEAGLE) if(Nivel[id] >= 15) set_pev(id, pev_viewmodel2, Deagle1);
if(WeaponID == CSW_MP5NAVY) if(Nivel[id] >= 60) set_pev(id, pev_viewmodel2, MP51);
if(WeaponID == CSW_AK47) if(Nivel[id] >= 50) set_pev(id, pev_viewmodel2, Ak471);
if(WeaponID == CSW_M4A1) if(Nivel[id] >= 60) set_pev(id, pev_viewmodel2, M4a11);
if(WeaponID == CSW_M3) if(Nivel[id] >= 40) set_pev(id, pev_viewmodel2, M31);
if(WeaponID == CSW_AWP) if(Nivel[id] >= 100) set_pev(id, pev_viewmodel2, Awp1);
if(WeaponID == CSW_G3SG1) if(Nivel[id] >= 100) set_pev(id, pev_viewmodel2, Taka1);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 70) set_pev(id, pev_viewmodel2, Xm10141);
if(WeaponID == CSW_HEGRENADE) if(Nivel[id] >= 25) set_pev(id, pev_viewmodel2, He1);
if(WeaponID == CSW_M249) if(Nivel[id] >= 320) set_pev(id, pev_viewmodel2, M249);
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 110) set_pev(id, pev_viewmodel2, Knife2);
if(WeaponID == CSW_DEAGLE) if(Nivel[id] >= 250) set_pev(id, pev_viewmodel2, Deagle2);
if(WeaponID == CSW_AK47) if(Nivel[id] >= 240) set_pev(id, pev_viewmodel2, Ak472);
if(WeaponID == CSW_M4A1) if(Nivel[id] >= 250) set_pev(id, pev_viewmodel2, M4a12);
if(WeaponID == CSW_M3) if(Nivel[id] >= 130) set_pev(id, pev_viewmodel2, M32);
if(WeaponID == CSW_AWP) if(Nivel[id] >= 200) set_pev(id, pev_viewmodel2, Awp2);
if(WeaponID == CSW_G3SG1) if(Nivel[id] >= 130) set_pev(id, pev_viewmodel2, Taka2);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 150) set_pev(id, pev_viewmodel2, Xm10142);
if(WeaponID == CSW_HEGRENADE) if(Nivel[id] >= 170) set_pev(id, pev_viewmodel2, He2);
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 250) set_pev(id, pev_viewmodel2, Knife3);
if(WeaponID == CSW_DEAGLE) if(Nivel[id] >= 340) set_pev(id, pev_viewmodel2, Deagle3);
if(WeaponID == CSW_M3) if(Nivel[id] >= 260) set_pev(id, pev_viewmodel2, M33);
if(WeaponID == CSW_AWP) if(Nivel[id] >= 380) set_pev(id, pev_viewmodel2, Awp3);
if(WeaponID == CSW_G3SG1) if(Nivel[id] >= 300) set_pev(id, pev_viewmodel2, Taka3);
if(WeaponID == CSW_XM1014) if(Nivel[id] >= 400) set_pev(id, pev_viewmodel2, Xm10143);
if(WeaponID == CSW_HEGRENADE) if(Nivel[id] >= 260) set_pev(id, pev_viewmodel2, He3);
if(WeaponID == CSW_KNIFE) if(Nivel[id] >= 350) set_pev(id, pev_viewmodel2, Knife4);
if(WeaponID == CSW_M3) if(Nivel[id] >= 380) set_pev(id, pev_viewmodel2, M34);
}
public fwHamTakeDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
if(!is_user_connected(attacker))
return HAM_IGNORED
new weapon = get_user_weapon(attacker)
switch(weapon)
{
case CSW_GLOCK18 : if(Nivel[ attacker ] >= 10)SetHamParamFloat(4, damage * 1.2)
case CSW_USP : if(Nivel[ attacker ] >= 10)SetHamParamFloat(4, damage * 1.2)
case CSW_KNIFE : if(Nivel[ attacker ] >= 10)SetHamParamFloat(4, damage * 1.2)
case CSW_DEAGLE : if(Nivel[ attacker ] >= 15)SetHamParamFloat(4, damage * 1.2)
case CSW_MP5NAVY : if(Nivel[ attacker ] >= 60)SetHamParamFloat(4, damage * 1.2)
case CSW_AK47 : if(Nivel[ attacker ] >= 50)SetHamParamFloat(4, damage * 1.2)
case CSW_M4A1 : if(Nivel[ attacker ] >= 60)SetHamParamFloat(4, damage * 1.2)
case CSW_M3 : if(Nivel[ attacker ] >= 40)SetHamParamFloat(4, damage * 1.2)
case CSW_AWP : if(Nivel[ attacker ] >= 100)SetHamParamFloat(4, damage * 1.2)
case CSW_G3SG1 : if(Nivel[ attacker ] >= 100)SetHamParamFloat(4, damage * 1.2)
case CSW_XM1014 : if(Nivel[ attacker ] >= 70)SetHamParamFloat(4, damage * 1.2)
case CSW_HEGRENADE : if(Nivel[ attacker ] >= 25)SetHamParamFloat(4, damage * 1.2)
case CSW_M249 : if(Nivel[ attacker ] >= 330)SetHamParamFloat(4, damage * 1.2)
}
switch(weapon)
{
case CSW_KNIFE : if(Nivel[ attacker ] >= 110)SetHamParamFloat(4, damage * 1.4)
case CSW_DEAGLE : if(Nivel[ attacker ] >= 250)SetHamParamFloat(4, damage * 1.4)
case CSW_AK47 : if(Nivel[ attacker ] >= 240)SetHamParamFloat(4, damage * 1.4)
case CSW_M4A1 : if(Nivel[ attacker ] >= 250)SetHamParamFloat(4, damage * 1.4)
case CSW_M3 : if(Nivel[ attacker ] >= 130)SetHamParamFloat(4, damage * 1.4)
case CSW_AWP : if(Nivel[ attacker ] >= 200)SetHamParamFloat(4, damage * 1.4)
case CSW_G3SG1 : if(Nivel[ attacker ] >= 130)SetHamParamFloat(4, damage * 1.4)
case CSW_XM1014 : if(Nivel[ attacker ] >= 150)SetHamParamFloat(4, damage * 1.4)
case CSW_HEGRENADE : if(Nivel[ attacker ] >= 170)SetHamParamFloat(4, damage * 1.4)
}
switch(weapon)
{
case CSW_KNIFE : if(Nivel[ attacker ] >= 240)SetHamParamFloat(4, damage * 1.6)
case CSW_DEAGLE : if(Nivel[ attacker ] >= 340)SetHamParamFloat(4, damage * 1.6)
case CSW_M3 : if(Nivel[ attacker ] >= 260)SetHamParamFloat(4, damage * 1.6)
case CSW_AWP : if(Nivel[ attacker ] >= 380)SetHamParamFloat(4, damage * 1.6)
case CSW_G3SG1 : if(Nivel[ attacker ] >= 300)SetHamParamFloat(4, damage * 1.6)
case CSW_XM1014 : if(Nivel[ attacker ] >= 400)SetHamParamFloat(4, damage * 1.6)
case CSW_HEGRENADE : if(Nivel[ attacker ] >= 260)SetHamParamFloat(4, damage * 1.6)
}
switch(weapon)
{
case CSW_KNIFE : if(Nivel[ attacker ] >= 350)SetHamParamFloat(4, damage * 2.0)
case CSW_M3 : if(Nivel[ attacker ] >= 380)SetHamParamFloat(4, damage * 2.0)
}
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]^n[Rango: %s]^n[Hora Feliz: %s]", name, rangos[Rango[id]][rangos_nombre], g_happytime ? "On" : "Off")
} 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^nRango: %s", nombre, salud, armor, Nivel[spect], rangos[Rango[spect]][rangos_nombre])
}
}
}
public happyhour(id) {
new data[12]
get_time("%H", data, 12)
new Tiempo = str_to_num(data)
for(new i=0;i <= sizeof horas - 1;i++) {
if(Tiempo != horas[i]) continue
g_happytime = true
client_cmd(0, "mp3 play ^"%s^"", Ambient)
break;
}
}
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^"", sonido)
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[RG], Rango[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]);
Rango[id] = adv_vault_get_field(g_vault, g_campo[RG]);
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");
client_cmd(id, "spk ^"%s^"", sonido)
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);
}
Graciass