wklejto.pl

Dodane przez: ~Anonim (2020-07-17 19:46) -> text
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.
288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.
326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.
364.
365.
366.
367.
368.
369.
370.
371.
372.
373.
374.
375.
376.
377.
378.
379.
380.
381.
382.
383.
384.
385.
386.
387.
388.
389.
390.
391.
392.
393.
394.
395.
396.
397.
398.
399.
400.
401.
402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.
440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474.
475.
476.
477.
478.
479.
480.
481.
482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.
516.
517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.
554.
555.
556.
557.
558.
559.
560.
561.
562.
563.
564.
565.
566.
567.
568.
569.
570.
571.
572.
573.
574.
575.
576.
577.
578.
579.
580.
581.
582.
583.
584.
585.
586.
587.
588.
589.
590.
591.
592.
593.
594.
595.
596.
597.
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <sqlx>
#include <nvault>
#include <cstrike>
#include <fun>
 
#include <zombieplague>
 
// Defines
#define MAX_LEVEL 2
#define MAX_XP 50000
#define TASK_SHOWHUD 2020
#define ID_SHOWHUD (taskid - TASK_SHOWHUD)
#define LEVELUP "levelup_ZE/ze_levelup.wav"
 
enum
{
        Host = 0,
        User,
        Pass,
        DB
}
 
new const g_iMaxLevelsXP[MAX_LEVEL] = {
10,
20
}
 // Needed Xp on each Levels
 
// Constants
new const g_szLevelsVault[] = "Levels"
new const g_szRanksVault[] = "Ranks"
new const g_szLogFile[] = "Levels.log" // MySQL Errors log file
new const g_szTable[] =
" \
        ALTER TABLE `test` \
        ADD IF NOT EXISTS `Level` int(20) NOT NULL DEFAULT '0', \
        ADD IF NOT EXISTS `XP` int(20) NOT NULL DEFAULT '0'; \
"
 
// Messages
const Float:HUD_SPECT_X = -1.0
const Float:HUD_SPECT_Y = 0.70
const Float:HUD_STATS_X = -1.0
const Float:HUD_STATS_Y = 0.90
 
const HUD_STATS_ZOMBIE_R = 200
const HUD_STATS_ZOMBIE_G = 220
const HUD_STATS_ZOMBIE_B = 0
 
const HUD_STATS_HUMAN_R = 0
const HUD_STATS_HUMAN_G = 200
const HUD_STATS_HUMAN_B = 210
 
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,
        Handle:g_hTuple,
        Fw_LevelUP,
        ForwardReturn
 
// Cvars
new g_pCvarZombieInfect, 
        g_pCvarEscapeSuccess, 
        g_pCvarEnableDamage, 
        g_pCvarRequiredDamage, 
        g_pCvarDamageAward, 
        g_pCvarStartXP,
        g_pCvarPercentageStyle, 
        g_pCvarStartFromZero, 
        g_pCvarAddCommas, 
        g_pCvarLevelEffects,
        g_pCvarSaveType,
        g_pCvarDBInfo[4]
 
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)
}
 
public plugin_precache()
{
        precache_sound(LEVELUP)
}
 
public plugin_init()
{
        register_plugin("[ZE] Level-XP System", "1.9", "Raheem/JaCk")
        
        // Hook Chains
        //RegisterHookChain(RG_CBasePlayer_TakeDamage, "Fw_TakeDamage_Post", 1)
        RegisterHam(Ham_TakeDamage, "player", "Fw_TakeDamage_Post", 1)
 
        Fw_LevelUP = CreateMultiForward("ze_on_levelup", ET_IGNORE, FP_CELL)
        
        // 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_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_pCvarSaveType = register_cvar("ze_levels_save_type", "1")
        g_pCvarDBInfo[Host] = register_cvar("ze_levels_host", "zombie-escape.xaa.pl")
        g_pCvarDBInfo[User] = register_cvar("ze_levels_user", "p559796_KTIVGames")
        g_pCvarDBInfo[Pass] = register_cvar("ze_levels_pass", "superqwerty69")
        g_pCvarDBInfo[DB] = register_cvar("ze_levels_dbname", "p559796_zombie_escape")
        
        // Messages
        g_MsgSync = CreateHudSyncObj()
 
        if (get_pcvar_num(g_pCvarSaveType))
        {
                set_task(0.1, "Delay_MySQL_Init")
        }
}
 
