Page 4 of 8

Re: Levels-XP System

Posted: 28 Jan 2018, 18:32
by Raheem
You can see how other plugin done it and do same as they did.

Re: Levels-XP System

Posted: 29 Jan 2018, 03:36
by Rain1153
Raheem when will the next version be released i can't wait for it :shock:

Re: Levels-XP System

Posted: 18 Mar 2018, 19:42
by Luxurious
It Can Work For Zombie Escape V2.2 ???

Re: Levels-XP System

Posted: 19 May 2018, 19:15
by LosT

Code: Select all

//// ze_level_systemv23.sma
//
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(105) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
//
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(356) : error 017: undefined symbol "fvault_get_data"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(356) : error 088: number of arguments does not match definition
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(395) : error 017: undefined symbol "fvault_set_data"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(396) : error 017: undefined symbol "fvault_set_data"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(407) : error 017: undefined symbol "fvault_size"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(440) : error 017: undefined symbol "fvault_get_keyname"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(440) : error 088: number of arguments does not match definition
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(443) : error 017: undefined symbol "fvault_get_data"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(443) : error 088: number of arguments does not match definition
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(446) : error 017: undefined symbol "fvault_get_keyname"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(446) : error 088: number of arguments does not match definition
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(449) : error 017: undefined symbol "fvault_get_data"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(449) : error 088: number of arguments does not match definition
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(567) : error 017: undefined symbol "fvault_size"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(586) : error 017: undefined symbol "fvault_get_keyname"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(586) : error 088: number of arguments does not match definition
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(589) : error 017: undefined symbol "fvault_get_data"
// C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\ze_level_systemv23.sma(589) : error 088: number of arguments does not match definition
//
// 18 Errors.
// Could not locate output file C:\Users\rappe\Desktop\Compiler v 1.8.3\Compiler v 1.8.3\compiled\ze_level_systemv23.amx (compile failed).
//
// Compilation Time: 2.52 sec
// ----------------------------------------

Re: Levels-XP System

Posted: 20 May 2018, 15:29
by Raheem
Use latest version of the level system so you won't get problems.

Re: Levels-XP System

Posted: 28 Jul 2018, 21:00
by konno
update?

Re: Levels-XP System

Posted: 28 Jul 2018, 21:20
by Raheem
Soon.

Re: Levels-XP System

Posted: 29 Jul 2018, 15:11
by Raheem
New version released: Image

In this version the basic thing done is fixing the nVault saving. I don't add support for MySQL yet.

I noticed this when i was testing this new version (Related to nVault Module): If vault opened and not closed and map changed or server goes down, data will be lost. I tried hard to avoid this case.

Next version will include the MySQL support, which indeed the best method for saving and the simplest ever.

Re: Levels-XP System

Posted: 29 Jul 2018, 15:41
by Rain1153
so will it fix the current reset problem?

Re: Levels-XP System

Posted: 29 Jul 2018, 17:06
by czirimbolo
Raheem, when I updated this to 1,8v, my top ranking is not working. /myrank and /lvlrank don't work, I deleted Levels.vault and Ranks.vault but still nothing

Re: Levels-XP System

Posted: 29 Jul 2018, 18:57
by Raheem
Rain1153 wrote: 5 years ago so will it fix the current reset problem?
It should. Test and tell me.
czirimbolo wrote: 5 years ago Raheem, when I updated this to 1,8v, my top ranking is not working. /myrank and /lvlrank don't work, I deleted Levels.vault and Ranks.vault but still nothing
Top rank works if there is more than 10 players entered your server (saved in nVault). 10 players or whatever you set the rank to show in the rank page. By anyway i'll update rank plugin soon as there is some problems in ranking.

Re: Levels-XP System

Posted: 29 Jul 2018, 19:07
by czirimbolo
L 07/29/2018 - 20:54:09: [AMXX] Displaying debug trace (plugin "ze_levels_rank_top.amxx", version "1.0")
L 07/29/2018 - 20:54:09: [AMXX] Run time error 10: native error (native "nvault_lookup")
L 07/29/2018 - 20:54:09: [AMXX] [0] ze_levels_rank_top.sma::Cmd_Rank (line 208)

even /myrank is not working

Re: Levels-XP System

Posted: 29 Jul 2018, 19:13
by Raheem
Right, this because the vaults not opened yet. Wait till i update this rank also.

Re: Levels-XP System

Posted: 19 Aug 2018, 16:19
by sPe3doN
have idea can you add speed for each level
Level 0 = speed : 250
Level 1 = speed : 251
Level 2 = speed : 252

Re: Levels-XP System

Posted: 20 Aug 2018, 02:52
by Rain1153
Have to make a plugin then

Re: Levels-XP System

Posted: 13 Sep 2018, 14:19
by Raheem
Next Level XP needed calculator: viewtopic.php?f=7&t=3422

Re: Levels-XP System

Posted: 06 Feb 2019, 16:22
by Raheem
New release, finally MySQL support added thanks to jack.


Image

Re: Levels-XP System

Posted: 11 May 2019, 16:55
by Spir0x
Who can update my old code to new one ? ...
becuz on my own code i have added dhud messages and double xp, level up shake effects & some special things. on the latest update i didn't even find the level up shake effects.

My code:

Code: Select all

#include <zombie_escape>
 
// Defines
#define MAX_LEVEL 50
#define MAX_XP 10672
#define TASK_SHOWHUD 2020
#define TASK_DOUBLE 1133
#define REPEAT_TIME 60.0
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define LEVELUP "Premuim_ZE/ze_promoted.mp3"
 
// Constants
new const g_szLevelsVault[] = "Levels"
new const g_szRanksVault[] = "Ranks"
 
// Messages
const Float:HUD_SPECT_X = -1.0
const Float:HUD_SPECT_Y = 0.70
const Float:HUD_STATS_X = 0.01
const Float:HUD_STATS_Y = 0.15
 
const HUD_STATS_ZOMBIE_R = 0
const HUD_STATS_ZOMBIE_G = 230
const HUD_STATS_ZOMBIE_B = 255
 
const HUD_STATS_HUMAN_R = 0
const HUD_STATS_HUMAN_G = 230
const HUD_STATS_HUMAN_B = 255
 
const HUD_STATS_SPEC_R = 100
const HUD_STATS_SPEC_G = 100
const HUD_STATS_SPEC_B = 100
 
// Variables
new g_iLevel[33],
    g_iXP[33],
    g_iMaxXP[33],
    Float:g_fDamage[33],
    g_MsgSync,
    g_iLevelsVaultHandle,
    g_iRanksVaultHandle,
    bool:g_bIsDoubleHours
 
// Cvars
new g_pCvarZombieInfect,
    g_pCvarEscapeSuccess,
    g_pCvarEnableDamage,
    g_pCvarRequiredDamage,
    g_pCvarDamageAward,
    g_pCvarStartXP,
    g_pCvarMaxLevelsIncrement,
    g_pCvarMaxXPFirstLevel,
    g_pCvarPercentageStyle,
    g_pCvarStartFromZero,
    g_pCvarAddCommas,
    g_pCvarLevelEffects,
    g_pCvarDoubleXP
 
public plugin_natives()
{
    register_native("ze_get_user_xp", "native_ze_get_user_xp", 1)
    register_native("ze_set_user_xp", "native_ze_set_user_xp", 1)
    register_native("ze_get_user_level", "native_ze_get_user_level", 1)
    register_native("ze_set_user_level", "native_ze_set_user_level", 1)
    register_native("ze_get_user_max_xp", "native_ze_get_user_max_xp", 1)
    register_native("ze_set_user_max_xp", "native_ze_set_user_max_xp", 1)
}
 
public plugin_precache()
{
    precache_sound(LEVELUP)
}
 
public plugin_init()
{
    register_plugin("[ZE] Level-XP System", "1.8", "Raheem/JaCk")
   
    // Hook Chains
    RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
   
    // Cvars
    g_pCvarZombieInfect = register_cvar("ze_zombie_infect", "3")
    g_pCvarEscapeSuccess = register_cvar("ze_escape_success", "5")
    g_pCvarEnableDamage = register_cvar("ze_enable_dmg", "1")
    g_pCvarRequiredDamage = register_cvar("ze_required_dmg", "50.0")
    g_pCvarDamageAward = register_cvar("ze_dmg_award", "3")
    g_pCvarStartXP = register_cvar("ze_start_xp", "50")
    g_pCvarMaxLevelsIncrement = register_cvar("ze_maxlevels_increment", "2.0")
    g_pCvarMaxXPFirstLevel = register_cvar("ze_max_xp_first_level", "100")
    g_pCvarPercentageStyle = register_cvar("ze_enable_percentage_style", "1")
    g_pCvarStartFromZero = register_cvar("ze_new_level_zero_xp", "0")
    g_pCvarAddCommas = register_cvar("ze_add_commas_to_xp", "1")
    g_pCvarLevelEffects = register_cvar("ze_level_up_effects", "1")
    g_pCvarDoubleXP = register_cvar("ze_double_xp", "9-12")
   
    // Messages
    g_MsgSync = CreateHudSyncObj()
}
 
