gameuser425
Участник
- Сообщения
- 30
- Реакции
- 3
Здравствуйте.
Я делаю настройки для игроков.
Допустим в меню есть две настройки.
1. Round End Sound
2. Quake Sounds
При входе игрока на сервер читается файл с настройками игроков и присваиваются значения к глобальным массивам.
К примеру возьму:
При использовании меню мне нужны параметры настроек игрока, для того что-бы отобразить в меню "функция включена или отключена".
Примерно так:
Так же мне нужно использовать эти глобальные массивы в системе Quake звуков.
Я могу писать эту систему прямо в этом плагине, но если настроек будет много и систем будет много. Плагин будет громадный...
Читал о нативных функциях. Пробовал, получается! Но или я что-то не понимаю или жизнь - боль;
Получается... Если я буду связывать через нативы плагины с плагином "меню", то мне и в плагине "меню" нужно создавать массивы всех игроков "
Я только сегодня начал погружаться в нативные функции. Не хочется так грузить память одним и тем же.
Может я чего то не до понял. Если я правильно понял и памяти правда уходит в два раза больше чем если бы я всё писал в одном плагине, вы так и скажите. А если я невъехал, объясните пожалуйста как люди пишут "ядро" плагина с системами.
Вот я создал тестовый скрипт с меню.
Регистрирую в нём натив.
Когда буду менять значения с true на false в меню с настройками буду использовать этот натив что-бы в плагине с системой обновились параметры игрока.
Как то вот так вот, обрывок кода.
Но это позже, мне ещё нужно получить параметры на пред идущей стадии когда меню только открывается...
В этом же плагине, там где мне открывается меню... Как я узнаю у игрока данная функция включена?
Читать файл с настройками игроков?
Читать файл с настройками при входе игрока на сервер и присваивать значение к массиву?
Отправлять запрос через нативную функцию в плагин с системой для того что-бы так же через нативную функцию пришёл ответ с параметрами?
Пока что я придумал только что бы читать настройки игрока в плагине с меню, присваивать значения к глобальным массивам.
А в плагине с системой, не читать настройки из файла, а отправлять их из плагина с меню в плагин с системой уже прочитанные.
И всё равно создавать в плагине с системой глобальный массив всех игроков и присваивать значения которые послал плагин с меню...
Но мне всё равно кажется что я делаю не правильно, думаю не правильно и можно наверняка сделать менее затратный процесс.
Я делаю настройки для игроков.
Допустим в меню есть две настройки.
1. Round End Sound
2. Quake Sounds
При входе игрока на сервер читается файл с настройками игроков и присваиваются значения к глобальным массивам.
К примеру возьму:
bool Quake[MAXPLAYERS +1] = {false,...};
bool RES[MAXPLAYERS +1] = {false,...};
При использовании меню мне нужны параметры настроек игрока, для того что-бы отобразить в меню "функция включена или отключена".
Примерно так:
Format(buffer, sizeof(buffer), "%t [%s]", "quake", !Quake[client] ? "+" : "-");
AddMenuItem(MenuHandle, "menu item", buffer);
Так же мне нужно использовать эти глобальные массивы в системе Quake звуков.
Я могу писать эту систему прямо в этом плагине, но если настроек будет много и систем будет много. Плагин будет громадный...
Читал о нативных функциях. Пробовал, получается! Но или я что-то не понимаю или жизнь - боль;
Получается... Если я буду связывать через нативы плагины с плагином "меню", то мне и в плагине "меню" нужно создавать массивы всех игроков "
bool Quake[MAXPLAYERS +1];
" и в самом плагине с системой? Так же и чтение из файла...Я только сегодня начал погружаться в нативные функции. Не хочется так грузить память одним и тем же.
Может я чего то не до понял. Если я правильно понял и памяти правда уходит в два раза больше чем если бы я всё писал в одном плагине, вы так и скажите. А если я невъехал, объясните пожалуйста как люди пишут "ядро" плагина с системами.
Вот я создал тестовый скрипт с меню.
Регистрирую в нём натив.
native void UpdateQuakeSettings(int client); //Возможно даже аргументы будут такими (int client, bool params)
Когда буду менять значения с true на false в меню с настройками буду использовать этот натив что-бы в плагине с системой обновились параметры игрока.
Как то вот так вот, обрывок кода.
C++:
public SettingsMenuHandler(Handle menu, MenuAction:action, param1, param2)
{
if(action == MenuAction_Select)
{
switch(param2)
{
case 0:
{
Quake[param1] = !Quake[param1] ? true : false;
UpdateQuakeSettings(param1); //Возможно даже аргументы будут такими (param1, Quake[param1])
}
Но это позже, мне ещё нужно получить параметры на пред идущей стадии когда меню только открывается...
В этом же плагине, там где мне открывается меню... Как я узнаю у игрока данная функция включена?
Format(buffer, sizeof(buffer), "%t [%s]", "quake", !Quake[client] ? "+" : "-");
AddMenuItem(MenuHandle, "menu item", buffer);
Читать файл с настройками игроков?
Читать файл с настройками при входе игрока на сервер и присваивать значение к массиву?
Отправлять запрос через нативную функцию в плагин с системой для того что-бы так же через нативную функцию пришёл ответ с параметрами?
Пока что я придумал только что бы читать настройки игрока в плагине с меню, присваивать значения к глобальным массивам.
А в плагине с системой, не читать настройки из файла, а отправлять их из плагина с меню в плагин с системой уже прочитанные.
И всё равно создавать в плагине с системой глобальный массив всех игроков и присваивать значения которые послал плагин с меню...
Но мне всё равно кажется что я делаю не правильно, думаю не правильно и можно наверняка сделать менее затратный процесс.
Последнее редактирование: