/* ================================================================================================ / * * Diablo Mod: * ------------------ * * Need: This compiled and items files * Works with: AMXX ยง Cs 1.6 * * Installation: * ------------------- * Copy script into plugins and edit plugins.ini * Copy item diablo directory into addons/amxmodx * If you amx directory is not called addons/amxmodx/.. just create a new path * * Credits: * ----------------- * Spacedude * Some others back when amx mod started :] * twistedeuphoria * * diablo_xpbonus = Xp on each kill (without bonus) * diablo_durability = Will your item loose durability on damage? And how much each time * diablo_saveitems = Save items when map changes * diablo_spawnchance = 1/x chance to spawn powerup on each roundstart * * Contact: * ----------------- * email: mortengryning@gmail.com * / ================================================================================================= */ new Basepath[128] //Path from Cstrike base directory #include #include #include #include #include #include #include #include #include #include #include #include #define RESTORETIME 30.0 //How long from server start can players still get their item trasferred (s) #define MAX 32 //Max number of valid player entities //#define CHEAT 1 //Cheat for testing purposes #define CS_PLAYER_HEIGHT 72.0 #define GLOBAL_COOLDOWN 0.5 #define TASK_GREET 240 #define TASK_HUD 120 #define TASK_HOOK 360 #define MAX_PLAYERS 32 #define BASE_SPEED 245.0 #define GLUTON 95841 #define TASK_GOD 129 new Float:agi=BASE_SPEED new round_status new DemageTake[33] new DemageTake1[33] //new weapon, clip, ammo #define x 0 #define y 1 #define z 2 #define TASK_CHARGE 100 #define TASK_NAME 48424 #define TASK_FLASH_LIGHT 81184 #define TASKID_REVIVE 1337 #define TASKID_RESPAWN 1338 #define TASKID_CHECKRE 1339 #define TASKID_CHECKST 13310 #define TASKID_ORIGIN 13311 #define TASKID_SETUSER 13312 #define FL_ONGROUND (1<<9) #define message_begin_f(%1,%2,%3,%4) engfunc(EngFunc_MessageBegin, %1, %2, %3, %4) #define write_coord_f(%1) engfunc(EngFunc_WriteCoord, %1) #define pev_zorigin pev_fuser4 #define seconds(%1) ((1<<12) * (%1)) #define OFFSET_CAN_LONGJUMP 356 #define MAX_FLASH 15 //pojemnosc barejii maga (sekund) new SOUND_START[] = "items/medshot4.wav" new SOUND_FINISHED[] = "items/smallmedkit2.wav" new SOUND_FAILED[] = "items/medshotno1.wav" new SOUND_EQUIP[] = "items/ammopickup2.wav" enum { ICON_HIDE = 0, ICON_SHOW, ICON_FLASH } new g_haskit[MAX+1] new Float:g_revive_delay[MAX+1] new Float:g_body_origin[MAX+1][3] new bool:g_wasducking[MAX+1] new g_vault new g_msg_bartime new g_msg_screenfade new g_msg_statusicon new g_msg_clcorpse new cvar_revival_time new cvar_revival_health new cvar_revival_dis new attacker new attacker1 new flashlight[33] new flashbattery[33] new flashlight_r new flashlight_g new flashlight_b new planter new defuser new map_end = 0 // max clip stock 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 }; // max bpammo stock const maxAmmo[31] = { -1, 52, -1, 90, -1, 32, -1, 100, 90, -1, 120, 100, 100, 90, 90, 90, 100, 100, 30, 120, 200, 32, 90, 120, 60, -1, 35, 90, 90, -1, 100 }; new gmsgDeathMsg new gmsgStatusText new gmsgBartimer new gmsgScoreInfo new gmsgHealth new g_msgHostageAdd, g_msgHostageDel; // radar new player, bossPower new old_mp_autoteambalance, Float:old_mp_roundtime, Float:old_mp_buytime, old_mp_freezetime, old_mp_startmoney new bool:freeze_ended new c4state[33] new c4bombc[33][3] new c4fake[33] new fired[33] new bool:ghost_check new ghosttime[33] new ghoststate[33] new naswietlony[33] new sprite_blood_drop = 0 new sprite_blood_spray = 0 new sprite_gibs = 0 new sprite_white = 0 new sprite_fire = 0 new sprite_beam = 0 new sprite_boom = 0 new sprite_line = 0 new sprite_lgt = 0 new sprite_laser = 0 new sprite_ignite = 0 new sprite_smoke = 0 new sprite_blast; new sprite; new player_xp[33] = 0 //Holds players experience new player_lvl[33] = 1 //Holds players level new player_point[33] = 0 //Holds players level points new player_item_id[33] = 0 //Items id new player_item_name[33][128] //The items name new player_intelligence[33] new player_strength[33] new player_agility[33] new mana_gracza[33] new Float:player_damreduction[33] new player_dextery[33] new player_class[33] new Float:player_huddelay[33] //Item attributes new player_b_vampire[33] = 1 //Vampyric damage new player_b_damage[33] = 1 //Bonus damage new player_b_money[33] = 1 //Money bonus new player_b_gravity[33] = 1 //Gravity bonus : 1 = best new player_b_inv[33] = 1 //Invisibility bonus new player_b_grenade[33] = 1 //Grenade bonus = 1/chance to kill new player_b_reduceH[33] = 1 //Reduces player health each round start new player_b_theif[33] = 1 //Amount of money to steal new player_b_respawn[33] = 1 //Chance to respawn upon death new player_b_explode[33] = 1 //Radius to explode upon death new player_b_heal[33] = 1 //Ammount of hp to heal each 5 second new player_b_gamble[33] = 1 //Random skill each round : value = vararity new player_b_blind[33] = 1 //Chance 1/Value to blind the enemy new player_b_fireshield[33] = 1 //Protects against explode and grenade bonus new player_b_meekstone[33] = 1 //Ability to lay a fake c4 and detonate new player_b_teamheal[33] = 1 //How many hp to heal when shooting a teammate new player_b_redirect[33] = 1 //How much damage will the player redirect new player_b_fireball[33] = 1 //Ability to shot off a fireball value = radius new player_b_ghost[33] = 1 //Ability to walk through stuff new player_b_eye[33] = 1 //Ability to place camera new player_b_blink[33] = 1 //Ability to get a railgun new player_b_windwalk[33] = 1 //Ability to windwalk away new player_b_usingwind[33] = 1 //Is player using windwalk new player_b_froglegs[33] = 1 //Ability to hold down duck for 4 sec to frog-jump new player_b_silent[33] = 1 //Is player silent new player_b_dagon[33] = 1 //Ability to nuke an opponent new player_b_sniper[33] = 1 //Ability to kill in 1/sniper with scout new c_awp[33] = 1 new player_b_m3master[33] = 1 new player_b_dglmaster[33] = 1 new player_b_awpmaster[33] = 1 new player_b_akmaster[33] = 1 new player_b_m4master[33] = 1 new player_b_jumpx[33] = 1 //Ability to double jump new player_b_smokehit[33] = 1 //Ability to hit and kill with smoke :] new player_b_extrastats[33] = 1 //Ability to gain extra stats new player_b_firetotem[33] = 1 //Ability to put down a fire totem that explodes after 7 seconds new player_b_hook[33] = 1 //Ability to grap a player a hook him towards you new player_b_darksteel[33] = 1 //Ability to damage double from behind the target new player_b_illusionist[33] = 1 //Ability to use the illusionist escape new player_b_mine[33] = 1 //Ability to lay down mines new c_mine[33] new c_shake[33] new c_shaked[33] new c_damage[33] new bool:c_ulecz[33] new c_jump[33] new c_respawn[33] new c_vampire[33] new c_silent[33] new player_b_antyarchy[33] new c_antyarchy[33] new player_b_antymeek[33] new c_antymeek[33] new player_b_antyorb[33] new c_antyorb[33] new player_b_antyfs[33] new c_antyfs[33] new niewidzialnosc_kucanie[33]; new c_grenade[33] new c_blind[33] new zmiana_skinu[33] new c_darksteel[33] new c_blink[33] new lustrzany_pocisk[33] = 1 new c_redirect[33] new losowe_itemy[33] new niewidka[33] new player_b_radar[33] = 1 // radar new player_b_autobh[33] = 1 new player_b_godmode[33] = 1 // niesmiertelnosc new player_b_zamroztotem[33] = 1 new player_b_fleshujtotem[33] = 1 new player_b_kasatotem[33] = 1 new player_b_kasaqtotem[33] = 1 new player_b_wywaltotem[33] = 1 new uzyl_przedmiot[33]; new c_piorun[33] new skinchanged[33] new player_dc_name[33][99] //Information about last disconnected players name new player_dc_item[33] //Information about last disconnected players item new player_sword[33] //nowyitem new player_ring[33] //ring stats bust +5 new Float:poprzednia_rakieta_gracza[33]; new ilosc_rakiet_gracza[33]; new ilosc_blyskawic[33],poprzednia_blyskawica[33]; //new ilosc_dynamitow_gracza[33]; new Float:g_wallorigin[33][3] new cel // do pokazywania statusu new item_info[513] //id itemu new item_name[513][128] //nazwa itemu new const modelitem[]="models/winebottle.mdl" //tutaj zmieniacie model itemu new const gszSound[] = "ambience/thunder_clap.wav"; //Cvars new pHook, pThrowSpeed, pSpeed, pWidth, pSound, pColor new pInterrupt, pAdmin, pHookSky, pOpenDoors, pPlayers new pUseButtons, pHostage, pWeapons, pInstant, pHookNoise new pMaxHooks, pRndStartDelay // Sprite new sprBeam // Players hook entity new Hook[33] // MaxPlayers new gMaxPlayers // some booleans new bool:gHooked[33] new bool:canThrowHook[33] new bool:rndStarted // Player Spawn new bool:gRestart[33] = {false, ...} new bool:gUpdate[33] = {false, ...} new gHooksUsed[33] // Used with sv_hookmax new bool:g_bHookAllowed[33] // Used with sv_hookadminonly ///////////////////////////////////////////////////////////////////// new player_ultra_armor[33] new player_ultra_armor_left[33] ///////////////////////////////////////////////////////////////////// new Float:player_b_oldsen[33] //Players old sens new bool:player_b_dagfired[33] //Fired dagoon? new bool:used_item[33] new jumps[33] //Keeps charge with the number of jumps the user has made new bool:dojump[33] //Are we jumping? new item_boosted[33] //Has this user boosted his item? new earthstomp[33] new bool:falling[33] new gravitytimer[33] new item_durability[33] //Durability of hold item new CTSkins[4][]={"sas","gsg9","urban","gign"} new TSkins[4][]={"arctic","leet","guerilla","terror"} new SWORD_VIEW[] = "models/diablomod/v_knife.mdl" new SWORD_PLAYER[] = "models/diablomod/p_knife.mdl" new KNIFE_VIEW[] = "models/v_knife.mdl" new KNIFE_PLAYER[] = "models/p_knife.mdl" new C4_VIEW[] = "models/v_c4.mdl" new C4_PLAYER[] = "models/p_c4.mdl" new HE_VIEW[] = "models/v_hegrenade.mdl" new HE_PLAYER[] = "models/p_hegrenade.mdl" new FL_VIEW[] = "models/v_flashbang.mdl" new FL_PLAYER[] = "models/p_flashbang.mdl" new SE_VIEW[] = "models/v_smokegrenade.mdl" new SE_PLAYER[] = "models/p_smokegrenade.mdl" new cbow_VIEW[] = "models/diablomod/v_crossbow.mdl" new cvow_PLAYER[]= "models/diablomod/p_crossbow.mdl" new cbow_bolt[] = "models/diablomod/Crossbow_bolt.mdl" new LeaderCT = -1 new LeaderT = -1 new JumpsLeft[33] new JumpsMax[33] enum { NONE = 0, Mag, Mnich, Paladyn, Zabojca, Nekromanta, Barbarzynca, Ninja, Hunter, Andariel, Duriel, Mefisto, Hefasto, Diablo, Baal, Upadly, Imp, Izual, Skoczek, Zniewolony, Zgniatacz, Pijawka, GigantycznyPajak, SniegowyTulacz, Griswold, Kowal, Demonolog, VipCztery } new Race[28][18] = { "None","Czarodziejka","Druid","Paladyn","Zabojczyni","Nekromanta","Barbarzynca", "Ninja", "Amazonka","Andariel", "Duriel", "Mefisto", "Hefasto", "Diablo", "Baal", "Upadly", "Imp", "Izual", "Skoczek", "Zniewolony", "Zgniatacz", "Pijawka", "Gigantyczny Pajak", "Sniegowy Tulacz","Griswold","Kowal","Demonolog","VipCztery" } new race_heal[28] = { 100,110,150,130,140,110,120,170,140,110,130,120,140,130,120,123,110,135,135,127,130,140,115,135,145,145,145,145 } new LevelXP[101] = { 0,50,125,225,340,510,765,1150,1500,1950,2550,3300,4000,4800,5800,7000,8500,9500,10500,11750,13000, //21 14300,15730,17300,19030,20900,23000,24000,25200,26400,27700,29000,30500,32000,33600,35300,37000,39000,41000,43000,45100,//41 47400,49800,52300,55000,57800,60700,63700,66900,70200,73700,77400,80000,82400,84900,87500,90000,92700,95500,98300,101000,//61 104000,107000,110000,113000,116000,120000,123000,126700,130000,134000,138000,142000,146000,150000,154000,158000,163000,168000,173000,178000,//81 183000,188000,194000,200000,206000,212000,218000,225000,232000,239000,246000,253000,261000,269000,277000,285000,294000,303000,500000,9999999} //101 //For Hook and powerup sy new hooked[33] new Float:player_global_cooldown[33] //For optimization new last_update_xp[33] new Float:last_update_perc[33] new bool:use_addtofullpack #define ICON_HIDE 0 #define ICON_SHOW 1 #define ICON_FLASH 2 #define ICON_S "suithelmet_full" new wear_sun[33] new anty_flesh[33] //Flags a user can have enum { Flag_Ignite = 0, Flag_Hooking, Flag_Rot, Flag_Dazed, Flag_Illusion, Flag_Moneyshield, Flag_Teamshield, Flag_Teamshield_Target, num_of_flags } //Flags new afflicted[33][num_of_flags] //noze new max_knife[33] new player_knife[33] new Float:tossdelay[33] //luk new Float:bowdelay[33] new bow[33] new button[33] // hunter - slad #define TARACE_TASK 91203 new trace_bool[33] #define NADE_VELOCITY EV_INT_iuser1 #define NADE_ACTIVE EV_INT_iuser2 #define NADE_TEAM EV_INT_iuser3 #define NADE_PAUSE EV_INT_iuser4 new cvar_throw_vel = 90 // def: 90 new cvar_activate_dis = 175 // def 190 new cvar_nade_vel = 280 //def 280 new Float: cvar_explode_delay = 0.5 // def 0.50 new g_TrapMode[33] new g_GrenadeTrap[33] = {0, ... } new Float:g_PreThinkDelay[33] new Float:gfBlockSizeMin1[3]= {-32.0,-4.0,-32.0}; new Float:gfBlockSizeMax1[3]= { 32.0, 4.0, 32.0}; new Float:vAngles1[3] = {90.0,90.0,0.0} new Float:gfBlockSizeMin2[3]= {-4.0,-32.0,-32.0} new Float:gfBlockSizeMax2[3]= { 4.0, 32.0, 32.0} new Float:vAngles2[3] = {90.0,0.0,0.0} new casting[33] new Float:cast_end[33] new on_knife[33] new golden_bulet[33] new ultra_armor[33] new after_bullet[33] new num_shild[33] new invisible_cast[33] new player_dmg[33] /* PLUGIN CORE REDIRECTING TO FUNCTIONS ========================================================== */ //questy new quest_gracza[33]; new ile_juz[33]; //przedzial , ile ,kogo , nagroda expa, vip 1 tak 0 nie new questy[][]={ {1,2,Ninja,500,0}, {1,3,Mag,1200,1}, {1,6,Zabojca,2000,0}, {2,6,Hunter,5000,0}, {2,15,Barbarzynca,15000,1}, {2,20,Paladyn,20000,1}, {3,65,Barbarzynca,150000,1}, {3,120,Paladyn,200000,1} } new vault_questy; new vault_questy2; //od , do , hp new prze[][]={ {1,50,20}, {51,80,40}, {81,140,60} } new prze_wybrany[33] new questy_info[][]={ "Zabij 2 Ninje (Nagroda 500 doswiadczenia)", "Zabij 3 Magow (Nagroda 1200 doswiadczenia)", "Zabij 6 Zabojcow (Nagroda 2000 doswiadczenia)", "Zabij 6 Lowcow (Nagroda 5000 doswiadczenia)", "Zabij 15 Barbarzyncow (Nagroda 15000 doswiadczenia)", "Zabij 20 Paladynow (Nagroda 20000 doswiadczenia)", "Zabij 65 Barbarzyncow (Nagroda 150000 doswiadczenia)", "Zabij 120 Paladynow (Nagroda 200000 doswiadczenia)" } new questy_zabil[][]={ "Ninjow", "Magow", "Zabojcow", "Lowcow", "Barbarzyncow", "Paladynow", "Barbarzyncow", "Paladynow" } public plugin_init() { g_vault = nvault_open("Diablo_stats") register_cvar("diablo_classes", "abcdefghijklmnoprstuwxyz!@#$") // a Mag // b Paladyn // c Mnich // d Zabojca // e Barbarzynca // f Nekromanta // g Ninja // h Hunter cvar_revival_time = register_cvar("amx_revkit_time", "3") cvar_revival_health = register_cvar("amx_revkit_health", "25") cvar_revival_dis = register_cvar("amx_revkit_distance", "70.0") g_msg_bartime = get_user_msgid("BarTime") g_msg_clcorpse = get_user_msgid("ClCorpse") g_msg_screenfade= get_user_msgid("ScreenFade") g_msg_statusicon= get_user_msgid("StatusIcon") register_message(g_msg_clcorpse, "message_clcorpse") register_event("HLTV", "event_hltv", "a", "1=0", "2=0") register_forward(FM_Touch, "fwd_touch") register_forward(FM_Touch, "fwTouch") register_forward(FM_EmitSound, "fwd_emitsound") register_forward(FM_PlayerPostThink, "fwd_playerpostthink") RegisterHam(Ham_TakeDamage, "player", "lustrzanypocisk") register_plugin("DiabloMod","5.9i PL","Miczu & GuTeK") register_cvar("diablomod_version","5.9i PL",FCVAR_SERVER) register_cvar("flashlight_custom","1"); register_cvar("flashlight_drain","1.0"); register_cvar("flashlight_charge","0.5"); register_cvar("flashlight_radius","8"); register_cvar("flashlight_decay","90"); register_event("Flashlight","event_flashlight","b"); register_event("CurWeapon","CurWeapon","be", "1=1") register_event("ResetHUD", "ResetHUD", "abe") register_event("ScreenFade","det_fade","be","1!0","2!0","7!0") register_event("DeathMsg","DeathMsg","ade") register_event("Damage", "Damage", "b", "2!0") register_event("SendAudio","freeze_over","b","2=%!MRAD_GO","2=%!MRAD_MOVEOUT","2=%!MRAD_LETSGO","2=%!MRAD_LOCKNLOAD") register_event("SendAudio","freeze_begin","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw") register_event("HLTV", "round_bstart", "a", "1=0", "2=0") register_logevent("round_estart", 2, "1=Round_Start") register_event("SendAudio", "award_defuse", "a", "2&%!MRAD_BOMBDEF") register_event("BarTime", "bomb_defusing", "be", "1=10", "1=5") register_logevent("award_plant", 3, "2=Planted_The_Bomb"); register_event("StatusIcon", "got_bomb", "be", "1=1", "1=2", "2=c4") register_event("TextMsg", "award_hostageALL", "a", "2&#All_Hostages_R" ); register_event("TextMsg","host_killed","b","2&#Killed_Hostage") register_event("SendAudio","eventGrenade","bc","2=%!MRAD_FIREINHOLE") register_event("TextMsg", "freeze_begin", "a", "2=#Game_will_restart_in") register_event("SendAudio", "TTWin", "a", "2&%!MRAD_terwin") register_event("SendAudio", "CTWin", "a", "2&%!MRAD_ctwin") register_clcmd("say drop","dropitem") register_clcmd("say /drop","dropitem") register_clcmd("say /d","dropitem") register_clcmd("say /przedmiot","iteminfo") register_clcmd("say /p","iteminfo") register_clcmd("say /item","iteminfo") register_clcmd("say /i","iteminfo") register_clcmd("say /noweitemy","show_menu_item") register_clcmd("say /itemy","show_menu_item") register_clcmd("przedmiot","iteminfo") register_clcmd("/przedmiot","iteminfo") register_clcmd("say /przedmiot","iteminfo") register_clcmd("say /Pomoc","helpme") register_clcmd("say /Klasa","changerace") register_clcmd("say /k","changerace") register_clcmd("say /speed","speed") register_clcmd("say /s","speed") register_clcmd("blysk", "cmdBlyskawica"); register_concmd("rakieta","StworzRakiete") register_concmd("fleszuj","Flesh") //register_concmd("dynamit","PolozDynamit") register_concmd("paladyn","check_palek") register_concmd("kladzmine","item_mine") register_clcmd("+lina", "make_hook") register_clcmd("-lina", "del_hook") register_clcmd("amx_boss","cmdMakeBoss",ADMIN_SLAY," - make player a boss. Power must be 201 to 999") register_clcmd("amx_unboss","cmdUnmakeBoss",ADMIN_SLAY,"- end the boss event") register_event("TeamScore","hook_teamscore","a") register_menucmd(register_menuid("Team_Select"),(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select") register_menucmd(-2,(1<<0)|(1<<1)|(1<<4)|(1<<5),"hook_team_select") player=0 register_concmd("amx_givehook", "give_hook", ADMIN_IMMUNITY, " - Give somebody access to the hook") register_concmd("amx_takehook", "take_hook", ADMIN_IMMUNITY, " - Take away somebody his access to the hook") register_clcmd("say klasa","changerace") register_clcmd("say /gracze","cmd_who") register_clcmd("say /g","cmd_who") register_clcmd("klasa","changerace") register_clcmd("say /klasa","changerace") register_clcmd("say /zmianaklasy","changerace") register_clcmd("say zmianaklasy","changerace") register_clcmd("say /czary", "showskills") register_clcmd("say /cz", "showskills") register_clcmd("say czary", "showskills") register_clcmd("say /menu","showmenu") register_clcmd("menu","showmenu") register_clcmd("say /komendy","komendy") register_clcmd("pomoc","helpme") register_clcmd("say /rune","buyrune") register_clcmd("/rune","buyrune") register_clcmd("/r","buyrune") register_clcmd("rune","buyrune") register_clcmd("/czary","showskills") register_clcmd("/czary","showskills") register_clcmd("say /czary","showskills") register_clcmd("say /czary","showskills") register_clcmd("say /savexp","savexpcom") //register_clcmd("say /loadxp","LoadXP") register_clcmd("say /reset","reset_skill") register_clcmd("say /exp", "exp") register_clcmd("say exp", "exp") register_clcmd("reset","reset_skill") register_clcmd("/reset","reset_skill") register_clcmd("say /mana","mana1") register_clcmd("say /m","mana1") register_clcmd("mod","mod_info") register_menucmd(register_menuid("Wybierz Staty"), 1023, "skill_menu") register_menucmd(register_menuid("Opcje"), 1023, "option_menu") register_menucmd(register_menuid("Wybierz Klase"), 1023, "select_class_menu") register_menucmd(register_menuid("Sklep z runami"), 1023, "select_rune_menu") register_menucmd(register_menuid("Nowe Itemy"), 1023, "nowe_itemy") register_menucmd(register_menuid("Klasy"), 1023, "PressedKlasy") register_menucmd(register_menuid("Lok"), 1023, "PokazMeni") register_menucmd(register_menuid("Zwierzeta"), 1023, "PokazZwierz") register_menucmd(register_menuid("Premium"), 1023, "PokazPremium") gmsgDeathMsg = get_user_msgid("DeathMsg") gmsgStatusText = get_user_msgid("StatusText") gmsgBartimer = get_user_msgid("BarTime") gmsgScoreInfo = get_user_msgid("ScoreInfo") register_cvar("diablo_dmg_exp","20",0) register_cvar("diablo_xpbonus","5",0) register_cvar("diablo_xpbonus2","50",0) register_cvar("diablo_xpbonus3","20",0) register_cvar("diablo_durability","5",0) register_cvar("SaveXP", "1") set_msg_block ( gmsgDeathMsg, BLOCK_SET ) set_task(5.0, "Timed_Healing", 0, "", 0, "b") set_task(1.0, "radar_scan", 0, _, _, "b"); // radar set_task(1.0, "Timed_Ghost_Check", 0, "", 0, "b") set_task(0.8, "UpdateHUD",0,"",0,"b") register_think("PlayerCamera","Think_PlayerCamera"); register_think("PowerUp","Think_PowerUp") register_think("Effect_Rot","Effect_Rot_Think") register_think("Effect_Zamroz_Totem","Effect_Zamroz_Totem_Think") register_think("Effect_Fleshuj_Totem","Effect_Fleshuj_Totem_Think") register_think("Effect_Wywal_Totem","Effect_Wywal_Totem_Think") register_think("Effect_Kasa_Totem","Effect_Kasa_Totem_Think") register_think("Effect_Kasaq_Totem","Effect_Kasaq_Totem_Think") register_think("HealBot", "HealBotThink"); CreateHealBot(); register_think("HealBot2", "HealBotThink2"); CreateHealBot2(); register_think("HealBot3", "HealBotThink3"); CreateHealBot3(); register_think("HealBot4", "HealBotThink4"); CreateHealBot4(); register_logevent("RoundStart", 2, "0=World triggered", "1=Round_Start") register_clcmd("fullupdate","fullupdate") register_clcmd("amx_dajitem", "giveitem", ADMIN_IMMUNITY, "Uzycie 255) { message_begin( MSG_ONE, gmsgHealth, {0,0,0}, id ) write_byte( 255 ) message_end() } } } public speed(id) { new Float:spd = get_user_maxspeed(id) client_print(id,print_chat,"Max: %f",spd) new Float:vect[3] entity_get_vector(id,EV_VEC_velocity,vect) new Float: sped= floatsqroot(vect[0]*vect[0]+vect[1]*vect[1]+vect[2]*vect[2]) client_print(id,print_chat,"Teraz: %f",sped) } public plugin_precache() { precache_model("models/rpgrocket.mdl") precache_model("models/bag.mdl") precache_model(modelitem) precache_model("models/zombie.mdl") precache_model("addons/amxmodx/diablo/mine.mdl") precache_model("addons/amxmodx/diablo/totem_ignite.mdl") precache_model("addons/amxmodx/diablo/totem_heal.mdl") precache_model("models/player/arctic/arctic.mdl") precache_model("models/player/leet/leet.mdl") precache_model("models/player/guerilla/guerilla.mdl") precache_model("models/player/terror/terror.mdl") precache_model("models/player/urban/urban.mdl") precache_model("models/player/sas/sas.mdl") precache_model("models/player/gsg9/gsg9.mdl") precache_model("models/player/gign/gign.mdl") precache_model(SWORD_VIEW) precache_model(SWORD_PLAYER) precache_model(KNIFE_VIEW) precache_model(KNIFE_PLAYER) precache_model(C4_VIEW) precache_model(C4_PLAYER) precache_model(HE_VIEW) precache_model(HE_PLAYER) precache_model(FL_VIEW) precache_model(FL_PLAYER) precache_model(SE_VIEW) precache_model(SE_PLAYER) precache_sound("weapons/xbow_hit2.wav") precache_sound("weapons/xbow_fire1.wav") sprite_blood_drop = precache_model("sprites/blood.spr") sprite_blood_spray = precache_model("sprites/bloodspray.spr") sprite_ignite = precache_model("addons/amxmodx/diablo/flame.spr") sprite_smoke = precache_model("sprites/steam1.spr") sprite_laser = precache_model("sprites/laserbeam.spr") sprite_boom = precache_model("sprites/zerogxplode.spr") sprite_line = precache_model("sprites/dot.spr") sprite_lgt = precache_model("sprites/lgtning.spr") sprite_white = precache_model("sprites/white.spr") sprite_fire = precache_model("sprites/explode1.spr") sprite_gibs = precache_model("models/hgibs.mdl") sprite_beam = precache_model("sprites/zbeam4.spr") sprite = precache_model("sprites/lgtning.spr"); precache_model("models/player/arctic/arctic.mdl") precache_model("models/player/terror/terror.mdl") precache_model("models/player/leet/leet.mdl") precache_model("models/player/guerilla/guerilla.mdl") precache_model("models/player/gign/gign.mdl") precache_model("models/player/sas/sas.mdl") precache_model("models/player/gsg9/gsg9.mdl") precache_model("models/player/urban/urban.mdl") precache_model("models/player/vip/vip.mdl") precache_sound(SOUND_START) precache_sound(SOUND_FINISHED) precache_sound(SOUND_FAILED) precache_sound(SOUND_EQUIP) precache_sound("weapons/knife_hitwall1.wav") precache_sound("weapons/knife_hit4.wav") precache_sound("weapons/knife_deploy1.wav") precache_sound(gszSound); precache_model("models/diablomod/w_throwingknife.mdl") precache_model("models/diablomod/bm_block_platform.mdl") precache_model(cbow_VIEW) precache_model(cvow_PLAYER) precache_model(cbow_bolt) // Hook Model engfunc(EngFunc_PrecacheModel, "models/rpgrocket.mdl") // Hook Beam sprBeam = engfunc(EngFunc_PrecacheModel, "sprites/zbeam4.spr") // Hook Sounds engfunc(EngFunc_PrecacheSound, "weapons/xbow_hit1.wav") // good hit engfunc(EngFunc_PrecacheSound, "weapons/xbow_hit2.wav") // wrong hit engfunc(EngFunc_PrecacheSound, "weapons/xbow_hitbod1.wav") // player hit engfunc(EngFunc_PrecacheSound, "weapons/xbow_fire1.wav") // deploy } public plugin_cfg() { server_cmd("sv_maxspeed 1500") } public plugin_natives() { register_native("db_get_user_xp", "native_get_user_xp", 1) register_native("db_set_user_xp", "native_set_user_xp", 1) register_native("db_get_user_level", "native_get_user_level", 1) register_native("db_set_user_level", "native_set_user_level", 1) register_native("db_get_user_class", "native_get_user_class", 1) register_native("db_set_user_class", "native_set_user_class", 1) register_native("db_get_user_item", "native_get_user_item", 1) register_native("db_set_user_item", "native_set_user_item", 1) } public savexpcom(id) { if(get_cvar_num("SaveXP") == 1) { SubtractStats(id,player_b_extrastats[id]) SubtractRing(id) SaveXP(id) BoostStats(id,player_b_extrastats[id]) BoostRing(id) SaveXP(id) } } public SaveXP(id){ new name[32]; get_user_name(id,name,31); replace_all(name, 31, " ", "'") new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-Dbmod",name) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i",player_class[id],player_xp[id],player_lvl[id],player_intelligence[id],player_strength[id],player_point[id],player_agility[id],player_dextery[id],mana_gracza[id]) nvault_set(g_vault,vaultkey,vaultdata) return PLUGIN_HANDLED } public LoadXP(id){ new name[32]; get_user_name(id,name,31); replace_all(name, 31, " ", "'") new vaultkey[64],vaultdata[256] format(vaultkey,63,"%s-Dbmod",name) format(vaultdata,255,"%i#%i#%i#%i#%i#%i#%i#%i#%i",player_class[id],player_xp[id],player_lvl[id],player_intelligence[id],player_strength[id],player_point[id],player_agility[id],player_dextery[id],mana_gracza[id]) nvault_get(g_vault,vaultkey,vaultdata,255) replace_all(vaultdata, 255, "#", " ") new playerclass[33], playerxp[33],playerlvl[33],playerintelligence[33],playerstrength[33],playerpoint[33],playeragility[33],playerdextery[33],managracza[33] parse(vaultdata, playerclass, 32, playerxp, 32, playerlvl, 32, playerintelligence, 32, playerstrength, 32, playerpoint, 32, playeragility, 32, playerdextery, 32, managracza, 32) player_class[id] = str_to_num(playerclass) player_xp[id] = str_to_num(playerxp) player_lvl[id] = str_to_num(playerlvl) player_intelligence[id] = str_to_num(playerintelligence) player_strength[id] = str_to_num(playerstrength) player_point[id] = str_to_num(playerpoint) player_agility[id] = str_to_num(playeragility) player_dextery[id] = str_to_num(playerdextery) mana_gracza[id] = str_to_num(managracza) player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100) give_knife(id) return PLUGIN_HANDLED } public reset_skill(id) { client_print(id,print_chat,"Reset skill'ow") player_point[id] = player_lvl[id]*2-2 player_intelligence[id] = 0 player_strength[id] = 0 player_agility[id] = 0 player_dextery[id] = 0 BoostRing(id) BoostStats(id,player_b_extrastats[id]) skilltree(id) set_speedchange(id) player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100) } public freeze_over() { //new Float: timea //timea=get_cvar_float("diablo_klass_delay") set_task(get_cvar_float("diablo_klass_delay"), "freezeover", 3659, "", 0, "") } public freezeover() { freeze_ended = true } public freeze_begin() { freeze_ended = false } public RoundStart(){ for (new i=0; i < 33; i++){ if(player_class[i] == Baal) { zmiana_skinu[i] = random(5) if(zmiana_skinu[i] == 1) { changeskin(i,0) ColorChat(i, TEAM_COLOR, "Wygladasz jak przeciwnik!") } else changeskin(i,1) } else zmiana_skinu[i] = 0 used_item[i] = false naswietlony[i] = 0; losowe_itemy[i] = 0 uzyl_przedmiot[i] = 0 DemageTake1[i]=1 count_jumps(i) give_knife(i) JumpsLeft[i]=JumpsMax[i] kill_all_entity("przedmiot") if(player_class[i] == Nekromanta) g_haskit[i]=1 else g_haskit[i]=0 if(player_class[i] == Hunter) { fm_give_item(i,"weapon_deagle") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") } if(player_class[i] == Skoczek) { fm_give_item(i,"weapon_deagle") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"weapon_ak47") fm_give_item(i,"ammo_762nato") fm_give_item(i,"ammo_762nato") fm_give_item(i,"ammo_762nato") fm_give_item(i,"ammo_762nato") } if(player_class[i] == Zniewolony) { fm_give_item(i,"weapon_m4a1") fm_give_item(i,"ammo_556nato") fm_give_item(i,"ammo_556nato") fm_give_item(i,"ammo_556nato") fm_give_item(i,"ammo_556nato") } if(player_class[i] == SniegowyTulacz) { fm_give_item(i,"weapon_famas") fm_give_item(i,"ammo_556nato") fm_give_item(i,"ammo_556nato") fm_give_item(i,"ammo_556nato") fm_give_item(i,"ammo_556nato") } if(player_class[i] == Pijawka) { fm_give_item(i,"weapon_awp") fm_give_item(i,"ammo_338magnum") fm_give_item(i,"ammo_338magnum") fm_give_item(i,"ammo_338magnum") fm_give_item(i,"ammo_338magnum") } if(player_class[i] == Zgniatacz) { fm_give_item(i,"weapon_p90") fm_give_item(i,"ammo_57mm") fm_give_item(i,"ammo_57mm") fm_give_item(i,"ammo_57mm") } if(player_class[i] == Imp) { fm_give_item(i,"weapon_hegrenade") fm_give_item(i,"weapon_flashbang") fm_give_item(i,"weapon_flasgbang") fm_give_item(i,"weapon_smokegrenade") } if(player_class[i] == Baal) { fm_give_item(i,"weapon_m3") fm_give_item(i,"ammo_buckshot") fm_give_item(i,"ammo_buckshot") fm_give_item(i,"ammo_buckshot") fm_give_item(i,"ammo_buckshot") fm_give_item(i,"ammo_buckshot") } if(player_class[i] == Diablo) { fm_give_item(i,"weapon_elite") fm_give_item(i,"ammo_9mm") fm_give_item(i,"ammo_9mm") fm_give_item(i,"ammo_9mm") fm_give_item(i,"ammo_9mm") fm_give_item(i,"ammo_9mm") fm_give_item(i,"ammo_9mm") } if(player_class[i] == Hefasto) { fm_give_item(i,"weapon_hegrenade") fm_give_item(i,"weapon_deagle") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") fm_give_item(i,"ammo_50ae") } golden_bulet[i]=0 c_ulecz[i] = false if(player_class[i] == Duriel) ilosc_rakiet_gracza[i]=3 else if(player_class[i] == Griswold) ilosc_rakiet_gracza[i]=2 else if(player_class[i] == Demonolog) ilosc_rakiet_gracza[i]=3 if(player_class[i] == Zgniatacz) { ilosc_blyskawic[i]=3; poprzednia_blyskawica[i]=0 } else if(player_class[i] == SniegowyTulacz) { ilosc_blyskawic[i]=3; poprzednia_blyskawica[i]=0 } else if(player_class[i] == Kowal) { ilosc_blyskawic[i]=3; poprzednia_blyskawica[i]=0 } //else ilosc_rakiet_gracza[i]=0 /*if(player_class[i] == Zgniatacz) ilosc_dynamitow_gracza[i]=1 else if(player_class[i] == SniegowyTulacz) ilosc_dynamitow_gracza[i]=1 else if(player_class[i] == Kowal) ilosc_dynamitow_gracza[i]=1*/ //else ilosc_rakiet_gracza[i]=0 invisible_cast[i]=0 niewidka[i] = 0 ultra_armor[i]=0 lustrzany_pocisk[i]=0 num_shild[i]=2+floatround(player_intelligence[i]/25.0,floatround_floor) set_renderchange(i) if(is_user_connected(i)&&player_item_id[i]==66) { changeskin(i,0) } } kill_all_entity("throwing_knife") Bot_Setup() ghost_check = false check_class() use_addtofullpack = false } #if defined CHEAT public giveitem(id) { award_item(id, 25) return PLUGIN_HANDLED } public benchmark(id) { new Float:nowtime = halflife_time(); new iterations = 10 for (new i=0; i < iterations; i++) { UpdateHUD() } new Float:timespent = halflife_time()-nowtime client_print(id,print_chat,"Benchmark on: UpdateHUD() with %i iterations done in %f seconds",iterations,timespent) } #endif /* BASIC FUNCTIONS ================================================================================ */ public csw_c44(id) { client_cmd(id,"weapon_knife") engclient_cmd(id,"weapon_knife") on_knife[id]=1 } public CurWeapon(id) { after_bullet[id]=1 new clip,ammo new weapon=get_user_weapon(id,clip,ammo) invisible_cast[id]=0 niewidka[id] = 0 if(weapon == CSW_KNIFE) { on_knife[id] = 1 if(player_class[id] == Kowal) niewidka[id] = 1 } else on_knife[id]=0 if ((weapon != CSW_C4 ) && !on_knife[id] && (player_class[id] == Ninja)) { client_cmd(id,"weapon_knife") engclient_cmd(id,"weapon_knife") on_knife[id]=1 } if (is_user_connected(id)) { //if (player_item_id[id] == 17 || player_b_usingwind[id] == 1)// engclient_cmd(id,"weapon_knife") if(player_sword[id] == 1) { if(on_knife[id]){ entity_set_string(id, EV_SZ_viewmodel, SWORD_VIEW) entity_set_string(id, EV_SZ_weaponmodel, SWORD_PLAYER) } if(weapon == CSW_C4){ entity_set_string(id, EV_SZ_viewmodel, C4_VIEW) entity_set_string(id, EV_SZ_weaponmodel, C4_PLAYER) } if(weapon == CSW_HEGRENADE){ entity_set_string(id, EV_SZ_viewmodel, HE_VIEW) entity_set_string(id, EV_SZ_weaponmodel, HE_PLAYER) } if(weapon == CSW_FLASHBANG){ entity_set_string(id, EV_SZ_viewmodel, FL_VIEW) entity_set_string(id, EV_SZ_weaponmodel, FL_PLAYER) } if(weapon == CSW_SMOKEGRENADE){ entity_set_string(id, EV_SZ_viewmodel, SE_VIEW) entity_set_string(id, EV_SZ_weaponmodel, SE_PLAYER) } } if(player_sword[id] == 0) { if(on_knife[id]){ entity_set_string(id, EV_SZ_viewmodel, KNIFE_VIEW) entity_set_string(id, EV_SZ_weaponmodel, KNIFE_PLAYER) } if(weapon == CSW_C4){ entity_set_string(id, EV_SZ_viewmodel, C4_VIEW) entity_set_string(id, EV_SZ_weaponmodel, C4_PLAYER) } if(weapon == CSW_HEGRENADE){ entity_set_string(id, EV_SZ_viewmodel, HE_VIEW) entity_set_string(id, EV_SZ_weaponmodel, HE_PLAYER) } if(weapon == CSW_FLASHBANG){ entity_set_string(id, EV_SZ_viewmodel, FL_VIEW) entity_set_string(id, EV_SZ_weaponmodel, FL_PLAYER) } if(weapon == CSW_SMOKEGRENADE){ entity_set_string(id, EV_SZ_viewmodel, SE_VIEW) entity_set_string(id, EV_SZ_weaponmodel, SE_PLAYER) } } if(bow[id]==1) { bow[id]=0 if(on_knife[id]) { entity_set_string(id, EV_SZ_viewmodel, KNIFE_VIEW) entity_set_string(id, EV_SZ_weaponmodel, KNIFE_PLAYER) } } set_gravitychange(id) set_speedchange(id) set_renderchange(id) if(player_class[id] == Nekromanta) g_haskit[id] = true else g_haskit[id] = false write_hud(id) } } public ResetHUD(id) { if (is_user_connected(id)) { remove_task(id+GLUTON) change_health(id,9999,0,"") if (c4fake[id] > 0) { remove_entity(c4fake[id]) c4fake[id] = 0 } SubtractStats(id,player_b_extrastats[id]) SubtractRing(id) if ((player_intelligence[id]+player_strength[id]+player_agility[id]+player_dextery[id])>(player_lvl[id]*2)) reset_skill(id) BoostStats(id,player_b_extrastats[id]) BoostRing(id) fired[id] = 0 player_ultra_armor_left[id]=player_ultra_armor[id] player_b_dagfired[id] = false ghoststate[id] = 0 earthstomp[id] = 0 if (player_b_blink[id] > 0) player_b_blink[id] = 1 if (player_b_usingwind[id] > 0) { player_b_usingwind[id] = 0 } if (player_point[id] > 0 ) skilltree(id) add_bonus_gamble(id) //MUST be first c4state[id] = 0 client_cmd(id,"hud_centerid 0") auto_help(id) add_money_bonus(id) set_gravitychange(id) add_redhealth_bonus(id) SelectBotRace(id) set_renderchange(id) if (gRestart[id]) { gRestart[id] = false return } if (gUpdate[id]) { gUpdate[id] = false return } if (gHooked[id]) { remove_hook(id) } if (get_pcvar_num(pMaxHooks) > 0) { gHooksUsed[id] = 0 statusMsg(0, "[Hook] 0 of %d hooks used.", get_pcvar_num(pMaxHooks)) } } } public DeathMsg(id) { new weaponname[20] new kid = read_data(1) new vid = read_data(2) new headshot = read_data(3) read_data(4,weaponname,31) reset_player(vid) msg_bartime(id, 0) static Float:minsize[3] pev(vid, pev_mins, minsize) if(minsize[2] == -18.0) g_wasducking[vid] = true else g_wasducking[vid] = false set_task(0.5, "task_check_dead_flag", vid) flashbattery[vid] = MAX_FLASH; flashlight[vid] = 0; if(player_sword[id] == 1){ if(on_knife[id]){ if(get_user_team(kid) != get_user_team(vid)) { set_user_frags(kid, get_user_frags(kid) + 1) award_kill(kid,vid) } } } if (is_user_connected(kid) && is_user_connected(vid) && get_user_team(kid) != get_user_team(vid)) { show_deadmessage(kid,vid,headshot,weaponname) create_itm(vid,0,"losowy item") award_kill(kid,vid) add_respawn_bonus(vid) add_bonus_explode(vid) add_barbarian_bonus(kid) //mana_gracza[kid]+=1 //mana_gracza[headshot]+=2 if (player_class[kid] == Barbarzynca) refill_ammo(kid) if (player_class[kid] == Griswold) refill_ammo(kid) if (player_class[kid] == Kowal) refill_ammo(kid) if (player_class[kid] == Demonolog) refill_ammo(kid) set_renderchange(kid) savexpcom(vid) if(quest_gracza[kid] != -1){ if(player_class[vid] == questy[quest_gracza[kid]][2]){ ile_juz[kid]++; zapisz_aktualny_quest(kid) } if(ile_juz[kid] == questy[quest_gracza[kid]][1]){ client_print(kid,print_chat,"Wykonales zadanie %s gratulacje otrzymujesz %i expa!",questy_info[quest_gracza[kid]],questy[quest_gracza[kid]][3]) zapisz_questa(kid,quest_gracza[kid]) Give_Xp(kid,questy[quest_gracza[kid]][3]); quest_gracza[kid] = -1; zapisz_aktualny_quest(kid) } else { client_print(kid,print_chat,"Zabiles %i/%i %s",ile_juz[kid],questy[quest_gracza[kid]][1],questy_zabil[quest_gracza[kid]]) } } } } public Damage(id) { if (is_user_connected(id)) { new weapon new bodypart if(get_user_attacker(id,weapon,bodypart)!=0) { new damage = read_data(2) new attacker_id = get_user_attacker(id,weapon,bodypart) if (is_user_connected(attacker_id) && attacker_id != id) { if(get_user_team(id) != get_user_team(attacker_id)) { if(damage>175) player_dmg[attacker_id]+=damage/2 else player_dmg[attacker_id]+=damage dmg_exp(attacker_id) } add_damage_bonus(id,damage,attacker_id) add_vampire_bonus(id,damage,attacker_id) add_grenade_bonus(id,attacker_id,weapon) add_theif_bonus(id,attacker_id) add_bonus_blind(id,attacker_id,weapon,damage) add_bonus_redirect(id) add_bonus_necromancer(attacker_id,id) add_bonus_scoutdamage(attacker_id,id,weapon) add_bonus_cawpmasterdamage(attacker_id,id,weapon) add_bonus_m4masterdamage(attacker_id,id,weapon) add_bonus_akmasterdamage(attacker_id,id,weapon) add_bonus_dglmasterdamage(attacker_id,id,weapon) add_bonus_m3masterdamage(attacker_id,id,weapon) add_bonus_awpmasterdamage(attacker_id,id,weapon) add_bonus_darksteel(attacker_id,id,damage) add_bonus_illusion(attacker_id,id,weapon) add_bonus_shake(attacker_id,id) add_bonus_shaked(attacker_id,id) item_take_damage(id,damage) if(player_sword[attacker_id] == 1 && weapon==CSW_KNIFE ){ change_health(id,-35,attacker_id,"world") } if (HasFlag(attacker_id,Flag_Ignite)) RemoveFlag(attacker_id,Flag_Ignite) if((HasFlag(id,Flag_Illusion) || HasFlag(id,Flag_Teamshield))&& get_user_health(id) - damage > 0) { new weaponname[32]; get_weaponname( weapon, weaponname, 31 ); replace(weaponname, 31, "weapon_", "") UTIL_Kill(attacker_id,id,weaponname) } if (HasFlag(id,Flag_Moneyshield)) { change_health(id,damage/2,0,"") } //Add the agility damage reduction, around 45% the curve flattens if (damage > 0 && player_agility[id] > 0) { new heal = floatround(player_damreduction[id]*damage) if (is_user_alive(id)) change_health(id,heal,0,"") } if (HasFlag(id,Flag_Teamshield_Target)) { //Find the owner of the shield new owner = find_owner_by_euser(id,"Effect_Teamshield") new weaponname[32]; get_weaponname( weapon, weaponname, 31 ); replace(weaponname, 31, "weapon_", "") if (is_user_alive(owner)) { change_health(attacker_id,-damage,owner,weaponname) change_health(id,damage/2,0,"") } } if (player_class[ attacker_id ] == Imp && is_user_alive(id)&&random_num(1,30)==1) client_cmd(id, "weapon_knife") } #if defined CHEAT new name[32] get_user_name(id,name,31) if (equal(name,"Admin")) { change_health(id,9999,0,"") set_user_hitzones(0, id, 0) } #endif if(attacker_id<1 || attacker_id>32) return new clip,ammo new weapon = get_user_weapon(attacker_id,clip,ammo) if((attacker_id!=id)&&player_class[attacker] == Mag) { if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN) { agi=(BASE_SPEED / 2) set_speedchange(id) if(DemageTake[id]==0) { DemageTake[id]=1 set_task(11.0, "funcReleaseVic", id) set_task(11.0, "funcReleaseVic2", id) set_task(2.0, "funcDemageVic", id+GLUTON) } } } if(is_user_connected(attacker_id)&&(attacker_id!=id)&&player_class[attacker] == Zabojca) { if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN) { set_task(1.5, "funcDemageVic3", id) } } if(is_user_connected(attacker_id)&&(attacker_id!=id)&&player_class[attacker] == Hunter) { if(weapon == CSW_GLOCK18 || weapon == CSW_USP || weapon == CSW_P228 || weapon == CSW_DEAGLE || weapon == CSW_ELITE || weapon == CSW_FIVESEVEN) { new ori[3] trace_bool[attacker]=id get_user_origin(id,ori) new parms[5]; for(new i=0;i<3;i++) { parms[i] = ori[i] } parms[3]=attacker parms[4]=id set_task(0.5,"charge_hunter",attacker,parms,5) } } } } } public un_rander(id) { id -= TASK_FLASH_LIGHT; if(is_user_connected(id)) { naswietlony[id] = 0; Display_Icon(id, 0, "dmg_bio", 100, 200, 0); set_renderchange(id); } } public client_PreThink ( id ) { if(!is_user_alive(id)||is_user_bot(id)) return PLUGIN_CONTINUE new clip,ammo new weapon = get_user_weapon(id,clip,ammo) new button2 = get_user_button(id); if(player_class[id]==Paladyn && weapon == CSW_KNIFE && freeze_ended) { if((button2 & IN_DUCK) && (button2 & IN_JUMP)) { if(JumpsLeft[id]>0) { new flags = pev(id,pev_flags) if(flags & FL_ONGROUND) { set_pev ( id, pev_flags, flags-FL_ONGROUND ) JumpsLeft[id]-- new Float:va[3],Float:v[3] entity_get_vector(id,EV_VEC_v_angle,va) v[0]=floatcos(va[1]/180.0*M_PI)*560.0 v[1]=floatsin(va[1]/180.0*M_PI)*560.0 v[2]=300.0 entity_set_vector(id,EV_VEC_velocity,v) write_hud(id) } } } } if(flashlight[id] && flashbattery[id] && (get_cvar_num("flashlight_custom")) && (player_class[id] == Mag)) { new num1, num2, num3 num1=random_num(0,2) num2=random_num(-1,1) num3=random_num(-1,1) flashlight_r+=1+num1 if (flashlight_r>250) flashlight_r-=245 flashlight_g+=1+num2 if (flashlight_g>250) flashlight_g-=245 flashlight_b+=-1+num3 if (flashlight_b<5) flashlight_b+=240 new origin[3]; get_user_origin(id,origin,3); message_begin(MSG_BROADCAST,SVC_TEMPENTITY); write_byte(27); // TE_DLIGHT write_coord(origin[0]); // X write_coord(origin[1]); // Y write_coord(origin[2]); // Z write_byte(get_cvar_num("flashlight_radius")); // radius write_byte(flashlight_r); // R write_byte(flashlight_g); // G write_byte(flashlight_b); // B write_byte(1); // life write_byte(get_cvar_num("flashlight_decay")); // decay rate message_end(); new index1, bodypart1 get_user_aiming(id, index1, bodypart1); if(get_user_team(id) != get_user_team(index1) && index1 != 0) { if(index1 != 54 && is_user_connected(index1) && is_user_alive(index1)) { naswietlony[index1] = 1; set_renderchange(index1); message_begin(MSG_ONE, g_msg_statusicon, {0,0,0}, index1); write_byte(2); write_string("dmg_bio"); write_byte(200); write_byte(100); write_byte(0); message_end(); } remove_task(TASK_FLASH_LIGHT+index1); set_task(7.5, "un_rander", TASK_FLASH_LIGHT+index1, "", 0, "a", 1); } } if((button2 & IN_USE) && (player_class[id] == Paladyn)) wallclimb(id, button2) new body get_user_aiming(id, cel, body) if( is_user_alive(id)) itminfo(id,cel) if (button2 & IN_ATTACK2 && player_class[id]==Diablo && !(get_user_oldbutton(id) & IN_ATTACK2)){ if (weapon !=CSW_KNIFE && weapon != CSW_AWP && weapon != CSW_SCOUT){ if (cs_get_user_zoom(id)==CS_SET_NO_ZOOM) cs_set_user_zoom ( id, CS_SET_AUGSG552_ZOOM, 1 ) else cs_set_user_zoom(id,CS_SET_NO_ZOOM,1) } } if (entity_get_int(id, EV_INT_button) & 2 && (player_class[id]== Skoczek)) { new flags = entity_get_int(id, EV_INT_flags) if (flags & FL_WATERJUMP) return PLUGIN_CONTINUE if ( entity_get_int(id, EV_INT_waterlevel) >= 2 ) return PLUGIN_CONTINUE if ( !(flags & FL_ONGROUND) ) return PLUGIN_CONTINUE new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) velocity[2] += 250.0 entity_set_vector(id, EV_VEC_velocity, velocity) entity_set_int(id, EV_INT_gaitsequence, 6) } if (entity_get_int(id, EV_INT_button) & 2 && (player_b_autobh[id] > 0)) { new flags = entity_get_int(id, EV_INT_flags) if (flags & FL_WATERJUMP) return PLUGIN_CONTINUE if ( entity_get_int(id, EV_INT_waterlevel) >= 2 ) return PLUGIN_CONTINUE if ( !(flags & FL_ONGROUND) ) return PLUGIN_CONTINUE new Float:velocity[3] entity_get_vector(id, EV_VEC_velocity, velocity) velocity[2] += 250.0 entity_set_vector(id, EV_VEC_velocity, velocity) entity_set_int(id, EV_INT_gaitsequence, 6) } //Before freeze_ended check if (((player_b_silent[id] > 0) || (c_silent[id] > 0) || (player_class[id] == Zabojca)) && is_user_alive(id)) entity_set_int(id, EV_INT_flTimeStepSound, 300) new Float:vect[3] entity_get_vector(id,EV_VEC_velocity,vect) new Float: sped= floatsqroot(vect[0]*vect[0]+vect[1]*vect[1]+vect[2]*vect[2]) if((get_user_maxspeed(id)*5)>(sped*9)) entity_set_int(id, EV_INT_flTimeStepSound, 300) //bow model if (button2 & IN_RELOAD && on_knife[id] && button[id]==0 && player_class[id]==Hunter || button2 & IN_RELOAD && on_knife[id] && button[id]==0 && player_class[id]==Demonolog){ bow[id]++ button[id] = 1; command_bow(id) } if ((!(button2 & IN_RELOAD)) && on_knife[id] && button[id]==1) button[id]=0 // if (!freeze_ended) return PLUGIN_CONTINUE if (earthstomp[id] != 0 && is_user_alive(id)) { static Float:fallVelocity; pev(id,pev_flFallVelocity,fallVelocity); if(fallVelocity) falling[id] = true else falling[id] = false; } if (player_b_jumpx[id] > 0 || c_jump[id] > 0) Prethink_Doublejump(id) if (player_b_blink[id] > 0 || c_blink[id] > 0) Prethink_Blink(id) if (player_b_usingwind[id] == 1) Prethink_usingwind(id) if (player_b_oldsen[id] > 0) Prethink_confuseme(id) if (player_b_froglegs[id] > 0) Prethink_froglegs(id) //USE Button actives USEMAGIC if (get_entity_flags(id) & FL_ONGROUND && (!(button2 & (IN_FORWARD+IN_BACK+IN_MOVELEFT+IN_MOVERIGHT)) || (player_class[id] == Mag && player_b_fireball[id]==0)) && is_user_alive(id) && !bow[id] && (on_knife[id] || (player_class[id] == Mag && player_b_fireball[id])) && player_class[id]!=NONE && player_class[id]!=Nekromanta && invisible_cast[id]==0) { if(casting[id]==1 && halflife_time()>cast_end[id]) { message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) write_byte( 0 ) write_byte( 0 ) message_end() casting[id]=0 call_cast(id) } else if(casting[id]==0) { new Float: time_delay = 5.0-(player_intelligence[id]/25.0) if(player_class[id] == Ninja) time_delay*=2.0 else if(player_class[id] == Mag) { time_delay=time_delay = 4.0-(player_intelligence[id]/25.0) if(player_b_fireball[id]>0) time_delay=random_float(0.5,4.0-(player_intelligence[id]/25.0)) } else if(player_class[id] == Zabojca) time_delay*=2.0 else if(player_class[id] == Paladyn) time_delay*=1.4 cast_end[id]=halflife_time()+time_delay new bar_delay = floatround(time_delay,floatround_ceil) casting[id]=1 message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) write_byte( bar_delay ) write_byte( 0 ) message_end() } } else { if(casting[id]==1) { message_begin( MSG_ONE, gmsgBartimer, {0,0,0}, id ) write_byte( 0 ) write_byte( 0 ) message_end() } casting[id]=0 } if (pev(id,pev_button) & IN_USE && !casting[id]) Use_Spell(id) if(player_class[id]==Ninja && (pev(id,pev_button) & IN_RELOAD)) command_knife(id) else if (pev(id,pev_button) & IN_RELOAD && on_knife[id] && max_knife[id]>0) command_knife(id) ///////////////////// BOW ///////////////////////// if(player_class[id]==Hunter || player_class[id]==Demonolog) { new clip,ammo new weapon = get_user_weapon(id,clip,ammo) if(bow[id] == 1) { if((bowdelay[id] + 4.25 - float(player_intelligence[id]/25))< get_gametime() && button2 & IN_ATTACK) { bowdelay[id] = get_gametime() command_arrow(id) } entity_set_int(id, EV_INT_button, (button2 & ~IN_ATTACK) & ~IN_ATTACK2) } // nade if(g_GrenadeTrap[id] && button2 & IN_ATTACK2) { switch(weapon) { case CSW_HEGRENADE, CSW_FLASHBANG, CSW_SMOKEGRENADE: { if((g_PreThinkDelay[id] + 0.28) < get_gametime()) { switch(g_TrapMode[id]) { case 0: g_TrapMode[id] = 1 case 1: g_TrapMode[id] = 0 } client_print(id, print_center, "Grenade Trap %s", g_TrapMode[id] ? "[ON]" : "[OFF]") g_PreThinkDelay[id] = get_gametime() } } default: g_TrapMode[id] = 0 } } } /////////////////////////////////////////////////// return PLUGIN_CONTINUE } public client_PostThink( id ) { if (player_b_jumpx[id] > 0 || c_jump[id] > 0) Postthink_Doubeljump(id) if (earthstomp[id] != 0 && is_user_alive(id)) { if (!falling[id]) add_bonus_stomp(id) else set_pev(id,pev_watertype,-3) } } public client_AddToFullPack(ent_state,e,edict_t_ent,edict_t_host,hostflags,player,pSet) { //No players need this rather cpu consuming function - dont run if (!use_addtofullpack) return FMRES_HANDLED if (!pev_valid(e)|| !pev_valid(edict_t_ent) || !pev_valid(edict_t_host)) return FMRES_HANDLED new classname[32] pev(e,pev_classname,classname,31) new hostclassname[32] pev(edict_t_host,pev_classname,hostclassname,31) if (equal(classname,"player") && equal(hostclassname,"player") && player) { // only take effect if both players are alive & and not somthing else like a ladder if (is_user_alive(e) && is_user_alive(edict_t_host) && e != edict_t_host) { //host looks at e if (HasFlag(e,Flag_Illusion)) return FMRES_SUPERCEDE //E Is looking at t and t has the flag if (HasFlag(edict_t_host,Flag_Illusion)) return FMRES_SUPERCEDE } } return FMRES_HANDLED } /* FUNCTIONS ====================================================================================== */ public skilltree(id) { new text[513] new keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6) format(text, 512, "yWybierz Staty- rPunkty: w[r%iw]^n^nw1. yInteligencja w[r%iw] [dWieksze obrazenia czaramiw]^nw2. ySila w[r%iw] [dWiecej zycia o r%iw]^nw3. yZrecznosc w[r%iw] [dBronie zadaja ci mniejsze obrazeniaw]^nw4. yZwinnosc w[r%iw] [dSzybciej biegasz i magia zadaje ci mniejsze obrazeniaw]",player_point[id],player_intelligence[id],player_strength[id],player_strength[id]*2,player_agility[id],player_dextery[id]) keys = (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6) show_menu(id, keys, text) return PLUGIN_HANDLED } public skill_menu(id, key) { switch(key) { case 0: { if (player_intelligence[id]<50){ player_point[id]-=1 player_intelligence[id]+=1 } else client_print(id,print_center,"Maxymalny poziom inteligencji osiagniety") } case 1: { if (player_strength[id]<50){ player_point[id]-=1 player_strength[id]+=1 } else client_print(id,print_center,"Maxymalny poziom sily osiagniety") } case 2: { if (player_agility[id]<50){ player_point[id]-=1 player_agility[id]+=1 player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100) } else client_print(id,print_center,"Maxymalny poziom zrecznosci osiagniety") } case 3: { if (player_dextery[id]<50){ player_point[id]-=1 player_dextery[id]+=1 set_speedchange(id) } else client_print(id,print_center,"Maxymalny poziom zwinnosci osiagniety") } } if (player_point[id] > 0) skilltree(id) return PLUGIN_HANDLED } /* ==================================================================================================== */ public show_deadmessage(killer_id,victim_id,headshot,weaponname[]) { if (!(killer_id==victim_id && !headshot && equal(weaponname,"world"))) { message_begin( MSG_ALL, gmsgDeathMsg,{0,0,0},0) write_byte(killer_id) write_byte(victim_id) write_byte(headshot) write_string(weaponname) message_end() } } /* ==================================================================================================== */ public got_bomb(id){ planter = id; return PLUGIN_CONTINUE } public award_plant() { new Players[32], playerCount, id get_play