Levels-XP System
You can see how other plugin done it and do same as they did.
He who fails to plan is planning to fail
It Can Work For Zombie Escape V2.2 ???
DRK Zombie-Escape V1.6
IP : 81.169.153.129:27015
IP : 81.169.153.129:27015
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
// ----------------------------------------
Use latest version of the level system so you won't get problems.
He who fails to plan is planning to fail
update?
New version released:
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.
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.
He who fails to plan is planning to fail
-
- Veteran Member
- Posts: 598
- Joined: 7 years ago
- Contact:
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
It should. Test and tell me.
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.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
He who fails to plan is planning to fail
-
- Veteran Member
- Posts: 598
- Joined: 7 years ago
- Contact:
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
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
Right, this because the vaults not opened yet. Wait till i update this rank also.
He who fails to plan is planning to fail
have idea can you add speed for each level
Level 0 = speed : 250
Level 1 = speed : 251
Level 2 = speed : 252
Level 0 = speed : 250
Level 1 = speed : 251
Level 2 = speed : 252
Next Level XP needed calculator: viewtopic.php?f=7&t=3422
He who fails to plan is planning to fail
He who fails to plan is planning to fail
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:
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 }
*/
- 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.
- Executing ReGameDLL Configuration File
DRK Zombie-Escape V1.6
IP : 81.169.153.129:27015
IP : 81.169.153.129:27015
-
- Veteran Member
- Posts: 408
- Joined: 5 years ago
- Contact:
i think you must do this:
go to configs/modules.ini then add reapi
Create an account or sign in to join the discussion
You need to be a member in order to post a reply
Create an account
Not a member? register to join our community
Members can start their own topics & subscribe to topics
It’s free and only takes a minute
Sign in
Who is online
Users browsing this forum: Bing [Bot] and 0 guests