public client_putinserver(id)
{
    if(is_user_hltv(id) || is_user_bot(id))
        return
   
    // Just 1 second delay
    set_task(1.0, "DelayLoad", id)
 
    // Other tasks
    set_task(1.0, "Show_Hud", id+TASK_SHOWHUD, _, _, "b")
    set_task(0.1, "Check_MaxXP", id, _, _, "b")
    
    // Message task
    DoubleHours()
   
    if (g_bIsDoubleHours)
    {
        set_task(REPEAT_TIME, "HappyHours", id+TASK_DOUBLE, _, _, "b")
    }
}
 
public HappyHours(taskid)
{
    new id = taskid - TASK_DOUBLE
   
    DoubleHours()
   
    if (!g_bIsDoubleHours)
        remove_task(taskid)
   
    new szDoubleHours[32]
   
    get_pcvar_string(g_pCvarDoubleXP, szDoubleHours, charsmax(szDoubleHours))
   
    set_dhudmessage(0, 255, 0, -1.0, 0.5, 0, 0.0, 10.0)
    show_dhudmessage(id, "DOUBLE XP: %s", szDoubleHours)
}

public DelayLoad(id)
{
    // Load his data
    LoadData(id)
}
 
public client_disconnected(id)
{
    if(is_user_hltv(id) || is_user_bot(id))
        return
       
    remove_task(id+TASK_SHOWHUD)
    remove_task(id)
}
 
public Check_MaxXP(id)
{
    new iCurrentMaxXP = g_iMaxXP[id]
   
    new iMaxXP = get_pcvar_num(g_pCvarMaxXPFirstLevel)
   
    for (new i = 1; i <= g_iLevel[id]; i++)
    {
        iMaxXP = floatround(float(iMaxXP) * get_pcvar_float(g_pCvarMaxLevelsIncrement))
    }
   
    if (iCurrentMaxXP != iMaxXP)
    {
        g_iMaxXP[id] = iMaxXP
    }
}
 
