- Автор
-
mmcs.pro dev team
- Совместимость с
- Amx Mod X 1.9.0
- Благодарности
-
- 9iky6 и SAZONISCHE за реализацию
- BaJIepbI4 и ImbaSS за тесты
API для получения данных с сайта и передачи их в сторонние плагины. По своей сути плагин является клоном части кода с source-версии gameme. По непонятным причинам на amxmodx этот код не был добавлен, но в веб-части обработчики висят, поэтому и было придумано реализовать данный плагин.
Код:
#include <amxmodx>
#include <gameme>
#define QUERY_TYPE_ONCLIENTPUTINSERVER 1
public plugin_init()
{
register_plugin("Gameme info" , "0.1", "");
register_clcmd("ginfo", "cmdginfo", 0, "Check gameme")
register_clcmd("say ginfo", "cmdginfo", 0, "Check gameme")
register_clcmd("say /ginfo", "cmdginfo", 0, "Check gameme")
}
public cmdginfo(id) {
// вызываем нативу для получения ответа от gameme
QueryGameMEStats("playerinfo", id, "QuerygameMEStatsCallback", QUERY_TYPE_ONCLIENTPUTINSERVER);
return PLUGIN_HANDLED;
}
public QuerygameMEStatsCallback(command, payload, client, &DataPack:datapack) {
client_print(client, print_notify, "QuerygameMEStatsCallback: command -> %i, payload -> %i, client -> %N", command, payload, client);
if ((command == RAW_MESSAGE_CALLBACK_PLAYER) && (client > 0)) {
ResetPack(datapack); // нужен для сброса считывания/записи на 0 размер.
new iRank = ReadPackCell(datapack);
SetPackPosition(datapack, 18); // переход на 3 cell-объект. Размер каждого cell-объекта = 9.
new iSkill = ReadPackCell(datapack);
DestroyDataPack(datapack); // обязательно нужно удалить DataPack после считывания данных!!!
if (payload == QUERY_TYPE_ONCLIENTPUTINSERVER) {
client_print_color(client, print_team_default, "Твой rank %d позиция %d очки", iRank, iSkill);
client_print(client, print_notify, "Твой rank %d позиция %d очки", iRank, iSkill);
}
}
return PLUGIN_HANDLED;
}