Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Steam Chat

Moderatör: Moderatörler

Forum kuralları
[font size=20] DİKKAT [/font]

Silinmiş konu içerikleri hiçbir şekilde kontrol edlimemektedir. İndirdiğiniz dosyaların sorumluluğu tamamiyle size aittir.
Mutlaka indirdiğiniz dosyaları antivirüs ile taratınız.
Kullanıcı avatarı

Konu Sahibi
Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

Steam Chat

Mesaj gönderen Colditz »

Eklenti İsmi : Steam Chat
Yapımcısı : Ian Cammarata
Sürüm : 1.3
Düzenleme : Yek'-ta & PurposeLess
Açıklama : All Chat ve CSM-Chat eklentilerinin düzenlenmiş ve optimize edilmiş halidir.

steamchat.png

CSM Chat eklentisinden farkı ne? Neden bu eklentiyi kullanalım? :
Öncelikle belirtmeliyim. Ekletinin kökü All Chat ve CSM Chat'dir. Sadece düzenleme yapılmıştır.
Eklentide genel bir düzeltilme yapılmıştır. is_user_steam(id) komutu reapi modülünden kullanılmıştır.
Komutlar optimize edilmiştir. Bu sunucunuzda daha az cpu kullanacak anlamına geliyor.
1.8.3 sürümü ile gelen client_print_color komutu ile mesajlar görünür hâle getirilmiştir.
Ayrıca /!. komutlarının görünümü kapatılmıştır.
CSM Chat eklentisinde ilk kullanımda gözüküyordu. Bunda tamamen gözükmüyor.


Tag Sistemi :
Tag sistemini eklentinin içinden ayarlayabilirsiniz.

Kod: Tümünü seç

new const g_szTag[][] = {
	"[Steam Chat Admin Taglari]", // Bunu silmeyin aksi takdirde dogru bir sekilde calismayabilir.
	"Kurucu",
	"Yonetici",
	"Admin",
	"Slot"
}

new const g_iTagFlag[sizeof(g_szTag)] = {
	0, // Bunu silmeyin aksi takdirde dogru bir sekilde calismayabilir.
	ADMIN_RCON,
	ADMIN_IMMUNITY,
	ADMIN_KICK,
	ADMIN_BAN
}
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Yek'-ta
Mesajlar: 9625
Kayıt: Cmt Eyl 12, 2015 12:40 pm
İletişim:

Steam Chat

Mesaj gönderen Yek'-ta »

Eklentiyi onayladım fakat silinenlere taşıyacağım.
Steam+ yı oyuncu oyuna girdikten 15 saniye sonra sorgulat. Bu yazışma eklentisinde steam+ olsan bile say'den yazdığın vakit sadece steam gözükeceksin.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Yek'-ta
Mesajlar: 9625
Kayıt: Cmt Eyl 12, 2015 12:40 pm
İletişim:

Steam Chat

Mesaj gönderen Yek'-ta »

Bunu yazmak istemezdim ama şuanda eklentiye çöp olarak bakıyorum.

Kod: Tümünü seç

new players[32], num
static Uid
get_players(players, num, flags, team)

buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, str4)
					

for(new i=0; i < num; i++)
{
	Uid = players[i];
	client_print_color(Uid, sndr, msg);
}
for ? İyicene bi düşün bu satırları, for döngüsüne iyi bi bak.

Birde çok lüzumsuz yerleri kaldırdım, gerçekten gerek yok bunlara.

Kod: Tümünü seç

///----------------------------------------
/// The author is Ian Cammarata
/// Editors are Yek'-ta and PurposeLess
/// Optimized and Powered by PurposeLess
///----------------------------------------

#include <amxmodx>
#include <reapi_reunion>

native csd_checkuserac(id);
#define STEAMTAG "Steam"
#define STEAMCSDTAG "Steam+"

/// Burayi Kendinize Gore Duzenleyiniz. [Ilk satirlari silmeniz durumunda hata cikabilir.]

new const g_szTag[][] = {
	"[Steam Chat Admin Taglari]", // Bunu silmeyin aksi takdirde dogru bir sekilde calismayabilir.
	" Kurucu",
	" Yonetici",
	" Admin",
	" Slot"
}

new const g_iTagFlag[sizeof(g_szTag)] = {
	0, // Bunu silmeyin aksi takdirde dogru bir sekilde calismayabilir.
	ADMIN_RCON,
	ADMIN_IMMUNITY,
	ADMIN_KICK,
	ADMIN_BAN
}

new alv_sndr, alv_str2[26], alv_str4[101];
new msg[200], saytext;
const TaskId = 144;

public plugin_precache()
{
	saytext = get_user_msgid("SayText");
}

public plugin_init()
{
	register_plugin("Steam Chat", "1.3", "Ian Cammara");

	register_message(saytext, "message_saytext")
}

public message_saytext(msgid, msgdest, receiver)
{
	new str2[26]
	get_msg_arg_string(2, str2, charsmax(str2))

	static const Cstrike_Chat[] = "#Cstrike_Chat";

	if(equal(str2, Cstrike_Chat, 13))
	{
		new str3[22], len;
		get_msg_arg_string(3, str3, charsmax(str3))
		len = strlen(str3);

		if(!len)
		{
			new str4[101]
			get_msg_arg_string(4, str4, charsmax(str4))

			if(str4[0] == '/' || str4[0] == '.' || str4[0] == '!')
			{
				return PLUGIN_HANDLED;
			}

			new sndr = get_msg_arg_int(1)

			static const Cstrike_Chat_All[] = "#Cstrike_Chat_All";

			new bool:is_team_msg = !bool:equal(str2, Cstrike_Chat_All, 17)

			new sndr_team = get_user_team(sndr)
			new bool:is_sndr_spec = !bool:(0 < sndr_team < 3)

			new bool:same_as_last = bool:(alv_sndr == sndr && equal(alv_str2, str2) && equal(alv_str4, str4))

			if(!same_as_last)
			{
				if(!(is_team_msg && (is_sndr_spec || is_team_msg)))
				{
					new flags[5], team[10]
					flags = is_user_alive(sndr) ? "bc":"ac";

					if(is_team_msg)
					{
						len = strlen(flags);
						add(flags[len], charsmax(flags) - len, "e")
						if(sndr_team == 1) team = "TERRORIST"
						else team = "CT"
					}

					new players[32], num
					static Uid
					get_players(players, num, flags, team)

					buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, str4)
					

					for(new i=0; i < num; i++)
					{
						Uid = players[i];
						client_print_color(Uid, sndr, msg);
					}

				}

				alv_sndr = sndr
				alv_str2 = str2
				alv_str4 = str4

				if(task_exists(TaskId)) remove_task(TaskId)
				set_task(0.1, "task_clear_antiloop_vars", TaskId)

			}

			if(!same_as_last) buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, str4)

			set_msg_arg_string(2, msg)
			set_msg_arg_string(4, "")

		}
	}
	return PLUGIN_CONTINUE
}

public buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, str4[ ])
{
	new sndr_name[33]
	get_user_name(sndr, sndr_name, charsmax(sndr_name))

	new prefix[30] = "^x01"

	new flags = get_user_flags(sndr);

	if(flags > 0 && !(flags & ADMIN_USER))
	{
		new admin = get_tag_index(flags);

		if(admin)
		{
			formatex(prefix, charsmax(prefix), "^x04[%s%s] ^x01", is_user_steam(sndr) ? (csd_checkuserac(sndr) ? STEAMCSDTAG:STEAMTAG):"", g_szTag[admin]);
		}
		else
		{
			if(is_user_steam(sndr))
			{
				formatex(prefix, charsmax(prefix), "^x04[%s] ^x01", csd_checkuserac(sndr) ? STEAMCSDTAG:STEAMTAG);
			}
			else
			{
				prefix = "^x01";
			}
		}
	}
	else {
		if(is_user_steam(sndr))
		{
			formatex(prefix, charsmax(prefix), "^x04[%s] ^x01", csd_checkuserac(sndr) ? STEAMCSDTAG:STEAMTAG);
		}
		else
		{
			prefix = "^x01";
		}
	}

	new len = strlen(prefix);

	if(is_sndr_spec) add(prefix[len], charsmax(prefix) - len, "¤")
	else if(!is_user_alive(sndr)) add(prefix[len], charsmax(prefix) - len, "×")


	if(is_team_msg)
	{
		if(is_sndr_spec) add(prefix[len], charsmax(prefix) - len, "(SPEC) ")
		else if(sndr_team == 1) add(prefix[len], charsmax(prefix) - len, "(TE) ")
		else if(sndr_team == 2) add(prefix[len], charsmax(prefix) - len, "(CT) ")
	}

	if(flags > 0 && !(flags & ADMIN_USER))
	{
		static const yetkili_yazisi[] = "%s^x03%s :  ^x04%s";
		format(msg, 199, yetkili_yazisi,\
		len > 1 ? prefix : "",\
		sndr_name, str4)

	}
	else{
		static const user_yazisi[] = "%s^x03%s :  ^x01%s";
		format(msg, 199, user_yazisi,\
		len > 1 ? prefix : "",\
		sndr_name, str4)
	}
	return PLUGIN_HANDLED
}

public task_clear_antiloop_vars()
{
	alv_sndr = 0
	alv_str2 = ""
	alv_str4 = ""
	return PLUGIN_HANDLED
}

get_tag_index(flags)
{
	for(new i=1; i<sizeof(g_iTagFlag); i++)
	{
		if(flags & g_iTagFlag[i])
		{
			return i;
		}
	}
	return 0;
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ ansicpg1254\\ deff0\\ deflang1055{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ f0\\ fs16 \n\\ par }
*/

Link:
Linklerini gizle
Linki Kopyala
Kilitli