Konu

#1
selam herkese, dün istek konusudna bir arkadaşın attığı eklentiyi kendimize göre düzenledik ve sağolsun suriyelikeneninde yardımlarıyla bizimde aradağımız birşeyde yardımcı oldu arkadaşa olduğu gibi. şöyle bir problem var, mesela biz tagı eklenti içerisinde ayarlıyoruz problem yok ama diyelim örnek olarak [ Steam+ Chief Admin ] böyle bi tagımız var bu adam normal y sayden yazınca problem olmuyor ancak u sayden yazınca u sayde bulunan (TE) Tagı adamda görünmüyor çünkü tag çok uzun olmuş oluyor. Bunun çözümü nasıl olabilir? ve bu bizim 2 tane tag vereceğimiz oyunculardada böyle bir problem olacağını düşünüyoruz. Ancak CSD'nin kendi adminchatında böyle bir problem yok nasıl önüne geçebiliriz?
Kod:
///----------------------------------------
/// 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);

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("SteamCHAT", "1.2", "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)
                    if(get_user_flags(sndr) & ADMIN_RESERVATION)
                        buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, str4)
                    else buildmsg(sndr, is_sndr_spec, is_team_msg, sndr_team, str4)
                    
                    for(new i=0; i < num; i++)
                    {
                        Uid = players[i];
                        if(is_user_alive(Uid) && get_user_flags(Uid) & ADMIN_RESERVATION|| !is_user_alive(Uid)){
                            client_print_color(Uid, sndr, msg);
                            //message_begin(MSG_ONE, saytext, _, Uid)
                            //write_byte(sndr)
                            //write_string(msg)
                            //message_end()
                        }
                    }
                    
                }
                
                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);
    new authid[MAX_AUTHID_LENGTH];
    get_user_authid(sndr,authid,charsmax(authid));
    if(flags > 0 && !(flags & ADMIN_USER))
    {
        if(equali(authid,"STEAM_0:0:8713385555"))
        {
            if(is_user_steam(sndr))
            {
                prefix = csd_checkuserac(sndr) ? "^x04[^x03Steam+ MRA^x04] [ssss] ^x02":"^x04[Steam MRA] [ssss] ^x03";
            }
            else
            {
                prefix = "^x04[ala] ^x01"
            }
        }
        else if(equali(authid,"STEAM_0:1:577965555"))
        {
            if(is_user_steam(sndr))
            {
                prefix = csd_checkuserac(sndr) ? "^x03[^x04 Steam+ emr ^x03] ^x03":"^x04[Steam emr] ^x03";
            }
            else
            {
                prefix = "^x04[emr] ^x01"
            }
        }
        else if(flags & ADMIN_PASSWORD) //CHİEF ADMİN
        {
            if(is_user_steam(sndr))
            {
                prefix = csd_checkuserac(sndr) ? "^x03[^x04 Steam+ Chief Admin ^x03] ^x03":"^x03[^x04 Steam Chief Admin ^x03] ^x03";
            }
            else
            {
                prefix = "^x03[^x04 Chief Admin ^x03] ^x03"
            }
        }
        else if(flags & ADMIN_KICK)
        {
            if(is_user_steam(sndr))
            {
                prefix = csd_checkuserac(sndr) ? "^x04[Steam+ Admin] ^x01":"^x04[Steam Admin] ^x01";
            }
            else
            {
                prefix = "^x04[Admin] ^x01"
            }
        }
        else if(flags & ADMIN_RESERVATION)
        {
            if(is_user_steam(sndr))
            {
                prefix = csd_checkuserac(sndr) ? "^x04[Steam+ Slot] ^x01":"^x04[Steam Slot] ^x01";
            }
            else
            {
                prefix = "^x04[Slot] ^x01"
            }
        }
    }
    else {
        if(is_user_steam(sndr))
        {
            prefix = csd_checkuserac(sndr) ? "^x03[^x04 Steam+ Oyuncu ^x03] ^x03":"^x03[^x04 Steam Oyuncu ^x03] ^x03";
        }
    }

    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, "xx ")
        
    
    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, "[^x04TE^x03] ")
        else if(sndr_team == 2) add(prefix[len], charsmax(prefix) - len, "[^x04 CT ^x03] ")
    }

    if(flags > 0 && !(flags & ADMIN_USER))
    {
        format(msg, 199, "%s^x03%s :  ^x04%s",\
        len > 1 ? prefix : "",\
        sndr_name, str4)
        
    }
    else{
        format(msg, 199, "%s^x03%s :  ^x01%s",\
        len > 1 ? prefix : "",\
        sndr_name, str4)
    }
    return PLUGIN_HANDLED
}

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

.sma ichat.sma (Dosya Boyutu: 5,5 KB | İndirme Sayısı: 7)
Son Düzenleme: 17-10-2021, 11:40, Düzenleyen: EmirhanDayan..
#2
Eklentiyi eke koyar mısın ?
Yukarda atarken sorun çıkmış.
(- Ücretli Eklenti Yaptırmak İsteyen -)
#3
pardon,düzelttim.
#4
Şöyle dene bakalım :
PHP Kod:
///----------------------------------------
/// 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);

new 
alv_sndralv_str2[64], alv_str4[101];
new 
msg[200], saytext;
const 
TaskId 144;

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

public 
plugin_init()
{
    
register_plugin("SteamCHAT""1.2""Ian Cammara");

    
register_message(saytext"message_saytext")
}

public 
message_saytext(msgidmsgdestreceiver)
{
    new 
str2[64]
    
get_msg_arg_string(2str2charsmax(str2))
    
    static const 
Cstrike_Chat[] = "#Cstrike_Chat";
    
    if(
equal(str2Cstrike_Chat13))
    {
        new 
str3[22], len;
        
get_msg_arg_string(3str3charsmax(str3))
        
len strlen(str3);

        if(!
len)
        {
            new 
str4[101]
            
get_msg_arg_string(4str4charsmax(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(str2Cstrike_Chat_All17)
            
            new 
sndr_team get_user_team(sndr)
            new 
bool:is_sndr_spec = !bool:(sndr_team 3)

            new 
bool:same_as_last bool:(alv_sndr == sndr && equal(alv_str2str2) && equal(alv_str4str4))
            
            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 == 1team "TERRORIST"
                        
else team "CT"
                    
}
                    
                    new 
players[32], num
                    
static Uid
                    get_players
(playersnumflagsteam)
                    if(
get_user_flags(sndr) & ADMIN_RESERVATION)
                        
buildmsg(sndris_sndr_specis_team_msgsndr_teamstr4)
                    else 
buildmsg(sndris_sndr_specis_team_msgsndr_teamstr4)
                    
                    for(new 
i=0numi++)
                    {
                        
Uid players[i];
                        if(
is_user_alive(Uid) && get_user_flags(Uid) & ADMIN_RESERVATION|| !is_user_alive(Uid)){
                            
client_print_color(Uidsndrmsg);
                            
//message_begin(MSG_ONE, saytext, _, Uid)
                            //write_byte(sndr)
                            //write_string(msg)
                            //message_end()
                        
}
                    }
                    
                }
                
                
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_lastbuildmsg(sndris_sndr_specis_team_msgsndr_teamstr4)
            
            
set_msg_arg_string(2msg)
            
set_msg_arg_string(4"")
            
        }
    }
    return 
PLUGIN_CONTINUE
}

