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

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

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

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

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Проблема с чатом на сервере

, Пропадают чат и звания
Статус пользователя Ezequiel
сообщение 15.7.2015, 22:34
Сообщение #1


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Доброго времени суток! Ребят помогите решить проблему. Когда кто-то из VIP игроков сервера пишет в чат длинное сообщение на русском языке, то он пропадает у всех игроков, а вместе с ним и отображение званий и рангов. Если на английском, то сервер падает с такой ошибкой:

FATAL ERROR (shutting down): Host_Error: PF_MessageEnd_I: Refusing to send user message StatusIcon of 196 bytes to client, user message size limit is 192 bytes

Когда то же самое проделывает обычный игрок, не имеющий вип статуса на сервере, все в норме, ни падений, ни ошибок.

Выходит ошибка в плагине:
[ 20] Vip weapon V2 2.0 7eVen VIP.amxx running
Cкрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta_util>

const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)
|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90)

#define VIP_FLAG ADMIN_LEVEL_H
new round_number
new bool:has_used[33]
new pistols[6] = {CSW_P228, CSW_ELITE, CSW_FIVESEVEN, CSW_GALIL, CSW_USP, CSW_GLOCK18};
static const COLOR[] = "^x04" //green
static const CONTACT[] = ""
new maxplayers
new gmsgSayText

public plugin_init()
{
    register_plugin("Vip weapon V2", "2.0", "7eVen");
    register_event("ResetHUD", "ResetHUD", "be");
    register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
    register_logevent("LogEventRestartGame", 2, "1=Game_Commencing", "1&Restart_Round_")
    register_logevent("event_new_round", 2, "1=Round_Start")
    register_clcmd("say /adminka", "adminka");
    register_clcmd("say /vipka","ShowMotd");
    register_clcmd("vipmenu", "function_menu");
    maxplayers = get_maxplayers()
    gmsgSayText = get_user_msgid("SayText")
    register_clcmd("say", "handle_say")
    register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
}

public handle_say(id) {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
        set_task(0.1,"print_adminlist",id)
    return PLUGIN_CONTINUE
}
                                  
public event_round_start ( )
{
    round_number++            
}
    
public LogEventRestartGame()    
{
    round_number = 0;
    }
    
public print_adminlist(user)
{
    new adminnames[33][32]
    new message[256]
    new contactinfo[256], contact[112]
    new id, count, x, len          
    
    for(id = 1; id <= maxplayers; id++)
        if(is_user_connected(id))
            if(get_user_flags(id) & ADMIN_LEVEL_H)
                get_user_name(id, adminnames[count++], 31)

    len = format(message, 255, "%s Випы онлайн ",COLOR)
    if(count > 0) {
        for(x = 0; x < count; x++) {
            len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"")
            if(len > 96 ) {
                print_message(user, message)
                len = format(message, 255, "%s ",COLOR)
            }
        }
        print_message(user, message)
    }
    else {
        len += format(message[len], 255-len, "Випов нету онлайн.")
        print_message(user, message)
    }
    
    get_cvar_string("amx_contactinfo", contact, 63)
    if(contact[0])  {
        format(contactinfo, 111, "%s Контакт администратора -- %s", COLOR, contact)
        print_message(user, contactinfo)
    }
}

print_message(id, msg[]) {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
}

public function_menu(id)
{
    if ( ! ( get_user_flags ( id ) & VIP_FLAG )  )  
    {
    ChatColor ( id , "!g[V.I.P]!team  Только для !g[V.I.P] " );
    return PLUGIN_HANDLED;
    }    
    
    new menu = menu_create("\w[\y V.I.P \w] \r Меню", "menu_handler")


    menu_additem(menu, "\yОружейка\r","1")
    menu_additem(menu, "\yДругое\r", "2")

    menu_setprop(menu, MPROP_EXITNAME, "\yВыход")
    menu_setprop(menu, MPROP_EXIT,MEXIT_ALL)
        
    menu_display(id,menu,0)
    return PLUGIN_HANDLED    
}

public vintov1(id)
{
    new mMENU4 = menu_create("\w[\y V.I.P \w] \r Оружейка", "menu_5")

    menu_additem(mMENU4, "\wВзять \r[\y Famas \r]\r","1")
    menu_additem(mMENU4, "\wВзять \r[\y Krieg SG552 \r]\r", "2")
    menu_additem(mMENU4, "\wВзять \r[\y AK47 \r]\r", "3")
    menu_additem(mMENU4, "\wВзять \r[\y M4A1 \r]\r","4")
    menu_additem(mMENU4, "\wВзять \r[\y Bullpup \r]\r","5")
    menu_additem(mMENU4, "\wВзять \r[\y Scout \r]\r","6")
    menu_additem(mMENU4, "\wВзять \r[\y AWP \r]\r", "7")
    menu_additem(mMENU4, "\wВзять \r[\y Galil \r]\r", "8")
    menu_additem(mMENU4, "\wВзять \r[\y CT Auto Sniper \r]\r", "9")
    menu_additem(mMENU4, "\wВзять \r[\y T Auto Sniper \r]\r", "10")
    menu_setprop(mMENU4, MPROP_NEXTNAME, "\yДальше")
    menu_setprop(mMENU4, MPROP_BACKNAME, "\yНазад")
    menu_setprop(mMENU4, MPROP_EXITNAME, "Выход")
    menu_setprop(mMENU4, MPROP_EXIT,MEXIT_ALL)
        
    menu_display(id,mMENU4,0)
    return PLUGIN_HANDLED    
}

