Quiero unir estos 2 plugins - jbs - 19/04/2021
Buenas alguien tan amable de unir estos plugins, uno es de un sistema de niveles para zp y el otro es un top10 de niveles
top10:
Código PHP: /* Plugin generated by AMXX-Studio */
#include <amxmodx> #include <amxmisc> #include <csx> #include <nvault> #include <fakemeta>
#define PLUGIN "Top10 + Levels" #define AUTHOR "Frnc + Bugsy" #define VERSION "1.0"
#define VAULT_MAGIC 0x6E564C54 //nVLT #define VAULT_VERSION 0x0200 //second version
new const LEVELS[10000] = { 8, // 1 11, // 2 14, // 3 17, // 4 20, // 5 23, // 6 26, // 7 29, // 8 32, // 9 35, // 10 38, // 11 41, // 12 44, // 13 47, // 14 50, // 15 53 // 16 }
new PFRAGS[33] new PLEVEL[33] new PDEADS[33]
new Array:TopName new Array:TopData
const MaxKeyLen = 255; //Max 255 const MaxValLen = 512; //Max 65535 const DataBuffer = 128; //Make this the greater of (MaxKeyLen / 4) or (MaxValLen / 4)
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("DeathMsg", "EventDeathMsg", "a") register_clcmd("say /level", "printLevel") register_clcmd("say /top10", "show_top") TopName = ArrayCreate(1024) TopData = ArrayCreate(1024) }
public plugin_cfg() ReadVault("mro")
public plugin_end() { ArrayDestroy(TopName) ArrayDestroy(TopData) }
public ReadVault(const szVault[]) { new szFile[64], iFile new iVaultMagic, iVaultVersion, iVaultEntries new iKeyLen, iValLen, iTimeStamp new szKey[MaxKeyLen+1], szVal[MaxValLen+1], RawData[DataBuffer] formatex(szFile[get_datadir(szFile, charsmax(szFile))], charsmax(szFile), "/vault/%s.vault", szVault) iFile = fopen(szFile, "rb") if(!iFile) return 0; // Vault Magic fread_raw(iFile, RawData, 1, BLOCK_INT) iVaultMagic = RawData[0] if(iVaultMagic != VAULT_MAGIC) set_fail_state("Error reading nVault: Vault Magic") // Vault Version fread_raw(iFile, RawData, 1, BLOCK_SHORT) iVaultVersion = RawData[0] & 0xFFFF if(iVaultVersion != VAULT_VERSION) set_fail_state("Error reading nVault: Vault Version") // Vault Entries fread_raw(iFile, RawData, 1, BLOCK_INT) iVaultEntries = RawData[0]
server_print("nVault | Magic=%d Version=%d Entries=%d", iVaultMagic, iVaultVersion, iVaultEntries) server_print(" ") for(new iEntry = 0; iEntry < iVaultEntries; iEntry++) { // TimeStamp fread_raw(iFile, RawData, 1, BLOCK_INT) iTimeStamp = RawData[0] // Key Length fread_raw(iFile, RawData, 1, BLOCK_BYTE) iKeyLen = RawData[0] & 0xFF // Val Length fread_raw(iFile, RawData, 1, BLOCK_SHORT) iValLen = RawData[0] & 0xFFFF // Key Data fread_raw(iFile, RawData, iKeyLen, BLOCK_CHAR) ReadString(szKey, iKeyLen, charsmax(szKey), RawData) // Val Data fread_raw(iFile, RawData, iValLen, BLOCK_CHAR) ReadString(szVal, iValLen, charsmax(szVal), RawData) /*server_print("Entry=%d KeyLen=%d ValLen=%d TimeStamp=%d", iEntry, iKeyLen, iValLen, iTimeStamp) server_print("Key=^"%s^"", szKey) server_print("Val=^"%s^"", szVal) server_print(" ")*/ ArrayPushString(TopName, szKey) ArrayPushString(TopData, szVal) if(iEntry > 1022) { set_fail_state("Aumenta los numeros de la linea 133 y 134 en el codigo") } } fclose(iFile) return iVaultEntries }
ReadString(szDestString[], iLen, iMaxLen, SourceData[]) { new iStrPos = -1 new iRawPos = 0 while((++iStrPos < iLen) && (iStrPos < iMaxLen) && (iRawPos < DataBuffer)) { szDestString[iStrPos] = (SourceData[iRawPos] >> ((iStrPos % 4) * 8)) & 0xFF if(iStrPos &&((iStrPos % 4) == 3)) iRawPos++ } szDestString[iStrPos] = EOS }
public client_putinserver(id) { PDEADS[id] = 0 PLEVEL[id] = 0 PFRAGS[id] = 0 Load(id) }
public client_disconnect(id) { Save(id) PDEADS[id] = 0 PLEVEL[id] = 0 PFRAGS[id] = 0 }
public EventDeathMsg() { new killer = read_data(1) new victim = read_data(2) if(victim == killer) { return PLUGIN_CONTINUE } if(victim) PDEADS[victim]++ if(killer) PFRAGS[killer]++ check_level(killer) return PLUGIN_CONTINUE }
public check_level(id) { if(PFRAGS[id] >= LEVELS[PLEVEL[id]]) { PLEVEL[id]++ print_color(id, "!gSubiste A Nivel: !t%d", PLEVEL[id]) } }
public printLevel(id) { new newlevel = LEVELS[PLEVEL[id]]-PFRAGS[id] print_color(id, "!gTu Nivel Es !t%d !gY Te Faltan !t%d !gFrags Para Subir", PLEVEL[id], newlevel) }
public Load(id) { new timestamp new g_vault = nvault_open("mro") new name[32], key[40], data[200], szfrags[15], szLevel[15], szMuertes[15] get_user_name(id, name, charsmax(name)) formatex(key, charsmax(key), "^"%s^"", name) if(nvault_lookup(g_vault, key, data, charsmax(data), timestamp)) { parse(data, szfrags, 14, szLevel, 14, szMuertes, 14) PFRAGS[id] = str_to_num(szfrags) PLEVEL[id] = str_to_num(szLevel) PDEADS[id] = str_to_num(szMuertes) } nvault_close(g_vault) }
public Save(id) { new g_vault = nvault_open("mro") new name[32], key[40], szValue[64] get_user_name(id,name,charsmax(name)) formatex(key, charsmax(key), "^"%s^"", name) formatex(szValue, charsmax(szValue), "%d %d %d", PFRAGS[id], PLEVEL[id], PDEADS[id]) nvault_set(g_vault, key, szValue) nvault_close(g_vault) }
public show_top(id) { if(ArraySize(TopName) > 511) { print_color(id, "AUMENTAMEEEE Sort[512 <- QUIERO MAAS][4]") return PLUGIN_HANDLED } new ff[9], ll[9], mm[9], temp[9*3], count static Sort[512][4] // Pendiente aca for(new i; i < ArraySize(TopName); i++) { ArrayGetString(TopData, i, temp, charsmax(temp)) parse(temp, ff, charsmax(ff), ll, charsmax(ll), mm, charsmax(mm)) Sort[count][0] = i Sort[count][1] = str_to_num(ll) Sort[count][2] = str_to_num(ff) Sort[count][3] = str_to_num(mm) count++ } SortCustom2D(Sort, count, "compare_xp") new motd[1501], iLen iLen = format(motd, sizeof motd - 1, "<body bgcolor=#000000 text=#98f5ff><pre>") iLen += format(motd[iLen], (sizeof motd - 1) - iLen,"%s %-22.22s %3s %6s %6s^n", "#", "Name", "Nivel", "Asesinatos", "Muertes") new y = clamp(count, 0, 10) new name[32] for(new x = 0; x < y; x++) { ArrayGetString(TopName, Sort[x][0], name, charsmax(name)) iLen += format(motd[iLen], (sizeof motd - 1) - iLen, "%d %-22.22s %6d %6d %6d^n", x + 1, name, Sort[x][1],Sort[x][2],Sort[x][3]) } iLen += format(motd[iLen], (sizeof motd - 1) - iLen,"</body></pre>") show_motd(id,motd, "Top 10") return PLUGIN_CONTINUE }
public compare_xp(elem1[], elem2[]) { if(elem1[1] > elem2[1]) return -1 else if(elem1[1] < elem2[1]) return 1 return 0 }
stock print_color(id, const msg[], any:...) { static buffer[512], msg_SayText = 0 if(!msg_SayText) msg_SayText = get_user_msgid("SayText") vformat(buffer, charsmax(buffer), msg, 3) replace_all( buffer, charsmax( buffer ), "!n", "^1" ); // Default Color replace_all( buffer, charsmax( buffer ), "!g", "^4" ); // Green Color replace_all( buffer, charsmax( buffer ), "!t", "^3" ); // Team Color message_begin(MSG_ONE_UNRELIABLE, msg_SayText, _, id) write_byte(id) write_string(buffer) message_end() }
zp niveles:
Código PHP: /*================================================================================ *********************************************************** ************ [ [ZP] Ultimate LvL System 2.0 ] ************* *********************************************************** **************** [ PLUGIN STATUS: PUBLIC ] **************** *********************************************************** ------------------- -*- Description -*- ------------------- This is leveling system created for Zombie Plague 4.3. By default: 1Kill=2XP, 750DMG=1XP and XP need for new level is: XpForLevel = 5 * Level + 3 When you are at higher level, you are more powerful. -------------------- -*- Requirements -*- -------------------- * Mods: Zombie Plague 4.3 * AMXX: Version 1.8.0 or later * Module: amxmodx, amxmisc, zombieplague, nvault, fun, colorchat, hamsandwich, cstrike, engine ---------------- -*- Commands -*- ---------------- * /lvlshop - open shop menu * /lvlstats - show your stats in chat * /lvladmin - show admin menu ------------------------------- -*- CVARS and Customization -*- ------------------------------- For a complete and in-depth cvar list, look at the zp_lvl_system.cfg file located in the amxmodx\configs directory. ----------------- -*- Changelog -*- ----------------- * v1.0 - Basic function created * v1.1 - Shop added to plugin * v1.2 - Bug fixes at shop * v1.3 - Configuration file added * v1.4 - Added showing info while you cross over player with mouse * v1.5 - Added Cvar for setting X and Y position of HUD - Removed function for buying levels (cause its sucks) - Code optimized * v1.6 - Added Multy-Lingual System (LANG) * v1.7 - Added Natives for registering items in shop. (Payed with Money($)) * v1.8 - Now items can be payed via Money($) or via Ammo Packs(depending on item) * v1.9 - Added lot of CVARs. - Added Level UP sound - Added prefix [ LVL: %i ] * v2.0 - Now you can get XP while making damage or killing. - Added admin menu - Added system for calculating needed xp for new level --------------- -*- Credits -*- --------------- * KliPPy - For theaching me to do job with natives. * dEfuse[R]s^|-BS - I used some code from his level plugin (Levels 1.0) * Re.Act!ve - I used some code from his level plugin ([ZP] Server Addon: LevelUp System XP 3.2b) =================================================================================*/ #include <amxmodx> #include <amxmisc> #include <zombieplague> #include <nvault> #include <fun> #include <colorchat> #include <hamsandwich> #include <cstrike> #include <engine>
#define PLUGIN "[ZP] Ultimate LvL System" #define VERSION "2.0" #define AUTHOR "Kegla"
#define is_user_valid(%1) (1 <= %1 <= g_maxplayers) #define FLAG ADMIN_BAN
new PlayerXP[33] // Player experience new PlayerLevel[33] // Player level new PlayerXpForLevel[33] // Needed XP for reaching next level new PlayerAP[33] // Player bonus armor new PlayerZmHP[33] // Player bonus zombie health new PlayerHmHP[33] // Player bonus human health new PlayerHmDmg[33] // Player bonus human damage new PlayerZmDmg[33] // Player bonus zombie damage new g_msg_screenfade // Screenfade while becoming new level new g_vault // Nvault file new g_maxplayers // Maximum amount of players on server new g_msg_sync // Main HUD new g_damagedealt[33] // Damage done to players new AMOUNT[33] // Amount of levels (admin cmd: Set Levels) new g_amount = 1 new g_users_init[] = "addons/amxmodx/configs/users.ini" // Needed for giving slot
enum _:ITEM_INFO { NAME[32], PRICE, LEVEL, TEAM, PAY } new Array:ITEMS new ITEMS_NUM = 0 new ITEM_BOUGHT
// CVARS new cvar_PlayerAP new cvar_PlayerZmHP new cvar_PlayerHmHP new cvar_PlayerHmDmg new cvar_PlayerZmDmg new cvar_maxlevel new cvar_statsmode new cvar_allow_lvlreward new cvar_lvlrevard new cvar_giveinfbomb new cvar_give_slot new cvar_cross_over_allow new cvar_hud_allow new cvar_hud_x_pos new cvar_hud_y_pos new cvar_hud_red new cvar_hud_green new cvar_hud_blue new cvar_hud_spec_x_pos new cvar_hud_spec_y_pos new cvar_hud_spec_red new cvar_hud_spec_green new cvar_hud_spec_blue new cvar_save_type new cvar_allow_lvl_up_sound new cvar_allow_lvl_up_screenfade new cvar_allow_prefix new cvar_xp_for_kill new cvar_xp_for_dmg new cvar_dmg_for_xp new bool:can_advertise[33] new cvar_advert_spam_allow new cvar_advert_delay
new Float:PlayerDonePercent[33]
public plugin_precache() { precache_sound("misc/zp_uls_lvl_up.wav") } public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_cvar("zp_uls_by_kegla", "1", (FCVAR_SERVER|FCVAR_SPONLY)) g_vault = nvault_open("[ZP] LVL SYSTEM BY KEGLA") register_dictionary("zp_lvl_system.txt") register_event("DeathMsg", "DeathMsg", "a") register_event("HLTV", "RoundStart", "a", "1=0", "2=0") register_event("StatusValue","show_status","be","1=2","2!0") register_event("StatusValue","hide_status","be","1=1","2=0") RegisterHam(Ham_TakeDamage, "player", "TakeDamage") register_clcmd("say /lvlstats", "Stats") register_clcmd("say_team /lvlstats", "Stats") register_clcmd("say /lvlshop", "ShopMenu") register_clcmd("say_team /lvlshop", "ShopMenu") register_clcmd("say /lvladmin", "AdminMenu") register_clcmd("say_team /lvladmin", "AdminMenu") register_concmd("SET_LEVELS","SetLevels") register_clcmd("say", "HookSay") g_msg_screenfade = get_user_msgid("ScreenFade") g_msg_sync = CreateHudSyncObj() cvar_maxlevel = register_cvar("zp_lvl_max_levels", "100") cvar_statsmode = register_cvar("zp_lvl_stats_mode", "1") // 1-All; 2-HP,AP; 3-DMG cvar_xp_for_kill = register_cvar("zp_lvl_xp_for_kill", "2") cvar_allow_lvlreward = register_cvar("zp_lvl_allow_lvlreward", "1") cvar_lvlrevard = register_cvar("zp_lvl_ammo_packs_reward", "50") cvar_giveinfbomb = register_cvar("zp_lvl_give_inf_bomb", "1") cvar_PlayerAP = register_cvar("zp_lvl_stats_armor", "1") cvar_PlayerZmHP = register_cvar("zp_lvl_stats_zmhp", "50") cvar_PlayerHmHP = register_cvar("zp_lvl_stats_hmhp", "5") cvar_PlayerHmDmg = register_cvar("zp_lvl_stats_hmdmg", "1") cvar_PlayerZmDmg = register_cvar("zp_lvl_stats_zmdmg", "1") cvar_give_slot = register_cvar("zp_lvl_give_slot", "1") cvar_cross_over_allow = register_cvar("zp_lvl_allow_cross_over_info", "1") cvar_hud_allow = register_cvar("zp_lvl_hud_allow", "1") cvar_hud_x_pos = register_cvar("zp_lvl_hud_x_pos", "0.02") cvar_hud_y_pos = register_cvar("zp_lvl_hud_y_pos", "0.3236") cvar_hud_red = register_cvar("zp_lvl_hud_red", "0") cvar_hud_green = register_cvar("zp_lvl_hud_green", "255") cvar_hud_blue = register_cvar("zp_lvl_hud_blue", "0") cvar_hud_spec_x_pos = register_cvar("zp_lvl_hud_spec_x_pos", "0.02") cvar_hud_spec_y_pos = register_cvar("zp_lvl_hud_spec_y_pos", "0.3236") cvar_hud_spec_red = register_cvar("zp_lvl_hud_spec_red", "155") cvar_hud_spec_green = register_cvar("zp_lvl_hud_spec_green", "155") cvar_hud_spec_blue = register_cvar("zp_lvl_hud_spec_blue", "155") cvar_save_type = register_cvar("zp_lvl_save_type", "1") // 1-SteamID 2-IP 3-Nick cvar_allow_lvl_up_sound = register_cvar("zp_lvl_allow_lvl_up_sound", "1") cvar_allow_lvl_up_screenfade = register_cvar("zp_lvl_allow_lvl_up_screenfade", "1") cvar_allow_prefix = register_cvar("zp_lvl_allow_chat_prefix", "1") cvar_xp_for_dmg = register_cvar("zp_lvl_xp_for_n_dmg", "1") cvar_dmg_for_xp = register_cvar("zp_lvl_dmg_for_n_xp", "750") cvar_advert_spam_allow = register_cvar("zp_lvl_allow_advert_repeat", "1") cvar_advert_delay = register_cvar("zp_lvl_advert_delay", "30.0") ITEM_BOUGHT = CreateMultiForward("zp_lvl_shop_item_selected", ET_CONTINUE, FP_CELL, FP_CELL) ITEMS = ArrayCreate(ITEM_INFO, 16) g_maxplayers = get_maxplayers() } public plugin_natives() { register_native("zp_lvl_shop_register_item", "native_register_item", 0) register_native("zp_lvl_get_user_lvl", "native_get_user_lvl", 1) register_native("zp_lvl_get_user_xp", "native_get_user_xp", 1) register_native("zp_lvl_get_xp_for_lvl", "native_get_user_xp_for_lvl", 1) register_native("zp_lvl_get_max_lvl", "native_get_max_lvl", 1) } public plugin_cfg() { new cfgdir[33] get_configsdir(cfgdir, charsmax(cfgdir)) server_cmd("exec %s/zp_lvl_system.cfg", cfgdir) } public HookSay(id) { if(get_pcvar_num(cvar_allow_prefix) == 1) { new szName[33], szArgs[256] get_user_name(id, szName, charsmax(szName)) read_args(szArgs, charsmax(szArgs)) remove_quotes(szArgs) if(!is_user_alive(id)) { ColorChat(0, GREEN, "^1*DEAD*^4 [ LVL: %i ]^3 %s^1 : %s", PlayerLevel[id], szName, szArgs) } if(is_user_alive(id)) { ColorChat(0, GREEN, "[ LVL: %i ]^3 %s^1 : %s", PlayerLevel[id], szName, szArgs) } return PLUGIN_HANDLED } return PLUGIN_CONTINUE } public hide_status(id) { set_hudmessage(0, 0, 0, 0.0, 0.0) show_hudmessage(id,"") } public show_status(id) { if (get_pcvar_num(cvar_cross_over_allow) == 1) { new player_name[32], pid = read_data(2) get_user_name(pid,player_name,charsmax(player_name)) if (!zp_get_user_zombie(pid) && !zp_get_user_zombie(id)) { set_hudmessage(0, 0, 255, -1.0, 0.60, 1, 0.01, 7.0, 0.01, 0.01, 4) show_hudmessage(id,"[%L: %s]^n[%L: %i]", id, "ML_NAME", player_name, id, "ML_LEVEL", PlayerLevel[pid]) } if (zp_get_user_zombie(pid) && zp_get_user_zombie(id)) { set_hudmessage(255, 0, 0, -1.0, 0.60, 1, 0.01, 7.0, 0.01, 0.01, 4) show_hudmessage(id,"[%L: %s]^n[%L: %i]", id, "ML_NAME", player_name, id, "ML_LEVEL", PlayerLevel[pid]) } return PLUGIN_CONTINUE } return PLUGIN_HANDLED } public Stats(id) { switch(get_pcvar_num(cvar_statsmode)) { case 1: ColorChat(id, GREEN, "[LVL]^3 [^1ZM HP:^4+%i^3] [^1HM HP:^4+%i^3] [^1HM AP:^4+%i^3] [^1HM DMG:^4+%i^3] [^1ZM DMG:^4+%i^3]", PlayerZmHP[id], PlayerHmHP[id], PlayerAP[id], PlayerHmDmg[id], PlayerZmDmg[id]) case 2: ColorChat(id, GREEN, "[LVL]^3 [^1ZM HP:^4+%i^3] [^1HM HP:^4+%i^3] [^1HM AP:^4+%i^3]", PlayerZmHP[id], PlayerHmHP[id], PlayerAP[id]) case 3: ColorChat(id, GREEN, "[LVL]^3 [^1HM DMG:^4+%i^3] [^1ZM DMG:^4+%i^3]", PlayerHmDmg[id], PlayerZmDmg[id]) } } public TakeDamage(victim, inflictor, attacker, Float:damage, damage_bits) { if (get_pcvar_num(cvar_statsmode) == 1 || get_pcvar_num(cvar_statsmode) == 3) { if (!zp_get_user_zombie(attacker)) { if (is_user_alive(attacker)) { SetHamParamFloat(4, damage + PlayerHmDmg[attacker]) } g_damagedealt[attacker] += floatround(damage) while (g_damagedealt[attacker] > get_pcvar_num(cvar_dmg_for_xp)) { PlayerXP[attacker] += get_pcvar_num(cvar_xp_for_dmg) g_damagedealt[attacker] -= get_pcvar_num(cvar_dmg_for_xp) } } if (zp_get_user_zombie(attacker) && is_user_alive(attacker)) { SetHamParamFloat(4, damage + PlayerZmDmg[attacker]) } CheckLevel(attacker) return PLUGIN_CONTINUE } return PLUGIN_HANDLED } public DeathMsg() { new attacker = read_data(1) new victim = read_data(2) if (is_user_connected(attacker)) { if (attacker == victim) return if (PlayerLevel[attacker] == get_pcvar_num(cvar_maxlevel)) return PlayerXP[attacker] += get_pcvar_num(cvar_xp_for_kill) CheckLevel(attacker) } } public zp_user_infected_pre(id, infector) { if (is_user_connected(infector)) { if (id == infector) return if (PlayerLevel[infector] == get_pcvar_num(cvar_maxlevel)) return PlayerXP[infector] += get_pcvar_num(cvar_xp_for_kill) CheckLevel(infector) } } public Check(id) { PlayerXpForLevel[id] = 5*PlayerLevel[id]+3 new Float:g_one = float(PlayerXpForLevel[id]) new Float:g_two = float(PlayerXP[id]) PlayerDonePercent[id] = 100.00/Float:g_one*Float:g_two } public CheckLevel(id) { if (PlayerXP[id] >= PlayerXpForLevel[id]) { PlayerLevel[id]++ PlayerXP[id] = 0 if (get_pcvar_num(cvar_allow_lvlreward) == 1) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) + get_pcvar_num(cvar_lvlrevard)) ColorChat(id, GREEN, "%L", id, "ML_REWARD1", '^1') ColorChat(id, GREEN, "%L", id, "ML_REWARD2", '^1', '^3', get_pcvar_num(cvar_lvlrevard), '^1') } if (PlayerLevel[id] == get_pcvar_num(cvar_maxlevel) && get_pcvar_num(cvar_give_slot) == 1) { new szAuthID[33], szIP[33], szData[256] get_user_authid(id, szAuthID, charsmax(szAuthID)) get_user_ip(id, szIP, charsmax(szIP)) if(!equal(szAuthID, "VALVE_ID_LAN")) { formatex(szData, charsmax(szData), "^"%s^" ^"^" ^"b^" ^"ce^"", szAuthID) } else { formatex(szData, charsmax(szData), "^"%s^" ^"^" ^"b^" ^"de^"", szIP) } write_file(g_users_init, szData) ColorChat(id, GREEN, "%L", id, "ML_SLOT", '^1') } switch(get_pcvar_num(cvar_statsmode)) { case 1: { PlayerAP[id] += get_pcvar_num(cvar_PlayerAP) PlayerZmHP[id] += get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[id] += get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[id] += get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[id] += get_pcvar_num(cvar_PlayerZmDmg) } case 2: { PlayerAP[id] += get_pcvar_num(cvar_PlayerAP) PlayerZmHP[id] += get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[id] += get_pcvar_num(cvar_PlayerHmHP) } case 3: { PlayerHmDmg[id] += get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[id] += get_pcvar_num(cvar_PlayerZmDmg) } } new szPlayerName[33] get_user_name(id, szPlayerName, charsmax(szPlayerName)) ColorChat(0, GREEN, "%L", 0, "ML_CHAT", '^1', '^3', szPlayerName, '^1', '^3', PlayerLevel[id], '^1') if (get_pcvar_num(cvar_allow_lvl_up_sound) == 1) { client_cmd(id, "spk misc/zp_uls_lvl_up.wav") } if (get_pcvar_num(cvar_allow_lvl_up_screenfade) == 1) { set_user_fade(id) } } } public zp_user_infected_post(id, infector) { if (!is_user_alive(id)) return if (get_pcvar_num(cvar_statsmode) == 1 || get_pcvar_num(cvar_statsmode) == 2) { set_user_health(id, get_user_health(id) + PlayerZmHP[id]) } if (PlayerLevel[id] == get_pcvar_num(cvar_maxlevel) && get_pcvar_num(cvar_giveinfbomb) == 1 && zp_get_user_zombie(id)) { new random = random_num(0, 16) if ((random == 5 || random == 14) && !zp_is_survivor_round()) { give_item(id, "weapon_hegrenade") ColorChat(id, GREEN, "%L", id, "ML_INFECTION_GRENADE1", '^1', '^4', '^1') } ColorChat(id, GREEN, "%L", id, "ML_INFECTION_GRENADE2", '^1', '^4', '^1') } } public zp_user_humanized_post(id) { set_task(1.0, "GiveBonus", id) } public RoundStart() { new players[32] , num get_players(players, num) for(new id = 1; id < num; id++) { set_task(1.0, "GiveBonus", id) } } public GiveBonus(id) { if (!is_user_alive(id) || zp_get_user_zombie(id)) return if (get_pcvar_num(cvar_statsmode) == 1 || get_pcvar_num(cvar_statsmode) == 2) { set_user_armor(id, get_user_health(id) + PlayerAP[id]) set_user_health(id, get_user_armor(id) + PlayerHmHP[id]) } } public client_connect(id) { set_task(1.0, "LvlUp", id) set_task(22.0, "Advert", id) set_task(1.0, "MainHUD", id, _, _, "b") set_task(1.0, "Check", id, _, _, "b") LoadInfo(id) g_damagedealt[id] = 0 if(get_pcvar_num(cvar_advert_spam_allow) == 1) { can_advertise[id] = true } else { can_advertise[id] = false } } public MainHUD(id) { if (get_pcvar_num(cvar_hud_allow) == 1) { new percent[33] formatex(percent, charsmax(percent), "%") if(!is_user_alive(id)) { new target = entity_get_int(id, EV_INT_iuser2) if(target == 0) return PLUGIN_HANDLED set_hudmessage(get_pcvar_num(cvar_hud_spec_red), get_pcvar_num(cvar_hud_spec_green), get_pcvar_num(cvar_hud_spec_blue), get_pcvar_float(cvar_hud_spec_x_pos), get_pcvar_float(cvar_hud_spec_y_pos)) if (PlayerLevel[target] == get_pcvar_num(cvar_maxlevel)) { ShowSyncHudMsg(id, g_msg_sync, "[ %L: %i ]", id, "ML_LEVEL", PlayerLevel[target]) } else { ShowSyncHudMsg(id, g_msg_sync, "[ %L: %i ]^n[ %i %L / %i %L ]^n[ %.2f%s ]", id, "ML_LEVEL", PlayerLevel[target], PlayerXP[target], id, "ML_XP", PlayerXpForLevel[target], id, "ML_XP", Float:PlayerDonePercent[target], percent) } } else { set_hudmessage(get_pcvar_num(cvar_hud_red), get_pcvar_num(cvar_hud_green), get_pcvar_num(cvar_hud_blue), get_pcvar_float(cvar_hud_x_pos), get_pcvar_float(cvar_hud_y_pos)) if (PlayerLevel[id] == get_pcvar_num(cvar_maxlevel)) { ShowSyncHudMsg(id, g_msg_sync, "[ %L: %i ]", id, "ML_LEVEL", PlayerLevel[id]) } else { ShowSyncHudMsg(id, g_msg_sync, "[ %L: %i ]^n[ %i %L / %i %L ]^n[ %.2f%s ]", id, "ML_LEVEL", PlayerLevel[id], PlayerXP[id], id, "ML_XP", PlayerXpForLevel[id], id, "ML_XP", Float:PlayerDonePercent[id], percent) } } return PLUGIN_CONTINUE } return PLUGIN_HANDLED } public client_disconnect(id) { SaveInfo(id) can_advertise[id] = false } public LvlUp(id) { if(PlayerLevel[id] == 0) { PlayerLevel[id] = 1 switch(get_pcvar_num(cvar_statsmode)) { case 1: { PlayerAP[id] = get_pcvar_num(cvar_PlayerAP) PlayerZmHP[id] = get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[id] = get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[id] = get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[id] = get_pcvar_num(cvar_PlayerZmDmg) } case 2: { PlayerAP[id] = get_pcvar_num(cvar_PlayerAP) PlayerZmHP[id] = get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[id] = get_pcvar_num(cvar_PlayerHmHP) } case 3: { PlayerHmDmg[id] = get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[id] = get_pcvar_num(cvar_PlayerZmDmg) } } } return PLUGIN_HANDLED } public Advert(id) { ColorChat(id, GREEN, "%L", id, "ML_ADVERT1", '^1', '^3', '^1', '^3', '^1') ColorChat(id, GREEN, "%L", id, "ML_ADVERT2", '^1', '^3', '^1', '^3', '^1') if (can_advertise[id] == true) { set_task(get_pcvar_float(cvar_advert_delay), "Advert", id) } } public SaveInfo(id) { new szData[256], szSave[32] formatex(szData, charsmax(szData), "%i %i %i %i %i %i %i", PlayerLevel[id], PlayerXP[id], PlayerHmHP[id], PlayerZmHP[id], PlayerAP[id], PlayerHmDmg[id], PlayerZmDmg[id]) get_save_type(id, szSave, charsmax(szSave)) nvault_set(g_vault, szSave, szData) } public LoadInfo(id) { new szData[256], szInfo[7][33], szLoad[32] get_save_type(id, szLoad, charsmax(szLoad)) nvault_get(g_vault, szLoad, szData, charsmax(szData)) parse(szData, szInfo[0], charsmax(szInfo[]), szInfo[1], charsmax(szInfo[]), szInfo[2], charsmax(szInfo[]), szInfo[3], charsmax(szInfo[]), szInfo[4], charsmax(szInfo[]), szInfo[5], charsmax(szInfo[]), szInfo[6], charsmax(szInfo[])) PlayerLevel[id] = str_to_num(szInfo[0]) PlayerXP[id] = str_to_num(szInfo[1]) PlayerHmHP[id] = str_to_num(szInfo[2]) PlayerZmHP[id] = str_to_num(szInfo[3]) PlayerAP[id] = str_to_num(szInfo[4]) PlayerHmDmg[id] = str_to_num(szInfo[5]) PlayerZmDmg[id] = str_to_num(szInfo[6]) } public ShopMenu(id) { new iMenu = menu_create("\y[ZP] LvL Shop", "ShopHandler") new szBuffer[64] new item_info[ITEM_INFO] for(new i = 0; i < ITEMS_NUM; i++) { ArrayGetArray(ITEMS, i, item_info) if (is_user_alive(id) && PlayerLevel[id] >= item_info[LEVEL] && item_info[PAY] == 1 && cs_get_user_money(id) >= item_info[PRICE] && ((item_info[TEAM] == 1 && !zp_get_user_zombie(id)) || (item_info[TEAM] == 2 && zp_get_user_zombie(id)) || item_info[TEAM] == 3)) { formatex(szBuffer, charsmax(szBuffer), "\w%s -\y %i$", item_info[NAME], item_info[PRICE]) } if (is_user_alive(id) && PlayerLevel[id] >= item_info[LEVEL] && item_info[PAY] == 2 && zp_get_user_ammo_packs(id) >= item_info[PRICE] && ((item_info[TEAM] == 1 && !zp_get_user_zombie(id)) || (item_info[TEAM] == 2 && zp_get_user_zombie(id)) || item_info[TEAM] == 3)) { formatex(szBuffer, charsmax(szBuffer), "\w%s -\y %i %L", item_info[NAME], item_info[PRICE], id, "ML_AMMO_PACKS") } if (PlayerLevel[id] < item_info[LEVEL]) { formatex(szBuffer, charsmax(szBuffer), "\r%s - %L %iLvL", item_info[NAME], id, "ML_UNLOCK", item_info[LEVEL]) } if(!is_user_alive(id) || (item_info[PAY] == 1 && cs_get_user_money(id) < item_info[PRICE]) || item_info[TEAM] == 1 && zp_get_user_zombie(id) || item_info[TEAM] == 2 && !zp_get_user_zombie(id)) { formatex(szBuffer, charsmax(szBuffer), "\d%s - %i$", item_info[NAME], item_info[PRICE]) } if(!is_user_alive(id) || (item_info[PAY] == 2 && zp_get_user_ammo_packs(id) < item_info[PRICE]) || item_info[TEAM] == 1 && zp_get_user_zombie(id) || item_info[TEAM] == 2 && !zp_get_user_zombie(id)) { formatex(szBuffer, charsmax(szBuffer), "\d%s - %i %L", item_info[NAME], item_info[PRICE], id, "ML_AMMO_PACKS") } menu_additem(iMenu, szBuffer) } menu_display(id, iMenu) } public ShopHandler(id, iMenu, iItem) { if(iItem == MENU_EXIT) { menu_destroy(iMenu) return PLUGIN_HANDLED } new item_info[ITEM_INFO] ArrayGetArray(ITEMS, iItem, item_info) if (!is_user_alive(id)) { ColorChat(id, GREEN, "%L", id, "ML_YOU_ARE_DEAD", '^1') } else if(PlayerLevel[id] < item_info[LEVEL]) { ColorChat(id, GREEN, "%L", id, "ML_NOT_REQUERED_LVL", '^1', '^4', item_info[NAME], '^1') } else if (zp_get_user_zombie(id) && item_info[TEAM] == 1) { ColorChat(id, GREEN, "%L", id, "ML_CANT_BUY_ZM", '^1') } else if (!zp_get_user_zombie(id) && item_info[TEAM] == 2) { ColorChat(id, GREEN, "%L", id, "ML_CANT_BUY_HM", '^1') } else if(cs_get_user_money(id) < item_info[PRICE] && item_info[PAY] == 1) { ColorChat(id, GREEN, "%L", id, "ML_NOT_ENOUGH_MONEY", '^1', '^4', item_info[NAME], '^1') } else if(zp_get_user_ammo_packs(id) < item_info[PRICE] && item_info[PAY] == 2) { ColorChat(id, GREEN, "%L", id, "ML_NOT_ENOUGH_AMMO_PACKS", '^1', '^4', item_info[NAME], '^1') } else { new iReturn = PLUGIN_CONTINUE ExecuteForward(ITEM_BOUGHT, iReturn, id, iItem) if(iReturn == PLUGIN_HANDLED) { goto plugin_handled } if (item_info[PAY] == 1) { cs_set_user_money(id, cs_get_user_money(id) - item_info[PRICE]) ColorChat(id, GREEN, "%L", id, "ML_BOUGHT_MONEY", '^1', '^4', item_info[NAME], '^1', '^4', item_info[PRICE], '^1') } if (item_info[PAY] == 2) { zp_set_user_ammo_packs(id, zp_get_user_ammo_packs(id) - item_info[PRICE]) ColorChat(id, GREEN, "%L", id, "ML_BOUGHT_AMMO_PACKS", '^1', '^4', item_info[NAME], '^1', '^4', item_info[PRICE], '^1') } } plugin_handled: menu_destroy(iMenu) return PLUGIN_HANDLED } public AdminMenu(id) { if (get_user_flags(id) & FLAG) { new iMenu = menu_create("\y[LvL] Admin Menu", "AdminMenuHandler") new const szItemsName[][] = { "ML_ADMIN_GIVE_LEVELS", "ML_ADMIN_TAKE_LEVELS", "ML_ADMIN_SET_LEVEL", "ML_ADMIN_RESET_LEVEL" } new szItems[64] for (new i=0; i < sizeof szItemsName; i++) { formatex(szItems, charsmax(szItems), "%L", id, szItemsName[i]) menu_additem(iMenu, szItems) } menu_display(id, iMenu) } } public AdminMenuHandler(id, menu, item) { if(item == MENU_EXIT) { menu_destroy(menu) return PLUGIN_CONTINUE } switch(item) { case 0: { GiveLevels(id) } case 1: { TakeLevels(id) } case 2: { client_cmd(id,"messagemode SET_LEVELS") } case 3: { ResetLevels(id) } } return PLUGIN_CONTINUE } public GiveLevels(id) { new iMenu = menu_create ("[LvL] Give Levels", "GiveLevelsHandler") new num, players[32], szIndex, szIndex2[10], szPlayerName[32], szText[64], szText2[64] get_players (players, num) formatex(szText2, charsmax(szText2), "%L", id, "ML_ADMIN_AMOUNT_TO_GIVE", g_amount) menu_additem(iMenu, szText2) for (new i = 0; i < num; i++) { szIndex = players[i] get_user_name(szIndex, szPlayerName, charsmax(szPlayerName)) num_to_str(szIndex, szIndex2, charsmax(szIndex2)) formatex(szText, charsmax(szText), "%s\r[\y%i\r]", szPlayerName, PlayerLevel[szIndex]) menu_additem(iMenu, szText, szIndex2, 0) } menu_display(id, iMenu) return PLUGIN_CONTINUE } public TakeLevels(id) { new iMenu = menu_create ("[LvL] Take Levels", "TakeLevelsHandler") new num, players[32], szIndex, szIndex2[10], szPlayerName[32], szText[64], szText2[64] get_players (players, num) formatex(szText2, charsmax(szText2), "%L", id, "ML_ADMIN_AMOUNT_TO_TAKE", g_amount) menu_additem(iMenu, szText2) for (new i = 0; i < num; i++) { szIndex = players[i] get_user_name(szIndex, szPlayerName, charsmax(szPlayerName)) num_to_str(szIndex, szIndex2, charsmax(szIndex2)) formatex(szText, charsmax(szText), "%s\r[\y%i\r]", szPlayerName, PlayerLevel[szIndex]) menu_additem(iMenu, szText, szIndex2, 0) } menu_display(id, iMenu) } public GiveLevelsHandler(id, menu, item) { if(item == MENU_EXIT) { AdminMenu(id) return PLUGIN_HANDLED } switch(item) { case 0: { if(g_amount == 10) { g_amount = 1 GiveLevels(id) } else { g_amount++ GiveLevels(id) } } } new szData[6], szName[64], access, callback menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback) new szIndex = str_to_num(szData) new lvl_plus_amount = PlayerLevel[szIndex]+g_amount if (lvl_plus_amount >= get_pcvar_num(cvar_maxlevel)) { PlayerLevel[szIndex] = get_pcvar_num(cvar_maxlevel) if (get_pcvar_num(cvar_statsmode) == 1) { PlayerAP[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerZmDmg) } if (get_pcvar_num(cvar_statsmode) == 2) { PlayerAP[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerHmHP) } if (get_pcvar_num(cvar_statsmode) == 3) { PlayerHmDmg[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = get_pcvar_num(cvar_maxlevel)*get_pcvar_num(cvar_PlayerZmDmg) } GiveLevels(id) return PLUGIN_HANDLED } else { PlayerLevel[szIndex] += g_amount if (get_pcvar_num(cvar_statsmode) == 1) { PlayerAP[szIndex] += g_amount*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] += g_amount*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] += g_amount*get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[szIndex] += g_amount*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] += g_amount*get_pcvar_num(cvar_PlayerZmDmg) } if (get_pcvar_num(cvar_statsmode) == 2) { PlayerAP[szIndex] += g_amount*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] += g_amount*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] += g_amount*get_pcvar_num(cvar_PlayerHmHP) } if (get_pcvar_num(cvar_statsmode) == 3) { PlayerHmDmg[szIndex] += g_amount*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] += g_amount*get_pcvar_num(cvar_PlayerZmDmg) } GiveLevels(id) } return PLUGIN_CONTINUE } public TakeLevelsHandler(id, menu, item) { if(item == MENU_EXIT) { AdminMenu(id) return PLUGIN_HANDLED } switch(item) { case 0: { if(g_amount == 10) { g_amount = 1 TakeLevels(id) } else { g_amount++ TakeLevels(id) } } } new szData[6], szName[64], access, callback menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback) new szIndex = str_to_num(szData) new lvl_minus_amount = PlayerLevel[szIndex]-g_amount if (lvl_minus_amount <= 0) { PlayerLevel[szIndex] = 1 if (get_pcvar_num(cvar_statsmode) == 1) { PlayerAP[szIndex] = get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[szIndex] = get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = get_pcvar_num(cvar_PlayerZmDmg) } if (get_pcvar_num(cvar_statsmode) == 2) { PlayerAP[szIndex] = get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = get_pcvar_num(cvar_PlayerHmHP) } if (get_pcvar_num(cvar_statsmode) == 3) { PlayerHmDmg[szIndex] = get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = get_pcvar_num(cvar_PlayerZmDmg) } TakeLevels(id) return PLUGIN_HANDLED } else { PlayerLevel[szIndex] -= g_amount if (get_pcvar_num(cvar_statsmode) == 1) { PlayerAP[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerZmDmg) } if (get_pcvar_num(cvar_statsmode) == 2) { PlayerAP[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerHmHP) } if (get_pcvar_num(cvar_statsmode) == 3) { PlayerHmDmg[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] -= g_amount*get_pcvar_num(cvar_PlayerZmDmg) } TakeLevels(id) } return PLUGIN_HANDLED } public SetLevels(id) { new szArgv[33] read_argv(1, szArgv, charsmax(szArgv)) AMOUNT[id] = str_to_num(szArgv) if(AMOUNT[id] <= 0) { ColorChat(id, GREEN, "%L", id, "ML_WRONG_DATA_INPUT", '^1') } else { new iMenu = menu_create ("[LvL] Set Levels", "SetLevelsHandler") new num, players[32], szIndex, szIndex2[10], szPlayerName[32], szText[64] get_players (players, num) for (new i = 0; i < num; i++) { szIndex = players[i] get_user_name(szIndex, szPlayerName, charsmax(szPlayerName)) num_to_str(szIndex, szIndex2, charsmax(szIndex2)) formatex(szText, charsmax(szText), "%s\r[\y%i\r]", szPlayerName, PlayerLevel[szIndex]) menu_additem(iMenu, szText, szIndex2, 0) } menu_display(id, iMenu) } return PLUGIN_CONTINUE } public SetLevelsHandler(id, menu, item) { if(item == MENU_EXIT) { AdminMenu(id) return PLUGIN_HANDLED } new szData[6], szName[64], access, callback menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback) new szIndex = str_to_num(szData) PlayerLevel[szIndex] = AMOUNT[id] if (get_pcvar_num(cvar_statsmode) == 1) { PlayerAP[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerZmDmg) } if (get_pcvar_num(cvar_statsmode) == 2) { PlayerAP[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerHmHP) } if (get_pcvar_num(cvar_statsmode) == 3) { PlayerHmDmg[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = AMOUNT[id]*get_pcvar_num(cvar_PlayerZmDmg) } return PLUGIN_HANDLED } public ResetLevels(id) { new iMenu = menu_create ("[LvL] Reset Levels", "ResetLevelsHandler") new num, players[32], szIndex, szIndex2[10], szPlayerName[32], szText[64] get_players (players, num) for (new i = 0; i < num; i++) { szIndex = players[i] get_user_name(szIndex, szPlayerName, charsmax(szPlayerName)) num_to_str(szIndex, szIndex2, charsmax(szIndex2)) formatex(szText, charsmax(szText), "%s\r[\y%i\r]", szPlayerName, PlayerLevel[szIndex]) menu_additem(iMenu, szText, szIndex2, 0) } menu_display(id, iMenu) } public ResetLevelsHandler(id, menu, item) { if(item == MENU_EXIT) { AdminMenu(id) return PLUGIN_HANDLED } new szData[6], szName[64], access, callback menu_item_getinfo(menu, item, access, szData, charsmax(szData), szName, charsmax(szName), callback) new szIndex = str_to_num(szData) PlayerLevel[szIndex] = 1 if (get_pcvar_num(cvar_statsmode) == 1) { PlayerAP[szIndex] = get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = get_pcvar_num(cvar_PlayerHmHP) PlayerHmDmg[szIndex] = get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = get_pcvar_num(cvar_PlayerZmDmg) } if (get_pcvar_num(cvar_statsmode) == 2) { PlayerAP[szIndex] = get_pcvar_num(cvar_PlayerAP) PlayerZmHP[szIndex] = get_pcvar_num(cvar_PlayerZmHP) PlayerHmHP[szIndex] = get_pcvar_num(cvar_PlayerHmHP) } if (get_pcvar_num(cvar_statsmode) == 3) { PlayerHmDmg[szIndex] = get_pcvar_num(cvar_PlayerHmDmg) PlayerZmDmg[szIndex] = get_pcvar_num(cvar_PlayerZmDmg) } ResetLevels(id) return PLUGIN_HANDLED } stock set_user_fade(index) { message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, index); write_short((1 << 12) * 1); write_short(floatround((1 << 12) * 0.1)); write_short(0x0000); write_byte(0); write_byte(170); write_byte(255); write_byte(150); message_end(); } stock get_save_type(id, data[], len) { switch(get_pcvar_num(cvar_save_type)) { case 1: get_user_authid(id, data, len) case 2: get_user_ip(id, data, len) case 3: get_user_name(id, data, len) } }
/* zp_lvl_shop_register_item(const name[], price, level, team, pay) */ public native_register_item(iPlugin, iParams) { new item_info[ITEM_INFO] get_string(1, item_info[NAME], charsmax(item_info[NAME])) item_info[PRICE] = get_param(2) item_info[LEVEL] = get_param(3) item_info[TEAM] = get_param(4) item_info[PAY] = get_param(5) ArrayPushArray(ITEMS, item_info) ITEMS_NUM++ return ITEMS_NUM - 1 }
/* zp_lvl_get_user_lvl(id) */ public native_get_user_lvl(id) { if (!is_user_valid(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1 } return PlayerLevel[id] }
/* zp_lvl_get_user_xp(id) */ public native_get_user_xp(id) { if (!is_user_valid(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1 } return PlayerXP[id] }
/* zp_lvl_get_xp_for_lvl(id) */ public native_get_user_xp_for_lvl(id) { if (!is_user_valid(id)) { log_error(AMX_ERR_NATIVE, "[ZP] Invalid Player (%d)", id) return -1 } return PlayerXpForLevel[id] }
/* zp_lvl_get_max_lvl() */ public native_get_max_lvl() { new max_level = get_pcvar_num(cvar_maxlevel) return max_level }
|