/* ================================================================================================ / * * 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 #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_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] new loaded_xp[33] new sqlstart = 30 // Tyle prob jest na mape na poprawne polaczenie - bo cos sie zapetla gdy wylancza sie serwer (zmiena mapy?) new asked_sql[33] new asked_klass[33] new olny_one_time=0 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*/} new player_class_lvl[33][28] new player_class_lvl_save[33] new player_xp_old[33] new database_user_created[33] new srv_avg[28] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} //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 ========================================================== */ // SQL // new Handle:g_SqlTuple new g_sqlTable[64] = "dbmod_tables" new g_boolsqlOK=0 // SQL // //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() { new map[32] get_mapname(map,31) new times[64] get_time("%m/%d/%Y - %H:%M:%S" ,times,63) log_to_file("addons/amxmodx/logs/diablo.log","%s ### MAPA: %s ### ",times,map) register_cvar("diablo_sql_host","localhost",FCVAR_PROTECTED) register_cvar("diablo_sql_user","root",FCVAR_PROTECTED) register_cvar("diablo_sql_pass","root",FCVAR_PROTECTED) register_cvar("diablo_sql_database","dbmod",FCVAR_PROTECTED) register_cvar("diablo_sql_table","dbmod_tablet",FCVAR_PROTECTED) register_cvar("diablo_sql_save","0",FCVAR_PROTECTED) // 0 - nick // 1 - ip // 2 - steam id register_cvar("diablo_classes", "abcdefghijklmnoprstuwxyz!@#$") // a Mag // b Paladyn // c Mnich // d Zabojca // e Barbarzynca // f Nekromanta // g Ninja // h Hunter register_cvar("diablo_avg", "1") 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 && player_class[id]!=0 && player_class_lvl[id][player_class[id]]==player_lvl[id] ) { SubtractStats(id,player_b_extrastats[id]) SubtractRing(id) SaveXP(id) BoostStats(id,player_b_extrastats[id]) BoostRing(id) } } public SaveXP(id) { if(g_boolsqlOK) { if(!is_user_bot(id) && player_xp[id]!=player_xp_old[id]) { new name[64] new ip[64] new sid[64] get_user_name(id,name,63) replace_all ( name, 63, "'", "Q" ) replace_all ( name, 63, "`", "Q" ) get_user_ip(id, ip ,63,1) get_user_authid(id, sid ,63) if(get_cvar_num("diablo_sql_save")==0) { new q_command[512] format(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`man`='%i' WHERE `nick`='%s' AND `klasa`='%i' ",g_sqlTable,ip,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],mana_gracza[id],name,player_class[id]) SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command) } else if(get_cvar_num("diablo_sql_save")==1) { new q_command[512] format(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`man`='%i' WHERE `ip`='%s' AND `klasa`='%i' ",g_sqlTable,name,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],mana_gracza[id],ip,player_class[id]) SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command) } else if(get_cvar_num("diablo_sql_save")==2) { new q_command[512] format(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`agi`='%i',`man`='%i' WHERE `sid`='%s' AND `klasa`='%i' ",g_sqlTable,name,ip,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_agility[id],mana_gracza[id],sid,player_class[id]) SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command) } player_xp_old[id]=player_xp[id] } } else sql_start() return PLUGIN_HANDLED } public Save_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(Errcode) { log_to_file("addons/amxmodx/logs/diablo.log","Error on Save_xp query: %s",Error) } if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.") return PLUGIN_CONTINUE } else if(FailState == TQUERY_QUERY_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Save_xp Query failed.") return PLUGIN_CONTINUE } return PLUGIN_CONTINUE } public LoadXP(id, klasa){ if(is_user_bot(id) || asked_sql[id]==1) return PLUGIN_HANDLED if(player_class[id]==0)load_xp(id) if(g_boolsqlOK ) { new name[64] new data[2] data[0]=id data[1]=klasa if(get_cvar_num("diablo_sql_save")==0) { get_user_name(id,name,63) replace_all ( name, 63, "'", "Q" ) replace_all ( name, 63, "`", "Q" ) new q_command[512] format(q_command,511,"SELECT * FROM `%s` WHERE `nick`='%s' AND `klasa`='%i'", g_sqlTable, name, player_class[id]) SQL_ThreadQuery(g_SqlTuple,"Load_xp_handle",q_command,data,2) asked_sql[id]=1 } else if(get_cvar_num("diablo_sql_save")==1) { get_user_ip(id, name ,63,1) new q_command[512] format(q_command,511,"SELECT * FROM `%s` WHERE `ip`='%s' AND `klasa`='%i'", g_sqlTable, name, player_class[id]) SQL_ThreadQuery(g_SqlTuple,"Load_xp_handle",q_command,data,2) asked_sql[id]=1 } else if(get_cvar_num("diablo_sql_save")==2) { get_user_authid(id, name ,63) new q_command[512] format(q_command,511,"SELECT * FROM `%s` WHERE `sid`='%s' AND `klasa`='%i'", g_sqlTable, name, player_class[id]) SQL_ThreadQuery(g_SqlTuple,"Load_xp_handle",q_command,data,2) asked_sql[id]=1 } } else sql_start() return PLUGIN_HANDLED } public Load_xp_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { new id = Data[0] asked_sql[id]=0 if(Errcode) { log_to_file("addons/amxmodx/logs/diablo.log","Error on Load_xp query: %s",Error) } if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.") return PLUGIN_CONTINUE } else if(FailState == TQUERY_QUERY_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Load_xp Query failed.") return PLUGIN_CONTINUE } if(SQL_MoreResults(Query)) { player_class[id] = Data[1] player_lvl[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"lvl")) player_xp[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"exp")) player_xp_old[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"exp")) player_intelligence[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"int")) player_strength[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"str")) player_agility[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"agi")) mana_gracza[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"man")) player_dextery[id] = SQL_ReadResult(Query,SQL_FieldNameToNum(Query,"dex")) player_point[id]=(player_lvl[id]-1)*2-player_intelligence[id]-player_strength[id]-player_dextery[id]-player_agility[id] if(player_point[id]<0) player_point[id]=0 player_damreduction[id] = (47.3057*(1.0-floatpower( 2.7182, -0.06798*float(player_agility[id])))/100) } return PLUGIN_CONTINUE } public LoadAVG() { if(g_boolsqlOK) { new data[2] data[0]= get_cvar_num("diablo_avg") if(data[0]) { for(new i=1;i<28;i++) { new q_command[512] data[1]=i //format(q_command,511,"SELECT AVG(`lvl`) FROM `%s` WHERE `lvl` > '%d' AND `klasa`='%d'", g_sqlTable, data[0]-1,i) format(q_command,511,"SELECT `klasa`,AVG(`lvl`) AS `AVG` FROM `%s` WHERE `lvl` > '%d' GROUP BY `klasa`", g_sqlTable, data[0]-1) SQL_ThreadQuery(g_SqlTuple,"Load_AVG_handle",q_command,data,2) } } } else sql_start() return PLUGIN_HANDLED } public Load_AVG_handle(FailState,Handle:Query,Error[],Errcode,Data[],DataSize) { if(Errcode) { log_to_file("addons/amxmodx/logs/diablo.log","Error on Load_AVG query: %s",Error) } if(FailState == TQUERY_CONNECT_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Could not connect to SQL database.") return PLUGIN_CONTINUE } else if(FailState == TQUERY_QUERY_FAILED) { log_to_file("addons/amxmodx/logs/diablo.log","Load_AVG Query failed.") return PLUGIN_CONTINUE } /* if(SQL_MoreResults(Query)) { new Float: avg SQL_ReadResult(Query, 0, avg) srv_avg[Data[1]]=floatround(avg) //client_print(0,print_chat,"srednia: %f",srv_avg) }*/ while(SQL_MoreResults(Query)) { new i = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "klasa")) srv_avg[i] = SQL_ReadResult(Query, SQL_FieldNameToNum(Query, "AVG")) SQL_NextRow(Query) } if(olny_one_time==0) { olny_one_time=1 look_for_none() } return PLUGIN_CONTINUE } public look_for_none() { for(new i=1;i<33;i++) { if(is_user_alive(i)) { if(player_class[i]==0) { select_class_query(i) } } } } 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) if (player_class[id] == 0) select_class_query(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)