ids von objekten

  • GM 8

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

  • ids von objekten

    ich stehe momentan vor einm großen problem das ich einfach nicht versehe .
    So weit ich weiß hat doch jedes objekt seine eigene id ( so zahlen wie 10535 oder 10678 ).
    so weit so gut für den multiplayer part wollte ich die positionen und werte von objekten
    (die welt ist bei allen spielrn gleich) synchroniesieren indem ich die id benutze.
    seltsamerweise stimmen diese aber nicht überein.
    wenn ich bei beiden clients die welt im singleplayer öffne also einfach den raum so ist die id gleich
    wenn ich sie allerdings im multiplayer öffne so hat z.b die kiste oben links bei sp1 eine andre id als bei sp2
    Der einzige grund der mir jetzt einfallen würde ist das ich im mp die welt aus einer txt gneriere
    diese ist wie folgt aufgebaut: z.b

    Quellcode

    1. 55
    2. 672 //id des objekt index bsp kiste braun
    3. 224 // x
    4. 55 //y
    5. 224 //id des objekt index bsp kiste braun
    6. 224 // x
    7. 53 //y
    8. ...



    und wird mit

    GML-Quellcode

    1. global.levelfile = file_text_open_read(argument0);
    2. while(!file_text_eof(global.levelfile)) { // Solange
    3. nid = file_text_read_real(global.levelfile); // Objekt ID auslesen
    4. file_text_readln(global.levelfile);
    5. nx = file_text_read_real(global.levelfile); // X-Koordinate auslesen
    6. file_text_readln(global.levelfile);
    7. ny = file_text_read_real(global.levelfile); // Y-Koordinate auslesen
    8. file_text_readln(global.levelfile);
    9. instance_create(nx,ny,nid); // Objekt erzeugen
    10. }
    11. file_text_close(global.levelfile);
    Alles anzeigen

    generiert dies passiert allerdings bei allen spielern
    daher weiß ich wirklich nicht warum die ids bei allen verschieden sind
    weiß jemand eine Lösung zum Beispiel wie man einem objekt beim generieren
    eine bestimmte id zuweisen kann damit die bei allen gleich ist?
    :rage:
  • Ich würde nicht auf Objekt IDs setzen, da diese je nach dem, wie viele Objekte vorher erstellt worden sehr stark variieren können.
    Benutz' stattdessen lieber eine Objekt-interne Variable "net_id" o.ä. (Parents wären hier evtl. angebracht).

    - Tobi97
  • das wäre natürlich möglich aber es gibt da natürlich auch entsprechende probleme zum einen wäre es sehr umständlich ich müsste alle meine levelfiles neu überarbeiten und jedem objekt eine bestimmte id von hand zusweisen was bei vielen objekten sehr lange dauern könnte und dann gibt es noch die probleme beim ansprechen wenn sp2 z.b vom sever gesagt bekommt kiste 567 3 pixel nach rechts dann kann ich nicht einfach

    GML-Quellcode

    1. with (id) x+3

    machen wie mit der id sondern muss

    GML-Quellcode

    1. with (all)
    2. {
    3. if uid = kiste 567
    4. {
    5. x+3
    6. }
    7. }
    :rage: