CrossHair + compatibil steam.

Pluginuri pentru modul AmxModX.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
Doctor whO? <3
Membru, skill +3
Membru, skill +3
Posts: 1196
Joined: 21 Jun 2013, 12:40
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Reputatie: Fost Membru Club eXtreamCS (doua luni)
Has thanked: 109 times
Been thanked: 75 times
Contact:

17 Jun 2020, 14:10

Descriere: Seteaza tinte ca pe cs:go

Descarcare:
tinta | Afiseaza codul
#include <amxmodx>
#include <reapi>

#define PLUGIN "CrossHair Menu"
#define VERSION "4.0"
#define AUTHOR "KinG"

#define HUD_HIDE_FLASH (1<<1)
#define HUD_HIDE_CROSS (1<<6)
#define HUD_SHOW_CROSS (1<<7)

#define CSW_SHIELD 2

new const TAG[] = "CS:GO";

enum _:Messages
{
	Message_WeaponList,
	Message_ScreenFade,
	Message_CurWeapon,
	Message_ForceCam,
	Message_SetFov,
	Message_HideWeapon
}
new Message_New[Messages];
new Messages_Names[Messages][] =
{
	"WeaponList",
	"ScreenFade",
	"CurWeapon",
	"ForceCam",
	"SetFOV",
	"HideWeapon"
}

new Crosshair[33];
new bool: Crosshair_Bool[33];

new const Sprites[6][4][64] =
{
	{ "Crosshair Adi", "Txt Yolu", "Txt Ismi", "Txt Yolu" },
	{ "CrossHair Big v1", "sprites/CSGO_Crosshair_Buyuk.spr", "CSGO_Crosshair_Buyuk_TxT", "sprites/CSGO_Crosshair_Buyuk_TxT.txt" },
	{ "CrossHair Big v2", "sprites/CSGO_Crosshair_Buyuk_2.spr", "CSGO_Crosshair_Buyuk_2_TxT", "sprites/CSGO_Crosshair_Buyuk_2_TxT.txt" },
	{ "CrossHair Small", "sprites/CSGO_Crosshair.spr", "CSGO_Crosshair_TxT", "sprites/CSGO_Crosshair_TxT.txt" },
	{ "CrossHair New", "sprites/CSGO_Crosshair_New.spr", "CSGO_Crosshair_New_TxT", "sprites/CSGO_Crosshair_New_TxT.txt" },
	{ "CrossHair Starter", "sprites/CSGO_Started.spr", "CSGO_Started_TxT", "sprites/CSGO_Started_TxT.txt" }
}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_clcmd("crosshair 0", "Crosshair_Change");
	register_clcmd("say /crosshair", "Crosshair_Menu");
	register_event("CurWeapon", "Event_CurWeapon", "be", "1=1");
		
	for(new i; i < sizeof(Message_New); i++)
	{
		Message_New = get_user_msgid(Messages_Names);
	}
}

public plugin_precache()
{
	for(new i = 1; i < sizeof(Sprites); i++)
	{
		precache_generic(Sprites[1]);
		precache_generic(Sprites[3]);
	}
}

public client_putinserver(id)
{
	Crosshair[id] = 1;
	Crosshair_Bool[id] = false;
	client_cmd(id, "crosshair ^"1^"");
}

public Crosshair_Change(id)
{
	client_cmd(id, "crosshair ^"1^"");
}

public Crosshair_Menu(id)
{
	new Str[6];
	static Item[128];
	
	formatex(Item, charsmax(Item), "\d[\r%s\d] \w| \yCrosshair Menu", TAG);
	new Menu = menu_create(Item, "Crosshair_Menu_Handler");
	
	for(new i = 1; i < sizeof(Sprites); i++)
	{
		num_to_str(i, Str, 5);
		formatex(Item, charsmax(Item), "%s", Sprites[0]);
		menu_additem(Menu, Item, Str);
	}
	formatex(Item, charsmax(Item), "\yNormal Crosshair");
	menu_additem(Menu, Item, "6");
	
	menu_setprop(Menu, MPROP_BACKNAME, "\wBack");
	menu_setprop(Menu, MPROP_NEXTNAME, "\wNext");
	menu_setprop(Menu, MPROP_EXITNAME, "\wExit");
	menu_display(id, Menu, 0);
}

public Crosshair_Menu_Handler(id, Menu, Item)
{
	if(Item == MENU_EXIT)
	{
		menu_destroy(Menu);
		return PLUGIN_HANDLED;
	}
	
	new Data[6], Name[64];
	new Access, CallBack;
	menu_item_getinfo(Menu, Item, Access, Data, 5, Name, 63, CallBack);
	
	new Key = str_to_num(Data);
	
	if(get_entvar(id, var_weapons) == WEAPON_KNIFE)
	{
		Renkli_Yazi(id, "^1[^3%s^1] ^4You Shouldn't hold a ^1Knife ^4to Change ^3Crosshair", TAG);
	}
	else if(Key == 6)
	{
		Crosshair_Bool[id] = false;
		client_cmd(id, "lastinv;wait;wait;wait;wait;wait;wait;wait;wait;lastinv");
	}
	else
	{
		Crosshair[id] = Key;
		Crosshair_Bool[id] = true;
		client_cmd(id, "lastinv;wait;wait;wait;wait;wait;wait;wait;wait;lastinv");
	}
	
	return PLUGIN_HANDLED;
}

public Event_CurWeapon(id)
{
	switch(Crosshair_Bool[id])
	{
		case true :
		{
			static Weapon_ID, Primary, Sprite_TxT[52];
			Weapon_ID = get_user_weapon(id, Primary);
			
			if(get_member(id, m_iFOV) != 90)
			{
				return PLUGIN_HANDLED;
			}
			else if(get_user_weapon(id) == CSW_SCOUT || get_user_weapon(id) == CSW_AWP || get_user_weapon(id) == CSW_G3SG1 || get_user_weapon(id) == CSW_SG550)
			{
				return PLUGIN_HANDLED;
			}
			else
			{
				Hide_Crosshair(id);
				formatex(Sprite_TxT, charsmax(Sprite_TxT), "%s", Sprites[Crosshair[id]][2]);
				
				switch(Weapon_ID)
				{
					case CSW_P228 : Msg_WeaponList(id, Sprite_TxT,9,52,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_HEGRENADE : Msg_WeaponList(id, Sprite_TxT,12,1,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_XM1014 : Msg_WeaponList(id, Sprite_TxT,5,32,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_C4 : Msg_WeaponList(id, Sprite_TxT,14,1,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_MAC10 : Msg_WeaponList(id, Sprite_TxT,6,100,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_AUG : Msg_WeaponList(id, Sprite_TxT,4,90,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_SMOKEGRENADE : Msg_WeaponList(id, Sprite_TxT,13,1,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_ELITE : Msg_WeaponList(id, Sprite_TxT,10,120,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_FIVESEVEN : Msg_WeaponList(id, Sprite_TxT,7,100,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_UMP45 : Msg_WeaponList(id, Sprite_TxT,6,100,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_GALIL : Msg_WeaponList(id, Sprite_TxT,4,90,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_FAMAS : Msg_WeaponList(id, Sprite_TxT,4,90,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_USP : Msg_WeaponList(id, Sprite_TxT,6,100,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_GLOCK18 : Msg_WeaponList(id, Sprite_TxT,10,120,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_MP5NAVY : Msg_WeaponList(id, Sprite_TxT,10,120,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_M249 : Msg_WeaponList(id, Sprite_TxT,3,200,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_M3 : Msg_WeaponList(id, Sprite_TxT,5,32,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_M4A1 : Msg_WeaponList(id, Sprite_TxT,4,90,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_TMP : Msg_WeaponList(id, Sprite_TxT,10,120,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_FLASHBANG : Msg_WeaponList(id, Sprite_TxT,11,2,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_DEAGLE : Msg_WeaponList(id, Sprite_TxT,8,35,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_SG552 : Msg_WeaponList(id, Sprite_TxT,4,90,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_AK47 : Msg_WeaponList(id, Sprite_TxT,2,90,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_KNIFE : Msg_WeaponList(id, Sprite_TxT,-1,-1,-1,-1,0,11,CSW_SHIELD ,0);
					case CSW_P90 : Msg_WeaponList(id, Sprite_TxT,7,100,-1,-1,0,11,CSW_SHIELD ,0);
				}
				
				Msg_SetFOV(id, 89);
				Msg_CurWeapon(id, 1, CSW_SHIELD, Primary);
				Msg_SetFOV(id, 90);
			}
		}
	}
	
	return PLUGIN_CONTINUE;
}

stock Hide_Crosshair(id)
{
	message_begin(MSG_ONE, Message_New[Message_HideWeapon], _, id);
	write_byte(HUD_HIDE_CROSS | HUD_HIDE_FLASH);
	message_end();
}

stock Msg_CurWeapon(id, Active, WeaponID, ClipAmmo)
{
	message_begin(MSG_ONE, Message_New[Message_CurWeapon], {0, 0, 0}, id);
	write_byte(Active);
	write_byte(WeaponID);
	write_byte(ClipAmmo);
	message_end();
}

stock Msg_WeaponList(id, const WeaponName[], PrimaryAmmoID, PrimaryAmmoMaxAmount, SecondaryAmmoID, SecondaryAmmoMaxAmount, SlotID, NumberInSlot, WeaponID, Flags)
{
	message_begin(MSG_ONE,Message_New[Message_WeaponList], {0, 0, 0}, id);
	write_string(WeaponName);
	write_byte(PrimaryAmmoID);
	write_byte(PrimaryAmmoMaxAmount);
	write_byte(SecondaryAmmoID);
	write_byte(SecondaryAmmoMaxAmount);
	write_byte(SlotID);
	write_byte(NumberInSlot);
	write_byte(WeaponID);
	write_byte(Flags);
	message_end();
}

stock Msg_SetFOV(id, Degrees)
{
	message_begin(MSG_ONE, Message_New[Message_SetFov], {0, 0, 0}, id);
	write_byte(Degrees);
	message_end();
}

stock Renkli_Yazi(const ID, const input[], any:...)
{
	new Count = 1, Players[32];
	static Message[191];
	vformat(Message, 190, input, 3);
	
	/* ^1 | ^x01 --> Yellow */
	/* ^4 | ^x04 --> Green */
	/* ^3 | ^x03 --> Team Color */
		
	replace_all(Message, 190, "^1", "^x01");
	replace_all(Message, 190, "^4", "^x04");
	replace_all(Message, 190, "^3", "^x03");
	
	if(ID) Players[0] = ID; else get_players(Players, Count, "ch");
	{
		for(new i = 0; i < Count; i++)
		{
			if(is_user_connected(Players))
			{
				message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, Players);
				write_byte(Players);
				write_string(Message);
				message_end();
			}
		}
	}
}
]

Link resurse -> Click

Nume: CS:GO CrossHair
Versiune: 4.0
Link oficial: -

Instalare:
Il compilati si il bagati la voi pe server cu numele care il alegeti voi. Aveti nevoie de include-ul reapi pentru a putea fi compilat , care il gasiti aici --> click unde dati ctrl + f si cautati reapi.

1. Creati un fisiser .txt pe ecran unde bagati sursa pe care am dat-o de mai sus dupa dati save as si alegeti ce denumire vreti voi si il salvati .sma + la save type dati pe all files
2. Apoi il compilati local si il bagati la voi pe server in cstrike/addons/amxmodx/plugins
3. Dupa care il bagati in cstrike/addons/amxmodx/configs in plugins.ini cu numele ce l-ati ales voi .amxx ( ex crosshair.amxx )
4. Sprite-urile ma gandesc ca stiti unde sa le bagati.. Daca nu , in cstrikes/sprites (sau mai usor dati copy paste si gata)

4. Alti pasi necesari....
Cvar-uri (se adauga in fisierul amxmodx\configs\amxx.cfg): Nu are
Comenzi administrative (se tasteaza in consola si trebuie sa fiti administrator): Nu are
Comenzi publice (se tasteaza in joc prin apasarea tastei Y): /crosshair -> va arata meniul de tinte
Module necesare:

#include <amxmodx>
#include <reapi>

Imagini : Nu am din pacate... testati voi.

Am decis sa postez .sma-ul aici pentru ca aveam sursa de ceva timp la mine in PC si nu aveam ce sa fac cu ea + ca am alt plugin de tinte mai bun decat acesta.
RoyalServer 2
User avatar
dopefish
Membru, skill 0
Membru, skill 0
Posts: 5
Joined: 31 Dec 2020, 00:24
Detinator Steam: Da
CS Status: Detinator server
Detinator server CS: gooba.indungi.ro
Fond eXtream: 0
Has thanked: 1 time

19 Dec 2022, 23:29

Salutare! E de ajuns doar acel include, nu e necesara instalarea ReApi?
Pluginul este compatibil pentru orice versiune amxmodx?
Post Reply

Return to “AmxModX”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 3 guests