#include <amxmodx> #include <hamsandwich> #include <engine> #include <fakemeta> #include <fun> #include <cstrike> #include <colorchat> #include <amxmisc> #include <fakemeta_util> #define FLAGA_VIP ADMIN_LEVEL_H #define KOMENDA_VIPY #define TABELA_VIP #define DODATKOWE_HP_VIP #define VIP_INFO #define PREFIX #define POWITANIE_VIP #define REKLAMA #define PREFIX_VIPA "^x04[VIP]" #define HP_NA_START #define ILOSC_HP 120 #define PODWOJNY_SKOK new nKiller, nKiller_hp, nHp_add, nHp_max; new maxplayers ; public plugin_init() { register_plugin("VIP", "1.0", "Zafahix"); RegisterHam(Ham_Spawn, "player", "Odrodzenie", 1); register_forward(FM_CmdStart, "CmdStart"); register_event("CurWeapon","CurWeapon","be", "1=1"); #if defined KOMENDA_VIPY register_clcmd("say /vipy", "vipy_cmd") register_clcmd("say /vips", "vipy_cmd") maxplayers = get_maxplayers() #endif #if defined TABELA_VIP register_message(get_user_msgid("ScoreAttrib"), "MessageScoreAttrib"); #endif #if defined VIP_INFO register_clcmd("say /vip", "wyswietl_info") #endif #if defined PREFIX register_message(get_user_msgid("SayText"),"handleSayText"); #endif #if defined DODATKOWE_HP_VIP #define DODAJ_HP 5 #define DODAJ_HS_HP 15 #define MAX_HP 100 #endif #if defined REKLAMA set_task(45.0, "VIPTEKST", 0,_,_,"b"); #endif #if defined TABELA_VIP #define SCOREATTRIB_NONE 0 #define SCOREATTRIB_DEAD (1<<0) #define SCOREATTRIB_BOMB (1<<1) #define SCOREATTRIB_VIP (1<<2) #endif } public Odrodzenie(id) { if(get_user_flags(id)&FLAGA_VIP) { #if defined HP_NA_START set_user_health(id, ILOSC_HP) set_user_armor(id, 100) #endif } } #if defined KOMENDA_VIPY public vipy_cmd(gracz) { new nazwyadminow[33][32] new message[256] new id, count, k, len for(id = 1 ; id <= maxplayers ; id++) if(is_user_connected(id)) if(get_user_flags(id) & FLAGA_VIP) get_user_name(id, nazwyadminow[count++], 31) len = format(message, 255, "^x04 VIPY ONLINE: ") if(count > 0) { for(k = 0 ; k < count ; k++) { len += format(message[len], 255-len, "%s%s ", nazwyadminow[k], k < (count-1) ? ", ":"") if(len > 96 ) { ColorChat(gracz, GREEN, "%s", message); len = format(message, 255, "^x04 ") } } ColorChat(gracz, GREEN, "%s", message); } else { len += format(message[len], 255-len, "Brak Vipow ONLINE") ColorChat(gracz, GREEN, "%s", message); } } #endif #if defined REKLAMA public VIPTEKST() ColorChat(0, RED, "Vip dostaje wiele rzeczy na poczatek rundy aby zobaczyc co wpisz /vip"); #endif #if defined TABELA_VIP public MessageScoreAttrib(iMsgID, iDest, iReceiver) { new iPlayer = get_msg_arg_int(1); if( is_user_connected( iPlayer ) && ( get_user_flags( iPlayer ) & FLAGA_VIP ) ) { set_msg_arg_int( 2, ARG_BYTE, is_user_alive( iPlayer ) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD ); } } #endif #if defined VIP_INFO public wyswietl_info(id) { show_motd(id, "vip.txt", "Informacje o VIP'ie") } #endif #if defined PREFIX public handleSayText(msgId,msgDest,msgEnt){ new id = get_msg_arg_int(1); if(get_user_flags(id) & FLAGA_VIP) { if(!is_user_connected(id)) return PLUGIN_CONTINUE; new szTmp[256],szTmp2[256]; get_msg_arg_string(2,szTmp, charsmax( szTmp ) ) new szPrefix[64] = PREFIX_VIPA; 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); #if defined VIP_PREFIX_I_SAY_ZIELONY add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : ^x04%s2"); #else add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 : %s2"); #endif } set_msg_arg_string(2,szTmp2); } return PLUGIN_CONTINUE; } #endif public CmdStart(id, uc_handle) { #if defined PODWOJNY_SKOK // kod DarkGL & RPK Shark static moze_skoczyc; if(!is_user_alive(id) || !(get_user_flags(id) & FLAGA_VIP)) return FMRES_IGNORED; new button = get_uc(uc_handle, UC_Buttons); new oldbutton = pev(id, pev_oldbuttons); new flags = pev(id, pev_flags); if((button & IN_JUMP) && !(flags & FL_ONGROUND) && !(oldbutton & IN_JUMP) && moze_skoczyc & (1<<id)) { moze_skoczyc &= ~(1<<id) new Float:velocity[3]; pev(id, pev_velocity, velocity); velocity[2] = random_float(265.0,285.0); set_pev(id, pev_velocity, velocity); } else if(flags & FL_ONGROUND){ moze_skoczyc |= (1<<id) } return FMRES_IGNORED; #endif } public hook_death() { #if defined DODATKOWE_HP_VIP nKiller = read_data(1); if ( (read_data(3) == 1) && (read_data(5) == 0) ) { nHp_add = DODAJ_HP; } else { nHp_add = DODAJ_HS_HP; } nHp_max = MAX_HP; if(!(get_user_flags(nKiller) & FLAGA_VIP)) return; nKiller_hp = get_user_health(nKiller); nKiller_hp += nHp_add; if (nKiller_hp > nHp_max) nKiller_hp = nHp_max; fm_set_user_health(nKiller, nKiller_hp); set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1); show_hudmessage(nKiller, "Dostales +%d hp", nHp_add); 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(); #endif } public client_connect(id) { if(get_user_flags(id) & FLAGA_VIP) { new name[32] get_user_name(id, name, 31) set_hudmessage(0, 255, 0, 0.0, 0.61, 0, 6.0, 12.0) show_hudmessage(0, "Na serwer wchodzi vip %s", name) client_print(0,print_chat,"VIP %s wchodzi na serwer!", name) } }Działa podwójny skok, armor, 120HP na start i to chyba na tyle Dodam, że na serwerze był reinstall do pierwotnego stanu i jest tylko GunGame Mod wrzucony. Jakby Wam to coś ułatwiło to wyświetlanie VIP w tabeli może zostać usunięte. Wystarczy mi, że na chacie będzie przy nicku prefix [VIP]. Gdzie popełniłem błąd - nie wiem. Byłem przekonany, że jak udało się skompilować to powinno też działać
Użytkownik Zafahix edytował ten post 09.08.2012 07:40