(27-12-2021, 22:22)orucoglukayra Adlı Kullanıcıdan Alıntı: Bu şekilde dene, son mesajı cevaplayı kapattım.Sorun büyük ihtimal burada.Bu şekilde menü açılırsa ikinci attığımı dene ;Bu ikiside çalışıyor ama tek sorun son mesajı cevapla kısmında.Üstteki menü açılırsa bunu deneyin ( Büyük ihtimal düzelmesi gerek.Olmazsa yarın ilgilenebilirim. ) ;PHP Kod:#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;
}PHP Kod:#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);
}
}
if(g_SonMesajAtanKisi[id]) {
menu_additem(menu, fmt("\w[\y%s\w] \rSon Mesaji Cevapla %s", tag, g_SonMesajAtanKisi[id]));
}
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);
}
}
if(g_SonMesajAtanKisi[id]) {
menu_additem(menu, fmt("\w[\y%s\w] \rSon Mesaji Cevapla %s", tag, g_SonMesajAtanKisi[id]));
}
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;
}
Bence şöyle yapalım onu. Admin menüye girdiğinde 2 seçenek çıksın karşısına
1)Oyuncuya PM gonder
2)Daha önce attığım pmler
1. seçenek tüm oyuncular listelensin yine
2. seçenekte sadece daha önce pm attıgı oyuncular görünsün, ama daha önceden pm atılan oyuncu yoksa say kısmından "Kimseye pm atmadigin icin kayit yok" gibi bir mesaj çıksın.
bu şekilde yaparsak kullanışlı olur. Bugün geç oldu dediğin gibi yarın geniş zamanda yapabilirsen on numara olcak bu eklenti.
)