public drygoe1(id)
{
    new mMENU5 = menu_create("\w[\y V.I.P \w] \r Другое", "menu_6")
    
    menu_additem(mMENU5, "\wВзять \r[\y M249 \r]\r","1")
    menu_additem(mMENU5, "\wВзять рандомно \r[\y $1-16000 \r]\r", "2")
    
    menu_setprop(mMENU5, MPROP_EXITNAME, "\yВыход")
    menu_setprop(mMENU5, MPROP_EXIT,MEXIT_ALL)
        
    menu_display(id,mMENU5,0)
    return PLUGIN_HANDLED    
}

public menu_handler(id, menu, item)
{
    if(item == MENU_EXIT)
    {
    menu_destroy(menu)
    return PLUGIN_HANDLED
    }
        
    new data[6], iName[64], access, callback
    menu_item_getinfo(menu, item, access, data, 5, iName, 63, callback)
        
    new key = str_to_num(data)
        
    switch(key)
    {
    case 1:
    {
    vintov1(id)
    }
    case 2:
    {
    drygoe1(id)
    }
    }
    return PLUGIN_HANDLED
}

public menu_5(id, mMENU4, item)
{
    if(is_user_alive(id)&& !has_used[id] )
    {    
    if ( round_number <= 1 )
    {
    ChatColor ( id , "!g[V.I.P]!team  Доступно со 2  раунда!" );
    return PLUGIN_HANDLED;
    }
    if(item == MENU_EXIT)
    {
        menu_destroy(mMENU4)
        return PLUGIN_HANDLED;
    }
        
    new data[6], iName[64], access, callback
    menu_item_getinfo(mMENU4, item, access, data, 5, iName, 63, callback)
        
    new key = str_to_num(data)
        
    switch(key)
    {
    case 1:
    {
    drop_weapons(id, 1)
    give_item(id, "weapon_famas" )
    cs_set_user_bpammo( id , CSW_FAMAS, 90 )    
    }
    case 2:
    {
    drop_weapons(id, 1)
    give_item(id, "weapon_sg552" )
    cs_set_user_bpammo( id , CSW_SG552, 90 )
    }
    case 3:
    {
    drop_weapons(id, 1)
    give_item(id, "weapon_ak47" )
    cs_set_user_bpammo( id , CSW_AK47, 90 )
    }
    case 4:
    {
    drop_weapons(id, 1)
    give_item(id, "weapon_m4a1" )
    cs_set_user_bpammo( id , CSW_M4A1, 90 )
    }
    case 5:
    {  
    drop_weapons(id, 1)
    give_item(id, "weapon_aug" )
    cs_set_user_bpammo( id , CSW_AUG, 90 )
    }
    case 6:
    {  
    drop_weapons(id, 1)
    give_item(id, "weapon_scout" )
    cs_set_user_bpammo( id , CSW_SCOUT, 90 )
    }
    case 7:
    {    
    if ( round_number <= 2 )
    {
    ChatColor ( id , "!g[V.I.P]!team  Доступно со 3  раунда!" );
    return PLUGIN_HANDLED;
    }
    drop_weapons(id, 1)
    give_item(id, "weapon_awp" )
    cs_set_user_bpammo( id , CSW_AWP, 30 )
    }
    case 8:
    {  
    drop_weapons(id, 1)
    give_item(id, "weapon_galil" )
    cs_set_user_bpammo( id , CSW_GALIL, 100 )
    }
    case 9:
    {
    if ( round_number <= 2 )
    {
    ChatColor ( id , "!g[V.I.P]!team  Доступно со 3  раунда!" );
    return PLUGIN_HANDLED;
    }    
    drop_weapons(id, 1)
    give_item(id, "weapon_g3sg1" )
    cs_set_user_bpammo( id , CSW_G3SG1, 90 )
    }
    case 10:
    {
    if ( round_number <= 2 )
    {
    ChatColor ( id , "!g[V.I.P]!team  Доступно со 3  раунда!" );
    return PLUGIN_HANDLED;
    }                    
    drop_weapons(id, 1)
    give_item(id, "weapon_sg550" )
    cs_set_user_bpammo( id , CSW_SG550, 90 )
    }
    }
    has_used[id] = true;
    }
    else
    {
    ChatColor(id, "!g[V.I.P]!team  Вы уже использовали.Подождите...");
    return PLUGIN_HANDLED;  
    }
    return PLUGIN_HANDLED;
}
public menu_6(id, mMENU5, item)
{
    if(is_user_alive(id)&& !has_used[id] )
    {    
    if ( round_number <= 3 )
    {
    ChatColor ( id , "!g[V.I.P]!team  Доступно со 4  раунда!" );
    return PLUGIN_HANDLED;
    }
    if(item == MENU_EXIT)
    {
    menu_destroy(mMENU5)
    return PLUGIN_HANDLED
    }
        
    new data[6], iName[64], access, callback
    menu_item_getinfo(mMENU5, item, access, data, 5, iName, 63, callback)
        
    new key = str_to_num(data)
        
    switch(key)
    {
    case 1:
    {    
    drop_weapons(id, 1)
    give_item(id, "weapon_m249" )
    cs_set_user_bpammo( id , CSW_M249, 200 )
    }
    case 2:
    {
    loter(id)
    }
    }
    has_used[id] = true;
    }
    else
    {
    ChatColor(id, "!g[V.I.P]!team  Вы уже использовали.Подождите...");
    return PLUGIN_HANDLED;  
    }
    return PLUGIN_HANDLED;
}

public adminka(id)
{
show_motd(id, "adminka.txt")
}
public client_authorized(id)
{
client_cmd(id, "bind ^"-^" ^"vipmenu^"")
}
public ResetHUD(id)
{
    set_task(0.5, "VIP", id + 6910)
}
public VIP(TaskID)
{
   new id = TaskID - 6910
  
   if (get_user_flags(id) & VIP_FLAG)
   {
        for (new i = 0; i < 6; i++)
    {
        if (fm_strip_user_gun(id, pistols[i]))
        {
            break;
        }
    message_begin(MSG_ALL, get_user_msgid("ScoreAttrib"))
    write_byte(id)
    write_byte(4)
    message_end()    
    give_item( id,"weapon_hegrenade" )
    give_item( id, "weapon_flashbang" );
    give_item( id, "weapon_flashbang" );
    give_item( id, "weapon_smokegrenade" );
    give_item( id, "item_assaultsuit" );
    give_item( id, "item_thighpack" );
    give_item( id, "weapon_deagle")
        
    give_item( id, "ammo_50ae" )
    give_item( id, "ammo_50ae" )
    give_item( id, "ammo_50ae" )
    give_item( id, "ammo_50ae" )
    give_item( id, "ammo_50ae" )
  }
   }
  
   return PLUGIN_HANDLED
}

public ShowMotd(id)
{
show_motd(id, "vip.txt")
}
public event_new_round()
{
    arrayset(has_used, false, 33)
}    
public loter(id)
{
    new shans;
    shans = random_num(1, 16000);
    cs_set_user_money(id, cs_get_user_money(id) + shans);
    ChatColor(id,"!g[V.I.P]!team Вы Выйграли !g %d$ !!!", shans);
    return PLUGIN_HANDLED
}

stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[191]
    vformat(msg, 190, input, 3)
    
    replace_all(msg, 190, "!g", "^4") // Green Color
    replace_all(msg, 190, "!y", "^1") // Default Color
    replace_all(msg, 190, "!team", "^3") // Team Color
    replace_all(msg, 190, "!team2", "^0") // Team2 Color
    
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i]);
                write_string(msg);
                message_end();
            }
        }
    }
}

stock drop_weapons(id, dropwhat)
{
   static weapons[32], num, i, weaponid
   num = 0
   get_user_weapons(id, weapons, num)

   for (i = 0; i < num; i++)
   {
      weaponid = weapons[i]

      if (dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM))
      {
         static wname[32]
         get_weaponname(weaponid, wname, sizeof wname - 1)
         engclient_cmd(id, "drop", wname)
      }
   }
}


Отредактировал: Ezequiel, - 15.7.2015, 23:47
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Pulse
сообщение 16.7.2015, 3:43
Сообщение #2


Стаж: 10 лет

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

лог и список плагинов в студию, и если помните то напишите после какого плагина это началось.

Отредактировал: Pulse, - 16.7.2015, 3:43
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 7entol
сообщение 16.7.2015, 6:35
Сообщение #3


Стаж: 12 лет

Сообщений: 143
Благодарностей: 66
Полезность: 214

Можно свангую ? blush.gif
Стоит Лайт Транслит от неугомона?
Если да то просто обнови его ok.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
voed
сообщение 16.7.2015, 6:47
Сообщение #4
Стаж: 11 лет

Сообщений: 2593
Благодарностей: 1760
Полезность: 405

Цитата
Выходит ошибка в плагине:
[ 20] Vip weapon V2 2.0 7eVen VIP.amxx running

В плагине много чего надо исправлять. Советую отключить его
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BaJIepbI4
сообщение 16.7.2015, 8:29
Сообщение #5


Стаж: 11 лет

Сообщений: 457
Благодарностей: 115
Полезность: 456

Слишком длинное сообщение. Попробуй так:
код
Код:

public handle_say(id) {
new said[188]
read_args(said,188)
if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
set_task(0.1,"print_adminlist",id)
return PLUGIN_CONTINUE
}



Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 8:34
Сообщение #6


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Pulse, началось неделю назад примерно, все плагины которые ставил в этот период отключал, проблема осталась. Отключил Vip weapon V2, проблема пропала.
Plugins
Currently loaded plugins:
name version author file status
[ 1] opengl detector 0.8.16ob kanagava opengl32.amxx running
[ 2] DopBan 2.7b kanagava dop_ban.amxx running
[ 3] Admin Base 1.8.1.3746 AMXX Dev Team admin.amxx running
[ 4] FreshBan 0.9.8b kanagava fresh_bans.amxx running
[ 5] AIM detector 0.7.5d kanagava aim_detector.am running
[ 6] Aliases checker 0.8.2 kanagava alias_detector0 running
[ 7] Lite Rank System 1.6b xoymiii Lite_Rank_Syste debug
[ 8] Advert Messages 1.2 neygomon adverts.amxx running
[ 9] Anti Flood 1.8.2 AMXX Dev Team antiflood.amxx running
[ 10] Admin Commands 1.8.1.3746 AMXX Dev Team admincmd.amxx running
[ 11] Slots Reservation 1.8.1.3746 AMXX Dev Team adminslots.amxx running
[ 12] Admin Votes 1.8.1.3746 AMXX Dev Team adminvote.amxx running
[ 13] Admin Chat 1.8.2 AMXX Dev Team adminchat.amxx running
[ 14] Commands Menu 1.8.1.3746 AMXX Dev Team cmdmenu.amxx running
[ 15] Maps Menu 1.8.1.3746 AMXX Dev Team mapsmenu.amxx running
[ 16] Menus Front-End 1.8.1.3746 AMXX Dev Team menufront.amxx running
[ 17] Players Menu 1.8.1.3746 AMXX Dev Team plmenu.amxx running
[ 18] Restrict Weapons 1.8.1.3746 AMXX Dev Team restmenu.amxx running
[ 19] Stats Configuration 1.8.1.3746 AMXX Dev Team statscfg.amxx running
[ 20] StatsX 1.8.1.3746 AMXX Dev Team statsx.amxx running
[ 21] TimeLeft 1.8.1.3746 AMXX Dev Team timeleft.amxx running
[ 22] Afk Control 0.4 Stable Freedo.m | neygo afk_control.amx running
[ 23] Ping Control 0.3 Freedo.m | neygo Ping_Control.am running
[ 24] Vip weapon V2 2.0 7eVen vip_weapon.amxx running
[ 25] Instant AutoTeamBalanc 1.2.0 ConnorMcLeod instant_autotea running
[ 26] Parachute 1.0 maeStro parachute.amxx running
[ 27] Steam Bonus 1.2 Stimul steam_bonus.amx running
[ 28] Map Spawns Editor 1.0.16 iG_os Map_Spawns_Edit running
[ 29] AutoRestart 1.0 neygomon auto_rr.amxx running
[ 30] Reset Score 1.0 Silenttt resetscore.amxx running
[ 31] SS Menu 1.0 lalka screnmenu.amxx running
[ 32] Lite AwpLimit 1.07 neygomon awp.amxx running
[ 33] mute menu 1.0 cheap_suit mutemenu.amxx running
[ 34] Block Name Spam 0.1 s1lent block_change_ni running
34 plugins, 34 running

7entol, Lite Translit отсутствует.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 16.7.2015, 8:35
Сообщение #7


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Ezequiel, он вроде подменяет чат
Код
[ 7] Lite Rank System 1.6b xoymiii Lite_Rank_Syste debug
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 8:42
Сообщение #8


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Цитата(Villlenka @ 16.7.2015, 8:24) *
Слишком длинное сообщение. Попробуй так:
код
Код:

public handle_say(id) {
new said[188]
read_args(said,188)
if( ( containi(said, "who") != -1 && containi(said, "admin") != -1 ) || contain(said, "/vips") != -1 )
set_task(0.1,"print_adminlist",id)
return PLUGIN_CONTINUE
}

