Русское сообщество по скриптингу

добавление функции сброса звания

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

добавление функции сброса звания

Сообщение MrLegiongame » 20 авг 2016, 02:39

Всем еще раз привет :yahoo: , у меня появилась бешеная идея, а можно добавить в этот плагин сброс ранка(звание), типо игрок прокачался до последнего уровня и по достижению этого уровня он может сбросить свое звание и начать все заново но в замен он получит VIP на неделю, я думаю идея очень прикольная и многим пригодится 8-)

plugin-Lite Rank System

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <csx>
#include <fakemeta>
#include <fun>

#define STATUS_VALUE // Показывать звание игрока при наведении прицела (Включено по умолчанию)
#define PREFIX  // Включить префиксы Админа и Випа (Включено по умолчанию, закомментируйте если хотите выключить)
#define HUD_UPD 1.0  // Через сколько секунд обновлять информер

#if defined PREFIX
#define ADMIN_PREFIX ADMIN_BAN   // Флаг для префикса админа (по умолчанию флаг d)
#define VIP_PREFIX ADMIN_LEVEL_H   // Флаг для префикса випа (по умолчанию флаг t)
#endif

new szMessage[191]
new 
iPlayerRus[33], iPlayerRusInfo[33]

#define PLUGIN "Lite Rank System"
#define VERSION "2.3"
#define AUTHOR "xoymiii"

#define TASKID_INFO 7777

