Available double xp notice message

Unpaid Requests, Public Plugins
Post Reply
Rain1153
Senior Member
Senior Member
India
Posts: 278
Joined: 6 years ago
Contact:

#11

Post by Rain1153 » 5 years ago

bro u should make the time reversible like if we want it at 23 to 9
LOL

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#12

Post by Raheem » 5 years ago

This will require a day check, will require new idea to the code like:

if it's starting at 23 our max is 24 then at 24 i should make starting 0 to 9 somehow will be strange for me in coding.
He who fails to plan is planning to fail

Rain1153
Senior Member
Senior Member
India
Posts: 278
Joined: 6 years ago
Contact:

#13

Post by Rain1153 » 5 years ago

ok
LOL

czirimbolo
Veteran Member
Veteran Member
Poland
Posts: 598
Joined: 7 years ago
Contact:

#14

Post by czirimbolo » 5 years ago

How to make this message a little big higer? I dont want to have it on the center
Image

User avatar
Raheem
Mod Developer
Mod Developer
Posts: 2214
Joined: 7 years ago
Contact:

#15

Post by Raheem » 5 years ago

set_dhudmessage(0, 255, 0, -1.0, -1.0, 0, 0.0, 10.0)
Change the Y so something like:
set_dhudmessage(0, 255, 0, -1.0, 0.5, 0, 0.0, 10.0)
He who fails to plan is planning to fail

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#16

Post by Mark » 5 years ago

