Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* Plugin generated by AMXX-Studio */
- #include <amxmodx>
- #include <amxmisc>
- #include <nvault>
- #include <basebuilder>
- #include <fakemeta>
- #include <hamsandwich>
- #define HUD 672
- #define Ham_CS_Player_ResetMaxSpeed Ham_Item_PreFrame
- new const CinoviHM[][]=
- {
- "Razvodnik",
- "Desetar",
- "Mladji vodnik",
- "Vodnik",
- "Stariji vodnik",
- "Stariji vodnik I",
- "Zastavnik",
- "Zastavnik I",
- "Potporucnik",
- "Porucnik",
- "Kapetan",
- "Major",
- "Potpukovnik",
- "Pukovnik",
- "Brigadni General",
- "General-Major",
- "General-Potpukovnik",
- "General"
- }
- new const CinoviZM[][]=
- {
- "Headcrab",
- "Headcrab I",
- "Infected",
- "Infected I",
- "S.T.A.L.K.E.R",
- "Zombi vojnik",
- "Zombi vojnik I",
- "Zombi Vodnik",
- "Zombi Marinac",
- "Zombi veteran",
- "Zombi veteran I",
- "Sleeper",
- "Hellhound",
- "Nazi zombi",
- "Zombi general",
- "Nemesis",
- "Assassin",
- "Zombi kralj"
- }
- new const gMaxCinovi[] = { 1, 2, 3, 5, 8, 16, 24, 32, 64, 75, 128, 156, 192, 201, 212, 226, 236, 251, 20000 }
- new max_level = 20000,g_sync1, g_sync, g_podaci, svi_cvarovi[16], g_maxplayers, g_menu, xp_igraca[33], level_igraca[33] = 1
- new kondicija[33], energija[33], armor[33], poeni[33], brzina_igraca[33], hp_igraca[33], armor_igraca[33]
- new const cfgfajl[] = "addons/amxmodx/configs/bb_level_plugin/bb_level_plugin.cfg"
- new const conffolder[] = "addons/amxmodx/configs/bb_level_plugin"
- public plugin_init() {
- register_plugin("Level System", "1.0b", "MegastorM")
- register_cvar("bb_level_system", "1.0b", (FCVAR_SERVER|FCVAR_SPONLY))
- g_podaci = nvault_open("lvl_mod");
- register_event("DeathMsg", "player_death", "ade");
- RegisterHam(Ham_Spawn, "player", "Pocetak", 1);
- RegisterHam( Ham_CS_Player_ResetMaxSpeed, "player", "ham_ResetMaxSpeed_player_post", false )
- register_clcmd("say /poeni","pokazimeni")
- svi_cvarovi[0] = register_cvar("bb_ikillxp","1")
- svi_cvarovi[1] = register_cvar("bb_hud_red","0")
- svi_cvarovi[2] = register_cvar("bb_hud_green","200")
- svi_cvarovi[3] = register_cvar("bb_hud_blue","250")
- svi_cvarovi[4] = register_cvar("bb_main_hud_x","0.02")
- svi_cvarovi[5] = register_cvar("bb_main_hud_y","0.25")
- svi_cvarovi[6] = register_cvar("bb_kill_hud_red","60")
- svi_cvarovi[7] = register_cvar("bb_kill_hud_green","60")
- svi_cvarovi[8] = register_cvar("bb_kill_hud_blue","60")
- svi_cvarovi[9] = register_cvar("bb_kill_hud_x","0.75")
- svi_cvarovi[10] = register_cvar("bb_kill_hud_y","-1.0")
- svi_cvarovi[11] = register_cvar("bb_hud_lvup_red","200")
- svi_cvarovi[12] = register_cvar("bb_hud_lvup_green","0")
- svi_cvarovi[13] = register_cvar("bb_hud_lvup_blue","0")
- svi_cvarovi[14] = register_cvar("bb_hud_lvup_x","-1.0")
- svi_cvarovi[15] = register_cvar("bb_hud_lvup_y","0.25")
- register_concmd("bb_set_lvl", "cmd_lvl", ADMIN_RCON, "<nick> <level>");
- g_sync1 = CreateHudSyncObj()
- g_sync = CreateHudSyncObj()
- g_maxplayers = get_maxplayers()
- register_message(get_user_msgid("SayText"),"Message_SayText");
- }
- public plugin_precache()
- {
- mkdir(conffolder)
- if(!file_exists(cfgfajl))
- {
- write_file(cfgfajl,"*****************************[ZP Level Podesavanja]*****************************")
- write_file(cfgfajl,"<<----------------Ovde podesavate sve cvarove vezane za plugin---------------->>")
- write_file(cfgfajl," ")
- write_file(cfgfajl," ")
- write_file(cfgfajl,"//Cvar za iskustvo koje se dobije za jedno ubistvo/infekciju")
- write_file(cfgfajl,"bb_ikillxp ^"1^" //KillXP")
- write_file(cfgfajl," ")
- write_file(cfgfajl,"//Cvarovi za boje i poziciju glavnog HUD-a")
- write_file(cfgfajl,"bb_hud_red ^"0^" //kolicina crvene boje za glavni Hud(0-255)")
- write_file(cfgfajl,"bb_hud_green ^"200^" //Kolicina zelene boje za glavni HUD(0-255)")
- write_file(cfgfajl,"bb_hud_blue ^"250^" //Kolicina zelene boje za glavni HUD(0-255)")
- write_file(cfgfajl,"bb_main_hud_x ^"0.02^" //Nocni XP(-1.0 je za centar,0.0 skroz levo,1.0 skroz desno)")
- write_file(cfgfajl,"bb_main_hud_y ^"0.25^" //Normalan XP(-1.0 je za centar,0.0 skroz levo,1.0 skroz desno)")
- write_file(cfgfajl," ")
- write_file(cfgfajl,"//Cvarovi za boje i poziciju HUD-a za nagrade")
- write_file(cfgfajl,"bb_kill_hud_red ^"60^" //Kolicina zelene za HUD za nagrade(0-255)")
- write_file(cfgfajl,"bb_kill_hud_green ^"60^" //Kolicina zelene za HUD za nagrade(0-255)")
- write_file(cfgfajl,"bb_kill_hud_blue ^"60^" //Kolicina zelene za HUD za nagrade(0-255)")
- write_file(cfgfajl,"bb_kill_hud_x ^"0.75^" //X koordinata za HUD za nagrade(-1.0 je za centar,0.0 skroz levo,1.0 skroz desno)")
- write_file(cfgfajl,"bb_kill_hud_y ^"-1.0^" //Y koordinata za HUD za nagrade(-1.0 je za centar,0.0 skroz levo,1.0 skroz desno)")
- write_file(cfgfajl," ")
- write_file(cfgfajl,"//Cvarovi za boje i poziciju Level UP! HUD-a")
- write_file(cfgfajl,"bb_hud_lvup_red ^"200^" //Kolicina crvene boje za Level Up! HUD(0-255)")
- write_file(cfgfajl,"bb_hud_lvup_green ^"0^" //Kolicina zelene boje za Level Up! HUD(0-255)")
- write_file(cfgfajl,"bb_hud_lvup_blue ^"0^" //Kolicina plave boje za Level Up! HUD(0-255)")
- write_file(cfgfajl,"bb_hud_lvup_x ^"-1.0^" //X koordinata za Level Up! HUD(-1.0 je za centar,0.0 skroz levo,1.0 skroz desno)")
- write_file(cfgfajl,"bb_hud_lvup_y ^"0.25^" //Y koordinata za Level Up! HUD(-1.0 je za centar,0.0 skroz levo,1.0 skroz desno)")
- }
- server_cmd("exec %s", cfgfajl)
- server_exec()
- }
- public Message_SayText(msgId,msgDest,msgEnt)
- {
- new id = get_msg_arg_int(1);
- if( is_user_connected(id) )
- {
- new szChannel[64];
- get_msg_arg_string(2, szChannel, charsmax(szChannel));
- if( equal(szChannel, "#Cstrike_Chat_All") )
- {
- if(bb_is_user_zombie(id))
- {
- formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2",CinoviZM[Getcin(level_igraca[id])]);
- set_msg_arg_string(2, szChannel);
- }
- else
- {
- formatex(szChannel, charsmax(szChannel), "^4[%s] ^3%%s1 ^1: %%s2",CinoviHM[Getcin(level_igraca[id])]);
- set_msg_arg_string(2, szChannel);
- }
- }
- }
- }
- Getcin(iNum)
- {
- for( new i = 19 - 1; i >= 0; i-- )
- {
- if( iNum >= gMaxCinovi[ i ] )
- return i;
- }
- return 0;
- }
- public Pocetak(id)
- {
- if(!is_user_alive(id) || !is_user_connected(id))
- return PLUGIN_CONTINUE;
- set_task(10.0,"Setuj", id)
- set_task(8.0,"pokazimeni",id)
- return PLUGIN_CONTINUE;
- }
- public pokazimeni(id)
- {
- if(!is_user_connected(id))
- return PLUGIN_HANDLED
- if(poeni[id] < 1)
- {
- bb_colored_print(id, "^x04[BB]^x01 Nazalost,nemas poena. Za svaki level koji predjes dobijas +1 poen!")
- return PLUGIN_HANDLED
- }
- new szItem[64]
- g_menu = menu_create("\rIzaberi item:", "menu_h");
- formatex(szItem,charsmax(szItem),"Dodaj 1 poen na energiju")
- menu_additem(g_menu, szItem)
- formatex(szItem,charsmax(szItem),"Dodaj 1 poen na armor")
- menu_additem(g_menu, szItem)
- formatex(szItem,charsmax(szItem),"Dodaj 1 poen na kondiciju")
- menu_additem(g_menu, szItem);
- formatex(szItem,charsmax(szItem),"Dodaj 10 poena na energiju")
- menu_additem(g_menu, szItem)
- formatex(szItem,charsmax(szItem),"Dodaj 10 poena na armor")
- menu_additem(g_menu, szItem)
- formatex(szItem,charsmax(szItem),"Dodaj 10 poena na kondiciju")
- menu_additem(g_menu, szItem);
- menu_setprop(g_menu, MPROP_EXITNAME, "Izadji");
- menu_display(id,g_menu);
- return PLUGIN_CONTINUE
- }
- public menu_h(id, menu, item)
- {
- new szItem[60]
- switch(item)
- {
- case MENU_EXIT:
- {
- menu_destroy(menu)
- }
- case 0:
- {
- energija[id]++
- poeni[id]--
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Dodao si 1 poen na^x03 Helte!")
- bb_colored_print(id, "%s",szItem)
- if(poeni[id] > 0)
- pokazimeni(id)
- }
- case 1:
- {
- armor[id]++
- poeni[id]--
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Dodao si 1 poen na^x03 Armor!")
- bb_colored_print(id, "%s",szItem)
- if(poeni[id] > 0)
- pokazimeni(id)
- }
- case 2:
- {
- kondicija[id]++
- poeni[id]--
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Dodao si 1 poen na^x03 Kondiciju!")
- bb_colored_print(id, "%s",szItem)
- bb_colored_print(id, "%s",szItem)
- if(poeni[id] > 0)
- pokazimeni(id)
- }
- case 3:
- {
- if(poeni[id] < 10)
- {
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Nemas dovoljno poena!")
- bb_colored_print(id, "%s",szItem)
- return PLUGIN_HANDLED
- }
- energija[id]+=10
- poeni[id]-=10
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Dodao si 10 poena na^x03 Helte!")
- bb_colored_print(id, "%s",szItem)
- if(poeni[id] > 0)
- pokazimeni(id)
- }
- case 4:
- {
- if(poeni[id] < 10)
- {
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Nemas dovoljno poena!")
- bb_colored_print(id, "%s",szItem)
- return PLUGIN_HANDLED
- }
- armor[id]+=10
- poeni[id]-=10
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Dodao si 10 poena na^x03 Armor!")
- bb_colored_print(id, "%s",szItem)
- if(poeni[id] > 0)
- pokazimeni(id)
- }
- case 5:
- {
- if(poeni[id] < 10)
- {
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Nemas dovoljno poena!")
- bb_colored_print(id, "%s",szItem)
- return PLUGIN_HANDLED
- }
- kondicija[id]+=10
- poeni[id]-=10
- formatex(szItem,charsmax(szItem), "^x04[BB]^x01 Dodao si 10 poena na^x03 Kondiciju!")
- bb_colored_print(id, "%s",szItem)
- if(poeni[id] > 0)
- pokazimeni(id)
- }
- }
- return PLUGIN_CONTINUE
- }
- public Setuj(id)
- {
- if(!is_user_alive(id))
- return PLUGIN_HANDLED
- new helti = pev(id, pev_health)
- new armor2 = pev(id, pev_armorvalue)
- hp_igraca[id] = helti+energija[id]*2
- armor_igraca[id] = armor2+armor[id]*2
- set_pev(id, pev_armorvalue, (armor_igraca[id]*1.0))
- set_pev(id, pev_health,(hp_igraca[id]*1.0));
- if(armor2 > 300)
- {
- set_pev(id, pev_armorvalue, 300.0)
- }
- return PLUGIN_CONTINUE
- }
- public Reset(id)
- {
- xp_igraca[id] = 1
- proverilvl(id)
- poeni[id] = 0
- energija[id] = 0
- armor[id] = 0
- kondicija[id] = 0
- bb_colored_print(id, "^x04[BB]^x01 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 > 100)
- {
- client_print(id, print_console, "Ne mozes postaviti igracu vise od 100 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.3, "pokazi_podatke", id+HUD);
- if(bb_is_user_zombie(id))
- {
- set_hudmessage(get_pcvar_num(svi_cvarovi[1]),get_pcvar_num(svi_cvarovi[2]),get_pcvar_num(svi_cvarovi[3]), get_pcvar_float(svi_cvarovi[4]), get_pcvar_float(svi_cvarovi[5]), 0, 1.0, 2.0, 0.1, 0.2);
- ShowSyncHudMsg(id, g_sync1, "[Level: %i]^n[Exp: %i / %i]^n[Cin: %s]",level_igraca[id], xp_igraca[id], xp_za_level(level_igraca[id]), CinoviZM[Getcin(level_igraca[id])])
- }
- else
- {
- set_hudmessage(get_pcvar_num(svi_cvarovi[1]),get_pcvar_num(svi_cvarovi[2]),get_pcvar_num(svi_cvarovi[3]), get_pcvar_float(svi_cvarovi[4]), get_pcvar_float(svi_cvarovi[5]), 0, 1.0, 2.0, 0.1, 0.2);
- ShowSyncHudMsg(id, g_sync1, "[Level: %i]^n[Exp: %i / %i]^n[Cin: %s]",level_igraca[id], xp_igraca[id], xp_za_level(level_igraca[id]), CinoviHM[Getcin(level_igraca[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(svi_cvarovi[0])
- if(level_igraca[attacker] < max_level || xp_igraca[attacker] <= 119990)
- {
- xp_igraca[attacker] += xp_za_ubistvo
- proverilvl(attacker)
- }
- else
- {
- xp_igraca[attacker] = 119990
- proverilvl(attacker)
- }
- if(level_igraca[attacker] > max_level || xp_igraca[attacker] > 119990)
- {
- 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]++
- poeni[id]++
- set_hudmessage(get_pcvar_num(svi_cvarovi[11]), get_pcvar_num(svi_cvarovi[12]), get_pcvar_num(svi_cvarovi[13]), get_pcvar_float(svi_cvarovi[14]), get_pcvar_float(svi_cvarovi[15]), 1, 0.5, 0.5, 1.0, 1.0, -1)
- ShowSyncHudMsg(id, g_sync, "%i level!", level_igraca[id]);
- }
- }
- else
- {
- xp_igraca[id] = 119990
- level_igraca[id] = 19999
- proverilvl(id)
- }
- return PLUGIN_CONTINUE
- }
- public ham_ResetMaxSpeed_player_post( id )
- {
- new speed = pev( id, pev_maxspeed )
- brzina_igraca[ id ] = speed * floatround( kondicija[ id ] * 1.3 );
- set_pev( id, pev_maxspeed, brzina_igraca[ id ] )
- }
- public xp_za_level(lvl)
- return lvl*3*2;
- public client_putinserver(id)
- {
- level_igraca[id] = 1
- energija[id] = 0
- armor[id] = 0
- kondicija[id] = 0
- Ucitaj(id)
- set_task(3.0, "pokazi_podatke", id+HUD);
- }
- 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#%i#%i#%i", xp_igraca[id], level_igraca[id], poeni[id], armor[id],energija[id], kondicija[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[7][32];
- parse(podaci, plrinfo[0], 31, plrinfo[1], 31, plrinfo[2], 31,plrinfo[3], 31,plrinfo[4], 31,plrinfo[5], 31);
- xp_igraca[id] = str_to_num(plrinfo[0]);
- level_igraca[id] = str_to_num(plrinfo[1])>0?str_to_num(plrinfo[1]):1;
- poeni[id] = str_to_num(plrinfo[2]);
- armor[id] = str_to_num(plrinfo[3]);
- energija[id] = str_to_num(plrinfo[4]);
- kondicija[id] = str_to_num(plrinfo[5])
- return PLUGIN_CONTINUE;
- }
- bb_colored_print(target, const message[], any:...)
- {
- static buffer[512], i, argscount
- argscount = numargs()
- if (!target)
- {
- static player
- for (player = 1; player <= g_maxplayers; player++)
- {
- if (!is_user_connected(player))
- continue;
- static changed[5], changedcount // [5] = max LANG_PLAYER occurencies
- changedcount = 0
- for (i = 2; i < argscount; i++)
- {
- if (getarg(i) == LANG_PLAYER)
- {
- setarg(i, 0, player)
- changed[changedcount] = i
- changedcount++
- }
- }
- vformat(buffer, charsmax(buffer), message, 3)
- // Send it
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, player)
- write_byte(player)
- write_string(buffer)
- message_end()
- for (i = 0; i < changedcount; i++)
- setarg(changed[i], 0, LANG_PLAYER)
- }
- }
- else
- {
- vformat(buffer, charsmax(buffer), message, 3)
- message_begin(MSG_ONE, get_user_msgid("SayText"), _, target)
- write_byte(target)
- write_string(buffer)
- message_end()
- }
- }
- public plugin_end()
- nvault_close(g_podaci)
Advertisement
Add Comment
Please, Sign In to add comment