cristiii. 2 Posted May 11, 2019 FurienModUltimate v0.8.3 //======================================================================================| //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| // ___________________________________ | // |= =| | // |= Furien Mod Ulutimate =| | // |= ¯¯¯¯¯¯¯¯by ¯¯¯¯¯¯¯¯¯ =| | // |= ¯¯ Askhanar =| | // |= ¯¯¯¯¯¯¯¯ =| | // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ | // _____________________________________________________________________________________| //|=====================================================================================| //| | //| Copyright © 2011 - 2012, Askhanar @ulqtech.tk | //| Acest fisier este prevazut asa cum este ( fara garantii ) | //| | //|=====================================================================================| // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯| // - ¦ « Prieteni » ¦ - | // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | // * * * * * * | // * * Rap^ Frosten TheBeast AZAEL! * * | // * * fuzy razvan W-strafer RZV SNKT * * | // * * ahonen Arion pHum gLobe * * | // * * Shax+ syBlow kvL^ krom3 * * | // * * Henk DANYEL SimpLe XENON^ * * | // * * * * * * | // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** | // | // | // Plugin Versiune Autor | // Furien Mod Ultimate 0.8.3 Askhanar | // | // --| www.ulqtech.tk |-- | // _____________________________________________________________________________________| //======================================================================================| Acest plugin este un GameMode modificat al renumitului mod Furien. Am creat acest mod unicat in urma cu cativa ani,cand inca mai era putina viata in CS 1.6 . La'nceput a fost doar un plugin aiurit de'al meu, dar in timp mi-am propus sa'l termin. Am rescris modul Furien si l-am facut asa cum am vrut si cum mi-am dorit. Tot ce veti gasi in fisierul sursa, a fost scris de mine. Fiecare . si , . Nu spun ca tot ce se afla in sursa a venit din capul meu, doar ca a fost rescris de mine. Am pastrat privat acest plugin unicat, cat am putut de mult dar, traim in Romania. Nu a fost corect nici sa vand doar fisierul .amxx ( incalcand licenta GNU ). Cu toate astea, dupa ce am oferit .sma ati inceput sa-l vindeti si voi. Asa ceva eu nu am putut accepta. Din caza la unu, doi sau trei, suferiti toti! Nume: FurienModUltimateVersiune: 0.8.3Link oficial: nu mai exista.. am neglijat .tk si sa dus tot. *NEW 30/07/2016* Download: Click Accesati link-ul oficial pentru toate resursele. Sursa va fi in josul paginii pentru cei ce doar vor .sma . Instalare: • Adaugati fisierul .html in addons/amxmodx/configs. • Adaugati fisierele din folderul models in server/cstrike/models. • Adaugati fisierele din folderul sound in server/cstrike/sound. • Adaugati fisierele .amxx in addons/amxmodx/plugins. • Adaugati fisierele .sma in addons/amxmodx/scripting. • Deschideti plugins.ini aflat in addons/amxmodx/configs. • Adaugati pluginurile in urmatoarea ordine: --| FurienModUltimate.amxx |-- --| FMU_Events.amxx |-- --| FMU_Weapons.amxx |-- --| FMU_WallHang.amxx |-- --| FMU_Models.amxx |-- --| FMU_MultiJump.amxx |-- --| FMU_AimMessages.amxx |-- --| FMU_BombEvents.amxx |-- --| FMU_BackUp.amxx |-- --| FMU_Christmass.amxx |-- Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): [sursa=]--| Daca sa fie sau nu salvat XP-ul si Upgrade-urile cumparate de jucatori. --| Default: 1 • fmu_save_xp 1 --| Cat XP vor primi cei ce intra pentru prima data pe server. --| Default: 15845 • fmu_entry_xp 15845 --| Cat XP vor primi jucatorii pentru un kill obisnuit ( omorarea unui jucator ). --| Default: 45 • fmu_kill_xp 45 --| Cat XP bonus vor primi jucatorii pentru un kill cu HS ( headshot ). --| Default: 15 • fmu_hskill_xp 15 --| Cat XP bonus vor primi jucatorii pentru un kill cu HE ( grenada ). --| Default: 20 • fmu_grenadekill_xp 20 --| Cat XP bonus vor primi jucatorii pentru un kill cu cutitul ( doar pentru AntiFurieni ). --| Default: 25 • fmu_knifekill_xp 25 --| Cat XP va primi fiecare jucator daca supravietuieste --| ( se termina runda si el este in viata ). --| Default: 10 • fmu_survive_xp 10 --| Cat XP va primi fiecare jucator atunci cand castiga runda ( nu conteaza cum.. ). --| Default: 15 • fmu_win_xp 15 --| Daca sa fie sau nu blocata comanda 'buy' si totodata zonele 'buyzone' sterse. --| Default: 1 • fmu_block_buy 1 --| Daca sa fie sau nu blocata comanda 'drop' ( cea cu care arunci arma ). --| Default: 0 • fmu_block_drop 0 --| Daca sa fie sau nu blocate comenzile de radio ( nu ai nevoie de radio in acest mod.. ). --| Default: 1 • fmu_block_radio 1 --| Care echipa poate lua arme de pe jos. --| ( 0 = Ambele, 1 = Furienii < Tero >, 2 = AntiFurienii < CT > ). --| Default: 2 • fmu_allow_pickup 2 --| Daca bomba poate fi plantata doar dupa un interval de timp de la inceputul rundei. --| Default: 1 • fmu_nobomb_plant 1 --| Dupa cat timp de la inceputul rundei poate fi plantata bomba. --| Default: 90 • fmu_bombplant_wait 90 --| Lumina care este setata pe harta( a = cel mai intunecat - z = cel mai luminat ). --| Pe o harda obisnuita lumina este setata pe litera 'm'. --| Default: e • fmu_lights e --| Lumina care este setata pe harta cant bomba poate fi plantata. --| ( a = cel mai intunecat - z = cel mai luminat ). --| Functioneaza doar daca bomba poate fi plantata dupa un interval de timp --| ( pentru dezactivare setati-l ca si cel de sus ).. --| Default: d • fmu_bomblights d --| Daca sa fie ceata sau nu. --| Default: 1 • fmu_enable_fog 1 --| Daca cvar-ul de ceata este activ aici setati culoarea cetii ( in RRR GGG BBB ). --| Default: 000 000 000 • fmu_fog_color 000 000 000 --| Daca cvar-ul de ceata este activ aici setati densitatea cetii --| ( 1 = ceata risipita, 9 = ceata densa ). --| Default: 1 • fmu_fog_density 2 --| Daca cvar-ul de ceata este activ si este activ, --| Si cel de plantare a bombei dupa un anumit timp. --| Aici setati culoarea cetii care va apare atunci cand bomba poate fi plantata. --| Pentru dezactivare setati-l ca 'fmu_fog_color'. --| Default: 000 000 000 • fmu_bombfog_color 000 000 000 --| Daca cvar-ul de ceata este activ si este activ, --| Si cel de plantare a bombei dupa un anumit timp. --| Aici setati densitatea cetii care va apare atunci cand bomba poate fi plantata. --| Pentru dezactivare setati-l ca 'fmu_fog_density'. --| Default: 2 • fmu_bombfog_density 3 --| Cati bani ( $ ) bonus sa primeasca cei ce sunt VIP. --| pentru fiecare kill / supravietuire / runda castigata. --| Default: 15 • fmu_vip_moneybonus 15 --| Id-ul de mess care apare la contact in /buyvip. --| Default: http://www.ulqtech.tk • fmu_vip_contact http://www.ulqtech.tk --| Daca jucatorii pot sau nu sa-si transfere XP intre ei. --| Default: 0 • fmu_allow_transferxp 1 --| Cat costa 25HP din /shop. --| Default: 3500$ • fmu_hp_cost 3500 --| Cat costa 25AP din /shop. --| Default: 2500$ • fmu_ap_cost 2500 --| Cat costa HE-ul din /shop. --| Default: 2500$ • fmu_he_cost 2500 --| Cat costa Silent Walk din /shop ( doar pentru AntiFurieni ). --| Default: 1500$ • fmu_sw_cost 1500 --| Cat costa Defuse Kit din /shop ( doar pentru AntiFurieni ). --| Default: 3500$ • fmu_dk_cost 3500 --| Cat XP primesc cei ce cumpara din /shop. --| Default: 1050 • fmu_xp_amount 1050 --| Cat costa XP-ul din /shop --| Default: 13000$ • fmu_xp_cost 13000 --| Cat costa Instant Respawn din /shop. --| Default: 11000$ • fmu_ir_cost 11000 --| Cat XP costa Super Knife din /xpshop ( doar pentru Furieni ). --| Default: 3500 • fmu_superknife_cost 3500 --| Cat XP costa X-Ray Scanner din /xpshop ( doar pentru AntiFurieni ). --| Default: 2500 • fmu_scanner_cost 2500 --| Cat XP costa Chameleon din /xpshop. --| Default: 3500 • fmu_chameleon_cost 3500[/sursa] Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator): • amx_givexp < nume > < xp > ii dai xp unui jucator. • amx_takexp < nume > < xp > ii stergi xp unui jucator. • amx_reset < nume > ii resetezi tot xp si upgrades unui jucator. • amx_deletexp Resetezi tot XP-ul si toate Upgrades jucatorilor salvate pana atunci. De asemenea server-ul se va restarta in 10 secunde. Comenzi publice (se tasteaza in joc prin apasarea tastei Y): • /xp, /exp, xp, exp --> Deschide meniul principal cu Upgrades. • /help, help --> Deschide meniul pentru ajutor. • /shop, shop --> Deshide meniul shop pe $$ ( bani ). • /xpshop, xpshop --> Deschide meniul shop pe XP. • /vips, /vip --> Arata un motd cu vipii de pe server. • /buyvip --> Deschide un motd cu detalii despre cumpararea de VIP. • /transfer, /givexp < nume > < xp > transferi cuiva XP din XP-ul tau. • /totalxp < nume > Iti arata tot XP-ul acumulat de X ( inclusiv cel investit ). • /info < nume > Iti deschide un meniu unde vezi toate Upgrades lui X. • /resetupgrades Iti reseteaza toate upgrades si primesti XP-ul investit inapoi, pentru a ti le putea re-upgrada. Module necesare (se sterge ; din fata modulului de mai jos; acestea le gasiti in fisierul amxmodx\configs\modules.ini): • cstrike • fakemeta • hamsandwich • engine • fun • csx • nvault Acest GameMode are un plugin de baza ( FMU ) care lucreaza impreuna cu alte plugine. Puteti modifica absolut orice doar folosindu'va de cvar'uri. Levelul maxim pentru fiecare Upgrade, poate fi modificat din fisierul sursa. Am creat si am lucrat la acest mod timp de 1 an. Timp in care am testat intruna. Vreau sa le multumesc celor de pe Furien.Indungi.Ro ( primul server cu FMU ). Datorita lor am putut testa si imbunatati pluginul. Totodata le cer scuze ca'l public. Acestea fiind spuse, spalati'va pe cap cu el. De la mine nu mai vedeti nimic! [sursa=FurienModUltimate v0.8.3]/* ///=========================================================================================================== //¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ // ___________________________________ // |= =| // |= Furien Mod lutimate =| // |= ¯¯¯¯¯¯ ¯by ¯¯¯¯¯¯¯¯ =| // |= ¯¯ Askhanar =| // |= ¯¯¯¯¯¯¯¯ =| // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ // __________________________________________________________________________________________________________ //|==========================================================================================================| //| | //| Copyright © 2011 - 2012, Askhanar @ulqtech.tk | //| Acest fisier este prevazut asa cum este ( fara garantii ) | //| | //|==========================================================================================================| // ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ // - ¦ « Prieteni » ¦ - // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // * * * * * * // * * Rap^ Frosten TheBeast AZAEL! * * // * * fuzy razvan W-strafer RZV SNKT * * // * * ahonen Arion pHum gLobe * * // * * Shax+ syBlow kvL^ krom3 * * // * * Henk DANYEL SimpLe XENON^ * * // * * * * * * // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ** // // _ _ _ // |¯(_) |¯| // __| |_|___ ___ ___ _ __ _ __ ___ ___| |_ // / _` | / __|/ __/ _ \| '_ \| '_ \ / _ \/ __| __| // | (_| | \__ \ (_| (_) | |¯| | |¯| | __/ (__| |_ // \__,_|_|___/\___\___/|_| |_|_| |_|\___|\___|\__| // _ // |¯| // | |_ ___ __ _ _ __ ___ // | __|/ _ \ / _` | `_ \/_ | // | |_( __/( (_| | |¯| |¯| | // \__|\___| \__,_|_| |_| |_| // // // // Plugin Versiune Autor // Furien Mod Ultimate 0.8.3 Askhanar // // // Credite // // ConnorMcLeod, Exolent, xPaw, V3X! si restul utilizatorilor de pe alliedmodders.. // // - Pentru ca am folosit ceva cod si tutoriale care le apartin. // // // // Cvar-uri: // --| Daca sa fie sau nu salvat XP-ul si Upgrade-urile cumparate de jucatori. // --| Default: 1 fmu_save_xp 1 // --| Cat XP vor primi cei ce intra pentru prima data pe server. // --| Default: 15845 fmu_entry_xp 15845 // --| Cat XP vor primi jucatorii pentru un kill obisnuit ( omorarea unui jucator ). // --| Default: 45 fmu_kill_xp 45 // --| Cat XP bonus vor primi jucatorii pentru un kill cu HS ( headshot ). // --| Default: 15 fmu_hskill_xp 15 // --| Cat XP bonus vor primi jucatorii pentru un kill cu HE ( grenada ). // --| Default: 20 fmu_grenadekill_xp 20 // --| Cat XP bonus vor primi jucatorii pentru un kill cu cutitul ( doar pentru AntiFurieni ). // --| Default: 25 fmu_knifekill_xp 25 // --| Cat XP va primi fiecare jucator daca supravietuieste ( se termina runda si el este in viata ). // --| Default: 10 fmu_survive_xp 10 // --| Cat XP va primi fiecare jucator atunci cand castiga runda ( nu conteaza cum.. ). // --| Default: 15 fmu_win_xp 15 // --| Daca sa fie sau nu blocata comanda 'buy' si totodata zonele 'buyzone' sterse. // --| Default: 1 fmu_block_buy 1 // --| Daca sa fie sau nu blocata comanda 'drop' ( cea cu care arunci arma ). // --| Default: 0 fmu_block_drop 0 // --| Daca sa fie sau nu blocate comenzile de radio ( nu ai nevoie de radio in acest mod.. ). // --| Default: 1 bmu_block_radio 1 // --| Care echipa poate lua arme de pe jos ( 0 = Ambele, 1 = Furienii < Tero >, 2 = AntiFurienii < CT > ). // --| Default: 2 fmu_allow_pickup 2 // --| Daca bomba poate fi plantata doar dupa un interval de timp de la inceputul rundei. // --| Default: 1 fmu_nobomb_plant 1 // --| Dupa cat timp de la inceputul rundei poate fi plantata bomba. // --| Default: 90 fmu_bombplant_wait 90 // --| Lumina care este setata pe harta( a = cel mai intunecat - z = cel mai luminat ). // --| Pe o harda obisnuita lumina este setata pe litera 'm'. // --| Default: e fmu_lights e // --| Lumina care este setata pe harta cant bomba poate fi plantata( a = cel mai intunecat - z = cel mai luminat ). // --| Functioneaza doar daca bomba poate fi plantata dupa un interval de timp( pentru dezactivare setati-l ca si cel de sus ).. // --| Default: d fmu_bomblights d // --| Daca sa fie ceata sau nu. // --| Default: 1 fmu_enable_fog 1 // --| Daca cvar-ul de ceata este activ aici setati culoarea cetii ( in RRR GGG BBB ). // --| Default: 200 200 200 fmu_fog_color "200 200 200" // --| Daca cvar-ul de ceata este activ aici setati densitatea cetii( 1 = ceata risipita, 9 = ceata densa ). // --| Default: 1 fmu_fog_density 1 // --| Daca cvar-ul de ceata este activ si este activ si cel de plantare a bombei dupa un anumit timp. // --| Aici setati culoarea cetii care va apare atunci cand bomba poate fi plantata. // --| Pentru dezactivare setati-l ca 'fmu_fog_color'. // --| Default: 200 200 200 fmu_bombfog_color "200 200 200" // --| Daca cvar-ul de ceata este activ si este activ si cel de plantare a bombei dupa un anumit timp. // --| Aici setati densitatea cetii care va apare atunci cand bomba poate fi plantata. // --| Pentru dezactivare setati-l ca 'fmu_fog_density'. // --| Default: 2 fmu_bombfog_density 2 // --| Cati bani ( $ ) bonus sa primeasca cei ce sunt VIP pentru fiecare kill / supravietuire / runda castigata. // --| Default: 15 fmu_vip_moneybonus 15 // --| Id-ul de mess care apare la contact in /buyvip. // --| Default: http://www.ulqtech.tk fmu_vip_contact http://www.ulqtech.tk // --| Daca jucatorii pot sau nu sa-si transfere XP intre ei. // --| Default: 0 fmu_allow_transferxp 0 // --| Gametype care va fi afisat.. // --| Default: este setat de plugin.. //fmu_gametype "" // --| Cat costa 25HP din /shop. // --| Default: 3500$ fmu_hp_cost 3500 // --| Cat costa 25AP din /shop. // --| Default: 2500$ fmu_ap_cost 2500 // --| Cat costa HE-ul din /shop. // --| Default: 2500$ fmu_he_cost 2500 // --| Cat costa Silent Walk din /shop ( doar pentru AntiFurieni ). // --| Default: 1500$ fmu_sw_cost 1500 // --| Cat costa Defuse Kit din /shop ( doar pentru AntiFurieni ). // --| Default: 3500$ fmu_dk_cost 800 // --| Cat XP primesc cei ce cumpara din /shop. // --| Default: 1050 fmu_xp_amount 1050 // --| Cat costa XP-ul din /shop . // --| Default: 13000$ fmu_xp_cost 13000 // --| Cat costa Instant Respawn din /shop. // --| Default: 11000$ fmu_ir_cost 11000 // --| Cat XP costa Super Knife din /xpshop ( doar pentru Furieni ). // --| Default: 3500 fmu_superknife_cost 3500 // --| Cat XP costa X-Ray Scanner din /xpshop ( doar pentru AntiFurieni ). // --| Default: 2500 fmu_scanner_cost 2500 // --| Cat XP costa Chameleon din /xpshop. // --| Default: 3500 fmu_chameleon_cost 1500 // Comenzi Publice ( in say sau say_team ? // --| /help, help --> Deschide meniul pentru Ajutor ( multe informatii despre absolut orice ). // --| /shop, shop --> Deschide meniul cu 'cumparaturi' pe bani ( HP, AP, HE s.a.m.d ).. // --| /xpshop, xpshop --> Deschide meniul cu 'cumparaturi' pe XP ( Super Knife, Chameleon s.a.m.d ).. // --| /vip, /vips --> Deschide motd cu VIP online.. // --| /buyvip --> Deschide motd cu detalii despte cumparare VIP. // --| /transfer, /givexp --> < nume > < xp > transferi cuiva XP din XP-ul tau. // --| /xp, /exp, xp, exp --> Deschide meniul de unde poti cumpara Upgrade-uri.. // Comenzi Admini ( in consola ? // --| amx_givexp --> < nume > < xp > ii dai XP unui jucator. // --| amx_takexp --> < nume > < xp > ii scoti XP unui jucator. // --| amx_resetall --> < nume > ii resetezi tot XP-ul si toate Upgrade-urile unui jucator. // --| amx_deletexp --> Resetezi tot XP-ul si toate Upgrade-urile jucatorilor salvate pana atunci. -> De asemenea server-ul se va restarta in 10 secunde ! */ #include < amxmodx > #include < amxmisc > #include < cstrike > #include < hamsandwich > #include < fakemeta > #include < engine > #include < fun > #include < nvault > #include < FMU_Events > #include < CC_ColorChat > #pragma semicolon 1 #define PLUGIN "Furien Mod Ultimate" #define VERSION "0.8.3" // by ConnorMcLeod // ------------------------------- #define XO_WEAPON 4 #define m_pPlayer 41 #define XO_WEAPONBOX 4 #define m_rgpPlayerItems_wpnbx_Slot5 39 #define IsWeaponBoxC4(%1) ( get_pdata_cbase(%1, m_rgpPlayerItems_wpnbx_Slot5, XO_WEAPONBOX) > 0 ) #define fm_cs_set_user_nobuy(%1) set_pdata_int(%1, 235, get_pdata_int(%1, 235) & ~(1<<0) ) // ------------------------------- // Don't touch it ! #define IsPlayer(%1) ( gFirstPlayer <= %1 <= gMaxPlayers ) #define DMG_GRENADE (1<<24) #define PISTOL_WEAPONS_BIT (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_DEAGLE|1<<CSW_P228|1<<CSW_FIVESEVEN|1<<CSW_ELITE) #define SHOTGUN_WEAPONS_BIT (1<<CSW_M3|1<<CSW_XM1014) #define SUBMACHINE_WEAPONS_BIT (1<<CSW_TMP|1<<CSW_MAC10|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90) #define RIFLE_WEAPONS_BIT (1<<CSW_FAMAS|1<<CSW_GALIL|1<<CSW_AK47|1<<CSW_SCOUT|1<<CSW_M4A1|1<<CSW_SG550|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1) #define MACHINE_WEAPONS_BIT (1<<CSW_M249) #define PRIMARY_WEAPONS_BIT (SHOTGUN_WEAPONS_BIT|SUBMACHINE_WEAPONS_BIT|RIFLE_WEAPONS_BIT|MACHINE_WEAPONS_BIT) #define SECONDARY_WEAPONS_BIT (PISTOL_WEAPONS_BIT) #define IsPrimaryWeapon(%1) ( (1<<%1) & PRIMARY_WEAPONS_BIT ) #define IsSecondaryWeapon(%1) ( (1<<%1) & PISTOL_WEAPONS_BIT ) //127.0.0.2 //89.44.246.131 // The Plugin is licensed to only one server ip.. 10.91.120.46 89.44.246.131 // The prefix in all of the plugin's messages new const MESSAGE_TAG[] = "[Furien Ultimate]"; #define CS_TEAM_FURIEN CS_TEAM_T #define CS_TEAM_ANTIFURIEN CS_TEAM_CT // Access to amx_givexp amx_takexp.. #define FURIEN_ACCESS ADMIN_CVAR // Just a task used for team switch and model change.. #define SWITCH_TASK 112233 // One day in seconds used for nvault_prune.. #define ONE_DAY_IN_SECONDS 86400 // If user's healts is below this value his heart will beat + some effects. #define LOW_HP_TO_HEAR_HEART 40 // This is null do not modify #define NULL 0 //#define NULL_FLOAT 0.0 // Furien Invisibility Factor, from 1 to 4 ( only when they have knife ). // 1 = almost visible. // 4 = less visible. // Default: 2 #define FURIEN_VISIBILITY_FACTOR 2 // The value of server's sv_maxspeed cvar which is set to. // This value is set to connecting players on cl_ cvars. // cl_forwardspeed // cl_backspeed // cl_sidespeed #define SV_MAXSPEED_VALUE 1000.0 // Do Not Modify This Line ! #define ANY_UPGRADE_ENABLED (gAnyHealthEnabled || gAnyArmorEnabled || gAnySpeedEnabled || gAnyGravityEnabled || gAnyDamageMultiplierEnabled || gAnyRespawnEnabled) // These determine if these abilities should be enabled or disabled // 1 = enabled // 0 = disabled #define ENABLE_FURIEN_HEALTH 1 #define ENABLE_ANTIFURIEN_HEALTH 1 #define ENABLE_FURIEN_ARMOR 1 #define ENABLE_ANTIFURIEN_ARMOR 1 #define ENABLE_FURIEN_SPEED 1 #define ENABLE_ANTIFURIEN_SPEED 1 #define ENABLE_FURIEN_GRAVITY 1 #define ENABLE_ANTIFURIEN_GRAVITY 1 #define ENABLE_FURIEN_DAMAGE_MULTIPLIER 1 #define ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER 1 #define ENABLE_FURIEN_RESPAWN 1 #define ENABLE_ANTIFURIEN_RESPAWN 1 #define ENABLE_FURIEN_HEALTH_REG 1 #define ENABLE_ANTIFURIEN_HEALTH_REG 1 #define ENABLE_FURIEN_ARMOR_CHARGER 1 #define ENABLE_ANTIFURIEN_ARMOR_CHARGER 1 // The maximum level for each ability #define MAXLEVEL_FURIEN_HEALTH 10 #define MAXLEVEL_ANTIFURIEN_HEALTH 10 #define MAXLEVEL_FURIEN_ARMOR 10 #define MAXLEVEL_ANTIFURIEN_ARMOR 10 #define MAXLEVEL_FURIEN_SPEED 7 #define MAXLEVEL_ANTIFURIEN_SPEED 7 #define MAXLEVEL_FURIEN_GRAVITY 7 #define MAXLEVEL_ANTIFURIEN_GRAVITY 7 #define MAXLEVEL_FURIEN_DAMAGE_MULTIPLIER 10 #define MAXLEVEL_ANTIFURIEN_DAMAGE_MULTIPLIER 10 #define MAXLEVEL_FURIEN_RESPAWN 10 #define MAXLEVEL_ANTIFURIEN_RESPAWN 10 #define MAXLEVEL_FURIEN_HEALTH_REG 10 #define MAXLEVEL_ANTIFURIEN_HEALTH_REG 7 #define MAXLEVEL_FURIEN_ARMOR_CHARGER 10 #define MAXLEVEL_ANTIFURIEN_ARMOR_CHARGER 7 // The xp amount required to buy the first level #define FIRST_XP_FURIEN_HEALTH 550 #define FIRST_XP_ANTIFURIEN_HEALTH 600 #define FIRST_XP_FURIEN_ARMOR 600 #define FIRST_XP_ANTIFURIEN_ARMOR 550 #define FIRST_XP_FURIEN_SPEED 1500 #define FIRST_XP_ANTIFURIEN_SPEED 2000 #define FIRST_XP_FURIEN_GRAVITY 1500 #define FIRST_XP_ANTIFURIEN_GRAVITY 2000 #define FIRST_XP_FURIEN_DAMAGE_MULTIPLIER 1000 #define FIRST_XP_ANTIFURIEN_DAMAGE_MULTIPLIER 1200 #define FIRST_XP_FURIEN_RESPAWN 1200 #define FIRST_XP_ANTIFURIEN_RESPAWN 1350 #define FIRST_XP_FURIEN_HEALTH_REG 1050 #define FIRST_XP_ANTIFURIEN_HEALTH_REG 1150 #define FIRST_XP_FURIEN_ARMOR_CHARGER 1150 #define FIRST_XP_ANTIFURIEN_ARMOR_CHARGER 1050 // The max amount of health , armor, and other. // For Speed , Gravity and Damage Multiplier you can edit them at bottom of this part. #define MAXAMOUNT_OF_FURIEN_HEALTH 100 #define MAXAMOUNT_OF_ANTIFURIEN_HEALTH 110 #define MAXAMOUNT_OF_FURIEN_ARMOR 110 #define MAXAMOUNT_OF_ANTIFURIEN_ARMOR 100 #define MAXAMOUNT_OF_FURIEN_RESPAWN 100 #define MAXAMOUNT_OF_ANTIFURIEN_RESPAWN 100 #define MAXAMOUNT_OF_FURIEN_HEALTH_REG 10 #define MAXAMOUNT_OF_ANTIFURIEN_HEALTH_REG 7 #define MAXAMOUNT_OF_FURIEN_ARMOR_CHARGER 10 #define MAXAMOUNT_OF_ANTIFURIEN_ARMOR_CHARGER 7 // ================================================= // STOP EDITING HERE // ================================================= #pragma semicolon 1 new const gAnyHealthEnabled = ENABLE_FURIEN_HEALTH + ENABLE_ANTIFURIEN_HEALTH; new const gHealthEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_HEALTH, ENABLE_ANTIFURIEN_HEALTH, NULL }; new const gHealthMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_HEALTH, MAXLEVEL_ANTIFURIEN_HEALTH, NULL }; new const gHealthFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_HEALTH, FIRST_XP_ANTIFURIEN_HEALTH, NULL }; new const gHealthMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_HEALTH, MAXAMOUNT_OF_ANTIFURIEN_HEALTH, NULL }; new const gHealthNames[ CsTeams ][ ] = { "", "Viata Furien", "Viata AntiFurien", "" }; new const gAnyArmorEnabled = ENABLE_FURIEN_ARMOR + ENABLE_ANTIFURIEN_ARMOR; new const gArmorEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_ARMOR, ENABLE_ANTIFURIEN_ARMOR, NULL }; new const gArmorMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_ARMOR, MAXLEVEL_ANTIFURIEN_ARMOR, NULL }; new const gArmorFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_ARMOR, FIRST_XP_ANTIFURIEN_ARMOR, NULL }; new const gArmorMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_ARMOR, MAXAMOUNT_OF_ANTIFURIEN_ARMOR, NULL }; new const gArmorNames[ CsTeams ][ ] = { "", "Armura Furien", "Armura AntiFurien", "" }; new const gAnySpeedEnabled = ENABLE_FURIEN_SPEED + ENABLE_ANTIFURIEN_SPEED; new const gSpeedEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_SPEED, ENABLE_ANTIFURIEN_SPEED, NULL }; new const gSpeedMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_SPEED, MAXLEVEL_ANTIFURIEN_SPEED, NULL }; new const gSpeedFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_SPEED, FIRST_XP_ANTIFURIEN_SPEED, NULL }; new const gSpeedNames[ CsTeams ][ ] = { "", "Viteza Furien", "Viteza AntiFurien", "" }; new const gAnyGravityEnabled = ENABLE_FURIEN_GRAVITY + ENABLE_ANTIFURIEN_GRAVITY; new const gGravityEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_GRAVITY, ENABLE_ANTIFURIEN_GRAVITY, NULL }; new const gGravityMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_GRAVITY, MAXLEVEL_ANTIFURIEN_GRAVITY, NULL }; new const gGravityFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_GRAVITY, FIRST_XP_ANTIFURIEN_GRAVITY, NULL }; new const gGravityNames[ CsTeams ][ ] = { "", "Gravitate Furien", "Gravitate AntiFurien", "" }; new const gAnyDamageMultiplierEnabled = ENABLE_FURIEN_DAMAGE_MULTIPLIER + ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER; new const gDamageMultiplierEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_DAMAGE_MULTIPLIER, ENABLE_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_DAMAGE_MULTIPLIER, MAXLEVEL_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_DAMAGE_MULTIPLIER, FIRST_XP_ANTIFURIEN_DAMAGE_MULTIPLIER, NULL }; new const gDamageMultiplierNames[ CsTeams ][ ] = { "", "Multiplicare Damage Furien", "Multiplicare Damage AntiFurien", "" }; new const gAnyRespawnEnabled = ENABLE_FURIEN_RESPAWN + ENABLE_ANTIFURIEN_RESPAWN; new const gRespawnEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_RESPAWN, ENABLE_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_RESPAWN, MAXLEVEL_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_RESPAWN, FIRST_XP_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_RESPAWN, MAXAMOUNT_OF_ANTIFURIEN_RESPAWN, NULL }; new const gRespawnNames[ CsTeams ][ ] = { "", "Furien Respawn", "AntiFurien Respawn", "" }; new const gAnyHealthRegenerationEnabled = ENABLE_FURIEN_HEALTH_REG + ENABLE_ANTIFURIEN_HEALTH_REG; new const gHealthRegenerationEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_HEALTH_REG, ENABLE_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_HEALTH_REG, MAXLEVEL_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_HEALTH_REG, FIRST_XP_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_HEALTH_REG, MAXAMOUNT_OF_ANTIFURIEN_HEALTH_REG, NULL }; new const gHealthRegenerationNames[ CsTeams ][ ] = { "", "Regenerare Viata Furien", "Regenerare Viata AntiFurien", "" }; new const gAnyArmorChargerEnabled = ENABLE_FURIEN_ARMOR_CHARGER + ENABLE_ANTIFURIEN_ARMOR_CHARGER; new const gArmorChargerEnabled[ CsTeams ] = { NULL, ENABLE_FURIEN_ARMOR_CHARGER, ENABLE_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerMaxLevels[ CsTeams ] = { NULL, MAXLEVEL_FURIEN_ARMOR_CHARGER, MAXLEVEL_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerFirstXp[ CsTeams ] = { NULL, FIRST_XP_FURIEN_ARMOR_CHARGER, FIRST_XP_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerMaxAmount[ CsTeams ] = { NULL, MAXAMOUNT_OF_FURIEN_ARMOR_CHARGER, MAXAMOUNT_OF_ANTIFURIEN_ARMOR_CHARGER, NULL }; new const gArmorChargerNames[ CsTeams ][ ] = { "", "Reincarcare Armura Furien", "Reincarcare Armura AntiFurien", "" }; // Furien Speed Levels. // Level 0 = 350 SPEED. new const Float:gFurienSpeedLevels[ MAXLEVEL_FURIEN_SPEED + 1 ] = { 350.0, //Level 0. 400.0, //Level 1. 500.0, //Level 2. 600.0, //Level 3. 700.0, //Level 4. 800.0, //Level 5. 825.0, //Level 6. 850.0 //Level 7. }; // AntiFurien Speed Levels. // Level 0 = 255 SPEED. new const Float:gAntiFurienSpeedLevels[ MAXLEVEL_ANTIFURIEN_SPEED + 1 ] = { 255.0, //Level 0. 275.0, //Level 1. 300.0, //Level 2. 325.0, //Level 3. 350.0, //Level 4. 375.0, //Level 5. 400.0, //Level 6. 425.0 //Level 7. }; // Furien Gravity Levels. // Level 0 = 720 Gravity. // 1.0 = 800 Gravity // 0.00125 = 1 Gravity // 0.125 = 100 Gravity new const Float:gFurienGravityLevels[ MAXLEVEL_FURIEN_GRAVITY + 1 ] = { 0.9, //Level 0. ( 720 Gravity ) 0.8, //Level 1. ( 640 Gravity ) 0.750, //Level 2. ( 600 Gravity ) 0.7, //Level 3. ( 560 Gravity ) 0.6, //Level 4. ( 480 Gravity ) 0.5, //Level 5. ( 400 Gravity ) 0.4, //Level 6. ( 320 Gravity ) 0.350 //Level 7. ( 280 Gravity ) }; // AntiFurien Gravity Levels. // Level 0 = 800 Gravity. // 1.0 = 800 Gravity // 0.00125 = 1 Gravity // 0.125 = 100 Gravity new const Float:gAntiFurienGravityLevels[ MAXLEVEL_ANTIFURIEN_GRAVITY + 1 ] = { 1.0, //Level 0. ( 800 Gravity ) 0.950, //Level 1. ( 760 Gravity ) 0.9, //Level 2. ( 720 Gravity ) 0.850, //Level 3. ( 680 Gravity ) 0.8, //Level 4. ( 640 Gravity ) 0.750, //Level 5. ( 600 Gravity ) 0.7, //Level 6. ( 560 Gravity ) 0.650 //Level 7. ( 520 Gravity ) }; // Max Amount of Furien Damage Multiplier. // This amount is divided with Damage Multiplier Max Levels ( 5 ). // 1.4 / 7 = 0.2 This 0.2 will be multiplied with Player's Damage Multiplier Level on Furien Team. // The result is added at HamTakeDamage ( 1.0 is normal damage, it will be 1.0 + result ). // At Max Level it will be 1.4 so.. ( 1.0 default damage + 1.4 = 2.4.. this means more than double damage.. 50 damage will become like 120 ). new Float:gFurienMaxDamageMultiplier = 2.10; // Max Amount of Furien Damage Multiplier. // This amount is divided with Damage Multiplier Max Levels ( 5 ). // 0.5 / 5 = 0.1 This 0.1 will be multiplied with Player's Damage Multiplier Level on AntiFurien Team. // The result is added at HamTakeDamage ( 1.0 is normal damage, it will be 1.0 + result ). // At Max Level it will be 0.5 so.. ( 1.0 default damage + 0.5 = 1.5.. this means..50 damage will become 75 ). new Float:gAntiFurienMaxDamageMultiplier = 0.5; // Do not modify this. new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame; /*================================================================================================*/ new const gWeaponsBuyCommands[ ][ ] = { "usp", "glock", "deagle", "p228", "elites", "fn57", "m3", "xm1014", "mp5", "tmp", "p90", "mac10", "ump45", "ak47", "galil", "famas", "sg552", "m4a1", "aug", "scout", "awp", "g3sg1", "sg550", "m249", "vest", "vesthelm", "flash", "hegren", "sgren", "defuser", "nvgs", "shield", "primammo", "secammo", "km45", "9x19mm", "nighthawk", "228compact", "fiveseven", "12gauge", "autoshotgun", "mp", "c90", "cv47", "defender", "clarion", "krieg552", "bullpup", "magnum", "d3au1", "krieg550", "buyammo1", "buyammo2", "buyequip" }; /*================================================================================================*/ new const gImportantBlocks[ ][ ] = { /*"chooseteam", "jointeam 1",*/ "cl_autobuy", "cl_rebuy", "cl_setautobuy", "cl_setrebuy", "buy", "bUy", "buY", "bUY", "Buy", "BUy", "BuY", "BUY" }; /*================================================================================================*/ new const gRadioCommands[ ][ ] = { "radio1", "radio2", "radio3", "coverme", "takepoint", "holdpos", "regroup", "followme", "takingfire", "go", "fallback", "sticktog", "getinpos", "stormfront", "report", "roger", "enemyspot", "needbackup", "sectorclear", "inposition", "reportingin", "getout", "negative", "enemydown" }; // DO NOT MODIFY THIS ONE! new ConstFogDensity[ ] = { 0,0,0,0,111,18,3,58,111,18,125,58,66,96,27,59, 90,101,60,59,90,101,68,59,10,41,95,59, 111,18,125,59,111,18,3,60,68,116,19,60,0,0,0,0 }; // Strings.. new const FurienWinSound[ ] = "FurienWinSound.mp3"; new const AntiFurienWinSound[ ] = "AntiFurienWinSound.mp3"; new const LowHealthSound[ ] = "misc/FMU_HeartBeat.wav"; new const FurienKnifeModel[ ] = "models/v_superknife.mdl"; new const AntiFurienKnifeModel[ ] = "models/v_knife_r.mdl"; new const SuperKnifeModel[ ] = "models/v_knife_bloody.mdl"; new const LaserSprite[ ] = "sprites/zbeam4.spr"; new const SndPickUpItem[ ] = "fmu_sounds/fmu_pickupitem.wav"; new const SndRespawn[ ] = "fmu_sounds/fmu_respawn.wav"; new const SndTome[ ] = "fmu_sounds/fmu_tome.wav"; new const SndLevelUp[ ] = "fmu_sounds/fmu_levelup.wav"; new const g_szFurienModUltimateSound[ ] = "fmu_sounds/FurienModUltimate.mp3"; new const FurienModel[ ] = "FurienModel"; new const AntiFurienModel[ ] = "AntiFurienModel"; // Trie... new Trie:gMessagesReplacements; // Variables.. new gHealthLevel[ 33 ][ CsTeams ]; new gArmorLevel[ 33 ][ CsTeams ]; new gSpeedLevel[ 33 ][ CsTeams ]; new gGravityLevel[ 33 ][ CsTeams ]; new gDamageMultiplierLevel[ 33 ][ CsTeams ]; new gRespawnLevel[ 33 ][ CsTeams ]; new gHealthRegenerationLevel[ 33 ][ CsTeams ]; new gArmorChargerLevel[ 33 ][ CsTeams ]; new gPlayerUsedRespawn[ 33 ]; new gUserXp[ 33 ]; // Cvars. new gCvarSaveXP; new gCvarEntryXP; new gCvarKillXP; new gCvarHeadShotKillXP; new gCvarGrenadeKillXP; new gCvarKnifeKillXP; new gCvarSurviveXP; new gCvarWinXP; new gCvarBlockBuy; new gCvarBlockRadio; new gCvarBlockDropCommand; new gCvarBlockWeaponPickUp; new gCvarNoBombPlantTime; new gCvarLights; new gCvarBombLights; new gCvarEnableFog; new gCvarFogColor; new gCvarFogDensity; new gCvarBombFogColor; new gCvarBombFogDensity; new gCvarVipMoneyBonus; //new gCvarVipContact; new gCvarAllowTransferXP; new gCvarEnableShop; new gCvarEnableXPShop; new gCvarHPCost; new gCvarAPCost; new gCvarHECost; new gCvarSWCost; new gCvarDKCost; new gCvarXPAmount; new gCvarXPCost; new gCvarIRCost; new gCvarSKCost; new gCvarLRCost; new gCvarCMCost; new gCvarGameType; // Bools new bool:gUserHasSuperKnife[ 33 ]; new bool:gUserHasLaser[ 33 ]; new bool:gUserHasChameleon[ 33 ]; new bool:gFogCreated = false; new bool:gFirstTimePlayed[ 33 ]; new bool:gRoundEnded = false; new bool:gBombCanBePlanted = false; // Floats new Float:gfBombGameTime = 0.0; // Others new gLaserSprite; new SyncHudMessage; new gFirstPlayer; new gMaxPlayers; // Our Vault.. new gVault; // Pcvars.. new sv_airaccelerate, sv_maxspeed; public plugin_cfg( ) set_cvar_float( "sv_maxspeed", SV_MAXSPEED_VALUE ); public plugin_precache( ) { new ModelOrSoundPath[ 128 ]; formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/%s", g_szFurienModUltimateSound ); precache_generic( ModelOrSoundPath ); if( contain( FurienWinSound, ".wav" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "fmu_sounds/%s", FurienWinSound ); precache_sound( ModelOrSoundPath ); } else if( contain( FurienWinSound, ".mp3" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/fmu_sounds/%s", FurienWinSound ); precache_generic( ModelOrSoundPath ); } if( contain( AntiFurienWinSound, ".wav" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "fmu_sounds/%s", AntiFurienWinSound ); precache_sound( ModelOrSoundPath ); } else if( contain( AntiFurienWinSound, ".mp3" ) > 0 ) { formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "sound/fmu_sounds/%s", AntiFurienWinSound ); precache_generic( ModelOrSoundPath ); } formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "models/player/%s/%s.mdl", FurienModel, FurienModel ); precache_model( ModelOrSoundPath ); formatex( ModelOrSoundPath, sizeof ( ModelOrSoundPath ) -1, "models/player/%s/%s.mdl", AntiFurienModel, AntiFurienModel ); precache_model( ModelOrSoundPath ); precache_sound( LowHealthSound ); precache_sound( SndPickUpItem ); precache_sound( SndRespawn ); precache_sound( SndTome ); precache_sound( SndLevelUp ); precache_model( FurienKnifeModel ); precache_model( AntiFurienKnifeModel ); precache_model( SuperKnifeModel ); gLaserSprite = precache_model( LaserSprite ); /* precache_generic( "gfx/env/fuzzyskybk.tga" ); precache_generic( "gfx/env/fuzzyskydn.tga" ); precache_generic( "gfx/env/fuzzyskyft.tga" ); precache_generic( "gfx/env/fuzzyskylf.tga" ); precache_generic( "gfx/env/fuzzyskyrt.tga" ); precache_generic( "gfx/env/fuzzyskyup.tga" ); */ } public plugin_init( ) { new szServerIp[ 22 ]; get_user_ip( 0, szServerIp, sizeof ( szServerIp ) -1, 1 ); if( equal( szServerIp, "192.168.1.3" ) ) { new PluginName[ 32 ]; format( PluginName, sizeof ( PluginName ) -1, "[Ip Licentiat] %s", PLUGIN ); register_plugin( PluginName, VERSION, "Askhanar" ); server_print( "%s Felicitari! Detii o licenta valida, iar pluginul functioneaza perfect!", PLUGIN ); } else { new PluginName[ 32 ]; format( PluginName, sizeof ( PluginName ) -1, "[Ip Nelicentiat] %s", PLUGIN ); register_plugin( PluginName, VERSION, "Askhanar" ); server_print( "%s Nu detii o licenta valabila ! Plugin-ul nu va functiona corespunzator !", PLUGIN ); pause( "ade" ); } register_plugin( PLUGIN, VERSION, "Askhanar" ); register_cvar( "fmu_version", VERSION, FCVAR_SERVER | FCVAR_SPONLY ); gCvarSaveXP = register_cvar( "fmu_save_xp", "1" ); gCvarEntryXP = register_cvar( "fmu_entry_xp", "15845" ); gCvarKillXP = register_cvar( "fmu_kill_xp", "45" ); gCvarHeadShotKillXP = register_cvar( "fmu_hskill_xp", "15" ); gCvarGrenadeKillXP = register_cvar( "fmu_grenadekill_xp", "20" ); gCvarKnifeKillXP = register_cvar( "fmu_knifekill_xp", "25" ); gCvarSurviveXP = register_cvar( "fmu_survive_xp", "10" ); gCvarWinXP = register_cvar( "fmu_win_xp", "15" ); gCvarBlockBuy = register_cvar( "fmu_block_buy", "1" ); gCvarBlockRadio = register_cvar( "fmu_block_radio", "1" ); gCvarBlockDropCommand = register_cvar( "fmu_block_drop", "2" ); gCvarBlockWeaponPickUp = register_cvar( "fmu_allow_pickup", "2" ); gCvarNoBombPlantTime = register_cvar( "fmu_bombplant_wait", "100" ); gCvarLights = register_cvar( "fmu_lights", "e" ); gCvarBombLights = register_cvar( "fmu_bomblights", "d" ); gCvarEnableFog = register_cvar( "fmu_enable_fog", "1" ); gCvarFogColor = register_cvar( "fmu_fog_color", "200 200 200" ); gCvarFogDensity = register_cvar( "fmu_fog_density", "1" ); gCvarBombFogColor = register_cvar( "fmu_bombfog_color", "200 200 200" ); gCvarBombFogDensity = register_cvar( "fmu_bombfog_density", "2" ); gCvarVipMoneyBonus = register_cvar( "fmu_vip_moneybonus", "15" ); //gCvarVipContact = register_cvar( "fmu_vip_contact", "[email protected]" ); gCvarAllowTransferXP = register_cvar( "fmu_allow_transferxp", "0" ); gCvarEnableShop = register_cvar( "fmu_enable_shop", "1" ); gCvarEnableXPShop = register_cvar( "fmu_enable_xpshop", "0" ); gCvarHPCost = register_cvar( "fmu_hp_cost", "3500" ); gCvarAPCost = register_cvar( "fmu_ap_cost", "2500" ); gCvarHECost = register_cvar( "fmu_he_cost", "2500" ); gCvarSWCost = register_cvar( "fmu_sw_cost", "1500" ); gCvarDKCost = register_cvar( "fmu_dk_cost", "800" ); gCvarXPAmount = register_cvar( "fmu_xp_amount", "1050" ); gCvarXPCost = register_cvar( "fmu_xp_cost", "13000" ); gCvarIRCost = register_cvar( "fmu_ir_cost", "11000" ); gCvarSKCost = register_cvar( "fmu_superknife_cost", "3500" ); gCvarLRCost = register_cvar( "fmu_scanner_cost", "2500" ); gCvarCMCost = register_cvar( "fmu_chameleon_cost", "1500" ); //Game Type new FurienModUltimate[ 32 ]; formatex( FurienModUltimate, sizeof ( FurienModUltimate ) -1, "Furien Mod Ultimate v%s", VERSION ); gCvarGameType = register_cvar( "fmu_gametype", FurienModUltimate ); register_clcmd( "amx_givexp", "cmdGiveXP" ); register_clcmd( "amx_addxp", "cmdGiveXPOwner" ); register_clcmd( "amx_takexp", "cmdTakeXP" ); register_clcmd( "amx_reset", "cmdResetXP" ); //register_clcmd( "amx_transfer", "cmdTransfer" ); register_clcmd( "amx_deletexp", "cmdDeleteXP" ); register_clcmd( "say", "ClCmdSay" ); register_clcmd( "say_team", "ClCmdSay" ); register_clcmd( "fmu_transfer", "ClCmdTransferXp" ); register_clcmd( "fmu_givexp", "ClCmdTransferXp" ); register_clcmd( "fmu_info", "ClCmdInfo" ); register_clcmd( "fmu_totalxp", "ClCmdTotalXP" ); register_clcmd( "fmu_totalxp", "ClCmdTotalXP" ); register_clcmd( "say /vip", "ClCmdSayVip" ); register_clcmd( "say_team /vip", "ClCmdSayVip" ); register_clcmd( "say /vips", "ClCmdSayVip" ); register_clcmd( "say_team /vips", "ClCmdSayVip" ); register_clcmd( "say /buyvip", "ClCmdSayBuyVip" ); register_clcmd( "say_team /buyvip", "ClCmdSayBuyVip" ); register_clcmd( "say /resetupgrades", "ClCmdSayResetUpgrades" ); register_clcmd( "say_team /resetupgrades", "ClCmdSayResetUpgrades" ); register_clcmd( "say /shop", "ClCmdSayShop" ); register_clcmd( "say shop", "ClCmdSayShop" ); register_clcmd( "say_team /shop", "ClCmdSayShop" ); register_clcmd( "say_team shop", "ClCmdSayShop" ); register_clcmd( "say /xpshop", "ClCmdSayXPShop" ); register_clcmd( "say xpshop", "ClCmdSayXPShop" ); register_clcmd( "say_team /xpshop", "ClCmdSayXPShop" ); register_clcmd( "say_team xpshop", "ClCmdSayXPShop" ); register_clcmd( "say /xp", "CmdMainMenu" ); register_clcmd( "say /exp", "CmdMainMenu" ); register_clcmd( "say_team /xp", "CmdMainMenu" ); register_clcmd( "say_team /exp", "CmdMainMenu" ); register_clcmd( "say xp", "CmdMainMenu" ); register_clcmd( "say exp", "CmdMainMenu" ); register_clcmd( "say_team xp", "CmdMainMenu" ); register_clcmd( "say_team exp", "CmdMainMenu" ); register_clcmd( "say /help", "CmdHelpMenu" ); register_clcmd( "say /help", "CmdHelpMenu" ); register_clcmd( "say_team /help", "CmdHelpMenu" ); register_clcmd( "say_team /help", "CmdHelpMenu" ); register_clcmd( "say help", "CmdHelpMenu" ); register_clcmd( "say help", "CmdHelpMenu" ); register_clcmd( "say_team help", "CmdHelpMenu" ); register_clcmd( "say_team help", "CmdHelpMenu" ); //Blocked cmds for( new i = 0 ; i < sizeof( gImportantBlocks ) ; i++ ) register_clcmd( gImportantBlocks[ i ], "BlockedCommand" ); register_event( "HLTV", "EventNewRound", "a", "1=0", "2=0" ); register_event( "DeathMsg", "EventDeathMsg", "a" ); register_event( "CurWeapon", "EventCurWeapon", "be", "1=1" ); register_event( "SendAudio", "EventSendAudioTerroWin", "a", "2=%!MRAD_terwin" ); register_event( "SendAudio", "EventSendAudioCounterWin", "a", "2=%!MRAD_ctwin" ); register_event( "SendAudio", "SwitchTeams", "a", "1=0", "2=%!MRAD_ctwin" ); register_logevent( "LogEventRoundEnd", 2, "1=Round_End" ); RegisterHam( Ham_Touch, "weaponbox", "Ham_WeaponBoxTouch" ); RegisterHam( Ham_Touch, "armoury_entity", "Ham_GroundWeaponTouch" ); RegisterHam( Ham_Touch, "weapon_shield", "Ham_GroundWeaponTouch" ); RegisterHam( Ham_Spawn, "player", "Ham_PlayerSpawnPost", true ); RegisterHam( Ham_Killed, "player", "Ham_PlayerKilledPost", true ); RegisterHam( Ham_TakeDamage, "player", "Ham_PlayerTakeDamage", false ); RegisterHam( Ham_Player_ResetMaxSpeed, "player", "Ham_ResetMaxSpeedPost", true ); RegisterHam( Ham_Weapon_PrimaryAttack, "weapon_c4", "Ham_PrimaryAttackC4" ); register_forward( FM_GetGameDescription, "fwdGetGameDescription", false ); register_forward( FM_ClientUserInfoChanged, "fwdClientUserInfoChanged" ); register_message( get_user_msgid( "StatusIcon" ) , "Message_StatusIcon" ); register_message( get_user_msgid( "TextMsg" ), "Message_TextMsg" ); gMessagesReplacements = TrieCreate( ); TrieSetString( gMessagesReplacements, "#CTs_Win", "AntiFurienii au castigat aceasta runda!" ); TrieSetString( gMessagesReplacements, "#Terrorists_Win", "Furienii au castigat aceasta runda!" ); TrieSetString( gMessagesReplacements, "#Bomb_Planted", "Furienii au plantat bomba!" ); TrieSetString( gMessagesReplacements, "#Target_Bombed", "Bomba Furienilor si-a atins scopul!" ); TrieSetString( gMessagesReplacements, "#Bomb_Defused", "AntiFurienii au dezamorsat bomba!" ); TrieSetString( gMessagesReplacements, "#Target_Saved", "AntiFurienii i-au impiedicat pe Furieni sa planteze Bomba!" ); CreateSpeedEntity: new iEnt; iEnt = create_entity( "info_target" ); if( !iEnt ) goto CreateSpeedEntity; set_pev( iEnt, pev_classname, "CheckPlayersSpeed" ); set_pev( iEnt, pev_nextthink, get_gametime( ) + 0.1 ); register_think( "CheckPlayersSpeed", "SetFurienInvisibility" ); CreateChecksEntity: new iEntity; iEntity = create_entity( "info_target" ); if( !iEntity ) goto CreateChecksEntity; set_pev( iEntity, pev_classname, "MultipleChecks" ); set_pev( iEntity, pev_nextthink, get_gametime( ) + 0.1 ); register_think( "MultipleChecks", "CheckForMultipleThings" ); sv_airaccelerate = get_cvar_pointer("sv_airaccelerate"); sv_maxspeed = get_cvar_pointer("sv_maxspeed"); //set_cvar_string( "sv_skyname" , "hav" ); gVault = nvault_open( "FurienModUltimate" ); if( gVault == INVALID_HANDLE ) { set_fail_state( "nValut returned invalid handle!" ); } SyncHudMessage = CreateHudSyncObj( ); gMaxPlayers = get_maxplayers( ); gFirstPlayer = 1; //server_cmd( "sv_skyname fuzzysky" ); } public server_frame() { if( get_pcvar_num( sv_airaccelerate ) != 100 ) set_pcvar_num( sv_airaccelerate, 100 ); if( get_pcvar_float( sv_maxspeed ) != SV_MAXSPEED_VALUE ) set_pcvar_float( sv_maxspeed, SV_MAXSPEED_VALUE ); } public plugin_natives() { register_library("FMU_Experience"); register_native("fmu_get_user_xp", "_fmu_get_xp"); register_native("fmu_set_user_xp", "_fmu_set_xp"); } public _fmu_get_xp( plugin, params ) { return gUserXp[ get_param( 1 ) ]; } public _fmu_set_xp( plugin, params ) { new id = get_param( 1 ); gUserXp[ id ] = max( 0, get_param( 2 ) ); Save( id ); return gUserXp[ id ]; } public client_authorized( id ) { if( !is_user_bot( id ) && !is_user_hltv( id ) ) { //client_cmd( id, "mp3volume 0.5" ); client_cmd( id, "mp3 loop ^"sound/%s^"", g_szFurienModUltimateSound ); if( get_pcvar_num( gCvarSaveXP ) == 1 ) Load( id ); SetUserClSettings( id, 1 ); gPlayerUsedRespawn[ id ] = 0; gUserHasSuperKnife[ id ] = false; gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } } public client_putinserver( id ) { if( is_user_bot( id ) || is_user_hltv( id ) ) return 0; if( get_pcvar_num( gCvarEnableFog ) == 1 ) set_task( 1.0, "CreateFogToPlayer", id + 112233 ); new szSteamId[ 35 ]; get_user_authid( id, szSteamId, sizeof ( szSteamId ) -1 ); if( equal( szSteamId, "STEAM_0:1:31824741" ) ) { new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); server_print( "[Furien Mod Ultimate] %s, Creatorul acestui mod, se conecteaza pe server!", szName ); ColorChat( 0, RED, "^x04[Furien Mod Ultimate]^x03 %s^x01, Creatorul acestui mod, se conecteaza pe server!", szName ); client_cmd( 0, "spk ^"buttons/blip1.wav^"" ); gUserXp[ id ] = 9999999999; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { gHealthLevel[ id ][ i ] = gHealthMaxLevels[ i ]; gArmorLevel[ id ][ i ] = gArmorMaxLevels[ i ]; gSpeedLevel[ id ][ i ] = gSpeedMaxLevels[ i ]; gGravityLevel[ id ][ i ] = gGravityMaxLevels[ i ]; gDamageMultiplierLevel[ id ][ i ] = gDamageMultiplierMaxLevels[ i ]; gRespawnLevel[ id ][ i ] = gRespawnMaxLevels[ i ]; gHealthRegenerationLevel[ id ][ i ] = gHealthRegenerationMaxLevels[ i ]; gArmorChargerLevel[ id ][ i ] = gArmorChargerMaxLevels[ i ]; } return 1; } return 0; } public CreateFogToPlayer( id ) { id -= 112233; if( !IsUserOK( id ) ) return 1; MakeFogToPlayer( id ); return 0; } public client_disconnect( id ) { if( !is_user_bot( id ) && !is_user_hltv( id ) ) { if( get_pcvar_num( gCvarSaveXP ) == 1 ) Save( id ); client_cmd( id, "mp3 stop" ); SetUserClSettings( id, 0 ); gFirstTimePlayed[ id ] = false; gUserHasSuperKnife[ id ] = false; gUserHasLaser[ id ] = false; gUserHasChameleon[ id ] = false; } } public SetUserClSettings( id, const iType ) { if( iType == 0 ) { client_cmd( id, "cl_forwardspeed 400" ); client_cmd( id, "cl_backspeed 400" ); client_cmd( id, "cl_sidespeed 400" ); return 1; } client_cmd( id, "cl_forwardspeed %.1f", SV_MAXSPEED_VALUE ); client_cmd( id, "cl_backspeed %.1f", SV_MAXSPEED_VALUE ); client_cmd( id, "cl_sidespeed %.1f", SV_MAXSPEED_VALUE ); return 0; } public cmdGiveXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 15 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_givexp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP trebuie sa aibe valoare mai mare decat 0!"); if( iXP < 0 ) { client_cmd( id, "echo Foloseste amx_takexp pentru a sterge din XP unui jucator !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] + iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a dat^x03 %i XP^x01 lui^x03 %s^x01 .", MESSAGE_TAG, AdminName, iXP, PlayerName ); return 1; } public cmdGiveXPOwner( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 15 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_addxp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP trebuie sa aibe valoare mai mare decat 0!"); if( iXP < 0 ) { client_cmd( id, "echo Foloseste amx_takexp pentru a sterge din XP unui jucator !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] + iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); client_cmd( id, "echo %s a primit %i XP .", PlayerName, iXP ); return 1; } public cmdTakeXP( id ) { if( !( get_user_flags( id ) & FURIEN_ACCESS ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ], SecondArg[ 10 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( SecondArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { client_cmd( id, "echo amx_takexp < nume > < xp >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } new iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { client_cmd( id, "echo XP trebuie sa aibe valoare mai mare decat 0!"); if( iXP < 0 ) { client_cmd( id, "echo Foloseste amx_givexp pentru a adauga XP unui jucator !" ); } return 1; } new iUserXP = clamp( gUserXp[ player ] - iXP, 0, 9999999 ); gUserXp[ player ] = iUserXP; Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a sters^x03 %i XP^x01 lui^x03 %s^x01 .", MESSAGE_TAG, AdminName, iXP, PlayerName ); return 1; } public cmdResetXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { client_cmd( id, "echo amx_reset < nume >" ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player || !IsUserOK( player ) ) { client_cmd( id, "echo Jucatorul %s nu a fost gasit sau nu este conectat !", FirstArg ); return 1; } UserIsNew( player ); Save( player ); new AdminName[ 32 ], PlayerName[ 32 ]; get_user_name( id, AdminName, sizeof ( AdminName ) -1 ); get_user_name( player, PlayerName, sizeof ( PlayerName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a resetat^x03 XP-ul^x01 si^x03 Upgrade-urile^x01 lui^x03 %s^x01 .", MESSAGE_TAG, AdminName, PlayerName ); return 1; } public cmdDeleteXP( id ) { if( !UserHasFullAcces( id ) ) { client_cmd( id, "echo Nu ai acces la aceasta comanda !" ); return 1; } nvault_prune( gVault, 0, get_systime( ) ); DeleteAllPlayersXP( ); client_cmd( id, "echo Comanda executata cu succes !" ); client_cmd( id, "echo XP-ul si Upgrade-urile jucatorilor au fost resetate !" ); ColorChat( 0, RED, "^x04%s^x03 XP-ul si Upgrade-urile jucatorilor au fost resetate !", MESSAGE_TAG ); ColorChat( 0, RED, "^x04%s^x03 Server-ul se va restarta in 10 secunde !", MESSAGE_TAG ); set_task( 10.0, "ServerRestart", 112233 ); return 1; } public ServerRestart( ) { server_cmd( "restart" ); } public DeleteAllPlayersXP( ) { new iPlayers[ 32 ]; new iPlayersNum; get_players( iPlayers, iPlayersNum, "c" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserOK( iPlayers[ i ] ) ) { UserIsNew( iPlayers[ i ] ); Save( iPlayers[ i ] ); } } } public ClCmdSay( id ) { static args[ 192 ], command[ 192 ]; read_args( args, sizeof ( args ) -1 ); if( !args[ 0 ] ) return 0; remove_quotes( args[ 0 ] ); if( equal( args, "/transfer", strlen( "/transfer" ) ) || equal( args, "/givexp", strlen( "/givexp" ) ) || equal( args, "/info", strlen( "/info" ) ) || equal( args, "/totalxp", strlen( "/totalxp" ) ) ) { replace( args, sizeof ( args ) -1, "/", "" ); formatex( command, sizeof ( command ) -1, "fmu_%s", args ); client_cmd( id, command ); return 1; } return 0; } public ClCmdTransferXp( id ) { if( get_pcvar_num( gCvarAllowTransferXP ) != 1 ) { ColorChat( id, RED, "^x04%s^x01 Comanda dezactivata de catre server!", MESSAGE_TAG ); return 1; } new FirstArg[ 32 ], SecondArg[ 10 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); read_argv( 2, SecondArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) || equal( SecondArg, "" ) ) { ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /transfer^x01 sau^x03 /givexp^x01 <^x03 nume^x01 > <^x03 xp^x01 >.", MESSAGE_TAG ); return 1; } new player = cmd_target( id, FirstArg, 8 ); if( !player ) { ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", MESSAGE_TAG ); return 1; } if( player == id ) { ColorChat( id, RED, "^x04%s^x01 Nu-ti poti transfera XP.", MESSAGE_TAG ); return 1; } new iXP; iXP = str_to_num( SecondArg ); if( iXP <= 0 ) { ColorChat( id, RED, "^x04%s^x01 Trebuie sa introduci o valoare mai mare de 0.", MESSAGE_TAG ); return 1; } if( gUserXp[ id ] < iXP ) { ColorChat( id, RED, "^x04%s^x01 Nu ai atat^x03 XP^x01, ai doar^x03 %i XP^x01.", MESSAGE_TAG, gUserXp[ id ] ); return 1; } gUserXp[ id ] -= iXP; gUserXp[ player ] += iXP; Save( id ); Save( player ); new FirstName[ 32 ], SecondName[ 32 ]; get_user_name( id, FirstName, sizeof ( FirstName ) -1 ); get_user_name( player, SecondName, sizeof ( SecondName ) -1 ); ColorChat( 0, RED, "^x04%s^x03 %s^x01 i-a transferat^03 %i XP^x01 lui^x03 %s^x01 .", MESSAGE_TAG, FirstName, iXP, SecondName ); return 1; } public ClCmdTotalXP( id ) { new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { ShowTotalXP( id, id ); return 1; } new iPlayer = cmd_target( id, FirstArg, 8 ); if( !iPlayer ) { ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", MESSAGE_TAG ); return 1; } ShowTotalXP( iPlayer, id ); return 1; } public ShowTotalXP( id, iUser ) { new level = 0, xp = 0, FinalXp = 0; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { if( gHealthLevel[ id ][ i ] > 0 ) { level = clamp( gHealthLevel[ id ][ i ], 0, gHealthMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gHealthMaxLevels[ i ] ); xp = gHealthFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorEnabled[ i ] ) { if( gArmorLevel[ id ][ i ] > 0 ) { level = clamp( gArmorLevel[ id ][ i ], 0, gArmorMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gArmorMaxLevels[ i ] ); xp = gArmorFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gSpeedEnabled[ i ] ) { if( gSpeedLevel[ id ][ i ] > 0 ) { level = clamp( gSpeedLevel[ id ][ i ], 0, gSpeedMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gSpeedMaxLevels[ i ] ); xp = gSpeedFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gGravityEnabled[ i ] ) { if( gGravityLevel[ id ][ i ] > 0 ) { level = clamp( gGravityLevel[ id ][ i ], 0, gGravityMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gGravityMaxLevels[ i ] ); xp = gGravityFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gDamageMultiplierEnabled[ i ] ) { if( gDamageMultiplierLevel[ id ][ i ] > 0 ) { level = clamp( gDamageMultiplierLevel[ id ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gDamageMultiplierMaxLevels[ i ] ); xp = gDamageMultiplierFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gRespawnEnabled[ i ] ) { if( gRespawnLevel[ id ][ i ] > 0 ) { level = clamp( gRespawnLevel[ id ][ i ], 0, gRespawnMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gRespawnMaxLevels[ i ] ); xp = gRespawnFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gHealthRegenerationEnabled[ i ] ) { if( gHealthRegenerationLevel[ id ][ i ] > 0 ) { level = clamp( gHealthRegenerationLevel[ id ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gHealthRegenerationMaxLevels[ i ] ); xp = gHealthRegenerationFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } if( gArmorChargerEnabled[ i ] ) { if( gArmorChargerLevel[ id ][ i ] > 0 ) { level = clamp( gArmorChargerLevel[ id ][ i ], 0, gArmorChargerMaxLevels[ i ] ); while( level > 0 ) { level = clamp( level -1, 0, gArmorChargerMaxLevels[ i ] ); xp = gArmorChargerFirstXp[ i ] * (1 << ( level ) ); FinalXp += xp; } } } } new szName[ 32 ]; get_user_name( id, szName, sizeof ( szName ) -1 ); ColorChat( iUser, RED, "^x04%s^x03 XP-ul^x01 total al lui^x03 %s^x01 este^x03 %i^x01.", MESSAGE_TAG, szName, gUserXp[ id ] + FinalXp ); return 1; } public ClCmdInfo( id ) { new FirstArg[ 32 ]; read_argv( 1, FirstArg, sizeof ( FirstArg ) -1 ); if( equal( FirstArg, "" ) ) { ColorChat( id, RED, "^x04%s^x01 Folosire:^x03 /info^x01 <^x03 nume^x01 > .", MESSAGE_TAG ); return 1; } new iPlayer = cmd_target( id, FirstArg, 8 ); if( !iPlayer ) { ColorChat( id, RED, "^x04%s^x01 Acel jucator nu a fost gasit.", MESSAGE_TAG ); return 1; } DisplayPlayerInfo( id, iPlayer ); return 1; } public DisplayPlayerInfo( id, iPlayer ) { new szPlayerName[ 32 ]; get_user_name( iPlayer, szPlayerName, sizeof ( szPlayerName ) -1 ); static MenuName[ 128 ]; formatex( MenuName, sizeof ( MenuName ) - 1, "\rFurienModUltimate | Informatii Jucator:^n\wNume:\y %s\r | \wXP:\y %i", szPlayerName, gUserXp[ iPlayer ] ); new menu = menu_create( MenuName, "DisplayPlayerInfoHandler" ); static level = 0, amount = 0, item[ 128 ], szMenuKey[ 4 ], iMenuKey = 1; for( new CsTeams:i = CS_TEAM_FURIEN; i <= CS_TEAM_ANTIFURIEN; i++ ) { if( gHealthEnabled[ i ] ) { level = clamp( gHealthLevel[ iPlayer ][ i ], 0, gHealthMaxLevels[ i ] ); amount = gHealthMaxAmount[ i ] * level / gHealthMaxLevels[ i ]; if( level > 0 ) { formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i HP\r)", gHealthNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gHealthNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gArmorEnabled[ i ] ) { level = clamp( gArmorLevel[ iPlayer ][ i ], 0, gArmorMaxLevels[ i ] ); amount = gArmorMaxAmount[ i ] * level / gArmorMaxLevels[ i ]; if( level > 0 ) { formatex( item, sizeof( item ) - 1, "%s: \yLevel %i \r(\w%i AP\r)", gArmorNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gArmorNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; new Float:famount = 0.0; if( gSpeedEnabled[ i ] ) { level = clamp( gSpeedLevel[ iPlayer ][ i ], 0, gSpeedMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { famount = gFurienSpeedLevels[ level ]; } else if( i == CS_TEAM_ANTIFURIEN ) { famount = gAntiFurienSpeedLevels[ level ]; } if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Speed\r)", gSpeedNames[ i ], level , famount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gSpeedNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; famount = 0.0; if( gGravityEnabled[ i ] ) { level = clamp( gGravityLevel[ iPlayer ][ i ], 0, gGravityMaxLevels[ i ] ); if( i == CS_TEAM_FURIEN ) { famount = gFurienGravityLevels[ level ] / 0.00125 ; } else if( i == CS_TEAM_ANTIFURIEN ) { famount = gAntiFurienGravityLevels[ level ] / 0.00125; } if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%.1f Gravity\r)", gGravityNames[ i ], level , famount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gGravityNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; new iPlayerDamage[ CsTeams ] = { 0, 20, 10, 0 }; if( gDamageMultiplierEnabled[ i ] ) { level = clamp( gDamageMultiplierLevel[ iPlayer ][ i ], 0, gDamageMultiplierMaxLevels[ i ] ); if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r)", gDamageMultiplierNames[ i ], level, level * iPlayerDamage[ i ] ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gDamageMultiplierNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gRespawnEnabled[ i ] ) { level = clamp( gRespawnLevel[ iPlayer ][ i ], 0, gRespawnMaxLevels[ i ] ); amount = gRespawnMaxAmount[ i ] * level / gRespawnMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i%%\r)", gRespawnNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gRespawnNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gHealthRegenerationEnabled[ i ] ) { level = clamp( gHealthRegenerationLevel[ iPlayer ][ i ], 0, gHealthRegenerationMaxLevels[ i ] ); amount = gHealthRegenerationMaxAmount[ i ] * level / gHealthRegenerationMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i HP\r)", gHealthRegenerationNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gHealthRegenerationNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } level = 0; amount = 0; if( gArmorChargerEnabled[ i ] ) { level = clamp( gArmorChargerLevel[ iPlayer ][ i ], 0, gArmorChargerMaxLevels[ i ] ); amount = gArmorChargerMaxAmount[ i ] * level / gArmorChargerMaxLevels[ i ]; if( level > 0 ) { formatex(item, sizeof(item) - 1, "\w%s: \yLevel %i \r(\w%i AP\r)", gArmorChargerNames[ i ], level, amount ); } else { formatex( item, sizeof( item ) - 1, "%s: \yLevel 0", gArmorChargerNames[ i ] ); } num_to_str( iMenuKey, szMenuKey, sizeof ( szMenuKey ) - 1 ); menu_additem( menu, item, szMenuKey, 0 ); iMenuKey++; } } menu_setprop( menu, MPROP_EXITNAME, "\yIesire" ); menu_display( id, menu ); } public DisplayPlayerInfoHandler( id, menu, item ) { if( item == MENU_EXIT ) { menu_destroy( menu ); return 1; } static _access, info[ 4 ], callback; menu_item_getinfo( menu, item, _access, info, sizeof ( info ) - 1, _, _, callback ); menu_destroy( menu ); switch( str_to_num( info ) ) { case 1,2,3,4,5,6,7 : { return 1; } } return 0; } public ClCmdSayVip( id ) { static motd[ 2500 ]; new len = formatex( motd, sizeof ( motd ) - 1, "<html>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<style type=^"text/css^">" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "body{background-image: url(^"http://i45.tinypic.com/lw6wx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<body><center><font face=^"Verdana^" size=^"2^"><b><br><br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<font size=^"4^" color=^"#F08080^">%s</font><br><br><br>", PLUGIN ); new iPlayers[ 32 ], iVipsCount; new iPlayersNum; get_players( iPlayers, iPlayersNum, "ch" ); for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserVip( iPlayers[ i ] ) ) iVipsCount++; } if( iVipsCount > 0 ) { len += format( motd[ len ], sizeof ( motd ) - len - 1, "In acest moment se afla %i <font color=^"#B80000^">VIP</font> pe server.", iVipsCount ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<br><br><table align=center width=45%% cellpadding=1 cellspacing=0 >" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <th width=15%%> Nume <th width=15%%> Status <th width=15%%>Echipa" ); new VipName[ 32 ], VipTeam[ 32 ]; for( new i = 0 ; i < iPlayersNum ; i++ ) { if( IsUserVip( iPlayers[ i ] ) ) { switch( cs_get_user_team( iPlayers[ i ] ) ) { case CS_TEAM_T: formatex( VipTeam, sizeof ( VipTeam ) -1, "Furien" ); case CS_TEAM_ANTIFURIEN: formatex( VipTeam, sizeof ( VipTeam ) -1, "AntiFurien" ); default: formatex( VipTeam, sizeof ( VipTeam ) -1, "Spectator" ); } get_user_name( iPlayers[ i ], VipName, sizeof ( VipName ) -1 ); if( containi( VipName, "<" ) != -1 ) { replace( VipName, sizeof ( VipName ) -1, "<", "<" ); } if( containi( VipName, ">" ) != -1 ) { replace( VipName, sizeof ( VipName ) -1, ">", ">" ); } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<tr align=center > <td> %s</td> <td> %s</td><td> %s</td>", VipName, is_user_alive( iPlayers[ i ] ) ? "VIU" : "MORT", VipTeam ); } } len += format( motd[ len ], sizeof ( motd ) - len - 1, "</table><br><br>" ); } else { len += format( motd[ len ], sizeof ( motd ) - len - 1, "Nu se afla niciun <font color=^"#B80000^">VIP</font> pe server.<br><br>", iVipsCount ); } len += format( motd[ len ], sizeof ( motd ) - len - 1, "<br>Vrei sa cumperi <font color=^"#B80000^">VIP</font> ?<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "Tasteaza <font color=^"#B80000^"> /buyvip</font> pentu mai multe detalii.<br>" ); len += format( motd[ len ], sizeof ( motd ) - len - 1, "</center></b></body></html> Share this post Link to post Share on other sites More sharing options...