Leider funzt es nicht so ganz. Das Enhanced Default Menu System funktioniert nur, wenn man alle Journal Scripts rausnimmt.
Dann steht nun auch das Journal in der Liste beim neuen Menü, aber ohne Journal lässt sich da natürlich nichts öffnen.
Mit Q lässt sich, sofern vorhanden das Journal aber schon öffnen (hätt ich wirklich früher merken sollen).
EDIT:
Wegen den Namen eines Events ändern... ich brauch es unbedingt so, dass der Name bleibt.
Wenn ich die Map verlasse, und wieder zurück komme, ist der Name wieder der selbe wie zuvor.
Und wer ein Script hat, welches Animationen unter einem bestimmten Terrain versteckt, dem wäre ich auch sehr dankbar.
Ich glaube nicht, dass es einfach so möglich ist den Namen eines Events permanent zu ändern da dieser nicht im Speicherstand sondern in der Karte gespeichert wird. Und wie wir wissen wird nicht für jeden Speicherstand die gesamte Menge aller Karten einmal kopiert.
Aber vielleicht erzählst du uns einmal wofür du diese Möglichkeit überhaupt brauchst und dann könnten wir dir wahrscheinlich einen besseren Weg zeigen welcher einfacher umzusetzen sein wird.
Um den Namen einer Figur im Spiel zu erfahren muss man erst dannach fragen.
Der Name steht jeweils über der Textbox und wird automatisch durch's Hermes Script über der Textbox angezeigt.
Deswegen müsste er permanent verändert werden, da der Name, der über der Textbox steht aus dem Event-Namen geholt wird.
Soll das ein Witz sein?
Verändere einfach das andere Script um den Namen manuell in der Textbox ändern zu können.
Du könntest einfach einen Hash anlegen welcher die Kombination aus Event_ID und Map_ID in einem Array als Key mit einem Namen mappt. Darüber hast du dann jederzeit vollen Zugriff darauf welche Namen für welches Event angezeigt werden würden und es wäre sehr einfach in einen Speicherstand einbaubar.
Hier, dies wäre eine Art Template für so eine Namensdatabase.
Lass dich von der Größe nicht zu sehr einschüchtern. Der größte Teil hiervon ist eine Kopie der Standardfunktionen zum erstellen eines neuen Speicherstandes und dem Laden und Speichern eines Spielstandes, modifiziert damit sie eine Namensdatabase enthalten.
Der Code für die Database selbst ist lediglich dieser Teil:
class Database_Names
def initialize
@data_hash = {}
end
def set_name_of_event(event, value)
key = [event.map_id, event.id]
@data_hash[key] = value
end
def set_name_of_id(map_id, event_id, value)
key = [map_id, event_id]
@data_hash[key] = value
end
def get_name_of_event(event)
key = [event.map_id, event.id]
name = @data_hash[key]
if name == nil
return ""
end
return name
end
def get_name_of_id(map_id, event_id)
key = [map_id, event_id]
name = @data_hash[key]
if name == nil
return ""
end
return name
end
end
Und es ist auch eigentlich nicht mehr als ein Wrapper um einen Hash.
Du hast damit folgende vier Funktionen:
set_name_of_event(event, value)
Damit kannst du einem Event direkt einen Namen zuweisen.
set_name_of_id(map_id, event_id, value)
Damit kannst du einen Namen einem Event auf einer derzeit nicht geladenen Karte zuweisen, zum Beispiel gibst du die map_id 1 und die Event_id 4 an um dem vierten Event auf der ersten Karte deines Projektes einen Namen zu geben.
Equivalent zu dem speichern von Namen kannst du mit den Funktionen:
get_name_of_event(event)
und
get_name_of_id(map_id, event_id)
Den Namen eines Events wiedergeben lassen.
Ich weis natürlich nicht welche anderen Scripte du derzeit in deinem Projekt verwendest daher kann ich dir auch nicht ganz genau sagen was du zu tun hast um diese Database in dein Projekt einzubauen.
Das folgende Laufgeräusch-Script soll um einen Schritt-Sound abzuspielen
nicht mehr ablesen, wann der Held sich bewegt, sondern wann dieser von
einem zum nächsten Kästchen wechselt bzw. wann er die Position X Y wechselt.
Wer kann helfen, weil er so nett ist und Scripting drauf hat? :3
Ich brauch's, weil ein anderes Script bereits die Bewegungen des Helden eingenommen haben.
SOUND =[
RPG::AudioFile.new("SCHRITT.wav",100,100),#terrain 1
RPG::AudioFile.new("",12,110),#terrain 2
RPG::AudioFile.new("",12,110),#terrain 3
RPG::AudioFile.new("",100,100),#terrain 4
RPG::AudioFile.new("",100,100),#terrain 5
RPG::AudioFile.new("",100,100),#terrain 6
RPG::AudioFile.new("",100,100),#terrain 7
]
CHARACTER = 0
#1 = nur player
#2 = nur events
#0 = beide
class Game_Character
def lautlos
return @lautlos
end
def lautlos=(n)
@lautlos = n
end
def geraeusch
return if self.lautlos
return if terrain_tag == 0
return if CHARACTER == 2 and self.is_a?(Game_Player)
return if CHARACTER == 1 and self.is_a?(Game_Event)
$game_system.se_play(SOUND[terrain_tag-1])
end
def move_down(turn_enabled = true)
if turn_enabled
turn_down
end
if passable?(@x, @y, 2)
geraeusch
turn_down
@y += 1
increase_steps
else
check_event_trigger_touch(@x, @y+1)
end
end
def move_left(turn_enabled = true)
if turn_enabled
turn_left
end
if passable?(@x, @y, 4)
geraeusch
turn_left
@x -= 1
increase_steps
else
check_event_trigger_touch(@x-1, @y)
end
end
def move_right(turn_enabled = true)
if turn_enabled
turn_right
end
if passable?(@x, @y, 6)
geraeusch
turn_right
@x += 1
increase_steps
else
check_event_trigger_touch(@x+1, @y)
end
end
def move_up(turn_enabled = true)
if turn_enabled
turn_up
end
if passable?(@x, @y, 8)
geraeusch
turn_up
@y -= 1
increase_steps
else
check_event_trigger_touch(@x, @y-1)
end
end
end
class Game_Event
alias sound_refresh refresh
def refresh
@lautlos = false
sound_refresh
return if @list.nil?
for command in @list
if command.code == 108 or command.code == 408
@lautlos = true if command.parameters.to_s.upcase == "LAUTLOS"
end
end
end
end
class Game_Player
def lautlos
return false
end
end
Gibt es ein Script, mit dem man ein (noch nicht vorhandenes!) Event über den Helden und andere Events legen kann, sobald sie ein bestimmtes Terrain passieren, z.B. hohes Gras, um nicht diesen "Körper-bis-zu-1/3-Transparent"-Effekt verwenden zu müssen?