Raheem wrote: 5 years ago Here:

  1. #include <zombie_escape>
  2.  
  3. // Defines
  4. #define MAX_LEVEL 50
  5. #define MAX_XP 500000
  6. #define TASK_SHOWHUD 2020
  7. #define TASK_DOUBLE 1133
  8. #define REPEAT_TIME 60.0
  9. #define ID_SHOWHUD (taskid - TASK_SHOWHUD)
  10. #define LEVELUP "levelup_ZE/ze_levelup.wav"
  11.  
  12. // Constants
  13. new const g_szLevelsVault[] = "Levels"
  14. new const g_szRanksVault[] = "Ranks"
  15.  
  16. // Messages
  17. const Float:HUD_SPECT_X = -1.0
  18. const Float:HUD_SPECT_Y = 0.70
  19. const Float:HUD_STATS_X = -1.0
  20. const Float:HUD_STATS_Y = 0.90
  21.  
  22. const HUD_STATS_ZOMBIE_R = 200
  23. const HUD_STATS_ZOMBIE_G = 220
  24. const HUD_STATS_ZOMBIE_B = 0
  25.  
  26. const HUD_STATS_HUMAN_R = 0
  27. const HUD_STATS_HUMAN_G = 200
  28. const HUD_STATS_HUMAN_B = 210
  29.  
  30. const HUD_STATS_SPEC_R = 100
  31. const HUD_STATS_SPEC_G = 100
  32. const HUD_STATS_SPEC_B = 100
  33.  
  34. // Variables
  35. new g_iLevel[33],
  36.     g_iXP[33],
  37.     g_iMaxXP[33],
  38.     Float:g_fDamage[33],
  39.     g_MsgSync,
  40.     g_iLevelsVaultHandle,
  41.     g_iRanksVaultHandle,
  42.     bool:g_bIsDoubleHours
  43.  
  44. // Cvars
  45. new g_pCvarZombieInfect,
  46.     g_pCvarEscapeSuccess,
  47.     g_pCvarEnableDamage,
  48.     g_pCvarRequiredDamage,
  49.     g_pCvarDamageAward,
  50.     g_pCvarStartXP,
  51.     g_pCvarMaxLevelsIncrement,
  52.     g_pCvarMaxXPFirstLevel,
  53.     g_pCvarPercentageStyle,
  54.     g_pCvarStartFromZero,
  55.     g_pCvarAddCommas,
  56.     g_pCvarLevelEffects,
  57.     g_pCvarDoubleXP
  58.  
  59. public plugin_natives()
  60. {
  61.     register_native("ze_get_user_xp", "native_ze_get_user_xp", 1)
  62.     register_native("ze_set_user_xp", "native_ze_set_user_xp", 1)
  63.     register_native("ze_get_user_level", "native_ze_get_user_level", 1)
  64.     register_native("ze_set_user_level", "native_ze_set_user_level", 1)
  65.     register_native("ze_get_user_max_xp", "native_ze_get_user_max_xp", 1)
  66.     register_native("ze_set_user_max_xp", "native_ze_set_user_max_xp", 1)
  67. }
  68.  
  69. public plugin_precache()
  70. {
  71.     precache_sound(LEVELUP)
  72. }
  73.  
  74. public plugin_init()
  75. {
  76.     register_plugin("[ZE] Level-XP System", "1.8", "Raheem/JaCk")
  77.    
  78.     // Hook Chains
  79.     RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
  80.    
  81.     // Cvars
  82.     g_pCvarZombieInfect = register_cvar("ze_zombie_infect", "3")
  83.     g_pCvarEscapeSuccess = register_cvar("ze_escape_success", "5")
  84.     g_pCvarEnableDamage = register_cvar("ze_enable_dmg", "1")
  85.     g_pCvarRequiredDamage = register_cvar("ze_required_dmg", "50.0")
  86.     g_pCvarDamageAward = register_cvar("ze_dmg_award", "3")
  87.     g_pCvarStartXP = register_cvar("ze_start_xp", "50")
  88.     g_pCvarMaxLevelsIncrement = register_cvar("ze_maxlevels_increment", "2.0")
  89.     g_pCvarMaxXPFirstLevel = register_cvar("ze_max_xp_first_level", "100")
  90.     g_pCvarPercentageStyle = register_cvar("ze_enable_percentage_style", "1")
  91.     g_pCvarStartFromZero = register_cvar("ze_new_level_zero_xp", "0")
  92.     g_pCvarAddCommas = register_cvar("ze_add_commas_to_xp", "1")
  93.     g_pCvarLevelEffects = register_cvar("ze_level_up_effects", "1")
  94.     g_pCvarDoubleXP = register_cvar("ze_double_xp", "9-12")
  95.    
  96.     // Messages
  97.     g_MsgSync = CreateHudSyncObj()
  98. }
  99.  
  100. public client_putinserver(id)
  101. {
  102.     if(is_user_hltv(id) || is_user_bot(id))
  103.         return
  104.    
  105.     // Just 1 second delay
  106.     set_task(1.0, "DelayLoad", id)
  107.  
  108.     // Other tasks
  109.     set_task(1.0, "Show_Hud", id+TASK_SHOWHUD, _, _, "b")
  110.     set_task(0.1, "Check_MaxXP", id, _, _, "b")
  111.    
  112.     // Message task
  113.     DoubleHours()
  114.    
  115.     if (g_bIsDoubleHours)
  116.     {
  117.         set_task(REPEAT_TIME, "HappyHours", id+TASK_DOUBLE, _, _, "b")
  118.     }
  119. }
  120.  
  121. public HappyHours(taskid)
  122. {
  123.     new id = taskid - TASK_DOUBLE
  124.    
  125.     DoubleHours()
  126.    
  127.     if (!g_bIsDoubleHours)
  128.         remove_task(taskid)
  129.    
  130.     new szDoubleHours[32]
  131.    
  132.     get_pcvar_string(g_pCvarDoubleXP, szDoubleHours, charsmax(szDoubleHours))
  133.    
  134.     set_dhudmessage(0, 255, 0, -1.0, -1.0, 0, 0.0, 10.0)
  135.     show_dhudmessage(id, "DOUBLE XP: %s", szDoubleHours)
  136. }
  137.  
  138. public DelayLoad(id)
  139. {
  140.     // Load his data
  141.     LoadData(id)
  142. }
  143.  
  144. public client_disconnected(id)
  145. {
  146.     if(is_user_hltv(id) || is_user_bot(id))
  147.         return
  148.        
  149.     remove_task(id+TASK_SHOWHUD)
  150.     remove_task(id)
  151. }
  152.  
  153. public Check_MaxXP(id)
  154. {
  155.     new iCurrentMaxXP = g_iMaxXP[id]
  156.    
  157.     new iMaxXP = get_pcvar_num(g_pCvarMaxXPFirstLevel)
  158.    
  159.     for (new i = 1; i <= g_iLevel[id]; i++)
  160.     {
  161.         iMaxXP = floatround(float(iMaxXP) * get_pcvar_float(g_pCvarMaxLevelsIncrement))
  162.     }
  163.    
  164.     if (iCurrentMaxXP != iMaxXP)
  165.     {
  166.         g_iMaxXP[id] = iMaxXP
  167.     }
  168. }
  169.  
  170. public Show_Hud(taskid)
  171. {  
  172.     new iPlayer = ID_SHOWHUD
  173.    
  174.     if (!is_user_alive(iPlayer))
  175.     {
  176.         iPlayer = pev(iPlayer, pev_iuser2)
  177.        
  178.         if (!is_user_alive(iPlayer))
  179.             return
  180.     }
  181.    
  182.     if (get_pcvar_num(g_pCvarPercentageStyle) != 0)
  183.     {
  184.         if(iPlayer != ID_SHOWHUD)
  185.         {
  186.             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)
  187.             ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %0.2f %", g_iLevel[iPlayer], (float(g_iXP[iPlayer])/float(g_iMaxXP[iPlayer])) * 100.0)
  188.         }
  189.         else if (ze_is_user_zombie(iPlayer))
  190.         {
  191.             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)
  192.             ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %0.2f %", g_iLevel[ID_SHOWHUD], (float(g_iXP[ID_SHOWHUD])/float(g_iMaxXP[ID_SHOWHUD])) * 100.0)
  193.         }
  194.         else
  195.         {
  196.             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)
  197.             ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %0.2f %", g_iLevel[ID_SHOWHUD], (float(g_iXP[ID_SHOWHUD])/float(g_iMaxXP[ID_SHOWHUD])) * 100.0)
  198.         }
  199.     }
  200.     else
  201.     {
  202.         if(iPlayer != ID_SHOWHUD)
  203.         {
  204.             if (get_pcvar_num(g_pCvarAddCommas) == 1)
  205.             {
  206.                 new szSpecXP[15], szSpecMaxXP[15]
  207.                
  208.                 AddCommas(g_iXP[iPlayer], szSpecXP, charsmax(szSpecXP))
  209.                 AddCommas(g_iMaxXP[iPlayer], szSpecMaxXP, charsmax(szSpecMaxXP))
  210.                
  211.                 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)
  212.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %s/%s", g_iLevel[iPlayer], szSpecXP, szSpecMaxXP)
  213.             }
  214.             else
  215.             {
  216.                 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)
  217.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %d/%d", g_iLevel[iPlayer], g_iXP[iPlayer], g_iMaxXP[iPlayer])
  218.             }  
  219.         }
  220.         else if (ze_is_user_zombie(iPlayer))
  221.         {
  222.             if (get_pcvar_num(g_pCvarAddCommas) == 1)
  223.             {
  224.                 new szZombieXP[15], szZombieMaxXP[15]
  225.                
  226.                 AddCommas(g_iXP[ID_SHOWHUD], szZombieXP, charsmax(szZombieXP))
  227.                 AddCommas(g_iMaxXP[ID_SHOWHUD], szZombieMaxXP, charsmax(szZombieMaxXP))
  228.                
  229.                 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)
  230.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %s/%s", g_iLevel[ID_SHOWHUD], szZombieXP, szZombieMaxXP)
  231.             }
  232.             else
  233.             {
  234.                 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)
  235.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %d/%d", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
  236.             }
  237.         }
  238.         else
  239.         {
  240.             if (get_pcvar_num(g_pCvarAddCommas) == 1)
  241.             {
  242.                 new szHumanXP[15], szHumanMaxXP[15]
  243.                
  244.                 AddCommas(g_iXP[ID_SHOWHUD], szHumanXP, charsmax(szHumanXP))
  245.                 AddCommas(g_iMaxXP[ID_SHOWHUD], szHumanMaxXP, charsmax(szHumanMaxXP))
  246.                
  247.                 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)
  248.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %s/%s", g_iLevel[ID_SHOWHUD], szHumanXP, szHumanMaxXP)
  249.             }
  250.             else
  251.             {
  252.                 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)
  253.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %d/%d", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
  254.             }
  255.         }
  256.     }
  257. }
  258.  
  259. public ze_roundend(WinTeam)
  260. {
  261.     if (WinTeam == ZE_TEAM_HUMAN)
  262.     {
  263.         for(new id = 1; id <= get_member_game(m_nMaxPlayers); id++)
  264.         {
  265.             if (!is_user_alive(id) || get_member(id, m_iTeam) == TEAM_TERRORIST)
  266.                 continue
  267.            
  268.             g_iXP[id] += get_pcvar_num(g_pCvarEscapeSuccess)
  269.             SaveData(id)
  270.             Check_User_Level(id)
  271.         }
  272.     }
  273.    
  274.     remove_task(TASK_SHOWHUD)
  275. }
  276.  
  277. public Check_User_Level(id)
  278. {
  279.     if(!is_user_connected(id))
  280.         return
  281.  
  282.     if(g_iXP[id] >= g_iMaxXP[id])
  283.     {
  284.         if (get_pcvar_num(g_pCvarStartFromZero) == 1)
  285.         {
  286.             g_iXP[id] = 0
  287.         }
  288.        
  289.         new szName[32]
  290.         g_iLevel[id] ++
  291.         g_iMaxXP[id] = floatround(float(g_iMaxXP[id]) * get_pcvar_float(g_pCvarMaxLevelsIncrement))
  292.         get_user_name(id, szName, charsmax(szName))
  293.         ze_colored_print(0, "!g%s !tNow in Level %i!y!", szName, g_iLevel[id])
  294.        
  295.         SaveData(id)
  296.        
  297.         PlaySound(id, LEVELUP)
  298.        
  299.         if (get_pcvar_num(g_pCvarLevelEffects) != 0)
  300.         {
  301.             // Screen Fade
  302.             message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
  303.             write_short(4096*2)
  304.             write_short(4096*5)
  305.             write_short(0x0001)
  306.             write_byte(random(256))
  307.             write_byte(random(256))
  308.             write_byte(random(256))
  309.             write_byte(150)
  310.             message_end()
  311.            
  312.             // Screen Shake
  313.             message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, id)
  314.             write_short(255<<14)
  315.             write_short(10<<14)
  316.             write_short(255<<14)
  317.             message_end()
  318.         }
  319.     }
  320. }
  321.  
  322. public ze_user_infected(iVictim, iInfector)
  323. {
  324.     if (iInfector == 0)
  325.         return
  326.    
  327.     g_iXP[iInfector] += get_pcvar_num(g_pCvarZombieInfect)
  328.     SaveData(iInfector)
  329.     Check_User_Level(iInfector)
  330. }
  331.  
  332. public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
  333. {
  334.     // Player Damage Himself
  335.     if (iVictim == iAttacker || !is_user_alive(iVictim) || !is_user_alive(iAttacker) || ze_is_user_zombie(iAttacker) || !get_pcvar_num(g_pCvarEnableDamage))
  336.         return HC_CONTINUE
  337.    
  338.     // Same Team?
  339.     if (get_member(iAttacker, m_iTeam) == get_member(iVictim, m_iTeam))
  340.         return HC_CONTINUE
  341.    
  342.     // Store Damage For every Player
  343.     g_fDamage[iAttacker] += fDamage
  344.    
  345.     // Damage Calculator Equal or Higher than needed damage
  346.     if (g_fDamage[iAttacker] >= get_pcvar_float(g_pCvarRequiredDamage))
  347.     {
  348.         // Give Player The Coins
  349.         g_iXP[iAttacker] += get_pcvar_num(g_pCvarDamageAward)
  350.         SaveData(iAttacker)
  351.         Check_User_Level(iAttacker)
  352.        
  353.         // Rest The Damage Calculator
  354.         g_fDamage[iAttacker] = 0.0
  355.     }
  356.     return HC_CONTINUE
  357. }
  358.  
  359. public SaveData(id)
  360. {
  361.     new szAuthID[35], szName[32]
  362.     get_user_authid(id, szAuthID, charsmax(szAuthID))
  363.     get_user_name(id, szName, charsmax(szName))
  364.    
  365.     // Set Him to max if he Higher than Max Value
  366.     if(g_iLevel[id] > MAX_LEVEL)
  367.     {
  368.         g_iLevel[id] = MAX_LEVEL
  369.     }
  370.    
  371.     if(g_iXP[id] > MAX_XP)
  372.     {
  373.         g_iXP[id] = MAX_XP
  374.     }
  375.    
  376.     new szData[256]
  377.     formatex(szData , charsmax(szData), "%i %i %i", g_iLevel[id], g_iXP[id], g_iMaxXP[id])
  378.    
  379.     // Open the Vaults
  380.     g_iLevelsVaultHandle = nvault_open(g_szLevelsVault)
  381.     g_iRanksVaultHandle = nvault_open(g_szRanksVault)
  382.  
  383.     // Saves His Data
  384.     nvault_set(g_iLevelsVaultHandle, szAuthID, szData)
  385.     nvault_set(g_iRanksVaultHandle, szAuthID, szName)
  386.    
  387.     // Close Vaults
  388.     nvault_close(g_iLevelsVaultHandle)
  389.     nvault_close(g_iRanksVaultHandle)
  390. }
  391.  
  392. public LoadData(id)
  393. {
  394.     new szData[256], szAuthID[35], szName[32]
  395.    
  396.     get_user_authid(id, szAuthID, charsmax(szAuthID))
  397.     get_user_name(id, szName, charsmax(szName))
  398.    
  399.     // Useless Variable
  400.     new iTimestamp, iExists
  401.    
  402.     // Open the Vault
  403.     g_iLevelsVaultHandle = nvault_open(g_szLevelsVault)
  404.    
  405.     iExists = nvault_lookup(g_iLevelsVaultHandle, szAuthID, szData, charsmax(szData), iTimestamp)
  406.    
  407.     // Close Vault
  408.     nvault_close(g_iLevelsVaultHandle)
  409.    
  410.     if (!iExists)
  411.     {
  412.         g_iLevel[id] = 0
  413.         g_iXP[id] = get_pcvar_num(g_pCvarStartXP)
  414.         g_iMaxXP[id] = get_pcvar_num(g_pCvarMaxXPFirstLevel)
  415.         SaveData(id)
  416.     }
  417.     else
  418.     {
  419.         new iLevel[32], iXP[32], iMaxLevel[32]
  420.         parse(szData, iLevel, 31, iXP, 31, iMaxLevel, 31)
  421.        
  422.         g_iLevel[id] = str_to_num(iLevel)
  423.         g_iXP[id] = str_to_num(iXP)
  424.         g_iMaxXP[id] = str_to_num(iMaxLevel)
  425.     }
  426. }
  427.  
  428. public native_ze_get_user_xp(id)
  429. {
  430.     if(!is_user_connected(id))
  431.     {
  432.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  433.         return false;
  434.     }
  435.    
  436.     return g_iXP[id]
  437. }
  438.  
  439. public native_ze_set_user_xp(id, amount)
  440. {
  441.     if(!is_user_connected(id))
  442.     {
  443.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  444.         return false;
  445.     }
  446.    
  447.     DoubleHours()
  448.    
  449.     new iAddedAmount = amount - g_iXP[id]
  450.    
  451.     if (g_bIsDoubleHours)
  452.     {
  453.         g_iXP[id] = g_iXP[id] + (iAddedAmount * 2)
  454.     }
  455.     else
  456.     {
  457.         g_iXP[id] = amount
  458.     }
  459.    
  460.     Check_User_Level(id)
  461.     SaveData(id)
  462.     return true;
  463. }
  464.  
  465. public native_ze_get_user_level(id)
  466. {
  467.     if(!is_user_connected(id))
  468.     {
  469.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  470.         return false;
  471.     }
  472.    
  473.     return g_iLevel[id]
  474. }
  475.  
  476. public native_ze_set_user_level(id, amount)
  477. {
  478.     if(!is_user_connected(id))
  479.     {
  480.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  481.         return false;
  482.     }
  483.    
  484.     g_iLevel[id] = amount
  485.    
  486.     if (get_pcvar_num(g_pCvarStartFromZero) == 1)
  487.     {
  488.         g_iXP[id] = 0
  489.     }
  490.    
  491.     SaveData(id)
  492.    
  493.     return true;
  494. }
  495.  
  496. public native_ze_get_user_max_xp(id)
  497. {
  498.     if(!is_user_connected(id))
  499.     {
  500.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  501.         return false;
  502.     }
  503.    
  504.     return g_iMaxXP[id]
  505. }
  506.  
  507. public native_ze_set_user_max_xp(id, amount)
  508. {
  509.     if(!is_user_connected(id))
  510.     {
  511.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  512.         return false;
  513.     }
  514.    
  515.     g_iMaxXP[id] = amount
  516.    
  517.     SaveData(id)
  518.    
  519.     return true;
  520. }
  521.  
  522. stock DoubleHours()
  523. {
  524.     new szTime[3], szDoubleHours[32], szDoubleHours_Start[32], szDoubleHours_End[32]
  525.     get_time("%H", szTime, charsmax(szTime))
  526.    
  527.     get_pcvar_string(g_pCvarDoubleXP, szDoubleHours, charsmax(szDoubleHours))
  528.    
  529.     for (new ch = 0; ch <= charsmax(szDoubleHours); ch++)
  530.     {
  531.         if (szDoubleHours[ch] == '-')
  532.             szDoubleHours[ch] = ' '
  533.     }
  534.    
  535.     parse(szDoubleHours, szDoubleHours_Start, charsmax(szDoubleHours_Start), szDoubleHours_End, charsmax(szDoubleHours_End))
  536.    
  537.     new iTime, iDoubleHourStart, iDoubleHourEnd
  538.    
  539.     iTime = str_to_num(szTime)
  540.     iDoubleHourStart = str_to_num(szDoubleHours_Start)
  541.     iDoubleHourEnd = str_to_num(szDoubleHours_End)
  542.    
  543.     if(iDoubleHourEnd > iTime >= iDoubleHourStart)
  544.     {
  545.         g_bIsDoubleHours = true
  546.     }
  547.     else
  548.     {
  549.         g_bIsDoubleHours = false
  550.     }
  551. }
