Ergebnis 1 bis 13 von 13

Thema: CE Event in bestimmten Intervallen abfragen?

  1. #1

    CE Event in bestimmten Intervallen abfragen?

    Hallo,
    wie mein Topic schon aussagt, möchte ich gerne wissen, ob es möglich ist ein Common Event z.B. alle 10 Sekunden aufzurufen, damit es nicht ständig im Hintergrund läuft.

    Oder gibt es eine nicht-performancelastige-Alternativlösung? Ich habe vor eine Ortsangabe in das HUD einzubauen. D.h. wenn ich auf MapID 15 bin soll z.B. Marktplatz im HUD stehen.

    Gruß

  2. #2
    Hi

    Mach einfach ein paralleles CE mit einem Wait von 10 Sekunden ganz am Ende des CE. Übrigens reicht es auch, wenn du das Wait nur z.B. 0.1 sek. machst, das hat noch keinen Einfluss auf den Spielfluss. (Zumindest bei mir nicht. Meine Menüabfrage läuft damit super.)

    LG, Arlownay

  3. #3
    Naja noch ruckelt es ja nicht, aber gehen wir davon aus ich habe 300 verschiedene Ortsangaben, die alle 0,1s abgefragt werden. Ich denke das würde ruckeln.

  4. #4
    Die simpelste denkbare Lösung wäre das du das Event einfach dann callen lässt,
    wenn der Spieler auf ein Teleportevent tritt.
    Immerhin kann er nur so den Ort wechseln.

    Geändert von makenshi (04.07.2007 um 22:44 Uhr)

  5. #5
    @dasBAUM: Wieso? Es ist ja trotzdem nur ein CE das läuft. Oder wie willst du das machen?

    Geändert von Arlownay (05.07.2007 um 07:57 Uhr)

  6. #6
    Zitat Zitat von Arlownay Beitrag anzeigen
    @dasBAUM: Wieso? Es ist ja trotzdem nur ein CE das läuft. Oder wie willst du das machen?
    Ja, dass es nur ein Event ist, ist mir schon klar. Aber das Event wird trotzdem ziemlich lang, wegen den ganzen Forks.

    Wenn die MapID=1 ist, dann wird Picture x1 angezeigt,
    ansonsten wird gefragt, ob die MapID=2 ist, dann wird Picture x2 angezeigt, etc.

    Und wenn man da einige Zeilen drin hat, wird das denke ich mal ziemlich performancelastig sein.

  7. #7
    Ich glaube zwar nicht, dass das ein Problem ist, denn im Code wird ja nur durch die Bedingungen gefräst und die richtige gesucht und dort wird winziger Befehl ausgeführt...

    Aber du kannst es ja ausprobieren. Wenn es mit 0.1 sek. ruckeln sollte, dann erhöhst du einfach auf 1 sek oder wie du am anfang gesagt hast auf 10 sek. Das lässt sich ja superschnell abändern.

    Oder wie makenshi gesagt hat: Immer beim Teleport das richtige Bild anzeigen.

    Ich habe das bei mir so gemacht, dass ich für jeden Ort (du könnetst das für jede Map machen) eine Variabelnummer habe. Sobald du einen Ort betrittst wird im Teleport die Variabel auf den aktuellen Ort gestellt und ein CE aufgerufen, das dann das richtige Bild anzeigt. So wird der CE nur immer kurz beim Mapwechsel aufgerufen.

    Geändert von Arlownay (05.07.2007 um 12:45 Uhr)

  8. #8
    Erst die MapID bestimmen, dann mit einer Vergleichsvariable vergleichen, besteht ein unterschied wurde eine neue Map betreten. Ist dies der Fall einmal die Forks abfragen und entsprechend die Bilder anzeigen. Anschließend die Vergleichsvariable auf die MapID setzen. Anschließend einen Wait mit 0,1 Sekunden. Sollte imo die beste Methode sein!

  9. #9
    Zitat Zitat von DR_Zeph Beitrag anzeigen
    Erst die MapID bestimmen, dann mit einer Vergleichsvariable vergleichen, besteht ein unterschied wurde eine neue Map betreten. Ist dies der Fall einmal die Forks abfragen und entsprechend die Bilder anzeigen. Anschließend die Vergleichsvariable auf die MapID setzen. Anschließend einen Wait mit 0,1 Sekunden. Sollte imo die beste Methode sein!
    Die MapID mit einem CE oder mit einem PP bestimmen? Und was meinst du mit Vergleichsvariable?

  10. #10
    Wahrscheinlich so:
    Zitat Zitat
    Common-Event "Map-ID Kontrolle"

    Parallel Process

    Bedingungen:
    - Switch "Ortsanzeige AN" - ON

    <>Change Variable "Map ID", set [(Hero) Map-ID]
    <>Fork Variable "Map ID" != "Map ID Vergleich"
    <><>Change Variable "Map ID Vergleich", set "Map ID"
    <><>Call Event (CE) "Ortsanzeige"
    <>End:
    <>Wait 0,1 sec //oder ein beliebiger anderer Wert...
    <>
    Das "Ortsanzeige" CE sähe dann z.B. so aus:
    Zitat Zitat
    Common-Event "Ortsanzeige"

    Call Event

    Bedingungen:
    - keine

    <>Fork Variable "Map ID Vergleich" = 1
    <><>Show Picture '20' "Marktplatz" at [40|15]
    <>Else:
    <>Fork Variable "Map ID Vergleich" = 2
    <><>Show Picture '20' "Gasse" at [40|15]
    <>Else:
    <>[...]
    <>End:
    <>
    Hoffe es hilft dir weiter

    mfg
    Phönix Tear

  11. #11
    Zitat Zitat von DR_Zeph Beitrag anzeigen
    Erst die MapID bestimmen, dann mit einer Vergleichsvariable vergleichen, besteht ein unterschied wurde eine neue Map betreten. Ist dies der Fall einmal die Forks abfragen und entsprechend die Bilder anzeigen. Anschließend die Vergleichsvariable auf die MapID setzen. Anschließend einen Wait mit 0,1 Sekunden. Sollte imo die beste Methode sein!
    LOL

    Die Idee mit den MapId ist gut. Dabei gilt zu bedenken das ein Ort aus mehreren Maps bestehen kann und er damit so viele Forks, wie Maps in seinem Projekt braucht.

    Eine andere Lösung:

    Jedes Mal wenn ein neuer Ort betreten wird setzt ein Autostart Event eine Variable welcher Ort betreten wurde und callt das entsprechende Common Event für die Anzeige.

    Das macht insofern Sinn da ich mal davon ausgehe das man das HUD auf jeder Map sehen kann und soweit ich weiß beim Map Wechsel alle angezeigten Pictures gelöscht werden.

    So ist es zumindest bei meinen Anzeigen immer gewesen.

    D.h. du brauchst sowieso auf jeder Map ein Autostart Event welches die Anzeige wieder callt. Damit wäre das Paralell Process Event dann eh überflüssig.

  12. #12
    wieso machst dus so umständlich mach einfach beim Teleportevent das dich zur Map "Sackgasse" noch im Teleportevent ein "show picture '20': sackgasse" damit wird das vorherige Bild 20 gelöscht und es gibt keine Abfrage
    außerdem wenn du mal in ner sequenz das Bild weckschältst kommt es nicht alle 10 sekunden wieder

  13. #13
    Zitat Zitat von dasBAUM Beitrag anzeigen
    Ja, dass es nur ein Event ist, ist mir schon klar. Aber das Event wird trotzdem ziemlich lang, wegen den ganzen Forks.

    Wenn die MapID=1 ist, dann wird Picture x1 angezeigt,
    ansonsten wird gefragt, ob die MapID=2 ist, dann wird Picture x2 angezeigt, etc.

    Und wenn man da einige Zeilen drin hat, wird das denke ich mal ziemlich performancelastig sein.
    So performancelastig ist das nicht, wie du wahrscheinlich befürchtest.
    Im Notfall machst du halt immer nach 50 Abfragen einen 0.0s-wait. Das könnte zwar EVENTUELL die Ergebnisse minimal verfälschen, aber hier kommt es aufs probieren an.

    Un ein 0.0s- oder 0.1s-Wait am Ende des Common Events bringt wirklich extrem viel. Ist bei PP-Events sogar zwingen notwendig, sonst fängts bei den meisten PCs an zu ruckeln.

    Weiterhin sind 300 Forks noch sehr einfach für den Maker zu bewältigen.
    Nehme ich sehr sehr sehr stark an. Ich hab selbst einige PP-CEs mit so einigen Abfragen drin, bei mir ruckelt nix.

    Mach dir also erst dann nen Kopf, wenn es wirklich ruckeln sollte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •