Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Цветные сообщения в lang файлах (txt)

, Цветные сообщения в lang файлах (txt)
Статус пользователя DeathAdder
сообщение 17.11.2015, 11:14
Сообщение #1
Стаж: 10 лет

Сообщений: 33
Благодарностей: 1
Полезность: 24

Всем привет, нужно сделать чтобы сообщения выводились в чат цветными, но чтобы можно было редактировать все это через lang файл, а не через код.
Код:
#define PLUGIN 	"AFK Manager"
#define AUTHOR "Leon McVeran"
#define VERSION "v1.4d"
#define PDATE "19th May 2010"

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>

#define KICK_IMMUNITY ADMIN_CFG

#define TASK_AFK_CHECK 142500
#define FREQ_AFK_CHECK 5.0
#define MAX_WARN 3

static const OFFSET_LINUX = 5
new const m_iJoiningState = 125

new bool:g_bSpec[33]
new Float:g_fLastActivity[33]
new g_iAFKCheck
new g_iAFKTime[33]
new g_iDropBomb
new g_iKickTime
new g_iMaxPlayers
new g_iMinPlayers
new g_iTransferTime
new g_iWarn[33]
new g_vOrigin[33][3]

new CVAR_afk_drop_bomb
new CVAR_afk_check
new CVAR_afk_transfer_time
new CVAR_afk_kick_time
new CVAR_afk_kick_players

public plugin_init(){
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("afk_manager.txt")

register_logevent("event_round_end", 2, "0=World triggered", "1=Round_End")
register_logevent("event_round_start", 2, "0=World triggered", "1=Round_Start")

// Support der alten Menьs
register_clcmd("jointeam", "cmd_jointeam") // new menu
register_menucmd(register_menuid("Team_Select", 1), 511, "cmd_jointeam") // old menu

register_clcmd("joinclass", "cmd_joinclass") // new menu
register_menucmd(register_menuid("Terrorist_Select", 1), 511, "cmd_joinclass") // old menu
register_menucmd(register_menuid("CT_Select", 1), 511, "cmd_joinclass") // old menu

CVAR_afk_check = register_cvar("afk_check", "1")
CVAR_afk_drop_bomb = register_cvar("afk_drop_bomb", "2")
CVAR_afk_transfer_time = register_cvar("afk_transfer_time", "6")
CVAR_afk_kick_time = register_cvar("afk_kick_time", "0")
CVAR_afk_kick_players = register_cvar("afk_kick_players", "12")
}

public plugin_cfg(){
g_iMaxPlayers = get_maxplayers()
}

public client_connect(id){

// Spieler als Spectator entmarkieren
g_bSpec[id] = false

// Positionen zurьcksetzen
g_vOrigin[id] = {0, 0, 0}

// Counter zurьcksetzen
g_iAFKTime[id] = 0
g_iWarn[id] = 0
}

public event_round_start(){

// AFK Check eingeschaltet
g_iAFKCheck = get_pcvar_num(CVAR_afk_check)
if (g_iAFKCheck){

// Spawn-Positionen aktualisieren
new iPlayers[32], pNum
get_players(iPlayers, pNum, "a")
for (new p = 0; p < pNum; p++){
get_user_origin(iPlayers[p], g_vOrigin[iPlayers[p]])
}

// Loop anlegen falls nicht vorhanden
if (!task_exists(TASK_AFK_CHECK)) set_task(FREQ_AFK_CHECK, "func_afk_check", TASK_AFK_CHECK, _, _, "b")

// Kick und Transferzeiten festlegen
if (get_pcvar_num(CVAR_afk_transfer_time) < 6) set_pcvar_num(CVAR_afk_transfer_time, 6)
if (get_pcvar_num(CVAR_afk_kick_time) < 6) set_pcvar_num(CVAR_afk_kick_time, 6)
g_iDropBomb = get_pcvar_num(CVAR_afk_drop_bomb)
g_iTransferTime = get_pcvar_num(CVAR_afk_transfer_time)
g_iKickTime = get_pcvar_num(CVAR_afk_kick_time)
g_iMinPlayers = get_pcvar_num(CVAR_afk_kick_players)
}

// AFK Check ausgeschaltet
else{

// Loop lцschen falls vorhanden
if (task_exists(TASK_AFK_CHECK)) remove_task(TASK_AFK_CHECK)
}


}

public cmd_jointeam(id){

// Spieler als Spectator markieren, sonst kann man den Kick umgehen, indem man keiner Klasse joined.
g_bSpec[id] = true
}

public cmd_joinclass(id){

// Spieler als Spectator entmarkieren
g_bSpec[id] = false

// Positionen zurьcksetzen
g_vOrigin[id] = {0, 0, 0}

// Counter zurьcksetzen
g_iAFKTime[id] = 0
g_iWarn[id] = 0
}

public event_round_end(){

// Check darf nicht durchgefьhrt werden
g_iAFKCheck = 0
}

public func_afk_check(taskid){
if (g_iAFKCheck){
new CsTeams:eTeam

// Alle Spieler ьberprьfen
for (new id = 1; id <= g_iMaxPlayers; id++){

// Bots nicht ьberprьfen
if (is_user_bot(id)) continue

// AFK Funktionen fьr Specs
if (is_user_connected(id) && !is_user_hltv(id)){
eTeam = cs_get_user_team(id)
if (eTeam == CS_TEAM_SPECTATOR || eTeam == CS_TEAM_UNASSIGNED || g_bSpec[id]){

// Counter erhцhen
g_iAFKTime[id]++

// Spec-Kick
if (g_iAFKTime[id] >= g_iKickTime - MAX_WARN){
func_kick_player(id)
}
}
}

// AFK Funktionen fьr lebende Spieler
if (is_user_alive(id)){

// Positionen ьberprьfen
if (g_iAFKCheck == 1){
new vOrigin[3]
get_user_origin(id, vOrigin)

if (g_vOrigin[id][0] != vOrigin[0] || g_vOrigin[id][1] != vOrigin[1]){
g_vOrigin[id][0] = vOrigin[0]
g_vOrigin[id][1] = vOrigin[1]
g_vOrigin[id][2] = vOrigin[2]
g_iAFKTime[id] = 0
g_iWarn[id] = 0
}
else{
g_iAFKTime[id]++
}
}

// Letzte Aktivitдt ermitteln
else{
new Float:fLastActivity
fLastActivity = cs_get_user_lastactivity(id)

if (fLastActivity != g_fLastActivity[id]){
g_fLastActivity[id] = fLastActivity
g_iAFKTime[id] = 0
g_iWarn[id] = 0
}
else{
g_iAFKTime[id] = floatround((get_gametime() - fLastActivity) / FREQ_AFK_CHECK)
}
}

// Bombentransfer
if (g_iDropBomb && g_iAFKTime[id] >= 3){
if (g_iDropBomb == 1){
if (pev(id, pev_weapons) & (1 << CSW_C4)) engclient_cmd(id, "drop", "weapon_c4")
}
else{
func_transfer_bomb(id)
}
}

// Spec-Switch
if (g_iAFKTime[id] >= g_iTransferTime - MAX_WARN){
func_transfer_player(id)
}
}
}
}
}

