Участник
Пользователь
- Сообщения
- 893
- Реакции
- 149
- Помог
- 25 раз(а)
Избыточное форматирование/капслок
Добрый вечер пользователи, скриптеры.
Столкнулся с такой проблемой, что когда я делаю проверку, она работает не совсем корректно.
Суть такова: Сперва я объявляю переменные для кваров:
Затем, через bind_pcvar_num, bind_pcvar_string создаю их и автоматически генерирую конфиг:
И вот ключевой код, в котором та самая проверка:
Получается так: Я проверяю, если g_iUserTimeMin[iPlayer] >= g_iCvar[g_iNeedMin] и g_iUserTime[iPlayer] >= g_iCvar[g_iNeedSec], тогда я прибавляю значение массива g_iUserPoints[iPlayer]. Но проверка срабатывает тогда, когда g_iUserTimeMin[iPlayer] >= g_iCvar[g_iNeedMin] и всё, то-есть, оно не берёт в учёт g_iUserTime[iPlayer] >= g_iCvar[g_iNeedSec]. Например: Нужна 1 минута и 10 секунд, тогда код срабатывает. Но когда у меня наступает 1 минута, код срабатывает, и не важно, сколько секунд. Как это поправить?
Столкнулся с такой проблемой, что когда я делаю проверку, она работает не совсем корректно.
Суть такова: Сперва я объявляю переменные для кваров:
Код:
enum Cvar {
g_iSqlHost[32],
g_iSqlUser[32],
g_iSqlPass[32],
g_iSqlNameDb[32],
g_iSqlTable[32],
g_iNeedHour,
g_iNeedMin,
g_iNeedSec,
};
new g_iCvar[Cvar];
Код:
bind_pcvar_string(create_cvar(
"amxx_upgrade_sql_host",
"127.0.0.1",
FCVAR_NONE,
"IP/Хост от Базы данных."
), g_iCvar[g_iSqlHost], charsmax(g_iCvar[g_iSqlHost]));
bind_pcvar_string(create_cvar(
"amxx_upgrade_sql_user",
"root",
FCVAR_NONE,
"Логин (Имя пользователя) от Базы данных."
), g_iCvar[g_iSqlUser], charsmax(g_iCvar[g_iSqlUser]));
bind_pcvar_string(create_cvar(
"amxx_upgrade_sql_password",
"",
FCVAR_NONE,
"Пароль от Базы данных."
), g_iCvar[g_iSqlPass], charsmax(g_iCvar[g_iSqlPass]));
bind_pcvar_string(create_cvar(
"amxx_upgrade_sql_dbname",
"sborka",
FCVAR_NONE,
"Название Базы данных."
), g_iCvar[g_iSqlNameDb], charsmax(g_iCvar[g_iSqlNameDb]));
bind_pcvar_string(create_cvar(
"amxx_upgrade_sql_table",
"AmxxUpgradeSystem",
FCVAR_NONE,
"Название Базы данных."
), g_iCvar[g_iSqlTable], charsmax(g_iCvar[g_iSqlTable]));
bind_pcvar_num(create_cvar(
"amxx_upgrade_need_hour",
"0",
FCVAR_NONE,
"Сколько нужно отыграть часов для получения одного поинта."
), g_iCvar[g_iNeedHour]);
bind_pcvar_num(create_cvar(
"amxx_upgrade_need_min",
"1",
FCVAR_NONE,
"Сколько нужно отыграть минут для получения одного поинта."
), g_iCvar[g_iNeedMin]);
bind_pcvar_num(create_cvar(
"amxx_upgrade_need_sec",
"0",
FCVAR_NONE,
"Сколько нужно отыграть секунд для получения одного поинта."
), g_iCvar[g_iNeedSec]);
AutoExecConfig(true, "AmxxUpgradeSystem");
Код:
public Task_CheckTime(iPlayer) {
iPlayer -= TASKID_CHECK;
if(!is_user_connected(iPlayer))
return;
g_iUserTime[iPlayer] ++;
g_iUserTimeHour[iPlayer] = g_iUserTime[iPlayer] / 3600 % 3600;
g_iUserTimeMin[iPlayer] = g_iUserTime[iPlayer] / 60 % 60;
client_print(iPlayer, print_chat, "%d minutes %d second", g_iUserTimeMin[iPlayer], g_iUserTime[iPlayer] % 60);
if( g_iUserTimeMin[iPlayer] >= g_iCvar[g_iNeedMin]
&& g_iUserTime[iPlayer] >= g_iCvar[g_iNeedSec]
) {
g_iUserPoints[iPlayer] ++;
client_print(iPlayer, print_chat, "Вы получили + %d поинт!", g_iUserPoints[iPlayer]);
g_iUserTime[iPlayer] = 0;
}
}