При выборе игрока Ghost не показывает его данные!
[spoiler][/spoiler]
При выборе себя показывает мои данные!
[spoiler][/spoiler]
sypexgeo_menu.sma
[spoiler][pawn]
- #include <amxmodx>
- #include <sypexgeo>
- #define MAX_PLAYERS 32
- enum _data
- {
- _ip[16],
- _name[64],
- _city[64],
- _cc2iso[3],
- _country[32],
- _region[64]
- }
- new data[MAX_PLAYERS + 1][_data];
- public plugin_init()
- {
- register_plugin("geo", "1.0", "Ghost")
- register_clcmd("say /geo", "geo_menu")
- }
- public client_putinserver(id)
- {
- if(is_user_bot(id) || is_user_hltv(id))
- return
- get_user_ip(id,data[id][_ip],15,1);
- get_user_name(id,data[_name],63);
- sxgeo_data(data[id][_ip],data[id][_city],63,data[id][_country],63,data[id][_region],63,data[id][_cc2iso],2);
- }
- public geo_menu(id)
- {
- new i_Menu = menu_create("\r[\ySypexgeo\r] \wМеню игроков", "menu_handler")
- new s_Players[32], i_Num, i_Player
- new s_Name[32], s_Player[10]
- get_players(s_Players, i_Num, "ch")
- for (new i; i < i_Num; i++)
- {
- i_Player = s_Players[i]
- get_user_name(i_Player, s_Name, charsmax(s_Name))
- num_to_str(i_Player, s_Player, charsmax(s_Player))
- menu_additem(i_Menu, s_Name, s_Player, 0)
- }
- menu_display(id, i_Menu, 0)
- }
- public menu_handler(id, menu, item)
- {
- if (item == MENU_EXIT)
- {
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- new s_Data[6], s_Name[64], i_Access, i_Callback
- menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
- new i_Player = str_to_num(s_Data)
- client_printcolor(i_Player, "^4Имя: ^3%s ^1| ^4Статус: ^3%s ^1| ^4IP: ^3%s ^1| ^4Страна: ^3%s", data[_name], is_user_steam(id) ? "Steam" : "Non-Steam", data[id][_ip], data[id][_country])
- menu_destroy(menu)
- return PLUGIN_HANDLED
- }
- stock client_printcolor(const id, const input[], any:...)
- {
- new count = 1, players[32]
- static msg[191]
- vformat(msg, 190, input, 3)
- replace_all(msg, 190, "!g", "^4") // Green Color
- replace_all(msg, 190, "!y", "^1") // Default Color
- replace_all(msg, 190, "!team", "^3") // Team Color
- if (id) players[0] = id; else get_players(players, count, "ch")
- {
- for (new i = 0; i < count; i++)
- {
- if (is_user_connected(players[i]))
- {
- message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
- write_byte(players[i]);
- write_string(msg);
- message_end();
- }
- }
- }
- }
- stock bool:is_user_steam(id)
- {
- static dp_pointer
- if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
- {
- server_cmd("dp_clientinfo %d", id)
- server_exec()
- return (get_pcvar_num(dp_pointer) == 2) ? true : false
- }
- return false
- }