ich hab vor längerem mal ein chatscript veröffentlicht. Vollkommen dokumentiert.
Die suchfunktion ist dein freund 
Code:
font blub ="arial",0,12;
string received_str="#100";
string sent_str="#100";
string input_str="#100";
string chat_line1="#100";
string chat_line2="#100";
string chat_line3="#100";
string chat_line4="#100";
string chat_line5="#100";
text chat_fenster // Das íst das "chatfenster"
{
strings=5;
string=chat_line1,chat_line2,chat_line3,chat_line4,chat_line5;
pos_x=10;
pos_y=10;
font=blub;
}
text chat_input // Das textobjekt damit wir text eingeben können
{
string=input_str;
pos_x=10;
pos_y=100;
font=blub;
}
function chat_initialisieren // diese function in eurer MAIN function aufrufen!
{
chat_fenster.visible=on;
chat_input.visible=on;
}
function NachrichtAnServerSenden // Da man als client strings NUR an den server schicken kann müssen wir erst an den server schicken
{
// String Vorbereiten
str_cpy(sent_str,player_name); // Zuerst hängen wir den playernamen an den zu sendenen string dran
str_cat(sent_str,": "); // und ein :
str_cat(sent_str,input_str); // und schlussendlich die eigentliche nachricht
// Senden
send_string(sent_str); // Nun senden wir den String mit unserer Mitteilung an den server
wait(1); // Kurz warten
// Leeren
str_cpy(sent_str,""); // Und machen den Sende string sicherheitshalber leer
str_cpy(input_str,""); // genauso den input string, aber das wegen dem komfort
}
function TextEingeben
{
if(inkey_active){return;} // Wenn schon aktiv, dann return!
inkey(input_str); // text eingeben
if(result==13) // Wenn die eingabe mit enter beendet wurde
{
NachrichtAnServerSenden(); // nachricht senden
}
}
on_enter = TextEingeben; // Wir legen die chat funktion auf die enter-taste
function NachrichtEmpfangen // die function wenn daten vom server an den client reinkommen
{
wait(1); // warten damit die nachricht empfangen werden kann sonst ist received_str = LEER
ifndef server; // damit der server die nachricht nicht doppelt bekommt
if(str_len(received_str)>0) // wenn wir eine chat nachricht bekommen haben
{
// Chat Ordnen
str_cpy(chat_line1,chat_line2); // 2 > 1
str_cpy(chat_line2,chat_line3); // 3 > 2
str_cpy(chat_line3,chat_line4); // 4 > 3
str_cpy(chat_line4,chat_line5); // 5 > 4
str_cpy(chat_line5,received_str); // Neue nachricht > 5
wait(1); // Kurz warten
str_cpy(received_str,""); // den string leeren, damit die nachricht nicht wiederholt wird
// wenn ein anderer string event auftritt
}
endif; // Nicht vergessen die ifndef/ifdef zu schliessen
ifdef server;
wait(1); // Da es sonst eine "empty" function wäre, muss der client-server auch was zu tun bekommen
endif;
}
on_client = NachrichtEmpfangen; // wenn daten vom server zum client reinkommen > checken ob es chat ist
function NachrichtEmpfangen_Server // Die gleiche function wie oben, nur für den server, damit alle clients die nachricht bekommen
{
wait(1); // warten damit die nachricht empfangen werden kann sonst ist sent_str = LEER
if(str_len(sent_str)>0) // wenn wir eine chat nachricht bekommen haben -> da der client mit sent_str schickt, benutzen wir das als server
{
// Kopieren:
str_cpy(received_str,sent_str);
// Erstmal selber die nachricht einordnen:
// Chat Ordnen
str_cpy(chat_line1,chat_line2); // 2 > 1
str_cpy(chat_line2,chat_line3); // 3 > 2
str_cpy(chat_line3,chat_line4); // 4 > 3
str_cpy(chat_line4,chat_line5); // 5 > 4
str_cpy(chat_line5,received_str); // Neue nachricht > 5
// Diesmal löschen wir NOCH NICHT
// An Clients senden
send_string(received_str); // Da dieser befehl als server ausgeführt wird, wird der string an ALLE clients gesendet
wait(1); // Kurz warten
str_cpy(received_str,""); // JETZT löschen wir die strings
str_cpy(sent_str,"");
}
}
on_server = NachrichtEmpfangen_Server; // wenn daten von clients zum server kommen > checken ob chat ist