0 registered members (),
1,251
guests, and 5
spiders. |
Key:
Admin,
Global Mod,
Mod
|
|
|
Re: Chatsystem für bis zu 4 Leuten gleichzeitig.
[Re: mk_1]
#81585
08/08/06 17:12
08/08/06 17:12
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
User
|
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
öhm, könnte man (wenn der Urheber des Quelltextes einverstanden ist) die Sache auch "öffentlich machen"? Weil ich habe das selbe Problem. Brauche ein Chatsystem für 2-4 Leute, habe aber keinen Ansatz. Wäre cool!
|
|
|
Re: Chatsystem für bis zu 4 Leuten gleichzeitig.
[Re: ello]
#81590
08/31/06 14:39
08/31/06 14:39
|
Joined: Dec 2003
Posts: 988 Germany, Magdeburg
JoGa
User
|
User
Joined: Dec 2003
Posts: 988
Germany, Magdeburg
|
Oh, ja *lol* wie wahnsinnig witzig -.- ( ist nicht wirklich böse gemeint!) Multiplayercode ist im Großen und Ganzen gleich wie Einzelspiel-code. Nur ein paar Unteschiede gibt es (server<->client - Zeugs) Was mich aber interessiert ist, wie man das Chatsystem hinbekommt. Im Grund mehrere Strings hat(?) und wie man die dann sortiert und hochscrollen lässt und wieder löscht und so. Kein Plan. Eine ganz normale Anzeige wie in Unreal Tournament o.ä. Die Einzelnen Messages werden untereinander engezeigt, wobei die zurückliegenden auch noch angezeigt werden(!), elso eine LISTE entsteht. Das ist meine Frage. Ich weis, dass das nur bedingt was mit MP zu tun hat.
Last edited by JoGa; 08/31/06 14:43.
|
|
|
Re: Chatsystem für bis zu 4 Leuten gleichzeitig.
[Re: Michael_Schwarz]
#81592
08/31/06 15:54
08/31/06 15:54
|
Joined: Aug 2003
Posts: 7,439 Red Dwarf
Michael_Schwarz
Senior Expert
|
Senior Expert
Joined: Aug 2003
Posts: 7,439
Red Dwarf
|
ok, hier ist er, Hochdetailliert kommentier, fast jede zeile. Er sollte verständlich sein, eine sache noch: Der server selbst kann NICHT chatten, d.h. ihr könnt ihn auch als dedicated laufen lassen(geht ab der Commercial). Ihr habt aber einen ansatz; und wie ihr den server chatten lassen könnt, werdet ihr selber herausfinden Bei fragen, nicht scheuen 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
"Sometimes JCL reminds me of Notch, but more competent" ~ Kiyaku
|
|
|
|