Не помогло(((

Цитата(Bloo @ 16.7.2015, 8:31) *
Ezequiel, он вроде подменяет чат
Код
[ 7] Lite Rank System 1.6b xoymiii Lite_Rank_Syste debug

Дебаг прописал и вышла эта ошибка:

L 07/15/2015 - 21:06:47: Start of error session.
L 07/15/2015 - 21:06:47: Info (map "de_dust_castle") (file "addons/amxmodx/logs/error_20150715.log")
L 07/15/2015 - 21:06:47: Plugin called message_begin with an invalid message id (-84).
L 07/15/2015 - 21:06:47: [AMXX] Displaying debug trace (plugin "Lite_Rank_System.amxx")
L 07/15/2015 - 21:06:47: [AMXX] Run time error 10: native error (native "message_begin")
L 07/15/2015 - 21:06:47: [AMXX] [0] c43aa05ea3f1b2796c585dc199075f54.sma::send_message (line 351)
L 07/15/2015 - 21:06:47: [AMXX] [1] c43aa05ea3f1b2796c585dc199075f54.sma::Chat (line 342)
L 07/15/2015 - 21:06:47: [AMXX] [2] c43aa05ea3f1b2796c585dc199075f54.sma::hookSay (line 185)

Отредактировал: Ezequiel, - 16.7.2015, 8:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 16.7.2015, 8:45
Сообщение #9


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Ezequiel, исходник прикрепи там размер массива вроде только поправить нужно
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 8:52
Сообщение #10


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Цитата(Bloo @ 16.7.2015, 9:41) *
Ezequiel, исходник прикрепи там размер массива вроде только поправить нужно

Cкрытый текст
Код
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <csstats>
#include <fakemeta>
#include <fun>
#include <hamsandwich>

new g_AdminGMsg, g_Prefix, g_NoSlesh, g_AllChat

#define MAX_PLAYERS 32
new g_oldrank[MAX_PLAYERS+1]

static gMessage[192]
new gSayText

#define PLUGIN "Lite Rank System"
#define VERSION "1.6b"
#define AUTHOR "xoymiii"

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

new MaxPlayers
new PlayerXP[33], PlayerLevel[33], g_MsgHud, levelUp[33]
new g_XPvalue, g_XPheadshot, g_Bomb, g_XPc4def, g_XPc4pl, g_MinPlayers
new g_Levels
new bonus, g_Smoke, g_Flash, g_He, g_Armor, g_Bonus_Smoke, g_Bonus_Flash, g_Bonus_Flash2, g_Bonus_He, g_Bonus_Armor, g_Money, g_Bonus_Money, g_Lvl_Money, g_Block_Map

new Array:g_array_block_bonus
new bool:bonus_blocked

new LEVELS[31]
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", "I_22", "I_23", "I_24", "I_25", "I_26", "I_27", "I_28", "I_29", "I_30" }

public plugin_init() {
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_dictionary("Lite_Rank_System.txt" )
    
    register_event("DeathMsg", "EventDeath", "a", "1>0")
    RegisterHam(Ham_Spawn, "player", "player_respawn", 1)

    set_task(1.0, "Info", TASKID_INFO, "", 0, "b")
    g_MsgHud = CreateHudSyncObj()
    
    g_array_block_bonus = ArrayCreate(32, 1)
    
    g_Prefix = register_cvar("lrs_prefix","1")
    g_AdminGMsg    = register_cvar("lrs_adminchat", "1")
    g_NoSlesh = register_cvar("lrs_noslesh","1")    
    g_AllChat = register_cvar("lrs_chat","1")
    
    g_XPvalue = register_cvar("lrs_xp_value", "1")
    g_Bomb = register_cvar("lrs_bomb", "1")
    g_MinPlayers = register_cvar("lrs_min_players", "3")
    g_XPc4def = register_cvar("lrs_xp_c4def", "3")
    g_XPc4pl = register_cvar("lrs_xp_c4pl", "3")
    g_XPheadshot = register_cvar("lrs_xp_hs", "1")
    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 3000 3500 4000 4500 5000 5500 6000 6500 7000")
    bonus = register_cvar("lrs_bonus", "1")
    g_Block_Map = register_cvar("lrs_block_map", "1")
    g_Smoke = register_cvar("lrs_smoke", "1")
    g_Flash = register_cvar("lrs_flash", "1")
    g_He = register_cvar("lrs_he", "1")
    g_Armor = register_cvar("lrs_armor", "1")
    g_Money = register_cvar("lrs_money", "1")
    g_Bonus_Smoke = register_cvar("lrs_b_smoke", "10")
    g_Bonus_Flash = register_cvar("lrs_b_flash", "15")
    g_Bonus_Flash2 = register_cvar("lrs_b_flash2", "17")
    g_Bonus_He = register_cvar("lrs_b_he", "20")
    g_Bonus_Armor = register_cvar("lrs_b_armor", "22")
    g_Lvl_Money = register_cvar("lrs_lvl_money", "25")
    g_Bonus_Money = register_cvar("lrs_b_money", "1000")
    register_concmd("lrs_lockmap", "MapConst", ADMIN_RCON, "Lock Map. <map>")

    gSayText = get_user_msgid ("SayText")
    register_clcmd("say", "hookSay")
    register_clcmd("say_team", "hookSayTeam")
        
    new configsDir[64]
    get_configsdir(configsDir, 63)
    server_cmd("exec %s/Lite_Rank_System.cfg", configsDir)

    MaxPlayers = get_maxplayers()

    set_task(0.5, "BlockMapBonus")
    set_task(0.5, "LoadSettings")
}

public BlockMapBonus()
{
    if(get_pcvar_num(g_Block_Map))
    {
        new Map[32]
        get_mapname(Map, 31)
        for(new i = 0; i < ArraySize(g_array_block_bonus); i++)
        {
            new block_bonus[32]
            ArrayGetString(g_array_block_bonus, i, block_bonus, 31)
            
            if(equal(Map, block_bonus))
            {
                bonus_blocked = true
                break
            }
            else
                bonus_blocked = false
        }
    }
}

public MapConst(id, level, cid)
{
    if(!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED
        
    new arg[32]
    read_argv(1, arg, 31)
    ArrayPushString(g_array_block_bonus, arg)
    
    return PLUGIN_HANDLED
}
    
public LoadSettings() {
    new i
    new cvLevels[256], LVL[31][16]
    get_pcvar_string(g_Levels, cvLevels, 255)
    trim(cvLevels)
    parse(cvLevels,
        LVL[0], 15, LVL[1], 15, LVL[2], 15, LVL[3], 15, LVL[4], 15, LVL[5], 15, LVL[6], 15, LVL[7], 15, LVL[8], 15, LVL[9], 15,
        LVL[10], 15, LVL[11], 15, LVL[12], 15, LVL[13], 15, LVL[14], 15, LVL[15], 15, LVL[16], 15, LVL[17], 15, LVL[18], 15, LVL[19], 15,
        LVL[20], 15, LVL[21], 15, LVL[22], 15, LVL[23], 15, LVL[24], 15, LVL[25], 15, LVL[26], 15, LVL[27], 15, LVL[28], 15, LVL[29], 15, LVL[30], 15
    )
    for (i = 0; i < 30; i++)
        LEVELS[i+1] = str_to_num(LVL[i])

    return PLUGIN_HANDLED
}

public hookSay(id)
{
    if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
        return PLUGIN_CONTINUE

    new message[192],Len
    read_args(message, 191)
    remove_quotes(message)
    if(is_admin_msg(message))
        return PLUGIN_CONTINUE
    
    if(is_empty_message(message))
    {
        ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
        return PLUGIN_HANDLED
    }
    if(get_pcvar_num(g_NoSlesh))
    {
        if(is_has_slash(message))
            return PLUGIN_HANDLED_MAIN
    }
    new szName[32]
    get_user_name(id,szName,31)
    if(get_user_flags(id) & ADMIN_PREFIX)
    {
        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^3%L^1] ", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]])
        switch(get_pcvar_num(g_AdminGMsg))
        {
            case 1:
            {
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
            }
            case 2:
            {
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
            }
            default:
            {
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
            }
        }
        Chat(id,0,get_pcvar_num(g_AllChat))
    }
    else    if(get_user_flags(id) & VIP_PREFIX)
    {
        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^4%L^1] [^3%L^1] ", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
        Chat(id,0,get_pcvar_num(g_AllChat))
    }
    else
    {
        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1[^3%L^1] ", LANG_PLAYER, CLASSES[PlayerLevel[id]])
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
        Chat(id,0,get_pcvar_num(g_AllChat))
    }
    return PLUGIN_HANDLED_MAIN
}

public hookSayTeam(id)
{
    if(is_user_hltv(id) || is_user_bot(id) || !is_user_connected(id) || !get_pcvar_num(g_Prefix))
        return PLUGIN_CONTINUE

    new message[192],Len
    read_args(message, 191)
    remove_quotes(message)
    if(is_admin_msg(message))
        return PLUGIN_CONTINUE
        
    if(is_empty_message(message))
    {
        ChatColor(id, "^1[^4%L^1] %L",LANG_PLAYER,"LRS_TAG", LANG_PLAYER,"EMPTY_MSG")
        return PLUGIN_HANDLED
    }
    if(get_pcvar_num(g_NoSlesh))
    {
        if(is_has_slash(message))
            return PLUGIN_HANDLED_MAIN
    }
    new szName[32]
    get_user_name(id,szName,31)
    if(get_user_flags(id) & ADMIN_PREFIX)
    {
        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^3%L^1] ^3%s^1 : ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "ADMIN", LANG_PLAYER, CLASSES[PlayerLevel[id]],szName)        
        switch(get_pcvar_num(g_AdminGMsg))
        {
            case 1:
            {
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^4%s",message)
            }
            case 2:
            {
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s",message)
            }
            default:
            {
                Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
            }
        }
        Chat(id,1,get_pcvar_num(g_AllChat))
    }
    else if(get_user_flags(id) & VIP_PREFIX)
    {
        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L [^4%L] ^1[^3%L^1] ", LANG_PLAYER, "SEND_TEAM", LANG_PLAYER, "VIP", LANG_PLAYER, CLASSES[PlayerLevel[id]])
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
        Chat(id,1,get_pcvar_num(g_AllChat))
    }
    else
    {
        Len = format(gMessage[Len], charsmax(gMessage) - 1, "^1%L ^1[^3%L^1] ",LANG_PLAYER,"SEND_TEAM",LANG_PLAYER, CLASSES[PlayerLevel[id]])
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "^3%s^1 : ",szName)
        Len += format(gMessage[Len], charsmax(gMessage) - 1, "%s",message)
        Chat(id,1,get_pcvar_num(g_AllChat))
    }
    return PLUGIN_HANDLED_MAIN
}