public Show_Hud(taskid)
{  
    new iPlayer = ID_SHOWHUD
   
    if (!is_user_alive(iPlayer))
    {
        iPlayer = pev(iPlayer, pev_iuser2)
       
        if (!is_user_alive(iPlayer))
            return
    }
   
    if (get_pcvar_num(g_pCvarPercentageStyle) != 0)
    {
        if(iPlayer != ID_SHOWHUD)
        {
            set_hudmessage(HUD_STATS_SPEC_R, HUD_STATS_SPEC_G, HUD_STATS_SPEC_B, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
            ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %0.2f %]", g_iLevel[iPlayer], (float(g_iXP[iPlayer])/float(g_iMaxXP[iPlayer])) * 100.0)
        }
        else if (ze_is_user_zombie(iPlayer))
        {
            set_hudmessage(HUD_STATS_ZOMBIE_R, HUD_STATS_ZOMBIE_G, HUD_STATS_ZOMBIE_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
            ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %0.2f %]", g_iLevel[ID_SHOWHUD], (float(g_iXP[ID_SHOWHUD])/float(g_iMaxXP[ID_SHOWHUD])) * 100.0)
        }
        else
        {
            set_hudmessage(HUD_STATS_HUMAN_R, HUD_STATS_HUMAN_G, HUD_STATS_HUMAN_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
            ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %0.2f %]", g_iLevel[ID_SHOWHUD], (float(g_iXP[ID_SHOWHUD])/float(g_iMaxXP[ID_SHOWHUD])) * 100.0)
        }
    }
    else
    {
        if(iPlayer != ID_SHOWHUD)
        {
            if (get_pcvar_num(g_pCvarAddCommas) == 1)
            {
                new szSpecXP[15], szSpecMaxXP[15]
               
                AddCommas(g_iXP[iPlayer], szSpecXP, charsmax(szSpecXP))
                AddCommas(g_iMaxXP[iPlayer], szSpecMaxXP, charsmax(szSpecMaxXP))
               
                set_hudmessage(HUD_STATS_SPEC_R, HUD_STATS_SPEC_G, HUD_STATS_SPEC_B, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
                ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %s/%s]", g_iLevel[iPlayer], szSpecXP, szSpecMaxXP)
            }
            else
            {
                set_hudmessage(HUD_STATS_SPEC_R, HUD_STATS_SPEC_G, HUD_STATS_SPEC_B, HUD_SPECT_X, HUD_SPECT_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
                ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %d/%d]", g_iLevel[iPlayer], g_iXP[iPlayer], g_iMaxXP[iPlayer])
            }  
        }
        else if (ze_is_user_zombie(iPlayer))
        {
            if (get_pcvar_num(g_pCvarAddCommas) == 1)
            {
                new szZombieXP[15], szZombieMaxXP[15]
               
                AddCommas(g_iXP[ID_SHOWHUD], szZombieXP, charsmax(szZombieXP))
                AddCommas(g_iMaxXP[ID_SHOWHUD], szZombieMaxXP, charsmax(szZombieMaxXP))
               
                set_hudmessage(HUD_STATS_ZOMBIE_R, HUD_STATS_ZOMBIE_G, HUD_STATS_ZOMBIE_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
                ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %s/%s]", g_iLevel[ID_SHOWHUD], szZombieXP, szZombieMaxXP)
            }
            else
            {
                set_hudmessage(HUD_STATS_ZOMBIE_R, HUD_STATS_ZOMBIE_G, HUD_STATS_ZOMBIE_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
                ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 || XP: %d/%d]", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
            }
        }
        else
        {
            if (get_pcvar_num(g_pCvarAddCommas) == 1)
            {
                new szHumanXP[15], szHumanMaxXP[15]
               
                AddCommas(g_iXP[ID_SHOWHUD], szHumanXP, charsmax(szHumanXP))
                AddCommas(g_iMaxXP[ID_SHOWHUD], szHumanMaxXP, charsmax(szHumanMaxXP))
               
                set_hudmessage(HUD_STATS_HUMAN_R, HUD_STATS_HUMAN_G, HUD_STATS_HUMAN_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
                ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 | XP: %s/%s]", g_iLevel[ID_SHOWHUD], szHumanXP, szHumanMaxXP)
            }
            else
            {
                set_hudmessage(HUD_STATS_HUMAN_R, HUD_STATS_HUMAN_G, HUD_STATS_HUMAN_B, HUD_STATS_X, HUD_STATS_Y, 0, 6.0, 1.1, 0.0, 0.0, -1)
                ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "[Level: %d/50 | XP: %d/%d]", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
            }
        }
    }
}
 
public ze_roundend(WinTeam)
{
    if (WinTeam == ZE_TEAM_HUMAN)
    {
        for(new id = 1; id <= get_member_game(m_nMaxPlayers); id++)
        {
            if (!is_user_alive(id) || get_member(id, m_iTeam) == TEAM_TERRORIST)
                continue
           
            DoubleHours()
           
            if (g_bIsDoubleHours)
            {
                g_iXP[id] = g_iXP[id] + (get_pcvar_num(g_pCvarEscapeSuccess) * 2)
            }
            else
            {
                g_iXP[id] += get_pcvar_num(g_pCvarEscapeSuccess)
            }
           
            SaveData(id)
            Check_User_Level(id)
        }
    }
   
    remove_task(TASK_SHOWHUD)
}
 
