Gamestudio Links
Zorro Links
Newest Posts
Newbie Questions
by fairtrader. 12/05/23 14:22
Zorro Trader GPT
by TipmyPip. 12/04/23 11:34
Square root rule
by Smallz. 12/02/23 09:15
RTest not found error
by TipmyPip. 12/01/23 21:43
neural function for Python to [Train]
by TipmyPip. 12/01/23 14:47
Xor Memory Problem.
by TipmyPip. 11/28/23 14:23
Training with command line parameters
by TipmyPip. 11/26/23 08:42
Combine USD & BTC Pairs In Asset Loop
by TipmyPip. 11/26/23 08:30
AUM Magazine
Latest Screens
A psychological thriller game
SHADOW (2014)
DEAD TASTE
Tactics of World War I
Who's Online Now
3 registered members (AndrewAMD, fairtrader, 3run), 599 guests, and 0 spiders.
Key: Admin, Global Mod, Mod
Newest Members
fairtrader, hus, Vurtis, Harry5, KelvinC
19019 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Page 1 of 2 1 2
Neue Multiplayer Funktion: Send_Message() #122618
04/10/07 00:30
04/10/07 00:30
Joined: Nov 2000
Posts: 1,534
hamburg
Samb Offline OP
Serious User
Samb  Offline OP
Serious User

Joined: Nov 2000
Posts: 1,534
hamburg
(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.zip

ich 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 )

Re: Neue Multiplayer Funktion: Send_Message() [Re: Samb] #122619
04/10/07 18:47
04/10/07 18:47
Joined: Nov 2000
Posts: 1,534
hamburg
Samb Offline OP
Serious User
Samb  Offline OP
Serious User

Joined: Nov 2000
Posts: 1,534
hamburg
wieder sehr großes interesse an meiner sache... ich seh schon
chatcode ist fertig. so sieht er aus:

Code:
font chat_schrift = "Arial",1,14;

string chat_eingabe_str[100];
text chat_text
{
font = chat_schrift;
layer = 1;
pos_x = 10;
pos_y = 100;
strings = 20; // reserviere 10 string pointer...
flags = visible;
}

text chat_eingabe
{
font = chat_schrift;
layer = 1;
pos_x = 10;
pos_y = 400;
size_y = 40;
offset_y = 0;
string = chat_eingabe_str;
flags = visible;
}

function fuelle_strings_startup()
{
var i;
while(i<20)
{
str_cpy(chat_text.string[i],"");
i+=1;
}
}

function chat_aktualisiern(chat_str, playerId, teamId)
{
var i;
i = 0;
while(i<19)
{
str_cpy(chat_text.string[i],chat_text.string[i+1]);
i+=1;
}
str_cpy(chat_text.string[19],chat_str);
}


function chat_aktivieren_startup()
{
var temp_str;
temp_str = str_create("#200");
while(1)
{
wait(1);
if(key_enter)
{
inkey(chat_eingabe_str);
wait(1);
if(result==13)
{
str_cpy(temp_str,player_name);
str_cat(temp_str,": ");
str_cat(temp_str,chat_eingabe_str);
Send_Message("chat_aktualisiern",temp_str,0,0);
while(key_enter){wait(1);}
}
str_cpy(chat_eingabe_str,"");
}
}
}



folglich enter drücken, text schreiben,nochmal enter drücken und die nachricht wird an alle gesendet.
hier ein screen:


downloadlink:
http://www.sinn-los-tweekly.de/send_message_chat.zip

anleitung:
einmal mit -sv starten
dann so oft man will (bzw. es geht) mit -cl und -pl [hier dein name]
dann mit der enter taste chatten.

der chat ist sehr simpel und das system ist wohl net so schlau momentan. wenn man ein & zeichen schreibt, würde das system durcheinander kommen. da müsste man was machen.

Re: Neue Multiplayer Funktion: Send_Message() [Re: Samb] #122620
04/17/07 12:57
04/17/07 12:57
Joined: Jul 2005
Posts: 421
Germany
DoC Offline
Senior Member
DoC  Offline
Senior Member

Joined: Jul 2005
Posts: 421
Germany
also ich find das schon sehr interessant habs aber jetzt erst entdeckt, was haste denn jetzt noch vor zu machen in diese richtung? noch irgentwelche weiteren funktionen ausser elemente wie der reine chat?

Re: Neue Multiplayer Funktion: Send_Message() [Re: DoC] #122621
04/17/07 15:32
04/17/07 15:32
Joined: Nov 2000
Posts: 1,534
hamburg
Samb Offline OP
Serious User
Samb  Offline OP
Serious User

Joined: Nov 2000
Posts: 1,534
hamburg
naja du kannst alles mögliche damit machen.
z.b. ein einlogg system.
user und passwort eingeben. die per str_cat mit nem sonderzeichen verbinden (z.b. Hans%ukzidu), und dann per send_message an den server senden.
der ruft dann eine funktion deiner wahl auf und übergibt in nem parameter den string.
nun musste noch ein kleines script basteln, welches deinen string decodiert (so das eben ein string "Hans" und der andere "ukzidu" ist) und dann eben dein abfrage code.

