Участник
Пользователь
- Сообщения
- 315
- Реакции
- 104
- Помог
- 2 раз(а)
Всем доброго времени суток.
Решил переписал с нуля плагин https://dev-cs.ru/resources/1036/, спасибо fantom за советы по плагину!
Исходный код, разумеется, прилагаю ниже.
В чем проблема?!
1) Не отображается в ЧАТЕ фраза о получении увеличенной награде, даже при #define CHAT 1
2) Странно, но изменения значений КВАРОВ (когда получать награду) - не влияют. Значение mml_round не влияет на плагин... При этом, если mml_round = 1 (тестировал в консоли сервера на хостинге), будет считаться, что оно 4, как в исходнике (ВЫЯВЛЕНО по тестам плагина). И награда будет выдаваться через 4 раунда, а не через 1, как прописано в кваре
3) Дебагов нет. Ошибок нет. Плагин работает стабильно (amxx plugins в консоле)
-------------
Прошу вас , кто захочет помочь- пишите по делу, че нужно исправить.
-------------
Решил переписал с нуля плагин https://dev-cs.ru/resources/1036/, спасибо fantom за советы по плагину!
Исходный код, разумеется, прилагаю ниже.
В чем проблема?!
1) Не отображается в ЧАТЕ фраза о получении увеличенной награде, даже при #define CHAT 1
2) Странно, но изменения значений КВАРОВ (когда получать награду) - не влияют. Значение mml_round не влияет на плагин... При этом, если mml_round = 1 (тестировал в консоли сервера на хостинге), будет считаться, что оно 4, как в исходнике (ВЫЯВЛЕНО по тестам плагина). И награда будет выдаваться через 4 раунда, а не через 1, как прописано в кваре
3) Дебагов нет. Ошибок нет. Плагин работает стабильно (amxx plugins в консоле)
-------------
Прошу вас , кто захочет помочь- пишите по делу, че нужно исправить.
-------------
Код:
#include <amxmodx>
#include <reapi>
#define CHAT 1 // добавлять ли вывод фразы из .txt в чат? (обрезает часть кода, уменьшает нагрузку)
enum eData_Team {
teamTer = 0,
teamCTer = 1
};
enum eData_Cvars {
cvar_status = 0,
cvar_multiply,
cvar_round,
cvar_allowance
};
new g_pCvar[eData_Cvars], g_iWinNumber[eData_Team], g_iRound;
#if CHAT == 1
new g_iMaxPlayers;
#endif
public plugin_init() {
register_dictionary("mm_lang.txt");
register_plugin("Money Multiplier Looser", "1.1.0", "SNauPeR");
g_pCvar[cvar_status] = register_cvar("mml_enabled", "1");
g_pCvar[cvar_multiply] = register_cvar("mml_multiply", "2.0");
g_pCvar[cvar_round] = register_cvar("mml_round", "4");
g_pCvar[cvar_allowance] = register_cvar("mml_allowance", "3");
new szFileDir[128];
get_localinfo("amxx_configsdir", szFileDir, charsmax(szFileDir));
formatex(szFileDir, charsmax(szFileDir), "%s/mml/config.cfg", szFileDir);
switch(file_exists(szFileDir)) {
case 0: log_amx("[MML] Файл ^"%s^" не найден.", szFileDir);
case 1: server_cmd("exec %s", szFileDir);
}
register_logevent("LogEvent_RestartGame", 2, "1=Game_Commencing", "1&Restart_Round_");
RegisterHookChain(RG_RoundEnd, "ReAPI_RoundEnd", 0);
state dRound: Disabled;
#if CHAT == 1
g_iMaxPlayers = get_maxplayers();
#endif
}
public LogEvent_RestartGame() state dRound: Disabled;
public ReAPI_RoundEnd(WinStatus:iWinTeam, ScenarioEventEndRound:hEvent, Float:ftmDelay) <> {}
public ReAPI_RoundEnd(WinStatus:iWinTeam, ScenarioEventEndRound:hEvent, Float:ftmDelay) <dRound: Disabled> {
if(!get_pcvar_num(g_pCvar[cvar_status])) {
log_amx("plugin has been disabled");
pause("a");
return;
}
if(++g_iRound >= get_pcvar_num(g_pCvar[cvar_round])) {
state dRound: Enabled;
g_iRound = 0;
g_iWinNumber[teamCTer] = 0;
g_iWinNumber[teamTer] = 0;
}
}
public ReAPI_RoundEnd(WinStatus:iWinTeam, ScenarioEventEndRound:hEvent, Float:ftmDelay) <dRound: Enabled> {
if(!get_pcvar_num(g_pCvar[cvar_status])) {
log_amx("plugin has been disabled");
pause("a");
return;
}
switch(iWinTeam) {
case WINSTATUS_CTS: g_iWinNumber[teamCTer]++;
case WINSTATUS_TERRORISTS: g_iWinNumber[teamTer]++;
default: return;
}
if(g_iWinNumber[teamTer] && g_iWinNumber[teamCTer]) {
g_iWinNumber[teamTer] = 0;
g_iWinNumber[teamCTer] = 0;
}
static iAllowance; iAllowance = get_pcvar_num(g_pCvar[cvar_allowance]);
if(g_iWinNumber[teamTer] >= iAllowance && !g_iWinNumber[teamCTer] || g_iWinNumber[teamCTer] >= iAllowance && !g_iWinNumber[teamTer]) {
rg_set_account_rules(RR_LOSER_BONUS_DEFAULT, min(16000, (rg_get_account_rules(RR_LOSER_BONUS_DEFAULT) * floatround(get_pcvar_float(g_pCvar[cvar_multiply])))));
#if CHAT == 1
for(new pId = 1; pId <= g_iMaxPlayers; pId++) {
if(is_user_connected(pId) && WinStatus:get_user_team(pId) != iWinTeam && get_user_team(pId) != 3)
client_print_color(pId, pId, "%L %L", pId, "MSG_MML_PREFIX", pId, "MSG_MML", get_pcvar_float(g_pCvar[cvar_multiply]));
}
#endif
}
}