#include <amxmodx>
#include <reapi>
new bool:g_Selected[MAX_CLIENTS+1], g_SecilenKisi[MAX_CLIENTS+1], g_SonMesajAtanKisi[MAX_CLIENTS+1];
new const tag[] = "WA";
public plugin_init()
{
register_plugin("AdminUserMesaj", "0.1", "LyNcH");
register_clcmd("say /adminpm", "@kontrol");
register_clcmd("Mesaj_Gir", "@_Mesaj_Gir");
}
public client_disconnected(id) {
g_Selected[id] = false;
g_SecilenKisi[id] = 0;
g_SonMesajAtanKisi[id] = 0;
}
@kontrol(const id) {
new AdminCount = 0;
for(new i = 0; i < MaxClients; i++) {
if(is_user_connected(i) && (get_user_flags(i) & ADMIN_KICK)) {
AdminCount++;
}
}
if(AdminCount == 0) {
client_print_color(id, id, "^1[^3%s^1] ^4Aktif admin bulunmamakta ^1!", tag);
return PLUGIN_HANDLED;
}
if(get_user_flags(id) & ADMIN_KICK) {
@userpmmenu(id);
}
else {
@adminpmmenu(id);
}
return PLUGIN_HANDLED;
}
@adminpmmenu(const id) {
new menu = menu_create(fmt("\w[\y%s\w] \rAdmin Mesajlasma", tag), "@_adminpmmenu");
for(new i = 1, szStr[3]; i <= MaxClients; i++) {
if(is_user_connected(i) && (get_user_flags(i) & ADMIN_KICK) && !is_user_bot(i)) {
num_to_str(i, szStr, charsmax(szStr));
menu_additem(menu, fmt("ADMIN | %n", i), szStr);
}
}
menu_additem(menu, fmt("\w[\y%s\w] \rSon Mesaji Cevapla %s", tag, g_SonMesajAtanKisi[id] ? fmt("\w[\y%n\w]", g_SonMesajAtanKisi[id]):"[Mesaj Yok]"));
menu_setprop(menu, MPROP_EXITNAME, "\rCikis");
menu_display(id, menu);
return PLUGIN_HANDLED;
}
@_adminpmmenu(const id, const menu, const item) {
switch(item)
{
case MENU_EXIT:
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
case 1:
{
if(g_SonMesajAtanKisi[id]) {
g_SecilenKisi[id] = g_SonMesajAtanKisi[id];
g_Selected[id] = true;
client_cmd(id, "messagemode Mesaj_Gir");
client_print_color(id, id, "^1[^3%s^1] ^4Lutfen mesajinizi giriniz ^1!", tag);
}
else client_print_color(id, id, "^1[^3%s^1] ^4Son Mesaj Bulunamadi ^1!", tag);
return PLUGIN_HANDLED;
}
}
new data[6], key;
menu_item_getinfo(menu, item, _, data, charsmax(data));
key = str_to_num(data);
g_SecilenKisi[id] = key;
if(!is_user_connected(key)) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
g_Selected[id] = true;
client_cmd(id, "messagemode Mesaj_Gir");
client_print_color(id, id, "^1[^3%s^1] ^4Lutfen mesajinizi giriniz ^1!", tag);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
@userpmmenu(const id) {
new menu = menu_create(fmt("\w[\y%s\w] \rUser Mesajlasma", tag), "@_userpmmenu");
for(new i = 1, szStr[3]; i <= MaxClients; i++) {
if(is_user_connected(i) && !is_user_bot(i) && !(get_user_flags(i) & ADMIN_KICK)) {
num_to_str(i, szStr, charsmax(szStr));
menu_additem(menu, fmt("USER | %n", i), szStr);
}
}
menu_additem(menu, fmt("\w[\y%s\w] \rSon Mesaji Cevapla %s", tag, g_SonMesajAtanKisi[id] ? fmt("\w[\y%n\w]", g_SonMesajAtanKisi[id]):"[Mesaj Yok]"));
menu_setprop(menu, MPROP_EXITNAME, "\rCikis");
menu_display(id, menu);
return PLUGIN_HANDLED;
}
@_userpmmenu(const id, const menu, const item) {
switch(item)
{
case MENU_EXIT:
{
menu_destroy(menu);
return PLUGIN_HANDLED;
}
case 1:
{
if(g_SonMesajAtanKisi[id]) {
g_SecilenKisi[id] = g_SonMesajAtanKisi[id];
g_Selected[id] = true;
client_cmd(id, "messagemode Mesaj_Gir");
client_print_color(id, id, "^1[^3%s^1] ^4Lutfen mesajinizi giriniz ^1!", tag);
}
else client_print_color(id, id, "^1[^3%s^1] ^4Son Mesaj Bulunamadi ^1!", tag);
return PLUGIN_HANDLED;
}
}
new data[6], key;
menu_item_getinfo(menu, item, _, data, charsmax(data));
key = str_to_num(data);
g_SecilenKisi[id] = key;
if(!is_user_connected(key)) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
g_Selected[id] = true;
client_cmd(id, "messagemode Mesaj_Gir");
client_print_color(id, id, "^1[^3%s^1] ^4Lutfen mesajinizi giriniz ^1!", tag);
menu_destroy(menu);
return PLUGIN_HANDLED;
}
@_Mesaj_Gir(const id) {
if(!g_Selected[id]) {
client_print_color(id, id, "^1[^3%s^1] ^4Sistem tarafindan engellendin ^1!", tag);
return PLUGIN_HANDLED;
}
new Say[300];
read_args(Say, charsmax(Say));
remove_quotes(Say);
if(Say[0] == EOS) {
client_print_color(id, id, "^1[^3%s^1] ^4Bos Mesaj Gonderemezsin ^1!", tag);
return PLUGIN_HANDLED;
}
client_print(g_SecilenKisi[id], print_center, "Bir Mesaj Aldiniz | Cevaplamak Icin /adminpm Yazip Oyuncuyu Secebilirsiniz");
client_print_color(id, id, "^1[^3%s^1] ^4Basariyla Mesaj Gonderildi ^1!", tag);
client_print_color(g_SecilenKisi[id], g_SecilenKisi[id], "^4(AdminPM) ^1%n^3: ^4%s", id, Say);
new CurrentTime[9],CurrentDay[16], szMapName[33];
get_time("%H:%M:%S", CurrentTime, charsmax(CurrentTime));
get_time("%d/%m/%Y", CurrentDay, charsmax(CurrentDay));
rh_get_mapname(szMapName, charsmax(szMapName), MNT_SET);
log_to_file("adminchat.txt", "Tarih %s | Saat %s | Map %s | Gonderen : %n | Mesaji Alan : %n | Mesaj : %s", CurrentDay, CurrentTime, szMapName, id, g_SecilenKisi[id], Say);
g_SonMesajAtanKisi[g_SecilenKisi[id]] = id;
g_Selected[id] = false;
g_SecilenKisi[id] = 0;
return PLUGIN_HANDLED;
}