Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Dominika12345 - zdjęcie

Dominika12345

Rejestracja: 09.06.2014
Aktualnie: Nieaktywny
Poza forum Ostatnio: 27.08.2015 15:51
-----

Moje tematy

[ROZWIĄZANE] VIP z menu broni od 2 rundy

20.03.2015 20:04

Witam, mam problem z wyborem broni z menu vipa.

Zrobiłam według tego poradnika http://amxx.pl/topic...eneratora-vipa/

Menu działa poprawnie jednak wyświetla się od 1 rundy a chciałabym żeby pokazywało się od 2 rundy.

Proszę o pomoc. ;c

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <engine>
#include <fakemeta>
#include <fun>
#include <hamsandwich>
#include <stripweapons>

forward amxbans_admin_connect(id);

new Array:g_Array, CsArmorType:armortype, bool:g_Vip[33], gRound=0, menu, skoki[33], weapon_id;

new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};
new const g_Prefix[] = "Vip Chat";

public plugin_init(){
	register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill");
	register_forward(FM_CmdStart, "CmdStartPre");
	RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
	register_event("DeathMsg", "DeathMsg", "a");
	register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
	register_logevent("GameCommencing", 2, "1=Game_Commencing");
	g_Array=ArrayCreate(64,32);
	for(new i;i<sizeof g_Langcmd;i++){
		register_clcmd(g_Langcmd[i], "ShowVips");
	}
	register_clcmd("say /vip", "ShowMotd");
	register_clcmd("say_team", "VipChat");
}
public client_authorized(id){
	if(get_user_flags(id) & 524288 == 524288){
		client_authorized_vip(id);
	}
}
public client_authorized_vip(id){
	g_Vip[id]=true;
	new g_Name[64];
	get_user_name(id,g_Name,charsmax(g_Name));
	
	new g_Size = ArraySize(g_Array);
	new szName[64];
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, szName, charsmax(szName));
		
		if(equal(g_Name, szName)){
			return 0;
		}
	}
	ArrayPushString(g_Array,g_Name);
	
	return PLUGIN_CONTINUE;
}
public client_disconnect(id){
	if(g_Vip[id]){
		client_disconnect_vip(id);
	}
}
public client_disconnect_vip(id){
	g_Vip[id]=false;
	new Name[64];
	get_user_name(id,Name,charsmax(Name));
	
	new g_Size = ArraySize(g_Array);
	new g_Name[64];
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
		
		if(equal(g_Name,Name)){
			ArrayDeleteItem(g_Array,i);
			break;
		}
	}
}
public CmdStartPre(id, uc_handle){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			CmdStartPreVip(id, uc_handle);
		}
	}
}
public CmdStartPreVip(id, uc_handle){
	new flags = pev(id, pev_flags);
	if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){
		--skoki[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 && skoki[id]!=-1){
		skoki[id] = 1;
	}
}
public SpawnedEventPre(id){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			SpawnedEventPreVip(id);
		}
	}
}
public SpawnedEventPreVip(id){
	skoki[id]=1;
	cs_set_user_armor(id, min(cs_get_user_armor(id,armortype)+100, 100), CS_ARMOR_VESTHELM);
	new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
	give_item(id, "weapon_hegrenade");
	++henum;
	new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
	give_item(id, "weapon_flashbang");
	++fbnum;
	cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
	new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
	give_item(id, "weapon_smokegrenade");
	++sgnum;
	show_vip_menu(id);
	if(get_user_team(id)==2){
		give_item(id, "item_thighpack");
	}
}
public menu_1_handler(id){
	StripWeapons(id, Secondary);
	give_item(id, "weapon_deagle");
	give_item(id, "ammo_50ae");
	weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	StripWeapons(id, Primary);
	give_item(id, "weapon_m4a1");
	give_item(id, "ammo_556nato");
	weapon_id=find_ent_by_owner(-1, "weapon_m4a1", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 30);
	cs_set_user_bpammo(id, CSW_M4A1, 90);
}
public menu_2_handler(id){
	StripWeapons(id, Secondary);
	give_item(id, "weapon_deagle");
	give_item(id, "ammo_50ae");
	weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	StripWeapons(id, Primary);
	give_item(id, "weapon_ak47");
	give_item(id, "ammo_762nato");
	weapon_id=find_ent_by_owner(-1, "weapon_ak47", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 30);
	cs_set_user_bpammo(id, CSW_AK47, 90);
}
public menu_3_handler(id){
	StripWeapons(id, Secondary);
	give_item(id, "weapon_deagle");
	give_item(id, "ammo_50ae");
	weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	StripWeapons(id, Primary);
	give_item(id, "weapon_awp");
	give_item(id, "ammo_338magnum");
	weapon_id=find_ent_by_owner(-1, "weapon_awp", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 10);
	cs_set_user_bpammo(id, CSW_AWP, 30);
}
public menu_4_handler(id){
	StripWeapons(id, Secondary);
	give_item(id, "weapon_deagle");
	give_item(id, "ammo_50ae");
	weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	StripWeapons(id, Primary);
	give_item(id, "weapon_m249");
	give_item(id, "ammo_556natobox");
	weapon_id=find_ent_by_owner(-1, "weapon_m249", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 100);
	cs_set_user_bpammo(id, CSW_M249, 200);
}
public menu_5_handler(id){
	StripWeapons(id, Secondary);
	give_item(id, "weapon_deagle");
	give_item(id, "ammo_50ae");
	weapon_id=find_ent_by_owner(-1, "weapon_deagle", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	StripWeapons(id, Primary);
	give_item(id, "weapon_xm1014");
	give_item(id, "ammo_buckshot");
	weapon_id=find_ent_by_owner(-1, "weapon_xm1014", id);
	if(weapon_id)cs_set_weapon_ammo(weapon_id, 7);
	cs_set_user_bpammo(id, CSW_XM1014, 32);
}
public DeathMsg(){
	new killer=read_data(1);
	new victim=read_data(2);
	
	if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
		DeathMsgVip(killer,victim,read_data(3));
	}
}
public DeathMsgVip(kid,vid,hs){
	set_user_health(kid, min(get_user_health(kid)+(hs?15:10),130));
	cs_set_user_money(kid, cs_get_user_money(kid)+(hs?500:300));
}
public show_vip_menu(id) {
	menu = menu_create("\rMenu Vip'a:", "menu_handler");
	menu_additem(menu, "\wWez \yM4A1+Deagle", "1", 0);
	menu_additem(menu, "\wWez \yAK47+Deagle", "2", 0);
	menu_additem(menu, "\wWez \yAWP+Deagle", "3", 0);
	menu_additem(menu, "\wWez \yKrowe+Deagle", "4", 0);
	menu_additem(menu, "\wWez \yShotguna+Deagle", "5", 0);

	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);

	menu_display(id, menu, 0);
}
public event_new_round(){
	++gRound;
}
public GameCommencing(){
	gRound=0;
}

