AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   ILevei plug-in (https://forums.alliedmods.net/showthread.php?t=340236)

yagami 11-04-2022 10:31

ILevei plug-in
 
Can anyone help me to recover this plugin, it is very confusing for me
manually add level

PHP Code:

// Returns player Experience.
native get_user_xp(id)

// Sets player Experience.
native set_user_xp(idamount)

// Returns player Level.
native get_user_level(id)

// Sets player Level.
native set_user_level(idamount)

// Returns player Level by Xp.
native get_user_max_level(id

PHP Code:

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <levels>
#include <nvault>
#include <zombieplague>

#define MAXLEVEL 71

new const LEVELS[MAXLEVEL] = { 
90// Needed on level 1
180// Needed on level 2
300// Needed on level 3
450// Needed on level 4
700// Needed on level 5
1200// Needed on level 6
1800// Needed on level 7
2800// Needed on level 8
4100// Needed on level 9
5200// Needed on level 10
6000// Needed on level 11
6800// Needed on level 12
8200// Needed on level 13
10200// Needed on level 14
12000// Needed on level 15
15000// Needed on level 16
17500// Needed on level 17
20500// Needed on level 18
25500// Needed on level 19
29000// Needed on level 20
35000// Needed on level 21
46000// Needed on level 22
58000// Needed on level 23
71000// Needed on level 24
85000// Needed on level 25
100000// Needed on level 26
116000// Needed on level 27
133000// Needed on level 28
151000// Needed on level 29
170000// Needed on level 30
190000// Needed on level 31
211000// Needed on level 32
233000// Needed on level 33
256000// Needed on level 34
280000// Needed on level 35
305000// Needed on level 36
331000// Needed on level 37
358000// Needed on level 38
386000// Needed on level 39
415000// Needed on level 40
445000// Needed on level 41
476000// Needed on level 42
508000// Needed on level 43
541000// Needed on level 44
575000// Needed on level 45
610000// Needed on level 46
646000// Needed on level 47
683000// Needed on level 48
721000// Needed on level 49
760000// Needed on level 50
800000// Needed on level 51
842000// Needed on level 52
886000// Needed on level 53
974000// Needed on level 54
1020000// Needed on level 55
1068000// Needed on level 56
1118000// Needed on level 57
1170000// Needed on level 58
1224000// Needed on level 59
1280000// Needed on level 60
1338000// Needed on level 61
1398000// Needed on level 62
1460000// Needed on level 63
1524000// Needed on level 64
1590000// Needed on level 65
1658000// Needed on level 66
1728000// Needed on level 67
1800000// Needed on level 68
1874000// Needed on level 69
1950000// Needed on level 70
9999999 // Needed on level 71
}; // Needed Xp on each Levels

new PlayerXp[33]
new 
PlayerLevel[33]

new 
g_Vault
new savexpsave_typeescape_xp_humanescape_xp_zombie

public plugin_init()
{
    
register_plugin("Level Sistemi""1.0""DPCS")

    
save_type register_cvar("levels_savetype","0"// Save Xp to : 0 = NVault.
    
savexp register_cvar("levels_save","1"// Save Xp by : 2 = Name, 1 = SteamID, 0 = IP.
    
escape_xp_human register_cvar("escape_xp_amount_human""90"// How much XP given to Humans when escape success?
    
escape_xp_zombie register_cvar("escape_xp_amount_zombie""45"// How much XP given to Humans when escape success?
    
    
register_event("HLTV""elbasi""a""1=0""2=0")
    
register_clcmd("amx_levelmenu""levelmenu")
    
register_clcmd("amx_levelver""level_ver"ADMIN_RCON"<authid, nick or #userid>")
}

public 
elbasi()
{
    new 
players[32],inum,id
    get_players
(players,inum)
    for(new 
i;i<inum;i++)
    {
        
id players[i]
        
        new 
current_ammopacks zp_get_user_ammo_packs(id)
        if(
get_user_level(id) >= 10 && get_user_level(id) <= 19)
        {
            
zp_set_user_ammo_packs(idcurrent_ammopacks 5)
            
renkli_yazi(id,"!g[ZE] !nHesabina !t5CP !neklendi.")
            
renkli_yazi(id,"!g[ZE] !nAdded !t5AP !nto your account.")
        }
        else if(
get_user_level(id) >= 20 && get_user_level(id) <= 29)
        {
            
zp_set_user_ammo_packs(idcurrent_ammopacks 10)
            
renkli_yazi(id,"!g[ZE] !nHesabina !t10CP !neklendi.")
            
renkli_yazi(id,"!g[ZE] !nAdded !t10AP !nto your account.")
        }
        else if(
get_user_level(id) >= 30)
        {
            
zp_set_user_ammo_packs(idcurrent_ammopacks 15)
            
renkli_yazi(id,"!g[ZE] !nHesabina !t15CP !neklendi.")
            
renkli_yazi(id,"!g[ZE] !nAdded !t15AP !nto your account.")
        }
    }
}

// Level sifirlama
public levelmenu(id)
{
    if(
get_user_flags(id) & ADMIN_RCON)
    {
        static 
amenu[512]
        
formatex(amenu,charsmax(amenu),"\yLevel Sifirlama icin oyuncu sec")
        new 
menuz menu_create(amenu,"silmemenu_devam")
        
        new 
players[32], tempidpnum
        
new szName[32], szTempid[10]
        
get_players(playerspnum)
        
        for(new 
ipnumi++)
        {
            
tempid players[i]
            if(
is_user_connected(tempid) && !is_user_bot(tempid))
            {
                
get_user_name(tempidszName31)
                
num_to_str(tempidszTempid9)
                
                
formatex(amenucharsmax(amenu), "\w%s"szName)
                
menu_additem(menuzamenuszTempid)
            }
        }
        
        
menu_setprop(menuz,MPROP_EXIT,MEXIT_ALL)
        
menu_display(id,menuz,0)
    }
    
    return 
PLUGIN_HANDLED
}

public 
silmemenu_devam(id,menu,item)
{
    if(
item == MENU_EXIT)
    {
        
menu_destroy(menu)
        return 
PLUGIN_HANDLED
    
}
    new 
access,callback,data[6],iname[64]
    
    
menu_item_getinfo(menu,item,access,data,5,iname,63,callback)
    
    new 
tempid str_to_num(data)
    
    
silmeislem(idtempid)
    
    
menu_destroy(menu)
    return 
PLUGIN_HANDLED
}

public 
silmeislem(idplayer) {
    if (!
player)
    return 
PLUGIN_HANDLED
    
    set_user_xp
(player0)
    
set_user_level(player0)
    
SaveLevel(player)
    
    return 
PLUGIN_HANDLED
}

// Level verme
public level_ver(idlevelcid)
{
    if(!
cmd_access(idlevelcid2))
        return 
PLUGIN_HANDLED
    
    
new arg[32], arg2[10], arg3[3]
    
read_argv(1argcharsmax(arg))
    
read_argv(2arg2charsmax(arg2))
    
read_argv(3arg3charsmax(arg3))
    
    if(
arg3[0])
        return 
PLUGIN_HANDLED
    
    
new player cmd_target(idargcharsmax(arg))
    if(!
player)
        return 
PLUGIN_HANDLED
    
    set_user_xp
(playerstr_to_num(arg2))
    
SaveLevel(player)
    
check_level(player)
    
    return 
PLUGIN_HANDLED
}

public 
plugin_cfg()
{
    
//Open our vault and have g_Vault store the handle.
    
g_Vault nvault_open("levels")

    
//Make the plugin error if vault did not successfully open
    
if ( g_Vault == INVALID_HANDLE )
        
set_fail_state"Error opening levels nVault, file does not exist!" )
}

public 
plugin_precache()
{
    
precache_sound("ze_dp/ze_levelup.wav")
}

public 
plugin_natives()
{
    
register_native("get_user_xp""native_get_user_xp"1)
    
register_native("set_user_xp""native_set_user_xp"1)
    
register_native("get_user_level""native_get_user_level"1)
    
register_native("set_user_level""native_set_user_level"1)
    
register_native("get_user_max_level""native_get_user_max_level"1)
}

public 
plugin_end()
{
    
//Close the vault when the plugin ends (map change\server shutdown\restart)
    
nvault_close(g_Vault)
}

public 
client_connect(id)
{
    
LoadLevel(id)
}

public 
client_disconnect(id)
{
    
SaveLevel(id)
    
    
PlayerXp[id] = 0
    PlayerLevel
[id] = 0
}

public 
zp_round_ended()
{
    new 
Alive_Terrorists_Number GetPlayersNum(CsTeams:CS_TEAM_T)
    new 
Alive_CT_Numbers GetPlayersNum(CsTeams:CS_TEAM_CT)
    
    new 
iPlayers[32], iNum
    get_players
(iPlayersiNum"ace""CT")
    
    for (new 
0iNumi++)
    {
        if(
PlayerLevel[iPlayers[i]] < MAXLEVEL-1)
        {
            if((
Alive_CT_Numbers Alive_Terrorists_Number) && (Alive_Terrorists_Number == 0))
            {
                
set_user_xp(iPlayers[i], get_user_xp(iPlayers[i]) + get_pcvar_num(escape_xp_human))
                
SaveLevel(iPlayers[i])
            }
            else if((
Alive_Terrorists_Number Alive_CT_Numbers) && (Alive_CT_Numbers == 0))
            {
                
set_user_xp(iPlayers[i], get_user_xp(iPlayers[i]) + get_pcvar_num(escape_xp_zombie))
                
SaveLevel(iPlayers[i])
            }
            
check_level(iPlayers[i])
        }
    }
}

public 
check_level(id)
{
    if(
PlayerLevel[id] < MAXLEVEL-1)
    {
        while(
PlayerXp[id] >= LEVELS[PlayerLevel[id]])
        {
            
PlayerLevel[id]++
            
SaveLevel(id)
            
            static 
name[32]
            
get_user_name(idnamecharsmax(name))
            
renkli_yazi(0,"!g[DPCS] !n[ !t%s !n] Adli Oyuncu !n[ !t%i. !n] Level'e Ulasti."namePlayerLevel[id])
        }
    }
}

SaveLevel(id)
{
    new 
szAuth[33];
    new 
szKey[64];
    
    if (
get_pcvar_num(savexp) == 0)
    {
        
get_user_ip(idszAuth charsmax(szAuth), 1)
        
formatex(szKey 63 "%s-IP" szAuth)
    }
    else if (
get_pcvar_num(savexp) == 1)
    {
        
get_user_authid(id szAuth charsmax(szAuth))
        
formatex(szKey 63 "%s-ID" szAuth)
    }
    else if (
get_pcvar_num(savexp) == 2)
    {
        
get_user_name(idszAuth charsmax(szAuth))
        
formatex(szKey 63 "%s-NAME" szAuth)
    }
    
    if (!
get_pcvar_num(save_type))
    {
        new 
szData[256]
        
        
formatex(szData 255 "%i#%i#" PlayerLevel[id], PlayerXp[id])
        
        
nvault_pset(g_Vault szKey szData)
    }
}

LoadLevel(id)
{
    new 
szAuth[33];
    new 
szKey[40];
    
    if (
get_pcvar_num(savexp) == 0)
    {
        
get_user_ip(idszAuth charsmax(szAuth), 1)
        
formatex(szKey 63 "%s-IP" szAuth)
    }
    else if (
get_pcvar_num(savexp) == 1)
    {
        
get_user_authid(id szAuth charsmax(szAuth))
        
formatex(szKey 63 "%s-ID" szAuth)
    }
    else if (
get_pcvar_num(savexp) == 2)
    {
        
get_user_name(idszAuth charsmax(szAuth))
        
formatex(szKey 63 "%s-NAME" szAuth)
    }
    
    if (!
get_pcvar_num(save_type))
    {
        new 
szData[256];
        
        
formatex(szData 255"%i#%i#"PlayerLevel[id], PlayerXp[id])
        
        
nvault_get(g_VaultszKeyszData255)
        
        
replace_all(szData 255"#"" ")
        new 
xp[32], level[32]
        
parse(szDatalevel31xp31)
        
PlayerLevel[id] = str_to_num(level)
        
PlayerXp[id] = str_to_num(xp)
    }
}

// Native: get_user_xp
public native_get_user_xp(id)
{
    return 
PlayerXp[id]
}

// Native: set_user_xp
public native_set_user_xp(idamount)
{
    
PlayerXp[id] = amount
}

// Native: get_user_level
public native_get_user_level(id)
{
    return 
PlayerLevel[id]
}

// Native: set_user_xp
public native_set_user_level(idamount)
{
    
PlayerLevel[id] = amount
}

// Native: Gets user level by Xp
public native_get_user_max_level(id)
{
    new 
gerilevel
    
    
if(PlayerLevel[id] > (MAXLEVEL-1)) {
        
gerilevel LEVELS[MAXLEVEL-1]
    }
    else {
        
gerilevel LEVELS[PlayerLevel[id]]
    }
    
    return 
gerilevel
}

stock GetPlayersNum(CsTeams:iTeam) {
    new 
iNum
    
for( new 1<= get_maxplayers(); i++ ) {
        if(
is_user_connected(i) && is_user_alive(i) && cs_get_user_team(i) == iTeam)
            
iNum++
    }
    return 
iNum
}

stock renkli_yazi(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[191]
    
vformat(msgsizeof(msg) - 1input3)
    
    
replace_all(msg190"!n""^x01")
    
replace_all(msg190"!g""^x04")
    
replace_all(msg190"!t""^x03")
    
    if(
idplayers[0] = id; else get_players(playerscount"ch")
    for(new 
0counti++)
    {
        if(
is_user_connected(players[i]))
        {
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
            
write_byte(players[i])
            
write_string(msg)
            
message_end()
        }
    }
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/ 


DjSoftero 11-13-2022 15:01

Re: ILevei plug-in
 
increase MAXLEVEL to a number of levels you want, then add the needed xp line accordingly, to LEVELS array.


All times are GMT -4. The time now is 15:34.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.