Umm cant seem to get this to work? Raheem did you test this on your server?

Heres my code but nothing displays on the screen
  1. #include <zombie_escape>
  2.  
  3. // Defines
  4. #define MAX_LEVEL 50
  5. #define MAX_XP 500000
  6. #define TASK_SHOWHUD 2020
  7. #define TASK_DOUBLE 1133
  8. #define REPEAT_TIME 60.0
  9. #define ID_SHOWHUD (taskid - TASK_SHOWHUD)
  10. #define LEVELUP "levelup_ZE/ze_levelup.wav"
  11.  
  12. // Constants
  13. new const g_szLevelsVault[] = "Levels"
  14. new const g_szRanksVault[] = "Ranks"
  15.  
  16. // Messages
  17. const Float:HUD_SPECT_X = -1.0
  18. const Float:HUD_SPECT_Y = 0.70
  19. const Float:HUD_STATS_X = -1.0
  20. const Float:HUD_STATS_Y = 0.90
  21.  
  22. const HUD_STATS_ZOMBIE_R = 200
  23. const HUD_STATS_ZOMBIE_G = 220
  24. const HUD_STATS_ZOMBIE_B = 0
  25.  
  26. const HUD_STATS_HUMAN_R = 0
  27. const HUD_STATS_HUMAN_G = 200
  28. const HUD_STATS_HUMAN_B = 210
  29.  
  30. const HUD_STATS_SPEC_R = 100
  31. const HUD_STATS_SPEC_G = 100
  32. const HUD_STATS_SPEC_B = 100
  33.  
  34. // Variables
  35. new g_iLevel[33],
  36.     g_iXP[33],
  37.     g_iMaxXP[33],
  38.     Float:g_fDamage[33],
  39.     g_MsgSync,
  40.     g_iLevelsVaultHandle,
  41.     g_iRanksVaultHandle,
  42.     bool:g_bIsDoubleHours
  43.  
  44. // Cvars
  45. new g_pCvarZombieInfect,
  46.     g_pCvarEscapeSuccess,
  47.     g_pCvarEnableDamage,
  48.     g_pCvarRequiredDamage,
  49.     g_pCvarDamageAward,
  50.     g_pCvarStartXP,
  51.     g_pCvarMaxLevelsIncrement,
  52.     g_pCvarMaxXPFirstLevel,
  53.     g_pCvarPercentageStyle,
  54.     g_pCvarStartFromZero,
  55.     g_pCvarAddCommas,
  56.     g_pCvarLevelEffects,
  57.     g_pCvarDoubleXP
  58.  
  59. public plugin_natives()
  60. {
  61.     register_native("ze_get_user_xp", "native_ze_get_user_xp", 1)
  62.     register_native("ze_set_user_xp", "native_ze_set_user_xp", 1)
  63.     register_native("ze_get_user_level", "native_ze_get_user_level", 1)
  64.     register_native("ze_set_user_level", "native_ze_set_user_level", 1)
  65.     register_native("ze_get_user_max_xp", "native_ze_get_user_max_xp", 1)
  66.     register_native("ze_set_user_max_xp", "native_ze_set_user_max_xp", 1)
  67. }
  68.  
  69. public plugin_precache()
  70. {
  71.     precache_sound(LEVELUP)
  72. }
  73.  
  74. public plugin_init()
  75. {
  76.     register_plugin("[ZE] Level-XP System", "1.8", "Raheem/JaCk")
  77.    
  78.     // Hook Chains
  79.     RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
  80.    
  81.     // Cvars
  82.     g_pCvarZombieInfect = register_cvar("ze_zombie_infect", "3")
  83.     g_pCvarEscapeSuccess = register_cvar("ze_escape_success", "5")
  84.     g_pCvarEnableDamage = register_cvar("ze_enable_dmg", "1")
  85.     g_pCvarRequiredDamage = register_cvar("ze_required_dmg", "50.0")
  86.     g_pCvarDamageAward = register_cvar("ze_dmg_award", "3")
  87.     g_pCvarStartXP = register_cvar("ze_start_xp", "50")
  88.     g_pCvarMaxLevelsIncrement = register_cvar("ze_maxlevels_increment", "2.0")
  89.     g_pCvarMaxXPFirstLevel = register_cvar("ze_max_xp_first_level", "100")
  90.     g_pCvarPercentageStyle = register_cvar("ze_enable_percentage_style", "1")
  91.     g_pCvarStartFromZero = register_cvar("ze_new_level_zero_xp", "0")
  92.     g_pCvarAddCommas = register_cvar("ze_add_commas_to_xp", "1")
  93.     g_pCvarLevelEffects = register_cvar("ze_level_up_effects", "1")
  94.     g_pCvarDoubleXP = register_cvar("ze_double_xp", "9-12")
  95.    
  96.     // Messages
  97.     g_MsgSync = CreateHudSyncObj()
  98. }
  99.  
  100. public client_putinserver(id)
  101. {
  102.     if(is_user_hltv(id) || is_user_bot(id))
  103.         return
  104.    
  105.     // Just 1 second delay
  106.     set_task(1.0, "DelayLoad", id)
  107.  
  108.     // Other tasks
  109.     set_task(1.0, "Show_Hud", id+TASK_SHOWHUD, _, _, "b")
  110.     set_task(0.1, "Check_MaxXP", id, _, _, "b")
  111.    
  112.     // Message task
  113.     DoubleHours()
  114.    
  115.     if (g_bIsDoubleHours)
  116.     {
  117.         set_task(REPEAT_TIME, "HappyHours", id+TASK_DOUBLE, _, _, "b")
  118.     }
  119. }
  120.  
  121. public HappyHours(taskid)
  122. {
  123.     new id = taskid - TASK_DOUBLE
  124.    
  125.     DoubleHours()
  126.    
  127.     if (!g_bIsDoubleHours)
  128.         remove_task(taskid)
  129.    
  130.     new szDoubleHours[32]
  131.    
  132.     get_pcvar_string(g_pCvarDoubleXP, szDoubleHours, charsmax(szDoubleHours))
  133.    
  134.     set_dhudmessage(0, 255, 0, -1.0, -1.0, 0, 0.0, 10.0)
  135.     show_dhudmessage(id, "DOUBLE XP: %s", szDoubleHours)
  136. }
  137.  
  138. public DelayLoad(id)
  139. {
  140.     // Load his data
  141.     LoadData(id)
  142. }
  143.  
  144. public client_disconnected(id)
  145. {
  146.     if(is_user_hltv(id) || is_user_bot(id))
  147.         return
  148.        
  149.     remove_task(id+TASK_SHOWHUD)
  150.     remove_task(id)
  151. }
  152.  
  153. public Check_MaxXP(id)
  154. {
  155.     new iCurrentMaxXP = g_iMaxXP[id]
  156.    
  157.     new iMaxXP = get_pcvar_num(g_pCvarMaxXPFirstLevel)
  158.    
  159.     for (new i = 1; i <= g_iLevel[id]; i++)
  160.     {
  161.         iMaxXP = floatround(float(iMaxXP) * get_pcvar_float(g_pCvarMaxLevelsIncrement))
  162.     }
  163.    
  164.     if (iCurrentMaxXP != iMaxXP)
  165.     {
  166.         g_iMaxXP[id] = iMaxXP
  167.     }
  168. }
  169.  
  170. public Show_Hud(taskid)
  171. {  
  172.     new iPlayer = ID_SHOWHUD
  173.    
  174.     if (!is_user_alive(iPlayer))
  175.     {
  176.         iPlayer = pev(iPlayer, pev_iuser2)
  177.        
  178.         if (!is_user_alive(iPlayer))
  179.             return
  180.     }
  181.    
  182.     if (get_pcvar_num(g_pCvarPercentageStyle) != 0)
  183.     {
  184.         if(iPlayer != ID_SHOWHUD)
  185.         {
  186.             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)
  187.             ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %0.2f %", g_iLevel[iPlayer], (float(g_iXP[iPlayer])/float(g_iMaxXP[iPlayer])) * 100.0)
  188.         }
  189.         else if (ze_is_user_zombie(iPlayer))
  190.         {
  191.             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)
  192.             ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %0.2f %", g_iLevel[ID_SHOWHUD], (float(g_iXP[ID_SHOWHUD])/float(g_iMaxXP[ID_SHOWHUD])) * 100.0)
  193.         }
  194.         else
  195.         {
  196.             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)
  197.             ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %0.2f %", g_iLevel[ID_SHOWHUD], (float(g_iXP[ID_SHOWHUD])/float(g_iMaxXP[ID_SHOWHUD])) * 100.0)
  198.         }
  199.     }
  200.     else
  201.     {
  202.         if(iPlayer != ID_SHOWHUD)
  203.         {
  204.             if (get_pcvar_num(g_pCvarAddCommas) == 1)
  205.             {
  206.                 new szSpecXP[15], szSpecMaxXP[15]
  207.                
  208.                 AddCommas(g_iXP[iPlayer], szSpecXP, charsmax(szSpecXP))
  209.                 AddCommas(g_iMaxXP[iPlayer], szSpecMaxXP, charsmax(szSpecMaxXP))
  210.                
  211.                 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)
  212.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %s/%s", g_iLevel[iPlayer], szSpecXP, szSpecMaxXP)
  213.             }
  214.             else
  215.             {
  216.                 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)
  217.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %d/%d", g_iLevel[iPlayer], g_iXP[iPlayer], g_iMaxXP[iPlayer])
  218.             }  
  219.         }
  220.         else if (ze_is_user_zombie(iPlayer))
  221.         {
  222.             if (get_pcvar_num(g_pCvarAddCommas) == 1)
  223.             {
  224.                 new szZombieXP[15], szZombieMaxXP[15]
  225.                
  226.                 AddCommas(g_iXP[ID_SHOWHUD], szZombieXP, charsmax(szZombieXP))
  227.                 AddCommas(g_iMaxXP[ID_SHOWHUD], szZombieMaxXP, charsmax(szZombieMaxXP))
  228.                
  229.                 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)
  230.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %s/%s", g_iLevel[ID_SHOWHUD], szZombieXP, szZombieMaxXP)
  231.             }
  232.             else
  233.             {
  234.                 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)
  235.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %d/%d", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
  236.             }
  237.         }
  238.         else
  239.         {
  240.             if (get_pcvar_num(g_pCvarAddCommas) == 1)
  241.             {
  242.                 new szHumanXP[15], szHumanMaxXP[15]
  243.                
  244.                 AddCommas(g_iXP[ID_SHOWHUD], szHumanXP, charsmax(szHumanXP))
  245.                 AddCommas(g_iMaxXP[ID_SHOWHUD], szHumanMaxXP, charsmax(szHumanMaxXP))
  246.                
  247.                 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)
  248.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %s/%s", g_iLevel[ID_SHOWHUD], szHumanXP, szHumanMaxXP)
  249.             }
  250.             else
  251.             {
  252.                 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)
  253.                 ShowSyncHudMsg(ID_SHOWHUD, g_MsgSync, "Level: %d | XP: %d/%d", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
  254.             }
  255.         }
  256.     }
  257. }
  258.  
  259. public ze_roundend(WinTeam)
  260. {
  261.     if (WinTeam == ZE_TEAM_HUMAN)
  262.     {
  263.         for(new id = 1; id <= get_member_game(m_nMaxPlayers); id++)
  264.         {
  265.             if (!is_user_alive(id) || get_member(id, m_iTeam) == TEAM_TERRORIST)
  266.                 continue
  267.            
  268.             g_iXP[id] += get_pcvar_num(g_pCvarEscapeSuccess)
  269.             SaveData(id)
  270.             Check_User_Level(id)
  271.         }
  272.     }
  273.    
  274.     remove_task(TASK_SHOWHUD)
  275. }
  276.  
  277. public Check_User_Level(id)
  278. {
  279.     if(!is_user_connected(id))
  280.         return
  281.  
  282.     if(g_iXP[id] >= g_iMaxXP[id])
  283.     {
  284.         if (get_pcvar_num(g_pCvarStartFromZero) == 1)
  285.         {
  286.             g_iXP[id] = 0
  287.         }
  288.        
  289.         new szName[32]
  290.         g_iLevel[id] ++
  291.         g_iMaxXP[id] = floatround(float(g_iMaxXP[id]) * get_pcvar_float(g_pCvarMaxLevelsIncrement))
  292.         get_user_name(id, szName, charsmax(szName))
  293.         ze_colored_print(0, "!g%s !tNow in Level %i!y!", szName, g_iLevel[id])
  294.        
  295.         SaveData(id)
  296.        
  297.         PlaySound(id, LEVELUP)
  298.        
  299.         if (get_pcvar_num(g_pCvarLevelEffects) != 0)
  300.         {
  301.             // Screen Fade
  302.             message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
  303.             write_short(4096*2)
  304.             write_short(4096*5)
  305.             write_short(0x0001)
  306.             write_byte(random(256))
  307.             write_byte(random(256))
  308.             write_byte(random(256))
  309.             write_byte(150)
  310.             message_end()
  311.            
  312.             // Screen Shake
  313.             message_begin(MSG_ONE, get_user_msgid("ScreenShake"), {0,0,0}, id)
  314.             write_short(255<<14)
  315.             write_short(10<<14)
  316.             write_short(255<<14)
  317.             message_end()
  318.         }
  319.     }
  320. }
  321.  
  322. public ze_user_infected(iVictim, iInfector)
  323. {
  324.     if (iInfector == 0)
  325.         return
  326.    
  327.     g_iXP[iInfector] += get_pcvar_num(g_pCvarZombieInfect)
  328.     SaveData(iInfector)
  329.     Check_User_Level(iInfector)
  330. }
  331.  
  332. public Fw_TakeDamage_Post(iVictim, iInflictor, iAttacker, Float:fDamage, bitsDamageType)
  333. {
  334.     // Player Damage Himself
  335.     if (iVictim == iAttacker || !is_user_alive(iVictim) || !is_user_alive(iAttacker) || ze_is_user_zombie(iAttacker) || !get_pcvar_num(g_pCvarEnableDamage))
  336.         return HC_CONTINUE
  337.    
  338.     // Same Team?
  339.     if (get_member(iAttacker, m_iTeam) == get_member(iVictim, m_iTeam))
  340.         return HC_CONTINUE
  341.    
  342.     // Store Damage For every Player
  343.     g_fDamage[iAttacker] += fDamage
  344.    
  345.     // Damage Calculator Equal or Higher than needed damage
  346.     if (g_fDamage[iAttacker] >= get_pcvar_float(g_pCvarRequiredDamage))
  347.     {
  348.         // Give Player The Coins
  349.         g_iXP[iAttacker] += get_pcvar_num(g_pCvarDamageAward)
  350.         SaveData(iAttacker)
  351.         Check_User_Level(iAttacker)
  352.        
  353.         // Rest The Damage Calculator
  354.         g_fDamage[iAttacker] = 0.0
  355.     }
  356.     return HC_CONTINUE
  357. }
  358.  
  359. public SaveData(id)
  360. {
  361.     new szAuthID[35], szName[32]
  362.     get_user_authid(id, szAuthID, charsmax(szAuthID))
  363.     get_user_name(id, szName, charsmax(szName))
  364.    
  365.     // Set Him to max if he Higher than Max Value
  366.     if(g_iLevel[id] > MAX_LEVEL)
  367.     {
  368.         g_iLevel[id] = MAX_LEVEL
  369.     }
  370.    
  371.     if(g_iXP[id] > MAX_XP)
  372.     {
  373.         g_iXP[id] = MAX_XP
  374.     }
  375.    
  376.     new szData[256]
  377.     formatex(szData , charsmax(szData), "%i %i %i", g_iLevel[id], g_iXP[id], g_iMaxXP[id])
  378.    
  379.     // Open the Vaults
  380.     g_iLevelsVaultHandle = nvault_open(g_szLevelsVault)
  381.     g_iRanksVaultHandle = nvault_open(g_szRanksVault)
  382.  
  383.     // Saves His Data
  384.     nvault_set(g_iLevelsVaultHandle, szAuthID, szData)
  385.     nvault_set(g_iRanksVaultHandle, szAuthID, szName)
  386.    
  387.     // Close Vaults
  388.     nvault_close(g_iLevelsVaultHandle)
  389.     nvault_close(g_iRanksVaultHandle)
  390. }
  391.  
  392. public LoadData(id)
  393. {
  394.     new szData[256], szAuthID[35], szName[32]
  395.    
  396.     get_user_authid(id, szAuthID, charsmax(szAuthID))
  397.     get_user_name(id, szName, charsmax(szName))
  398.    
  399.     // Useless Variable
  400.     new iTimestamp, iExists
  401.    
  402.     // Open the Vault
  403.     g_iLevelsVaultHandle = nvault_open(g_szLevelsVault)
  404.    
  405.     iExists = nvault_lookup(g_iLevelsVaultHandle, szAuthID, szData, charsmax(szData), iTimestamp)
  406.    
  407.     // Close Vault
  408.     nvault_close(g_iLevelsVaultHandle)
  409.    
  410.     if (!iExists)
  411.     {
  412.         g_iLevel[id] = 0
  413.         g_iXP[id] = get_pcvar_num(g_pCvarStartXP)
  414.         g_iMaxXP[id] = get_pcvar_num(g_pCvarMaxXPFirstLevel)
  415.         SaveData(id)
  416.     }
  417.     else
  418.     {
  419.         new iLevel[32], iXP[32], iMaxLevel[32]
  420.         parse(szData, iLevel, 31, iXP, 31, iMaxLevel, 31)
  421.        
  422.         g_iLevel[id] = str_to_num(iLevel)
  423.         g_iXP[id] = str_to_num(iXP)
  424.         g_iMaxXP[id] = str_to_num(iMaxLevel)
  425.     }
  426. }
  427.  
  428. public native_ze_get_user_xp(id)
  429. {
  430.     if(!is_user_connected(id))
  431.     {
  432.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  433.         return false;
  434.     }
  435.    
  436.     return g_iXP[id]
  437. }
  438.  
  439. public native_ze_set_user_xp(id, amount)
  440. {
  441.     if(!is_user_connected(id))
  442.     {
  443.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  444.         return false;
  445.     }
  446.    
  447.     DoubleHours()
  448.    
  449.     new iAddedAmount = amount - g_iXP[id]
  450.    
  451.     if (g_bIsDoubleHours)
  452.     {
  453.         g_iXP[id] = g_iXP[id] + (iAddedAmount * 2)
  454.     }
  455.     else
  456.     {
  457.         g_iXP[id] = amount
  458.     }
  459.    
  460.     Check_User_Level(id)
  461.     SaveData(id)
  462.     return true;
  463. }
  464.  
  465. public native_ze_get_user_level(id)
  466. {
  467.     if(!is_user_connected(id))
  468.     {
  469.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  470.         return false;
  471.     }
  472.    
  473.     return g_iLevel[id]
  474. }
  475.  
  476. public native_ze_set_user_level(id, amount)
  477. {
  478.     if(!is_user_connected(id))
  479.     {
  480.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  481.         return false;
  482.     }
  483.    
  484.     g_iLevel[id] = amount
  485.    
  486.     if (get_pcvar_num(g_pCvarStartFromZero) == 1)
  487.     {
  488.         g_iXP[id] = 0
  489.     }
  490.    
  491.     SaveData(id)
  492.    
  493.     return true;
  494. }
  495.  
  496. public native_ze_get_user_max_xp(id)
  497. {
  498.     if(!is_user_connected(id))
  499.     {
  500.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  501.         return false;
  502.     }
  503.    
  504.     return g_iMaxXP[id]
  505. }
  506.  
  507. public native_ze_set_user_max_xp(id, amount)
  508. {
  509.     if(!is_user_connected(id))
  510.     {
  511.         log_error(AMX_ERR_NATIVE, "[ZE] Invalid Player id (%d)", id)
  512.         return false;
  513.     }
  514.    
  515.     g_iMaxXP[id] = amount
  516.    
  517.     SaveData(id)
  518.    
  519.     return true;
  520. }
  521.  
  522. stock DoubleHours()
  523. {
  524.     new szTime[3], szDoubleHours[32], szDoubleHours_Start[32], szDoubleHours_End[32]
  525.     get_time("%H", szTime, charsmax(szTime))
  526.    
  527.     get_pcvar_string(g_pCvarDoubleXP, szDoubleHours, charsmax(szDoubleHours))
  528.    
  529.     for (new ch = 0; ch <= charsmax(szDoubleHours); ch++)
  530.     {
  531.         if (szDoubleHours[ch] == '-')
  532.             szDoubleHours[ch] = ' '
  533.     }
  534.    
  535.     parse(szDoubleHours, szDoubleHours_Start, charsmax(szDoubleHours_Start), szDoubleHours_End, charsmax(szDoubleHours_End))
  536.    
  537.     new iTime, iDoubleHourStart, iDoubleHourEnd
  538.    
  539.     iTime = str_to_num(szTime)
  540.     iDoubleHourStart = str_to_num(szDoubleHours_Start)
  541.     iDoubleHourEnd = str_to_num(szDoubleHours_End)
  542.    
  543.     if(iDoubleHourEnd > iTime >= iDoubleHourStart)
  544.     {
  545.         g_bIsDoubleHours = true
  546.     }
  547.     else
  548.     {
  549.         g_bIsDoubleHours = false
  550.     }
  551. }

User avatar
Mark
VIP
VIP
United States of America
Posts: 283
Joined: 5 years ago
Location: Des Moines/USA
Contact:

#17

Post by Mark » 5 years ago

Bump***

Post Reply

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

Register

Sign in

Who is online

Users browsing this forum: Semrush [Bot] and 2 guests