public plugin_end()
{
        if (get_pcvar_num(g_pCvarSaveType))
        {
                if (g_hTuple != Empty_Handle)
                {
                        SQL_FreeHandle(g_hTuple)
                }
        }
}
 
public Delay_MySQL_Init()
{
        MySQL_Init()
}
 
public MySQL_Init()
{
        if (!get_pcvar_num(g_pCvarSaveType))
                return
        
        new szHost[64], szUser[32], szPass[32], szDB[128]
        
        get_pcvar_string(g_pCvarDBInfo[Host], szHost, charsmax(szHost))
        get_pcvar_string(g_pCvarDBInfo[User], szUser, charsmax(szUser))
        get_pcvar_string(g_pCvarDBInfo[Pass], szPass, charsmax(szPass))
        get_pcvar_string(g_pCvarDBInfo[DB], szDB, charsmax(szDB))
        
        g_hTuple = SQL_MakeDbTuple(szHost, szUser, szPass, szDB)
        
        // Let's ensure that the g_hTuple will be valid, we will access the database to make sure
        new iErrorCode, szError[512], Handle:hSQLConnection
        
        hSQLConnection = SQL_Connect(g_hTuple, iErrorCode, szError, charsmax(szError))
        
        if (hSQLConnection != Empty_Handle)
        {
                log_amx("[MySQL][LVL] Successfully connected to host: %s (ALL IS OK).", szHost)
                SQL_FreeHandle(hSQLConnection)
        }
        else
        {
                // Disable plugin
                set_fail_state("[LVL] Failed to connect to MySQL database: %s.", szError)
        }
        
        SQL_ThreadQuery(g_hTuple, "QueryCreateTable", g_szTable)
}
 
public QueryCreateTable(iFailState, Handle:hQuery, szError[], iError, szData[], iSize, Float:flQueueTime) 
{
        SQL_IsFail(iFailState, iError, szError, g_szLogFile)
}
 
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")
}
 
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 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 | XP: %0.2f %", g_iLevel[iPlayer], (float(g_iXP[iPlayer])/float(g_iMaxXP[iPlayer])) * 100.0)
                }
                else if (zp_get_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 | 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 | 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 | 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 | XP: %d/%d", g_iLevel[iPlayer], g_iXP[iPlayer], g_iMaxXP[iPlayer])
                        }       
                }
                else if (zp_get_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 | 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 | 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 | 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 | XP: %d/%d", g_iLevel[ID_SHOWHUD], g_iXP[ID_SHOWHUD], g_iMaxXP[ID_SHOWHUD])
                        }
                }
        }
}
 
