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:
Code:
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:
Code:
set_name_of_event(event, value)
Damit kannst du einem Event direkt einen Namen zuweisen.

Code:
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:
Code:
get_name_of_event(event)
und
Code:
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.