PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Event nur aktiv, wenn Held darauf steht?



Sushi
30.08.2010, 23:09
Ich grüß euch.
Ich bin im Moment am überlegen, ob es eine Möglichkeit gibt ein Event zu erstellen, welches nur aktiv ist, wenn der Held darauf steht.
Also, beispielsweise: Der Held stellt sich auf das Event - es erscheint ein Picture.
Nun geht der Held wieder von dem Event runter - Bild soll verschwinden.

Geht das?
Habe bereits etliche Sachen ausgetestet, aber nichts hilft irgendwie.

RandyTheZeldaFan
30.08.2010, 23:16
Du musst die Variablen vom Helden und vom Event abfragen in nem Fork


If Variable Held X, Y equal to Event X Y
Show picture no. x

else
Erase pic no. x


nur so denke ich wirst du dein problem lösen können

Sushi
30.08.2010, 23:19
Ja ich wollte es halt sehr schlicht halten, ansonsten müsste ich für jede Map die Koordinaten abfragen.
Oder die Koordinaten des Helden in die Common Events?

R.F.
30.08.2010, 23:43
Das ganze würde natürlich 2 Events benötigen:
das, welches die Koordinaten abfragt und
das, welches aktiviert werden soll.

Im Grunde kommt es nur darauf an, wie oft solche Events auftauchen. Wenn es selten ist, dann würde ich nur die Events kopieren, da kann man sich wenigstens sicherer sein, dass sie nicht mit anderen Events kollidieren. Ist es natülich essenziell, dann natürlich CommonEvent. Allerdings frag ich mich, ob man das nicht auch in eines packen kann, was beide Parts übernimmt. Ist alles nur eine Frage, wofür es da sein soll.

Dhan
30.08.2010, 23:43
Machs über Terrain ID: Statt einem Event nimmst du einfach ein Tile, dem du eine sonst nicht verwendete Terrain ID gibst, sollen es verschiedene Untergründe sein, kannst du ja einfach Events drübersetzen die nur Grafik liefern.
Anschließend speicherst du die Koords des Helden, schaust ob da deine Terrain ID is und wenn ja, Picture.

R.D.
30.08.2010, 23:45
Ja ich wollte es halt sehr schlicht halten, ansonsten müsste ich für jede Map die Koordinaten abfragen.
Oder die Koordinaten des Helden in die Common Events?

Machs dir doch einfach, du erstellt ein Mapevent mit das ein PP ist, das fragt dann seine eigene Position und die des Helden ab, wenn die übereinstimmen - also (Gegner X - Hero X = 0 etc.)- dann zeigst du das bild an, wenn nicht löscht du die ID, das ganz mit 3x 0.0 waits :A

Sushi
31.08.2010, 17:44
Ah, ok. Ja das hilft mir. Dann werd ich das mal ausprobieren, besten Dank.
An ein Parallel-Event hab ich noch gar nicht gedacht.
Ich wollte das ganze nämlich am liebsten in EINEM Event haben. Da es sowas öfter geben wird und ich keine Lust habe für jede Map mehrere Events immer zu kopieren.

Außerdem je kompakter die Sache, desto einfacher ;)

Besten Dank an alle.

R.D.
31.08.2010, 18:30
Achso, dann machs mit einem PP, welches darauf wartet das ein Switch "XXX" angeht. Dann machst du Map Event welches den Switch "XXX" an macht und eine Variable "YYY" - die eine ID speichert, für verschiedene Bilder - auf eine Wert.

Das Mapevent sieht dann so aus:

if XXX is OFF then
switch XXX = ON
vari YYY = wert
end:

Das PP wartet (wieder mit 3x 0,0) darauf das XXX angeht und wenn ja, speichert er X- und Y-Pos des Helden. und zeigt das Bild an. Solange der Switch On ist fragst du immer wieder ab ob sich X- und Y-Pos verändert haben:

if XXX is On then
vari PosX = Held X
vari PosY = Held Y
note : ID abfragen etc
vari PosX2 = Held X
vari PosY2 = Held Y
if PosX != PosX2 then
if PosY != PosY2 then
note: lösche Bild
Switch XXX OFF
end:
end:
wait 0,0
wait 0,0
wait 0,0
else
wait 0,0
wait 0,0
wait 0,0
end:

Kann sein, das da noch Fehler drin sind, aber ich hoffe du hast es verstanden :) Damit brauchst du dann nur noch in die drauf stellt Event, die ID ändern.

Sushi
31.08.2010, 20:58
@R.D.: Dann habe ich aber trotzdem das Problem, dass ich 2 Events habe und 2 Variablen für das Event. Also einmal die Koordinaten des Helden (sind im Commen Event - also fein raus) und die Koordinaten für das zu aktivierende Event.

Ist es möglich, wenn ich das ParallelEvent als unter-held auf die Position packe wo sie aktiviert werden soll. Und sie dann mit einer Bedingung einstelle, wenn die Held Koordinaten gleich dieses Events sind, ohne das dieses Event 2 Extravariablen bekommen? Also nur durch das reine betreten die Koordinaten gleichgesetzt werden können?

Oder geht das nur mit Dhans Möglichkeit mit dem Terrain?

relxi
01.09.2010, 13:35
Es geht auch mit deiner Möglichkeit, ohne Zweifel.

Sushi
01.09.2010, 17:46
@relxi: Ja aber wie? Weil ich meine, dass der Maker die Bedingung nicht hat, oder?

Omega_3
01.09.2010, 18:10
Wenn ich es jetzt richtig verstanden habe:
Erstelle das Event, auf das der Held laufen soll, und stelle ein das dort ein Pic angezeigt wird, und ein switch aktiviert wird. Als 2. Page machst du ein PP event das sich aktiviert wenn der switch an ist:




- SCRIPT -
<> Change Variable: [1] = X position on map (tiles) of hero
<> Change Variable: [2] = Y position on map (tiles) of hero
<> Loop
. <> Change Variable: [3] = X position on map (tiles) of hero
. <> Change Variable: [4] = Y position on map (tiles) of hero
. <> Fork Condition: If Variable [1] anders V[3] then ...
. . <> Erase Picture: #1

. . <> Change Switch: [1] = OFF
. . <>
. : Else ...
. . <> Fork Condition: If Variable [2] anders V[4] then ...
. . . <> Erase Picture: #1

. . . <> Change Switch: [1] = OFF
. . . <>
. . : End of fork
. . <>
. : End of fork
. . <> Wait: 0,1 sec.
. <>
: End of loop
<>



Es wird also alle 0,1 sekunden geprüft ob der held noch die koordinaten hat, und wenn nicht wird das Bild gelöscht.

Die beiden pages sind in einem event, und dieses kann einfach so kopiert werden.

Leana
01.09.2010, 21:08
Wenn der Held vom Spieler gesteuert wird, dann kannst du auch folgendes machen:

Held berührt Event -> Picture wird angezeigt. Dann wird über Key Input Proc gewartet, bis eine der Pfeiltasten aktiviert wird. Dann Picture wieder löschen.

Sollen außer den Pfeiltasten noch weitere Tasten wirksam sein, aber nur auf die Pfeiltasten reagiert werden, dann musst du halt nach Key Input Proc noch ne Abfrage reinbauen und das ganze in ne Schleife packen. Ich hoffe, du verstehts, wie ichs mein.

Dhan
01.09.2010, 22:28
Kurz in den Raum gefragt, was passt an der Terrain ID-Lösung nicht? Spart massiv Code, ich mein, alles was es braucht ist:

Var X = Hero X Coords
Var Y = Hero Y Coords
Set Terrain ID (X,Y,ID)
fork (ID = 35) {show pic 1 blabla} else {erase pic 1}
wait 0,0s