public 
buildmsg(sndris_sndr_specis_team_msgsndr_teamstr4[ ])
{
    new 
sndr_name[33]
    
get_user_name(sndrsndr_namecharsmax(sndr_name))
    
    new 
prefix[30] = "^x01"

    
new flags get_user_flags(sndr);
    new 
authid[MAX_AUTHID_LENGTH];
    
get_user_authid(sndr,authid,charsmax(authid));
    if(
flags && !(flags ADMIN_USER))
    {
        if(
equali(authid,"STEAM_0:0:211252333"))
        {
            if(
is_user_steam(sndr))
            {
                
prefix csd_checkuserac(sndr) ? "^x04[^x03Steam+ MRA^x04] [ssss] ^x02":"^x04[Steam MRA] [ssss] ^x03";
            }
            else
            {
                
prefix "^x04[ala] ^x01"
            
}
        }
        if(
equali(authid,"STEAM_0:0:8713385555"))
        {
            if(
is_user_steam(sndr))
            {
                
prefix csd_checkuserac(sndr) ? "^x04[^x03Steam+ MRA^x04] [ssss] ^x02":"^x04[Steam MRA] [ssss] ^x03";
            }
            else
            {
                
prefix "^x04[ala] ^x01"
            
}
        }
        else if(
equali(authid,"STEAM_0:1:577965555"))
        {
            if(
is_user_steam(sndr))
            {
                
prefix csd_checkuserac(sndr) ? "^x03[^x04 Steam+ emr ^x03] ^x03":"^x04[Steam emr] ^x03";
            }
            else
            {
                
prefix "^x04[emr] ^x01"
            
}
        }
        else if(
flags ADMIN_PASSWORD//CHÝEF ADMÝN
        
{
            if(
is_user_steam(sndr))
            {
                
prefix csd_checkuserac(sndr) ? "^x03[^x04 Steam+ Chief Admin ^x03] ^x03":"^x03[^x04 Steam Chief Admin ^x03] ^x03";
            }
            else
            {
                
prefix "^x03[^x04 Chief Admin ^x03] ^x03"
            
}
        }
        else if(
flags ADMIN_KICK)
        {
            if(
is_user_steam(sndr))
            {
                
prefix csd_checkuserac(sndr) ? "^x04[Steam+ Admin] ^x01":"^x04[Steam Admin] ^x01";
            }
            else
            {
                
prefix "^x04[Admin] ^x01"
            
}
        }
        else if(
flags ADMIN_RESERVATION)
        {
            if(
is_user_steam(sndr))
            {
                
prefix csd_checkuserac(sndr) ? "^x04[Steam+ Slot] ^x01":"^x04[Steam Slot] ^x01";
            }
            else
            {
                
prefix "^x04[Slot] ^x01"
            
}
        }
    }
    else {
        if(
is_user_steam(sndr))
        {
            
prefix csd_checkuserac(sndr) ? "^x03[^x04 Steam+ Oyuncu ^x03] ^x03":"^x03[^x04 Steam Oyuncu ^x03] ^x03";
        }
    }

    new 
len strlen(prefix);

    if(
is_sndr_specadd(prefix[len], charsmax(prefix) - len"¤")
    else if(!
is_user_alive(sndr)) add(prefix[len], charsmax(prefix) - len"xx ")
        
    
    if(
is_team_msg)
    {
        if(
is_sndr_specadd(prefix[len], charsmax(prefix) - len"(SPEC) ")
        else if(
sndr_team == 1add(prefix[len], charsmax(prefix) - len"[^x04TE^x03] ")
        else if(
sndr_team == 2add(prefix[len], charsmax(prefix) - len"[^x04 CT ^x03] ")
    }

    if(
flags && !(flags ADMIN_USER))
    {
        
format(msg199"%s^x03%s :  ^x04%s",\
        
len prefix "",\
        
sndr_namestr4)
        
    }
    else{
        
format(msg199"%s^x03%s :  ^x01%s",\
        
len prefix "",\
        
sndr_namestr4)
    }
    return 
PLUGIN_HANDLED
}

public 
task_clear_antiloop_vars()
{
    
alv_sndr 0
    alv_str2 
""
    
alv_str4 ""
    
return PLUGIN_HANDLED
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/ 
(- Ücretli Eklenti Yaptırmak İsteyen -)
#5
Malesef yine aynı, düzelmedi.
Son Düzenleme: 17-10-2021, 12:22, Düzenleyen: EmirhanDayan..
#6
Tekrar dene bakalım :
.sma ichat.sma (Dosya Boyutu: 5,5 KB | İndirme Sayısı: 3)
(- Ücretli Eklenti Yaptırmak İsteyen -)
#7
Malesef, yine aynı.

Yapamadınız mı ?
Son Düzenleme: 17-10-2021, 21:27, Düzenleyen: EmirhanDayan..
#8
Şöyle dene bakalım :
.sma ichat.sma (Dosya Boyutu: 5,5 KB | İndirme Sayısı: 2)
(- Ücretli Eklenti Yaptırmak İsteyen -)
#9
Teşekkür ederim çözülmüş gibi ama şöyle bir şey sorucam, bu sığmama sorunu ne kadar karaktere kadar devam eder veya ilerde farklı bir sorun çıkartır mı bize ?
#10
İlerde sorun çıkaracağını sanmıyorum.
(- Ücretli Eklenti Yaptırmak İsteyen -)

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task
Kayıt Ol
Discord Adresimize Katılın