Mensajes: 76
Temas: 29
Registro en: May 2017
Reputación:
0
16/08/2017, 10:00 PM
(Última modificación: 17/08/2017, 12:58 AM por EduardoAPG.)
Buenas alguien me puede editar este plugin?
Necesito un par de cosas:
- Un comando para quitar todo los niveles , que les setee el nivel a 1. [RESUELTO]
- Un comando para quitar toda la XP, que le setee la XP a 1. [RESUELTO]
- Un comando para ver los level /level [RESUELTO]
- Un comando para ver la experiencia que tengo /xp [RESUELTO]
- Un comando para ver la experiencia restante para pasar de nivel /nextlevel [RESUELTO]
- También necesito cambiar el Sistema de Macro por un Sistema normal en el que yo elija la experiencia para cada nivel [RESUELTO]
- Por ultimo en el EventoMuerte que yo elija la experiencia que te van a dar por una muerte a Cuchillo, Headshot, Normal. [RESUELTO]
Código PHP: public EventDeathMsg() { new killer = read_data( 1 ) new victim = read_data( 2 ) new headshot = read_data( 3 ) new xp, hs
if(PLEVEL[killer] > PLEVEL[victim]) xp = 20 if(PLEVEL[killer] < PLEVEL[ victim ]) xp = 30 if(PLEVEL[killer] == PLEVEL[victim]) xp = 25
PKS[ victim ] = 0
if( victim == killer ) return PLUGIN_CONTINUE;
if(headshot) { xp = xp + 20 hs = 10 }
if(PKS[killer] < 20) PKS[killer]++
xp = xp + PKS[killer]
add_xp(killer, xp, hs) check_level(killer)
return PLUGIN_CONTINUE; }
public add_xp( id, xp, hs ) { new newlevel = LEVELS[PLEVEL[ id ]]-PXP[ id ]
PXP[ id ] = PXP[ id ] + xp
Algo como esto que yo entiendo mejor en el EventoMuerte
Gracias, el que pueda ayudar con lo que sea se agradece eso es todo.
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], 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_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[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 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^"", sonido); 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); 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]", 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^"", 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[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"); 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); }
Mensajes: 288
Temas: 27
Registro en: Apr 2016
Reputación:
2
16/08/2017, 11:16 PM
(Última modificación: 16/08/2017, 11:28 PM por AagF.)
Saludos Carlos,
1*:
Código PHP: register_concmd("zone_quitar_lvl", "cmd_quitarlvl", ADMIN_RCON, "<Nombre>")
Código PHP: 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; }
2*
Código PHP: register_clcmd("/level", "verlevel")
Código PHP: public verlevel(id) { client_print(id, print_chat, "^3tu nivel es ^4%d", Nivel[id]) }
3*
Código PHP: register_clcmd("/xp", "VerExp")
Código PHP: public VerExp(id) { client_print(id, print_chat, "^3tu exp es ^4%d", exp[id]) }
4*
Código PHP: register_clcmd("/nextlevel", "nextlevel")
Código PHP: public nextlevel (id) { new nextlvl = (NivelSiguente(Nivel[id]) - exp[id]) client_print(id, print_chat, "^3Siguiente nivel en ^4%d XP", nextlvl) }
Mensajes: 2,074
Temas: 110
Registro en: Apr 2014
Cuál es tu problema con la macros, no hay nada mejor que eso (?
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], gBlock[33] new g_maxplayers;
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_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( "say /level", "verNivel" ); register_clcmd( "say /xp", "verEXP" ); register_clcmd( "say /nextlevel", "verNextLvl" ); register_concmd("surf_quitarnivel", "iQuitarTodo", ADMIN_IMMUNITY); register_clcmd("INGRESAR_PASSWORD", "Contra"); register_clcmd("nightvision", "menuprim") g_maxplayers = get_maxplayers() 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 verNivel( iID ) client_print( iID, print_chat, "tu nivel es: %i", Nivel[ iID ] ); public verEXP( iID ) client_print( iID, print_chat, "Tu experiencia es: %i", exp[ iID ] ); public verNextLvl( iID ){ new siglvl = ( NivelSiguente(Nivel[ iID ]) - exp[ iID ] ); client_print( iID, print_chat, "Te hace falta %i de experiencia para el nuevo nivel", siglvl ); } 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 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
//normal if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25
//headshot if(hs) exp[attacker]+= 10 //cuchillo 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]) 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); 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]", 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^"", 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[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"); 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); } public iQuitarTodo(id, level, cid) { if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED static arg[32], Player, nombre[32]; read_argv(1, arg, sizeof arg);
Player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);
get_user_name(Player, nombre, charsmax(nombre));
if(!Player) return PLUGIN_HANDLED Nivel[Player] = 1 exp[Player] = 0
client_print(Player, print_chat, "Te han borrado todos tus datos de tu cuenta!") ver_nivel(Player) return PLUGIN_HANDLED }
Mensajes: 76
Temas: 29
Registro en: May 2017
Reputación:
0
16/08/2017, 11:21 PM
(Última modificación: 16/08/2017, 11:22 PM por EduardoAPG.)
(16/08/2017, 11:16 PM)AagF escribió: Saludos Carlos,
1*:
Código PHP: register_concmd("zone_quitar_lvl", "cmd_quitarlvl", ADMIN_RCON, "<Nombre>")
Código PHP: 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; }
2*
Código PHP: register_clcmd("/level", "verlevel")
Código PHP: public verlevel(id) { client_print(id, print_chat, "^3tu nivel es ^4%d", Nivel[id]) }
3*
Código PHP: register_clcmd("/xp", "VerExp")
Código PHP: public VerExp(id) { client_print(id, print_chat, "^3tu exp es ^4%d", exp[id]) }
4*
Código PHP: register_clcmd("/nextlevel", "nextlevel")
Código PHP: public nextlevel (id) { client_print(id, print_chat, "^3Siguiente nivel en ^4%d XP", NivelSiguente(Nivel[id])) }
Muchisimas Gracias!!!
(16/08/2017, 11:19 PM)SoundBlaster escribió: Cuál es tu problema con la macros, no hay nada mejor que eso (?
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], gBlock[33] new g_maxplayers;
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_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( "say /level", "verNivel" ); register_clcmd( "say /xp", "verEXP" ); register_clcmd( "say /nextlevel", "verNextLvl" ); register_concmd("surf_quitarnivel", "iQuitarTodo", ADMIN_IMMUNITY); register_clcmd("INGRESAR_PASSWORD", "Contra"); register_clcmd("nightvision", "menuprim") g_maxplayers = get_maxplayers() 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 verNivel( iID ) client_print( iID, print_chat, "tu nivel es: %i", Nivel[ iID ] ); public verEXP( iID ) client_print( iID, print_chat, "Tu experiencia es: %i", exp[ iID ] ); public verNextLvl( iID ){ new siglvl = ( NivelSiguente(Nivel[ iID ]) - exp[ iID ] ); client_print( iID, print_chat, "Te hace falta %i de experiencia para el nuevo nivel", siglvl ); } 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 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
//normal if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25
//headshot if(hs) exp[attacker]+= 10 //cuchillo 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]) 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); 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]", 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^"", 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[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"); 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); } public iQuitarTodo(id, level, cid) { if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED static arg[32], Player, nombre[32]; read_argv(1, arg, sizeof arg);
Player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);
get_user_name(Player, nombre, charsmax(nombre));
if(!Player) return PLUGIN_HANDLED Nivel[Player] = 1 exp[Player] = 0
client_print(Player, print_chat, "Te han borrado todos tus datos de tu cuenta!") ver_nivel(Player) return PLUGIN_HANDLED }
No lo se utilizar, utilizo 1010 niveles y no se cual es el macro exacto para que todo vaya bien y ordenado.
Con el sistema normal puedo añadir la experiencia de cada nivel.
Mensajes: 2,074
Temas: 110
Registro en: Apr 2014
Sí tu lo dices.
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 NivelMax 400 new const NivelSiguente[NivelMax] = { 50, 100, 200, 400, 600, 800, ... }
new Nivel[33], exp[33], gBlock[33] new g_maxplayers;
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_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( "say /level", "verNivel" ); register_clcmd( "say /xp", "verEXP" ); register_clcmd( "say /nextlevel", "verNextLvl" ); register_concmd("surf_quitarnivel", "iQuitarTodo", ADMIN_IMMUNITY); register_clcmd("INGRESAR_PASSWORD", "Contra"); register_clcmd("nightvision", "menuprim") g_maxplayers = get_maxplayers() 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 verNivel( iID ) client_print( iID, print_chat, "tu nivel es: %i", Nivel[ iID ] ); public verEXP( iID ) client_print( iID, print_chat, "Tu experiencia es: %i", exp[ iID ] ); public verNextLvl( iID ){ new siglvl = NivelSiguente[ Nivel[ iID ] ]-exp[ iID ] client_print( iID, print_chat, "Te hace falta %i de experiencia para el nuevo nivel", siglvl ); } 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 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
//normal if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25
//headshot if(hs) exp[attacker]+= 10 //cuchillo 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]) 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); 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]", 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^"", 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[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"); 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); } public iQuitarTodo(id, level, cid) { if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED static arg[32], Player, nombre[32]; read_argv(1, arg, sizeof arg);
Player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);
get_user_name(Player, nombre, charsmax(nombre));
if(!Player) return PLUGIN_HANDLED Nivel[Player] = 1 exp[Player] = 0
client_print(Player, print_chat, "Te han borrado todos tus datos de tu cuenta!") ver_nivel(Player) return PLUGIN_HANDLED }
Mensajes: 76
Temas: 29
Registro en: May 2017
Reputación:
0
(16/08/2017, 11:33 PM)SoundBlaster escribió: Sí tu lo dices.
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 NivelMax 400 new const NivelSiguente[NivelMax] = { 50, 100, 200, 400, 600, 800, ... }
new Nivel[33], exp[33], gBlock[33] new g_maxplayers;
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_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( "say /level", "verNivel" ); register_clcmd( "say /xp", "verEXP" ); register_clcmd( "say /nextlevel", "verNextLvl" ); register_concmd("surf_quitarnivel", "iQuitarTodo", ADMIN_IMMUNITY); register_clcmd("INGRESAR_PASSWORD", "Contra"); register_clcmd("nightvision", "menuprim") g_maxplayers = get_maxplayers() 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 verNivel( iID ) client_print( iID, print_chat, "tu nivel es: %i", Nivel[ iID ] ); public verEXP( iID ) client_print( iID, print_chat, "Tu experiencia es: %i", exp[ iID ] ); public verNextLvl( iID ){ new siglvl = NivelSiguente[ Nivel[ iID ] ]-exp[ iID ] client_print( iID, print_chat, "Te hace falta %i de experiencia para el nuevo nivel", siglvl ); } 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 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
//normal if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25
//headshot if(hs) exp[attacker]+= 10 //cuchillo 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]) 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); 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]", 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^"", 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[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"); 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); } public iQuitarTodo(id, level, cid) { if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED static arg[32], Player, nombre[32]; read_argv(1, arg, sizeof arg);
Player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);
get_user_name(Player, nombre, charsmax(nombre));
if(!Player) return PLUGIN_HANDLED Nivel[Player] = 1 exp[Player] = 0
client_print(Player, print_chat, "Te han borrado todos tus datos de tu cuenta!") ver_nivel(Player) return PLUGIN_HANDLED }
Pero si tu dices que es mejor explicame como es para ponerlo.
Me puedes decir que cambiaste? Porque ya edite el sma
Mensajes: 2,074
Temas: 110
Registro en: Apr 2014
Mensajes: 76
Temas: 29
Registro en: May 2017
Reputación:
0
17/08/2017, 12:53 AM
(Última modificación: 17/08/2017, 01:00 AM por EduardoAPG.)
(16/08/2017, 11:33 PM)SoundBlaster escribió: Sí tu lo dices.
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 NivelMax 400 new const NivelSiguente[NivelMax] = { 50, 100, 200, 400, 600, 800, ... }
new Nivel[33], exp[33], gBlock[33] new g_maxplayers;
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_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( "say /level", "verNivel" ); register_clcmd( "say /xp", "verEXP" ); register_clcmd( "say /nextlevel", "verNextLvl" ); register_concmd("surf_quitarnivel", "iQuitarTodo", ADMIN_IMMUNITY); register_clcmd("INGRESAR_PASSWORD", "Contra"); register_clcmd("nightvision", "menuprim") g_maxplayers = get_maxplayers() 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 verNivel( iID ) client_print( iID, print_chat, "tu nivel es: %i", Nivel[ iID ] ); public verEXP( iID ) client_print( iID, print_chat, "Tu experiencia es: %i", exp[ iID ] ); public verNextLvl( iID ){ new siglvl = NivelSiguente[ Nivel[ iID ] ]-exp[ iID ] client_print( iID, print_chat, "Te hace falta %i de experiencia para el nuevo nivel", siglvl ); } 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 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
//normal if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25
//headshot if(hs) exp[attacker]+= 10 //cuchillo 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]) 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); 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]", 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^"", 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[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"); 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); } public iQuitarTodo(id, level, cid) { if(!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED static arg[32], Player, nombre[32]; read_argv(1, arg, sizeof arg);
Player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF);
get_user_name(Player, nombre, charsmax(nombre));
if(!Player) return PLUGIN_HANDLED Nivel[Player] = 1 exp[Player] = 0
client_print(Player, print_chat, "Te han borrado todos tus datos de tu cuenta!") ver_nivel(Player) return PLUGIN_HANDLED }
Gracias amigo, me podrias explicar esto por favor
Código PHP: if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25
Que es esto de 20, 30, 25 osea como se cual es la que me va a dar, es que soy nuevo en esto que significa < > == , eso ps. Para ayudarme en un futuro
o de 20, 30, 25 osea como se cual es la que me va a dar, es que soy nuevo en esto que significa < > == , eso ps. Para ayudarme en un futuro
Mensajes: 2,074
Temas: 110
Registro en: Apr 2014
17/08/2017, 09:41 AM
(Última modificación: 17/08/2017, 09:42 AM por SoundBlaster.)
Son condicionales, deberías de leer algo sobre programación
Código PHP: if(Nivel[attacker] > Nivel[victim]) exp[ attacker ] += 20 //Si el atacante es nivel más arriba que la victima gana 20 if(Nivel[attacker] < Nivel[ victim ]) exp[ attacker ] += 30//Si el atacante es nivel inferior que la victima gana 30 if(Nivel[attacker] == Nivel[victim]) exp[ attacker ] += 25//Si el atacante y la victima son el mismo nivel gana 25
|