Also...
In diesem Thread werde ich nach und nach, immer wieder kleine Codesnippets reineditieren, die euch das Leben mitm Maker n bisschen vereinfachen sollen. Vielleicht findet's ja jemand nützlich ^^
Event ID aus Namen auslesen:
chaosBlenders
=* Event ID aus Namen auslesen *=
~snippet~
Das ist ein kurzes Codesnippet, mit dem Ihr die entsprechende Event-ID zum angegebenen Eventnamen rausfindet.
Wie wird es genutzt?
Einfach per Call-Script Befehl:
[blockquote]$variable = $game_map.get_id_from_name(name)
Den Parameter name durch den Eventnamen in Anführungszeichen ersetzen (z.B. "HalloEvent")[/blockquote]Wichtig ist, dass jedes Event nen eigenen Namen besitzt. Haben zwei oder mehr Events den gleichen Namen, gibt die Funktion die höhchste Event ID zurück.
class Game_Map
def setup_events
@events = {} # Map event
@event_name = {}
for i in @map.events.keys
@events[i] = Game_Event.new(@map_id, @map.events[i])
@event_name[i] = @map.events[i].name
end
@common_events = {} # Common event
for i in 1...$data_common_events.size
@common_events[i] = Game_CommonEvent.new(i)
end
end
def get_id_from_name(name)
@evid = @event_name.index(name)
return @evid
end
end
Einfach über Main einfügen.
Anmerkung: ERZENGEL hat n Snippet geschrieben, mit dem die Event-ID's als Array ausgegeben werden. Vielleicht isser ja so nett, das hier zu posten ^^
Instant Transfer:
chaosBlenders
=* Instant Transfer *=
~snippet~
Das hier ist ein kleines Snippet, mit dem ihr mit Hilfe eines Switches das Fade-Out und Fade-In bei Transfer abschalten könnt. So wird der Spieler direkt und ohne Übergang auf die nächste Mapa geportet (Praktisch, wenn man z.B. ne Riesenmap aus lauter kleineren Maps machen mächte).
Wie wird es genutzt?
Zunächst muss ein Switch erstellt werden (Name ist dabei wurscht).
Die ID des Switches wird dann direkt am Anfang des Scripts eingefügt bei:
[blockquote]SWITCH_INSTATELE = switch_id
Den Parameter switch durch die ID des erstellten Switches ersetzen.
[/blockquote]Danach muss einfach der Switch AN oder AUS-geschalten werden, um den Instant-Teleport zu aktivieren oder zu deaktivieren.
class Scene_Map
SWITCH_INSTATELE = switch_id
alias cb_it_update_transfer_player update_transfer_player
def update_transfer_player
if $game_switches[SWITCH_INSTATELE] == true
return unless $game_player.transfer?
@spriteset.dispose
$game_player.perform_transfer
$game_map.autoplay
$game_map.update
@spriteset = Spriteset_Map.new
Input.update
else
cb_it_update_transfer_player
end
end
end
Einfach über Main einfügen.
Dash Stopper:
chaosBlenders
=* Dash Stopper *=
~snippet~
Hier ein kleines Snippet, um global (im ganzen Spiel) das Rennen (bei gedrückter Shift-Taste) abzuschalten.
Wie wird es genutzt?
Das Script wird einfach, so wie es ist, über Main eingefügt.
class Game_Character
def update_move
distance = 2 ** @move_speed
@real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
@real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
@real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
@real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
end
Woratana hat nen wesentlich einfacheren Weg gefunden, das Dashen zu stoppen (die Funktion muss ich irgendwie übersehen haben ^^):
Über Main einfügen:
class Game_Player
def dash?
return false
end
end
Danke nochma, Wora ^^
-chaosBlender