(downloadlink ist weiter unten)
nabend,
da ich drauf warte, dass es eine neue populace version gibt, steige ich erstmal auf 3DGS multiplayerengine um.
mir gefiel an populace, dass es ein befehl gab, mit dem man einen string, 2 vars und den funktionsnamen sendet, der gestartet werden soll.
z.b. so:
str_cpy(meine_nachricht,"blablabla");
MP_SendChatMessage(meine_nachricht, "verarbeite_chat",0,3);
nun wird bei allen spielern die funktion "verarbeite_chat" gestartet. die könnte so aussehen:
verarbeite_chat(nachricht,spieler,team)
{
if(mein_team==team) // ist die nachricht für mein team?
{
str_cpy(anzeige_text,nachricht); // dann zeige sie an
}
}
und da es so praktisch ist, habe ich diese funktion für die multiplayerengine von 3DGS umgesetzt.
das sieht dann z.b. so aus
ein spieler ruft folgende funktion auf:
Send_Message("beepi","hallo!",-3,-2); // funktion,text,var1,var2
der send_message befehl, sendet die info an den server. das sieht dann so aus: "beepi&hallo!&-3&-2".
der server entschlüsselt das und startet die funktion beepi mit den werten und dem string bei sich. sendet auch gleich das ganze an alle spieler weiter.
die entschlüsseln ebenfalls den string und starten bei sich die funktion.
die funktion sieht so aus:
function beepi(str,par1,par2)
{
wait(par1); // warte den ersten wert ab
beep();
wait(par2); // warte den zweiten wert ab
beep();
while(1) // zeigen den str inhalt
{
DRAW_TEXT (str, 385, 121, vector(0, 0, 0));
DRAW_TEXT (str, 384, 120, vector(0, 0, 192));
wait(1);
}
}
und so wurde dann eine nachricht mit 2 vars übermittelt.
wozu braucht man das? nun, man könnte z.b. den string nochmal verschlüsseln, um z.b. mehrere daten in einem string zu versenden. sowas braucht man z.b. für positionsangaben.
man könnte den x,y,z und pan wert in einem string senden lassen und eine funktion aufrufen, welche diese daten umsetzt.
auch für chats ist das natürlich sehr praktisch.
die nachricht wird gesendet, wert1 könnte das team sein, welches die nachrichten empfangen soll und wert2 eine bestimmte aktion. z.b. das gebrüllt wird oder es eine emotion ist.
lange rede kurzer sinn habe ich ein beispielprojekt damit gemacht, was sehr simpel ist.
einfach das projekt öffnen und einmal mit -sv starten und z.b. 3 mal mit -cl
ein client muss dann in die konsole "message_test()" eingeben.
dieser sendet das beepi beispiel von oben.
nach 3 sekunden ein beep, nach 2 sekunden ein beep, dann wird die nachricht "hallo!" auf allen clienten angezeigt.
hier könnt ihr es euch anschauen:
www.sinn-los-tweekly.de/send_message.zipich werd mal schaun ob ich morgen damit mein populace chatcode auf dieses system umbauen kann. denke ein chat ist das einfachste was man damit machen kann

falls es noch fragen gibt dann fragen.
achja: zum einbauen in euer projekt müsst ihr den kompletten inhalt des server und client eventes in euer server und client event kopieren und die send_message.wdl einfügen.
das sollte eigentlich genügen.
wünsche euch frohes werkeln

(hoffe der text ergibt sinn.. bin müde und froh das fertig zu haben

)