39dll Kommunikation nur zwischen 2?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 39dll Kommunikation nur zwischen 2?

    hi
    Ich hab seit gestern wieder was mit der 39dll ausprobiert. Ich kenne mich da nicht so genau aus und muss oft rum experimentieren. Ich hab jetzt ein Chat und der funktioniert ganz super. Das Problem ist, dass ich von Client zum Host und vom Host zum Client schreiben kann, aber nicht von Client zu Client. Das finde ich sehr komisch. bei listen hab ich 32000 player angegeben und dann noch hier der Step code:

    GML-Quellcode

    1. ​receive = "Keine Nachricht"
    2. if zustand == true
    3. {
    4. client = tcpaccept(listen, true);
    5. if(client > 0){
    6. otherplayer = client;
    7. for(i = -1; i < otherplayer+1; i += 1){
    8. clearbuffer(i);
    9. writebyte(0);
    10. writestring(string(client));
    11. sendmessage(i);
    12. }
    13. for(i = -1; i < otherplayer+1; i += 1){
    14. clearbuffer(i);
    15. writebyte(2);
    16. writestring(my_name);
    17. sendmessage(i);
    18. }
    19. show_message(name[client]+" ist online gegangen")
    20. }
    21. }
    22. for(i = 0; i < otherplayer+1; i += 1)
    23. while(true){
    24. receive = receivemessage(i);
    25. if receive < 0{
    26. break;
    27. }
    28. messageid = readbyte(0,0,i);
    29. if receive == 0{
    30. otherplayer -= 1;
    31. show_message(name[i]+" ist offline gegangen");
    32. break;
    33. }
    34. switch(messageid){
    35. case 0:
    36. otherplayer = real(readstring());
    37. if my_cnumb == -1
    38. my_cnumb = otherplayer;
    39. else{
    40. show_message(name[otherplayer]+" ist online gekommen");
    41. }
    42. for(i = 0; i < otherplayer+1; i += 1){
    43. clearbuffer(i);
    44. writebyte(2);
    45. writestring(my_name);
    46. sendmessage(i);
    47. }
    48. break;
    49. case 1:
    50. obj_chat.text += "#"+name[i]+": "+readstring();
    51. break;
    52. case 2:
    53. name[i] = readstring();
    54. break;
    55. default:
    56. show_message("Nachricht konnte nicht übermittelt werden");
    57. break;
    58. }
    59. }
    Alles anzeigen


    Kann mir jemand weiterhelfen?
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Erstmal, ist dir da irgendwas schief gelaufen ?

    GML-Quellcode

    1. case 1:
    2. obj_chat.text += "#"+name[i]+": "+readstring();
    3. break;
    4. case 2:
    5. name[i] = readstring();
    6. break;
    7. default:
    8. show_message("Nachricht konnte nicht übermittelt werden");
    9. break;
    Alles anzeigen


    2. Wieso von Client zu Client, es muss immer einen Host geben, sprich jemanden der die Sitzung öffnet und andere Clients annimmt ?

    3. Die Clients einfach die Nachricht zum Host schicken lassen und der Host schickt diese dann an jeden Client weiter.

    4. Die Formatierung des Quellcodes auf dieser Seite macht das durchlesen echt schwer ._.

    5. Erläutere bitte was du mit Client zu Client meinst.
  • achsoooo ja ok jetzt weis ich was ich falsch gemacht hab :D
    kann geschlossen werde
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe