Habe die Lösung!!!
Ich stell sie gleich hier rein...
Lösung:
Script: (Über "Main" einfügen)# Script Autor: (Unbekannt)
# Script umgeschrieben von: MicroJumper
# Benutzung: Um eine Abfrage zu starten, ob das Event neben einem Spieler steht,
# zu starten, musst du unter Conditional Branch, Script, folgendes eingeben:
# Bei Abfrage, ob IRGENDEIN (Keine ID) Event auf der selben Position ist, wie der Spieler einfach folgendes eingeben:
# some_nearly_events?
class Game_Event
attr_reader :id
end
class Game_Interpreter
def some_nearly_events?
for event in $game_map.events.values
if next_to(event.id,true)
return true
end
end
return false
end
def some_passable_events_nearly?
for event in $game_map.events.values
if next_to(event.id,true) && right_priot(event)
return true
end
end
return false
end
def right_priot(event)
return true if event.priority_type == 1# || event.priority_type == 2
return false
end
def next_to(event_id1 = nil , player = false , event_id2 = nil)
if player == false
if $game_map.events[event_id1] != nil && $game_map.events[event_id2] != nil
if $game_map.events[event_id1].x == $game_map.events[event_id2].x + 1 && $game_map.events[event_id1].y == $game_map.events[event_id2].y || $game_map.events[event_id1].x == $game_map.events[event_id2].x - 1 && $game_map.events[event_id1].y == $game_map.events[event_id2].y || $game_map.events[event_id1].y == $game_map.events[event_id2].y + 1 && $game_map.events[event_id1].x == $game_map.events[event_id2].x || $game_map.events[event_id1].y == $game_map.events[event_id2].y - 1 && $game_map.events[event_id1].x == $game_map.events[event_id2].x
return true
else
return false
end
end
end
if player == true
if $game_player.direction == 2
if $game_player.x == $game_map.events[event_id1].x
if $game_player.y == $game_map.events[event_id1].y
return true
end
end
end
if $game_player.direction == 4
if $game_player.x == $game_map.events[event_id1].x
if $game_player.y == $game_map.events[event_id1].y
return true
end
end
end
if $game_player.direction == 6
if $game_player.x == $game_map.events[event_id1].x
if $game_player.y == $game_map.events[event_id1].y
return true
end
end
end
if $game_player.direction == 8
if $game_player.x == $game_map.events[event_id1].x
if $game_player.y == $game_map.events[event_id1].y
return true
end
end
end
return true
else
return false
end
end
end
Event:Event-Seite 1:
http://makrosoftware.jimdo.com/s/cc_images/cache_2015258710.jpg?t=1269872671
Event-Seite 2:
http://makrosoftware.jimdo.com/s/cc_images/cache_2015258610.jpg?t=1269872718
Event-Seite 3:
http://makrosoftware.jimdo.com/s/cc_images/cache_2031271810.jpg?t=1269872772
Hallo an alle^^
Ich brauche Hilfe bei einem Event... (kann vielleicht auch scripterisch gelößt werden)
also...
wenn man ein event macht, das auf "Unterhalb des Spielers", "Spieler berühren" eingestellt ist und es wenn das passiert z.B. eine Nachricht ausgibt,
gibt das Event eine Nachricht aus, wenn der Spieler auf das Event drauf lauft. Soweit so gut!
Meine Bitte:
Ich brauche eine methode, die es möglich macht, dass, wenn der Spieler schon auf dem event draufsteht, dass die Nachricht z.B. solange ausgegeben wird, bis der Spieler weggeht.
Es sollte ziemlich allgemein sein und das ist auch mein Problem!!
Beispiel:
Das Event soll z.B. per "Call Script": $update_event, dass event sozusagen neustarten und erneut abfragen, ob der Spieler gerade auf dem Event ist.
Und dass sollte nicht über Event_ID oder so funktionieren, sondern immer für dass Event, welches den "Call Script" gerade anwendet!
SOOOOOOO HIER NOCHMAL NE ERKLÄRUNG MIT VIDEO (Erklärung Seperat -.-)
Erklärung: (schaut euch bitte zuerst oder während ihr lest das Video an!)
Also... wie ihr oben IM VIDEO sehen könnt schwebt ein ring in der luft.
Das Event selbst ist der Schatten des Rings,
d.h. wenn Sonic auf den Schatten des Rings kommt,
passiert etwas, wenn eine Bedingung erfüllt ist. Also Sonic kann unter dem Ring laufen,
ohne das was passiert, wenn die Bedingung nicht erfüllt ist! Soweit so gut!
Ich brauche es so, dass wenn der Spieler auf dem Event ->
(Schatten des Rings) steht und (eine Taste drückt) -> Springt,
dass dann der Ring sozusagen "eingesammelt" wird.
Das klappt aber nicht, weil das Event nur beim Draufgehen
auf das Event die Eventseiten aktiviert.
z.B.:
Sonic geht auf den Schatten des Rings -> Event wird aktiviert,
bleibt aber durch Bedingungen unaktiv.
Sonic bleibt auf dem Schatten und drückt bedingte Taste -> passiert nix
Was ch brauche:
Sonic geht auf den Schatten des Rings -> Event wird aktiviert,
bleibt aber durch Bedingungen unaktiv.
Sonic bleibt auf dem Schatten und drückt bedingte Taste -> Ring wird eingesammelt
Kompliziert neh^^
Danke an alle die helfen!
Anschaulichkeits-Video:
http://www.myvideo.de/watch/7433828/Sonic_v_X_Brauche_Hilfe
Ich weiß ist glaub ich komisch erklärt, aber besser gehts meines wissens nicht^^
bitte bitte helft mir... ist wichtig für mein Sonic Projekt!!!
Heyho :D ich glaub ich hab.....
und nein keine parallel oder autoruns bitte... -.- klappt alles nicht.
sry^^'.. naja hatte da son spontanen gedanken was ein tuche/parallel-event angeht
wenn das dir nicht weiterhilft dann kapier ich echt nicht was du suchst... :3
Eventseite 1 : Touch
(http://s2.imgimg.de/uploads/rauflaufdiiings13ef617e1jpg.jpg)
Eventseite 2 : Parallel
(http://s2.imgimg.de/uploads/rauflaufdiiings2e5d84a0fjpg.jpg)
ich diesem beispiel bekommt man jede halbe sekunde 1 gold solange man drauf steht
Es sollte ziemlich allgemein sein und das ist auch mein Problem!!
meinst du damit das es vielseitig eigesetzt werden kann ohne dass man immer wieder alles neu einzustellen muss?
>allgemein<... hmm ^^' wenn ja damit sollte das auch gehen.
(K.A .ob man das per Script besser lösen kann wahrscheinlich schon aber sowas kann ich ja nich habt erbahmen ihr weisen Gotter des Vx'es!)