public func_transfer_bomb(id){

// Abbrechen wenn der Spieler keine Bombe hat
if (!(pev(id, pev_weapons) & (1 << CSW_C4))) return

// Ermittle alle lebenden Terroristen
new iPlayers[32], pNum
get_players(iPlayers, pNum, "ae", "TERRORIST")

// Abbrechen falls weniger als 2 Terroristen leben
if (pNum < 2) return

// Finde den nдchsten Terroristen der nicht AFK ist
new vCarrier[3], vRecipient[3], iRecipient, iDistance, iMinDistance = 999999
get_user_origin(id, vCarrier)
for (new p = 0; p < pNum; p++){
if (g_iAFKTime[iPlayers[p]] < 2){
get_user_origin(iPlayers[p], vRecipient)
iDistance = get_distance(vCarrier, vRecipient)
if (iDistance < iMinDistance){
iMinDistance = iDistance
iRecipient = iPlayers[p]
}
}
}

// Abbrechen wenn alle Terroristen AFK sind
if (!iRecipient) return

// Bombe transferieren
engclient_cmd(id, "drop", "weapon_c4")
new iC4 = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4")
if (pev_valid(iC4)){
new iBackpack = pev(iC4, pev_owner)
if (iBackpack > g_iMaxPlayers){
set_pev(iBackpack, pev_flags, pev(iBackpack, pev_flags) | FL_ONGROUND)
dllfunc(DLLFunc_Touch, iBackpack, iRecipient)
}
}

// Nachrichten anzeigen
new szRecipient[32], szMsg[128]
get_user_name(iRecipient, szRecipient, 31)
set_hudmessage(255, 255, 0, -1.0, 0.8, 0, 3.0, 6.0, 0.1, 0.2, -1)
for (new p = 0; p < pNum; p++){
if (iPlayers[p] != iRecipient){
format(szMsg, 127, "%L", iPlayers[p], "AFK_TRANSFER_BOMB", szRecipient)
show_hudmessage(iPlayers[p], "%s", szMsg)
}
}
format(szMsg, 127, "%L", iRecipient, "AFK_GOT_BOMB")
show_hudmessage(iRecipient, szMsg)
}

public func_transfer_player(id){

// Warnung anzeigen, wenn nicht schon max-mal verwarnt
if (g_iWarn[id] < MAX_WARN){
client_print(id, print_chat, "[AFK] %L", LANG_PLAYER, "AFK_TRANSFER_WARN", floatround(FREQ_AFK_CHECK) * (MAX_WARN - g_iWarn[id]))
g_iWarn[id]++
return
}

// Eigentlich sollte die Bombe schon transferiert worden sein
if (pev(id, pev_weapons) & (1 << CSW_C4)){
engclient_cmd(id, "drop", "weapon_c4")
}

// Spieler tranferieren
if (is_user_alive(id)) user_silentkill(id)

// Allow players to choose a team more than one time per round (Thanks ConnorMcLeod)
// I use this method caused of some issue with deathmatch (Player will be respawned as T or CT)
set_pdata_int(id, m_iJoiningState, get_pdata_int(id, m_iJoiningState, OFFSET_LINUX) & ~(1<<8), OFFSET_LINUX)
engclient_cmd(id, "jointeam", "6")
set_pdata_int(id, m_iJoiningState, get_pdata_int(id, m_iJoiningState, OFFSET_LINUX) & ~(1<<8), OFFSET_LINUX)
//cs_set_user_team(id, CS_TEAM_SPECTATOR)
//cs_reset_user_model(id)

// Positionen zurьcksetzen
g_vOrigin[id] = {0, 0, 0}

// Counter zurьcksetzen
g_iAFKTime[id] = 0
g_iWarn[id] = 0

// Nachrichten anzeigen
new szName[32]
get_user_name(id, szName, 31)
client_print(0, print_chat, "[AFK] %L", LANG_PLAYER, "AFK_TRANSFER_PLAYER", szName)
}

