/* * Struktura Kodu -> Dunno * Maksymalna Edycja -> [H]ARDBO[T] * * ChangeLog: * * v2.5 * # Dodane Powitanie VIP'a * # Nowe Reklamy w Say * # Zmienione Cvary(PL) * # Wyeliminowane Bugi * # Dodane Lepsze Bronie do Menu * # Troche Spolszczony Plugin * # Јatwa zmiana flagi przy [ #define FLAGA ADMIN_LEVEL_H | //Moїna zmieniж z ADMIN_LEVEL_H na np: ADMIN_KICK//] * # Dodana opcja Dџwiкkowa * # Dodana opcja Dџwiкkowa jak VIP wchodzi na serwer * # Dodane modele VIP'a dla Obu druїyn lub dla Ogуlnego # * # Zoptymalizowany Plugin <- Lekkie їarty :( * * v2.6 * $ Poprawione wiкkszoњж Bugуw ktуre miaіy miesce w Pluginie! * $ Zmienione Cvary * $ Zmobilizowano Bronie * $ Јatwa zmiana flagi * $ Modyfikacja struktury kodu * $ Dodano modele do danej druїyny ( Dodany tutorial w Temacie jak je odblokowaж ) * $ Dodano informacje w Tabeli Wynikуw їe gracz ma VIPa (po њrodku pisze VIP) *Poprawiono bug! * * v2.7 UPDATE * @ Dodano nowe "MENU ADMINA", іatwe manerwy dla admina poprzez cvary w menu :P * @ Dodano nowe efekty w MOTD badz w MENU (zmieniane w "admin menu") :) * @ Dodano teї zapis konfiguracji w MENU ADMINA do pliku nVault o nazwie "VipUltimateHot_v2.7" * * * Cvars: * * vip_kasa_za_obrazenia "3" //Dodaje 3$ za zadane obrazenia * vip_kasa_za_zabicie "200" //Dodaje 200$ za zabicie * vip_kasa_za_hs "500" //Dodaje 500$ za zabicie headshote * vip_hp_za_zabicie "15" //Dodaje 15HP (jeњli vip ma mniej niї "vip_max_hp") za zabicie * vip_hp_za_hs "30" //Dodaje 30HP (jeњli vip ma mniej niї "vip_max_hp") za zabicie * vip_max_hp "100" //Do ilu HP ma ladowac za zabica z cvarow ("vip_hp_za_hs" i "vip_hp_za_zabicie") * vip_menu "1" //Czy vip ma miec menu z broсmi na start rundy? (ustawiane w menu admina ^^) * vip_awp "1" //Czy vip ma miec tylko awp? (ustawiane w menu admina ^^) * vip_info_online "1" //Jak maja sie ukazywac vipy online? (ustawiane w menu admina ^^) * vip_connect_info "1" //Czy ma sie ukazywac informacja o polaczeniu sie vipa do serwa (ustawiane w menu admina ^^) * vip_add_grenade "1" //Czy dodawaж vipom do wyposarzenia granaty? (ustawiane w menu admina ^^) * vip_add_money "500" //Ile dodaж vipom dodatkowej kasy? (ustawiane w menu admina ^^) * * Komendy w say: * * /cmd //Ukazuje Menu Admina w ktуrym admin zmienia cvary dla vipуw :P * /vips //Ujawnia Vipow Online (ukazuje albo w MOTD lub MENU (ustawiane w menu admina ^^)) * /vipinfo //Ukazuje z pliku "cstrike/vip.txt" informacje :) (doі№czam swуj plik ^^) */ /*Wymagane Moduіy*/ #include #include #include #include #include #include /*Zmienne*/ #pragma semicolon 1 #define FLAGA ADMIN_LEVEL_H #define ADMINCMD ADMIN_CFG #define Klawisze (1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9) #define SCOREATTRIB_NONE 0 #define SCOREATTRIB_DEAD (1<<0) #define SCOREATTRIB_BOMB (1<<1) #define SCOREATTRIB_VIP (1<<2) new const gszPrefix[] = "^x01[^x03VIP^x01]"; new bool:PosiadaC4[33] = false; //Tylko jeњli VIP TT (Gdy wybiera sobie broс, Zmienna sprawdza czy gracz ma pake (taki maіy fix)) jeњli j№ ma to dodjae pake jeњli nie to nie. new VipName[32]; new GetMaxPlayers; new gszVault; new mpd; new mkb; new mhb; new nHp_add; new nHp_max; new health_add; new health_hs_add; new health_max; new nKiller; new nKiller_hp; new vip_connect; new menu_vip; new vip_info_online; new awp_vip; new vip_grenade; new vip_money; public plugin_init() { register_plugin("[VIP] Ultimate Hot", "2.7", "Dunno & [H]ARDBO[T]"); //Zapis Ustawien! set_task(0.1, "WczytajKonfiguracje"); gszVault = nvault_open("VipUltimateHot_v2.7"); //EVENTY register_event("HLTV", "HltvEvent", "a", "1=0", "2=0"); register_event("DeathMsg", "DeathMsgEventHook", "a", "1>0"); register_event("Damage","DamageEvent","b"); register_event("DeathMsg","DeathMsgEvent","a"); register_event("CurWeapon", "CurWeaponEvent", "be", "1=1"); //KOMENDY W SAY register_clcmd("say /vipinfo","ShowMotd"); register_clcmd("say /vips","ClientPrintVipOnline"); register_clcmd("say /cmd","MenuADMINA"); //KOMENDY register_clcmd("awp","PlayerCmd"); register_clcmd("sg550","PlayerCmd"); register_clcmd("g3sg1","PlayerCmd"); //INDEXY MENU register_menucmd(register_menuid("Menuid"), Klawisze, "PokazMenu"); register_menucmd(register_menuid("MenuAdminaId"), Klawisze, "ShowAdminMenu"); register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib"); //CVARY mpd = register_cvar("vip_kasa_za_obrazenia","3"); mkb = register_cvar("vip_kasa_za_zabicie","200"); mhb = register_cvar("vip_kasa_za_hs","500"); health_add = register_cvar("vip_hp_za_zabicie", "15"); health_hs_add = register_cvar("vip_hp_za_hs", "30"); health_max = register_cvar("vip_max_hp", "100"); //VIP CVARY menu_vip = register_cvar("vip_menu","1"); awp_vip = register_cvar("vip_awp","1"); vip_info_online = register_cvar("vip_info_online","1"); vip_connect = register_cvar("vip_connect_info","1"); vip_grenade = register_cvar("vip_add_grenade","1"); vip_money = register_cvar("vip_add_money","500"); //ZMIENNE GetMaxPlayers = get_maxplayers(); //REKLAMA W SAY set_task(80.0, "Reklama",0,_,_,"b"); register_logevent("RoundStart", 2, "0=World triggered", "1=Round_Start"); } public plugin_cfg() { server_cmd("exec addons/amxmodx/configs/VipUltimateHot.cfg"); } public DamageEvent(id) { new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint); new v_victim = read_data(2); if(attacker<=GetMaxPlayers && is_user_alive(attacker) && attacker != id) if(get_user_flags(attacker) & FLAGA) { new money = v_victim * get_pcvar_num(mpd); if(hitpoint == 1) money += get_pcvar_num(mhb); cs_set_user_money(attacker,cs_get_user_money(attacker) + money); } } public RoundStart(id) { if(get_user_flags(id) & FLAGA) { set_user_health(id, 130); } } public DeathMsgEvent() { new v_killer = read_data(1); new v_victim = read_data(2); if(v_killer <= GetMaxPlayers && v_killer && v_killer != v_victim) { cs_set_user_money(v_killer,cs_get_user_money(v_killer) + get_pcvar_num(mkb) - 300); } } public client_authorized(id) { set_task(5.0, "Rozdaj", id); } public HltvEvent() { for(new all=1; all<32; all++) { set_task(5.0, "Rozdaj",all); } } public Rozdaj(id) { if(is_user_alive(id) && get_user_flags(id) & FLAGA) { cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(vip_money)); if(get_pcvar_num(menu_vip) == 1) { set_task(1.0,"MenuVIPA",id); } } return PLUGIN_HANDLED; } public DeathMsgEventHook() { nKiller = read_data(1); if(get_user_flags(nKiller) & FLAGA) { if((read_data(3) == 1) && (read_data(5) == 0)) { nHp_add = get_pcvar_num (health_hs_add); } else { nHp_add = get_pcvar_num (health_add); nHp_max = get_pcvar_num (health_max); } nKiller_hp = get_user_health(nKiller); nKiller_hp += nHp_add; if(nKiller_hp > nHp_max) { nKiller_hp = nHp_max; } message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller); write_short(1<<10); write_short(1<<10); write_short(0x0000); write_byte(0); write_byte(0); write_byte(200); write_byte(75); message_end(); set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1); show_hudmessage(nKiller, "BOOOOM HEADSHOT!^nDostales +%d HP za HS'a!", nHp_add); set_user_health(nKiller, nKiller_hp); } return PLUGIN_CONTINUE; } //MENU ADMINA! public MenuADMINA(id) { if(get_user_flags(id) & ADMINCMD) { new nick[32],MenuText[1024]; get_user_name(id, nick, 31); formatex(MenuText, 1023,"\yWitaj \r%s^n^n\w1. \yVip ma dostep do menu broni? \r[%s]^n\w2. \yDostep do AWP \r[%s]^n\w3. \yVip Info Online \r[%s]^n\w4. \yInformacje o nadejsciu VIPa \r[%s]^n\w5. \yDodawac granaty do wyposarzenia? \r[%s]^n^n\w9. \rZapisz Konfiguracje^n",nick, menu_vip ? "TAK":"NIE", awp_vip ? "VIP":"WSZYSCY", vip_info_online ? "W MENU":"W MOTD",vip_connect ? "TAK":"NIE",vip_money ? "TAK":"NIE"); show_menu(id, Klawisze, MenuText, -1, "MenuAdminaId"); } else { ColorChat(id, RED, "%s ^x04Tylko glowny Administrator ma dostep do menu!",gszPrefix); } return PLUGIN_CONTINUE; } public ShowAdminMenu(id, key) { client_cmd(id, "spk misc/vip/klick.wav"); set_task(0.1, "WczytajKonfiguracje"); set_task(0.1, "ZapiszKonfiguracje",id); switch(key) { case 0: { if(!menu_vip) { ColorChat(id, GREEN, "%s^x01 Dostep do menu wlaczony",gszPrefix); menu_vip = 1; } else { ColorChat(id, GREEN, "%s^x01 Dostep do menu wylaczony",gszPrefix); menu_vip = 0; } MenuADMINA(id); } case 1: { if(!awp_vip) { ColorChat(id, GREEN, "%s^x01 Tylko^x04 VIP^x01 moze uzywac^x04 AWP",gszPrefix); awp_vip = 1; } else { ColorChat(id, GREEN, "%s^x01 Kazdy moze uzywac^x04 AWP",gszPrefix); awp_vip = 0; } MenuADMINA(id); } case 2: { if(!vip_info_online) { ColorChat(id, GREEN, "%s^x01 Vip online bedzie ukazywany w^x04 MENU!",gszPrefix); vip_info_online = 1; } else { ColorChat(id, GREEN, "%s^x01 Vip online bedzie ukazywany w^x04 MOTD!",gszPrefix); vip_info_online = 0; } MenuADMINA(id); } case 3: { if(!vip_connect) { ColorChat(id, GREEN, "%s^x01 Informacja o nadejsciu^x04 VIPa^x01 do serwera^x04 Wlaczona",gszPrefix); vip_connect = 1; } else { ColorChat(id, GREEN, "%s^x01 Informacja o nadejsciu^x04 VIPa^x01 do serwera^x04 Wylaczona",gszPrefix); vip_connect = 0; } MenuADMINA(id); } case 4: { if(!vip_grenade) { ColorChat(id, GREEN, "%s^x04 VIPy^x01 nie beda dostawac granatow do wyposarzenia",gszPrefix); vip_grenade = 1; } else { ColorChat(id, GREEN, "%s^x04 VIPy^x01 beda dostawac granaty do wyposarzenia",gszPrefix); vip_grenade = 0; } MenuADMINA(id); } case 8: { ColorChat(id, GREEN, "%s^x04 Konfiguracja zostala pomyslnie zapisana!",gszPrefix); } } return PLUGIN_HANDLED; } //MENU VIPA public MenuVIPA(id) { show_menu(id, Klawisze, "\d[\rProsze wybrac Zestaw\d]^n^n\d1. \yWez M4A1 + Deagle + Granaty ^n\d2. \yWez AK47 + Deagle + Granaty^n\d3. \yWez AWP + Deagle + Granaty^n\d4. \yWez Auto-ShotGuna + Granaty^n^n\d0. \rWyjscie^n", -1, "Menuid"); return PLUGIN_CONTINUE; } public PokazMenu(id, key) { strip_user_weapons(id); give_item(id,"weapon_knife"); if(vip_grenade==1) { give_item(id, "weapon_hegrenade"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_flashbang"); give_item(id, "weapon_smokegrenade"); } give_item(id, "item_assaultsuit"); give_item(id, "item_thighpack"); if(PosiadaC4[id] == true) { give_item(id, "weapon_c4"); cs_set_user_plant(id); } client_cmd(id, "spk misc/vip/klick.wav"); switch(key) { case 0: { give_item(id,"weapon_m4a1"); cs_set_user_bpammo(id, CSW_M4A1, 90); give_item(id,"weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 35); set_hudmessage(170, 255, 0, 0.3, 0.9, 0, 6.0, 15.0); show_hudmessage(id, "Wzioles M4A1 i Deagle + Wszystkie Granaty + (Standardowoy Noz)"); if(user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T) { PosiadaC4[id] = true; } else { PosiadaC4[id] = false; } } case 1: { give_item(id,"weapon_ak47"); cs_set_user_bpammo(id, CSW_AK47, 90); give_item(id,"weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 35); set_hudmessage(170, 255, 0, 0.3, 0.9, 0, 6.0, 15.0); show_hudmessage(id, "Wziales AK47 i Deagle + Wszystkie Granaty + (Standardowy Noz)"); if(user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T) { PosiadaC4[id] = true; } else { PosiadaC4[id] = false; } } case 2: { give_item(id,"weapon_awp"); cs_set_user_bpammo(id, CSW_AWP, 30); give_item(id,"weapon_deagle"); cs_set_user_bpammo(id, CSW_DEAGLE, 35); set_hudmessage(170, 255, 0, 0.3, 0.9, 0, 6.0, 15.0); show_hudmessage(id, "Wziales AWP i Deagle + Wszystkie Granaty + (Standardowy Noz)"); if(user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T) { PosiadaC4[id] = true; } else { PosiadaC4[id] = false; } } case 3: { give_item(id,"weapon_xm1014"); cs_set_user_bpammo(id, CSW_XM1014, 32); give_item(id,"weapon_elite"); cs_set_user_bpammo(id, CSW_ELITE, 35); set_hudmessage(170, 255, 0, 0.3, 0.9, 0, 6.0, 15.0); show_hudmessage(id, "Wziales XM1014 i Elite + Wszystkie Granaty + (Standardowy Noz)"); if(user_has_weapon(id, CSW_C4) && cs_get_user_team(id) == CS_TEAM_T) { PosiadaC4[id] = true; } else { PosiadaC4[id] = false; } } } return PLUGIN_HANDLED; } //ZAKAZ SNAJPEREK public PlayerCmd(id) { if(get_pcvar_num(awp_vip)==1) { if(get_user_flags(id) & FLAGA){ set_hudmessage(0, 255, 0, 0.5, 0.7, 0, 6.0, 15.0); show_hudmessage(id, "Zyczymy milego Fragowania!"); } else { set_hudmessage(255, 0, 0, 0.5, 0.7, 0, 6.0, 15.0); show_hudmessage(id, "Bronie Snajperskie tylko dla VIP'ow!"); client_cmd(id, "drop"); } } return PLUGIN_HANDLED; } public CurWeaponEvent(id) { if(get_pcvar_num(awp_vip)==1) { if(read_data(1) == (CSW_AWP & CSW_SG550 & CSW_G3SG1)) { if(get_user_flags(id) & FLAGA) { set_hudmessage(0, 255, 0, 0.5, 0.7, 0, 6.0, 15.0); show_hudmessage(id, "Zyczymy milego Fragowania!"); } else { set_hudmessage(255, 0, 0, 0.5, 0.7, 0, 6.0, 15.0); show_hudmessage(id, "Bronie Snajperskie tylko dla VIP'ow!"); client_cmd(id, "drop"); } } } return PLUGIN_HANDLED; } //VIP INFO public ShowMotd(id) { show_motd(id, "vip.txt","Informacje o Vipie"); } //REKLAMY public Reklama() { new map[32]; get_mapname(map,31); new times[64]; get_time("%H:%M:%S" ,times,63); switch(random(3)) { case 1: ColorChat(0, GREEN ,"%s Wpisz w say^x04 /vipinfo^x01 i zobacz jak byc^x01 VIP'em.",gszPrefix); case 2: ColorChat(0, GREEN ,"%s Wpisz w say^x04 /vips^x01 i zobacz kto jest^x04 VIP'em.",gszPrefix); case 3: ColorChat(0, GREEN ,"%s Aktualnie jest godzina:^x04 %s^x01 | Gracie na mapie:^x04 %s",gszPrefix,times,map); } return PLUGIN_HANDLED; } //VIP ONLINE public ClientPrintVipOnline(id) { switch(get_pcvar_num(vip_info_online)) { case 0: print_vip_motd(id); case 1: print_vip_menu(id); } } public print_vip_motd(id) { static motd[1000],head[600],name[32],len,i,counter; len = 0; counter = 0; len += formatex(motd[len],sizeof motd - 1 - len,"
Vipami na serwerze sa:

"); formatex(head,sizeof head - 1,"Vipami na serwerze sa:"); for(i = 1; i <= GetMaxPlayers ;i++) { if(!is_user_connected(i)) continue; if((cs_get_user_team(i) == CS_TEAM_SPECTATOR) && (cs_get_user_team(i) == CS_TEAM_UNASSIGNED)) continue; counter++; get_user_name(i,name,sizeof name - 1); if(is_user_alive(i) && get_user_flags(i) & FLAGA) { len += formatex(motd[len],sizeof motd - 1 - len,"%d) %s | Steam:[%s]

",counter,name,is_user_steam(i)?"TAK!":"NIE!"); } } show_motd(id,motd,head); return PLUGIN_CONTINUE; } public print_vip_menu(id) { static Text[1024],name[32],len,i,counter; len = 0; counter = 0; len += formatex(Text[len],sizeof Text - 1 - len,"\rVips Online:^n^n"); for(i = 1; i <= GetMaxPlayers ;i++) { if(!is_user_connected(i)) continue; if((cs_get_user_team(i) == CS_TEAM_SPECTATOR) && (cs_get_user_team(i) == CS_TEAM_UNASSIGNED)) continue; counter++; get_user_name(i,name,sizeof name - 1); if(is_user_alive(i) && get_user_flags(i) & FLAGA) { len += formatex(Text[len],sizeof Text - 1 - len,"\w%d. \y%s \d| \dSteam:\r[%s]^n",counter,name,is_user_steam(i)?"TAK":"NIE"); } } show_menu(id, Klawisze, Text, -1, "MenuVips"); } //TABELE INFO VIP public MessageScoreAttrib(iMsgID, iDest, iReceiver) { new iPlayer = get_msg_arg_int(1); if(get_user_flags(iPlayer) & FLAGA) { if(is_user_connected(iPlayer)) { if(cs_get_user_team(iPlayer)==CS_TEAM_CT) { set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD); } else { set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_BOMB); } } } } //GACZ SIК POЈACZA I ROZЈҐCZA Z SERWERA public client_connect(id) { if(get_pcvar_num(vip_connect)==1) { if(get_user_flags(id) & FLAGA) { get_user_name(id, VipName, 31); set_hudmessage(127, 255, 42, 0.01, 0.4, 0, 15.0); show_hudmessage(0, "Wchodzi VIP: %s", VipName); client_cmd(0, "spk misc/vip/vip"); } } } public client_disconnect(id) { if(get_pcvar_num(vip_connect)==1) { if(get_user_flags(id) & FLAGA) { get_user_name(id, VipName, 31); set_hudmessage(127, 255, 42, 0.01, 0.4, 0, 15.0); show_hudmessage(0, "Wychodzi VIP: %s", VipName); } } } public ZapiszKonfiguracje(id) { new AuthID[35],vaultkey[64],vaultdata[256]; get_user_authid(id,AuthID,34); format(vaultkey,63,"%s-MOD",AuthID); format(vaultdata,255,"%i#%i#%i#%i#%i#",vip_info_online,awp_vip,menu_vip,vip_connect,vip_grenade); nvault_set(gszVault,vaultkey,vaultdata); return PLUGIN_CONTINUE; } public WczytajKonfiguracje() { new AuthIDs[35],vaultkey[64],vaultdata[256]; format(vaultkey, 63, "%s-MOD", AuthIDs); format(vaultdata,255,"%i#%i#%i#%i#%i#",vip_info_online,awp_vip,menu_vip,vip_connect,vip_grenade); nvault_get(gszVault,vaultdata,vaultkey,255); replace_all(vaultdata, 255, "#", " "); new VipCMD[20], VipCMD2[20], VipCMD3[20], VipCMD4[20], VipCMD5[20]; parse(vaultdata, VipCMD,19, VipCMD2,19, VipCMD3,19, VipCMD4,19, VipCMD5,19); vip_info_online = str_to_num(VipCMD); awp_vip = str_to_num(VipCMD2); menu_vip = str_to_num(VipCMD3); vip_connect = str_to_num(VipCMD4); vip_grenade = str_to_num(VipCMD5); return PLUGIN_CONTINUE; } public plugin_precache() { precache_sound("misc/vip/klick.wav"); precache_sound("misc/vip/vip.wav"); /* precache_model("models/player/vip/vip.mdl"); precache_model("models/player/vip_TT/vip_TT.mdl"); precache_model("models/player/vip_CT/vip_CT.mdl"); */ } stock bool:is_user_steam(id) { new authid[32]; get_user_authid(id, authid, 31); return containi(authid, ":") != -1 ? true:false; }