Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Please namesti :)
- #include <amxmodx>
- #include <amxmisc>
- #include <dhudmessage>
- #include <nvault>
- #define HUD 672
- new const cfgfajl[] = "addons/amxmodx/configs/lvl_podesavanja.cfg"
- new const conffolder[] = "addons/amxmodx/configs"
- new pCvarPrefix
- new const Cinovi[][]=
- {
- "Botina",
- "Amater",
- "Mladji vojnik",
- "Vojnik",
- "Narednik",
- "Narednik I",
- "General",
- "General I",
- "Potporucnik",
- "Porucnik",
- "Kapetan",
- "Major",
- "Potpukovnik",
- "Pukovnik",
- "Brigadni General",
- "General-Major",
- "General-Potpukovnik",
- "Expert",
- "Extra Killer"
- }
- new max_level = 20000, g_sync1, g_podaci, _pcvar_killxp, xp_igraca[33], CinX[33], level_igraca[33] = 1, _pcvar_boja[3], _pcvar_pozicija[2]
- public plugin_init() {
- register_plugin("Level System", "4.2b", "RasisT & MegastorM")
- g_podaci = nvault_open("level_mod");
- register_event("DeathMsg", "player_death", "ade");
- _pcvar_killxp = register_cvar("lvl_killxp","3")
- _pcvar_boja[0] = register_cvar("lvl_red","0")
- _pcvar_boja[1] = register_cvar("lvl_green","200")
- _pcvar_boja[2] = register_cvar("lvl_blue","250")
- _pcvar_pozicija[0] = register_cvar("lvl_x","0.02")
- _pcvar_pozicija[1] = register_cvar("lvl_y","0.75")
- pCvarPrefix = register_cvar("prefix_tip","1")
- register_concmd("set_lvl", "cmd_lvl", ADMIN_RCON, "<nick> <level>");
- g_sync1 = CreateHudSyncObj()
- register_message(get_user_msgid("SayText"),"handleSayText");
- }
- public handleSayText(msgId,msgDest,msgEnt)
- {
- new id = get_msg_arg_int(1);
- if(!is_user_connected(id))
- return PLUGIN_CONTINUE;
- new szTmp[256],szTmp2[256]
- get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
- new szPrefix[64]
- switch(get_pcvar_num(pCvarPrefix))
- {
- case 1:
- {
- formatex(szPrefix,charsmax( szPrefix ),"^x04[%s]",Cinovi[level_igraca[id]]);
- }
- case 2:
- {
- formatex(szPrefix,charsmax( szPrefix ),"^x04[%d]",level_igraca[id]);
- }
- case 3:
- {
- formatex(szPrefix,charsmax( szPrefix ),"^4[^3%s^4][^3Level^4 : ^3%d^4]",Cinovi[level_igraca[id]],level_igraca[id]);
- }
- }
- if(!equal(szTmp,"#Cstrike_Chat_All")){
- add(szTmp2,charsmax(szTmp2),szPrefix);
- add(szTmp2,charsmax(szTmp2)," ");
- add(szTmp2,charsmax(szTmp2),szTmp);
- }
- else{
- add(szTmp2,charsmax(szTmp2),szPrefix);
- add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2");
- }
- set_msg_arg_string(2,szTmp2);
- return PLUGIN_CONTINUE;
- }
- public plugin_precache()
- {
- mkdir(conffolder)
- if(!file_exists(cfgfajl))
- {
- write_file(cfgfajl,"*****************************[LVL Podesavanja]*****************************")
- write_file(cfgfajl,"<<-------------------Ovde podesavate sve cvarove vezane za plugin---------------->>")
- write_file(cfgfajl," ")
- write_file(cfgfajl,"lvl_killxp ^"3^" //XP za kill")
- write_file(cfgfajl,"lvl_red ^"0^" //Kolicina-Nijansa crvene")
- write_file(cfgfajl,"lvl_green ^"200^" //Kolicina-Nijansa zelene")
- write_file(cfgfajl,"lvl_blue ^"250^" //Kolicina-Nijansa plave")
- write_file(cfgfajl,"lvl_x ^"0.02^" //Pozicija po X osi(0.01-1.0(-1.0 za centar))")
- write_file(cfgfajl,"lvl_y ^"0.75^" //Pozicija po Y osi(0.01-1.0(-1.0 za centar))")
- }
- server_cmd("exec %s", cfgfajl)
- server_exec()
- }
- public Reset(id)
- {
- xp_igraca[id] = 1
- proverilvl(id)
- client_print(id, print_chat, "[LVL] Uspesno si resetovao levele")
- }
- public cmd_lvl(id, level, cid)
- {
- if(!cmd_access(id, level, cid, 3))
- return PLUGIN_HANDLED;
- new arg1[33];
- new arg2[6];
- read_argv(1, arg1, 32);
- read_argv(2, arg2, 5);
- new player = cmd_target(id, arg1);
- if(!is_user_connected(player))
- return PLUGIN_HANDLED;
- new value = str_to_num(arg2)-1;
- if(value > 199)
- {
- client_print(id, print_console, "Ne mozes postaviti igracu vise od 199 levela!")
- return PLUGIN_HANDLED
- }
- client_print(id, print_console, "Uspesno si postavio %s %d levela", player, value)
- xp_igraca[player] = xp_za_level(value);
- level_igraca[player] = 0;
- proverilvl(player);
- return PLUGIN_HANDLED;
- }
- public pokazi_podatke(id)
- {
- id -= HUD
- if(!is_user_connected(id))
- return PLUGIN_HANDLED
- set_task(0.1, "pokazi_podatke", id+HUD);
- set_dhudmessage(get_pcvar_num(_pcvar_boja[0]), get_pcvar_num(_pcvar_boja[1]), get_pcvar_num(_pcvar_boja[2]), get_pcvar_float(_pcvar_pozicija[0]), get_pcvar_float(_pcvar_pozicija[1]), 0, 0.0, 0.3, 0.0, 0.0);
- show_dhudmessage(id, "[Level: %i]^n[Exp: %i / %i]^n[Cin: %s]",level_igraca[id], xp_igraca[id], xp_za_level(level_igraca[id]), Cinovi[CinX[id]])
- return PLUGIN_CONTINUE;
- }
- public player_death()
- {
- new attacker = read_data(1)
- if(!is_user_connected(attacker))
- return PLUGIN_HANDLED
- new xp_za_ubistvo = get_pcvar_num(_pcvar_killxp)
- if(level_igraca[attacker] < max_level || xp_igraca[attacker] >= 119990)
- {
- xp_igraca[attacker] += xp_za_ubistvo
- proverilvl(attacker)
- }
- else
- {
- level_igraca[attacker] = max_level
- xp_igraca[attacker] = 119990
- proverilvl(attacker)
- }
- return PLUGIN_CONTINUE
- }
- public proverilvl(id)
- {
- if(level_igraca[id] >= max_level)
- return PLUGIN_HANDLED
- if(level_igraca[id] < max_level)
- {
- while(xp_igraca[id] >= xp_za_level(level_igraca[id]))
- {
- level_igraca[id]++
- set_hudmessage(200, 0, 0, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2);
- ShowSyncHudMsg(id, g_sync1, "%i level!", level_igraca[id]);
- }
- }
- else
- {
- xp_igraca[id] = 119990
- level_igraca[id] = max_level
- }
- switch(level_igraca[id])
- {
- case 1: CinX[id] = 0;
- case 2: CinX[id] = 1;
- case 3..4: CinX[id] = 2;
- case 5..7: CinX[id] = 3;
- case 8..15: CinX[id] = 4;
- case 16..23: CinX[id] = 5;
- case 24..31: CinX[id] = 6;
- case 32..63: CinX[id] = 7;
- case 64..74: CinX[id] = 8;
- case 75..127: CinX[id] = 9;
- case 128..155: CinX[id] = 10;
- case 156..191: CinX[id] = 11;
- case 192..200: CinX[id] = 12;
- case 201..211: CinX[id] = 13;
- case 212..225: CinX[id] = 14;
- case 226..235: CinX[id] = 15;
- case 236..250: CinX[id] = 16;
- case 251..270: CinX[id] = 17;
- case 271..20000: CinX[id] = 18;
- }
- return PLUGIN_CONTINUE
- }
- public xp_za_level(lvl)
- return lvl*3*2;
- public client_putinserver(id)
- {
- level_igraca[id] = 1
- Ucitaj(id)
- set_task(3.0, "pokazi_podatke", id+HUD);
- switch(level_igraca[id])
- {
- case 50..499:
- {
- set_user_flags(id, ADMIN_RESERVATION);
- }
- case 500.. 2000:
- {
- set_user_flags(id, ADMIN_IMMUNITY);
- set_user_flags(id, ADMIN_RESERVATION);
- }
- }
- }
- public client_disconnect(id)
- {
- Sacuvaj(id)
- }
- public Sacuvaj(id)
- {
- new vltkey[128]
- new podaci[256]
- new steam_id_igraca[64];
- format(podaci, charsmax(podaci),"#%i#%i#%i", xp_igraca[id], level_igraca[id], CinX[id]);
- get_user_authid(id, steam_id_igraca, charsmax(steam_id_igraca))
- format(vltkey, charsmax(vltkey),"%s-lvl_mod", steam_id_igraca);
- nvault_set(g_podaci,vltkey,podaci);
- return PLUGIN_CONTINUE;
- }
- public Ucitaj(id)
- {
- new vltkey[128]
- new podaci[256]
- new steam_id_igraca[64];
- get_user_authid(id, steam_id_igraca, charsmax(steam_id_igraca))
- format(vltkey, charsmax(vltkey),"%s-lvl_mod", steam_id_igraca);
- nvault_get(g_podaci,vltkey,podaci,255);
- replace_all(podaci, 255, "#", " ");
- new plrinfo[3][32];
- parse(podaci, plrinfo[0], 31, plrinfo[1], 31, plrinfo[2], 31);
- xp_igraca[id] = str_to_num(plrinfo[0]);
- level_igraca[id] = str_to_num(plrinfo[1])>0?str_to_num(plrinfo[1]):1;
- CinX[id] = str_to_num(plrinfo[2]);
- return PLUGIN_CONTINUE;
- }
- public plugin_end()
- nvault_close(g_podaci)
Advertisement
Add Comment
Please, Sign In to add comment