public zp_round_ended(WinTeam)
{
        if (WinTeam == ZP_TEAM_HUMAN)
        {
                for(new id = 1; id <= 32; id++)
                {
                        if (!is_user_alive(id) || get_user_team(id) == 1)
                                continue
                        
                        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] = g_iMaxLevelsXP[g_iLevel[id]]
                get_user_name(id, szName, charsmax(szName))
                //colored_print(0, "!g%s !tNow in Level %i!y!", szName, g_iLevel[id])
                ExecuteForward(Fw_LevelUP, ForwardReturn, 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
        
        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) || zp_get_user_zombie(iAttacker) || !get_pcvar_num(g_pCvarEnableDamage))
                return HAM_SUPERCEDE
        
        // Same Team?
        if (get_user_team(iAttacker) == get_user_team(iVictim))
                return HAM_SUPERCEDE
        
        // 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
                g_iXP[iAttacker] += get_pcvar_num(g_pCvarDamageAward)
                SaveData(iAttacker)
                Check_User_Level(iAttacker)
                
                // Rest The Damage Calculator
                g_fDamage[iAttacker] = 0.0
        }
        return HAM_IGNORED
}
 
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
        }
 
        if (!get_pcvar_num(g_pCvarSaveType))
        {
                new szData[256]
                formatex(szData , charsmax(szData), "%i %i", g_iLevel[id], g_iXP[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)
        }
        else
        {
                new szQuery[128]
                formatex(szQuery, charsmax(szQuery), "INSERT 'zombie_escape' SET `Level` = '%d', `XP` = '%d' WHERE  `SteamID` = '%s' ;", g_iLevel[id], g_iXP[id], szAuthID)
                SQL_ThreadQuery(g_hTuple, "QuerySetData", szQuery)
        }
}
 
public QuerySetData(iFailState, Handle:hQuery, szError[], iError, szData[], iSize, Float:flQueueTime) 
{
        SQL_IsFail(iFailState, iError, szError, g_szLogFile)
}
 
public QuerySetData2(iFailState, Handle:hQuery, szError[], iError, szData[], iSize, Float:flQueueTime) 
{
        SQL_IsFail(iFailState, iError, szError, g_szLogFile)
}
 
public LoadData(id)
{
        new szData[256], szAuthID[35]
        
        get_user_authid(id, szAuthID, charsmax(szAuthID))
        
        if (!get_pcvar_num(g_pCvarSaveType))
        {
                // 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)
                        SaveData(id)
                }
                else
                {
                        new iLevel[32], iXP[32]
                        parse(szData, iLevel, 31, iXP, 31)
                        
                        g_iLevel[id] = str_to_num(iLevel)
                        g_iXP[id] = str_to_num(iXP)
                }
 
                g_iMaxXP[id] = g_iMaxLevelsXP[g_iLevel[id]]
        }
        else
        {
                new szQuery[128], szData[5]
                formatex(szQuery, charsmax(szQuery), "SELECT * FROM 'zombie_escape' WHERE ( `SteamID` = '%s' );", szAuthID)
                
        
                num_to_str(id, szData, charsmax(szData))
                SQL_ThreadQuery(g_hTuple, "QuerySelectData", szQuery, szData, charsmax(szData))
        }
}
 
public QuerySelectData(iFailState, Handle:hQuery, szError[], iError, szData[]) 
{
        if (SQL_IsFail(iFailState, iError, szError, g_szLogFile))
                return
        
        new id = str_to_num(szData)
        
        // No results for this query means this is new player
        if (!SQL_NumResults(hQuery))
        {
                new szSteamId[36]
                get_user_authid(id, szSteamId, charsmax(szSteamId))
 
                g_iLevel[id] = 0
                g_iXP[id] = 0
                g_iMaxXP[id] = g_iMaxLevelsXP[g_iLevel[id]]
                return
        }
 
        g_iLevel[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "Level"))
        g_iXP[id] = SQL_ReadResult(hQuery, SQL_FieldNameToNum(hQuery, "XP"))
        g_iMaxXP[id] = g_iMaxLevelsXP[g_iLevel[id]]
}
 
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;
        }
        
        g_iXP[id] = amount
        
        Check_User_Level(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
        }
        
        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_iMaxLevelsXP[g_iLevel[id]]
}
 
Wygenerowano w 0.003s, przy pomocy GeSHi 1.0.8
'
Podziel się na Facebook Podziel się na BLIP Podziel się na Twitter Podziel się na Buzz Podziel się na Flaker Dodaj zakładkę Google Podziel się na Delicious Wykop to!

Nowy Komentarz:

Komentarze:

Brak Komentarzy!