Colour Chat Menu |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
Colour Chat Menu |
sas333 |
9.9.2017, 23:59
Сообщение
|
|
Подскажите какое значение нужно увеличить в плагине чтобы название в чате и в самом меню помещалось полностью. Как видно на скриншоте оно не всё влазит.
Cкрытый текст #pragma semicolon 1 #include <amxmodx> #define MAX_COLOURS 30 new const colourfile[] = "addons/amxmodx/configs/colours.ini"; new g_iMenuPage[33]; new g_szColourName[MAX_COLOURS][16]; new g_ColourSettings[MAX_COLOURS][3]; new g_MaxColours; public plugin_init() { register_plugin("Chat Colour Menu", "1.0", "shadow.hk"); register_clcmd("say /colour", "ColourMenu"); register_clcmd("say colour", "ColourMenu"); register_menucmd(register_menuid("Меню смены цвета в чате"), 1023, "ColourMenu_handler"); LoadFile(); } public client_disconnect(id) { g_iMenuPage[id] = 0; } // Taken from alka's voteban source code public ColourMenu(id, iPos) { static i, iKeys, szMenu[256], iCurrPos; iCurrPos = 0; static iStart, iEnd; iStart = iPos * 7; if( iStart >= g_MaxColours ) { iStart = iPos = g_iMenuPage[id] = 0; } // Heading static iLen; iLen = formatex(szMenu, 255, "\yМеню смены цвета в чате:^n\rХостинг host-v.ru^n^n"); iEnd = iStart + 7; iKeys = ( 1<<9 ); if( iEnd > g_MaxColours ) { iEnd = g_MaxColours; } // Colour keys for(i = iStart; i < iEnd; i++) { iKeys |= ( 1<<iCurrPos++ ); iLen += formatex(szMenu[iLen], (sizeof(szMenu) - 1) - iLen, "\r%d. \w%s^n", iCurrPos, g_szColourName[i]); } // Back key if( !iStart ) iLen += formatex(szMenu[iLen], (sizeof(szMenu) - 1) - iLen, "^n\r8. \dНазад"); else { iLen += formatex(szMenu[iLen], (sizeof(szMenu) - 1) - iLen, "^n\r8. \wНазад"); iKeys |= ( 1<<7 ); } // Forward key if( iEnd == g_MaxColours ) iLen += formatex(szMenu[iLen], (sizeof(szMenu) - 1) - iLen, "^n\r9. \dДалее"); else { iLen += formatex(szMenu[iLen], (sizeof(szMenu) - 1) - iLen, "^n\r9. \wДалее"); iKeys |= ( 1<<8 ); } // Exit key iLen += formatex(szMenu[iLen], (sizeof(szMenu) - 1) - iLen, "^n\r0. \wВыход"); show_menu(id, iKeys, szMenu, -1, ""); return PLUGIN_HANDLED; } public ColourMenu_handler(id, key) { switch( key ) { case 7: --g_iMenuPage[id]; case 8: ++g_iMenuPage[id]; case 9: { g_iMenuPage[id] = 0; return PLUGIN_HANDLED; } default: { static colour; colour = ( g_iMenuPage[id] * 7 + key ); client_cmd(id, "con_color ^"%i %i %i^"", g_ColourSettings[colour][0], g_ColourSettings[colour][1], g_ColourSettings[colour][2]); client_print(id, print_chat, "[Сервер] Теперь цвет чата %s", g_szColourName[colour]); } } ColourMenu(id, g_iMenuPage[id]); return PLUGIN_HANDLED; } // Load Colour File LoadFile() { // Create a default file, if it doesn't exist if( !file_exists(colourfile) ) { write_file(colourfile, "; Colours Configuration file^n; Usage: <Colourname> <r|g|b>^n^"Default^" 255 180 30"); g_szColourName[0] = "Default"; g_ColourSettings[0][0] = 255; g_ColourSettings[0][1] = 180; g_ColourSettings[0][2] = 30; g_MaxColours++; log_amx("Colours: Colour File not found! Loading default colour"); return; } new szLine[64], szData[3][4]; g_MaxColours = 0; new file = fopen(colourfile, "r"); while( !feof(file) ) { fgets(file, szLine, 63); trim(szLine); if( !szLine[0] || szLine[0] == '^n' || szLine[0] == ';' ) continue; parse(szLine, g_szColourName[g_MaxColours], 15, szData[0], 3, szData[1], 3, szData[2], 3); g_ColourSettings[g_MaxColours][0] = str_to_num(szData[0]); g_ColourSettings[g_MaxColours][1] = str_to_num(szData[1]); g_ColourSettings[g_MaxColours][2] = str_to_num(szData[2]); g_MaxColours++; if( g_MaxColours == MAX_COLOURS ) { log_amx("Maximum Colours reached at %s (%i) - Increase MAX_COLOURS in the script to allow more", g_szColourName[g_MaxColours-1], g_MaxColours); break; } } fclose(file); log_amx("Colours: %i colours were loaded from file", g_MaxColours); } Хостинг игровых серверов host-v.ru
|
|
|
energydance |
10.9.2017, 12:59
Сообщение
|
|
Press enter to exit ...
|
|
|
sas333 |
10.9.2017, 13:06
Сообщение
|
|
Проверял на разных разрешениях со стима и спиратки везде одно и тоже. там по моему стоит ограничение на количество символов он был на английском а так как сейчас на русском то русские символы считаются за два поэтому что то там не сходится. вот нужно как то это дело увеличить. Может кто хорошо в этом разбирается подскажет. Хостинг игровых серверов host-v.ru
|
|
|
energydance |
10.9.2017, 13:11
Сообщение
|
|
Press enter to exit ...
|
|
|
sas333 |
10.9.2017, 13:32
Сообщение
|
|
Хостинг игровых серверов host-v.ru
|
|
|
Legenda |
10.9.2017, 22:13
Сообщение
|
|
Код new g_szColourName[MAX_COLOURS][16];
на new g_szColourName[MAX_COLOURS][32]; |
|
|
sas333 |
10.9.2017, 22:23
Сообщение
|
|
Хостинг игровых серверов host-v.ru
|
|
|
sas333 |
10.9.2017, 22:51
Сообщение
|
|
Хостинг игровых серверов host-v.ru
|
|
|
Vasiok007 |
12.9.2017, 15:03
Сообщение
|
|
Legenda, Протестировал сейчас Что то походу не то. Как было так и осталось.
Попробуй мое редактирование colourmenu.sma ( 3,71 килобайт ) Кол-во скачиваний: 10 Мир всем местным
|
|
|
3BEPb |
13.9.2017, 4:05
Сообщение
|
sas333, У тебя есть 2 варианта.
1. Изменить размер. Пример: szMenu[256] ---> szMenu[265] 2. Убрать лишний текст. Например: iLen = formatex(szMenu, 255, "\yМеню смены цвета в чате:^n\rХостинг host-v.ru^n^n"); ---> iLen = formatex(szMenu, 255, "\yМеню смены цвета в чате:^n^n"); P.S. Лучше сделать оба варианта, только учти, нужно будет уменьшить размер а не увеличить. Ведь ты будешь убирать текст а не добавлять его.
Отредактировал: 3BEPb, - 13.9.2017, 4:07
|
|
|
|
Legenda |
13.9.2017, 11:43
Сообщение
|
|
ага, нужно еще поменять Код parse(szLine, g_szColourName[g_MaxColours], 15, szData[0], 3, szData[1], 3, szData[2], 3);
на parse(szLine, g_szColourName[g_MaxColours], 31, szData[0], 3, szData[1], 3, szData[2], 3); new g_szColourName[MAX_COLOURS][16]; на new g_szColourName[MAX_COLOURS][32]; |
|
|
sas333 |
14.9.2017, 8:45
Сообщение
|
|
Хостинг игровых серверов host-v.ru
|
|
|