new PlayerXP[33], PlayerLevel[33], g_MsgHudlevelUp[33]
#if defined STATUS_VALUE
enum _:MAX_TYPES
{
    
TYPE_NONE,
    
TYPE_RELATION,
    
TYPE_PLAYER
}
enum
{
    
LOOK_FRIEND 1,
    
LOOK_ENEMY,
    
LOOK_HOSTAGE
}
enum _:MAX_REPLACES
{
    
RE_HP,
    
RE_RANK,
    
RE_NAME
}
new const 
Replaces[MAX_REPLACES][] =
{
    
"%hp%",
    
"%rank%",
    
"%name%"
}
new 
status_value[MAX_TYPES], gStatusText
#endif
new g_XPvalueg_XPheadshotg_Bombg_XPc4defg_XPc4plg_Bonus
new g_XPvg_XPheadg_Bg_Defg_Plg_Bon
new bool:bonus_blocked
new g_Levels
new LEVELS[22]
new const 
CLASSES[][] = { "I_1""I_1""I_2""I_3""I_4""I_5""I_6""I_7""I_8""I_9""I_10""I_11""I_12""I_13""I_14""I_15""I_16""I_17""I_18""I_19""I_20""I_21" }
new const 
eng[][]={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","{","}",":",'"',"<",">","~","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","[","]",";","'",",",".","`","?","/","@","$","^^","&"}
new const 
rus[][]={"Ф","И","С","В","У","А","П","Р","Ш","О","Л","Д","Ь","Т","Щ","З","Й","К","Ы","Е","Г","М","Ц","Ч","Н","Я","Х","Ъ","ж","Э","Б","Ю","Ё","ф","и","с","в","у","а","п","р","ш","о","л","д","ь","т","щ","з","й","к","ы","е","г","м","ц","ч","н","я","х","ъ","ж","э","б","ю","ё",",",".","'",";"":","?"}    
new 
g_oldrank[33], maxrank
                       
public plugin_init() 
{
    
register_plugin(PLUGINVERSIONAUTHOR)    
    
register_dictionary("Lite_Rank_System.txt" )
    
    
register_event("DeathMsg""EventDeath""a""1>0")
    
register_logevent"RoundStart"2"1=Round_Start" )

    
set_task(HUD_UPD"Info"TASKID_INFO""0"b")
    
    
g_MsgHud CreateHudSyncObj()
    
#if defined STATUS_VALUE
    
gStatusText get_user_msgid("StatusText")
    
register_event("StatusValue""StatusValueShow""be")
    
#endif
    
    
g_XPvalue register_cvar("lrs_xp_value""1")
    
g_Bomb register_cvar("lrs_bomb""1")
    
g_XPc4def register_cvar("lrs_xp_c4def""4")
    
g_XPc4pl register_cvar("lrs_xp_c4pl""3")
    
g_XPheadshot register_cvar("lrs_xp_hs""2")
    
g_Levels register_cvar("lrs_levels""0 10 20 30 50 100 150 200 250 300 350 400 500 600 700 800 1000 1200 1500 2000 2500")
    
g_Bonus register_cvar("lrs_bonus""1")
    
register_srvcmd("lrs_lockmap""lockmap")
    
    new const 
szRegisterClmd[][] =
    {
        
"say /rus",    "LangRus",
        
"say /eng",    "LangEng",
        
"say",        "Say",
        
"say_team",    "SayTeam"
    
}
    for(new 
asizeof szRegisterClmd+= 2)
        
register_clcmd(szRegisterClmd[a],szRegisterClmd[1])        
}

public 
plugin_cfg()
{    
    new 
configsDir[64]
    
get_configsdir(configsDir63)
    
server_cmd("exec %s/Lite_Rank_System.cfg"configsDir)        
    
    
g_XPv get_pcvar_num(g_XPvalue)    
    
g_B get_pcvar_num(g_Bomb)    
    
g_Def get_pcvar_num(g_XPc4def)
    
g_Pl get_pcvar_num(g_XPc4pl)
    
g_XPhead get_pcvar_num(g_XPheadshot)
    
g_Bon get_pcvar_num(g_Bonus)
    
    
set_task(1.0"LoadSettings")
}

///////////////// BLOCK MAP BONUS /////////////////////
public lockmap()
{
    new 
getmap[32],map[32]
    
read_args(getmap,31)
    
remove_quotes(getmap)
    
    
get_mapname(map,31)
    
    if(!
strcmp(getmap,map))
    {
        
bonus_blocked true
    
}
    else
    { 
            
bonus_blocked false    
    
}    
}
///////////////////////////////////////////////////////////////////

/////////////////// CHAT /////////////////////
public LangRus(id)
{
    if(!
iPlayerRus[id])
    {
        
iPlayerRus[id] = true
        PrintMsg
(id0"^4Русский ^1чат активирован!")
    }
    else 
PrintMsg(id0"^3Русский ^1чат уже активирован!")
}
 
public 
LangEng(id)
{
    if(
iPlayerRus[id])
    {
        
iPlayerRus[id] = false
        PrintMsg
(id0"^4Английский ^1чат активирован!")
    }
    else 
PrintMsg(id0"^3Английский ^1чат уже активирован!")
}

public 
Say(id)
    return 
SayHandler(idfalse)
    
public 
SayTeam(id)
    return 
SayHandler(idtrue)

public 
SayHandler(idbool:is_say_team)
{
    
read_args(szMessagecharsmax(szMessage))
    
remove_quotes(szMessage)
    if(!
szMessage[0] || szMessage[0] == '/') return PLUGIN_HANDLED_MAIN 
    replace_all2
(szMessagecharsmax(szMessage), "%""")
    if(!
iPlayerRusInfo[id])
    {
        if(!
iPlayerRus[id])
        {
            
iPlayerRusInfo[id] = true
            PrintMsg
(id0"^1У Вас есть возможность писать ^3по-русски. ^1Наберите ^4/rus ^1или ^4/eng ^1для переключения.")
        }
    }
    if(
iPlayerRus[id])
    {    
        for(new 
isizeof engi++)
            
replace_all2(szMessagecharsmax(szMessage), eng[i], rus[i])
    }
    new 
szFormatedMsg[191], szLenszName[32], iAlive is_user_alive(id), iTeam get_pdata_int(id114)
    
    
get_user_name(idszNamecharsmax(szName))
    if(
is_say_team)
    {
        switch(
iTeam)
        {
            case 
1szLen formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg), "%s(Команде) "iAlive "^1" "^1*УБИТ* ")
            case 
2szLen formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg), "%s(Команде) "iAlive "^1" "^1*УБИТ* ")
            case 
3szLen formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg), "^1(Наблюдатель) ")
        }
    }
    else 
    {
        if(
iTeam == 3szLen formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg), "^1(Наблюдатель) ")
        else 
szLen formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg) - szLen"%s"iAlive "^1" "^1*УБИТ* ")
    }    
 
        
#if defined PREFIX
        
new iFlags get_user_flags(id)       
    if(
iFlags ADMIN_PREFIX)
        
szLen += formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg) - szLen"%L [^3%L^1] ^3%s^1 :^4 "LANG_PLAYER"ADMIN"LANG_PLAYERCLASSES[PlayerLevel[id]], szName)
    else if(
iFlags VIP_PREFIX)
        
szLen += formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg) - szLen"%L [^3%L^1] ^3%s^1 : "LANG_PLAYER"VIP"LANG_PLAYERCLASSES[PlayerLevel[id]], szName)        
    else            
        
szLen += formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg) - szLen"[^3%L^1] ^3%s^1 : "LANG_PLAYERCLASSES[PlayerLevel[id]], szName)
    
#else            
        
szLen += formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg) - szLen"[^3%L^1] ^3%s^1 : "LANG_PLAYERCLASSES[PlayerLevel[id]], szName)    
    
#endif
        
    
szLen += formatex(szFormatedMsg[szLen], charsmax(szFormatedMsg) - szLen"%s"szMessage)    

    static 
players[32], pcountget_players(playerspcount"c")
    if(
is_say_team)
    {
        for(new 
ipcounti++)
            if(
get_user_flags(players[i]) & ADMIN_BAN || (iTeam == get_user_team(players[i]) && iAlive == is_user_alive(players[i])))
                
PrintMsg(players[i], idszFormatedMsg)
    }
    else
    {
        for(new 
ipcounti++)
            
PrintMsg(players[i], idszFormatedMsg)
    }
    return 
PLUGIN_HANDLED
}

stock PrintMsg(const iReceiver, const iSender, const szMessage[], any:...)
{
    new 
szMsg[191]
    
vformat(szMsgcharsmax(szMsg), szMessage4)
    
message_begin(MSG_ONE_UNRELIABLE76_iReceiver)
    
write_byte(iSender iSender iReceiver)
    
write_string(szMsg)
    
message_end()
}

stock replace_all2(string[], len, const what[], const with[])
{
    new 
pos
    
if((pos contain(stringwhat)) == -1) return 0
    
new totalwith_len strlen(with), diff strlen(what) - with_lentotal_len strlen(string), temp_pos
    
while(total_len with_len len && replace(string[pos], len poswhatwith) != 0)
    {
        
total++
        
pos += with_len
        total_len 
-= diff
        
if (pos >= total_len) break
        
temp_pos contain(string[pos], what)
        if (
temp_pos == -1) break
        
pos += temp_pos
    
}
    return 
total
}
/////////////////////////////////////////////////////////////////////////////

/////////////////////// RANK, LEVEL i td... ////////////////////    
public LoadSettings() 
{
    new 
iLVL[22][16], cvLevels[256]
        
    
get_pcvar_string(g_LevelscvLevels255)
    
trim(cvLevels)
    
parse(cvLevelsLVL[0], 15LVL[1], 15LVL[2], 15LVL[3], 15LVL[4], 15LVL[5], 15LVL[6], 15LVL[7], 15LVL[8], 15LVL[9], 15LVL[10], 15LVL[11], 15LVL[12], 15LVL[13], 15LVL[14], 15LVL[15], 15LVL[16], 15LVL[17], 15LVL[18], 15LVL[19], 15LVL[20], 15LVL[21], 15)
    
    for (
021i++)
        
LEVELS[i+1] = str_to_num(LVL[i])

    return 
PLUGIN_HANDLED
}

public 
checkLvl(id
{
        new 
Name[32]
    
get_user_name(idName31)
    
    if(
id && id 33
    {
        if (
PlayerLevel[id] <= 0)
            
PlayerLevel[id] = 1
            
        
if (PlayerLevel[id] < 21
        {
            while(
PlayerXP[id] >= LEVELS[PlayerLevel[id]+1]) 
            {
                
PlayerLevel[id]++
                
levelUp[id] = 1                
                ChatColor
(0"%L %L"LANG_PLAYER,"LRS_TAG"LANG_PLAYER,"NEW_LEVEL"NameLANG_PLAYER,CLASSES[PlayerLevel[id]])
            }
        }
    }    
}

public 
EventDeath() 
{
    new 
iKiller read_data(1)
    new 
iVictim read_data(2)
    
    if(
iKiller != iVictim && get_pdata_int(iKiller114) != get_pdata_int(iVictim114) && is_user_connected(iKiller) && PlayerLevel[iKiller] < 21
    {
        if (
g_XPhead 1
        {
            if(
read_data(3))
                
PlayerXP[iKiller] += g_XPv g_XPhead
            
else
                
PlayerXP[iKiller] += g_XPv
        
}
        else
            
PlayerXP[iKiller] += g_XPv

        checkLvl
(iKiller)
    }                                 
    return 
PLUGIN_CONTINUE
}

public 
bomb_explode(id)
{
        if(
g_Pl || g_B != 1)
        return

        
PlayerXP[id] += g_Pl
        checkLvl
(id)
}

public 
bomb_defused(id
{
        if(
g_Def || g_B != 1)
        return

        
PlayerXP[id] += g_Def
        checkLvl
(id)
}

public 
client_putinserver(id)     
    
set_task(1.0"load_client_data"id)

public 
load_client_data(id
{
    if(!
is_user_connected(id))
        return 
PLUGIN_HANDLED

    
new stats[8], bodyhits[8], stats2[4]
    
get_user_stats(idstatsbodyhits)
    
get_user_stats2(idstats2)
    
    if (
g_XPhead && g_B != 0)
        
PlayerXP[id] = ((stats[2] * g_XPhead + ((stats[0] - stats[2]) * g_XPv)) + (stats2[1] * g_Def stats2[3] * g_Pl))
    else if (
g_XPhead <= && g_B != 0)
        
PlayerXP[id] = (stats[0] * g_XPv + (stats2[1] * g_Def stats2[3] * g_Pl))
    else if (
g_XPhead && g_B == 0)
        
PlayerXP[id] = (stats[2] * g_XPhead + ((stats[0] - stats[2]) * g_XPv))
    else
        
PlayerXP[id] = stats[0] * g_XPv

    
for(new 1<= 21i++) 
    {
        if (
21
        {
            if (
PlayerXP[id] >= LEVELS[i] && PlayerXP[id] < LEVELS[i+1])
                
PlayerLevel[id] = i
        
}
        else 
        {
            if (
PlayerXP[id] >= LEVELS[21])
                
PlayerLevel[id] = 21
        
}
    }
    return 
PLUGIN_HANDLED
}
///////////////////////////////////////////////////////////////////////////

#if defined STATUS_VALUE
public StatusValueShow(id)
{
    new 
num read_data(1)
    if( 
num <= || num >= MAX_TYPES )
    return
    
    new 
update status_value[num] = read_data(2)
    new 
live is_user_alive(id)
    switch( 
num )
    {
        case 
TYPE_RELATION:
        {
            if( !
update && live )
            {
                
message_beginMSG_ONE_UNRELIABLEgStatusText_id )
        
write_byte)
        
write_string"" )
        
message_end()
        }
    }
    case 
TYPE_PLAYER:
    {
        if( 
live )
        {
            new 
message[192]
            
            switch( 
status_value[TYPE_RELATION] )
            {
                case 
LOOK_FRIEND:
                {
                    
copy(messagecharsmax(message), "Друг: %name% HP: %hp% Звание: %rank%")
                }
                case 
LOOK_ENEMY
                {
            
copy(messagecharsmax(message), "Враг: %name% Звание: %rank%")
            }
            case 
LOOK_HOSTAGE
            {
            return
            }
        }
        
EditMessagemessageupdatetrueget_user_healthupdate ) )
        
        
message_beginMSG_ONE_UNRELIABLEgStatusText_id )
        
write_byte)
        
write_stringmessage )
        
message_end()
        }
    }
    }                
}

EditMessagemessage[192], playerbool:status_texthp )
{
    new 
temp[35]
    
    if( 
is_user_aliveplayer ) )
    {
        for( new 
ii<MAX_REPLACESi++ )
        {
            switch( 
)
            {
                case 
RE_HP:
                {
                    
num_to_str(hptempcharsmax(temp))
                }
                case 
RE_RANK:
                {
                    
format(tempcharsmax(temp), "%L"LANG_PLAYER,CLASSES[PlayerLevel[player]])
                }
                case 
RE_NAME:
                {
                    if(
status_text)
            
copy(tempcharsmax(temp), "%p2")
            else
            
get_user_name(playertempcharsmax(temp))
        }
        default:
        {
            
copy(tempcharsmax(temp), "")
        }
        }
        
replace(messagecharsmax(message), Replaces[i], temp)
    }
    }
    
trim(message)
}
#endif
    
public RoundStart()
{
        
maxrank get_statsnum()  
        
        if(
g_Bon == 1)
        {
            if(!
bonus_blocked)
            {
                static 
Players[32], Count
                
new id
        
                get_players
(PlayersCount"ach")
        
                for(new 
0Counti++)
                {
                    
id Players[i
        
                    if(
levelUp[id] == 1)
                {  
                
GetWeapon(id)
                
levelUp[id] = 0
                
}
            }
        }
    }
}

public 
GetWeapon(id)
{
    new 
szText[700 char]
    
formatexszTextcharsmaxszText ), "%L"id"TITLE")
    new 
menu menu_createszText"gw_menu" )

    
formatexszTextcharsmaxszText ), "AK47")
    
menu_additemmenuszText"1")

    
formatexszTextcharsmaxszText ), "M4A1")
    
menu_additemmenuszText"2")

    
formatexszTextcharsmaxszText ), "AWP")
    
menu_additemmenuszText"3")

    
formatexszTextcharsmaxszText ), "FAMAS")
    
menu_additemmenuszText"4")

    
menu_setpropmenuMPROP_EXITMEXIT_ALL )
    
menu_displayidmenu,0)
    return 
PLUGIN_CONTINUE
}
public 
gw_menu(id,menu,item)
{
    if( 
item == MENU_EXIT )
    {
        return 
PLUGIN_HANDLED
    
}
    
    new 
data], iName64 ], accesscallback
    menu_item_getinfo
menuitemaccessdatacharsmaxdata ), iNamecharsmaxiName ), callback )
    new 
key str_to_numdata )
    switch( 
key )
    {
        case 
1:
        {
            
give_item(id,"weapon_ak47")
            
cs_set_user_bpammoidCSW_AK4790)
        }
        case 
2:
        {
            
give_item(id,"weapon_m4a1")
            
cs_set_user_bpammoidCSW_M4A190)
        }
        case 
3:
        {
            
give_item(id,"weapon_awp")
            
cs_set_user_bpammoidCSW_AWP30)
        }
        case 
4:
        {
            
give_item(id,"weapon_famas")
            
cs_set_user_bpammoidCSW_FAMAS90)
        }
    }
    
    
give_item(id,"weapon_smokegrenade")
    
give_item(id,"weapon_flashbang")
    
give_item(id,"weapon_hegrenade")
    
cs_set_user_armor(id100CS_ARMOR_VESTHELM)
    
    
ChatColor(id"%L %L"LANG_PLAYER,"LRS_TAG"LANG_PLAYER,"BONUS")
    
    return 
PLUGIN_HANDLED
}

////////////////// INFORMER ///////////////////////    
public Info() 
{
    static 
Players[32], Countbuffer[192], len
    
new idid2Name2[32], liveosef[8]           
    
get_players(PlayersCount"ch")                                                                   

    for(new 
0Counti++) 
    {
        
id Players[i]
        
live is_user_alive(id)
        
id2 pev(idpev_iuser2)
        
get_user_name(id2Name231)        
        
g_oldrank[id] = get_user_stats(idosefosef
        
        if(!
live
    {                                                    
        if(
id2 0
        {                                        
            if(
PlayerLevel[id2] < 21
        {
            
len format(buffercharsmax(buffer), "%L: %s"LANG_PLAYER,"A_NAME"Name2)
            
len += format(buffer[len], charsmax(buffer) - len"^n%L:"LANG_PLAYER,"ZVANIE")
            
len += format(buffer[len], charsmax(buffer) - len" %L"LANG_PLAYER,CLASSES[PlayerLevel[id2]])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d"LANG_PLAYER,"PL_XP",PlayerXP[id2])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d"LANG_PLAYER,"RANK"g_oldrank[id2])
        }
        else 
        {
            
len format(buffercharsmax(buffer), "%L: %s"LANG_PLAYER,"A_NAME"Name2)
            
len += format(buffer[len], charsmax(buffer) - len"^n%L:",LANG_PLAYER,"ZVANIE")
            
len += format(buffer[len], charsmax(buffer) - len" %L",LANG_PLAYER,CLASSES[PlayerLevel[id2]])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %L",LANG_PLAYER,"PL_XP"LANG_PLAYER,"PL_MAX")
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d"LANG_PLAYER,"RANK"g_oldrank[id2])
        }                    
        }
        else 
        {
        if(
PlayerLevel[id] < 21
        {
            
len format(buffercharsmax(buffer) - len"%L: %L"LANG_PLAYER,"ZVANIE"LANG_PLAYER,CLASSES[PlayerLevel[id]])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d",LANG_PLAYER,"PL_XP",PlayerXP[id])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d"LANG_PLAYER,"RANK"g_oldrank[id])
        }
        else 
        {
            
len format(buffercharsmax(buffer) - len"%L: %L"LANG_PLAYER,"ZVANIE"LANG_PLAYER,CLASSES[PlayerLevel[id]])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L",LANG_PLAYER,"PL_MAX")
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d"LANG_PLAYER,"RANK"g_oldrank[id])
        }
        }
    }
    else 
    {
        if((
PlayerLevel[id] < 21) && live
        {
            
len format(buffercharsmax(buffer), "%L"LANG_PLAYER,CLASSES[PlayerLevel[id]])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d %L %d"LANG_PLAYER,"PL_XP",PlayerXP[id], LANG_PLAYER,"IZ"LEVELS[PlayerLevel[id]+1])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d %L %d"LANG_PLAYER,"RANK"g_oldrank[id], LANG_PLAYER,"IZ"maxrank)
        }
        else 
        {
            
len format(buffercharsmax(buffer), "%L",LANG_PLAYER,CLASSES[PlayerLevel[id]])
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %L",LANG_PLAYER,"PL_XP"LANG_PLAYER,"PL_MAX")
            
len += format(buffer[len], charsmax(buffer) - len"^n%L: %d %L %d"LANG_PLAYER,"RANK"g_oldrank[id], LANG_PLAYER,"IZ"maxrank)
        }
    }
    
set_hudmessage(2552552550.010.1900.0HUD_UPD__, -1)
    
ShowSyncHudMsg(idg_MsgHud"%s"buffer)
    }
    return 
PLUGIN_CONTINUE
}
/////////////////////////////////////////////////////////////////

////////////////// STOCK //////////////////////       
stock ChatColor(const id, const input[], any:...)
{
    new 
count 1players[32]
    static 
msg[192]
    
vformat(msg191input3)
   
    
replace_all(msg191"!g""^4"// Green Color
    
replace_all(msg191"!y""^1"// Default Color
    
replace_all(msg191"!t""^3"// Team Color
   
    
if (idplayers[0] = id; else get_players(playerscount"ch")
    {
        for (new 
0counti++)
        {
            if (
is_user_connected(players[i]))
            {
                
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"), _players[i])
                
write_byte(players[i])
                
write_string(msg)
                
message_end()
            }
        }
    }
}
/////////////////////////////////////////////////////////////
 
Аватара пользователя
MrLegiongame
 
Сообщения: 109
Зарегистрирован: 12 июл 2016, 17:42
Благодарил (а): 32 раз.
Поблагодарили: 3 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

cron