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

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

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

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

Colour Chat Menu

Статус пользователя sas333
сообщение 9.9.2017, 23:59
Сообщение #1


Стаж: 11 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 147

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



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
Сообщение #2


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

sas333, возможно дело в разрешении экрана или в настройках шрифта ( размера ) в самой кс


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sas333
сообщение 10.9.2017, 13:06
Сообщение #3


Стаж: 11 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 147

Цитата(energydance @ 10.9.2017, 17:59) *
sas333, возможно дело в разрешении экрана или в настройках шрифта ( размера ) в самой кс

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


Хостинг игровых серверов host-v.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя energydance
сообщение 10.9.2017, 13:11
Сообщение #4


Стаж: 8 лет 9 месяцев

Сообщений: 2809
Благодарностей: 737
Полезность: 212

sas333, скинь исходник файлом , потестирую тоже интересно стало


Press enter to exit ...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sas333
сообщение 10.9.2017, 13:32
Сообщение #5


Стаж: 11 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 147

Цитата(energydance @ 10.9.2017, 18:11) *
sas333, скинь исходник файлом , потестирую тоже интересно стало

Прикрепленный файл  colourmenu.sma ( 3,89 килобайт ) Кол-во скачиваний: 11


Хостинг игровых серверов host-v.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 10.9.2017, 22:13
Сообщение #6


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Код
new g_szColourName[MAX_COLOURS][16];
на
new g_szColourName[MAX_COLOURS][32];
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sas333
сообщение 10.9.2017, 22:23
Сообщение #7


Стаж: 11 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 147

Legenda, Благодарю


Хостинг игровых серверов host-v.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sas333
сообщение 10.9.2017, 22:51
Сообщение #8


Стаж: 11 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 147

Legenda, Протестировал сейчас Что то походу не то. Как было так и осталось.


Хостинг игровых серверов host-v.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Vasiok007
сообщение 12.9.2017, 15:03
Сообщение #9


Стаж: 12 лет
Город: Кишинев

Сообщений: 157
Благодарностей: 56
Полезность: 258

Legenda, Протестировал сейчас Что то походу не то. Как было так и осталось.

Попробуй мое редактирование
Прикрепленный файл  colourmenu.sma ( 3,71 килобайт ) Кол-во скачиваний: 10


Мир всем местным
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя 3BEPb
сообщение 13.9.2017, 4:05
Сообщение #10
Стаж: 9 лет 6 месяцев

Сообщений: 49
Благодарностей: 8
Полезность: 31

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
Сообщение #11


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Vasiok007 @ 12.9.2017, 16:03) *
Legenda, Протестировал сейчас Что то походу не то. Как было так и осталось.

ага, нужно еще поменять

Код
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
Сообщение #12


Стаж: 11 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 147

Legenda, Отлично всё работает. Спасибо


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