public Check_User_Level(id)
{
    if(!is_user_connected(id))
        return
 
    if(g_iXP[id] >= g_iMaxXP[id])
    {
        if (get_pcvar_num(g_pCvarStartFromZero) == 1)
        {
            g_iXP[id] = 0
        }
       
        new szName[32]
        g_iLevel[id] ++
        g_iMaxXP[id] = floatround(float(g_iMaxXP[id]) * get_pcvar_float(g_pCvarMaxLevelsIncrement))
        get_user_name(id, szName, charsmax(szName))
        ze_colored_print(0, "!tPlayer !g%s !tNow in Level %i!y!", szName, g_iLevel[id])
       
        SaveData(id)
       
        PlaySound(id, LEVELUP)
       
        if (get_pcvar_num(g_pCvarLevelEffects) != 0)
        {
            // Screen Fade
            message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
            write_short(4096*2)
            write_short(4096*5)
            write_short(0x0001)
            write_byte(random(256))
            write_byte(random(256))
            write_byte(random(256))
            write_byte(150)
            message_end()
           
            // Screen Shake
            message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, id)
            write_short(255<<14)
            write_short(10<<14)
            write_short(255<<14)
            message_end()
        }
    }
}
 
public ze_user_infected(iVictim, iInfector)
{
    if (iInfector == 0)
        return
   
    DoubleHours()
   
    if (g_bIsDoubleHours)
    {
        g_iXP[iInfector] = g_iXP[iInfector] + (get_pcvar_num(g_pCvarZombieInfect) * 2)
    }
    else
    {
        g_iXP[iInfector] += get_pcvar_num(g_pCvarZombieInfect)
    }
   
    SaveData(iInfector)
    Check_User_Level(iInfector)
}
 
public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
{
    // Player Damage Himself
    if (iVictim == iAttacker || !is_user_alive(iVictim) || !is_user_alive(iAttacker) || ze_is_user_zombie(iAttacker) || !get_pcvar_num(g_pCvarEnableDamage))
        return HC_CONTINUE
   
    // Same Team?
    if (get_member(iAttacker, m_iTeam) == get_member(iVictim, m_iTeam))
        return HC_CONTINUE
   
    // Store Damage For every Player
    g_fDamage[iAttacker] += fDamage
   
    // Damage Calculator Equal or Higher than needed damage
    if (g_fDamage[iAttacker] >= get_pcvar_float(g_pCvarRequiredDamage))
    {
        // Give Player The Coins
        DoubleHours()
       
        if (g_bIsDoubleHours)
        {
            g_iXP[iAttacker] = g_iXP[iAttacker] + (get_pcvar_num(g_pCvarDamageAward) * 2)
        }
        else
        {
            g_iXP[iAttacker] += get_pcvar_num(g_pCvarDamageAward)
        }
       
        SaveData(iAttacker)
        Check_User_Level(iAttacker)
       
        // Rest The Damage Calculator
        g_fDamage[iAttacker] = 0.0
    }
    return HC_CONTINUE
}
 
public SaveData(id)
{
    new szAuthID[35], szName[32]
    get_user_authid(id, szAuthID, charsmax(szAuthID))
    get_user_name(id, szName, charsmax(szName))
   
    // Set Him to max if he Higher than Max Value
    if(g_iLevel[id] > MAX_LEVEL)
    {
        g_iLevel[id] = MAX_LEVEL
    }
   
    if(g_iXP[id] > MAX_XP)
    {
        g_iXP[id] = MAX_XP
    }
   
    new szData[256]
    formatex(szData , charsmax(szData), "%i %i %i", g_iLevel[id], g_iXP[id], g_iMaxXP[id])
   
    // Open the Vaults
    g_iLevelsVaultHandle = nvault_open(g_szLevelsVault)
    g_iRanksVaultHandle = nvault_open(g_szRanksVault)
 
    // Saves His Data
    nvault_set(g_iLevelsVaultHandle, szAuthID, szData)
    nvault_set(g_iRanksVaultHandle, szAuthID, szName)
   
    // Close Vaults
    nvault_close(g_iLevelsVaultHandle)
    nvault_close(g_iRanksVaultHandle)
}
 