public func_kick_player(id){

// Abbrechen wenn es sich um einen Admin handelt
if (get_user_flags(id) & KICK_IMMUNITY) return

// Anzahl der aktuellen Spieler ermitteln
new iCurrentPlayers = get_playersnum(1)

// Sind noch Plдtze frei?
if (iCurrentPlayers < g_iMinPlayers || !g_iMinPlayers) return

// Warnung anzeigen, wenn nicht schon max-mal verwarnt
if (g_iWarn[id] < MAX_WARN){
client_print(id, print_chat, "[AFK] %L", LANG_PLAYER, "AFK_KICK_WARN", floatround(FREQ_AFK_CHECK) * (MAX_WARN - g_iWarn[id]))
g_iWarn[id]++
return
}

// Spieler kicken
new szMsg[192]
format(szMsg, 191, "%L", id, "AFK_KICK_REASON")
server_cmd("kick #%d ^"%s^"", get_user_userid(id), szMsg)

// Nachrichten anzeigen
new szName[32]
get_user_name(id, szName, 31)
client_print(0, print_chat, "[AFK] %L", LANG_PLAYER, "AFK_KICK_PLAYER", szName)
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя kolobok1
сообщение 17.11.2015, 18:24
Сообщение #2


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

Код:

//Подключаем инклуд
#include <colorchat2>
//И строку 274 меняем на:
ColorChat(id, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_TRANSFER_WARN", floatround(FREQ_AFK_CHECK) * (MAX_WARN - g_iWarn[id]))
//Так же строку 321:
ColorChat(id, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_KICK_WARN", floatround(FREQ_AFK_CHECK) * (MAX_WARN - g_iWarn[id]))
//И так же строку 334:
ColorChat(id, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_KICK_PLAYER", szName)
//Потом в LANG файле afk_manager.txt
//Меняем цвет у строк:
AFK_TRANSFER_WARN
AFK_KICK_WARN
AFK_KICK_PLAYER
//Например:
AFK_TRANSFER_WARN = n*БЛА - t*БЛА - g*ЛА
//ЦВЕТА
n* //Нормальный
t* //Цвет команды
g* //Зелёный

Инклуд:

Отредактировал: kolobok1, - 17.11.2015, 18:24
Прикрепленные файлы:
Прикрепленный файл  colorchat2.rar ( 1,2 килобайт ) Кол-во скачиваний: 31
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Vaqtincha
сообщение 17.11.2015, 19:01
Сообщение #3
Стаж: 11 лет

Сообщений: 981
Благодарностей: 352
Полезность: < 0

можно и без колорчата обойтись хотя без разниц.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kolobok1
сообщение 18.11.2015, 7:40
Сообщение #4


Стаж: 11 лет

Сообщений: 464
Благодарностей: 23
Полезность: 71

В 334 строке,немного ошибся,там сообщения отсылается всем,а не одному,поменяй на:
Код:
//334 строка
ColorChat(0, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_KICK_PLAYER", szName)
//И 305 строчку пропустил..
ColorChat(0, NORMAL, "[AFK] %L", LANG_PLAYER, "AFK_TRANSFER_PLAYER", szName)


Vaqtincha, Можно,но не нужно derisive.gif

Отредактировал: kolobok1, - 18.11.2015, 7:40
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя DimanZM
сообщение 22.12.2016, 1:44
Сообщение #5
Стаж: 13 лет

Сообщений: 23
Благодарностей: 1
Полезность: 33

kolobok1,

Исходник
Код
#define PLUGIN     "AFK Manager"
#define AUTHOR     "Leon McVeran"
#define VERSION     "v1.4d"
#define PDATE     "19th May 2010"

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fakemeta>
#include <colorchat2>

#define KICK_IMMUNITY         ADMIN_BAN

#define TASK_AFK_CHECK         142500
#define FREQ_AFK_CHECK         5.0
#define MAX_WARN         3

static const OFFSET_LINUX = 5
new const m_iJoiningState = 125

new bool:g_bSpec[33]
new Float:g_fLastActivity[33]
new g_iAFKCheck
new g_iAFKTime[33]
new g_iDropBomb
new g_iKickTime
new g_iMaxPlayers
new g_iMinPlayers
new g_iTransferTime
new g_iWarn[33]
new g_vOrigin[33][3]

new CVAR_afk_drop_bomb
new CVAR_afk_check
new CVAR_afk_transfer_time
new CVAR_afk_kick_time
new CVAR_afk_kick_players

public plugin_init(){
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_dictionary("afk_manager.txt")

    register_logevent("event_round_end", 2, "0=World triggered", "1=Round_End")
    register_logevent("event_round_start", 2, "0=World triggered", "1=Round_Start")

    // Support der alten Menьs
    register_clcmd("jointeam", "cmd_jointeam") // new menu
    register_menucmd(register_menuid("Team_Select", 1), 511, "cmd_jointeam") // old menu

    register_clcmd("joinclass", "cmd_joinclass") // new menu
    register_menucmd(register_menuid("Terrorist_Select", 1), 511, "cmd_joinclass") // old menu
    register_menucmd(register_menuid("CT_Select", 1), 511, "cmd_joinclass") // old menu

    CVAR_afk_check = register_cvar("afk_check", "1")
    CVAR_afk_drop_bomb = register_cvar("afk_drop_bomb", "2")
    CVAR_afk_transfer_time = register_cvar("afk_transfer_time", "9")
    CVAR_afk_kick_time = register_cvar("afk_kick_time", "19")
    CVAR_afk_kick_players = register_cvar("afk_kick_players", "15")
}

public plugin_cfg(){
    g_iMaxPlayers = get_maxplayers()
}

public client_connect(id){

    // Spieler als Spectator entmarkieren
    g_bSpec[id] = false

    // Positionen zurьcksetzen
    g_vOrigin[id] = {0, 0, 0}

    // Counter zurьcksetzen
    g_iAFKTime[id] = 0
    g_iWarn[id] = 0
}

public event_round_start(){

    // AFK Check eingeschaltet
    g_iAFKCheck = get_pcvar_num(CVAR_afk_check)
    if (g_iAFKCheck){

        // Spawn-Positionen aktualisieren
        new iPlayers[32], pNum
        get_players(iPlayers, pNum, "a")
        for (new p = 0; p < pNum; p++){
            get_user_origin(iPlayers[p], g_vOrigin[iPlayers[p]])
        }

        // Loop anlegen falls nicht vorhanden
        if (!task_exists(TASK_AFK_CHECK)) set_task(FREQ_AFK_CHECK, "func_afk_check", TASK_AFK_CHECK, _, _, "b")

        // Kick und Transferzeiten festlegen
        if (get_pcvar_num(CVAR_afk_transfer_time) < 6) set_pcvar_num(CVAR_afk_transfer_time, 6)
        if (get_pcvar_num(CVAR_afk_kick_time) < 6) set_pcvar_num(CVAR_afk_kick_time, 6)
        g_iDropBomb = get_pcvar_num(CVAR_afk_drop_bomb)
        g_iTransferTime = get_pcvar_num(CVAR_afk_transfer_time)
        g_iKickTime = get_pcvar_num(CVAR_afk_kick_time)
        g_iMinPlayers = get_pcvar_num(CVAR_afk_kick_players)
    }

    // AFK Check ausgeschaltet
    else{

        // Loop lцschen falls vorhanden
        if (task_exists(TASK_AFK_CHECK)) remove_task(TASK_AFK_CHECK)
    }


}

public cmd_jointeam(id){

    // Spieler als Spectator markieren, sonst kann man den Kick umgehen, indem man keiner Klasse joined.
    g_bSpec[id] = true
}

public cmd_joinclass(id){

    // Spieler als Spectator entmarkieren
    g_bSpec[id] = false

    // Positionen zurьcksetzen
    g_vOrigin[id] = {0, 0, 0}

    // Counter zurьcksetzen
    g_iAFKTime[id] = 0
    g_iWarn[id] = 0
}

public event_round_end(){

    // Check darf nicht durchgefьhrt werden
    g_iAFKCheck = 0
}

public func_afk_check(taskid){
    if (g_iAFKCheck){
        new CsTeams:eTeam

        // Alle Spieler ьberprьfen
        for (new id = 1; id <= g_iMaxPlayers; id++){

            // Bots nicht ьberprьfen
            if (is_user_bot(id)) continue

            // AFK Funktionen fьr Specs
            if (is_user_connected(id) && !is_user_hltv(id)){
                eTeam = cs_get_user_team(id)
                if (eTeam == CS_TEAM_SPECTATOR || eTeam == CS_TEAM_UNASSIGNED || g_bSpec[id]){

                    // Counter erhцhen
                    g_iAFKTime[id]++

                    // Spec-Kick
                    if (g_iAFKTime[id] >= g_iKickTime - MAX_WARN){
                        func_kick_player(id)
                    }
                }
            }

            // AFK Funktionen fьr lebende Spieler
            if (is_user_alive(id)){

                // Positionen ьberprьfen
                if (g_iAFKCheck == 1){
                    new vOrigin[3]
                    get_user_origin(id, vOrigin)

                    if (g_vOrigin[id][0] != vOrigin[0] || g_vOrigin[id][1] != vOrigin[1]){
                        g_vOrigin[id][0] = vOrigin[0]
                        g_vOrigin[id][1] = vOrigin[1]
                        g_vOrigin[id][2] = vOrigin[2]
                        g_iAFKTime[id] = 0
                        g_iWarn[id] = 0
                    }
                    else{
                        g_iAFKTime[id]++
                    }
                }

                // Letzte Aktivitдt ermitteln
                else{
                    new Float:fLastActivity
                    fLastActivity = cs_get_user_lastactivity(id)

                    if (fLastActivity != g_fLastActivity[id]){
                        g_fLastActivity[id] = fLastActivity
                        g_iAFKTime[id] = 0
                        g_iWarn[id] = 0
                    }
                    else{
                        g_iAFKTime[id] = floatround((get_gametime() - fLastActivity) / FREQ_AFK_CHECK)
                    }
                }

                // Bombentransfer
                if (g_iDropBomb && g_iAFKTime[id] >= 3){
                    if (g_iDropBomb == 1){
                        if (pev(id, pev_weapons) & (1 << CSW_C4)) engclient_cmd(id, "drop", "weapon_c4")
                    }
                    else{
                        func_transfer_bomb(id)
                    }
                }

                // Spec-Switch
                if (g_iAFKTime[id] >= g_iTransferTime - MAX_WARN){
                    func_transfer_player(id)
                }
            }
        }
    }
}

public func_transfer_bomb(id){

    // Abbrechen wenn der Spieler keine Bombe hat
    if (!(pev(id, pev_weapons) & (1 << CSW_C4))) return

    // Ermittle alle lebenden Terroristen
    new iPlayers[32], pNum
    get_players(iPlayers, pNum, "ae", "TERRORIST")

    // Abbrechen falls weniger als 2 Terroristen leben
    if (pNum < 2) return

    // Finde den nдchsten Terroristen der nicht AFK ist
    new vCarrier[3], vRecipient[3], iRecipient, iDistance, iMinDistance = 999999
    get_user_origin(id, vCarrier)
    for (new p = 0; p < pNum; p++){
        if (g_iAFKTime[iPlayers[p]] < 2){
            get_user_origin(iPlayers[p], vRecipient)
            iDistance = get_distance(vCarrier, vRecipient)
            if (iDistance < iMinDistance){
                iMinDistance = iDistance
                iRecipient = iPlayers[p]
            }
        }
    }

    // Abbrechen wenn alle Terroristen AFK sind
    if (!iRecipient) return

    // Bombe transferieren
    engclient_cmd(id, "drop", "weapon_c4")
    new iC4 = engfunc(EngFunc_FindEntityByString, -1, "classname", "weapon_c4")
    if (pev_valid(iC4)){
        new iBackpack = pev(iC4, pev_owner)
        if (iBackpack > g_iMaxPlayers){
            set_pev(iBackpack, pev_flags, pev(iBackpack, pev_flags) | FL_ONGROUND)
            dllfunc(DLLFunc_Touch, iBackpack, iRecipient)
        }
    }

    // Nachrichten anzeigen
    new szRecipient[32], szMsg[128]
    get_user_name(iRecipient, szRecipient, 31)
    set_hudmessage(255, 255, 0, -1.0, 0.8, 0, 3.0, 6.0, 0.1, 0.2, -1)
    for (new p = 0; p < pNum; p++){
        if (iPlayers[p] != iRecipient){
            format(szMsg, 127, "%L", iPlayers[p], "AFK_TRANSFER_BOMB", szRecipient)
            show_hudmessage(iPlayers[p], "%s", szMsg)
        }
    }
    format(szMsg, 127, "%L", iRecipient, "AFK_GOT_BOMB")
    show_hudmessage(iRecipient, szMsg)
}

public func_transfer_player(id){

    // Warnung anzeigen, wenn nicht schon max-mal verwarnt
    if (g_iWarn[id] < MAX_WARN){
        ColorChat(id, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_TRANSFER_WARN", floatround(FREQ_AFK_CHECK) * (MAX_WARN - g_iWarn[id]))
        g_iWarn[id]++
        return
    }

    // Eigentlich sollte die Bombe schon transferiert worden sein
    if (pev(id, pev_weapons) & (1 << CSW_C4)){
        engclient_cmd(id, "drop", "weapon_c4")
    }

    // Spieler tranferieren
    if (is_user_alive(id)) user_silentkill(id)

    // Allow players to choose a team more than one time per round (Thanks ConnorMcLeod)
    // I use this method caused of some issue with deathmatch (Player will be respawned as T or CT)
    set_pdata_int(id, m_iJoiningState, get_pdata_int(id, m_iJoiningState, OFFSET_LINUX) & ~(1<<8), OFFSET_LINUX)
    engclient_cmd(id, "jointeam", "6")
    set_pdata_int(id, m_iJoiningState, get_pdata_int(id, m_iJoiningState, OFFSET_LINUX) & ~(1<<8), OFFSET_LINUX)
    //cs_set_user_team(id, CS_TEAM_SPECTATOR)
    //cs_reset_user_model(id)

    // Positionen zurьcksetzen
    g_vOrigin[id] = {0, 0, 0}

    // Counter zurьcksetzen
    g_iAFKTime[id] = 0
    g_iWarn[id] = 0

    // Nachrichten anzeigen
    new szName[32]
    get_user_name(id, szName, 31)
    ColorChat(0, NORMAL, "[AFK] %L", LANG_PLAYER, "AFK_TRANSFER_PLAYER", szName)
}

public func_kick_player(id){

    // Abbrechen wenn es sich um einen Admin handelt
    if (get_user_flags(id) & KICK_IMMUNITY) return

    // Anzahl der  aktuellen Spieler ermitteln
    new iCurrentPlayers = get_playersnum(1)

    // Sind noch Plдtze frei?
    if (iCurrentPlayers < g_iMinPlayers || !g_iMinPlayers) return

    // Warnung anzeigen, wenn nicht schon max-mal verwarnt
    if (g_iWarn[id] < MAX_WARN){
        ColorChat(id, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_KICK_WARN", floatround(FREQ_AFK_CHECK) * (MAX_WARN - g_iWarn[id]))
        g_iWarn[id]++
        return
    }

    // Spieler kicken
    new szMsg[192]
    format(szMsg, 191, "%L", id, "AFK_KICK_REASON")
    server_cmd("kick #%d ^"%s^"", get_user_userid(id), szMsg)

    // Nachrichten anzeigen
    new szName[32]
    get_user_name(id, szName, 31)
    ColorChat(0, NORMAL,"[AFK] %L", LANG_PLAYER, "AFK_KICK_PLAYER", szName)
}

То, что выдает при компиляторе
Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя r0no^
сообщение 22.12.2016, 1:53
Сообщение #6


Стаж: 14 лет
Город: Vilnius

Сообщений: 359
Благодарностей: 162
Полезность: 626

DimanZM, правильно, не хватает инклуда колорчата, который колобок приложил к сообщению. Компилируйте локально.
Или в исходнике измените #include <colorchat2> на #include <colorchat>, и компилируйте через сайт.

Отредактировал: r0no^, - 22.12.2016, 1:56


Лишь утратив всё до конца, человек обретает свободу!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Dowloand
сообщение 29.12.2016, 19:32
Сообщение #7
Стаж: 9 лет 6 месяцев
Город: Москва

Сообщений: 38
Благодарностей: 6
Полезность: 107

Делай в исходнике самом а не через ланг
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: