Выложу 2 команды для сообщения багов и идей для сервера. Все данные будут записаны в файл, который вы должны создать в ScriptFile
Код
#define BUG_REPORT_FILE_NAME "BugLog.txt"
#define SUGGESTION_FILE_NAME "SugLog.txt"
#define BUG_REPORT_COOLDOWN_TIME 60
stock CheckBugReportCooldown(playerid)
{
static bug_report_tick[MAX_PLAYERS];
new current_tick = tickcount();
static const cooldown_message[] =
!"Отчитываться о багах и писать предложения можно раз в "\
#BUG_REPORT_COOLDOWN_TIME" секунд.";
if(current_tick < bug_report_tick[playerid]+BUG_REPORT_COOLDOWN_TIME*1000)
return SendClientMessage(playerid, -1, cooldown_message);
bug_report_tick[playerid] = current_tick;
return 0;
}
CMD:bug(playerid, params[])
{
static const str_usage[] = !"Использование: /bug [описание бага]";
if(isnull(params))
return SendClientMessage(playerid, -1, str_usage);
if(CheckBugReportCooldown(playerid))
return 1;
static const bug_str[] = " сообщил о баге: ";
new string[sizeof(bug_str)+MAX_PLAYER_NAME+144];
GetPlayerName(playerid, string, sizeof(string));
strcat(string, bug_str), strcat(string, params);
new File:bug_report_file = fopen(!BUG_REPORT_FILE_NAME, io_append);
static const str_couldnt_open_file[] =
!"Ошибка: Не удалось открыть файл \"" BUG_REPORT_FILE_NAME "\" !";
if(_:bug_report_file == 0)
return SendClientMessage(playerid, -1, str_couldnt_open_file);
fwrite(bug_report_file, string);
fclose(bug_report_file);
SendClientMessage(playerid, -1, !"Вы успешно сообщили о баге. Спасибо!");
string[0] = ' ', string[1] = '\0', strcat(string, params);
return SendClientMessage(playerid, -1, string);
}
CMD:sug(playerid, params[])
{
static const str_usage[]= !"Использование: /sug [предложение по улучшению]";
if(isnull(params))
return SendClientMessage(playerid, -1, str_usage);
if(CheckBugReportCooldown(playerid))
return 1;
static const sug_str[] = " предложил: ";
new string[sizeof(sug_str)+MAX_PLAYER_NAME+144];
GetPlayerName(playerid, string, sizeof(string));
strcat(string, sug_str), strcat(string, params);
new File:suggestion_file = fopen(!SUGGESTION_FILE_NAME, io_append);
static const str_couldnt_open_file[] =
!"Ошибка: Не удалось открыть файл \"" SUGGESTION_FILE_NAME "\" !";
if(_:suggestion_file == 0)
return SendClientMessage(playerid, -1, str_couldnt_open_file);
fwrite(suggestion_file, string);
fclose(suggestion_file);
SendClientMessage(
playerid, -1,
!"Вы успешно написали предложение по улучшению. Спасибо!"
);
string[0] = ' ', string[1] = '\0', strcat(string, params);
return SendClientMessage(playerid, -1, string);
}
Я думаю что ясно что делают эти кмд, если нет - спрашивайте.
Автор: Osetin