Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <amxmisc>
- #include <engine>
- #include <fakemeta>
- #include <hamsandwich>
- #include <fun>
- #include <cstrike>
- #include <nvault>
- #define STANDARDNA_BRZINA 250.0
- #define ZADATAK_POSTAVI_brzinu 832
- #define IN_MOVING (IN_FORWARD|IN_BACK|IN_MOVELEFT|IN_MOVERIGHT|IN_JUMP|IN_ATTACK|IN_ATTACK2)
- #define IsPlayer(%1) (1 <= %1 <= g_iMaxPlayers)
- #define STATSX_SHELL_DESIGN2_STYLE "<meta charset=UTF-8><style>body{background:#283136;font-family:Arial}th{background:#323B40;color:#6ED5FF;padding:10px 2px;text-align:left}td{padding:4px 3px;border-bottom:1px solid #DCDCDC}table{background:#EDF1F2;font-size:10px;border:2px solid #505A62}h2,h3{color:#FFF}img{height:10px;background:#A7CC00;margin:0 3px}#r{height:10px;background:#CC3D00}#clr{background:none;color:#6ED5FF;font-size:20px;border:0}</style>"
- enum RankData
- {
- Data_SteamID[32],
- Data_Name[32],
- Data_Level
- };
- new g_SyncHudObj, g_SyncHudObj3;
- new g_msgScreenFade, g_msgSayText, g_msgStatusIcon;
- new cvar_xp_za_ubistvo, cvar_xp_za_level, cvar_max_level, cvar_gamename;
- new sprite_white, sprite_blast, sprite_smoke;
- new g_vault;
- new Ubrania_CT[4][]={"sas","gsg9","urban","gign"};
- new Ubrania_Terro[4][]={"arctic","leet","guerilla","terror"};
- /* novi modeli
- new Ubrania_CT[][]={"cod_gign","cod_gsg9"};
- new Ubrania_Terro[][]={"cod_guerilla","cod_leet"};
- */
- new const maxAmmo[31]={0, 200, 0, 180, 1, 64, 1, 120, 180, 1, 200, 200, 180, 180, 180, 180, 200, 200, 30, 180, 200, 64, 180, 180, 90, 2, 70, 90, 120, 0, 150};
- new const maxClip[31] = { -1, 13, -1, 10, 1, 7, 1, 30, 30, 1, 30, 20, 25, 30, 35, 25, 12, 20, 10, 30, 100, 8, 30, 30, 20, 2, 7, 30, 30, -1, 50 };
- new informacije_predmet_igraca[33][2];
- new const naziv_predmeta[][] = {"ML_PERK_NEMAPERK",
- "ML_PERK_NECUJNECIZME", //1
- "ML_PERK_DUPLIPANCIR", //2
- "ML_PERK_OJACANIPANCIR", //3
- "ML_PERK_VETERANNOZ", //4
- "ML_PERK_IZNENADINEPR", //5
- "ML_PERK_NEVIDLJIVOST", //6
- "ML_PERK_RESPAWN", //7
- "ML_PERK_NOZMARINCA", //8
- "ML_PERK_KAMUFLAZA", //9
- "ML_PERK_HEXPERT", //10
- "ML_PERK_DUPLISKOK", //11
- "ML_PERK_VOJNATAJNA", //12
- "ML_PERK_AWPMASTER", //13
- "ML_PERK_ADRENALIN", //14
- "ML_PERK_RAMBOVATAJNA", //15
- "ML_PERK_DEAGLEMANIJAK", //16
- "ML_PERK_SUPERPANCIR", //17
- "ML_PERK_EXTRAHP", //18
- "ML_PERK_KOMPLETPOMOC", //19
- "ML_PERK_NORECOIL", //20
- "ML_PERK_TITANMETCI", //21
- "ML_PERK_PUKMETCI", //22
- "ML_PERK_OGRNORECOIL", //23
- "ML_PERK_HPBOOSTER", //24
- "ML_PERK_50HP", //25
- "ML_PERK_NANOKLOP", //26
- "ML_PERK_BULLETPROOF", //27
- "ML_PERK_JETPACK", //28
- "ML_PERK_GRAVITACIJA", //29
- "ML_PERK_SPEED", //30
- "ML_PERK_GOLDENAMMO", //31
- "ML_PERK_HEADSHOT"
- };
- new const opis_predmet[][] = {"ML_OPIS_NEMAPERK",
- "ML_OPIS_NECUJNECIZME",
- "ML_OPIS_DUPLIPANCIR",
- "ML_OPIS_OJACANIPANCIR",
- "ML_OPIS_VETERANNOZ",
- "ML_OPIS_IZNENADINEPR",
- "ML_OPIS_NEVIDLJIVOST",
- "ML_OPIS_RESPAWN",
- "ML_OPIS_NOZMARINCA",
- "ML_OPIS_KAMUFLAZA",
- "ML_OPIS_HEXPERT",
- "ML_OPIS_DUPLISKOK",
- "ML_OPIS_VOJNATAJNA",
- "ML_OPIS_AWPMASTER",
- "ML_OPIS_ADRENALIN",
- "ML_OPIS_RAMBOVATAJNA",
- "ML_OPIS_DEAGLEMANIJAK",
- "ML_OPIS_SUPERPANCIR",
- "ML_OPIS_EXTRAHP",
- "ML_OPIS_KOMPLETPOMOC",
- "ML_OPIS_NORECOIL",
- "ML_OPIS_TITANMETCI",
- "ML_OPIS_PUKMETCI",
- "ML_OPIS_OGRNORECOIL",
- "ML_OPIS_HPBOOSTER",
- "ML_OPIS_50HP",
- "ML_OPIS_NANOKLOP",
- "ML_OPIS_BULLETPROOF",
- "ML_OPIS_JETPACK",
- "ML_OPIS_GRAVITACIJA",
- "ML_OPIS_SPEED",
- "ML_OPIS_GOLDENAMMO",
- "ML_OPIS_HEADSHOT"
- };
- new szShopMenu[][] = {
- "ML_SHOP_ASPIRIN",
- "ML_SHOP_MORFIJUM",
- "ML_SHOP_REDBULL",
- "ML_SHOP_ISKUSTVO",
- "ML_SHOP_EISKUSTVO",
- "ML_SHOP_SIZBOR",
- "ML_SHOP_MINE",
- "ML_SHOP_DINAMIT"
- }
- new szShopSufix[][] = {
- "ML_SHOP_SUFIX1",
- "ML_SHOP_SUFIX2",
- "ML_SHOP_SUFIX3",
- "ML_SHOP_SUFIX4",
- "ML_SHOP_SUFIX5",
- "ML_SHOP_SUFIX6",
- "ML_SHOP_SUFIX7",
- "ML_SHOP_SUFIX8"
- }
- new szShopCene[] = {
- 3000,
- 5000,
- 7500,
- 5000,
- 15000,
- 3000,
- 10000,
- 10000
- }
- new iskustvo_za_pare, iskustvo_za_mnogopara;
- new klasa_igraca[33];
- new level_igraca[33] = 1;
- new iskustvo_igraca[33];
- new nova_klasa_igraca[33];
- new poeni_igraca[33];
- new energija_igraca[33];
- new inteligencija_igraca[33];
- new snaga_igraca[33];
- new Float:smanjene_povrede_igraca[33];
- new kondicija_igraca[33];
- new maximalna_energija_igraca[33];
- new Float:brzina_igraca[33];
- new frakcija_igraca[33];
- enum { NONE = 0, Snajperista, Marinac, Pro_Strelac, Mitraljezac, Doktor, Vatrena_Podrska, Miner, Demolitions, Rusher, Rambo, Partizan, Spijun, Bombarder, Gunner, Pesadinac, Pobunjenik, Assassin, SWAT, Pistolj, Nezaustavljivi, Pukovnik, Loyal};
- new const energija_klasa[] = { 0, 120, 140, 110, 120, 110, 100, 100, 110, 100, 130, 100, 70, 140, 125, 100, 125, 10, 100, 100, 300, 100, 200};
- new const Float:brzina_klasa[] = {0.0, 1.2, 1.35, 0.8, 0.8, 1.0, 1.0, 1.0, 1.0, 1.3 , 1.15, 1.1, 1.2, 0.9, 0.9, 1.5, 1.2, 2.0, 0.8, 1.2, 1.5, 1.0, 1.2};
- new const oklop_klase[] = { 0, 100, 100, 100, 150, 100, 0, 100, 100, 0, 150, 0, 0, 150, 50, 200, 25, 100, 0, 100, 500, 100, 100};
- new const naziv_klase[][] = { "ML_KLASA_NEMAKLASU",
- "ML_KLASA_SNAJPERISTA",
- "ML_KLASA_MARINAC",
- "ML_KLASA_STRELAC",
- "ML_KLASA_MITRALJEZAC",
- "ML_KLASA_DOKTOR",
- "ML_KLASA_PODRSKA",
- "ML_KLASA_MINER",
- "ML_KLASA_DEMOLISH",
- "ML_KLASA_RUSHER",
- "ML_KLASA_RAMBO",
- "ML_KLASA_PARTIZAN",
- "ML_KLASA_SPIJUN",
- "ML_KLASA_BOMBARDER",
- "ML_KLASA_GUNNER",
- "ML_KLASA_MAJOR",
- "ML_KLASA_POBUNJENJIK",
- "ML_KLASA_ASSASSIN",
- "ML_KLASA_SWAT",
- "ML_KLASA_PREDATOR",
- "ML_KLASA_KOMANDOS",
- "ML_KLASA_PUKOVNIK",
- "ML_KLASA_WARRIOR"
- };
- new const opis_klase[][] = { "ML_OPIS_NEMAKLASU",
- "ML_OPIS_SNAJPERISTA",
- "ML_OPIS_MARINAC",
- "ML_OPIS_STRELAC",
- "ML_OPIS_MITRALJEZAC",
- "ML_OPIS_DOKTOR",
- "ML_OPIS_PODRSKA",
- "ML_OPIS_MINER",
- "ML_OPIS_DEMOLISH",
- "ML_OPIS_RUSHER",
- "ML_OPIS_RAMBO",
- "ML_OPIS_PARTIZAN",
- "ML_OPIS_SPIJUN",
- "ML_OPIS_BOMBARDER",
- "ML_OPIS_GUNNER",
- "ML_OPIS_MAJOR",
- "ML_OPIS_POBUNJENJIK",
- "ML_OPIS_ASSASSIN",
- "ML_OPIS_SWAT",
- "ML_OPIS_PREDATOR",
- "ML_OPIS_KOMANDOS",
- "ML_OPIS_PUKOVNIK",
- "ML_OPIS_WARRIOR"
- };
- new frakcije[][]={
- "Nema",
- "Army",
- "Elite (Premium)"
- }
- enum { NONE = 0,army,elita}
- new const ako_pripada[]={
- NONE,
- army, //1
- army, //2
- army, //3
- army, //4
- army, //5
- army, //6
- army, //7
- army, //8
- army, //9
- elita, //10
- army, //11
- army, //12
- army, //13
- army, //14
- army, //15
- army, //16
- elita, //17
- army,
- army, //16
- elita, //17
- army,
- army
- };
- new broj_medkit_igraca[33];
- new broj_min_igraca[33];
- new broj_dinamita_igraca[33];
- new broj_skokova_igraca[33];
- new bool:freezetime = true;
- new bool:g_BackAttack[33];
- new g_dynamit_active[33];
- new g_szModel[33][32];
- new page[33][2];
- new g_iMaxPlayers, g_hud_thinker;
- new g_iHealth[33];
- new bool:g_isConnected[33], g_isAlive[33];
- new g_iAdminChatFlag = ADMIN_ALL;
- new g_happy_hour, happy_hour_on;
- new g_RankFile[64];
- new Array:g_SteamID;
- new Trie:g_Name, Trie:g_PlayerLevel;
- new g_Top15[2048];
- new g_Data[33][RankData];
- new bool:g_FirstSpawn[33];
- public plugin_init()
- {
- register_plugin("Call of Duty: MW Mod", "1.0", "QTM_Peyote & OvidiuS");
- register_cvar("CallOfDuty", "1.0", FCVAR_SERVER|FCVAR_SPONLY);
- g_vault = nvault_open("CodMod");
- g_happy_hour = register_cvar("cod_vip_hour", "off")
- static hours[6], hour1s[3], hour2s[3], hour1, hour2, h, m, s
- get_pcvar_string(g_happy_hour, hours, charsmax(hours))
- if(equal(hours, "off"))
- {
- happy_hour_on = false;
- register_dictionary("codmod.txt")
- }
- else
- {
- strtok(hours, hour1s, charsmax(hour1s), hour2s, charsmax(hour2s), '-')
- hour1 = str_to_num(hour1s)
- hour2 = str_to_num(hour2s)
- time(h, m, s)
- if(hour1 <= h <= hour2) happy_hour_on = true
- else happy_hour_on = false
- if(!happy_hour_on)
- register_dictionary("codmod.txt")
- else
- register_dictionary("codmodhp.txt")
- }
- register_think("MedKit","MedKitThink");
- RegisterHam(Ham_Spawn, "player", "Pocetak", 1);
- RegisterHam(Ham_TakeDamage, "player", "TakeDamage");
- RegisterHam(Ham_Killed, "player", "Player_Killed")
- RegisterHam(Ham_ObjectCaps , "player", "Forward_ObjectCaps");
- RegisterHam(Ham_Player_Jump, "player", "Player_Jump")
- RegisterHam(Ham_TraceAttack, "player", "HamTraceAttack");
- RegisterHam(Ham_Touch, "armoury_entity", "DodirOruzija");
- RegisterHam(Ham_Touch, "weapon_shield", "DodirOruzija");
- RegisterHam(Ham_Touch, "weaponbox", "DodirOruzija");
- register_forward(FM_CmdStart, "CmdStart");
- register_forward(FM_SetClientKeyValue, "SetClientKeyValue");
- register_logevent("PocetakRunde", 2, "1=Round_Start");
- register_event("HLTV", "novaRunda", "a", "1=0", "2=0");
- register_event("CurWeapon","CurWeapon","be", "1=1");
- register_event("Health", "Event_Health", "b")
- register_touch("Mine", "player", "DodirMine");
- get_datadir(g_RankFile, charsmax(g_RankFile));
- add(g_RankFile, charsmax(g_RankFile), "/codrank.ini");
- g_SteamID = ArrayCreate(32, 1);
- g_Name = TrieCreate();
- g_PlayerLevel = TrieCreate();
- cvar_xp_za_ubistvo = register_cvar("cod_killxp", "70");
- cvar_xp_za_level = register_cvar("cod_levelratio", "2");
- cvar_max_level = register_cvar("cod_maxlevel", "10000");
- iskustvo_za_pare = 1000;
- iskustvo_za_mnogopara = 5000;
- register_clcmd("say /rank", "SayRank");
- register_clcmd("say /top15", "SayTop15");
- register_clcmd("say /klasa", "IzaberiKlasu");
- register_clcmd("say /opis", "OpisKlase");
- register_clcmd("say /predmet", "OpisPredmeta");
- register_clcmd("say /item", "OpisPredmeta");
- register_clcmd("say /perks", "OpisPredmeta1");
- register_clcmd("say /drop", "IzbaciPredmet");
- register_clcmd("say /izbaci", "IzbaciPredmet");
- register_clcmd("say /reset", "KomandaResetujPoene");
- register_clcmd("say /shop", "ShopMenu");
- register_clcmd("say /pomoc", "Pomoc");
- register_clcmd("say /help", "Pomoc");
- register_clcmd("say /lang", "IzaberiJezik")
- register_clcmd("fullupdate", "BlokirajKomande");
- register_clcmd( "say", "CmdSay" );
- register_clcmd( "say_team", "CmdSayTeam" );
- g_msgSayText = get_user_msgid( "SayText" );
- g_msgStatusIcon = get_user_msgid("StatusIcon");
- g_msgScreenFade = get_user_msgid("ScreenFade");
- g_iMaxPlayers = get_maxplayers();
- register_message(g_msgStatusIcon, "msgStatusIcon");
- register_menucmd(register_menuid("Klasa:"), 1023, "OpisKlase");
- register_menucmd(register_menuid("Predmet:"), 1023, "OpisPredmeta1");
- new szCommand[ 32 ], iFlags;
- for( new i = 0; get_concmd( i, szCommand, charsmax( szCommand ), iFlags, "", 0, 0, -1 ); i++ )
- {
- if( equal( szCommand, "amx_chat" ) )
- {
- g_iAdminChatFlag = iFlags;
- break;
- }
- }
- LoadRanks();
- ArraySort(g_SteamID, "SortRanks");
- WriteTop15();
- }
- public plugin_cfg()
- {
- server_cmd("sv_maxspeed 9999");
- CreateHudEntity();
- }
- public plugin_precache()
- {
- sprite_white = precache_model("sprites/white.spr") ;
- sprite_blast = precache_model("sprites/dexplo.spr");
- sprite_smoke = precache_model("sprites/steam1.spr");
- precache_sound("QTM_CodMod/select.wav");
- precache_sound("QTM_CodMod/start.wav");
- precache_sound("QTM_CodMod/start2.wav");
- precache_sound("QTM_CodMod/levelup.wav");
- precache_sound("weapons/mine_charge.wav")
- precache_sound("weapons/mine_deploy.wav")
- precache_sound("weapons/rocketfire1.wav")
- precache_model("models/v_dynamite.mdl");
- precache_model("models/p_dynamite.mdl");
- precache_model("models/w_dynamite.mdl");
- precache_model("models/w_medkit.mdl");
- precache_model("models/rpgrocket.mdl");
- precache_model("models/mine.mdl");
- /*
- new szTmp[64];
- for(new i = 0; i<sizeof Ubrania_CT; i++)
- {
- formatex(szTmp, charsmax(szTmp), "models/player/%s/%s.mdl", Ubrania_CT[i], Ubrania_CT[i])
- precache_model(szTmp);
- formatex(szTmp, charsmax(szTmp), "models/player/%s/%sT.mdl", Ubrania_CT[i], Ubrania_CT[i])
- precache_model(szTmp);
- }
- for(new i = 0; i<sizeof Ubrania_Terro; i++)
- {
- formatex(szTmp, charsmax(szTmp), "models/player/%s/%s.mdl", Ubrania_Terro[i], Ubrania_Terro[i])
- precache_model(szTmp);
- formatex(szTmp, charsmax(szTmp), "models/player/%s/%sT.mdl", Ubrania_Terro[i], Ubrania_Terro[i])
- precache_model(szTmp);
- }
- */
- g_SyncHudObj = CreateHudSyncObj();
- g_SyncHudObj3 = CreateHudSyncObj();
- }
- public msgStatusIcon(msgid, msgdest, id)
- {
- static szIcon[8];
- get_msg_arg_string(2, szIcon, charsmax(szIcon));
- if(equal(szIcon, "buyzone") && get_msg_arg_int(1))
- {
- set_pdata_int(id, 235, get_pdata_int(id, 235) & ~(1<<0));
- return PLUGIN_HANDLED;
- }
- return PLUGIN_CONTINUE;
- }
- LoadRanks()
- {
- new f = fopen(g_RankFile, "r");
- if (!f)
- return;
- new Data[96], SteamID[32], Name[32], iLevel[16];
- while (!feof(f))
- {
- fgets(f, Data, 96);
- if (!strlen(Data))
- continue;
- parse(Data, SteamID, charsmax(SteamID), Name, charsmax(Name), iLevel, charsmax(iLevel));
- ArrayPushString(g_SteamID, SteamID);
- TrieSetString(g_Name, SteamID, Name);
- TrieSetCell(g_PlayerLevel, SteamID, str_to_num(iLevel));
- }
- fclose(f);
- }
- SaveRanks()
- {
- new f = fopen(g_RankFile, "w+");
- if (!f)
- return;
- for (new Position, Size = ArraySize(g_SteamID), SteamID[32], Name[32], iLevel; Position < Size; Position++)
- {
- ArrayGetString(g_SteamID, Position, SteamID, charsmax(SteamID));
- TrieGetString(g_Name, SteamID, Name, charsmax(Name));
- TrieGetCell(g_PlayerLevel, SteamID, iLevel);
- fprintf(f, "%s ^"%s^" %d^n", SteamID, Name, iLevel);
- }
- fclose(f);
- }
- public CreateHudEntity()
- {
- static failtimes;
- g_hud_thinker = create_entity("info_target");
- if(!is_valid_ent(g_hud_thinker) )
- {
- ++failtimes;
- log_amx("[ERROR] Failed to create hud entity (%i/10)", failtimes);
- if( failtimes < 10 )
- set_task(1.0, "CreateHudEntity");
- else
- log_amx("[ERROR] Could not create hud entity!");
- return;
- }
- entity_set_string(g_hud_thinker, EV_SZ_classname, "hud_entity");
- entity_set_float(g_hud_thinker, EV_FL_nextthink, get_gametime() + 1.0);
- register_think("hud_entity", "FwdThink");
- }
- public CmdStart(id, uc_handle)
- {
- if(!g_isAlive[id])
- return FMRES_IGNORED;
- new iButton = get_uc(uc_handle, UC_Buttons);
- new iFlags = pev(id, pev_flags);
- if(iButton & IN_ATTACK)
- {
- new Float:punchangle[3];
- if(informacije_predmet_igraca[id][0] == 20)
- set_pev(id, pev_punchangle, punchangle);
- if(informacije_predmet_igraca[id][0] == 23)
- {
- set_pev(id, pev_punchangle, punchangle);
- for(new i=0; i<3;i++)
- punchangle[i]*=0.9;
- set_pev(id, pev_punchangle, punchangle);
- }
- }
- if(((iButton & IN_ATTACK) || (iButton & IN_ATTACK2)) && informacije_predmet_igraca[id][0] == 5)
- {
- static Float:fViewAngles[3];
- get_uc(uc_handle, UC_ViewAngles, fViewAngles);
- static iEnt, Float:fOrigin[3];
- pev(id, pev_origin, fOrigin);
- iEnt = fm_trace_target(id, fOrigin, 100);
- if(!IsPlayer(iEnt))
- return FMRES_IGNORED;
- static Float:fTViewAngles[3];
- pev(iEnt, pev_v_angle, fTViewAngles);
- static Float:fMinAngle, Float:fMaxAngle;
- fMinAngle = fViewAngles[1] - 80;
- fMaxAngle = fViewAngles[1] + 80;
- if(fMinAngle <= fTViewAngles[1] <= fMaxAngle)
- g_BackAttack[id] = true;
- else
- g_BackAttack[id] = false;
- }
- if(informacije_predmet_igraca[id][0] == 28 && iButton & IN_JUMP && iButton & IN_DUCK && iFlags & FL_ONGROUND && get_gametime() > informacije_predmet_igraca[id][1]+4.0)
- {
- informacije_predmet_igraca[id][1] = floatround(get_gametime());
- new Float:velocity[3];
- VelocityByAim(id, 700, velocity);
- velocity[2] = random_float(265.0,285.0);
- set_pev(id, pev_velocity, velocity);
- UTIL_SetBarTime(id, 4, 0)
- }
- return FMRES_IGNORED;
- }
- public client_PreThink(id)
- {
- if(!g_isAlive[id])
- return PLUGIN_CONTINUE;
- new iButton = pev(id, pev_button)
- if(iButton & IN_MOVING && klasa_igraca[id] == Nezaustavljivi)
- set_user_rendering(id, kRenderFxNone, 0,0,0, kRenderNormal, 255)
- else if(klasa_igraca[id] == Nezaustavljivi)
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10);
- if(klasa_igraca[id] == Partizan || klasa_igraca[id] == Pistolj || informacije_predmet_igraca[id][0] == 6)
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 70);
- else if(klasa_igraca[id] != Partizan || klasa_igraca[id] != Pistolj || informacije_predmet_igraca[id][0] != 6)
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255);
- if(klasa_igraca[id] == Assassin && get_user_weapon(id) == CSW_KNIFE)
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 10);
- else if(klasa_igraca[id] == Assassin && get_user_weapon(id) != CSW_KNIFE)
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255);
- return PLUGIN_HANDLED
- }
- public Player_Jump(id)
- {
- if(!g_isAlive[id])
- return HAM_IGNORED
- if(informacije_predmet_igraca[id][0] == 7)
- {
- static iOldButtons ; iOldButtons = entity_get_int(id, EV_INT_oldbuttons)
- if( iOldButtons & IN_JUMP )
- {
- entity_set_int(id, EV_INT_oldbuttons, iOldButtons & ~IN_JUMP)
- return HAM_HANDLED
- }
- }
- if(informacije_predmet_igraca[id][0] == 11 || klasa_igraca[id] == Rambo)
- {
- new fFlags = pev(id, pev_flags)
- if( fFlags & FL_WATERJUMP || pev(id, pev_waterlevel) >= 2 || !(get_pdata_int(id, 246, 5) & IN_JUMP))
- return HAM_IGNORED
- else if(fFlags & FL_ONGROUND)
- {
- broj_skokova_igraca[id] = 0;
- if(informacije_predmet_igraca[id][0] == 11 || klasa_igraca[id] == Rambo)
- broj_skokova_igraca[id]++;
- }
- if(broj_skokova_igraca[id] > 0 )
- {
- broj_skokova_igraca[id]--;
- new Float:fVelocity[3]
- pev(id, pev_velocity, fVelocity)
- fVelocity[2] = random_float(265.0,285.0);
- set_pev(id, pev_velocity, fVelocity)
- }
- }
- return HAM_IGNORED
- }
- public HamTraceAttack(Vic, Att, Float:dmg, Float:dir[3], traceresult, dmgbits)
- {
- if(!IsPlayer(Att) || !IsPlayer(Vic) || Vic == Att)
- return HAM_IGNORED;
- new hitzone = get_tr2(traceresult, TR_iHitgroup);
- if((informacije_predmet_igraca[Vic][0] == 32 && hitzone == HIT_HEAD))
- {
- set_tr2(traceresult, TR_iHitgroup, HIT_CHEST)
- return HAM_HANDLED
- }
- return HAM_IGNORED;
- }
- public ShopMenu(id)
- {
- new szTmp[64], szItem[30];
- formatex(szTmp,charsmax(szTmp),"\yBlack Market :")
- new pMenu = menu_create(szTmp,"ShopMenu_Handle")
- for(new i = 0;i<sizeof szShopMenu;i++)
- {
- formatex(szTmp,charsmax(szTmp),"%L \r%L \y[%d$]", id, szShopMenu[i], id, szShopSufix[i], szShopCene[i]);
- menu_additem(pMenu,szTmp);
- }
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUBACK")
- menu_setprop(pMenu, MPROP_BACKNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUNEXT")
- menu_setprop(pMenu, MPROP_NEXTNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUEXIT")
- menu_setprop(pMenu, MPROP_EXITNAME, szItem);
- menu_display(id,pMenu)
- return PLUGIN_HANDLED;
- }
- public ShopMenu_Handle(id, menu, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- if(szShopCene[item] > cs_get_user_money(id))
- {
- ChatColor(id, "%L", id, "ML_SHOPNEMAPARA");
- menu_destroy(menu);
- ShopMenu(id)
- return PLUGIN_HANDLED;
- }
- client_cmd(id, "spk QTM_CodMod/select");
- cs_set_user_money(id, cs_get_user_money(id) - szShopCene[item]);
- ChatColor(id, "%L", id, "ML_SHOPNEKUPIOSI", id, szShopMenu[item]);
- new hp = get_user_health(id);
- switch(item)
- {
- case 0:
- {
- new ammount=50;
- new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
- set_user_health(id, nova_energija);
- }
- case 1:
- {
- new ammount=100;
- new nova_energija = (hp+ammount<maximalna_energija_igraca[id])? hp+ammount: maximalna_energija_igraca[id];
- set_user_health(id, nova_energija);
- }
- case 2:
- {
- set_user_gravity(id,get_user_gravity(id) - 0.3);
- set_user_maxspeed(id,get_user_maxspeed(id) + 10.0);
- }
- case 3:
- {
- iskustvo_igraca[id] += iskustvo_za_pare;
- ProveriNivo(id);
- }
- case 4:
- {
- iskustvo_igraca[id] += iskustvo_za_mnogopara;
- ProveriNivo(id);
- }
- case 5:
- {
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- case 6:
- {
- broj_min_igraca[id] +=2;
- }
- case 7:
- {
- broj_dinamita_igraca[id] +=2;
- }
- }
- menu_destroy(menu);
- return PLUGIN_HANDLED;
- }
- public Pocetak(id)
- {
- if(!is_user_alive(id) || !cs_get_user_team(id))
- return PLUGIN_HANDLED;
- g_isAlive[id] = true
- DefaultModel(id)
- if(nova_klasa_igraca[id])
- {
- broj_medkit_igraca[id] = 0;
- broj_min_igraca[id] = 0;
- broj_dinamita_igraca[id] = 0;
- klasa_igraca[id] = nova_klasa_igraca[id];
- nova_klasa_igraca[id] = 0;
- strip_user_weapons(id);
- give_item(id, "weapon_knife");
- UcitajPodatke(id, klasa_igraca[id]);
- }
- if(!klasa_igraca[id] && !g_FirstSpawn[id])
- {
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(g_FirstSpawn[id])
- {
- static language[32];
- get_user_info(id, "lang", language, charsmax(language));
- if(equal(language, "sr"))
- return PLUGIN_CONTINUE
- else
- IzaberiJezik(id)
- g_FirstSpawn[id] = false;
- }
- switch(klasa_igraca[id])
- {
- case Snajperista: // Snajperista
- {
- give_item(id, "weapon_usp");
- }
- case Marinac: // Marinac
- {
- give_item(id, "weapon_p228");
- }
- case Pro_Strelac: // Spec OPS
- {
- give_item(id, "weapon_deagle");
- }
- case Mitraljezac: // Mitraljezac
- {
- give_item(id, "weapon_hegrenade");
- give_item(id, "weapon_flashbang");
- give_item(id, "weapon_smokegrenade");
- }
- case Doktor: // Doktor
- {
- broj_medkit_igraca[id] = 2;
- }
- case Vatrena_Podrska: // Zelena Beretka
- {
- }
- case Miner: // Miner
- {
- broj_min_igraca[id] = 3;
- }
- case Demolitions: // Komandos
- {
- give_item(id, "weapon_hegrenade");
- give_item(id, "weapon_flashbang");
- give_item(id, "weapon_smokegrenade");
- broj_dinamita_igraca[id] = 1;
- }
- case Rusher: // Civilna Vojska
- {
- give_item(id, "weapon_m3");
- }
- case Rambo: // Terorista
- {
- }
- case Partizan: //SWAT
- {
- give_item(id, "weapon_flashbang");
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
- }
- case Spijun: //Dvostruki Agent
- {
- give_item(id, "weapon_deagle");
- PromeniModel(id, 0);
- }
- case Bombarder: // Artiljerija
- {
- ////nst_wpn_give_weapon1(id, "rpg");
- give_item(id, "weapon_p90");
- give_item(id, "weapon_deagle");
- give_item(id, "weapon_hegrenade");
- }
- case Gunner:
- {
- give_item(id, "weapon_g3sg1");
- //rpg[id] = 1 ;
- }
- case Pesadinac:
- {
- give_item(id, "weapon_xm1014");
- give_item(id, "weapon_p228");
- }
- case Pobunjenik:
- {
- give_item(id, "weapon_sg552");
- give_item(id, "weapon_hegrenade");
- broj_min_igraca[id] = 1 ;
- }
- case Assassin:
- {
- give_item(id, "weapon_knife");
- give_item(id, "weapon_usp");
- }
- case SWAT:
- {
- give_item(id, "weapon_m4a1");
- }
- case Pistolj:
- {
- give_item(id, "weapon_deagle");
- give_item(id, "weapon_hegrenade");
- //rpg[id] = 2;
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
- }
- case Nezaustavljivi:
- {
- give_item(id, "weapon_usp");
- give_item(id, "weapon_ump45");
- give_item(id, "weapon_flashbang");
- //rpg[id] = 3;
- set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 70);
- }
- case Pukovnik:
- {
- give_item(id, "weapon_famas");
- give_item(id, "weapon_fiveseven");
- //rpg[id] = 2 ;
- }
- case Loyal:
- {
- give_item(id, "weapon_fiveseven");
- give_item(id, "weapon_ump45");
- }
- }
- if(poeni_igraca[id] > 0 )
- DodelaPoena(id);
- if(informacije_predmet_igraca[id][0] == 10 || informacije_predmet_igraca[id][0] == 9)
- give_item(id, "weapon_hegrenade");
- if(informacije_predmet_igraca[id][0] == 9)
- PromeniModel(id, 0);
- if(informacije_predmet_igraca[id][0] == 1)
- set_user_footsteps(id, 1);
- else
- set_user_footsteps(id, 0);
- if(informacije_predmet_igraca[id][0] == 13)
- give_item(id, "weapon_awp");
- if(informacije_predmet_igraca[id][0] == 16)
- give_item(id, "weapon_deagle");
- if(informacije_predmet_igraca[id][0] == 19 || informacije_predmet_igraca[id][0] == 24)
- informacije_predmet_igraca[id][1] = 1;
- if(informacije_predmet_igraca[id][0] == 27)
- informacije_predmet_igraca[id][1] = 3;
- if(informacije_predmet_igraca[id][0] == 29)
- set_user_gravity(id,get_user_gravity(id) - 0.4);
- new weapons[32];
- new weaponsnum;
- get_user_weapons(id, weapons, weaponsnum);
- for(new i=0; i<weaponsnum; i++)
- if(g_isAlive[id])
- if(maxAmmo[weapons[i]] > 0)
- cs_set_user_bpammo(id, weapons[i], maxAmmo[weapons[i]]);
- PostaviAtribute(id)
- return PLUGIN_CONTINUE;
- }
- public PostaviAtribute(id)
- {
- smanjene_povrede_igraca[id] = (0.7*(1.0-floatpower(1.1, -0.112311341*float(snaga_igraca[id]))));
- maximalna_energija_igraca[id] = energija_klasa[klasa_igraca[id]]+energija_igraca[id]*2;
- brzina_igraca[id] = STANDARDNA_BRZINA*brzina_klasa[klasa_igraca[id]]+floatround(kondicija_igraca[id]*1.3);
- if(informacije_predmet_igraca[id][0] == 18)
- {
- maximalna_energija_igraca[id] += 100;
- brzina_igraca[id] -= 0.4;
- }
- if(informacije_predmet_igraca[id][0] == 25)
- {
- maximalna_energija_igraca[id] += 50;
- brzina_igraca[id] -= 0.3;
- }
- if(informacije_predmet_igraca[id][0] == 30)
- {
- brzina_igraca[id] += 1.2;
- }
- set_user_armor(id, oklop_klase[klasa_igraca[id]]);
- if(informacije_predmet_igraca[id][0] == 17)
- set_user_armor(id, 500);
- set_user_health(id, maximalna_energija_igraca[id]);
- }
- public PocetakRunde()
- {
- freezetime = false;
- for(new id=1;id<=g_iMaxPlayers;id++)
- {
- if(!g_isAlive[id])
- continue;
- set_task(0.1, "PostaviBrzinu", id+ZADATAK_POSTAVI_brzinu);
- switch(get_user_team(id))
- {
- case 1: client_cmd(id, "spk QTM_CodMod/start2");
- case 2: client_cmd(id, "spk QTM_CodMod/start");
- }
- }
- }
- public novaRunda()
- {
- freezetime = true;
- new ent = find_ent_by_class(-1, "dynamite");
- while(ent > 0)
- {
- remove_entity(ent);
- ent = find_ent_by_class(ent, "dynamite");
- }
- new iEnt = find_ent_by_class(-1, "Mine");
- while(iEnt > 0)
- {
- remove_entity(iEnt);
- iEnt = find_ent_by_class(iEnt, "Mine");
- }
- static hours[6], hour1s[3], hour2s[3], hour1, hour2, h, m, s
- get_pcvar_string(g_happy_hour, hours, charsmax(hours))
- if(equal(hours, "off")) {happy_hour_on = false; return; }
- strtok(hours, hour1s, charsmax(hour1s), hour2s, charsmax(hour2s), '-')
- hour1 = str_to_num(hour1s)
- hour2 = str_to_num(hour2s)
- time(h, m, s)
- if(hour1 <= h <= hour2) happy_hour_on = true
- else happy_hour_on = false
- }
- public TakeDamage(this, idinflictor, idattacker, Float:damage, damagebits)
- {
- if(!g_isAlive[this] || !g_isConnected[this] || !g_isConnected[idattacker] || get_user_team(this) != get_user_team(idattacker) || !klasa_igraca[idattacker])
- return HAM_IGNORED;
- new health = get_user_health(this);
- new weapon = get_user_weapon(idattacker);
- if(health < 2)
- return HAM_IGNORED;
- if(informacije_predmet_igraca[this][0] == 27 && informacije_predmet_igraca[this][1]>0)
- {
- informacije_predmet_igraca[this][1]--;
- return HAM_SUPERCEDE;
- }
- if(snaga_igraca[this]>0)
- damage -= smanjene_povrede_igraca[this]*damage;
- if(informacije_predmet_igraca[this][0] == 2 || informacije_predmet_igraca[this][0] == 3)
- damage-=(float(informacije_predmet_igraca[this][1])<damage)? float(informacije_predmet_igraca[this][1]): damage;
- if(informacije_predmet_igraca[idattacker][0] == 5 && g_BackAttack[idattacker])
- damage*=2.0;
- if(informacije_predmet_igraca[idattacker][0] == 10)
- damage+=informacije_predmet_igraca[idattacker][1];
- if(informacije_predmet_igraca[this][0] == 12)
- damage-=(5.0<damage)? 5.0: damage;
- if(weapon == CSW_AWP && informacije_predmet_igraca[idattacker][0] == 13)
- damage=float(health);
- if(informacije_predmet_igraca[idattacker][0] == 21)
- damage+=10;
- if(informacije_predmet_igraca[idattacker][0] == 22)
- damage+=20;
- if(informacije_predmet_igraca[idattacker][0] == 16)
- damage*=2;
- if(informacije_predmet_igraca[idattacker][0] == 30)
- damage+=25;
- if(idinflictor != idattacker && entity_get_int(idinflictor, EV_INT_movetype) != 5)
- {
- if((informacije_predmet_igraca[idattacker][0] == 9 && random_num(1, informacije_predmet_igraca[idattacker][1]) == 1) || informacije_predmet_igraca[idattacker][0] == 10)
- damage = float(health);
- }
- if(weapon == CSW_KNIFE)
- {
- if(klasa_igraca[this] == SWAT || klasa_igraca[this] == Pukovnik)
- return HAM_SUPERCEDE;
- if(informacije_predmet_igraca[this][0] == 4)
- damage=damage*1.4+inteligencija_igraca[idattacker];
- if(informacije_predmet_igraca[idattacker][0] == 8 || (klasa_igraca[idattacker] == Snajperista && random_num(1,2) == 1) || klasa_igraca[idattacker] == Marinac || klasa_igraca[idattacker] == Assassin && !(get_user_button(idattacker) & IN_ATTACK))
- damage = float(health);
- }
- if(informacije_predmet_igraca[this][0] == 26 && random_num(1, informacije_predmet_igraca[this][1]) == 1)
- {
- SetHamParamEntity(3, this);
- SetHamParamEntity(1, idattacker);
- }
- SetHamParamFloat(4, damage);
- if(informacije_predmet_igraca[idattacker][0] == 12 && random_num(1, informacije_predmet_igraca[this][1]) == 1)
- Display_Fade(this,1<<14,1<<14 ,1<<16,255,155,50,230);
- ProveriNivo(idattacker);
- return HAM_IGNORED;
- }
- public Player_Killed(victim, attacker)
- {
- if(!g_isAlive[attacker] || !g_isConnected[attacker])
- return PLUGIN_CONTINUE;
- g_isAlive[victim] = false
- new weapon = get_user_weapon(attacker);
- new energija = get_user_health(attacker);
- if(cs_get_user_team(victim) != cs_get_user_team(attacker) && klasa_igraca[attacker])
- {
- new weapons[32];
- new weaponsnum;
- get_user_weapons(attacker, weapons, weaponsnum);
- for(new i=0; i<weaponsnum; i++)
- if(maxAmmo[weapons[i]] > 0)
- cs_set_user_bpammo(attacker, weapons[i], maxAmmo[weapons[i]]);
- new iskustvo_za_ubistvo = get_pcvar_num(cvar_xp_za_ubistvo);
- new novo_iskustvo = get_pcvar_num(cvar_xp_za_ubistvo);
- if((klasa_igraca[attacker] == Rambo || klasa_igraca[attacker] == Loyal) && (klasa_igraca[victim] != Rambo || klasa_igraca[victim] != Loyal))
- novo_iskustvo += iskustvo_za_ubistvo*2;
- if(level_igraca[victim] > level_igraca[attacker])
- novo_iskustvo += (level_igraca[victim]-level_igraca[attacker])*(iskustvo_za_ubistvo/10);
- if(klasa_igraca[attacker] == Rambo || informacije_predmet_igraca[attacker][0] == 15 && maxClip[weapon] != -1)
- {
- new nova_energija = (energija+20<maximalna_energija_igraca[attacker])? energija+20: maximalna_energija_igraca[attacker];
- set_user_clip(attacker, maxClip[weapon]);
- set_user_health(attacker, nova_energija);
- }
- if(!informacije_predmet_igraca[attacker][0])
- DajPredmet(attacker, random_num(1, sizeof naziv_predmeta-1));
- if(informacije_predmet_igraca[attacker][0] == 14)
- {
- new nova_energija = (energija+50<maximalna_energija_igraca[attacker])? energija+50: maximalna_energija_igraca[attacker];
- set_user_health(attacker, nova_energija);
- }
- iskustvo_igraca[attacker] += novo_iskustvo;
- }
- ProveriNivo(attacker);
- return PLUGIN_CONTINUE;
- }
- public client_putinserver(id)
- {
- if(!is_user_bot(id))
- g_isConnected[id] = true
- else
- g_isConnected[id] = false
- DeleteSkills(id);
- ObrisiZadatke(id);
- Obrisipredmet(id);
- g_FirstSpawn[id] = false;
- get_user_authid(id, g_Data[id][Data_SteamID], 31);
- if (!str_to_num(g_Data[id][Data_SteamID][10]))
- return;
- get_user_name(id, g_Data[id][Data_Name], 31);
- if (!TrieKeyExists(g_Name, g_Data[id][Data_SteamID]))
- AddRank(id);
- else
- LoadData(id);
- UpdateRank(id, true);
- }
- AddRank(iPlayer)
- {
- g_Data[iPlayer][Data_Level] = 1;
- ArrayPushString(g_SteamID, g_Data[iPlayer][Data_SteamID]);
- TrieSetString(g_Name, g_Data[iPlayer][Data_SteamID], g_Data[iPlayer][Data_Name]);
- }
- LoadData(iPlayer)
- TrieGetCell(g_PlayerLevel, g_Data[iPlayer][Data_SteamID], g_Data[iPlayer][Data_Level]);
- UpdateRank(iPlayer, bool:Name)
- {
- if (Name)
- TrieSetString(g_Name, g_Data[iPlayer][Data_SteamID], g_Data[iPlayer][Data_Name]);
- TrieSetCell(g_PlayerLevel, g_Data[iPlayer][Data_SteamID], g_Data[iPlayer][Data_Level]);
- return PLUGIN_CONTINUE;
- }
- public SayRank(iPlayer)
- {
- new Position = GetPosition(iPlayer);
- if (!g_isConnected[iPlayer] || !Position)
- {
- ChatColor(iPlayer, "%L", iPlayer, "ML_CODNOTRANKED");
- return;
- }
- ChatColor(iPlayer, "%L", iPlayer, "ML_CODRANK", Position, ArraySize(g_SteamID), g_Data[iPlayer][Data_Level]);
- }
- public SayTop15(iPlayer)
- {
- WriteTop15();
- ChatColor(iPlayer, "^4Loading...")
- set_task(1.0, "ShowMotd", iPlayer)
- }
- public ShowMotd(iPlayer)
- show_motd(iPlayer, g_Top15, "Top 15");
- public SortRanks(Array:SteamID, Position1, Position2)
- {
- static SteamID1[32];
- ArrayGetString(SteamID, Position1, SteamID1, 31);
- static SteamID2[32];
- ArrayGetString(SteamID, Position2, SteamID2, 31);
- static iLevel1;
- TrieGetCell(g_PlayerLevel, SteamID1, iLevel1);
- static iLevel2;
- TrieGetCell(g_PlayerLevel, SteamID2, iLevel2);
- if (iLevel1 < iLevel2)
- return 1;
- else if (iLevel1 > iLevel2)
- return -1;
- return 0;
- }
- public client_disconnect(id)
- {
- g_isConnected[id] = false
- g_isAlive[id] = false
- SacuvajPodatke(id);
- DeleteSkills(id);
- ObrisiZadatke(id);
- Obrisipredmet(id);
- }
- public DeleteSkills(id)
- {
- klasa_igraca[id] = 0;
- level_igraca[id] = 0;
- iskustvo_igraca[id] = 0;
- poeni_igraca[id] = 0;
- energija_igraca[id] = 0;
- inteligencija_igraca[id] = 0;
- snaga_igraca[id] = 0;
- kondicija_igraca[id] = 0;
- maximalna_energija_igraca[id] = 0;
- brzina_igraca[id] = 0.0;
- g_dynamit_active[id] = 0;
- }
- public ObrisiZadatke(id)
- remove_task(id+ZADATAK_POSTAVI_brzinu);
- public IzaberiJezik(id)
- {
- new szItem[30]
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUIZBAERIJEZIK")
- new menu = menu_create(szItem, "IzaberiJezik_Handle");
- menu_additem(menu, "English");
- menu_additem(menu, "Srpski");
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUEXIT")
- menu_setprop(menu, MPROP_EXITNAME, szItem);
- menu_display(id, menu);
- client_cmd(id, "spk QTM_CodMod/select");
- }
- public IzaberiJezik_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item++ == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- switch(item)
- {
- case 1: set_user_info(id, "lang", "en")
- case 2: set_user_info(id, "lang", "sr")
- }
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- public OpisKlase(id)
- {
- new szItem[30], klasa1[50]
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUIZABERIKLASU")
- new menu = menu_create(szItem, "OpisKlase_Handle");
- for(new i=1; i <sizeof naziv_klase; i++)
- {
- formatex(klasa1, 49, "%L", id, naziv_klase[i]);
- menu_additem(menu, klasa1);
- }
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUBACK")
- menu_setprop(menu, MPROP_BACKNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUNEXT")
- menu_setprop(menu, MPROP_NEXTNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUEXIT")
- menu_setprop(menu, MPROP_EXITNAME, szItem);
- menu_display(id, menu, page[id][0]);
- client_cmd(id, "spk QTM_CodMod/select");
- }
- public OpisKlase_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item++ == MENU_EXIT)
- {
- page[id][0] = 0
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- menu_destroy(menu)
- page[id][0] = item / 7
- new opis[512];
- formatex(opis, charsmax(opis), "\yKlasa: \w%L^n%L", id, naziv_klase[item], id, opis_klase[item]);
- show_menu(id, 1023, opis);
- return PLUGIN_CONTINUE;
- }
- public OpisPredmeta1(id)
- {
- new szItem[30], predmet[50];
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUIZABERIPREDMET")
- new menu = menu_create(szItem, "OpisPredmeta1_Handle");
- for(new i=1; i <sizeof naziv_predmeta; i++)
- {
- formatex(predmet, 49, "%L", id, naziv_predmeta[i]);
- menu_additem(menu, predmet);
- }
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUBACK")
- menu_setprop(menu, MPROP_BACKNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUNEXT")
- menu_setprop(menu, MPROP_NEXTNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUEXIT")
- menu_setprop(menu, MPROP_EXITNAME, szItem);
- menu_display(id, menu, page[id][1]);
- client_cmd(id, "spk QTM_CodMod/select");
- }
- public OpisPredmeta1_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item++ == MENU_EXIT)
- {
- page[id][1] = 0
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- menu_destroy(menu)
- page[id][1] = item / 7
- new predmet[512];
- formatex(predmet, charsmax(predmet), "\yPredmet: \w%L^n%L", id, naziv_predmeta[item], id, opis_predmet[item]);
- show_menu(id, 1023, predmet);
- return PLUGIN_CONTINUE;
- }
- public IzaberiKlasu(id)
- {
- new menu = menu_create("Izaberi frakciju:", "IzaberiFrakciju_Handle");
- for(new i = 1;i<sizeof(frakcije);i++)
- {
- menu_additem(menu, frakcije[i]);
- }
- menu_display(id, menu);
- }
- public IzaberiFrakciju_Handle(id, menu2, item)
- {
- if(item == MENU_EXIT)
- {
- menu_destroy(menu2);
- return PLUGIN_CONTINUE;
- }
- item++;
- frakcija_igraca[id] = item;
- new szItem[30]
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUIZABERIKLASU")
- new menu = menu_create(szItem, "IzaberiKlasu_Handle");
- new klasa[50];
- for(new i=1; i<sizeof naziv_klase; i++)
- {
- if(ako_pripada[i] == item)
- {
- UcitajPodatke(id, i);
- formatex(klasa, 49, "%L \yLevel: %i", id, naziv_klase[i], level_igraca[id]);
- menu_additem(menu, klasa);
- }
- }
- UcitajPodatke(id, klasa_igraca[id]);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUBACK")
- menu_setprop(menu, MPROP_BACKNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUNEXT")
- menu_setprop(menu, MPROP_NEXTNAME, szItem);
- formatex(szItem, charsmax(szItem), "%L", id, "ML_MENUEXIT")
- menu_setprop(menu, MPROP_EXITNAME, szItem);
- menu_display(id, menu);
- client_cmd(id, "spk QTM_CodMod/select");
- return PLUGIN_CONTINUE;
- }
- public IzaberiKlasu_Handle(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- item++;
- new ako = 0;
- for(new i=1; i<sizeof naziv_klase; i++)
- {
- if(ako_pripada[i] == frakcija_igraca[id]){
- ako++;
- }
- if(ako == item){
- item = i;
- break;
- }
- }
- if(item == klasa_igraca[id])
- return PLUGIN_CONTINUE;
- if(item == Assassin && !(get_user_flags(id) & ADMIN_LEVEL_A))
- {
- ChatColor(id, "%L", id, "ML_PREMIUM_KLASA");
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(item == Pukovnik && !(get_user_flags(id) & ADMIN_LEVEL_B))
- {
- ChatColor(id, "%L", id, "ML_PREMIUM_KLASA");
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(item == Rambo && !(get_user_flags(id) & ADMIN_LEVEL_C))
- {
- ChatColor(id, "%L", id, "ML_PREMIUM_KLASA");
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(item == Nezaustavljivi && !(get_user_flags(id) & ADMIN_LEVEL_D))
- {
- ChatColor(id, "%L", id, "ML_PREMIUM_KLASA");
- IzaberiKlasu(id);
- return PLUGIN_CONTINUE;
- }
- if(klasa_igraca[id])
- {
- nova_klasa_igraca[id] = item;
- ChatColor(id, "%L", id, "ML_KLASA_SLEDECARUNDA");
- }
- else
- {
- klasa_igraca[id] = item;
- UcitajPodatke(id, klasa_igraca[id]);
- Pocetak(id);
- }
- return PLUGIN_CONTINUE;
- }
- public DodelaPoena(id)
- {
- new inteligencija[65], inteligencija10[65];
- new energija[60], energija10[60];
- new snaga[60], snaga10[60];
- new kondicija[60], kondicija10[60];
- new naslov[25];
- formatex(inteligencija, charsmax(inteligencija), "%L", id, "ML_INTELIGENCIJA", inteligencija_igraca[id]);
- formatex(energija, charsmax(energija), "%L", id, "ML_ENERGIJA", energija_igraca[id]);
- formatex(snaga, charsmax(snaga), "%L", id, "ML_SNAGA", snaga_igraca[id]);
- formatex(kondicija, charsmax(kondicija), "%L", id, "ML_KONDICIJA", kondicija_igraca[id]);
- formatex(inteligencija10, charsmax(inteligencija10), "%L", id, "ML_INTELIGENCIJA10");
- formatex(energija10, charsmax(energija10), "%L", id, "ML_ENERGIJA10");
- formatex(snaga10, charsmax(snaga10), "%L", id, "ML_SNAGA10");
- formatex(kondicija10, charsmax(kondicija10), "%L", id, "ML_KONDICIJA10");
- formatex(naslov, charsmax(naslov), "%L", id, "ML_DODELAPOENA", poeni_igraca[id]);
- new menu = menu_create(naslov, "DodelaPoena_Handler");
- menu_additem(menu, inteligencija);
- menu_additem(menu, energija);
- menu_additem(menu, snaga);
- menu_additem(menu, kondicija);
- menu_additem(menu, inteligencija10);
- menu_additem(menu, energija10);
- menu_additem(menu, snaga10);
- menu_additem(menu, kondicija10);
- menu_display(id, menu, page[id][1]);
- }
- public DodelaPoena_Handler(id, menu, item)
- {
- client_cmd(id, "spk QTM_CodMod/select");
- if(item == MENU_EXIT)
- {
- page[id][1] = 0
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- if(poeni_igraca[id] < 1)
- return PLUGIN_CONTINUE;
- page[id][1] = item / 7
- new level_limit = get_pcvar_num(cvar_max_level);
- switch(item)
- {
- case 0:
- {
- if(inteligencija_igraca[id]<level_limit)
- {
- inteligencija_igraca[id]++;
- poeni_igraca[id]--;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 1:
- {
- if(energija_igraca[id]<level_limit)
- {
- energija_igraca[id]++;
- poeni_igraca[id]--;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 2:
- {
- if(snaga_igraca[id]<level_limit)
- {
- snaga_igraca[id]++;
- poeni_igraca[id]--;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 3:
- {
- if(kondicija_igraca[id]<level_limit)
- {
- kondicija_igraca[id]++;
- poeni_igraca[id]--;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 4:
- {
- if(poeni_igraca[id] < 10)
- {
- ChatColor(id, "%L", id, "ML_POENI_NEDOVOLJNO");
- }
- else if(inteligencija_igraca[id]<level_limit)
- {
- inteligencija_igraca[id]+=10;
- poeni_igraca[id]-=10
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 5:
- {
- if(poeni_igraca[id] < 10)
- {
- ChatColor(id, "%L", id, "ML_POENI_NEDOVOLJNO");
- }
- else if(energija_igraca[id]<level_limit)
- {
- energija_igraca[id]+=10;
- poeni_igraca[id]-=10;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 6:
- {
- if(poeni_igraca[id] < 10)
- {
- ChatColor(id, "%L", id, "ML_POENI_NEDOVOLJNO");
- }
- else if(snaga_igraca[id]<level_limit)
- {
- snaga_igraca[id]+=10;
- poeni_igraca[id]-=10;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- case 7:
- {
- if(poeni_igraca[id] < 10)
- {
- ChatColor(id, "%L", id, "ML_POENI_NEDOVOLJNO");
- }
- else if(kondicija_igraca[id]<level_limit)
- {
- kondicija_igraca[id]+=10;
- poeni_igraca[id]-=10;
- }
- else
- ChatColor(id, "%L", id, "ML_POENI_MAX");
- }
- }
- if(poeni_igraca[id] > 0)
- DodelaPoena(id);
- return PLUGIN_CONTINUE;
- }
- public KomandaResetujPoene(id)
- {
- ChatColor(id, "%L", id, "ML_POENI_RESETOVANI");
- client_cmd(id, "spk QTM_CodMod/select");
- ResetujPoene(id)
- }
- public ResetujPoene(id)
- {
- poeni_igraca[id] = level_igraca[id]*2-2;
- inteligencija_igraca[id] = 0;
- energija_igraca[id] = 0;
- kondicija_igraca[id] = 0;
- snaga_igraca[id] = 0;
- if(poeni_igraca[id])
- DodelaPoena(id);
- }
- public KreirajMedKit(id)
- {
- if (!broj_medkit_igraca[id])
- {
- client_print(id, print_center, "Imate samo 2 paketa za prvu pomoc u jednoj rundi!");
- return PLUGIN_CONTINUE;
- }
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristite paket za prvu pomoc, morate povecati inteligenciju");
- return PLUGIN_CONTINUE;
- }
- broj_medkit_igraca[id]--;
- new Float:origin[3];
- entity_get_vector(id, EV_VEC_origin, origin);
- new ent = create_entity("info_target");
- entity_set_string(ent, EV_SZ_classname, "MedKit");
- entity_set_edict(ent, EV_ENT_owner, id);
- entity_set_int(ent, EV_INT_solid, SOLID_NOT);
- entity_set_vector(ent, EV_VEC_origin, origin);
- entity_set_float(ent, EV_FL_ltime, get_gametime() + 7.1 );
- entity_set_model(ent, "models/w_medkit.mdl");
- set_rendering ( ent, kRenderFxGlowShell, 255,0,0, kRenderFxNone, 255 ) ;
- drop_to_floor(ent);
- entity_set_float(ent, EV_FL_nextthink, get_gametime() + 0.1);
- return PLUGIN_CONTINUE;
- }
- public MedKitThink(ent)
- {
- if(!is_valid_ent(ent))
- return PLUGIN_HANDLED;
- new id = entity_get_edict(ent, EV_ENT_owner);
- new totem_dist = 300;
- new totem_heal = 5+floatround(inteligencija_igraca[id]*0.5);
- if (entity_get_edict(ent, EV_ENT_euser2) == 1)
- {
- new Float:forigin[3], origin[3];
- entity_get_vector(ent, EV_VEC_origin, forigin);
- FVecIVec(forigin,origin);
- new entlist[33];
- new numfound = find_sphere_class(0,"player",totem_dist+0.0,entlist, 32,forigin);
- for (new i=0; i < numfound; i++)
- {
- new pid = entlist[i];
- if (get_user_team(pid) != get_user_team(id))
- continue;
- new energija = get_user_health(pid);
- new nova_energija = (energija+totem_heal<maximalna_energija_igraca[pid])?energija+totem_heal:maximalna_energija_igraca[pid];
- if (g_isAlive[pid])
- {
- set_user_health(pid, nova_energija);
- Display_Fade(pid, 1<<10 ,1<<10,0x0000,0,255,0,65)
- }
- }
- entity_set_edict(ent, EV_ENT_euser2, 0);
- entity_set_float(ent, EV_FL_nextthink, get_gametime() + 1.5);
- return PLUGIN_CONTINUE;
- }
- if (entity_get_float(ent, EV_FL_ltime) < get_gametime() || !g_isAlive[id])
- {
- remove_entity(ent);
- return PLUGIN_CONTINUE;
- }
- if (entity_get_float(ent, EV_FL_ltime)-2.0 < get_gametime())
- set_rendering ( ent, kRenderFxNone, 255,255,255, kRenderTransAlpha, 100 ) ;
- new Float:forigin[3], origin[3];
- entity_get_vector(ent, EV_VEC_origin, forigin);
- FVecIVec(forigin,origin);
- //Find people near and give them health
- message_begin( MSG_BROADCAST, SVC_TEMPENTITY, origin );
- write_byte( TE_BEAMCYLINDER );
- write_coord( origin[0] );
- write_coord( origin[1] );
- write_coord( origin[2] );
- write_coord( origin[0] );
- write_coord( origin[1] + totem_dist );
- write_coord( origin[2] + totem_dist );
- write_short( sprite_white );
- write_byte( 0 ); // startframe
- write_byte( 0 ); // framerate
- write_byte( 10 ); // life
- write_byte( 10 ); // width
- write_byte( 255 ); // noise
- write_byte( 255 ); // r, g, b
- write_byte( 100 );// r, g, b
- write_byte( 100 ); // r, g, b
- write_byte( 128 ); // brightness
- write_byte( 5 ); // speed
- message_end();
- entity_set_edict(ent, EV_ENT_euser2 ,1);
- entity_set_float(ent, EV_FL_nextthink, get_gametime() + 0.5);
- return PLUGIN_CONTINUE;
- }
- public KreirajDinamit(id)
- {
- if(!broj_dinamita_igraca[id])
- {
- client_print(id, print_center, "Vec ste iskoristili sav dinamit!");
- return PLUGIN_HANDLED;
- }
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristite dinamit, morate povecati inteligenciju!");
- return PLUGIN_HANDLED;
- }
- engclient_cmd(id, "weapon_knife")
- g_dynamit_active[id] = true
- ChangeModelsSatchel(id)
- UTIL_PlayWeaponAnimation(id, 1)
- set_task(0.5 ,"CreateBomb", id, _, _, _)
- set_task(6.5 ,"detonate_satchel", id, _, _, _)
- broj_dinamita_igraca[id]--;
- return PLUGIN_CONTINUE
- }
- public CreateBomb(id)
- {
- UTIL_PlayWeaponAnimation(id, 2)
- set_task(1.5 ,"return_weapon", id, _, _, _)
- }
- public return_weapon(id)
- {
- new iBomb = create_entity("info_target")
- if(iBomb == 0)
- return PLUGIN_HANDLED
- entity_set_string(iBomb, EV_SZ_classname, "dynamite")
- entity_set_model(iBomb, "models/w_dynamite.mdl")
- entity_set_size(iBomb, Float:{-2.0,-2.0,-1.0}, Float:{2.0,2.0,1.0})
- entity_set_int(iBomb, EV_INT_movetype, MOVETYPE_TOSS)
- entity_set_int(iBomb, EV_INT_solid, SOLID_TRIGGER)
- entity_set_float(iBomb, EV_FL_gravity, 0.9)
- engfunc(EngFunc_DropToFloor, iBomb)
- new Float:iOrigin[3]
- entity_get_vector(id, EV_VEC_origin, iOrigin)
- new Float:angles[3]
- angles[0] += 180
- angles[1] += 90
- angles[2] += 90
- entity_set_vector(iBomb, EV_VEC_angles, angles)
- entity_set_origin(iBomb, iOrigin)
- entity_set_int(iBomb, EV_ENT_owner, id)
- emit_sound(id, CHAN_WEAPON, "weapons/c4_plant.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM)
- entity_set_float(iBomb, EV_FL_nextthink, halflife_time() + 0.01)
- g_dynamit_active[id] = false
- engclient_cmd(id, "weapon_knife")
- set_pev(id, pev_viewmodel2, "models/v_knife.mdl")
- set_pev(id, pev_weaponmodel2, "models/p_knife.mdl")
- return PLUGIN_HANDLED
- }
- public detonate_satchel(id)
- {
- new ent = find_ent_by_class(id, "dynamite")
- if (ent)
- {
- CreateExplosion(ent, id)
- remove_entity(ent)
- }
- return PLUGIN_CONTINUE
- }
- public CreateExplosion(ent, id)
- {
- if (!pev_valid(ent))
- return PLUGIN_CONTINUE
- new Float:origin[3];pev(ent, pev_origin, origin)
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte (TE_EXPLOSION)
- engfunc(EngFunc_WriteCoord, origin[0])
- engfunc(EngFunc_WriteCoord, origin[1])
- engfunc(EngFunc_WriteCoord, origin[2] + 30.0)
- write_short(sprite_blast)
- write_byte(30)
- write_byte(15)
- write_byte(0)
- message_end()
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte (TE_SMOKE)
- engfunc(EngFunc_WriteCoord, origin[0])
- engfunc(EngFunc_WriteCoord, origin[1])
- engfunc(EngFunc_WriteCoord, origin[2] + 50.0)
- write_short(sprite_smoke)
- write_byte(100)
- write_byte(15)
- message_end()
- new entlist[33];
- new numfound = find_sphere_class(ent, "player", 300.0 , entlist, 32);
- for (new i=0; i < numfound; i++)
- {
- new pid = entlist[i];
- if (!g_isAlive[pid] || get_user_team(id) == get_user_team(pid))
- continue;
- ExecuteHam(Ham_TakeDamage, pid, 0, id, 90.0+float(inteligencija_igraca[id]) , 1);
- }
- return PLUGIN_CONTINUE;
- }
- public PostaviMine(id)
- {
- if (!broj_min_igraca[id])
- {
- client_print(id, print_center, "Vec ste iskoristili sve mine!");
- return PLUGIN_HANDLED;
- }
- if(inteligencija_igraca[id] < 1)
- {
- client_print(id, print_center, "Da koristite mine, morate povecati inteligenciju!");
- return PLUGIN_HANDLED;
- }
- broj_min_igraca[id]--;
- new Float:origin[3];
- entity_get_vector(id, EV_VEC_origin, origin);
- new ent = create_entity("info_target");
- entity_set_string(ent ,EV_SZ_classname, "Mine");
- entity_set_edict(ent ,EV_ENT_owner, id);
- entity_set_int(ent, EV_INT_movetype, MOVETYPE_TOSS);
- entity_set_origin(ent, origin);
- entity_set_int(ent, EV_INT_solid, SOLID_BBOX);
- entity_set_model(ent, "models/mine.mdl");
- entity_set_size(ent,Float:{-16.0,-16.0,0.0},Float:{16.0,16.0,2.0});
- drop_to_floor(ent);
- entity_set_float(ent,EV_FL_nextthink, get_gametime() + 0.01) ;
- set_rendering(ent,kRenderFxNone, 0,0,0, kRenderTransTexture,50) ;
- emit_sound( ent, CHAN_VOICE, "weapons/mine_deploy.wav", VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
- emit_sound( ent, CHAN_BODY , "weapons/mine_charge.wav", 0.2, ATTN_NORM, 0, PITCH_NORM );
- return PLUGIN_CONTINUE;
- }
- public DodirMine(ent, id)
- {
- if(!is_valid_ent(ent))
- return PLUGIN_HANDLED;
- new attacker = entity_get_edict(ent, EV_ENT_owner);
- if (cs_get_user_team(attacker) != cs_get_user_team(id))
- {
- new Float:fOrigin[3];
- entity_get_vector( ent, EV_VEC_origin, fOrigin);
- new iOrigin[3];
- for(new i=0;i<3;i++)
- iOrigin[i] = floatround(fOrigin[i]);
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
- write_byte(TE_EXPLOSION);
- write_coord(iOrigin[0]);
- write_coord(iOrigin[1]);
- write_coord(iOrigin[2]);
- write_short(sprite_blast);
- write_byte(32); // scale
- write_byte(20); // framerate
- write_byte(0);// flags
- message_end();
- new entlist[33];
- new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
- for (new i=0; i < numfound; i++)
- {
- new pid = entlist[i];
- if (!g_isAlive[pid] || get_user_team(attacker) == get_user_team(pid) || klasa_igraca[id] == Mitraljezac)
- continue;
- ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencija_igraca[attacker]) , 1);
- }
- remove_entity(ent);
- }
- return PLUGIN_CONTINUE;
- }
- public CurWeapon(id)
- {
- if(freezetime || !klasa_igraca[id])
- return PLUGIN_HANDLED;
- if(g_dynamit_active[id])
- {
- engclient_cmd( id, "weapon_knife" );
- ChangeModelsSatchel(id)
- }
- PostaviBrzinu(id);
- return PLUGIN_CONTINUE;
- }
- public Forward_ObjectCaps(id)
- {
- if(!g_isAlive[id])
- return HAM_IGNORED;
- KoristiPredmet(id);
- return HAM_IGNORED;
- }
- public KoristiPredmet(id)
- {
- if((informacije_predmet_igraca[id][0] == 19 || informacije_predmet_igraca[id][0] == 24)&& informacije_predmet_igraca[id][1]>0)
- {
- set_user_health(id, maximalna_energija_igraca[id]);
- informacije_predmet_igraca[id][1]--;
- Display_Fade(id, 1<<10 ,1<<10,0x0000,0,255,0,65)
- }
- if(broj_medkit_igraca[id]>0)
- KreirajMedKit(id);
- if(broj_min_igraca[id]>0 || broj_dinamita_igraca[id]>0 )
- MenuExplode(id)
- return PLUGIN_HANDLED;
- }
- public MenuExplode(id)
- {
- new menu,newmenu,menupage
- player_menu_info(id,menu,newmenu,menupage);
- if(menu > 0 || newmenu != -1)
- return PLUGIN_CONTINUE;
- new szTmp[64];
- new pMenuExplode = menu_create("Explode Menu", "explodeMenu_Handle")
- formatex(szTmp, charsmax(szTmp), "%L \w[\y%d\w]", id, "ML_POSTAVI_MINU", broj_min_igraca[id])
- menu_additem(pMenuExplode, szTmp);
- formatex(szTmp, charsmax(szTmp), "%L \w[\y%d\w]", id, "ML_POSTAVI_DINAMIT", broj_dinamita_igraca[id])
- menu_additem(pMenuExplode, szTmp);
- formatex(szTmp, charsmax(szTmp), "%L", id, "ML_AKTIVIRAJ_MINE")
- menu_additem(pMenuExplode, szTmp);
- menu_setprop(pMenuExplode, MPROP_NUMBER_COLOR,"\r")
- menu_display(id, pMenuExplode);
- return PLUGIN_CONTINUE;
- }
- public explodeMenu_Handle(id, menu, item)
- {
- if(item == MENU_EXIT || !g_isAlive[id])
- {
- menu_destroy(menu);
- return PLUGIN_CONTINUE;
- }
- switch(item)
- {
- case 0:
- {
- PostaviMine(id);
- }
- case 1:
- {
- KreirajDinamit(id);
- }
- case 2:
- {
- UTIL_PlayWeaponAnimation(id, 3)
- new iEnt = -1, iOwner;
- while((iEnt = find_ent_by_class(iEnt,"Mine")))
- {
- iOwner = pev(iEnt, pev_owner);
- if(iOwner == id)
- {
- DodirMine2(iEnt);
- }
- }
- }
- }
- menu_destroy(menu);
- MenuExplode(id)
- return PLUGIN_CONTINUE;
- }
- public DodirMine2(ent)
- {
- if(!is_valid_ent(ent))
- return PLUGIN_HANDLED;
- new attacker = entity_get_edict(ent, EV_ENT_owner);
- new Float:fOrigin[3];
- entity_get_vector( ent, EV_VEC_origin, fOrigin);
- new iOrigin[3];
- for(new i=0;i<3;i++)
- iOrigin[i] = floatround(fOrigin[i]);
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY, iOrigin);
- write_byte(TE_EXPLOSION);
- write_coord(iOrigin[0]);
- write_coord(iOrigin[1]);
- write_coord(iOrigin[2]);
- write_short(sprite_blast);
- write_byte(32); // scale
- write_byte(20); // framerate
- write_byte(0);// flags
- message_end();
- new entlist[33];
- new numfound = find_sphere_class(ent,"player", 90.0 ,entlist, 32);
- for (new i=0; i < numfound; i++)
- {
- new pid = entlist[i];
- if (!g_isAlive[pid] || get_user_team(attacker) == get_user_team(pid) || klasa_igraca[pid] == Mitraljezac)
- continue;
- ExecuteHam(Ham_TakeDamage, pid, ent, attacker, 90.0+float(inteligencija_igraca[attacker]) , 1);
- }
- remove_entity(ent);
- return PLUGIN_CONTINUE;
- }
- public SacuvajPodatke(id)
- {
- if(!klasa_igraca[id])
- return PLUGIN_CONTINUE;
- new vaultkey[128],vaultdata[256], ID_igraca[64];
- formatex(vaultdata, charsmax(vaultdata),"#%i#%i#%i#%i#%i#%i", iskustvo_igraca[id], level_igraca[id], inteligencija_igraca[id], energija_igraca[id], snaga_igraca[id], kondicija_igraca[id]);
- get_user_authid(id, ID_igraca, charsmax(ID_igraca))
- formatex(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa_igraca[id]);
- nvault_set(g_vault,vaultkey,vaultdata);
- return PLUGIN_CONTINUE;
- }
- public UcitajPodatke(id, klasa)
- {
- new vaultkey[128],vaultdata[256], ID_igraca[64];
- get_user_authid(id, ID_igraca, charsmax(ID_igraca))
- formatex(vaultkey, charsmax(vaultkey),"%s-%i-cod", ID_igraca, klasa);
- nvault_get(g_vault,vaultkey,vaultdata,255);
- replace_all(vaultdata, 255, "#", " ");
- new playerdata[6][32];
- parse(vaultdata, playerdata[0], 31, playerdata[1], 31, playerdata[2], 31, playerdata[3], 31, playerdata[4], 31, playerdata[5], 31);
- iskustvo_igraca[id] = str_to_num(playerdata[0]);
- level_igraca[id] = str_to_num(playerdata[1])>0?str_to_num(playerdata[1]):1;
- inteligencija_igraca[id] = str_to_num(playerdata[2]);
- energija_igraca[id] = str_to_num(playerdata[3]);
- snaga_igraca[id] = str_to_num(playerdata[4]);
- kondicija_igraca[id] = str_to_num(playerdata[5]);
- poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
- return PLUGIN_CONTINUE;
- }
- public IzbaciPredmet(id)
- {
- if(informacije_predmet_igraca[id][0])
- {
- ChatColor(id, "%L %L.", id, "ML_BACIO", id, naziv_predmeta[informacije_predmet_igraca[id][0]]);
- Obrisipredmet(id);
- }
- else
- ChatColor(id, "%L", id, "ML_NEMA_PREDMET");
- }
- public Obrisipredmet(id)
- {
- informacije_predmet_igraca[id][0] = 0;
- informacije_predmet_igraca[id][1] = 0;
- if(g_isAlive[id])
- {
- set_user_footsteps(id, 0);
- set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, 255);
- PromeniModel(id, 1);
- }
- }
- public DajPredmet(id, predmet)
- {
- Obrisipredmet(id);
- informacije_predmet_igraca[id][0] = predmet;
- ChatColor(id, "%L %L.", id, "ML_DOBIO_PREDMET", id, naziv_predmeta[informacije_predmet_igraca[id][0]]);
- switch(predmet)
- {
- case 1:
- {
- set_user_footsteps(id, 1);
- }
- case 2:
- {
- informacije_predmet_igraca[id][1] = random_num(3,6);
- }
- case 3:
- {
- informacije_predmet_igraca[id][1] = random_num(6, 11);
- }
- case 5:
- {
- informacije_predmet_igraca[id][1] = random_num(6, 9);
- }
- case 6:
- {
- if(klasa_igraca[id] == Partizan || klasa_igraca[id] == Assassin )
- {
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- else
- {
- informacije_predmet_igraca[id][1] = random_num(100, 150);
- set_rendering(id,kRenderFxGlowShell,0,0,0 ,kRenderTransAlpha, informacije_predmet_igraca[id][1]);
- }
- }
- case 7:
- {
- if(klasa_igraca[id] == Rambo)
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- case 8:
- {
- if(klasa_igraca[id] == Marinac || klasa_igraca[id] == Assassin)
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- case 9:
- {
- informacije_predmet_igraca[id][1] = random_num(1, 3);
- PromeniModel(id, 0);
- give_item(id, "weapon_hegrenade");
- }
- case 10:
- {
- informacije_predmet_igraca[id][1] = random_num(4, 8);
- give_item(id, "weapon_hegrenade");
- }
- case 12:
- {
- informacije_predmet_igraca[id][1] = random_num(1, 4);
- }
- case 13:
- {
- give_item(id, "weapon_awp");
- }
- case 15:
- {
- if(klasa_igraca[id] == Rambo)
- DajPredmet(id, random_num(1, sizeof naziv_predmeta-1));
- }
- case 16:
- {
- if(informacije_predmet_igraca[id][1] == 16)
- give_item(id, "weapon_deagle")
- }
- case 19:
- {
- informacije_predmet_igraca[id][1] = 1;
- }
- case 24:
- {
- informacije_predmet_igraca[id][1] = 1;
- }
- case 26:
- {
- informacije_predmet_igraca[id][1] = random_num(3, 6);
- }
- case 27:
- {
- informacije_predmet_igraca[id][1] = 3;
- }
- }
- }
- public OpisPredmeta(id)
- {
- new opis_predmeta[128];
- new slucajne_vrednosti[3];
- num_to_str(informacije_predmet_igraca[id][1], slucajne_vrednosti, 2);
- formatex(opis_predmeta, 127, "%L", id, opis_predmet[informacije_predmet_igraca[id][0]]);
- replace_all(opis_predmeta, 127, "X", slucajne_vrednosti);
- new opispr[512];
- formatex(opispr, charsmax(opispr), "%L: ^1%L.^n%s", id, "ML_PREDMET", id, naziv_predmeta[informacije_predmet_igraca[id][0]], opis_predmeta);
- show_menu(id, charsmax(opispr), opispr);
- }
- GetPosition(iPlayer)
- {
- static Position, Size, SteamID[32];
- for (Position = 0, Size = ArraySize(g_SteamID); Position < Size; Position++)
- {
- ArrayGetString(g_SteamID, Position, SteamID, 31);
- if (equal(SteamID, g_Data[iPlayer][Data_SteamID]))
- return Position + 1;
- }
- return 0;
- }
- WriteTop15()
- {
- static Length, Position, Size, SteamID[32], Name[32], iLevel;
- Length = formatex(g_Top15[Length], 2047 - Length, STATSX_SHELL_DESIGN2_STYLE)
- Length += formatex(g_Top15[Length], 2047 - Length, "<body><table width=100%% border=0 align=center cellpadding=0 cellspacing=1>")
- Length += formatex(g_Top15[Length], 2047 - Length, "<body><tr><th>#<th>Nick<th>Najveci Level</tr>")
- for (Position = 0, Size = min(ArraySize(g_SteamID), 15); Position < Size; Position++)
- {
- ArrayGetString(g_SteamID, Position, SteamID, 31);
- TrieGetString(g_Name, SteamID, Name, 31);
- TrieGetCell(g_PlayerLevel, SteamID, iLevel);
- new szFixedName[ charsmax( Name ) * 5 + 1 ];
- MakeMOTDSafe( Name, szFixedName, charsmax( szFixedName ), 32 );
- Length += formatex(g_Top15[Length], 2047 - Length, "<tr><td>%d<td>%s<td>%d", Position + 1, Name, iLevel)
- }
- }
- public ProveriNivo(id)
- {
- new level_limit = get_pcvar_num(cvar_max_level);
- if(level_igraca[id] > level_limit)
- {
- level_igraca[id] = level_limit;
- return;
- }
- while(iskustvo_igraca[id] >= Uzmixpzalevel(level_igraca[id]) && level_igraca[id] < level_limit)
- {
- if(happy_hour_on)
- {
- level_igraca[id]+=2;
- set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
- ShowSyncHudMsg(id, g_SyncHudObj3, "LEVEL x2");
- client_cmd(id, "spk QTM_CodMod/levelup");
- poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
- }
- else
- {
- level_igraca[id]++;
- set_hudmessage(60, 200, 25, -1.0, 0.25, 0, 1.0, 2.0, 0.1, 0.2, 2);
- ShowSyncHudMsg(id, g_SyncHudObj3, "Dobrodosao na %i level!", level_igraca[id]);
- client_cmd(id, "spk QTM_CodMod/levelup");
- poeni_igraca[id] = (level_igraca[id]-1)*2-inteligencija_igraca[id]-energija_igraca[id]-snaga_igraca[id]-kondicija_igraca[id];
- }
- }
- if(level_igraca[id] > g_Data[id][Data_Level])
- {
- g_Data[id][Data_Level] = level_igraca[id];
- UpdateRank(id, false);
- ArraySort(g_SteamID, "SortRanks");
- }
- SacuvajPodatke(id);
- }
- public Uzmixpzalevel(level)
- return level*3*get_pcvar_num(cvar_xp_za_level);
- public FwdThink(entity)
- {
- if( entity != g_hud_thinker ) return;
- for(new id = 1; id <= g_iMaxPlayers; id++)
- PokaziInformacije(id);
- entity_set_float(g_hud_thinker, EV_FL_nextthink, get_gametime() + 1.0);
- }
- public PokaziInformacije(id)
- {
- if(IsPlayer(id) && g_isConnected[id])
- {
- if(!g_isAlive[id])
- {
- new target = entity_get_int(id, EV_INT_iuser2);
- if(!target)
- return PLUGIN_CONTINUE;
- set_hudmessage(255, 255, 255, - 1.0, 0.0, 0, 6.0, 1.0)
- ShowSyncHudMsg(id, g_SyncHudObj, "%L : %L^nXP : %i / %i^nLevel : %i^n%L : %L^nHP %d", id, "ML_KLASA", id, naziv_klase[klasa_igraca[target]], iskustvo_igraca[target], Uzmixpzalevel(level_igraca[target]), level_igraca[target], id, "ML_PREDMET", id, naziv_predmeta[informacije_predmet_igraca[target][0]], g_iHealth[target]);
- return PLUGIN_CONTINUE;
- }
- set_hudmessage(0, 255, 0, - 1.0, 0.0, 0, 6.0, 1.0)
- ShowSyncHudMsg(id, g_SyncHudObj, "[%L : %L]^n[XP : %i / %i] [Level : %i] [%L : %L]^n[HP: %d]", id, "ML_KLASA", id, naziv_klase[klasa_igraca[id]], iskustvo_igraca[id], Uzmixpzalevel(level_igraca[id]), level_igraca[id], id, "ML_PREDMET", id, naziv_predmeta[informacije_predmet_igraca[id][0]], g_iHealth[id]);
- }
- return PLUGIN_CONTINUE;
- }
- public Event_Health(id)
- g_iHealth[id] = read_data(1)
- public Pomoc(id)
- {
- new menupomoc[1024]
- formatex(menupomoc, charsmax(menupomoc), "%L", id, "ML_POMOC")
- show_menu(id, charsmax(menupomoc), menupomoc, -1, "Pomoc");
- }
- public PostaviBrzinu(id)
- {
- id -= id>32? ZADATAK_POSTAVI_brzinu: 0;
- if(klasa_igraca[id])
- set_user_maxspeed(id, brzina_igraca[id]);
- }
- public PromeniModel(id,reset)
- {
- if (!IsPlayer(id) || !g_isConnected[id])
- return PLUGIN_HANDLED;
- if (reset)
- {
- fm_reset_user_model(id);
- DefaultModel(id);
- }
- else
- {
- new CsTeams:iTeam;
- iTeam = cs_get_user_team(id)
- switch(iTeam)
- {
- case CS_TEAM_T:fm_set_user_model(id, Ubrania_CT[random(sizeof(Ubrania_CT))])
- case CS_TEAM_CT:fm_set_user_model(id, Ubrania_Terro[random(sizeof(Ubrania_Terro))])
- }
- }
- return PLUGIN_CONTINUE;
- }
- public DefaultModel(id)
- {
- if (!g_isConnected[id])
- return PLUGIN_CONTINUE;
- new CsTeams:iTeam;
- iTeam = cs_get_user_team(id)
- switch(iTeam)
- {
- case CS_TEAM_T:fm_set_user_model(id, Ubrania_Terro[random(sizeof(Ubrania_Terro))])
- case CS_TEAM_CT:fm_set_user_model(id, Ubrania_CT[random(sizeof(Ubrania_CT))])
- }
- return PLUGIN_CONTINUE;
- }
- public DodirOruzija(weapon, id)
- {
- new model[23];
- pev(weapon, pev_model, model, 22);
- if (pev(weapon, pev_owner) == id || containi(model, "w_backpack") != -1)
- return HAM_IGNORED;
- return HAM_SUPERCEDE;
- }
- public client_infochanged(iPlayer)
- {
- if (!g_isConnected[iPlayer])
- return;
- static Name[32];
- get_user_info(iPlayer, "name", Name, 31);
- if (equal(Name, g_Data[iPlayer][Data_Name]))
- return;
- copy(g_Data[iPlayer][Data_Name], 31, Name);
- UpdateRank(iPlayer, true);
- }
- public SetClientKeyValue(id, szInfoBuffer[], szKey[], szValue[])
- {
- if(equal(szKey, "model") && !equal(szValue, g_szModel[id]))
- {
- set_user_info(id, "model", g_szModel[id])
- return FMRES_SUPERCEDE
- }
- return FMRES_IGNORED
- }
- public CmdSay( iPlayer )
- {
- if( !g_isConnected[iPlayer])
- return PLUGIN_HANDLED_MAIN;
- new szArgs[ 194 ];
- if( !IsValidMessage( iPlayer, false, szArgs, charsmax( szArgs ) ) )
- return PLUGIN_HANDLED_MAIN;
- new iAlive = g_isAlive[ iPlayer ];
- new CsTeams:iTeam = cs_get_user_team( iPlayer );
- new iPlayers[ 32 ], iNum;
- get_players( iPlayers, iNum );
- new szName[ 32 ];
- get_user_name( iPlayer, szName, charsmax( szName ) );
- new const szPrefixes[ 2 ][ CsTeams ][ ] =
- {
- {
- "^1*DEAD*",
- "^1*DEAD*",
- "^1*DEAD*",
- "^1*SPEC*"
- },
- {
- "",
- "",
- "",
- ""
- }
- };
- new szMessage[ 192 ];
- formatex( szMessage, charsmax( szMessage ), "%s^4 [Lvl. %i]^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], level_igraca[iPlayer], szName, szArgs );
- new iTarget;
- for( new i = 0; i < iNum; i++ )
- {
- iTarget = iPlayers[ i ];
- if( iTarget == iPlayer || ( iAlive || g_isConnected[ iTarget ] ) && g_isAlive[ iTarget ] == iAlive )
- {
- message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, iTarget );
- write_byte( iPlayer );
- write_string( szMessage );
- message_end( );
- }
- }
- return PLUGIN_HANDLED_MAIN;
- }
- public CmdSayTeam( iPlayer )
- {
- if( !g_isConnected[ iPlayer ] )
- return PLUGIN_HANDLED_MAIN;
- new szArgs[ 194 ];
- if( !IsValidMessage( iPlayer, true, szArgs, charsmax( szArgs ) ) )
- return PLUGIN_HANDLED_MAIN;
- new iAlive = g_isAlive[ iPlayer ];
- new CsTeams:iTeam = cs_get_user_team( iPlayer );
- new iPlayers[ 32 ], iNum;
- get_players( iPlayers, iNum );
- new szName[ 32 ];
- get_user_name( iPlayer, szName, charsmax( szName ) );
- new const szPrefixes[ 2 ][ CsTeams ][ ] =
- {
- {
- "(Spectator)",
- "*DEAD*(Terrorist)",
- "*DEAD*(Counter-Terrorist)",
- "(Spectator)"
- },
- {
- "(Spectator)",
- "(Terrorist)",
- "(Counter-Terrorist)",
- "(Spectator)"
- }
- };
- new szMessage[ 192 ];
- formatex( szMessage, charsmax( szMessage ), "^1%s^4 [Lvl. %i]^3 %s^1 : %s", szPrefixes[ iAlive ][ iTeam ], level_igraca[iPlayer], szName, szArgs );
- for( new i = 0, iTeammate; i < iNum; i++ )
- {
- iTeammate = iPlayers[ i ];
- if( iTeammate == iPlayer || ( iAlive || g_isConnected[ iTeammate ] ) && g_isAlive[ iTeammate ] == iAlive && cs_get_user_team( iTeammate ) == iTeam )
- {
- message_begin( MSG_ONE_UNRELIABLE, g_msgSayText, _, iTeammate );
- write_byte( iPlayer );
- write_string( szMessage );
- message_end( );
- }
- }
- return PLUGIN_HANDLED_MAIN;
- }
- bool:IsValidMessage( iPlayer, bool:bTeamSay, szMessage[ ], iLen )
- {
- read_args( szMessage, iLen );
- remove_quotes( szMessage );
- new iPos, cChar, i;
- while( ( cChar = szMessage[ iPos++ ] ) == '@' )
- {
- i++;
- }
- if( ( bTeamSay ? ( i == 1 ) : ( 1 <= i <= 3 ) ) && !access( iPlayer, g_iAdminChatFlag ) )
- return false;
- while( 0 <= ( cChar = szMessage[ iPos++ ] ) <= 255 )
- {
- if( cChar != ' ' && cChar != '%' )
- return true;
- }
- return false;
- }
- public BlokirajKomande()
- return PLUGIN_HANDLED;
- public plugin_end()
- {
- nvault_close( g_vault )
- ArraySort(g_SteamID, "SortRanks");
- SaveRanks();
- ArrayDestroy(g_SteamID)
- }
- MakeMOTDSafe( const szInput[ ], szOutput[ ], const iOutputLen, const iMaxChars = 0 )
- {
- new iMax = iOutputLen / 5;
- copy( szOutput, iMax, szInput );
- replace_all( szOutput, iOutputLen, "&", "&" );
- replace_all( szOutput, iOutputLen, "<", "<" );
- replace_all( szOutput, iOutputLen, ">", ">" );
- new iLastIndex, i, cChar;
- while( ( cChar = szOutput[ i ] ) )
- {
- if( cChar == '&' )
- {
- if( equali( szOutput[ i ], "<", 4 ) || equali( szOutput[ i ], ">", 4 ) )
- i += 3;
- else if( equali( szOutput[ i ], "&", 5 ) )
- i += 4;
- }
- i++;
- if( 0 < iMaxChars < i )
- break;
- iLastIndex = i;
- }
- szOutput[ iLastIndex ] = 0;
- }
- stock UTIL_SetBarTime(id, time, startprogress=0)
- {
- message_begin(MSG_ONE, get_user_msgid("BarTime2"), _, id)
- write_short(time);
- write_short(startprogress);
- message_end();
- }
- stock UTIL_PlayWeaponAnimation(id, anim)
- {
- set_pev(id, pev_weaponanim, anim)
- message_begin(MSG_ONE, SVC_WEAPONANIM, {0, 0, 0}, id)
- write_byte(anim)
- write_byte(pev(id, pev_body))
- message_end()
- }
- stock fm_trace_target(ignoreent, const Float:start[3], distance)
- {
- new Float:fAim[3], Float:end[3];
- velocity_by_aim(ignoreent, distance, fAim);
- end[0] = start[0] + fAim[0];
- end[1] = start[1] + fAim[1];
- end[2] = start[2] + fAim[2];
- engfunc(EngFunc_TraceLine, start, end, ignoreent == -1 ? 1 : 0, ignoreent, 0);
- new ent = get_tr2(0, TR_pHit);
- return pev_valid(ent) ? ent : 0;
- }
- stock Display_Fade(id,duration,holdtime,fadetype,red,green,blue,alpha)
- {
- message_begin( MSG_ONE, g_msgScreenFade,{0,0,0},id );
- write_short( duration ); // Duration of fadeout
- write_short( holdtime ); // Hold time of color
- write_short( fadetype ); // Fade type
- write_byte ( red ); // Red
- write_byte ( green ); // Green
- write_byte ( blue ); // Blue
- write_byte ( alpha ); // Alpha
- message_end();
- }
- stock set_user_clip(id, ammo)
- {
- new weaponname[32], weaponid = -1, weapon = get_user_weapon(id, _, _);
- get_weaponname(weapon, weaponname, 31);
- while ((weaponid = find_ent_by_class(weaponid, weaponname)) != 0)
- {
- if(entity_get_edict(weaponid, EV_ENT_owner) == id)
- {
- set_pdata_int(weaponid, 51, ammo, 4);
- return weaponid;
- }
- }
- return 0;
- }
- stock ChangeModelsSatchel(id)
- {
- set_pev(id, pev_viewmodel2, "models/v_dynamite.mdl")
- set_pev(id, pev_weaponmodel2, "models/p_dynamite.mdl")
- }
- stock fm_set_user_model(id, const szModelName[])
- {
- copy(g_szModel[id], sizeof g_szModel[] - 1, szModelName)
- set_user_info(id, "model", szModelName)
- }
- stock fm_get_user_model(id, model[], len )
- get_user_info(id, "model", model, len)
- stock fm_reset_user_model( player )
- dllfunc( DLLFunc_ClientUserInfoChanged, player, engfunc( EngFunc_GetInfoKeyBuffer, player ) );
- stock ChatColor(const id, const input[], any:...)
- {
- new count = 1, players[32]
- static msg[191]
- vformat(msg, 190, input, 3)
- replace_all(msg, 190, "!g", "^4") // Green Color
- replace_all(msg, 190, "!y", "^1") // Default Color
- replace_all(msg, 190, "!t", "^3") // Team Color
- new index
- if (id) players[0] = id; else get_players(players, count, "ch")
- {
- for (new i = 0; i < count; i++)
- {
- index = players[i]
- message_begin(MSG_ONE_UNRELIABLE, g_msgSayText, _, index)
- write_byte(index);
- write_string(msg);
- message_end();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement