Bunu yazmak istemezdim ama şuanda eklentiye çöp olarak bakıyorum.
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 }
*/