Ergebnis 1 bis 20 von 20

Thema: 2 Events sich gleichzeitig bewegen lassen???

  1. #1

    2 Events sich gleichzeitig bewegen lassen???

    NEUES PROBLEM....

    ich hab ma ne frage nehmen wir mal an ich habe ein charset wo der char nen speer hält der zu lang für ein charsset ist und daher die spize auf ein 2tes gepackt werden muss.

    wie muss man das skripen das sich beide events wie ein einizieges großes bewegen sprich die speersitze genau so läuft wie der char mit dem speer selbst.

    also wenn der npc eins runter geht soll der speer automatisch mitziehen und das ohne verzögerrung hoffe ihr wisst wie ich das meine






    ALTES PROBLEM....
    Hi Leute,
    ich arbeite gerade daran Dorfbewonern und sonstigen Wesen in meiner Welt ein kleinen Tagsablauf zu bescheren.
    An sich klappt alles bis jetzt Events wurden als Waypoints gesetzt,sollten NPC iwo festhängen werden die Vari. überprüft und es kommt zu alternativ Wegen.

    Aber nun kommt folgendes Problem was mich am weitermachen hindert, ok nich unbedingt aber ich bin zu faul mir die Arbeit zu machen um am Schluss zu merken das es so garnich geht. xD

    Werden Varis eigentlich beim speichern/laden mit gesichert oder würde nen npc der beim speichern vor mir stand plötzlich ganz wo anders stehen wenn ich das spiel lade?

    gibt es vor und nachteile an einem solchen skript?

    ich habe es bis jetzt so gehandhabt das bei jedem mapchange geschaut wird wie spät es ist und wo der npc um diese uhrzeit schon sein sollte. daher wird er beim betretten direkt dorthin teleportiert und läuft von da aus seinen weg weiter.

    hab ihr iwelche sachen die ich berücksichtigen sollte beim weiterausbau dieses skriptes?

    ich weiß is dumm erklärt aber alles was ihr diesbezüglich wisst kann mir sehr hilfreich sein^^

    danke.

    Geändert von Kestal (16.11.2009 um 16:55 Uhr)

  2. #2

    Users Awaiting Email Confirmation

    es wird beim Speichern alles gesichtert.

    Varis,Switches,Positionen von Events...


    Ich würde ein Common Event machen,dass je nach Uhrzeit einen Switch an oder aus macht,
    anhand dieses Switches,werden die Events gesteuert...

  3. #3
    bei mir läuft das so:
    vari sek erhöt sich sobalt diese 60 erreicht erhöht sich vari min und immer so weiter das ganze läuft mit nehm 0wait per vari erhöhung ab.

    ist es nun also 14uhr geht nen ändert der schmied seine aufgabe und macht pause.

    dann sucht nen para event denn ersten waypoint , der ein event mit eingespeicherten cords ist.

    um möglichst alle unterbrechung und festhängungen durch das mapping zu vermeiden wurden weitere waypoints so gesetzt das alle probleme möglichst umgangen werden.
    der tagesablauf brauch glaub ca 15min oder so zum durchlaufen daher sollte der weg von punkt a nach b schaffbar sein egal in welcher situation.

    15uhr sollte der schmied dann auf seiner bank sitzen und bis 16uhr pause machen, dann heißt es back to work und er läuft zurück.

    ab 20uhr is dann feierabend und er geht zur tür wird weggeportet und ist im haus.

    sollte der char sich nicht im haus befinden ändert ne vari stück für stück die position des schmiedes so das man denkt er bewegt sich im haus obwohl man nicht drinne ist.

    die vari wird dann beim betretten mit der cord des schmiedes verrechnet und jeh nachdem wann man ins haus geht liegt der schmied im bett oder ist noch auf dem weg dorthin.

    so sollte es doch machbar sein oder?
    also soweit zu meinem skript und denn weiteren überlegungen

  4. #4
    Zitat Zitat
    das ganze läuft mit nehm 0wait
    Der ist doch nur unnötig, da schon ein 1sek Wait vorhanden ist.
    Er würde nur irgendwann das Ergebnis verfälschen.

  5. #5
    es ist kein 1sec wait vorhanden???


    der 0wait ist für das hochzählen der sekunden, sprich sek +1, 0wait, sek1 .....

    auserdem versuch ich durch den 0wait den maker nich zu überfordern ich meine würd ich beim wai zwischen dem hochzählen einen 1sec wait reinmachen würde der tag ingame ja genau so lange dauern wie ein richiger in rl xD

  6. #6
    Zitat Zitat
    es ist kein 1sec wait vorhanden???
    Natürlich ist ein Wait von einer Sekunde vorhanden.
    Du stellst beim Wait Befehl ein 10 x 0.1 Sekunden ein.

  7. #7
    ja das weiß ich ja aber ich habe in mein script kein wait von 1 sekunde eingebaut sry für die fragezeichen xD

  8. #8
    Nevermind. ^^
    Ich hab deine Fragezeichen so gesehen das du in Frage stellst das es Wait von 1.0 gibt. Du hast aber gemeint das du kein Wait 1.0 im Skript hast.

    Das kommt davon wenn man etwas vor dem ersten Kaffee macht.

  9. #9
    NEUES PROBLEM....

    ich hab ma ne frage nehmen wir mal an ich habe ein charset wo der char nen speer hält der zu lang für ein charsset ist und daher die spize auf ein 2tes gepackt werden muss.

    wie muss man das skripen das sich beide events wie ein einizieges großes bewegen sprich die speersitze genau so läuft wie der char mit dem speer selbst.

    also wenn der npc eins runter geht soll der speer automatisch mitziehen und das ohne verzögerrung hoffe ihr wisst wie ich das meine

  10. #10
    Werden Move Events nicht sowieso quasi parallel ausgeführt, wenn kein Move All dazwischen liegt? Ich kann bei mir jedenfalls keine Verzögerung erkennen.

  11. #11
    es geht ja darum das die events prakisch so liegen

    [E]
    [E]

    bewegt sich also das untere event eins hoch soll gleichzeitig das darüberliegende selbiges tuhn usw.

    das ding is nur dass, das untere event auf zufallsbewegung gestellt ist

  12. #12
    ich habe jetzt mal kurz ein bisschen mit dem Maker experimentiert, und glaube dass ich dir eine Lösung anbieten kann (besteht nur leider aus parallel prozessen, schluckt also gut leistung).

    Wir nehmen jetzt mal an dass du 2 events hast, event 1 (1) und event 2 (2)

    Das Ganze sollso aussehen: (2) (1) (sie sind immer nebeneinander, genau um 1).

    Event Nr.1 stellen wir auf zufällige Bewegung und auf parallel process.

    In diesem event setzen wir nun die x-position dieses Events in einer Variable (z.B. x1) und die y-pos in einer andre (z.B. y1). (von x1 subtrahieren wir noch 1, da event 1 ja 1 rechts von event 2 sein soll, mehr dazu später)
    also:

    x1 set, this event x-coord
    x1 -1
    y1 set, this event y-coord
    wait 1

    Im Event Nr2, machen wir erstmal das selbe:


    x2 set, this event x-coord
    y2 set, this event y-coord

    nun testen wir, wo das Event 2 im Vergleich zu Event 1 steht und bewegen dementsprechend. (dieses event auch parallel)

    wait0
    Fork x1>x2
    yes| move this event : right

    no|Fork x1<x2
    yes| move this event : left

    no|Fork y1>y2
    yes| move this event : down

    no|Fork y1<y2
    yes| move this event : up

    (event 2 testet nun also, den relativen Unterschied zu event 1 (mit dem einser Unterschied aufer x-achse), und korrigiert diesen.)

    edit: event nr.2 muss allerdings begehbar sein, da sonst die bewegung nicht in richtung von event nr.2 stattfindet.

  13. #13
    Keine Sorge, mach einfach kurz danach die gleiche bewegung für doe Speerspitze, das reicht völlig. Der Zeitabstand dazwischen ist so verdammt kurz, das keiner den bemerkt.

  14. #14
    Zitat Zitat von R.D. Beitrag anzeigen
    Keine Sorge, mach einfach kurz danach die gleiche bewegung für doe Speerspitze, das reicht völlig. Der Zeitabstand dazwischen ist so verdammt kurz, das keiner den bemerkt.
    zufallsbewegung... das hilft ihm nicht viel :P

  15. #15
    siccles

    sowas ähnliches hatte ich mir schon fast gedacht hab auch schon überlegt ob ich ne zufallsvari mache die die schrittrichtung bestimmt, welche dann für beide events gilt.

    weil deins würde auch funktionieren allerdings hätte man würde man zb ein größeren gegner aus charsets in sein spiel einbauen das problem das man über den halben gegner drüber laufen könnte xD

  16. #16
    Ich habe hier keinen Maker, um es auszuprobieren und meine Erinnerung über die Makerbefehle ist leider lückenhaft geworden, aber du kannst folgendes machen:

    -von unteren Event speicherst du die X- und Y-Koordinaten in 2 Variablen (posx) und (posy). Natürlich als wiederholendes Event, um alle durch die Zufallsbewegung erfassten Positionsänderungen in die neuen Variablen zu speichern.

    unteres Event:
    ->variable posx -> event x-position
    ->variable posy -> event y-position

    wiederholen + kleines wait einbauen

    -das obere Event hat immer die gleiche Position, seine Y-Koordinate ist jedoch Y2 (Y um 1 verändert, ich erinnere mich nicht mehr, ob es bei oben +1 oder -1 ist, du wirst es sicherlich wissen), also hat es die Koordinaten (posx) und (posy2)

    oberes event:
    ->variable posy2 -> variable posy+-1
    ->poisition vom event -> posx / posy2

    wiederholen

    So müsste es klappen. Viel Erfolg.

  17. #17
    Zitat Zitat von Kestal Beitrag anzeigen
    siccles

    sowas ähnliches hatte ich mir schon fast gedacht hab auch schon überlegt ob ich ne zufallsvari mache die die schrittrichtung bestimmt, welche dann für beide events gilt.

    weil deins würde auch funktionieren allerdings hätte man würde man zb ein größeren gegner aus charsets in sein spiel einbauen das problem das man über den halben gegner drüber laufen könnte xD
    rüberlaufen könnte man nur über die felder, die direkt am rand des event1 feldes sind :P

    wenn z.B.

    (1) (2) (3)
    (4) (5) (6)
    (7) (8) (9)

    und 5 event 1 ist, wären 1 3 7 und 9 nicht begehbar

    edit: und bei deiner zufallsvariable nach denen beide laufen, würde das problem auftreten dass die beiden sich vllt trennen :

    (3)

    (2) (1)

    wenn 1 und 2 nun hochlaufen, bleibt 2 unter 3 stecken aber 1 würde weiterlaufen. Würde bei mir zwar auch passieren, allerdings würde es sich wieder korrigieren

    Geändert von Siccles (16.11.2009 um 18:53 Uhr)

  18. #18
    Zitat Zitat von Siccles Beitrag anzeigen
    zufallsbewegung... das hilft ihm nicht viel :P
    Ich denke mal, das soll doch mit diesem Waypointsystem zusammenpassen oder?
    Dann callst du einfach die Bewegung des Events und in dem Call callst das Event das mitbewegt werden soll.
    Dieser Posiabgleich ist auch die letzte Methode zu der ich greifen würde. N
    Alternativ kannst du auch den Char Expand nutzen, oder den Eventpointer.

    Edit:
    Würde das eh von außen steuern, hat man ein Event mehr und psart sich unnötoges Variablenjonglieren.

    Geändert von R.D. (16.11.2009 um 21:00 Uhr)

  19. #19
    Zitat Zitat von Kestal Beitrag anzeigen
    das ding is nur dass, das untere event auf zufallsbewegung gestellt ist
    Siccles hat schon recht.

  20. #20
    Warum kompliziert, wenn es auch einfach geht?
    Entweder du nimmst einfach den Charexpanderpatch.
    Oder aber du lässt das Event garnicht zufällig laufen, sondern lässt es nur so aussehen, als wäre es zufällig, in dem du einfach eine Route vorfertigst, die so abläuft, dass das Event am Ende wieder am Ausgangspunkt landet. (Es muss sich also genausooft nach Links wie nach Rechts bewegen bzw. Oben - Unten.)
    Hat auch den Vorteil, dass der Charakter nicht im Nirvana landet, wenn er zufällig in eine Ecke reingeht.

Berechtigungen

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