Held berührt Event -> Picture wird angezeigt. Dann wird über Key Input Proc gewartet, bis eine der Pfeiltasten aktiviert wird. Dann Picture wieder löschen.


Nett gemeint, aber wenn man eine Taste gedrückt hält, aktiviert sie ein "Wait Until Key Hit" nicht, sprich wenn man nicht kurz auf dem Feld stehenbleibt, funzt das nicht (dem Maker fehlt echt eine "Until Hero Moves"-Bedingung)

Cherry
01.09.2010, 22:43
Kurz in den Raum gefragt, was passt an der Terrain ID-Lösung nicht?

Ich denke mal, die ist nicht ideal, weil sowas ja meistens für eine Ortsnamenanzeige o.ä. genutzt wird, und dafür braucht man weit mehr als 1 Terrain ID. Und entsprechend viele verschiedene (für nichts anderes nutzbare) Tiles im Chipset. Und das zahlt sich nicht aus.

relxi
01.09.2010, 23:41
@sushi: ich dachte, du wüsstest es? Na dann:
Erst einmal "Variable [0001:HeldXPos] = Sprite Hero X Coordinate" setzen
dann "Variable [0002:HeldYPos] = Sprite Hero Y Coordinate" setzen
"Variable [0003:EventXPos] = Sprite Event001/This Event X Coordinate" setzen
"Variable [0004:EventYPos] = Sprite Event001/This Event Y Coordinate" setzen
Dann eine Bedingung "wenn Variable [HeldXPos] = Variable [EventXPos] dann
wenn Variable [HeldYPos] = Variable [EventYPos] dann
*Hier soll stehen, was eben passiert*
bla
bla
*hier, am Ende, dann Waits*

Dhan
02.09.2010, 00:21
@Cherry: Dann kombiniert man das mit einen Below Hero On Hero Touch Event an der Stelle des Ortes, das ganz einfach noch eine Variable verändert - für jeden Ort eine Vari und der PP ändert sich dementsprechend in

Var X = Hero X Coords
Var Y = Hero Y Coords
Set Terrain ID (X,Y,ID)
fork (ID = 35) {
__fork (Ortsvari = 1) {show pic 1 Dorf1.png }
__fork (Ortsvari = 2) {show pic 1 Dorf2.png }
..
} else {erase pic 1}
wait 0,0s

(bzw bei sehr vielen Orten PPP)

edit: bei diesem Skript brauchts noch einen Switch, der vom Below-Hero-Ortsevent aktiviert wird und hinter erase pic 1 deaktiviert wird und Bedingung für die ganzen show pics ist - das Terrain-PP ist nämlich nen Tick schneller als das Below-Hero-Ortsevent


Aber du hast mich da auf was Wichtiges gebracht:
@Sushi: Was ist überhaupt der Kontext? Also was genau willst du dir bauen? Bei vielen Sachen hats Alternativideen oder sonstigen Krams für den man das Problem selbst kennen muss ^^

Sushi
02.09.2010, 21:23
Aber du hast mich da auf was Wichtiges gebracht:
@Sushi: Was ist überhaupt der Kontext? Also was genau willst du dir bauen? Bei vielen Sachen hats Alternativideen oder sonstigen Krams für den man das Problem selbst kennen muss ^^

Also mein Problem ist: Ich möchte, dass ein Bild angezeigt wird wenn man vor einem Objekt steht. Beispielsweise man geht vor eine Kiste (ohne irgendwas zu drücken) und dann erscheint über der Kiste ein Bild mit "öffnen". Dieses Bild erscheint nur, wenn der Held: 1.direkt vor der Kiste auf dem Feld steht; 2. auch in die Richtung der Kiste schaut.

Ich habe es so gesehen jetzt. Jedem Event wird 2 Variablen zugeordnet, einmal die X-Koordinate und eben die Y-Koordinate.

http://npshare.de/files/4ddfaa03/Unbenannt.png

Probleme treten dann auf, wenn ich mehrere solcher Events auf einer Map habe, da die Bildnummer gleich ist und das ein PP ist, sodass dann alle auf der Map aktiviert werden - zumindest das löschen des Picture, da der Held ja die Koordinaten nicht erfüllt, sondern auf einem anderen Feld steht.

Was ich nun will, ist eine vereinfachte und kompakte Version davon. Also am besten eben ohne groß Variablen, denn wenn man sowas 4-5mal auf einer Map hat, bin ich ja pro Map bei mindestens 10Variablen, dass wär eine Mammutarbeit ohne Grenzen.
Vielleicht doch mit der Terrain ID? Dann würde ich dich die Variablen umgehen?

Leana
02.09.2010, 21:57
Bin mal so frei und zitiere mich selbst:

Wenn der Held vom Spieler gesteuert wird, dann kannst du auch folgendes machen:

Held berührt Event -> Picture wird angezeigt. Dann wird über Key Input Proc gewartet, bis eine der Pfeiltasten aktiviert wird. Dann Picture wieder löschen.

Sollen außer den Pfeiltasten noch weitere Tasten wirksam sein, aber nur auf die Pfeiltasten reagiert werden, dann musst du halt nach Key Input Proc noch ne Abfrage reinbauen und das ganze in ne Schleife packen. Ich hoffe, du verstehts, wie ichs mein.
Hier brauchst du nur eine Variable und könntest das Event beliebig oft kopieren, ohne etwas ändern zu müssen.

Dhan
02.09.2010, 23:08
Jo, in dem Fall gehts mit Leanas Lösung weil wenn man erstmal in richtiger Position ist nur ein Richtungswechsel vom Feld führt und der aktiviert den Enter Password auf jeden Fall, allerdings musses noch leicht erweitert werden damit man, wenn man gegen die Truhe drückt, das Bild noch sieht, mit einer einfachen Richtungsabfrage in das Enter Password geht das aber.

Mit meiner Methode wärs auch leicht machbar, insbesondere weil das Feld unter der Truhe ja meist nicht sichtbar ist - du packst das einmalige Terrain unter die Truhe, speicherst ständig die Heldenkoords und erweiterst sie um einen Schritt in Blickrichtung.
Der Vorteil dieser Methode wäre immer noch, dass du pro Karte lediglich ein Event brauchst, insbesondere wenn das Öffnen-Bild bei jeder Truhe gleich ist


Auch eine sehr simple Lösung: ordne Events sternförmig um die Truhe wie hier:
http://dhan.de/star.png
Die weißen Scherben machen einfach:
Below Hero, On Hero Touch
fork(Hero Face Dir Richtung Truhe) {show pic, switch bla ON}

Die roten Scherben:
Below Hero, On Hero Touch
erase pic, switch bla OFF

Und die Truhe:
Seite 1: Same Level as Hero, On Hero Touch
show pic, switch bla ON
Seite 2: Same Level as Hero, Push Key, Bedingung switch bla
(normaler Truheninhalt)

("Scherben" sind hier nur zur Übersicht, natürlich sind die Events unsichtbar)

braucht viele Events aber keine einzige Variable und funktioniert garantiert problemfrei und die Events sind ja sehr schnell erstellt und sehr schnell kopiert
würd ich dir sogar empfehlen - je einfacher der Code, desto besser und einfacher gehts wohl nicht

Leana
03.09.2010, 13:59
Mir ist grad aufgefallen, dass beim 2k die "unerwünschten" Richtungstasten nicht deaktiviert werden können. Dann ist meine Lösung eigentlich viel zu umständlich. Dhans 2. Vorschlag ist aber so oder so besser ;)

BDraw
03.09.2010, 15:27


Mach doch einfach ein PP dass die Heldenposition und Blickrichtung abfragt und dann eben schaut, ob die Position Anlass für'n Pic gibt.
Du weißt ja auf welche Koordinaten du das jeweilige Event (Truhe, Kiste, bla) gepackt hast. Dann fragst du eben ab, ob die Koordinaten des Helden gleich der eines der umliegenden Felder ist und falls ja, wie die Blickrichtung ist.

Ein bedeutender Mehraufwand ist das auch nicht, da du je nur, sobald du das Truhenevent platziert hast, ein paar neue Forks einbauen musst - was per Copy&Paste sogar sehr fix geht.
Mit dieser Methode hättest du alles wichtige in einem Event - solltest aber zu große Maps vermeiden, da ich mir gerade nicht sicher bin, wie sich das auf die Performance auswirkt wenn man da zu viele Abfragen reinpackt.

Alternative Idee wäre, du fragst ab, ob auf einemd er vier an den Helden angrenzenden Feldern ein Event liegt - wenn ja, setzt du ne Variable, die auf dieser Map für's Bilder anzeigen gut ist, auf die jeweilige Event-ID. (bspw.) Wenn da nichts ist, isse eben 0.
N anderes Event hat als Startevent dass die Variable größer 0 ist - und zeigt das Bild an, je nach dem Wert der Variable eben.

