⭐🚀 TkyNET | Blacklist ve Profesyonel DDoS Korumalı TeamSpeak 3 Sunucuları 🚀⭐
Sponsor Görsel
🌐 www.furiazm.com ⏰ 7/24 aktif Yönetim 💬 Discord.gg/furiaclancs 💰Ücretsiz Adminlik/Vip alımı 🌟 Türkiye’nin yeni en gelişmiş Zombie Plague sunucusu
Sponsor Görsel 2
SponsorSponsor

Admine Mesaj

RE: Admine mesaj
(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 ;
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;
} 
Ü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);
        }
    }

    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;
} 
Bu ikiside çalışıyor ama tek sorun son mesajı cevapla kısmında.
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.
RE: Admine mesaj
(27-12-2021, 22:36)Bixi Adlı Kullanıcıdan Alıntı:
(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 ;
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;
} 
Ü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);
        }
    }

    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;
} 
Bu ikiside çalışıyor ama tek sorun son mesajı cevapla kısmında.
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.
Malesef ücretsiz bir eklentide bunları yapamam.Ayrıca o kadar vaktim yok.
Şuan eklentide hatalı olan yer neresi ?

Edit : Son attığımda en son mesajı cevaplama mevcut.Menude görünmesi için mesaj almaniz gerekiyor.Oyle test edebilirsiniz
Steam:Tıkla • Discord: lynchk
RE: Admine mesaj
(27-12-2021, 22:55)orucoglukayra Adlı Kullanıcıdan Alıntı:
(27-12-2021, 22:36)Bixi Adlı Kullanıcıdan Alıntı: Bu ikiside çalışıyor ama tek sorun son mesajı cevapla kısmında.
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.
Malesef ücretsiz bir eklentide bunları yapamam.Ayrıca o kadar vaktim yok.
Şuan eklentide hatalı olan yer neresi ?

Edit : Son attığımda en son mesajı cevaplama mevcut.Menude görünmesi için mesaj almaniz gerekiyor.Oyle test edebilirsiniz
Sorun şu, diyelimki 4 oyuncu var sv de listede 5. Sırada "son mesaj atilan oyuncu" seçeneği çıkıyor. Seçmeme rağmen o mesaj yazma kısmı gelmiyor. Yani yukarda bahsettiğim gibi olursa eklenti kullanışlı olucak. Şuan zaten %95 i hazır.

Kayranın yarım bıraktığı yeri tamamlayacak koder varsa bi el atsın şu eklentiye ?
Son Düzenleme: 28-12-2021, 15:09, Düzenleyen: Bixi
RE: Admine mesaj
(27-12-2021, 23:04)Bixi Adlı Kullanıcıdan Alıntı:
(27-12-2021, 22:55)orucoglukayra Adlı Kullanıcıdan Alıntı: Malesef ücretsiz bir eklentide bunları yapamam.Ayrıca o kadar vaktim yok.
Şuan eklentide hatalı olan yer neresi ?

Edit : Son attığımda en son mesajı cevaplama mevcut.Menude görünmesi için mesaj almaniz gerekiyor.Oyle test edebilirsiniz
Sorun şu, diyelimki 4 oyuncu var sv de listede 5. Sırada "son mesaj atilan oyuncu" seçeneği çıkıyor. Seçmeme rağmen o mesaj yazma kısmı gelmiyor. Yani yukarda bahsettiğim gibi olursa eklenti kullanışlı olucak. Şuan zaten %95 i hazır.

Kayranın yarım bıraktığı yeri tamamlayacak koder varsa bi el atsın şu eklentiye ?
O yazdıkların kolay iş değil.Şuan öyle geçmiş mesajları ekleyecek seviyede değilim.
Yardım eden çıkmazsa, son mesajı cevaplaya bastığında eklenti çalışmıyorsa eklentiyi debugla, hata basmayı gerek.O hatanın çözümüne yardım edebilirim.
Steam:Tıkla • Discord: lynchk
RE: Admine mesaj
(28-12-2021, 16:33)orucoglukayra Adlı Kullanıcıdan Alıntı:
(27-12-2021, 23:04)Bixi Adlı Kullanıcıdan Alıntı: Sorun şu, diyelimki 4 oyuncu var sv de listede 5. Sırada "son mesaj atilan oyuncu" seçeneği çıkıyor. Seçmeme rağmen o mesaj yazma kısmı gelmiyor. Yani yukarda bahsettiğim gibi olursa eklenti kullanışlı olucak. Şuan zaten %95 i hazır.

Kayranın yarım bıraktığı yeri tamamlayacak koder varsa bi el atsın şu eklentiye ?
O yazdıkların kolay iş değil.Şuan öyle geçmiş mesajları ekleyecek seviyede değilim.
Yardım eden çıkmazsa, son mesajı cevaplaya bastığında eklenti çalışmıyorsa eklentiyi debugla, hata basmayı gerek.O hatanın çözümüne yardım edebilirim.

Sen büyük çoğunluğunu yaptın geriye sadece admin menüsüne 

1)Oyuncuya PM gonder

2)Daha önce attığım pmler

seçeneklerini eklemek kaldı. Alttaki eklentiye bahsettiğim seçenekleri ekleyebilecek birileri vardır mutlaka. biraz daha bekleyelim @"suriyelikene"

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;
}


Konu güncel.

Konu güncel. ( Yokmu müsait olupta el atıcak coder? )

Konu güncel.

Konu güncelliğini 5. gündede koruyor
Son Düzenleme: 01-01-2022, 16:40, Düzenleyen: Bixi
RE: Admine mesaj
Konu güncel

Ben bu konudan ümidimi kestim. Çözüldü işaretliyorum. (daha sonra yeni bi konu açıcam)
Son Düzenleme: 02-01-2022, 22:25, Düzenleyen: Bixi
RE: Admine mesaj
İstek konusu, @"orucoglukayra" adlı kullanıcı tarafından 6 gün içinde çözülmüştür.
İsteği çözdüğü için orucoglukayra Adlı kullanıcıya 1 rep puanı ve 1 yardım etme puanı otomatik olarak verilmiştir.
orucoglukayra Adlı kullanıcı sizin dışınızda toplam 229 kişiye yardım etmiştir.

Herhangi bir konuda hata olduğunu düşünüyorsanız destek sistemi üzerinden iletişim kurabilirsiniz.

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Konuyu Okuyanlar: 1 Ziyaretçi
Task