#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 Użytkownik Zafahix edytował ten post 09.08.2012 07:40


Dodatki SourceMod

















