Простая команда в PAWN
San Andreas Multiplayer (GTA) использует PAWN в качестве языка программирования. Я владелец сервера на SA-MP, и я не профессионал, поэтому я хотел бы получить помощь, если это возможно. По сути, у меня есть команда, которая проверяет статистику игрока, когда он / она онлайн, но я хотел бы иметь команду, чтобы проверить их, когда они не в сети. Это код команды, которая проверяет статистику игрока, когда он онлайн.
CMD:check(playerid, var[])
{
new user;
if(!Logged(playerid)) return NoLogin(playerid);
if(Player[playerid][pAdmin] >= 2 || Player[playerid][pStaffObserver])
{
if(sscanf(var,"us[32]", user, var))
{
SendClientMessage(playerid, COLOR_WHITE, "{00BFFF}Usage:{FFFFFF} /check [playerid] [checks]");
SendClientMessage(playerid, COLOR_GRAD2, "** [CHECKS]: stats");
return 1;
}
if(!strcmp(var, "stats", true))
{
if(!Logged(user)) return NoLoginB(playerid);
ShowStats(playerid, user);
}
}
else
{
NoAuth(playerid);
}
return 1;
}
Я использую командный процессор ZCMD и систему сохранения Dini. Поэтому я хотел бы сделать CMD:ocheck, который бы отображал стандартные ShowStats, и он будет работать как /ocheck [Firstname_Lastname].
Любая помощь? Пожалуйста, помогите, если это возможно.
Спасибо
~ Кевин
2 ответа
Для команды, которая вам требуется, вам нужно будет загрузить данные из пользовательского файла игрока.
Вы, очевидно, начнете с
if(!Logged(playerid)) return NoLogin(playerid);
if(Player[playerid][pAdmin] >= 2 || Player[playerid][pStaffObserver])
{
Чтобы проверить, авторизован ли игрок, использующий это, использовать эту команду. Следуя этому,
if(str, "s[32]", name))
Вы не можете использовать 'u' в качестве средства форматирования здесь просто потому, что вы проверяете статистику офлайн-плеера. После этого вам нужно проверить, действительно ли пользователь зарегистрирован. Если это не так, вы вернете эту ошибку пользователю этой команды. Если он есть, то проверьте, не был ли он уже в сети. Если он в сети, верните ошибку администратору, чтобы использовать эту команду вместо "o check". Если он не в сети, тогда вы можете спокойно перейти к загрузке его статистики (вы можете использовать код, используемый для загрузки данных, когда игрок входит в систему, за исключением этого времени. это должно быть напечатано только
например,
format(str, sizeof(str),
"Score: %s, Money: %d",
dini_Int(file, "score"), dini_Int(file, "score") );
Да, по сути, вы должны получить всю информацию из файла, поэтому ShowStats не будет работать, потому что я полагаю, что он получает всю информацию из перечислений и т. Д., Вы должны написать совершенно новую функцию получения всей информации офлайн.