public ShowVips(id){
	new g_Name[64],g_Message[192];
	
	new g_Size=ArraySize(g_Array);
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
		
		add(g_Message, charsmax(g_Message), g_Name);
		
		if(i == g_Size - 1){
			add(g_Message, charsmax(g_Message), ".");
		}
		else{
			add(g_Message, charsmax(g_Message), ", ");
		}
	}
	ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze: ^x04%s", g_Message);
	return PLUGIN_CONTINUE;
}
public client_infochanged(id){
	if(g_Vip[id]){
		new szName[64];
		get_user_info(id,"name",szName,charsmax(szName));
		
		new Name[64];
		get_user_name(id,Name,charsmax(Name));
		
		if(!equal(szName,Name)){
			ArrayPushString(g_Array,szName);
			
			new g_Size=ArraySize(g_Array);
			new g_Name[64];
			for(new i = 0; i < g_Size; i++){
				ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
				
				if(equal(g_Name,Name)){
					ArrayDeleteItem(g_Array,i);
					break;
				}
			}
		}
	}
}
public plugin_end(){
	ArrayDestroy(g_Array);
}
public ShowMotd(id){
	show_motd(id, "vip.txt", "Informacje o vipie");
}
public VipChat(id){
	if(g_Vip[id]){
		new g_Msg[256],
		g_Text[256];
		
		read_args(g_Msg,charsmax(g_Msg));
		remove_quotes(g_Msg);
		
		if(g_Msg[0] == '*' && g_Msg[1]){
			new g_Name[64];
			get_user_name(id,g_Name,charsmax(g_Name));
			
			formatex(g_Text,charsmax(g_Text),"^x01(%s) ^x03%s : ^x04%s",g_Prefix, g_Name, g_Msg[1]);
			
			for(new i=1;i<33;i++){
				if(is_user_connected(i) && g_Vip[i])
				ColorChat(i, GREEN, "%s", g_Text);
			}
			return PLUGIN_HANDLED_MAIN;
		}
	}
	return PLUGIN_CONTINUE;
}
public amxbans_admin_connect(id){
	client_authorized(id);
}

