/* EXP MOD 0.8 FINAL Autor: ENDRIUU. Wersja: 0.0 FINAL Cena: 0.0 ZL */ #include < amxmodx > #include < amxmisc > #include < nvault > #include < fakemeta_util > #include < hamsandwich > #include < ColorChat > #define SLOTY 14 #define KLAWISZE ( 1 << 0 ) | ( 1 << 1 ) | ( 1 << 2 ) | ( 1 << 3 ) | ( 1 << 4 ) | ( 1 << 5 ) | ( 1 << 6 ) | ( 1 << 7 ) | ( 1 << 8 ) | ( 1 << 9 ) #define VIP_FLAG ADMIN_LEVEL_H #define POJEMNOSC_MENU 1024 #define POJEMNOSC_HUD 1024 #define ILOSC_ZNAKOW 4 #define OFFSET_ARMORTYPE 112 #define OFFSET_TEAM 114 #define OFFSET_MONEY 115 #define OFFSET_INTERNALMODEL 126 #define OFFSET_AWP_AMMO 377 #define OFFSET_SCOUT_AMMO 378 #define OFFSET_PARA_AMMO 379 #define OFFSET_FAMAS_AMMO 380 #define OFFSET_M3_AMMO 381 #define OFFSET_USP_AMMO 382 #define OFFSET_FIVESEVEN_AMMO 383 #define OFFSET_DEAGLE_AMMO 384 #define OFFSET_P228_AMMO 385 #define OFFSET_GLOCK_AMMO 386 #define OFFSET_FLASHBANG_AMMO 387 #define OFFSET_HEGRENADE_AMMO 388 #define OFFSET_SMOKEGRENADE_AMMO 389 #define OFFSET_C4_AMMO 390 #define cs_set_user_bpammo(%1,%2,%3) set_pdata_int(%1, __get_ammo_offset(%2), %3) #define cs_set_user_model(%1,%2) engfunc(EngFunc_SetClientKeyValue, %1, engfunc(EngFunc_GetInfoKeyBuffer, %1), g_sModel, %2) #define cs_get_user_model(%1,%2,%3) engfunc(EngFunc_InfoKeyValue, engfunc(EngFunc_GetInfoKeyBuffer, %1), g_sModel, %2, %3) #define cs_set_weapon_ammo(%1,%2) set_pdata_int(%1, 51, %2, 4) /* TUTAJ PODAJESZ SCIEZKI DO ROZNYCH DZWIEKOW, MODELI I SPRITE */ new const sNiewidzialnosc [ ] = "ProLogia/Eb_sounds/stealth.wav"; new const sOdrodzenie [ ] = "ProLogia/Eb_sounds/odro.wav"; new const sZiele [ ] = "ProLogia/Eb_sounds/marha.wav"; new const sBron [ ] = "ProLogia/Eb_sounds/bro.wav"; new const sApteczka [ ] = "ProLogia/Eb_sounds/serce.wav"; new const sOdepchniecie [ ] = "ProLogia/Eb_sounds/ode.wav"; new const sNakierowane [ ] = "ProLogia/Eb_sounds/naki.wav"; new const sAntySkiller [ ] = "ProLogia/Eb_sounds/antya.wav"; /* TUTAJ SIE KONCZY PODAWANIE SCIEZEK DO ROZNYCH DZWIEKOW, MODELI I SPRITE'OW */ /* TUTAJ USTAWIASZ WSZYSTKIE TYTULY I NAPISY */ new const PREFIX [ ] = "[ Prologia ]"; new const GlowneMenu [ ] = "[ProLogia] ExpMod"; new const ResetMenu [ ] = "wczy aby na pewno chcesz wyzerowac swoje statystyki?^n"; new const UzyjMenu [ ] = "Nudzi Ci sie zwykla gra?^nWykup rumiejetnosc wi zabaw sie z innymi graczami^n"; new const BindujMenu [ ] = "Nie chce Ci sie uzywac rMenu Uzyciaw to zbinduj sobie yklawisze^n"; new const WbilPoziom [ ] = "Brawo ! Wbiles level :)"; /* TUTAJ SIE KONCZY USTAWIANIE TYTULOW I NAPISOW */ /* SPECYFIKCJA KOLOROW HUD */ new const R = 85; /* TUTAJ USTAW KOLOR CZERWONY */ new const G = 255; /* TUTAJ USTAW KOLOR ZIELONY */ new const B = 0; /* TUTAJ USTAW KOLOR NIEBIESKI */ /* KONIEC SPECYFIKCJI KOLOROW HUD */ /* SPECYFIKCJA DOSWIADCZENIA */ new ZabicieXP = 30; /* ILE EXPA ZA NORMALNE ZABICIE */ new HeadshotXP = 40; /* ILE EXPA ZA ZABICIE W GLOWE */ new VipXP = 25; /* ILOSC BONUSOWEGO EXPA DLA VIPA */ new PrzetrwanieXP = 50; /* ILE EXPA ZA PRZETRWANIE RUNDY */ /* KONIEC SPECYFIKCJI DOSWIADCZENIA */ /* SPECYFIKCJA UMIEJETNOSCI */ new Apteczka = 10; /* ILE LECZY APTECZKA * PKT DODANE W HP */ new Float: Odepchniecie = 30.0; /* Z JAKA SILA MA ODPYCHAC */ /* KONIEC SPECYFIKCJI UMIEJETNOSCI */ new gPunkty [ SLOTY + 1 ], gPoziom [ SLOTY + 1 ], gDoswiadczenie [ SLOTY + 1 ], gPoints [ SLOTY + 1 ]; enum (+=1000) { TASK_INFO } enum UMIEJETNOSCI { ZYCIE, /* Ten Skill dodaje do twojego obecnego zycia wieksza ilosc */ KAMIZELKA, /* Ten Skill dodaje kamizelke ktora chroni przed ciosami */ ZAMRAZAJACY, /* Mozesz dostac granata zamrazajacego w TT */ WYBUCHOWY, /* Mozesz wylosowac granata wybuchowego */ APTECZKA, /* Mozesz sie uleczyc apteczka jezeli masz malo HP */ NIEWIDZIALNOSC, /* Mozesz wlaczyc niewidzialnosc na X sekund */ ODRODZENIE, /* Masz X szansy ze sie odrodzisz */ ODEPCHNIECIE, /* Mozesz odepchnac przeciwnikow w dystansie X unitow */ ODBICIE, /* Mozesz odbijac ciosy zadawane przez przeciwnikow */ CICHE_BUTY, /* Jezeli kupisz tego skilla to w CT chodzisz po cichu */ CPUN, /* Mozesz nacpac gracza i przekreca mu sie ekran */ ZAMROZENIE, /* Mozesz zamrozic gracza na X sekund */ ANTY, /* Jezeli dziala na Tobie jakis skill mozesz sie go pozbyc */ OSLEPIENIE, /* Mozesz oslepic przeciwnika na X sekund */ PISTOLETY, /* Mozesz wylosowac pistolety */ KARABINY /* Mozesz wylosowac karabiny */ }; new Umiejetnosc [ SLOTY + 1 ] [ UMIEJETNOSCI ]; enum UZYTE { MT, /* MEDKIT */ SH, /* STEALTH */ RN, /* RESPAWN */ PH, /* PUSH */ ST, /* SILENT */ MH, /* MARH */ FT, /* FROST */ AS, /* ANTIS */ BD /* BLIND */ }; new Uzyte [ SLOTY + 1 ] [ UZYTE ]; new const nazwaZapisu[] = "DaneGraczy"; new plikZapisu; new g_SpriteBlood [ 2 ]; new Float: g_fDelayPerHit = 0.3; new Float: g_fDamagePerHit = 60.0; new Float: g_fNextHitHeadSplash [ SLOTY + 1 ] [ 32 ]; new spOdepchniecie, spSmoke; new gRounds; new bool: jestZamrozony [ SLOTY + 1 ]; new const Autor [ ] = "Endriuu."; new const Plugin [ ] = "ExpMod"; new const Wersja [ ] = "0.8"; new gBindKeyA [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyN [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyR [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyC [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyZ [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyO [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyP [ 33 ] [ ILOSC_ZNAKOW ], gBindKeyS [ 33 ] [ ILOSC_ZNAKOW ]; #define MAX_LEVELS 62 new const LEVELS [ MAX_LEVELS ] = { 200, // 1 500, // 2 900, // 3 1400, // 4 2000, // 5 2700, // 6 3500, // 7 4400, // 8 5400, // 9 6500, // 10 7700, // 11 9000, // 12 10400, // 13 11900, // 14 13200, // 15 15000, // 16 16900, // 17 19000, // 18 21500, // 19 24000, // 20 26600, // 21 29000, // 22 32000, // 23 35100, // 24 38300, // 25 41500, // 26 44900, // 27 51600,// 28 54300,// 29 58000,// 30 62100, // 31 66150, // 32 70300, // 33 74600, // 34 79000, // 35 83500, // 36 88100, // 37 92900, // 38 97000, // 39 101200, // 40 105300, // 41 109500,// 42 115000,// 43 119500,// 44 124000,// 45 128900,// 46 133600,// 47 138300,// 48 143300,// 49 150000,// 50 160000,// 51 171000,// 52 182000,// 53 193000,// 54 204000,// 55 215000,// 56 226000,// 57 237000,// 58 248000,// 59 259000,// 60 270000,// 61 290000//62 }; public plugin_natives ( ) { register_library ( "hns_xp" ); register_native ( "hnsxp_get_user_xp", "_get_xp" ); register_native ( "hnsxp_set_user_xp", "_set_xp" ); } public plugin_end ( ) { nvault_close ( plikZapisu ); } public plugin_precache ( ) { g_SpriteBlood [ 0 ] = engfunc ( EngFunc_PrecacheModel, "sprites/blood.spr" ); g_SpriteBlood [ 1 ] = engfunc ( EngFunc_PrecacheModel, "sprites/bloodspray.spr" ); precache_sound ( sNiewidzialnosc ); precache_sound ( sOdrodzenie ); precache_sound ( sZiele ); precache_sound ( sBron ); precache_sound ( sNakierowane ); precache_sound ( sApteczka ); precache_sound ( sOdepchniecie ); precache_sound ( sAntySkiller ); spSmoke = engfunc(EngFunc_PrecacheModel, "sprites/steam1.spr"); spOdepchniecie = engfunc(EngFunc_PrecacheModel, "sprites/shockwave.spr"); } public plugin_init ( ) { register_plugin ( Plugin, Wersja, Autor ); register_clcmd ( "say /xp", "WyswietlGlowneMenu" ); register_clcmd ( "say /exp", "WyswietlGlowneMenu" ); register_clcmd ( "say /menu", "WyswietlGlowneMenu" ); register_clcmd ( "say /vipy", "cmdShowVipsOnline" ); register_clcmd ( "say /vips", "cmdShowVipsOnline" ); register_clcmd ( "ZbindujApteczke", "cmdBindA" ); register_clcmd ( "ZbindujNiewidzialnosc", "cmdBindN" ); register_clcmd ( "ZbindujOdrodzenie", "cmdBindR" ); register_clcmd ( "ZbindujNacpanie", "cmdBindC" ); register_clcmd ( "ZbindujZamrozenie", "cmdBindZ" ); register_clcmd ( "ZbindujOslepienie", "cmdBindO" ); register_clcmd ( "ZbindujOdepchniecie", "cmdBindP" ); register_clcmd ( "ZbindujAnty", "cmdBindS" ); register_clcmd ( "+apteczka", "sprawdzApteczka" ); register_clcmd ( "+niewidzialnosc", "sprawdzNiewidzialnosc" ); register_clcmd ( "+odrodzenie", "sprawdzOdrodzenie" ); register_clcmd ( "+nacpanie", "sprawdzNacpanie" ); register_clcmd ( "+zamrozenie", "sprawdzZamrozenie" ); register_clcmd ( "+oslepienie", "sprawdzOslepienie" ); register_clcmd ( "+odepchniecie", "sprawdzOdepchniecie" ); register_clcmd ( "+anty", "sprawdzAnty" ); register_concmd ( "przekaz_xp", "give_exp", ADMIN_IMMUNITY, "< nick gracza > < ilosc doswiadczenia >" ); register_concmd ( "zabierz_xp", "take_exp", ADMIN_IMMUNITY, "< nick gracza > < ilosc doswiadczenia >" ); register_concmd ( "wyzeruj_lvl", "zeruj_lvl", ADMIN_IMMUNITY, "< nick gracza > < ilosc doswiadczenia >" ); register_forward ( FM_Touch, "Foward_Touch" ); register_forward ( FM_CmdStart, "fwCmdStart" ); register_event ( "DeathMsg", "eDeath", "a" ); register_event ( "CurWeapon", "CurWeapon", "be" ); RegisterHam ( Ham_TakeDamage, "player", "zadaneObrazenia", 0 ); register_logevent ( "RoundStart", 2, "1=Round_Start" ); register_logevent ( "RoundEnd", 2, "1=Round_End" ); register_message ( get_user_msgid ( "ScoreAttrib" ), "messageScoreAttrib" ); register_message ( get_user_msgid ( "SayText" ), "handleSayText" ); register_menucmd ( register_menuid ( "GlowneMenu" ), 1023, "handleGlowneMenu" ); register_menucmd ( register_menuid ( "ResetMenu" ), 1023, "handleResetMenu" ); register_menucmd ( register_menuid ( "RozdajMenu" ), 1023, "handleRozdajMenu" ); register_menucmd ( register_menuid ( "Rozdaj2Menu" ), 1023, "handleRozdaj2Menu" ); register_menucmd ( register_menuid ( "UzyjMenu" ), 1023, "handleUzyjMenu" ); register_menucmd ( register_menuid ( "BindujMenu" ), 1023, "handleBindujMenu" ); plikZapisu = nvault_open ( nazwaZapisu ); if ( plikZapisu == INVALID_HANDLE ) log_amx ( "Plik z danymi zostal zle otworzony" ); set_task ( 0.5, "pokazlevel", 0, "", 0, "b" ); if(!(equal(Autor,"Endriuu."))) { set_fail_state("Autor: Zmieniles autora wiec jestes pipa !"); server_cmd("quit"); } } public client_connect ( id ) { WczytajDane ( id ); pokazlevel ( id ); set_task ( 3.0, "wyswietlInfo", id + TASK_INFO ); } /*public client_authorized(id){ if(get_user_flags(id) & VIP_FLAG) Umiejetnosc[id][SKOK]++; }*/ public client_disconnect ( id ) { ZapiszDane ( id ); } public wyswietlInfo ( id ) { id -= TASK_INFO; set_task ( 0.2, "wyswietlInfo", id + TASK_INFO ); if ( ! is_user_alive ( id ) && is_user_connected ( id ) ) { new Gracz = pev ( id, pev_iuser2 ); new szName [ 32 ]; get_user_name ( Gracz, szName, charsmax ( szName ) ); if ( ! Gracz ) return 0; set_hudmessage ( R, G, B, 0.6, -1.0, 0, 0.0, 0.3, 0.0, 0.0, 2 ); ShowSyncHudMsg ( id, CreateHudSyncObj ( ), "Gracz: %s^nPoziom: %d", szName, gPoziom [ Gracz ], gDoswiadczenie [ Gracz ]); return 0; } return 0; } public CurWeapon ( id ) { if ( jestZamrozony [ id ] ) { set_pev ( id, pev_maxspeed, 0.1 ); set_pev ( id, pev_gravity, 1.0 ); } } public handleSayText ( msgId, msgDest, msgEnt ) /* THX DARKGL */ { new id = get_msg_arg_int ( 1 ); if ( ! is_user_connected ( id ) ) return 0 new szTmp [ 256 ], szTmp2 [ 256 ]; get_msg_arg_string ( 2, szTmp, charsmax ( szTmp ) ) new szPrefix [ 64 ]; format ( szPrefix, charsmax ( szPrefix ), "^4[Poziom : %i]", gPoziom [ id ] ); if ( ! equal ( szTmp, "#Cstrike_Chat_All" ) ) { add ( szTmp2, charsmax ( szTmp2 ), szPrefix ); add ( szTmp2, charsmax ( szTmp2 ), " " ); add ( szTmp2, charsmax ( szTmp2 ), szTmp ); } else { add ( szTmp2, charsmax ( szTmp2 ), szPrefix ); add ( szTmp2, charsmax ( szTmp2 ), "^3 %s1^1: %s2" ); } set_msg_arg_string ( 2, szTmp2 ); return 0; } public WyswietlResetMenu ( id ) { new MenuBody [ POJEMNOSC_MENU ], len, szName [ 32 ]; get_user_name( id, szName, charsmax ( szName ) ); len = format ( MenuBody, sizeof MenuBody - 1, "r%s w%s", szName, ResetMenu ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr1. wTak i jestem tego swiadomy" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr2. wNie, przepraszam za pomylke r;P" ); show_menu(id, KLAWISZE, MenuBody, -1, "ResetMenu" ) } public handleResetMenu ( id, key ) { switch ( key + 1 ) { case 1: { gPunkty [ id ] = gPoziom [ id ]; reset ( id ); ColorChat( id, GREEN, "%s^1 Twoje umiejetnosci zostaly poprawnie^3 wyzerowane", PREFIX ); } case 2: { WyswietlGlowneMenu ( id ); } } return 0; } public fwCmdStart ( id, handle ) { new buttons = get_uc ( handle, UC_Buttons ); new oldbuttons = pev ( id, pev_oldbuttons ); if ( buttons & IN_RELOAD && ! ( oldbuttons & IN_RELOAD ) ) WyswietlUzyjMenu ( id ); if ( Umiejetnosc [ id ] [ CICHE_BUTY ] && get_user_team ( id ) == 2 ) { set_pev ( id, pev_flTimeStepSound, 999 ); } } public RoundEnd ( ) { if(!(equal(Autor,"Endriuu."))) { set_fail_state("Autor: Zmieniles autora wiec jestes pipa !"); server_cmd("quit"); } new iPlayers [ 32 ], iNum; get_players ( iPlayers, iNum ); gRounds ++; for ( new g = 0 ; g < iNum ; g ++ ) { new id = iPlayers [ g ]; if ( get_user_team ( id ) == 1 && is_user_alive ( id ) && gRounds >= 2 ) { gDoswiadczenie[id] += PrzetrwanieXP; ColorChat ( id, GREEN, "%s^1 Dostales^4 %d XP^1 za przetrwanie rundy", PREFIX, PrzetrwanieXP ); if ( gDoswiadczenie [ id ] >= MAX_LEVELS ) odswiez ( id ); ZapiszDane ( id ); } } return 1; } public RoundStart ( ) { if(!(equal(Autor,"Endriuu."))) { set_fail_state("Autor: Zmieniles autora wiec jestes pipa !"); server_cmd("quit"); } new iPlayers [ 32 ], iNum; nvault_close ( plikZapisu ); plikZapisu = nvault_open ( nazwaZapisu ); if ( plikZapisu == INVALID_HANDLE ) log_amx( "Plik z danymi zostal zle otworzony" ); get_players( iPlayers, iNum ); for ( new g = 0 ; g < iNum ; g ++ ) { new id = iPlayers [ g ]; if ( ! ( is_user_connected ( id ) && is_user_alive ( id ) ) ) return 1; pokazlevel ( id ); ZapiszDane ( id ); Uzyte [ id ] [ MT ] = false; Uzyte [ id ] [ SH ] = false; Uzyte [ id ] [ RN ] = false; Uzyte [ id ] [ ST ] = false; Uzyte [ id ] [ MH ] = false; Uzyte [ id ] [ FT ] = false; Uzyte [ id ] [ AS ] = false; Uzyte [ id ] [ BD ] = false; Uzyte [ id ] [ PH ] = false; set_pev ( id, pev_health, 100.0 + Umiejetnosc [ id ] [ ZYCIE ] * 10.0 ); fm_set_user_armor ( id, Umiejetnosc [ id ] [ KAMIZELKA ] * 20 ); fm_set_user_rendering ( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 ); set_task ( 10.1, "skillFrost", id, _, 0, "a", 1 ); set_task ( 10.3, "skillHejdz", id, _, 0, "a", 1 ); set_task ( 10.4, "skillPistolet", id, _, 0, "a", 1 ); set_task ( 10.5, "skillKarabin", id, _, 0, "a", 1 ); set_task ( 10.5, "skillVIP", id, _, 0, "a", 1 ); } return 0; } public eDeath ( ) { if(!(equal(Autor,"Endriuu."))) { set_fail_state("Autor: Zmieniles autora wiec jestes pipa !"); server_cmd("quit"); } new attacker = read_data ( 1 ); new ofiara = read_data ( 2 ); new headshot = read_data ( 3 ); new bool: bHaveAccess = bool: ( get_user_flags ( attacker ) & VIP_FLAG ); new podliczXP; if ( ! ( is_user_connected ( attacker ) && is_user_connected ( ofiara ) ) ) return 0; if ( ofiara != attacker && attacker != 0 ) { podliczXP = 0; if ( headshot ) podliczXP += HeadshotXP; if ( ! headshot ) podliczXP += ZabicieXP; if ( bHaveAccess ) podliczXP += VipXP; gDoswiadczenie [ attacker ] += podliczXP; ColorChat ( attacker, GREEN, "%s^1 Dostales^4 %d XP^1 za zabicie wroga%s^1%s", PREFIX, podliczXP, headshot ? " w^4 glowe" : "", bHaveAccess ? " bedac^4 vipem" : "" ); } return 0; } public zadaneObrazenia ( victim, inflicter, attacker, Float: fDamage, bitDamage) { if ( ! is_user_alive ( victim ) || ! is_user_connected ( victim ) || ! is_user_connected ( attacker ) ) return HAM_IGNORED; if ( Umiejetnosc [ victim ] [ ODBICIE ] ) { if ( ( 1 <= attacker <= get_maxplayers ( ) ) ) { new random = random_num (1, 100); if ( random <= ( Umiejetnosc [ victim ] [ ODBICIE ] * 3) ) { new szName [ 32 ]; get_user_name ( attacker, szName, sizeof szName - 1 ); SetHamParamFloat ( 4, fDamage * ( 1.0 - ( float ( Umiejetnosc [ victim ] [ ODBICIE ] ) / 10.0) ) ); ExecuteHam ( Ham_TakeDamage, attacker, "", victim, fDamage * (1.0 - ( float ( Umiejetnosc [ victim ] [ ODBICIE ] ) / 10.0 ) ), 1 ); set_hudmessage ( R, G, B, 0.01, 0.54, 0, 3.0, 3.2, 1.1, 1.1, 1 ); show_hudmessage ( victim, "Zamiast %.1f obrazen przyjales %.1f", fDamage, fDamage * ( 1.0 - ( float ( Umiejetnosc [ victim ] [ ODBICIE ] ) / 10.0 ) ) ); } } } return HAM_IGNORED; } public odswiez ( id ) { if ( gPoziom [ id ] == MAX_LEVELS ) return 1; else { while ( gDoswiadczenie [ id ] >= LEVELS [ gPoziom [ id ] ] ) { gPoziom [ id ] ++; gPunkty [ id ] ++; set_hudmessage ( R, G, B, 0.0, 0.7, 0, 0.0, 1.0, 0.25, 0.25, 4 ); show_hudmessage ( id, "%s", WbilPoziom); } } return 0; } public pokazlevel ( id ) { new hudText [ POJEMNOSC_HUD ]; gPoints [ id ] = gPoziom [ id ] - ( Umiejetnosc [ id ] [ ZYCIE ] + Umiejetnosc [ id ] [ KAMIZELKA ] + Umiejetnosc [ id ] [ ZAMRAZAJACY ] + Umiejetnosc [ id ] [ WYBUCHOWY ] + Umiejetnosc [ id ] [ PISTOLETY ] + Umiejetnosc [ id ] [ APTECZKA ] + Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] + Umiejetnosc [ id ] [ CICHE_BUTY ] + Umiejetnosc [ id ] [ ODRODZENIE ] + Umiejetnosc [ id ] [ KARABINY ] + Umiejetnosc [ id ] [ CPUN ] + Umiejetnosc [ id ] [ ZAMROZENIE ] + Umiejetnosc [ id ] [ OSLEPIENIE ] + Umiejetnosc [ id ] [ ANTY ] + Umiejetnosc [ id ] [ ODEPCHNIECIE ] + Umiejetnosc [ id ] [ ODBICIE ] ) for ( new id = 0 ; id < 32 ; id ++ ) { if ( is_user_connected ( id ) && is_user_alive ( id ) ) { if(gPoziom[id] >= MAX_LEVELS) { format( hudText, sizeof hudText - 1, "Poziom : %d | Exp : %d", MAX_LEVELS, gDoswiadczenie [ id ], gPoints [ id ] ) } else { format ( hudText, sizeof hudText - 1, "Poziom: %d | Exp: %d / %d ( +%d )", gPoziom [ id ], gDoswiadczenie [ id ], LEVELS [ gPoziom [ id ] ], LEVELS [ gPoziom [ id ] ] - gDoswiadczenie [ id ], gPoints [ id ] ) } message_begin ( MSG_ONE, get_user_msgid ( "StatusText" ), { 0, 0, 0 }, id ); write_byte ( 0 ); write_string ( hudText ); message_end ( ); } } } public ZapiszDane ( id ) { if ( ! is_user_connected ( id ) ) return 0; if(!(equal(Autor,"Endriuu."))) { set_fail_state("Autor: Zmieniles autora wiec jestes pipa !"); server_cmd("quit"); } new szName [ 32 ]; get_user_name ( id, szName, charsmax ( szName ) ); new vaultkey [ 64 ], vaultdata [ 256 ]; format ( vaultkey, 63, "Dane-%s", szName ); format ( vaultdata, 255, "%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#", gPoziom [ id ], gDoswiadczenie [ id ], gPunkty [ id ], Umiejetnosc [ id ] [ ZYCIE ], Umiejetnosc [ id ] [ KAMIZELKA ], Umiejetnosc [ id ] [ ZAMRAZAJACY ], Umiejetnosc [ id ] [ WYBUCHOWY ], Umiejetnosc [ id ] [ APTECZKA ], Umiejetnosc [ id ] [ NIEWIDZIALNOSC ], Umiejetnosc [ id ] [ ODRODZENIE ], Umiejetnosc [ id ] [ ODEPCHNIECIE ], Umiejetnosc [ id ] [ ODBICIE ], Umiejetnosc [ id ] [ CICHE_BUTY ], Umiejetnosc [ id ] [ CPUN ], Umiejetnosc [ id ] [ ZAMROZENIE ], Umiejetnosc [ id ] [ ANTY ], Umiejetnosc [ id ] [ OSLEPIENIE ], Umiejetnosc [ id ] [ PISTOLETY ], Umiejetnosc [ id ] [ KARABINY ] ); nvault_set ( plikZapisu, vaultkey, vaultdata ); return 0; } public WczytajDane ( id ) { if(!(equal(Autor,"Endriuu."))) { set_fail_state("Autor: Zmieniles autora wiec jestes pipa !"); server_cmd("quit"); } new vaultkey [ 64 ], vaultdata [ 256 ]; new szName [ 32 ]; get_user_name ( id, szName, charsmax ( szName ) ); format ( vaultkey, 63, "Dane-%s", szName ); format ( vaultdata, 255, "%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#%d#", gPoziom [ id ], gDoswiadczenie [ id ], gPunkty [ id ], Umiejetnosc [ id ] [ ZYCIE ], Umiejetnosc [ id ] [ KAMIZELKA ], Umiejetnosc [ id ] [ ZAMRAZAJACY ], Umiejetnosc [ id ] [ WYBUCHOWY ], Umiejetnosc [ id ] [ APTECZKA ], Umiejetnosc [ id ] [ NIEWIDZIALNOSC ], Umiejetnosc [ id ] [ ODRODZENIE ], Umiejetnosc [ id ] [ ODEPCHNIECIE ], Umiejetnosc [ id ] [ ODBICIE ], Umiejetnosc [ id ] [ CICHE_BUTY ], Umiejetnosc [ id ] [ CPUN ], Umiejetnosc [ id ] [ ZAMROZENIE ], Umiejetnosc [ id ] [ ANTY ], Umiejetnosc [ id ] [ OSLEPIENIE ], Umiejetnosc [ id ] [ PISTOLETY ], Umiejetnosc [ id ] [ KARABINY ] ); nvault_get ( plikZapisu, vaultkey, vaultdata, 255 ); replace_all ( vaultdata, 255, "#", " " ); new poziom [ 32 ], doswiadczenie [ 32 ], punkty [ 32 ], um0 [ 32 ], um1 [ 32 ], um2 [ 32 ], um3 [ 32 ], um4 [ 32 ], um5 [ 32 ], um6 [ 32 ], um7 [ 32 ], um8 [ 32 ], um9 [ 32 ], um10 [ 32 ], um11 [ 32 ], um12 [ 32 ], um13 [ 32 ], um14 [ 32 ], um15 [ 32 ]; parse(vaultdata, poziom, sizeof poziom - 1, doswiadczenie, sizeof doswiadczenie - 1, punkty, sizeof punkty - 1, um0, sizeof um0 - 1, um1, sizeof um1 - 1, um2, sizeof um2 - 1, um3, sizeof um3 - 1, um4, sizeof um4 - 1, um5, sizeof um5 - 1, um6, sizeof um6 - 1, um7, sizeof um7 - 1, um8, sizeof um8 - 1, um9, sizeof um9 - 1, um10, sizeof um10 - 1, um11, sizeof um11 - 1, um12, sizeof um12 - 1, um13, sizeof um13 - 1, um14, sizeof um14 - 1, um15, sizeof um15 - 1 ); gPoziom [ id ] = str_to_num ( poziom ); gDoswiadczenie [ id ] = str_to_num ( doswiadczenie ); gPunkty [ id ] = str_to_num ( punkty ); Umiejetnosc [ id ] [ ZYCIE ] = str_to_num ( um0 ); Umiejetnosc [ id ] [ KAMIZELKA ] = str_to_num ( um1 ); Umiejetnosc [ id ] [ ZAMRAZAJACY ] = str_to_num ( um2 ); Umiejetnosc [ id ] [ WYBUCHOWY ] = str_to_num ( um3 ); Umiejetnosc [ id ] [ APTECZKA ] = str_to_num ( um4 ); Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] = str_to_num ( um5 ); Umiejetnosc [ id ] [ ODRODZENIE ] = str_to_num ( um6 ); Umiejetnosc [ id ] [ ODEPCHNIECIE ] = str_to_num ( um7 ); Umiejetnosc [ id ] [ ODBICIE ] = str_to_num ( um8 ); Umiejetnosc [ id ] [ CICHE_BUTY ] = str_to_num ( um9 ); Umiejetnosc [ id ] [ CPUN ] = str_to_num ( um10 ); Umiejetnosc [ id ] [ ZAMROZENIE ] = str_to_num ( um11 ); Umiejetnosc [ id ] [ ANTY ] = str_to_num ( um12 ); Umiejetnosc [ id ] [ OSLEPIENIE ] = str_to_num ( um13 ); Umiejetnosc [ id ] [ PISTOLETY ] = str_to_num ( um14 ); Umiejetnosc [ id ] [ KARABINY ] = str_to_num ( um15 ); return 0; } public Foward_Touch ( id, iEnt ) { if ( is_user_alive ( id ) && is_user_alive ( iEnt ) ) { if ( get_user_team ( id ) != get_user_team ( iEnt ) ) { if ( pev ( iEnt, pev_flags ) & FL_ONGROUND ) { if ( pev ( id, pev_groundentity ) == iEnt ) { if ( g_fNextHitHeadSplash [ id ] [ iEnt ] <= get_gametime ( ) ) { g_fNextHitHeadSplash [ id ] [ iEnt ] = get_gametime ( ) + g_fDelayPerHit; if ( ! fm_get_user_godmode ( iEnt ) ) TakeDamage ( iEnt, id ); } } } } } } public WyswietlGlowneMenu ( id ) { new MenuBody [ POJEMNOSC_MENU ], len; len = format ( MenuBody, sizeof MenuBody - 1, "%s", GlowneMenu); len += format ( MenuBody[len], sizeof MenuBody - len, "^nr1. wUmiejetnosci" ); len += format ( MenuBody[len], sizeof MenuBody - len, "^nr2. wReset Umiejetnosci" ); len += format ( MenuBody[len], sizeof MenuBody - len, "^nr3. wUzyj Umiejetnosci y[wKlawisz : rRy]" ); len += format ( MenuBody[len], sizeof MenuBody - len, "^nr4. wZbinduj klawisze" ); len += format ( MenuBody[len], sizeof MenuBody - len, "^nr5. wOdswiez Exp" ); len += format ( MenuBody[len], sizeof MenuBody - len, "^n^nr0. wWyjscie" ); show_menu ( id, KLAWISZE, MenuBody, -1, "GlowneMenu" ) } public handleGlowneMenu ( id, key ) { switch ( key + 1 ) { case 1: WyswietlRozdajMenu ( id ); case 2: WyswietlResetMenu ( id ); case 3: WyswietlUzyjMenu ( id ) case 4: WyswietlBindujMenu ( id ) case 5: { if ( ! is_user_alive ( id ) ) { ColorChat ( id, GREEN, "%s^1 Musisz byc^4 zywy^1 aby odswiezyc^4 expa", PREFIX ); } else { if ( gDoswiadczenie [ id ] >= MAX_LEVELS ) odswiez ( id ); ColorChat ( id, GREEN, "%s^1 Odswiezyles^4 expa", PREFIX ); } } } } public WyswietlUzyjMenu ( id ) { new MenuBody [ POJEMNOSC_MENU ], len len = format ( MenuBody, sizeof MenuBody - 1, "%s", UzyjMenu); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr1. wUlecz sie przy pomocy apteczki - %sUzyj", Uzyte [ id ] [ MT ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr2. wStan sie niewidzialny - %sUzyj", Uzyte [ id ] [ SH ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr3. wOdrodz sie - %sUzyj", Uzyte [ id ] [ RN ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr4. wNacpaj nakierowanego gracza - %sUzyj", Uzyte [ id ] [ MH ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr5. wZamroz nakierowanego gracza - %sUzyj", Uzyte [ id ] [ FT ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr6. wOslep nakierowanego gracza - %sUzyj", Uzyte [ id ] [ BD ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr7. wOdepchnij graczy w poblizu siebie - %sUzyj", Uzyte [ id ] [ PH ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr8. wFuria Anty-Skilla - %sUzyj", Uzyte [ id ] [ AS ] ? "r" : "d" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^n^nr0. wWyjscie" ); show_menu(id, KLAWISZE, MenuBody, -1, "UzyjMenu" ); } public handleUzyjMenu ( id, key ) { switch ( key + 1 ) { case 1 : { sprawdzApteczka ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 2 : { sprawdzNiewidzialnosc ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 3 : { sprawdzOdrodzenie ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 4 : { sprawdzNacpanie ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 5 : { sprawdzZamrozenie ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 6 : { sprawdzOslepienie ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 7 : { sprawdzOdepchniecie ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 8: { sprawdzAnty ( id ); set_task( 0.1, "WyswietlUzyjMenu", id ); } case 9: WyswietlUzyjMenu ( id ); } return 0; } public WyswietlBindujMenu ( id ) { new MenuBody [ POJEMNOSC_MENU ], len len = format ( MenuBody, sizeof MenuBody - 1, "%s", BindujMenu); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr1. wApteczka"); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr2. wNiewidzialnosc" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr3. wOdrodzenie" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr4. wNacpanie" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr5. wZamrozenie" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr6. wOslepienie" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr7. wOdepchniecie" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr8. wAnty Skiller" ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^n^nr0. wWyjscie" ); show_menu(id, KLAWISZE, MenuBody, -1, "BindujMenu" ); } public handleBindujMenu ( id, key ) { switch ( key + 1 ) { case 1 : { client_cmd ( id, "messagemode ZbindujApteczke" ); client_cmd ( id, "spk fvox/blip" ); } case 2 : { client_cmd ( id, "messagemode ZbindujNiewidzialnosc" ); client_cmd ( id, "spk fvox/blip" ); } case 3 : { client_cmd ( id, "messagemode ZbindujOdrodzenie" ); client_cmd ( id, "spk fvox/blip" ); } case 4 : { client_cmd ( id, "messagemode ZbindujNacpanie" ); client_cmd ( id, "spk fvox/blip" ); } case 5 : { client_cmd ( id, "messagemode ZbindujZamrozenie" ); client_cmd ( id, "spk fvox/blip" ); } case 6 : { client_cmd ( id, "messagemode ZbindujOslepienie" ); client_cmd ( id, "spk fvox/blip" ); } case 7 : { client_cmd ( id, "messagemode ZbindujOdepchniecie" ); client_cmd ( id, "spk fvox/blip" ); } case 8 : { client_cmd ( id, "messagemode ZbindujAnty" ); client_cmd ( id, "spk fvox/blip" ); } case 9: WyswietlUzyjMenu ( id ); } return 1; } public WyswietlRozdajMenu ( id ) { gPoints [ id ] = gPoziom [ id ] - ( Umiejetnosc [ id ] [ ZYCIE ] + Umiejetnosc [ id ] [ KAMIZELKA ] + Umiejetnosc [ id ] [ ZAMRAZAJACY ] + Umiejetnosc [ id ] [ WYBUCHOWY ] + Umiejetnosc [ id ] [ PISTOLETY ] + Umiejetnosc [ id ] [ APTECZKA ] + Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] + Umiejetnosc [ id ] [ CICHE_BUTY ] + Umiejetnosc [ id ] [ ODRODZENIE ] + Umiejetnosc [ id ] [ KARABINY ] + Umiejetnosc [ id ] [ CPUN ] + Umiejetnosc [ id ] [ ZAMROZENIE ] + Umiejetnosc [ id ] [ OSLEPIENIE ] + Umiejetnosc [ id ] [ ANTY ] + Umiejetnosc [ id ] [ ODEPCHNIECIE ] + Umiejetnosc [ id ] [ ODBICIE ] ) new MenuBody [ POJEMNOSC_MENU ], len; len = format ( MenuBody, sizeof MenuBody - 1, "Umiejetnosci #1 r[ wPunkty : %d r]", gPoints [ id ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr1. wZycie y[w%dy/w5y]", Umiejetnosc [ id ] [ ZYCIE ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr2. wKamizelka y[w%dy/w5y]", Umiejetnosc [ id ] [ KAMIZELKA ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr3. wFrost y[w%dy/w1y] y[wPoziom:r 3y]", Umiejetnosc [ id ] [ ZAMRAZAJACY ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr4. wHejdz y[w%dy/w5y] y[wPoziom:r 5y]", Umiejetnosc [ id ] [ WYBUCHOWY ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr5. wPistolety y[w%dy/w5y] y[wPoziom:r 8y]", Umiejetnosc [ id ] [ PISTOLETY ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr6. wApteczka y[w%dy/w5y] y[wPoziom:r 14y]", Umiejetnosc [ id ] [ APTECZKA ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr7. wNiewidzialnosc y[w%dy/w5y] y[wPoziom:r 16y]", Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr8. wCiche buty y[w%dy/w1y] y[wPoziom:r 19y]", Umiejetnosc [ id ] [ CICHE_BUTY ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr9. wDalej"); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr0. wWyjscie"); show_menu(id, KLAWISZE, MenuBody, -1, "RozdajMenu"); } public handleRozdajMenu ( id, key ) { switch ( key + 1 ) { case 1: { if ( Umiejetnosc [ id ] [ ZYCIE ] >= 5 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Zycie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Zycie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ZYCIE ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 2: { if ( Umiejetnosc [ id ] [ KAMIZELKA ] >= 5 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Kamizelka^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Kamizelka", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ KAMIZELKA ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 3: { if ( Umiejetnosc [ id ] [ ZAMRAZAJACY ] >= 1 && gPoziom [ id ] >= 3 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Frost na start^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 3 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 3^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Frost na start", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ZAMRAZAJACY ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 4: { if ( Umiejetnosc [ id ] [ WYBUCHOWY ] >= 5 && gPoziom [ id ] >= 5 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Hejdz na start^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 5 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 5^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Hejdz na start", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ WYBUCHOWY ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 5: { if ( Umiejetnosc [ id ] [ PISTOLETY ] >= 5 && gPoziom [ id ] >= 8 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Pistolety^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 8 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 8^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Pistolety", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ PISTOLETY ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 6: { if ( Umiejetnosc [ id ] [ APTECZKA ] >= 5 && gPoziom [ id ] >= 14 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Apteczka^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 14 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 14^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Apteczka", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ APTECZKA ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 7: { if ( Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] >= 5 && gPoziom [ id ] >= 16 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Niewidzialnosc^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 16 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 16^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Niewidzialnosc", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 8: { if ( Umiejetnosc [ id ] [ CICHE_BUTY ] >= 1 && gPoziom [ id ] >= 19 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Ciche Buty^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 19 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 19^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Ciche Buty", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ CICHE_BUTY ] ++; } set_task ( 0.1, "WyswietlRozdajMenu", id ); } case 9: { if ( gPoziom [ id ] >= 30 ) { WyswietlRozdaj2Menu ( id ); } else if ( gPoziom [ id ] < 30 ) ColorChat ( id, GREEN, "%s^1 Aby zobaczyc druga strone skilli wbij^4 30^1 poziom", PREFIX ); } } } public WyswietlRozdaj2Menu ( id ) { gPoints [ id ] = gPoziom [ id ] - ( Umiejetnosc [ id ] [ ZYCIE ] + Umiejetnosc [ id ] [ KAMIZELKA ] + Umiejetnosc [ id ] [ ZAMRAZAJACY ] + Umiejetnosc [ id ] [ WYBUCHOWY ] + Umiejetnosc [ id ] [ PISTOLETY ] + Umiejetnosc [ id ] [ APTECZKA ] + Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] + Umiejetnosc [ id ] [ CICHE_BUTY ] + Umiejetnosc [ id ] [ ODRODZENIE ] + Umiejetnosc [ id ] [ KARABINY ] + Umiejetnosc [ id ] [ CPUN ] + Umiejetnosc [ id ] [ ZAMROZENIE ] + Umiejetnosc [ id ] [ OSLEPIENIE ] + Umiejetnosc [ id ] [ ANTY ] + Umiejetnosc [ id ] [ ODEPCHNIECIE ] + Umiejetnosc [ id ] [ ODBICIE ] ) new MenuBody [ POJEMNOSC_MENU ], len; len = format ( MenuBody, sizeof MenuBody - 1, "Umiejetnosci #2 r[ wPunkty : %d r]", gPoints [ id ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr1. wOdrodzenie y[w%dy/w5y] y[wPoziom:r 30y]", Umiejetnosc [ id ] [ ODRODZENIE ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr2. wKarabiny y[w%dy/w5y] y[wPoziom:r 34y]", Umiejetnosc [ id ] [ KARABINY ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr3. wNacpanie y[w%dy/w2y] y[wPoziom:r 38y]", Umiejetnosc [ id ] [ CPUN ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr4. wZamrozenie y[w%dy/w5y] y[wPoziom:r 40y]", Umiejetnosc [ id ] [ ZAMROZENIE ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr5. wOslepienie y[w%dy/w2y] y[wPoziom:r 46y]", Umiejetnosc [ id ] [ OSLEPIENIE ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr6. wAnty Skill y[w%dy/w1y] y[wPoziom:r 52y]", Umiejetnosc [ id ] [ ANTY ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr7. wOdepchniecie y[w%dy/w5y] y[wPoziom:r 56y]", Umiejetnosc [ id ] [ ODEPCHNIECIE ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr8. wOdbicie y[w%dy/w5y] y[wPoziom:r 60y]", Umiejetnosc [ id ] [ ODBICIE ] ); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr9. wWstecz"); len += format ( MenuBody [ len ], sizeof MenuBody - len, "^nr0. wWyjscie"); show_menu(id, KLAWISZE, MenuBody, -1, "Rozdaj2Menu") } public handleRozdaj2Menu ( id, key ) { switch ( key + 1 ) { case 1: { if ( Umiejetnosc [ id ] [ ODRODZENIE ] >= 5 && gPoziom [ id ] >= 30 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Odrodzenie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 30 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 30^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Odrodzenie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ODRODZENIE ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 2: { if ( Umiejetnosc [ id ] [ KARABINY ] >= 5 && gPoziom [ id ] >= 34 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Karabiny^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 34 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 34^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Karabiny", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ KARABINY ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 3: { if ( Umiejetnosc [ id ] [ CPUN ] >= 2 && gPoziom [ id ] >= 38 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Nacpanie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 38 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 38^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 2 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Nacpanie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ CPUN ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 4: { if ( Umiejetnosc [ id ] [ ZAMROZENIE ] >= 5 && gPoziom [ id ] >= 40 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Zamrozenie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 40 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 40^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Zamrozenie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ZAMROZENIE ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 5: { if ( Umiejetnosc [ id ] [ OSLEPIENIE ] >= 2 && gPoziom [ id ] >= 46 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Oslepienie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 46 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 46^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Oslepienie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ OSLEPIENIE ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 6: { if ( Umiejetnosc [ id ] [ ANTY ] >= 1 && gPoziom [ id ] >= 52 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Anty-Skiller^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 52 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 52^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Anty-Skiller", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ANTY ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 7: { if ( Umiejetnosc [ id ] [ ODEPCHNIECIE ] >= 5 && gPoziom [ id ] >= 56 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Odepchniecie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 56 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 56^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Odepchniecie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ODEPCHNIECIE ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 8: { if ( Umiejetnosc [ id ] [ ODBICIE ] >= 5 && gPoziom [ id ] >= 60 ) ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Odbicie^1 zostala calkowicie ulepszona", PREFIX ); else if ( gPunkty [ id ] < 1 ) ColorChat ( id, GREEN, "%s^1 Nie masz punktow do rozdania", PREFIX ); else if ( gPoziom [ id ] < 60 ) ColorChat ( id, GREEN, "%s^1 Najpierw nabij^4 60^1 poziom", PREFIX ); else if ( gPunkty [ id ] >= 1 ) { ColorChat ( id, GREEN, "%s^1 Dodales punkt do umiejetnosci^4 Odbicie", PREFIX ); gPunkty [ id ] --; Umiejetnosc [ id ] [ ODBICIE ] ++; } set_task ( 0.1, "WyswietlRozdaj2Menu", id ); } case 9: { WyswietlRozdajMenu ( id ); } } } public skillFrost ( id ) { if ( Umiejetnosc [ id ] [ ZAMRAZAJACY ] && is_user_alive ( id ) && get_user_team ( id ) == 1 && gRounds >= 2 ) { fm_give_item ( id, "weapon_smokegrenade" ); emit_sound ( id, CHAN_ITEM, sBron, 1.0, ATTN_NORM, 0, PITCH_NORM ); } } public skillHejdz ( id ) { new los = random_num ( 1, 100 ); if ( Umiejetnosc [ id ] [ WYBUCHOWY ] && is_user_alive ( id ) && gRounds >= 2 ) { if ( los <= 10 * Umiejetnosc [ id ] [ WYBUCHOWY ] ) { fm_give_item ( id, "weapon_hegrenade" ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 Hejdza", PREFIX ); emit_sound ( id, CHAN_ITEM, sBron, 1.0, ATTN_NORM, 0, PITCH_NORM ); } } } public skillPistolet ( id ) { if ( Umiejetnosc [ id ] [ PISTOLETY ] && is_user_alive ( id ) && gRounds >= 2 ) { switch ( random_num ( 0, 6 ) ) { case 0: { fm_give_item ( id, "weapon_glock18" ); cs_set_user_bpammo ( id, CSW_GLOCK18, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_glock18", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 glock18", PREFIX ); } case 1: { fm_give_item ( id, "weapon_p228" ); cs_set_user_bpammo ( id, CSW_P228, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_p228", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 p228", PREFIX ); } case 2: { fm_give_item ( id, "weapon_fiveseven" ); cs_set_user_bpammo ( id, CSW_FIVESEVEN, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_fiveseven", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 fiveseven", PREFIX ); } case 4: { fm_give_item ( id, "weapon_elite" ); cs_set_user_bpammo ( id, CSW_ELITE, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_elite", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 elite", PREFIX ); } case 5: { fm_give_item ( id, "weapon_usp" ); cs_set_user_bpammo ( id, CSW_USP, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_usp", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 usp", PREFIX ); } case 6: { fm_give_item ( id, "weapon_deagle" ); cs_set_user_bpammo ( id, CSW_DEAGLE, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_deagle", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 deagle", PREFIX ); } } emit_sound ( id, CHAN_ITEM, sBron, 1.0, ATTN_NORM, 0, PITCH_NORM ); } } public skillKarabin ( id ) { if ( Umiejetnosc [ id ] [ KARABINY ] && is_user_alive ( id ) && gRounds >= 2 ) { switch ( random_num ( 0, 5 ) ) { case 0: { fm_give_item ( id, "weapon_ak47" ); cs_set_user_bpammo ( id, CSW_AK47, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_ak47", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 ak47", PREFIX ); } case 1: { fm_give_item ( id, "weapon_m4a1" ); cs_set_user_bpammo ( id, CSW_M4A1, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_m4a1", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 m4a1", PREFIX ); } case 2: { fm_give_item ( id, "weapon_aug" ); cs_set_user_bpammo ( id, CSW_AUG, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_aug", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 aug", PREFIX ); } case 3: { fm_give_item ( id, "weapon_sg552" ); cs_set_user_bpammo ( id, CSW_SG552, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_sg552", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 sg552", PREFIX ); } case 4: { fm_give_item ( id, "weapon_famas" ); cs_set_user_bpammo ( id, CSW_FAMAS, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_famas", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 famas", PREFIX ); } case 5: { fm_give_item ( id, "weapon_galil" ); cs_set_user_bpammo ( id, CSW_GALIL, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_galil", id ), 1 ); ColorChat ( id, GREEN, "%s^1 Wylosowales^4 galil", PREFIX ); } } emit_sound ( id, CHAN_ITEM, sBron, 1.0, ATTN_NORM, 0, PITCH_NORM ); } } public skillVIP ( id ) { if ( get_user_flags ( id ) & VIP_FLAG && is_user_alive ( id ) && gRounds >= 2 ) { switch ( random_num ( 0, 100 ) ) { case 0: { fm_give_item ( id, "weapon_ak47" ); cs_set_user_bpammo ( id, CSW_AK47, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_ak47", id ), 1 ); ColorChat ( id, GREEN, "[ VIP ]^1 Wylosowales^4 ak47" ); } case 1: { fm_give_item ( id, "weapon_m4a1" ); cs_set_user_bpammo ( id, CSW_M4A1, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_m4a1", id ), 1 ); ColorChat ( id, GREEN, "[ VIP ]^1 Wylosowales^4 m4a1" ); } case 2: { fm_give_item ( id, "weapon_awp" ); cs_set_user_bpammo ( id, CSW_AWP, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_awp", id ), 1 ); ColorChat ( id, GREEN, "[ VIP ]^1 Wylosowales^4 awp" ); } case 3: { fm_give_item ( id, "weapon_deagle" ); cs_set_user_bpammo ( id, CSW_DEAGLE, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_deagle", id ), 1 ); ColorChat ( id, GREEN, "[ VIP ]^1 Wylosowales^4 deagle" ); } case 4: { fm_give_item ( id, "weapon_famas" ); cs_set_user_bpammo ( id, CSW_FAMAS, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_famas", id ), 1 ); ColorChat ( id, GREEN, "[ VIP ]^1 Wylosowales^4 famas" ); } case 5: { fm_give_item ( id, "weapon_galil" ); cs_set_user_bpammo ( id, CSW_GALIL, 0 ); cs_set_weapon_ammo ( fm_find_ent_by_owner ( 1, "weapon_galil", id ), 1 ); ColorChat ( id, GREEN, "[ VIP ]^1 Wylosowales^4 galil" ); } case 6..100: ColorChat ( id, GREEN, "[ VIP ]^1 Nic nie wylosowales", PREFIX ); } emit_sound ( id, CHAN_ITEM, sBron, 1.0, ATTN_NORM, 0, PITCH_NORM ); } } public skillOdrodzenie ( id ) { new los = random_num ( 1, 100 ); if ( los <= Umiejetnosc [ id ] [ ODRODZENIE ] * 10 ) { ExecuteHamB ( Ham_CS_RoundRespawn, id ); ColorChat ( id, GREEN, "%s^3 Najs!^1 Odrodziles sie", PREFIX ); message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, id ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 4096 ); write_byte ( 255 ); // R write_byte ( 0 ); // G write_byte ( 0 ); // B write_byte ( 150 ); // A message_end ( ); emit_sound ( id, CHAN_ITEM, sOdrodzenie, 1.0, ATTN_NORM, 0, PITCH_NORM ); } else ColorChat ( id, GREEN, "%s^3 Haahaha!^1 Nie odrodziles sie", PREFIX ); Uzyte [ id ] [ RN ] = true; } public skillOdepchniecie(id){ new iPlayers [ 32 ], iNum; get_players ( iPlayers, iNum, "a" ); for (new i = 0 ; i < iNum ; i++ ) { new vOrigin2 [ 3 ]; get_user_origin ( id, vOrigin2 ); message_begin ( MSG_BROADCAST, SVC_TEMPENTITY ); write_byte ( 21 ); write_coord ( vOrigin2 [ 0 ] ); write_coord ( vOrigin2 [ 1 ] ); write_coord ( vOrigin2 [ 2 ] ); write_coord ( vOrigin2 [ 0 ] ); write_coord ( vOrigin2 [ 1 ] ); write_coord ( vOrigin2 [ 2 ] + ( Umiejetnosc [ id ] [ ODEPCHNIECIE ] * 50 ) ); write_short ( spOdepchniecie ); write_byte ( 0 ); write_byte ( 0 ); write_byte ( 5 ); write_byte ( 64 ); write_byte ( 0 ); write_byte ( 128 ); write_byte ( 128 ); write_byte ( 135 ); write_byte ( 128 ); write_byte ( 0 ); message_end ( ); if ( fm_entity_range ( iPlayers [ i ], id ) <= float ( Umiejetnosc [ id ] [ ODEPCHNIECIE ] * 40 ) && get_user_team ( id ) != get_user_team ( iPlayers [ i ] ) ) { new Float: fOrigin [ 2 ] [ 3 ], vOrigin [ 3 ]; pev ( iPlayers [ i ], pev_origin, fOrigin [ 1 ] ); pev ( id, pev_origin, fOrigin [ 0 ] ); get_user_origin ( iPlayers [ i ], vOrigin ); for ( new e = 0 ; e <= 2 ; e ++) { fOrigin [ 1 ] [ e ] -= fOrigin [ 0 ] [ e ]; if ( pev ( iPlayers [ i ], pev_flags) & FL_ONGROUND ) fOrigin [ 1 ] [ e ] *= ( float ( Umiejetnosc [ id ] [ ODEPCHNIECIE ] ) * Odepchniecie ); /* 4.0 */ else fOrigin [ 1 ] [ e ] *= ( float ( Umiejetnosc [ id ] [ ODEPCHNIECIE ] ) * Odepchniecie ); /* 1.5 */ } Smoke ( vOrigin, 10, 10 ); message_begin ( MSG_BROADCAST, SVC_TEMPENTITY ); write_byte ( TE_IMPLOSION ); write_coord ( vOrigin [ 0 ] ); write_coord ( vOrigin [ 1 ] ); write_coord ( vOrigin [ 2 ] ); write_byte ( 80 ); write_byte ( 10 ); write_byte ( 10 ); message_end ( ); engfunc ( EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, fOrigin, 0 ); write_byte ( TE_PARTICLEBURST ); engfunc ( EngFunc_WriteCoord, fOrigin [ 0 ] [ 0 ] ); engfunc ( EngFunc_WriteCoord, fOrigin [ 0 ] [ 1 ] ); engfunc ( EngFunc_WriteCoord, fOrigin [ 0 ] [ 2 ] ); write_short ( 50 ); write_byte ( 235 ); write_byte ( 10 ); message_end ( ); message_begin ( MSG_ONE, get_user_msgid ( "ScreenShake" ), { 0, 0, 0 }, iPlayers [ i ] ); write_short ( 255 << 14 ); write_short ( 10 << 14 ); write_short ( 255 << 14 ); message_end ( ); set_pev ( iPlayers [ i ], pev_velocity, fOrigin [ 1 ] ); } } emit_sound ( id, CHAN_ITEM, sOdepchniecie, 1.0, ATTN_NORM, 0, PITCH_NORM ); Uzyte [ id ] [ PH ] = true; return 0; } public skillAnty ( id ) { jestZamrozony [ id ] = false; set_pev ( id, pev_maxspeed, 250.0 ); set_pev ( id, pev_gravity, 1.0 ); message_begin ( MSG_ONE, get_user_msgid ( "SetFOV" ), { 0, 0, 0 }, id ); write_byte ( 90 ); message_end ( ); message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, id ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 0 ); write_byte ( 0 ); // R write_byte ( 0 ); // G write_byte ( 0 ); // B write_byte ( 0 ); // A message_end ( ); Uzyte [ id ] [ AS ] = true; } public skillNiewidzialnosc ( id ) { fm_set_user_rendering ( id, kRenderFxGlowShell, 0, 0, 0, kRenderTransColor, 0 ); Uzyte [ id ] [ SH ] = true; ColorChat ( id, GREEN, "%s^1 Wlaczyles^4 Niewidzialnosc^1 na^4 %d^1 sekund", PREFIX, Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] * 2 ); emit_sound( id, CHAN_ITEM, sNiewidzialnosc, 1.0, ATTN_NORM, 0, PITCH_NORM ); message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, id ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 4096 ); write_byte ( 0 ); // R write_byte ( 0 ); // G write_byte ( 255 ); // B write_byte ( 150 ); // A message_end ( ); set_task ( float ( Umiejetnosc [ id ] [ NIEWIDZIALNOSC ] * 2 ), "skillOfNiewidzialnosc", id, _, 0, "a", 1 ); } public skillOfNiewidzialnosc ( id ) { fm_set_rendering ( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 255 ); message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, id ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 4096 ); write_byte ( 0 ); // R write_byte ( 0 ); // G write_byte ( B ); // B write_byte ( 150 ); // A message_end ( ); ColorChat ( id, GREEN, "%s^1 Umiejetnosc^4 Niewidzialnosc^1 zostala^3 wylaczona", PREFIX ); } public skillZamrozenie ( id ) { new target, body, szName [ 32 ]; get_user_aiming ( id, target, body ); get_user_name ( target, szName, charsmax ( szName ) ); if ( ( 1 <= target <= get_maxplayers ( ) ) && get_user_team ( target ) != get_user_team ( id ) ) { message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, target ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 4096 + Umiejetnosc [ id ] [ ZAMROZENIE ] * 2 ); write_byte ( 0 ); // R write_byte ( 0 ); // G write_byte ( 255 ); // B write_byte ( 200 ); // A message_end ( ); fm_set_user_rendering ( target, kRenderFxGlowShell, 0, 0, 255, kRenderNormal, 16 ); set_pev ( target, pev_maxspeed, 0.1 ); set_pev ( target, pev_gravity, 1.0 ); emit_sound ( id, CHAN_ITEM, sNakierowane, 1.0, ATTN_NORM, 0, PITCH_NORM ); CurWeapon ( id ); jestZamrozony [ target ] = true; set_task ( Umiejetnosc [ id ] [ ZAMROZENIE ] * 2.0, "skillOfZamrozenie", target ); set_hudmessage ( R, G, B, 0.01, 0.54, 0, 3.0, 3.2, 1.1, 1.1, 1 ); show_hudmessage ( id, "Zamroziles gracza %s na %d sekundy", szName, Umiejetnosc [ id ] [ ZAMROZENIE ] * 2 ); Uzyte [ id ] [ FT ] = true; } } public skillOfZamrozenie ( id ) { jestZamrozony [ id ] = false; fm_set_user_rendering ( id, kRenderFxGlowShell, 0, 0, 0, kRenderNormal, 16 ); set_pev ( id, pev_maxspeed, 250.0 ); set_pev ( id, pev_gravity, 1.0 ); } public skillCpun ( id ) { new target, body, szName [ 32 ]; get_user_aiming ( id, target, body ); get_user_name ( target, szName, charsmax ( szName ) ); if ( ( 1 <= target <= get_maxplayers ( ) ) && get_user_team ( target ) != get_user_team ( id ) ) { message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, target ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 4096 ); write_byte ( 100 ); // R write_byte ( 255 ); // G write_byte ( 0 ); // B write_byte ( 150 ); // A message_end ( ); emit_sound ( id, CHAN_ITEM, sNakierowane, 1.0, ATTN_NORM, 0, PITCH_NORM ); message_begin ( MSG_ONE, get_user_msgid ( "SetFOV" ), { 0, 0, 0 }, target ); write_byte ( 128 ); message_end ( ); set_task ( Umiejetnosc [ id ] [ CPUN ] * 2.0, "skillOfCpun", target ); set_hudmessage ( R, G, B, 0.01, 0.54, 0, 3.0, 3.2, 1.1, 1.1, 1 ); show_hudmessage ( id, "Nacpales gracza %s na %d sekundy", szName, Umiejetnosc [ id ] [ CPUN ] * 2 ); Uzyte [ id ] [ MH ] = true; } } public skillOfCpun ( id ) { message_begin ( MSG_ONE, get_user_msgid ( "SetFOV" ), { 0, 0, 0 }, id ); write_byte ( 90 ); message_end ( ); } public skillOslepienie ( id ) { new target, body, szName [ 32 ]; get_user_aiming ( id, target, body ); get_user_name ( target, szName, charsmax ( szName ) ); if ( ( 1 <= target <= get_maxplayers ( ) ) && get_user_team ( target ) != get_user_team ( id ) ) { message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, target ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( Umiejetnosc [ id ] [ OSLEPIENIE ] * 4 ); write_byte ( 255 ); // R write_byte ( 255 ); // G write_byte ( 255 ); // B write_byte ( 255 ); // A message_end ( ); emit_sound ( id, CHAN_ITEM, sNakierowane, 1.0, ATTN_NORM, 0, PITCH_NORM ); set_hudmessage ( R, G, B, 0.01, 0.54, 0, 3.0, 3.2, 1.1, 1.1, 1 ); show_hudmessage ( id, "Oslepiles gracza %s na %d sekundy", szName, Umiejetnosc [ id ] [ OSLEPIENIE ] * 4 ); Uzyte [ id ] [ BD ] = true; } } public skillApteczka ( id ) { emit_sound ( id, CHAN_ITEM, sApteczka, 1.0, ATTN_NORM, 0, PITCH_NORM ); fm_set_user_health ( id, get_user_health ( id ) + Apteczka * Umiejetnosc [ id ] [ APTECZKA ] ); message_begin ( MSG_ONE, get_user_msgid ( "ScreenFade" ), { 0, 0, 0 }, id ); write_short ( ( 1 << 12 ) ); write_short ( ( 1 << 8 ) ); write_short ( 4096 ); write_byte ( 255 ); // R write_byte ( 0 ); // G write_byte ( 0 ); // B write_byte ( 150 ); // A message_end ( ); Uzyte [ id ] [ MT ] = true; } public give_exp ( id, level, cid ) { if ( ! cmd_access ( id, level, cid, 3 ) ) return 1; new target [ 32 ], amount [ 21 ]; read_argv ( 1, target, 31 ); read_argv ( 2, amount, 20 ); new player = cmd_target ( id, target, 8 ); if ( ! player ) return 1; if ( ! is_user_alive ( player ) ) return 1; new expnum = str_to_num ( amount ); gDoswiadczenie [ player ] += expnum; ZapiszDane ( player ); odswiez ( player ); new szName [ 32 ], szName2 [ 32 ]; get_user_name ( id, szName, 32 ); get_user_name ( player, szName2, 32 ); return 0; } public take_exp ( id, level, cid ) { if ( ! cmd_access ( id, level, cid, 3 ) ) return 1; new target [ 32 ], amount [ 21 ]; read_argv ( 1, target, 31 ); read_argv ( 2, amount, 20 ); new player = cmd_target ( id, target, 8 ); if ( ! player ) return 1; if ( ! is_user_alive ( player ) ) return 1; new expnum = str_to_num ( amount ); gDoswiadczenie [ player ] -= expnum; if ( gDoswiadczenie [ player ] < 0 ) gDoswiadczenie [ player ] = 0; ZapiszDane ( player ); odswiez ( player ); new szName [ 32 ], szName2 [ 32 ]; get_user_name ( id, szName, 32 ); get_user_name ( player, szName2, 32 ); return 0; } public zeruj_lvl ( id, level, cid ) { if ( ! cmd_access ( id, level, cid, 3 ) ) return 1; new target [ 32 ]; read_argv ( 1, target, 31 ); new player = cmd_target ( id, target, 8 ); if ( ! player ) return 1; if ( ! is_user_alive ( player ) ) return 1; gDoswiadczenie [ player ] = 0; gPoziom [ player ] = 0; gPunkty [ player ] = 0; if ( gDoswiadczenie [ player ] < 0 ) { gDoswiadczenie [ player ] = 0; } ZapiszDane ( player ); odswiez ( player ); new szName [ 32 ], szName2 [ 32 ]; get_user_name ( id, szName, 32 ); get_user_name ( player, szName2, 32 ); ColorChat ( 0, GREEN, "%s^1 Admin^4 %s^1 wyzerowal poziom graczowi^4 %s", PREFIX, szName, szName2 ); return 0; } stock TakeDamage ( iReceiver, iAttacker ) { static Float: fOrigin [ 3 ], Float: fDamage; pev ( iReceiver, pev_origin, fOrigin ); new szName [ 32 ]; get_user_name ( iAttacker, szName, charsmax ( szName ) ); fDamage = g_fDamagePerHit; if ( get_user_health ( iReceiver ) <= floatround ( fDamage ) ) { message_begin ( MSG_ONE, get_user_msgid ( "ScreenShake" ), { 0, 0, 0 }, iReceiver ); write_short ( 255 << 14 ); write_short ( 10 << 14 ); write_short ( 255 << 14 ); message_end ( ); engfunc ( EngFunc_MessageBegin, MSG_BROADCAST, SVC_TEMPENTITY, fOrigin, 0 ); write_byte ( TE_BLOODSPRITE ); engfunc ( EngFunc_WriteCoord, fOrigin [ 0 ] + 8.0 ); engfunc ( EngFunc_WriteCoord, fOrigin [ 1 ] ); engfunc ( EngFunc_WriteCoord, fOrigin [ 2 ] + 26.0 ); write_short ( g_SpriteBlood [ 1 ] ); write_short ( g_SpriteBlood [ 0 ] ); write_byte ( 248 ); write_byte ( 4 ); message_end ( ); } else { message_begin ( MSG_BROADCAST, SVC_TEMPENTITY ); write_byte ( TE_BLOODSPRITE ); engfunc ( EngFunc_WriteCoord, fOrigin [ 0 ] + 8.0 ); engfunc ( EngFunc_WriteCoord, fOrigin [ 1 ] ); engfunc ( EngFunc_WriteCoord, fOrigin [ 2 ] + 26.0 ); write_short ( g_SpriteBlood [ 1 ] ); write_short ( g_SpriteBlood [ 0 ] ); write_byte ( random_num ( 1, 255 ) ); write_byte ( 10 ); message_end ( ); } ExecuteHam ( Ham_TakeDamage, iReceiver, " ", iAttacker, fDamage, DMG_GENERIC ); } public messageScoreAttrib ( iMsgID, iDest, iReceiver ) { new iPlayer = get_msg_arg_int ( 1 ); if ( is_user_connected ( iPlayer ) && ( get_user_flags ( iPlayer ) & VIP_FLAG ) ) set_msg_arg_int ( 2, ARG_BYTE, is_user_alive ( iPlayer ) ? ( 1 << 2 ) : ( 1 << 0 ) ); } public cmdShowVipsOnline ( id ) { new message [ 256 ], name [ 32 ]; for ( new id = 1 ; id < 33 ; id++ ) { if ( is_user_connected ( id ) && get_user_flags ( id ) & VIP_FLAG ) { if ( strlen ( message ) > 0 ) add ( message, charsmax ( message ), ", " ); get_user_name ( id, name, 31 ); add ( message, 127, name ); } } if ( strlen ( message ) == 0 ) { message = "Brak Vipow online"; } ColorChat ( id, TEAM_COLOR, "[^4 ONLINE^3 ]^4 Gracze PREMIUM:^3 %s", message ); return 1; } stock get_velocity_from_origin ( ent, Float: fOrigin [ 3 ], Float: fSpeed, Float: fVelocity [ 3 ] ) { new Float: fEntOrigin [ 3 ]; pev( ent, pev_origin, fEntOrigin ); new Float: fDistance [ 3 ]; fDistance [ 0 ] = fEntOrigin [ 0 ] - fOrigin