stock is_admin_msg(const Message[])
{
    if(Message[0] == '@')
        return true
        
    return false
}

stock is_empty_message(const Message[])
{
    if(equal(Message, "") || !strlen(Message))
        return true
        
    return false
}

stock Chat(id,team,chat_type)
{
    if(team)
    {
        if(chat_type)
        {
            for(new i = 0; i <= MaxPlayers; i++)
            {
                if(!is_user_connected(i))
                    continue
            
                if(get_user_team(id) == get_user_team(i))
                    send_message(gMessage, id, i)
            }
        } else {
            if(is_user_alive(id))
            {
                for(new i = 0; i <= MaxPlayers; i++)
                {
                    if(!is_user_connected(i) || !is_user_alive(i))
                        continue
                
                    if(get_user_team(id) == get_user_team(i))
                        send_message(gMessage, id, i)
                }
            } else if(!is_user_alive(id)){
                for(new i = 0; i <= MaxPlayers; i++)
                {
                    if(!is_user_connected(i) || is_user_alive(i))
                        continue
                
                    if(get_user_team(id) == get_user_team(i))
                        send_message(gMessage, id, i)
                }
            }
        }
    } else{
        if(chat_type)
        {
            for(new i = 0; i <= MaxPlayers; i++)
            {
                if(!is_user_connected(i))
                    continue
            
                send_message(gMessage, id, i)
            }
        } else {
            if(is_user_alive(id))
            {
                for(new i = 0; i <= MaxPlayers; i++)
                {
                    if(!is_user_connected(i) || !is_user_alive(i))
                        continue
                
                    send_message(gMessage, id, i)
                }
            } else if(!is_user_alive(id)){
                for(new i = 0; i <= MaxPlayers; i++)
                {
                    if(!is_user_connected(i) || is_user_alive(i))
                        continue
                
                    send_message(gMessage, id, i)
                }
            }
        }
    }
}

stock send_message(const message[], const id, const i)
{
    message_begin(MSG_ONE, gSayText, {0, 0, 0}, i)
    write_byte(id)
    write_string(message)
    message_end()
}

stock is_has_slash(const Message[])
{
    if(Message[0] == '/')
        return true
        
    return false
}

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

public EventDeath()
{
    new iVictim = read_data(2)
    new iTeam = get_user_team(iVictim)
    new iKiller = read_data(1)
    new headshot = read_data(3)
    
    if(iKiller != iVictim && get_user_team(iKiller) != iTeam && is_user_connected(iKiller) && PlayerLevel[iKiller] < 30)
    {
        if (get_pcvar_num(g_XPheadshot))
        {
            if(headshot)
                PlayerXP[iKiller] += get_pcvar_num(g_XPvalue) * 2
            else
                PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)
        }
        else
            PlayerXP[iKiller] += get_pcvar_num(g_XPvalue)

        checkLvl(iKiller)
    }                                
    return PLUGIN_CONTINUE
}

public player_respawn()
{
   if(!get_pcvar_num(bonus) || bonus_blocked)
      return
    
   for(new id = 0; id <= MaxPlayers; id++)
   {
       if(is_user_alive(id) && is_user_connected(id))
       {
           if(get_pcvar_num(g_Smoke) && PlayerLevel[id]+1 > get_pcvar_num(g_Bonus_Smoke))
              give_item(id,"weapon_smokegrenade")
              
           if(get_pcvar_num(g_Flash) && PlayerLevel[id]+1 > get_pcvar_num(g_Bonus_Flash))
              give_item(id,"weapon_flashbang")
              
           if(get_pcvar_num(g_Flash) && PlayerLevel[id]+1 > get_pcvar_num(g_Bonus_Flash2))
              give_item(id,"weapon_flashbang")
              
           if(get_pcvar_num(g_He) && PlayerLevel[id]+1 > get_pcvar_num(g_Bonus_He))
              give_item(id,"weapon_hegrenade")
              
           if(get_pcvar_num(g_Armor) && PlayerLevel[id]+1 > get_pcvar_num(g_Bonus_Armor))
              cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM)
              
           if(get_pcvar_num(g_Money) && PlayerLevel[id]+1 > get_pcvar_num(g_Lvl_Money))
           {
              if(cs_get_user_money(id) < 8000)
              {
                 cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(g_Bonus_Money))
                 ChatColor(id, "%L %L", LANG_PLAYER, "LRS_TAG", LANG_PLAYER, "BONUS_MONEY", get_pcvar_num(g_Bonus_Money))
              }
           }
        }    
    }
}
    
public bomb_explode(id)
{
   if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 1 || get_pcvar_num(g_XPc4pl) < 1 || get_pcvar_num(g_Bomb) != 1)
        return

   if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
   {  
         ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
   } else {
         PlayerXP[id] += get_pcvar_num(g_XPc4pl)
   }
}

public bomb_defused(id)
{
   if(!is_user_connected(id) || !is_user_alive(id) || get_user_team(id) != 2 || get_pcvar_num(g_XPc4def) < 1 || get_pcvar_num(g_Bomb) != 1)
        return

   if(get_playersnum() <= get_pcvar_num(g_MinPlayers))
   {  
         ChatColor(id, "%L", LANG_PLAYER,"MIN_PLAYERS")
   } else {
         PlayerXP[id] += get_pcvar_num(g_XPc4def)
   }
}

public Info() {
    for(new id = 1; id <= MaxPlayers; id++) {
        if(!is_user_bot(id) && is_user_connected(id)) {
            static buffer[192], len
                        
                        new osef[8]
                        g_oldrank[id] = get_user_stats(id, osef, osef)
                        new maxrank = get_statsnum()
  
            if(!is_user_alive(id)) {
                new id2 = pev(id, pev_iuser2)
                if(id2 > 0) {
                    new Name2[32]
                    get_user_name(id2, Name2, 31)
                    if(PlayerLevel[id2] < 30) {
                        len = format(buffer, charsmax(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(buffer, charsmax(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] < 30) {
                        len = format(buffer, charsmax(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(buffer, charsmax(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] < 30) && (is_user_alive(id))) {
                    len = format(buffer, charsmax(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(buffer, charsmax(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(255, 255, 255, 0.01, 0.19, 0, 0.0, 1.0, _, _, -1)
            ShowSyncHudMsg(id, g_MsgHud, "%s", buffer)
        }
    }
    return PLUGIN_CONTINUE
}

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(id, stats, bodyhits)

    if (get_pcvar_num(g_XPc4def))
        get_user_stats2(id, stats2)
    
    if (get_pcvar_num(g_XPheadshot))
        PlayerXP[id] = ((stats[2]*2 + (stats[0] - stats[2])) + (stats2[1]*3 + stats2[3]*3)) * get_pcvar_num(g_XPvalue)
    else
        PlayerXP[id] = (stats2[1]*3 + stats2[3]*3 + stats[0]) * get_pcvar_num(g_XPvalue)

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

/*public plugin_natives()
    register_native("get_user_lvl", "native_get_user_lvl", 1)

public native_get_user_lvl(id)
    return PlayerLevel[id]
*/    
stock ChatColor(const id, const input[], any:...)
{
    new count = 1, players[32]
    static msg[192]
    vformat(msg, 191, input, 3)
  
    replace_all(msg, 191, "!g", "^4") // Green Color
    replace_all(msg, 191, "!y", "^1") // Default Color
    replace_all(msg, 191, "!t", "^3") // Team Color
  
    if (id) players[0] = id; else get_players(players, count, "ch")
    {
        for (new i = 0; i < count; i++)
        {
            if (is_user_connected(players[i]))
            {
                message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                write_byte(players[i])
                write_string(msg)
                message_end()
            }
        }
    }
}

Прикрепленный файл  Lite_Rank_System.sma ( 18,47 килобайт ) Кол-во скачиваний: 2


Отредактировал: Ezequiel, - 16.7.2015, 8:54
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 16.7.2015, 8:59
Сообщение #11


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Ezequiel, по идеи все должно быть нормально, на всякий случай
Код
static gMessage[192]
>>>
static gMessage[191]

Я что то сразу внимание не обратил на текст ошибки, это вроде не чат
Цитата
Refusing to send user message StatusIcon
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 9:22
Сообщение #12


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Ezequiel, по идеи все должно быть нормально, на всякий случай
Код
static gMessage[192]
>>>
static gMessage[191]

Теперь сервер не падает, но пропадают звания перед ником в чате и сам русский чат. Английский чат видно у игроков.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 16.7.2015, 9:25
Сообщение #13


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Ezequiel, значит там нужно как то по другому обрезать сам message.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 9:32
Сообщение #14


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Bloo, значит проблема не в Vip weapon, а в Lite rank system?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 16.7.2015, 9:35
Сообщение #15


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Ezequiel, да
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 10:00
Сообщение #16


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Установил вот этот плагин: Army System (EA) 2.2.1
та же проблема, сервер падает при написании длинного сообщения в чат dntknw.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 16.7.2015, 10:06
Сообщение #17


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

Ezequiel, убери и тот и тот и проверь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Ezequiel
сообщение 16.7.2015, 10:19
Сообщение #18


Стаж: 11 лет
Город: Уфа

Сообщений: 290
Благодарностей: 72
Полезность: 185

Цитата(Bloo @ 16.7.2015, 11:01) *
Ezequiel, убери и тот и тот и проверь.

В общем проблему решил, сменив VIP систему. Поставил IDEAL vip вместо VIP Weapon и проблема пропала. Спасибо всем за помощь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: