PHP- Kodu:
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Ozel Mesaj TXT"
#define VERSION "1.0"
#define AUTHOR "akcaliberkk"

#define TASK_HUD  8765

new file[] = "addons/amxmodx/configs/mesajlar.txt";
new 
bool:gChecked[33];

public 
plugin_init() {
    
register_plugin(PLUGINVERSIONAUTHOR)
    
    
register_clcmd("say /mesajlarim","ShowMessage");
}
public 
ShowMessage(id) {
    
gChecked[id] = true;
    
    new 
message[200],bool:newmessage;
    new 
bool:has has_user_message(id,message,charsmax(message),newmessage);
    if(!
has) {
        
ColorChat(id,"^3[Ozel Mesaj] ^4Ozel mesajiniz bulunmamaktadir.");
        return 
PLUGIN_HANDLED
    
}
    if(!
newmessage) {
        
ColorChat(id,"^3[Ozel Mesaj] ^4Bir okunmus mesaj bulundu:");
        
ColorChat(id,"^3*** ^4%s",message);
        return 
PLUGIN_HANDLED
    
}
    
ColorChat(id,"^3[Ozel Mesaj] ^4Bir okunmamis mesaj bulundu:");
    
ColorChat(id,"^3*** ^4%s",message);
    
set_read(id);
    return 
PLUGIN_HANDLED
}

public 
client_putinserver(id) {
    
gChecked[id] = false;
    new 
message[200], bool:newmessage;
    if(
has_user_message(id,message,charsmax(message),newmessage)) {
        if(
newmessage) {
            
set_task(5.0,"ShowHud",id+TASK_HUD);
        }
    }
}
public 
ShowHud(id) {
    
id-=TASK_HUD;
    if(!
is_user_connected(id)) return PLUGIN_HANDLED
    
    set_hudmessage
(025542, -1.0, -1.001.01.0)
    
show_hudmessage(id"Adiniza Kayitli^n Okunmamis Ozel Mesajiniz Bulunuyor^nKontrol Etmek Icin:^n^n/mesajlarim Yaziniz.")
    if(!
gChecked[id]) set_task(1.0,"ShowHud",id+TASK_HUD);
    
    return 
PLUGIN_HANDLED
}
stock set_read(id) {
    new 
=fopen(file,"a+");
    new 
tempfile[] = "addons/amxmodx/configs/a123temp.txt";
    new 
tf fopen(tempfile,"a+");
    
    new 
name[32];
    
get_user_name(id,name,31);
    new 
buffer[256];
    new 
szName[32], szMessage[200], szCheck[6];
    
    while(
fgets(f,buffer,charsmax(buffer))) {
        
parse(buffer,szName,charsmax(szName),szMessage,charsmax(szMessage),szCheck,charsmax(szCheck));
        if(!
equali(szName,name)) {
            
fprintf(tf,"%s",buffer);
            } else {
            
fprintf(tf,"^"%s^" ^"%s^" ^"1^"^n",szName,szMessage)
        }
    }
    
fclose(f)
    
fclose(tf)
    
delete_file(file);
    
rename_file(tempfile,file,1);
    
}
stock bool:has_user_message(idmessage[],msglen, &bool:newmessage) {
    new 
fopen(file,"rt");
    
    new 
name[32];
    
get_user_name(id,name,31);
    
newmessage false;
    
    new 
buffer[256];
    new 
szName[32], szMessage[200], szCheck[6];
    new 
check;
    while(
fgets(f,buffer,charsmax(buffer))) {
        
parse(buffer,szName,charsmax(szName),szMessage,charsmax(szMessage),szCheck,charsmax(szCheck))
        
check str_to_num(szCheck);
        if(
equali(szName,name)) {
            if(!
checknewmessage true;
            
copy(message,msglen,szMessage);
            
fclose(f);
            return 
true;
        }
    }
    
fclose(f);
    return 
false;
}
stock ColorChat(const id, const string[], {FloatSqlResul,_}:...) { 
    new 
msg[191], players[32], count 1
    
    static 
len
    
len formatex(msgcharsmax(msg), "^x01" ); 
    
vformat(msg[len], charsmax(msg) - lenstring3); 
    
    if(
id)players[0] = id
    else 
get_players(players,count,"ch"); 
    
    for (new 
0counti++){ 
        
        if(
is_user_connected(players[i])){ 
            
            
message_begin(MSG_ONE_UNRELIABLEget_user_msgid("SayText"),_players[i]); 
            
write_byte(players[i]); 
            
write_string(msg); 
            
message_end(); 
        } 
    } 
    return; 

configs klasörüne mesajlar.txt dosyasını oluşturun.

Yazılışı:

"hedef isim" "gönderilecek mesaj" "0"

"0" ı koymayı unutmayın. Eğer "0", "1" e dönüşürse, bu hedef kişinin mesajı okuduğu anlamına gelir.