public LoadData(id)
{
    new szData[256], szAuthID[35], szName[32]
   
    get_user_authid(id, szAuthID, charsmax(szAuthID))
    get_user_name(id, szName, charsmax(szName))
   
    // Useless Variable
    new iTimestamp, iExists
   
    // Open the Vault
    g_iLevelsVaultHandle = nvault_open(g_szLevelsVault)
   
    iExists = nvault_lookup(g_iLevelsVaultHandle, szAuthID, szData, charsmax(szData), iTimestamp)
   
    // Close Vault
    nvault_close(g_iLevelsVaultHandle)
   
    if (!iExists)
    {
        g_iLevel[id] = 0
        g_iXP[id] = get_pcvar_num(g_pCvarStartXP)
        g_iMaxXP[id] = get_pcvar_num(g_pCvarMaxXPFirstLevel)
        SaveData(id)
    }
    else
    {
        new iLevel[32], iXP[32], iMaxLevel[32]
        parse(szData, iLevel, 31, iXP, 31, iMaxLevel, 31)
       
        g_iLevel[id] = str_to_num(iLevel)
        g_iXP[id] = str_to_num(iXP)
        g_iMaxXP[id] = str_to_num(iMaxLevel)
    }
}
 
public native_ze_get_user_xp(id)
{
    if(!is_user_connected(id))
    {
        log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
        return false;
    }
   
    return g_iXP[id]
}
 
public native_ze_set_user_xp(id, amount)
{
    if(!is_user_connected(id))
    {
        log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
        return false;
    }
   
    DoubleHours()
   
    new iAddedAmount = amount - g_iXP[id]
   
    if (g_bIsDoubleHours)
    {
        g_iXP[id] = g_iXP[id] + (iAddedAmount * 2)
    }
    else
    {
        g_iXP[id] = amount
    }
 
    Check_User_Level(id)
    SaveData(id)
    return true;
}
 
public native_ze_get_user_level(id)
{
    if(!is_user_connected(id))
    {
        log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
        return false;
    }
   
    return g_iLevel[id]
}
 
public native_ze_set_user_level(id, amount)
{
    if(!is_user_connected(id))
    {
        log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
        return false;
    }
   
    g_iLevel[id] = amount
   
    if (get_pcvar_num(g_pCvarStartFromZero) == 1)
    {
        g_iXP[id] = 0
    }
   
    SaveData(id)
   
    return true;
}
 
public native_ze_get_user_max_xp(id)
{
    if(!is_user_connected(id))
    {
        log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
        return false;
    }
   
    return g_iMaxXP[id]
}
 
public native_ze_set_user_max_xp(id, amount)
{
    if(!is_user_connected(id))
    {
        log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
        return false;
    }
   
    g_iMaxXP[id] = amount
   
    SaveData(id)
   
    return true;
}
 
stock DoubleHours()
{
    new szTime[3], szDoubleHours[32], szDoubleHours_Start[32], szDoubleHours_End[32]
    get_time("%H", szTime, charsmax(szTime))
   
    get_pcvar_string(g_pCvarDoubleXP, szDoubleHours, charsmax(szDoubleHours))
   
    for (new ch = 0; ch <= charsmax(szDoubleHours); ch++)
    {
        if (szDoubleHours[ch] == '-')
            szDoubleHours[ch] = ' '
    }
   
    parse(szDoubleHours, szDoubleHours_Start, charsmax(szDoubleHours_Start), szDoubleHours_End, charsmax(szDoubleHours_End))
   
    new iTime, iDoubleHourStart, iDoubleHourEnd
   
    iTime = str_to_num(szTime)
    iDoubleHourStart = str_to_num(szDoubleHours_Start)
    iDoubleHourEnd = str_to_num(szDoubleHours_End)
   
    if(iDoubleHourEnd > iTime >= iDoubleHourStart)
    {
        g_bIsDoubleHours = true
    }
    else
    {
        g_bIsDoubleHours = false
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1036{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1252\\ deff0\\ deflang1036{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/

Re: Levels-XP System

Posted: 20 Jul 2019, 22:38
by Luxurious
  1. L 07/21/2019 - 00:36:25: [AMXX] Plugin "cs_weap_models_api.amxx" failed to load: Module/Library "cstrike" required for plugin.  Check modules.ini.
  2. Executing ReGameDLL Configuration File
Whats Problem Here ! i am usin latest ReGameDLL !

Re: Levels-XP System

Posted: 21 Jul 2019, 08:09
by Muhammet20
Luxurious wrote: 4 years ago
  1. L 07/21/2019 - 00:36:25: [AMXX] Plugin "cs_weap_models_api.amxx" failed to load: Module/Library "cstrike" required for plugin.  Check modules.ini.
  2. Executing ReGameDLL Configuration File
Whats Problem Here ! i am usin latest ReGameDLL !
i think you must do this:
go to configs/modules.ini then add reapi