public menu_handler(id, menu, item)
{
	if (item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	new data[8], iName[64];
	new zaccess, callback;
	menu_item_getinfo(menu, item, zaccess, data,7, iName, 64, callback);
	new key = str_to_num(data)

	switch(key)
	{
		case 1: menu_1_handler(id)
		case 2: menu_2_handler(id)
		case 3: menu_3_handler(id)
		case 4: menu_4_handler(id)
		case 5: menu_5_handler(id)
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

[KOSZ] dr_duel

06.03.2015 10:05

Witam, mam problem z przerobieniem pluginu dr_duel, chcę go przerobić tak by po wpisaniu komendy "say /duel" przez TT otwierało się menu z pojedynkami, obecnie jest ustawione tak, że otwiera się w CT.

Pomoże mi ktoś z tym?;< 

Myślę, że to nie zajmie dużo czasu a byłabym bardzo wdzięczna za udzielenie mi pomocy.

#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>
#include <cstrike>

#define OFFSET_RELOAD	54
#define LINUX_DIFF		4

#define fm_create_entity(%1) engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, %1))


/*========================================================================================================
===========================================[ Customizations ]=============================================
========================================================================================================*/

new const BOT_NAME[] = "DRM Fake Player"	// InGame Bot Name (in DeathrunManager!)

new const g_ChatPrefix[] = "[DeathRun Duel]"

new const CT_Aura[] = { 0, 0, 250 }
new const T_Aura[] = { 250, 0, 0 }

new const s_StartDuel[][] = { "vox/bizwarn.wav" }			// Duel starting sounds

/*========================================================================================================
=========================================[ Customizations End ]===========================================
========================================================================================================*/


new SayText, g_Maxplayers, g_Num_CT, g_MsgCurWeapon, g_DuelStarted, g_Weapon[33], g_WeaponClip[33],
	g_OneShot, g_ScoutBPAmmo, g_DeagleBPAmmo, g_AWPBPAmmo, g_Round_Ended, g_New_Round, RingSprite,
	CT_Player, T_Player, g_PlayerHP, g_DuelTimeOut, g_MsgSync, CountDown_Timer, g_ButtonsDisable

new const TASK_CONT = 1352	// CountDown task

public plugin_init()
{
	register_plugin("DeathRun Duel (CT Choose ONLY)", "1.3", "Shidla")
	register_cvar("Shidla", "DeathRun Duel 1.3 (CT Choose ONLY)", FCVAR_SERVER|FCVAR_SPONLY)

	register_clcmd("say /duel", "StartDuel")
	register_clcmd("say_team /duel", "StartDuel")
	register_clcmd("drop", "Drop_Cmd")

	g_ScoutBPAmmo	= register_cvar("dr_duel_scout_bpammo",		"200")
	g_DeagleBPAmmo	= register_cvar("dr_duel_deagle_bpammo",	"50")
	g_AWPBPAmmo		= register_cvar("dr_duel_awp_bpammo",		"100")
	g_PlayerHP		= register_cvar("dr_duel_player_hp",		"100")
	g_DuelTimeOut	= register_cvar("dr_duel_timeout",			"5")
	g_OneShot		= register_cvar("dr_duel_one_shot", 		"1")	// 1 - one clip bullet (ONLY!); 0 - disable
	g_ButtonsDisable = register_cvar("dr_duel_buttons_disable",	"1")

	register_event("DeathMsg", "Event_Death", "a")
	register_event("HLTV", "Event_Round_Start", "a", "1=0", "2=0" )
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_terwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_ctwin")
	register_event("SendAudio", "Event_Round_End", "a", "2&%!MRAD_rounddraw")
	register_event("CurWeapon","Event_CurWeapon","b")

	register_forward(FM_CmdStart, "fw_CmdStart",1)

	RegisterHam(Ham_Touch, "weaponbox", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "weapon_shield", "fw_TouchWeapon")
	RegisterHam(Ham_Touch, "armoury_entity", "fw_TouchWeapon")
	RegisterHam(Ham_Weapon_Reload, "weapon_scout", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_deagle", "fw_Reload_Post", 1)
	RegisterHam(Ham_Weapon_Reload, "weapon_awp", "fw_Reload_Post", 1)
	RegisterHam(Ham_Use, "func_button", "fw_Use")

	SayText = get_user_msgid("SayText")
	g_MsgCurWeapon = get_user_msgid("CurWeapon")
	g_MsgSync = CreateHudSyncObj()
	g_Maxplayers = get_maxplayers()

	register_dictionary("dr_duel.txt")
}

public plugin_precache()
{
	RingSprite = precache_model("sprites/zbeam5.spr")

	static i
	for(i = 0; i < sizeof s_StartDuel; i++)
		precache_sound(s_StartDuel[i])
}


public client_putinserver(id)
{
	g_Weapon[id] = 0
	g_WeaponClip[id] = 0
}

public StartDuel(id)
{
	if(!is_user_alive(id))
	{
		new t_Cant_Dead[600 char]
		formatex(t_Cant_Dead, charsmax(t_Cant_Dead), "%L", id, "DR_CANT_DEAD")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Dead)
		return PLUGIN_CONTINUE
	}

	if(g_Round_Ended)
	{
		new t_Cant_Round_End[600 char]
		formatex(t_Cant_Round_End, charsmax(t_Cant_Round_End), "%L", id, "DR_CANT_ROUND_END")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Round_End)
		return PLUGIN_CONTINUE
	}

	if(cs_get_user_team(id) == CS_TEAM_T)
	{
		new t_Cant_Ter[600 char]
		formatex(t_Cant_Ter, charsmax(t_Cant_Ter), "%L", id, "DR_CANT_TER")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Ter)
		return PLUGIN_CONTINUE
	}

	if(g_DuelStarted)
	{
		new t_Cant_Started[600 char]
		formatex(t_Cant_Started, charsmax(t_Cant_Started), "%L", id, "DR_CANT_STARTED")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Started)
		return PLUGIN_CONTINUE
	}

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			g_Num_CT++
			if(g_Num_CT == 1)
				CT_Player = i
			else
				CT_Player = 0
		}

		if(is_user_alive(i) && (cs_get_user_team(i) == CS_TEAM_T) && !equal(Name, BOT_NAME))
			T_Player = i
	}

	if(g_Num_CT == 1)
	{
		new TextTitle[ 200 char ]
		formatex(TextTitle, charsmax(TextTitle), "\rВыберите оружие для дуэли:")
		new WeapScout[ 200 char ]
		formatex(WeapScout, charsmax(WeapScout), "\yМуха [Scout]")
		new WeapDeagle[ 200 char ]
		formatex(WeapDeagle, charsmax(WeapDeagle), "\yДигл [Deagle]")
		new WeapAWP[ 200 char ]
		formatex(WeapAWP, charsmax(WeapAWP), "\yСлон [AWP]")
		new WeapKNife[ 200 char ]
		formatex(WeapKNife, charsmax(WeapKNife), "\yНож [KNife]")

		new i_Menu = menu_create(TextTitle, "WeaponMenu")
		menu_additem(i_Menu, WeapScout, "1", 0)
		menu_additem(i_Menu, WeapDeagle, "2", 0)
		menu_additem(i_Menu, WeapAWP, "3", 0)
		menu_additem(i_Menu, WeapKNife, "4", 0)

		g_DuelStarted = true
		g_New_Round = false

		fm_strip_user_weapons(CT_Player)
		fm_strip_user_weapons(T_Player)

		set_pev(CT_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))	// Set CT HP
		set_pev(T_Player, pev_health, float(get_pcvar_num(g_PlayerHP)))		// Set T HP

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		{
			fm_set_user_godmode(CT_Player, 1)
			set_task(0.5, "Show_Ring", CT_Player)
		}

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
		{
			fm_set_user_godmode(T_Player, 1)
			set_task(0.5, "Show_Ring", T_Player)
		}

		menu_display(CT_Player, i_Menu, 0)
	}
	else
	{
		new t_Cant_Too_Many[600 char]
		formatex(t_Cant_Too_Many, charsmax(t_Cant_Too_Many), "%L", id, "DR_CANT_TOO_MANY", g_Num_CT)
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Too_Many)
	}

	g_Num_CT = 0

	return PLUGIN_CONTINUE
}

public WeaponMenu(id, menu, item)
{
	new s_Data[4], s_Name[64], i_Access, i_Callback

	menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
	new i_Key = str_to_num(s_Data)

	switch(i_Key)
	{
		case 1:
		{
			Give_Scout(CT_Player)
			Give_Scout(T_Player)
		}

		case 2:
		{
			Give_Deagle(CT_Player)
			Give_Deagle(T_Player)
		}

		case 3:
		{
			Give_AWP(CT_Player)
			Give_AWP(T_Player)
		}

		case 4:
		{
			fm_give_item(CT_Player, "weapon_knife")
			fm_give_item(T_Player, "weapon_knife")
		}
	}

	menu_destroy(menu)

	if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
		fm_set_rendering(CT_Player, kRenderFxGlowShell, CT_Aura[0], CT_Aura[1], CT_Aura[2], kRenderNormal, 20)

	if(is_user_alive(T_Player) && is_user_connected(T_Player))
		fm_set_rendering(T_Player, kRenderFxGlowShell, T_Aura[0], T_Aura[1], T_Aura[2], kRenderNormal, 20)

	CountDown_Timer = get_pcvar_num(g_DuelTimeOut)
	set_task(float(get_pcvar_num(g_DuelTimeOut)), "Duel_Informer", TASK_CONT)

	return PLUGIN_HANDLED
}

public Event_Death()
{
	new CT_Count, CT_Last_Player

	for(new i = 1; i <= g_Maxplayers; i++)
	{
		new Name[32]
		get_user_name(i, Name, 31)

		if(is_user_alive(i) && cs_get_user_team(i) == CS_TEAM_CT)
		{
			CT_Count++
			if(CT_Count == 1)
				CT_Last_Player = i
			else
				CT_Last_Player = 0
		}
	}

	if(CT_Count == 1 && !g_Round_Ended && is_user_alive(CT_Last_Player) && is_user_connected(CT_Last_Player) && is_user_alive(T_Player))
	{
		new t_Can_Start[600 char]
		formatex(t_Can_Start, charsmax(t_Can_Start), "%L", CT_Last_Player, "DR_CAN_START")
		print_col_chat(CT_Last_Player, "^4%s^1 %s",g_ChatPrefix, t_Can_Start)
	}

	CT_Count = 0
}

public Event_Round_Start()
{
	g_DuelStarted = false
	g_Round_Ended = false
	g_New_Round = true

	g_Num_CT = 0
	CT_Player = 0
	T_Player = 0

	remove_task(TASK_CONT)

	for(new id = 1; id <= g_Maxplayers; id++)
		fm_set_rendering(id)
}

public Event_Round_End()
{
	g_Round_Ended = true

	CT_Player = 0
	T_Player = 0
}

public Event_CurWeapon(id)
{
	g_Weapon[id] = read_data(2)
	g_WeaponClip[id] = read_data(3)

	if(g_DuelStarted)
	{
		if(g_WeaponClip[id] > 1)
		{
			if(g_Weapon[id] == CSW_SCOUT)
				Weapon_ReChek(id, CSW_SCOUT)

			else if(g_Weapon[id] == CSW_DEAGLE)
				Weapon_ReChek(id, CSW_DEAGLE)

			else if(g_Weapon[id] == CSW_AWP)
				Weapon_ReChek(id, CSW_AWP)
		}
	}
}

public fw_CmdStart(id, handle, seed)
{
	if(!is_user_alive(id) || !g_DuelStarted)
		return FMRES_IGNORED

	if((g_Weapon[id] == CSW_SCOUT || g_Weapon[id] == CSW_DEAGLE || g_Weapon[id] == CSW_AWP) && get_pcvar_num(g_OneShot))
	{
		//if(pev(id, pev_button) & IN_RELOAD)
		if(get_uc(handle, UC_Buttons) & IN_RELOAD)
		{
			set_uc(handle, UC_Buttons, get_uc(handle, UC_Buttons) & ~IN_RELOAD)
			return FMRES_HANDLED
		}
	}

	return FMRES_IGNORED
}

public Drop_Cmd(id)
{
	if(g_DuelStarted)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", id, "DR_CANT_DROP")
		print_col_chat(id, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return PLUGIN_HANDLED
	}

	return PLUGIN_CONTINUE
}

public fw_TouchWeapon(weapon, id)
{
	if(!is_user_connected(id))
		return HAM_IGNORED

	if(g_DuelStarted)
		return HAM_SUPERCEDE

	return HAM_IGNORED
}

public fw_Reload_Post(Weap)
{
	if(!g_DuelStarted && !get_pcvar_num(g_OneShot))
		return FMRES_IGNORED

	if(is_user_alive(CT_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[CT_Player] == CSW_SCOUT)
			cs_set_user_bpammo(CT_Player, CSW_SCOUT, cs_get_user_bpammo(CT_Player, CSW_SCOUT) + 9)
		else if(g_Weapon[CT_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(CT_Player, CSW_DEAGLE, cs_get_user_bpammo(CT_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[CT_Player] == CSW_AWP)
			cs_set_user_bpammo(CT_Player, CSW_AWP, cs_get_user_bpammo(CT_Player, CSW_AWP) + 9)
	}

	if(is_user_alive(T_Player) && get_pdata_int(Weap, OFFSET_RELOAD, LINUX_DIFF))
	{
		if(g_Weapon[T_Player] == CSW_SCOUT)
			cs_set_user_bpammo(T_Player, CSW_SCOUT, cs_get_user_bpammo(T_Player, CSW_SCOUT) + 9)
		else if(g_Weapon[T_Player] == CSW_DEAGLE)
			cs_set_user_bpammo(T_Player, CSW_DEAGLE, cs_get_user_bpammo(T_Player, CSW_DEAGLE) + 6)
		else if(g_Weapon[T_Player] == CSW_AWP)
			cs_set_user_bpammo(T_Player, CSW_AWP, cs_get_user_bpammo(T_Player, CSW_AWP) + 9)
	}

	return FMRES_IGNORED
}

public fw_Use(ent, idcaller, idactivator, use_type, Float:value)
{
	if(g_ButtonsDisable && g_DuelStarted && is_user_alive(idactivator) && cs_get_user_team(idactivator) == CS_TEAM_T)
	{
		new t_Cant_Drop[600 char]
		formatex(t_Cant_Drop, charsmax(t_Cant_Drop), "%L", idactivator, "DR_CANT_USE")
		print_col_chat(idactivator, "^4%s^1 %s",g_ChatPrefix, t_Cant_Drop)
		return HAM_SUPERCEDE
	}

	return HAM_IGNORED
}

public Duel_Informer()
{
	if(CountDown_Timer > 1)
	{
		set_hudmessage(255, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, -1)

		if(CountDown_Timer != 1)
		{
			for(new id = 1; id <= g_Maxplayers; id++)
			{
				new t_Time_Delay[600 char]
				formatex(t_Time_Delay, charsmax(t_Time_Delay), "%L", id, "DR_TIME_DELAY", CountDown_Timer - 1)
				ShowSyncHudMsg(id, g_MsgSync, "%s", t_Time_Delay)
			}
		}
	}
	--CountDown_Timer

	if(CountDown_Timer >= 1)
		set_task(1.0, "Duel_Informer", TASK_CONT)
	else
	{
		client_cmd(0, "spk %s", s_StartDuel[random_num(0, sizeof s_StartDuel - 1)])

		if(is_user_alive(CT_Player) && is_user_connected(CT_Player))
			fm_set_user_godmode(CT_Player, 0)

		if(is_user_alive(T_Player) && is_user_connected(T_Player))
			fm_set_user_godmode(T_Player, 0)

		remove_task(TASK_CONT)
	}
}

public Show_Ring(id)
{
	if(g_DuelStarted && is_user_alive(id) && is_user_connected(id) && !g_New_Round)
	{
		static Float:origin[3]
		pev(id, pev_origin, origin)

		if(id == CT_Player)
			Ring(origin, CT_Aura[0], CT_Aura[1], CT_Aura[2])
		else if(id == T_Player)
			Ring(origin, T_Aura[0], T_Aura[1], T_Aura[2])

		set_task(0.5, "Show_Ring", id)
	}
	else
		remove_task(id)
}


/*========================================================================================================
===============================================[ Stocks ]=================================================
========================================================================================================*/
stock fm_give_item(index, const item[])
{
	if (!equal(item, "weapon_", 7) && !equal(item, "ammo_", 5) && !equal(item, "item_", 5) && !equal(item, "tf_weapon_", 10))
		return 0

	new ent = fm_create_entity(item)
	if (!pev_valid(ent))
		return 0

	new Float:origin[3]
	pev(index, pev_origin, origin)
	set_pev(ent, pev_origin, origin)
	set_pev(ent, pev_spawnflags, pev(ent, pev_spawnflags) | SF_NORESPAWN)
	dllfunc(DLLFunc_Spawn, ent)

	new save = pev(ent, pev_solid)
	dllfunc(DLLFunc_Touch, ent, index)
	if (pev(ent, pev_solid) != save)
		return ent

	engfunc(EngFunc_RemoveEntity, ent)

	return -1
}

stock fm_strip_user_weapons(index)
{
	new ent = fm_create_entity("player_weaponstrip")
	if (!pev_valid(ent))
		return 0

	dllfunc(DLLFunc_Spawn, ent)
	dllfunc(DLLFunc_Use, ent, index)
	engfunc(EngFunc_RemoveEntity, ent)

	return 1
}

stock fm_set_rendering(entity, fx = kRenderFxNone, r = 255, g = 255, b = 255, render = kRenderNormal, amount = 16)
{
	new Float:RenderColor[3]
	RenderColor[0] = float(r)
	RenderColor[1] = float(g)
	RenderColor[2] = float(b)

	set_pev(entity, pev_renderfx, fx)
	set_pev(entity, pev_rendercolor, RenderColor)
	set_pev(entity, pev_rendermode, render)
	set_pev(entity, pev_renderamt, float(amount))

	return 1
}

stock get_weapon_ent(id,wpnid=0,wpnName[]="")
{
	// who knows what wpnName will be
	static newName[32]

	// need to find the name
	if(wpnid) get_weaponname(wpnid,newName,31)

	// go with what we were told
	else formatex(newName,31,"%s",wpnName)

	// prefix it if we need to
	if(!equal(newName,"weapon_",7))
		format(newName,31,"weapon_%s",newName)

	new ent
	while((ent = engfunc(EngFunc_FindEntityByString,ent,"classname",newName)) && pev(ent,pev_owner) != id) {}

	return ent
}

stock fm_set_user_godmode(index, godmode = 0)
{
	set_pev(index, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM)

	return 1
}

stock print_col_chat(const id, const input[], any:...)
{
	new count = 1, players[32]
	static msg[191]
	vformat(msg, 190, input, 3)

	replace_all(msg, 190, "!g", "^4") // Green Color
	replace_all(msg, 190, "!y", "^1") // Default Color (Yellow)
	replace_all(msg, 190, "!t", "^3") // Team Color

	if (id) players[0] = id; else get_players(players, count, "ch") 
	{
		for ( new i = 0; i < count; i++ )
		{
			if ( is_user_connected(players[i]) )
			{
				message_begin(MSG_ONE_UNRELIABLE, SayText, _, players[i])
				write_byte(players[i])
				write_string(msg)
				message_end()
			}
		}
	}
}

UpDate_HUD(id, csw_weapon)
{
	message_begin(MSG_ONE, g_MsgCurWeapon, _, id)
	write_byte(1)
	write_byte(csw_weapon)	//CSW_weapon
	write_byte(1)	// MaxClip
	message_end()
}

Give_Scout(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_scout")

		new wEnt = get_weapon_ent(id, CSW_SCOUT)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_SCOUT, get_pcvar_num(g_ScoutBPAmmo))
		UpDate_HUD(id, wEnt)
	}

}

Give_Deagle(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_deagle")

		new wEnt = get_weapon_ent(id, CSW_DEAGLE)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_DEAGLE, get_pcvar_num(g_DeagleBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Give_AWP(id)
{
	if(is_user_alive(id) && is_user_connected(id))
	{
		fm_give_item(id, "weapon_awp")

		new wEnt = get_weapon_ent(id, CSW_AWP)

		if(pev_valid(wEnt) && get_pcvar_num(g_OneShot))
			cs_set_weapon_ammo(wEnt, 1)

		cs_set_user_bpammo(id, CSW_AWP, get_pcvar_num(g_AWPBPAmmo))
		UpDate_HUD(id, wEnt)
	}
}

Weapon_ReChek(id, Weap)
{
	if(get_pcvar_num(g_OneShot) && is_user_alive(id) && is_user_connected(id))
	{
		new wEnt = get_weapon_ent(id, Weap)
		if(pev_valid(wEnt))
		{
			cs_set_weapon_ammo(wEnt, 1)
			UpDate_HUD(id, wEnt)
		}
	}
}

Ring(const Float:origin[3], R, G, B)
{
	engfunc(EngFunc_MessageBegin, MSG_PVS, SVC_TEMPENTITY, origin, 0)
	write_byte(TE_BEAMCYLINDER) // TE id
	engfunc(EngFunc_WriteCoord, origin[0]) // x	10
	engfunc(EngFunc_WriteCoord, origin[1]) // y
	engfunc(EngFunc_WriteCoord, origin[2]) // z
	engfunc(EngFunc_WriteCoord, origin[0]-50.0) // x axis
	engfunc(EngFunc_WriteCoord, origin[1]) // y axis
	engfunc(EngFunc_WriteCoord, origin[2]+100.0) // z axis
	write_short(RingSprite) // sprite
	write_byte(0) // startframe
	write_byte(0) // framerate
	write_byte(5) // life
	write_byte(5) // width
	write_byte(0) // noise
	write_byte(R) // red
	write_byte(G) // green
	write_byte(B) // blue
	write_byte(200) // brightness
	write_byte(0) // speed
	message_end()
}

Zmiana wybuchu granatów.

11.01.2015 18:45

Witam, szukam pluginu na serwer który umożliwi mi zamianę plików sprite, chcę żeby wybuch granata inaczej wyglądał.

Dlaczego wyrzuca mi broń po rundzie.

22.08.2014 17:04

Witam, mam problem, po każdej rundzie usuwa mi kupioną broń.

Nie mam pojęcia czego to może być przyczyna, pomoże mi ktoś? Daję + za pomoc.

Proszę o przerobienie Vipa.

07.08.2014 13:42

Witam,

Proszę o przerobienie pluginu Vip na SVIP.

 

Co chcę zmienić:

 

SVip ma być ustawiony na flagę: s - custom level G

 

Informacja w Hud: Super Vip "gracz" wbija na serwer.

Prefix przed nickiem: [SVIP]

Zamiast 1 losowego granatu cały zestaw (po 1 z każdego).

Zamiast 150 HP chcę 200.

Zamiast 3 skoków chcę 4.

Okno motd po wpisaniu /svip (plik do tego to svip.txt)

Po wpisaniu /svips lub /svipy ma się wyświetlać lista only svip.

Chcę dodać do SVipa nowe modele postaci (dla CT ścieżka: "models/player/JailSVipCT/JailSVipCT.mdl" a dla TT: "models/player/JailSVipTT/JailSVipTT.mdl"

Obrażenia z noża zwiększone o 50%

Obrażenia z pozostałych broni zwiększone o 25%

Dodatkowe HP za zabicie (15 za zwykłe / 30 za HS)

Ciche chodzenie

Lekko zmniejszona grawitacja

Noktowizor

Chcę zmienić parę modeli broni:

"models/v_siekeract.mdl"   -   nóż dla CT
"models/v_lomtt.mdl"    -   nóż dla TT

 

Za zrobienie tego daję dużo +++++.

 

Plik sma do przerobienia podam w kodzie bo nie mogę w załączniku dodać pliku:

#include <amxmodx>
#include <colorchat>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

#define IsPlayer(%1) (1<=%1<=maxPlayers)
#define g_Buffer 1536

forward amxbans_admin_connect(id);

new Array:g_Array, CsArmorType:armortype, bool:g_FreezeTime, bool:g_Vip[33], gRound=0,
g_Hudmsg, ioid, maxPlayers, skoki[33];

new const g_Langcmd[][]={"say /vips","say_team /vips","say /vipy","say_team /vipy"};
new const g_Prefix[] = "Vip Chat";

public plugin_init(){
	register_plugin("VIP Ultimate", "12.3.0.2", "benio101 & speedkill");
	RegisterHam(get_player_resetmaxspeed_func(), "player", "fw_Player_ResetMaxSpeed", 1);
	register_logevent("logevent_round_start", 2, "1=Round_Start");
	register_event("HLTV", "event_new_round", "a", "1=0", "2=0");
	RegisterHam(Ham_Spawn, "player", "SpawnedEventPre", 1);
	register_forward(FM_CmdStart, "CmdStartPre");
	register_logevent("GameCommencing", 2, "1=Game_Commencing");
	RegisterHam(Ham_TakeDamage, "player", "takeDamage", 0);
	register_event("DeathMsg", "DeathMsg", "a");
	register_message(get_user_msgid("ScoreAttrib"), "VipStatus");
	g_Array=ArrayCreate(64,32);
	for(new i;i<sizeof g_Langcmd;i++){
		register_clcmd(g_Langcmd[i], "ShowVips");
	}
	register_clcmd("say /vip", "ShowMotd");
	set_task(30.0, "ShowAdv",.flags = "b");
	g_Hudmsg=CreateHudSyncObj();
	register_event("Damage", "damage", "b", "2!0", "3=0", "4!0");
	register_clcmd("say_team", "VipChat");
	register_message(get_user_msgid("SayText"),"handleSayText");
	register_event("Damage", "Damage_Wyrzucenie", "b", "2!=0");
}
public client_authorized(id){
	if(get_user_flags(id) & 524288 == 524288){
		client_authorized_vip(id);
	}
}
public client_authorized_vip(id){
	g_Vip[id]=true;
	new g_Name[64];
	get_user_name(id,g_Name,charsmax(g_Name));
	
	new g_Size = ArraySize(g_Array);
	new szName[64];
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, szName, charsmax(szName));
		
		if(equal(g_Name, szName)){
			return 0;
		}
	}
	ArrayPushString(g_Array,g_Name);
	set_hudmessage(24, 190, 220, 0.25, 0.2, 0, 6.0, 6.0);
	ShowSyncHudMsg(0, g_Hudmsg, "Vip %s wbija na serwer !",g_Name);
	
	return PLUGIN_CONTINUE;
}
public client_disconnect(id){
	if(g_Vip[id]){
		client_disconnect_vip(id);
	}
}
public client_disconnect_vip(id){
	g_Vip[id]=false;
	new Name[64];
	get_user_name(id,Name,charsmax(Name));
	
	new g_Size = ArraySize(g_Array);
	new g_Name[64];
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
		
		if(equal(g_Name,Name)){
			ArrayDeleteItem(g_Array,i);
			break;
		}
	}
}
Ham:get_player_resetmaxspeed_func(){
	#if defined Ham_CS_Player_ResetMaxSpeed
	return IsHamValid(Ham_CS_Player_ResetMaxSpeed)?Ham_CS_Player_ResetMaxSpeed:Ham_Item_PreFrame;
	#else
	return Ham_Item_PreFrame;
	#endif
}
public fw_Player_ResetMaxSpeed(id){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			fw_Player_ResetMaxSpeedVip(id);
		}
	}
}
public logevent_round_start(){
	g_FreezeTime=false;
}
public event_new_round(){
	g_FreezeTime=true;
	++gRound;
}
public fw_Player_ResetMaxSpeedVip(id){
	if(!g_FreezeTime){
		set_user_maxspeed(id,get_user_maxspeed(id) + 50);
	}
}
public SpawnedEventPre(id){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			SpawnedEventPreVip(id);
		}
	}
}
public SpawnedEventPreVip(id){
	set_user_footsteps(id,1);
	skoki[id]=2;
	set_user_health(id, get_user_health(id)+50);
	cs_set_user_armor(id, min(cs_get_user_armor(id,armortype)+100, 300), armortype);
	losoweGranaty(id, 1);
	new g_Model[64];
	formatex(g_Model,charsmax(g_Model),"%s",get_user_team(id) == 1 ? "JailVipTT" : "JailVipCT");
	cs_set_user_model(id,g_Model);
	if(gRound>=2){
		cs_set_user_money(id, min(cs_get_user_money(id)+1000, 16000), 1);
	}
}
public CmdStartPre(id, uc_handle){
	if(g_Vip[id]){
		if(is_user_alive(id)){
			CmdStartPreVip(id, uc_handle);
		}
	}
}
public CmdStartPreVip(id, uc_handle){
	new flags = pev(id, pev_flags);
	if((get_uc(uc_handle, UC_Buttons) & IN_JUMP) && !(flags & FL_ONGROUND) && !(pev(id, pev_oldbuttons) & IN_JUMP) && skoki[id]>0){
		--skoki[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 && skoki[id]!=-1){
		skoki[id] = 2;
	}
}
public GameCommencing(){
	gRound=0;
}
public losoweGranaty(id, losowe_granaty){
	new henum=(user_has_weapon(id,CSW_HEGRENADE)?cs_get_user_bpammo(id,CSW_HEGRENADE):0);
	new fbnum=(user_has_weapon(id,CSW_FLASHBANG)?cs_get_user_bpammo(id,CSW_FLASHBANG):0);
	new sgnum=(user_has_weapon(id,CSW_SMOKEGRENADE)?cs_get_user_bpammo(id,CSW_SMOKEGRENADE):0);
	while(--losowe_granaty>=0){
		new granat=random(3);
		switch(granat){
			case 0:{
				if(++henum>1){
					cs_set_user_bpammo(id,CSW_HEGRENADE,cs_get_user_bpammo(id,CSW_HEGRENADE)+1);
				} else {
					give_item(id, "weapon_hegrenade");
				}
			}
			case 1:{
				if(++fbnum>2){
					cs_set_user_bpammo(id,CSW_FLASHBANG,cs_get_user_bpammo(id,CSW_FLASHBANG)+1);
				} else {
					give_item(id, "weapon_flashbang");
				}
			}
			case 2:{
				if(++sgnum>1){
					cs_set_user_bpammo(id,CSW_SMOKEGRENADE,cs_get_user_bpammo(id,CSW_SMOKEGRENADE)+1);
				} else {
					give_item(id, "weapon_smokegrenade");
				}
			}
		}
	}
}
public plugin_cfg(){
	maxPlayers=get_maxplayers();
}
public takeDamage(this, idinflictor, idattacker, Float:damage, damagebits){
	if(((IsPlayer(idattacker) && is_user_connected(idattacker) && g_Vip[idattacker] && (ioid=idattacker)) ||
	(ioid=pev(idinflictor, pev_owner) && IsPlayer(ioid) && is_user_connected(ioid) && g_Vip[ioid]))){
		damage*=(100+10)/100;
	}
}
public DeathMsg(){
	new killer=read_data(1);
	new victim=read_data(2);
	
	if(is_user_alive(killer) && g_Vip[killer] && get_user_team(killer) != get_user_team(victim)){
		DeathMsgVip(killer,victim,read_data(3));
	}
}
public DeathMsgVip(kid,vid,hs){
	set_user_health(kid, min(get_user_health(kid)+(hs?15:10),300));
}
public VipStatus(){
	new id=get_msg_arg_int(1);
	if(is_user_alive(id) && g_Vip[id]){
		set_msg_arg_int(2, ARG_BYTE, get_msg_arg_int(2)|4);
	}
}
public ShowVips(id){
	new g_Name[64],g_Message[192];
	
	new g_Size=ArraySize(g_Array);
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
		
		add(g_Message, charsmax(g_Message), g_Name);
		
		if(i == g_Size - 1){
			add(g_Message, charsmax(g_Message), ".");
		}
		else{
			add(g_Message, charsmax(g_Message), ", ");
		}
	}
	ColorChat(id,GREEN,"^x03Vipy ^x04na ^x03serwerze: ^x04%s", g_Message);
	ShowVipsMotd(id);
	return PLUGIN_CONTINUE;
}
public ShowVipsMotd(id){
	new Data[g_Buffer],Len,g_Name[64];
	
	Len = formatex(Data[Len], g_Buffer - Len, "<html><body bgcolor=Black><br>");
	Len += formatex(Data[Len], g_Buffer - Len, "<center><table frame=^"border^" width=^"600^" cellspacing=^"0^" bordercolor=#4A4344 style=^"color:#56A5EC;text-align:center;^">");
	Len += formatex(Data[Len], g_Buffer- Len, "<tr><td><b>#</b></td><td><b>Nick</b></td></td></tr>");
	
	new g_Size=ArraySize(g_Array);
	
	for(new i = 0; i < g_Size; i++){
		ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
		
		Len += formatex(Data[Len], g_Buffer - Len, "<tr>");
		Len += formatex(Data[Len], g_Buffer - Len, "<td><font color=Red>%d</font></td>", i + 1);
		Len += formatex(Data[Len], g_Buffer - Len, "<td>%s</td>", g_Name);
		Len += formatex(Data[Len], g_Buffer - Len, "</tr>");
	}
	Len += formatex(Data[Len],g_Buffer - Len,"</center></body></html>");
	
	show_motd(id, Data, "Vipy Online");
}
public client_infochanged(id){
	if(g_Vip[id]){
		new szName[64];
		get_user_info(id,"name",szName,charsmax(szName));
		
		new Name[64];
		get_user_name(id,Name,charsmax(Name));
		
		if(!equal(szName,Name)){
			ArrayPushString(g_Array,szName);
			
			new g_Size=ArraySize(g_Array);
			new g_Name[64];
			for(new i = 0; i < g_Size; i++){
				ArrayGetString(g_Array, i, g_Name, charsmax(g_Name));
				
				if(equal(g_Name,Name)){
					ArrayDeleteItem(g_Array,i);
					break;
				}
			}
		}
	}
}
public plugin_end(){
	ArrayDestroy(g_Array);
}
public ShowMotd(id){
	show_motd(id, "vip.txt", "Informacje o vipie");
}
public ShowAdv(){
	ColorChat(0, NORMAL, "[VIP]^x04 Chcesz dowiedziec sie co posiada vip ? Napisz na say'u /vip");
}
public damage(id){
	new attacker=get_user_attacker(id);
	new damage=read_data(2);
	
	if(g_Vip[id]){
		set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1);
		ShowSyncHudMsg(id, g_Hudmsg, "%i^n", damage);
	}
	if(is_user_connected(attacker) && g_Vip[attacker]){
		set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1);
		ShowSyncHudMsg(attacker, g_Hudmsg, "%i^n", damage);
	}
}
public VipChat(id){
	if(g_Vip[id]){
		new g_Msg[256],
		g_Text[256];
		
		read_args(g_Msg,charsmax(g_Msg));
		remove_quotes(g_Msg);
		
		if(g_Msg[0] == '*' && g_Msg[1]){
			new g_Name[64];
			get_user_name(id,g_Name,charsmax(g_Name));
			
			formatex(g_Text,charsmax(g_Text),"^x01(%s) ^x03%s : ^x04%s",g_Prefix, g_Name, g_Msg[1]);
			
			for(new i=1;i<33;i++){
				if(is_user_connected(i) && g_Vip[i])
				ColorChat(i, GREEN, "%s", g_Text);
			}
			return PLUGIN_HANDLED_MAIN;
		}
	}
	return PLUGIN_CONTINUE;
}
public handleSayText(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1);
	
	if(is_user_connected(id) && g_Vip[id]){
		new szTmp[256],szTmp2[256];
		get_msg_arg_string(2,szTmp, charsmax(szTmp))
		
		new szPrefix[64] = "^x04[VIP]";
		
		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),"^x03 %s1^x01 :  %s2");
		}
		set_msg_arg_string(2,szTmp2);
	}
	return PLUGIN_CONTINUE;
}
public plugin_precache(){
	precache_model("models/player/JailVipCT/JailVipCT.mdl");
	precache_model("models/player/JailVipTT/JailVipTT.mdl");
}
public Damage_Wyrzucenie(vid){
	new aid=get_user_attacker(vid);
	if(is_user_connected(aid) && is_user_alive(vid) && g_Vip[aid] && get_user_team(aid)!=get_user_team(vid) && random(100)<5){
		Damage_Wyrzucenie_Vip(aid, vid);
	}
}
public Damage_Wyrzucenie_Vip(aid, vid){
	client_cmd(vid, "drop");
}
public amxbans_admin_connect(id){
	client_authorized(id);
}