du kannst auch ganze positionen übermitteln, z.b. für ein rundenbasiertes spiel.
sendest dann halt die x,y und z daten und so viele informationen wie du willst.
in meinem bombrman spiel wurden z.b. die bomben so übertragen. ein string sah in etwa so aus "128&64&0&256"
dann hat er die bombe an der position x = 128; y = 64; z = 0; und die stärke der bombe = 256;
die bombe wurde lokal erzeugt und mit der bombenkraft gefüttert.

wie gesagt.. im grunde kann man damit alles mögliche machen
ein chat ist nur das einfachste.

Re: Neue Multiplayer Funktion: Send_Message() [Re: Samb] #122622
06/05/07 18:21
06/05/07 18:21
Joined: Jun 2001
Posts: 1,004
Dossenbach
N
nfs42 Offline
Serious User
nfs42  Offline
Serious User
N

Joined: Jun 2001
Posts: 1,004
Dossenbach
Interessante Nutzung von execute.
Bei Benutzen deines Codes für GSTNet ist mir ein steigender Speicherverbrauch aufgefallen.
Problem ist die Benutzung von str_create bei jedem Funktionsaufruf von z.B. client_event. Es wird jedesmal Speicher alloziert.


Andreas
GSTools - Home of
GSTScript 0.9.8: lua scripting for A6/7/8
GSTNet 0.7.9.20: network plugin for A6/7/8
GSTsqlite 1.3.7: sql database plugin for A6/7/8
3DGS Codebase: 57 snippets || 3DGS Downloads: 248 files
Re: Neue Multiplayer Funktion: Send_Message() [Re: nfs42] #122623
06/06/07 03:43
06/06/07 03:43
Joined: Nov 2000
Posts: 1,534
hamburg
Samb Offline OP
Serious User
Samb  Offline OP
Serious User

Joined: Nov 2000
Posts: 1,534
hamburg
ja, man muss die noch removen, hab ich vergessen einzubauen. aber denke jeder, der sich ein tick mit c-script auskennt, wird das selber machen könn ^^

Re: Neue Multiplayer Funktion: Send_Message() [Re: Samb] #122624
06/06/07 06:39
06/06/07 06:39
Joined: Oct 2002
Posts: 361
Germany Cologne
hack-panther Offline
Senior Member
hack-panther  Offline
Senior Member

Joined: Oct 2002
Posts: 361
Germany Cologne
Dank deines Codes habe ich ein Teil des Multiplayer-Prinzips verstanden...
Aufjedenfall das mit dem Send_*

Ideal zum lernen... ^^

Die Methode um Funktionen über send_string zu versenden ist auch genial.


Danke dafür...

Re: Neue Multiplayer Funktion: Send_Message() [Re: hack-panther] #122625
06/14/07 20:24
06/14/07 20:24
Joined: Mar 2005
Posts: 564
/www/europe/ germany/index.php
TSG_Torsten Offline

User
TSG_Torsten  Offline

User

Joined: Mar 2005
Posts: 564
/www/europe/ germany/index.php
Theoretisch würde es aber auch mit

send_var(Variable1);
send_var(Variable2);
send_string(String1);

Da die Engine ja die Sachen in "Paketen" zusammenfasst, kommt dann alles auf einmal an, und man könnte so bei jedem Text noch viel mehr Infos mit rüberschicken. Beim Clienten muss dann nur noch event_type==event_string ausgeführt werden.

Re: Neue Multiplayer Funktion: Send_Message() [Re: TSG_Torsten] #122626
07/23/07 13:20
07/23/07 13:20
Joined: May 2006
Posts: 1
M
mchk89 Offline
Guest
mchk89  Offline
Guest
M

Joined: May 2006
Posts: 1
ich hätt ne Frage, also ich hab probiert, des ganze mit meinem Freund übers i-net zu praktizieren, hat aber net geklappt! Also bei mir oder ihm selber gehts, aber wir beide können nich chatten! Weiß jemand, was man beachten soll, wie des geht? Ich hab scho probiert, aber keiner von uns hat den andren bzw. den server gefunden!

Re: Neue Multiplayer Funktion: Send_Message() [Re: mchk89] #122627
07/24/07 10:16
07/24/07 10:16
Joined: Mar 2006
Posts: 237
Deutschland, NRW, Recklinghaus...
TSG_Christof Offline
Member
TSG_Christof  Offline
Member

Joined: Mar 2006
Posts: 237
Deutschland, NRW, Recklinghaus...
ts games hat schon lange einen eigenen chat geschrieben ^^ mit einer schönen oberfläche einer nickwahl die mann hat also jeder schreibt seinen eigenen nick kann während der laufzeit seinen eigenen nick wechseln einer admin funktion und einer ansicht wer alles im chat ist. Link

Page 1 of 2 1 2

Moderated by  HeelX, Spirit 

Gamestudio download | chip programmers | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1