EDIT:
Hier mal als Script. (http://npshare.de/files/620f456a/Aktionsscript.zip)

Man kann einen NPC ansprechen, eine Truhe öffnen, auf nen Schalter treten und ein Schild lesen.
Man braucht eigtl. nur Copy&Paste wenn man was neues einbauen will, man muss nur bei der Abfrage die Event-ID angleichen - also am besten dem Event erst nen Namen geben, nachdem du dir die ID gemerkt hast. Bei Ttuhen musst außerdem noch für jede Truhe nen Switch angleichen, damit bei ner geöffneten Truhe nicht auch "Öffnen" erscheint - eben den, den du auch bei Truhe verwendet hast.
Die Methode hat vor allem den Vorteil, dass du zum einen bei den Events selbst nichts außer der ID beachten musst und dass du sie auch für bewegliche Events wie eben NPCs nutzen kannst. Bei Dhans Methode würde es schon sehr kompliziert, da weder die Terrain-ID noch extra-Events die drumrum platziert werden da komfortabel wären.

Ich bin mir zwar gerade nicht sicher ob das genau das ist,w as du wolltest, aber auch okay. Es ist... multifunktiuonal. xD

Hier mal der Code aus dem Script zur Veranschaulichung.

Hier der 1. PP:


- SCRIPT -
<> Change Variable: [1] = X position on map (tiles) of hero
<> Change Variable: [2] = Y position on map (tiles) of hero
<> Get Event ID: (V[1], V[2]), Store in var. [3]
<> Fork Condition: If Variable [3] == 0 then ...
. <> Fork Condition: If Hero is facing up then ...
. . <> Change Variable: [2] -= 1
. . <>
. : Else ...
. . <> Fork Condition: If Hero is facing right then ...
. . . <> Change Variable: [1] += 1
. . . <>
. . : Else ...
. . . <> Fork Condition: If Hero is facing down then ...
. . . . <> Change Variable: [2] += 1
. . . . <>
. . . : Else ...
. . . . <> Fork Condition: If Hero is facing left then ...
. . . . . <> Change Variable: [1] -= 1
. . . . . <>
. . . . : End of fork
. . . . <>
. . . : End of fork
. . . <>
. . : End of fork
. . <>
. : End of fork
. <> Get Event ID: (V[1], V[2]), Store in var. [3]
. <> Wait: 0,0 sec.
. <>
: End of fork



Und der 2.PP:


- SCRIPT -
<> Fork Condition: If Variable [3] == 0 then ...
. <> Fork Condition: If Variable [4] != V[3] then ...
. . <> Change Variable: [4] = V[3]
. . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 100%, 0,3 sec., Wait
. . <> Erase Picture: #1
. . <>
. : End of fork
. <>
: End of fork
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Comment: NPCs
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Fork Condition: If Variable [3] == 6 then ...
. <> Fork Condition: If Variable [4] != V[3] then ...
. . <> Change Variable: [4] = V[3]
. . <> Show Picture: #1, Lesen, (29, 228), Mgn 100%, Tsp 100%
. . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 0%, 0,3 sec.
. . <>
. : End of fork
. <>
: End of fork
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Comment: SCHILDER
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Fork Condition: If Variable [3] == 3 then ...
. <> Fork Condition: If Variable [4] != V[3] then ...
. . <> Change Variable: [4] = V[3]
. . <> Show Picture: #1, Reden, (29, 228), Mgn 100%, Tsp 100%
. . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 0%, 0,3 sec.
. . <>
. : End of fork
. <>
: End of fork
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Comment: TRUHEN
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Fork Condition: If Variable [3] == 4 then ...
. <> Fork Condition: If Switch [1] == OFF then ...
. . <> Fork Condition: If Variable [4] != V[3] then ...
. . . <> Change Variable: [4] = V[3]
. . . <> Show Picture: #1, Oeffnen, (29, 228), Mgn 100%, Tsp 100%
. . . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 0%, 0,3 sec.
. . . <>
. . : End of fork
. . <>
. : Else ...
. . <> Change Variable: [4] = V[3]
. . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 100%, 0,3 sec., Wait
. . <> Erase Picture: #1
. . <>
. : End of fork
. <>
: End of fork
<> Wait: 0,0 sec.
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Comment: SCHALTER
<> Comment: --------------------------------------------------------------------------------------------------------------------
<> Change Variable: [1] = X position on map (tiles) of hero
<> Change Variable: [2] = Y position on map (tiles) of hero
<> Get Event ID: (V[1], V[2]), Store in var. [3]
<> Fork Condition: If Variable [3] == 5 then ...
. <> Fork Condition: If Switch [2] == OFF then ...
. . <> Fork Condition: If Variable [4] != V[3] then ...
. . . <> Change Variable: [4] = V[3]
. . . <> Show Picture: #1, Druecken, (29, 228), Mgn 100%, Tsp 100%
. . . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 0%, 0,3 sec.
. . . <>
. . : End of fork
. . <>
. : Else ...
. . <> Change Variable: [4] = V[3]
. . <> Move Picture: #1, (29, 228), Mgn 100%, Tsp 100%, 0,3 sec., Wait
. . <> Erase Picture: #1
. . <>
. : End of fork
. <>
: End of fork
<> Wait: 0,0 sec.


Auf der Map, auf die sich das Bezieht, hat mein NPC eben die Event-ID 6, die Truhe 4, der Schalter 5 und das Schild die ID 3.
Die beiden Switches Truhe1 und Schalter1 sind eben die üblichen Switches die in Truhen- und Schalter-Events verwendetw erden um dem Maker zu sagen dass das Teil aktiviert/geöffnet wurde.

Ich muss aber gestehen ich bin mir nicht sicher wie's bei dem Teil mit der Performance bei größeren Maps mit vielen Events aussieht, aber ich denke es sollte nicht zu Problemen kommen...
Achja, und: Wenn man auf nem Event steht, das direkt unter einem liegt, hat das immer Vorrang. Da ist noch n kleiner Bug drin - der Schalter wurde aktiviert, also zeigt der Maker das "drücken" Bild nicht an - aber auch kein anderes, da er NUR den SChalter gerade abfragt, auch wenn man vor etwa nem Schild steht.
Ich weiß gerade nicht wie ich das lösen könnte. =/
Mit einigen extra-Abfragen, klar, aber das würde das ganze wieder für meinen Geschmack zu umständlich machen.
Da wäre es vermutlich am besten, fürs Erste so zu mappen, dass die Situation nicht auftritt...

EDIT2:
Wozu genau brauchst das jetzt eigtl. wenn man AUF einem Event steht? Schalter bspw. aktivieren sich ja meist schon durch berührung. Bei Truhen, etc. gehts ja darum,d ass der Held DAVOR steht.
Wenn du's nur für Teleporter etc. brauchst ist der Bug egal, nur eben bei nur einmalig benutzbaren Sachen isses was komplizert... Hast du viele Events die unter diese Kategorie fallen?

Felski
12.09.2010, 23:58
Hier mal eine Lösung für: Ich steh auf dem Event und es zeigt ein Bild. Dann geh ich runter und das Bild ist weg.
Obendrein:
nur 4 Variablen kopierbar -> mehrere pro Map



- SCRIPT -
<> Change Variable: [13] = X position on screen (pixels) of this event
<> Change Variable: [14] = Y position on screen (pixels) of this event
<> Change Variable: [14] -= 40
<> Show Picture: #1, AmtsUE0000, (V[13], V[14]), Mgn 100%, Tsp 0%
<> Loop
. <> Change Variable: [11] = X position on map (tiles) of hero
. <> Change Variable: [12] = Y position on map (tiles) of hero
. <> Change Variable: [13] = X position on map (tiles) of this event
. <> Change Variable: [14] = Y position on map (tiles) of this event
. <> Fork Condition: If Variable [11] == V[13] then ...
. . <> Fork Condition: If Variable [12] == V[14] then ...
. . . <> Wait: 0,0 sec.
. . . <>
. . : Else ...
. . . <> Erase Picture: #1
. . . <> Break Loop
. . . <>
. . : End of fork
. . <>
. : Else ...
. . <> Erase Picture: #1
. . <> Break Loop
. . <>
. : End of fork
. <> Key Input Processing: Var. [1], Keys: Directional keys
. <> Fork Condition: If Variable [1] == 1 then ...
. . <> Move Event: Hero, Frq 8, Ignore impossible moves, Pattern: Mv down
. . <> Erase Picture: #1
. . <>
. : Else ...
. . <> Fork Condition: If Variable [1] == 2 then ...
. . . <> Move Event: Hero, Frq 8, Ignore impossible moves, Pattern: Mv left
. . . <> Erase Picture: #1
. . . <>
. . : Else ...
. . . <> Fork Condition: If Variable [1] == 3 then ...
. . . . <> Move Event: Hero, Frq 8, Ignore impossible moves, Pattern: Mv right
. . . . <> Erase Picture: #1
. . . . <>
. . . : Else ...
. . . . <> Fork Condition: If Variable [1] == 4 then ...
. . . . . <> Move Event: Hero, Frq 8, Ignore impossible moves, Pattern: Mv up
. . . . . <> Erase Picture: #1
. . . . . <>
. . . . : Else ...
. . . . . <> Fork Condition: If Variable [1] == 5 then ...
. . . . . . <> Fork Condition: If Hero is facing up then ...
. . . . . . . <> Comment: Hier am Besten ein Call Event das die Truhe aufruft um sie zu öffnen. =D
. . . . . . . <>
. . . . . . : End of fork
. . . . . . <>
. . . . . : End of fork
. . . . . <>
. . . . : End of fork
. . . . <>
. . . : End of fork
. . . <>
. . : End of fork
. . <>
. : End of fork
. <>
: End of loop

BDraw
13.09.2010, 07:53
Hat auf den ersten Blick 3 große Probleme.
1. - Man kann eben nicht mehrere auf eine Map packen, da dann alle auf dieselbene Variablen zugreifen und sich in die Quere kommen würden. Man müsste bei jedem dann die Variablen austauschen.
2. - Bei deinem Truhenbeispiel: Ich stehe vor ner Truhe, drücke nach "oben" - bewege mich aber nicht, weil ja die Truhe davor steht. Trotzdem verschwindet dann das Bild,w eil die Taste abgefragt wird anstatt der Bewegung.
3. - Wenn der Held weit oben auf der Map steht kann es passieren, dass das Picture außerhalb der Map angezeigt wird.

Mag aber sein, dass ich da auch nur wo aufm Schlauch stehe, da du ja gerade sagtest, es sei kopierbar....

Dhan
13.09.2010, 09:08
Ich habs nicht getestet aber es könnte sein, dass der Maker die Rechenzeiten derart langsam verteilt, dass die PPs tatsächlich jeweils sequentiell durchgeführt werden - dennoch, der Maker beherrscht keine synchronized-Funktion für Threads, daher bleibt das unsauber auch wenns praktisch klappen kann.


Was mich wundert, ist, dass du (BDraw) fragst, wozu Sushi es braucht... das hat er doch geschrieben.
Ich möchte, dass ein Bild angezeigt wird wenn man vor einem Objekt steht. Beispielsweise man geht vor eine Kiste (ohne irgendwas zu drücken) und dann erscheint über der Kiste ein Bild mit "öffnen". Dieses Bild erscheint nur, wenn der Held: 1.direkt vor der Kiste auf dem Feld steht; 2. auch in die Richtung der Kiste schaut.

BDraw
13.09.2010, 10:01
Jop, aber mich hatte gewundert, dass er erst fragte wie man es macht, dass ein Pic angezeigt wird wenn man AUF nem Event steht, und dann plötzlich VOR nem Event (eben bspw. ner Truhe).
Ich weiß jetzt nicht ob er's nur für Events benutzen will, die vor dem Helden stehen (dann wäre der Ganze Quark der ausgelöst wird, wenn der Held vor UND auf was steht eh erledigt), oder für beides, oder auch für NPCs - die sich ja bewegen, wodurch eben das Platzieren von Events drumrum hinfällig wäre.
Dazu kommt, dass man bei Schaltern berücksichtigen muss, dass die meist nur einmal benutzt werden können, was man auch wieder extra berücksichtigen muss.

War mir zumindest jetzt nicht ganz ersichtlich, daher bin ich mal von allem ausgegangen.
Wenn er's für was ganz spezielles braucht kann man das Script eben auch dadrauf zuschneiden; bei allgemeinem Gebrauch dagegen muss man zusehen, dass das Script nicht in Fall xy rumzickt und möglichst vielfältig einsetzbar ist, ohne dass an's ständig anpassen muss.

Felski
13.09.2010, 15:43
es ist kopierbar, weil zwei dieser events nicht aufeinander liegen!
es ist also zeit zwischen zwei events
das sie dann dieselbe variable benutzen ist dann kein problem

Edit:
habs eben mal mit 2 Events dieser Art getestet die nebeneinander liegen. Das geht nicht.
Aber solange du zwei dieser Events nicht nebeneinander setzts geht es einwandfrei.
Edit2:
Bei mir ists nur ein Event auf One Hero Touch.
Wenn man davon runter geht ist das Bild auch schon wieder weg. Also sind alle Variablen wieder frei.

Sushi
14.09.2010, 20:29
Also haben es jetzt geschafft, mit Canlace Hilfe ;)
Wir benötigen dazu keine Variablen, es ist ganz einfach. Die Events um die "Truhe (Objekt) darum mit Bild anzeigen und löschen. Sind zwar mehr Events, aber das ist simpler und geht auch schneller.

Felski
14.09.2010, 21:55
also vier events zum anzeigen um die truhe und um die vier events nochmal drei zum löschen?
klingt für mich nach zu viel arbeit. aber jeder wie er mag^^

Handschuh
15.09.2010, 20:39
Viel copy&paste :D

R.D.
16.09.2010, 13:58
@Sushi
Ich wollte noch einmal sagen, das man bei meiner Variante nicht 2 Events pro Bild brauch, sondern nur ein Event, das alles lenkt und eine beliebige Anzahl an Events, die dem Controller halt ein Ereignis liefern.