39dll: Object erstellen, bei dem other_player anzeigen!

  • GM 8

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

  • 39dll: Object erstellen, bei dem other_player anzeigen!

    Tag alle miteinander,

    ich habe mir ein kleinen multiplayer spiel (für übung mit dem 39dll) angefangen, da diese besser ist. danach wollte ich wissen, wie mann "wenn zum beispiel der player_me einen object erstellt mit left button, soll das zu dem anderen Spieler (other_player) auch genau anzeigen, also genaue Position...Leider weiß ich nicht, wie ich es machen soll.


    Danke im vorraus, tutorials währen auch dankbar! 8)
  • wie jetzt genau? was muss ich mit senden zum client und server?

    der Block hat garkeine events, nur ein controller_object gibt es was "left pressed" gedrückt = ein block bei mouse_x und mouse_y erstellt wird. das will ich dem anderen spielern mitsenden!

    danke im vorraus
  • Senden der nachrichten:
    Spoiler anzeigen

    obj_controller braucht im create:

    GML-Quellcode

    1. global.newblock = 0
    2. global.newblock_x = 0
    3. global.newblock_y = 0

    nach der blockerstellung (also im left pressed):

    GML-Quellcode

    1. global.newblock = 1
    2. global.newblock_x = mouse_x
    3. global.newblock_y = mouse_y

    und nun noch da wo du die Nachrichten vesendest mit einbauen

    GML-Quellcode

    1. writebyte(5)// oder welche zahl auch immer
    2. writeshort(global.newblock)
    3. writeshort(global.newblock_x)
    4. writeshort(global.newblock_y)



    Zum empfangen der Nachrichten:
    Spoiler anzeigen

    ich schätze, du hast irgendwo mit switch und case gearbeitet.

    GML-Quellcode

    1. case 5:
    2. instance_create(readshort(),readshort(),obj_block)



    Sorry, hatte gerade kein GM, kann sein, das fehler drin sind
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Er meint du sollst es zum Client und zum Server packen ;)

    Edit: Stell dir mal vor du hast viele Clients. Ein Client schickt an den Server, dass ein Block erstellt werden soll. Der Server erstellt den Block. Nun musst du aber auch die anderen Clients informieren. Das macht der Server und deshalb muss er auch Daten verschicken können.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von kebaplover ()

  • Da es Client <-> Server ist, muss du zuerst an den Server senden das irgendetwas erstellt wurde und dann vom Server zu allen anderen Clients (damit die auch darüber wissen).

    Informationen werden in "Packets" zusammengefasst, meist werden diese mit einem Byte am Anfang versendet damit der Empfänger das ganze verarbeiten kann. Zum Beispiel um eine Instance zu erstellen:

    <byte> Packet ID
    <int> X
    <int> Y
    <short> object_index

    Damit hast du alle Informationen die dafür erstmal brauchst. Der Server verarbeitet das ganze und prüft evtl. ob das überhaupt erlaubt ist das der Client eine Instance dort erstellen kann, wenn ja dann das ganze an die anderen Clients weitersenden.

    Client (senden) -> Server (empfangen, prüfen und weiter senden) -> Client (empfangen, Instance erstellen)

    Stichwörter: Datentypen, Client/Server-Konzept, write_* - Funktionen, read_* - Funktionen, sendmessage, receivemessage
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Benutzer online 1

    1 Besucher