Bin zwar neu hier im Forum, nutze aber den RM2k schon seit ein paar Jahren, bin also was den 2000er angeht kein Neuling :P
Hatte die Trial-Versionen vom XP und vom VX auch mal angeschaut, aber die Auflösung von 640 hat mich da abgeschreckt weil ich mit dem 2000er was zB die Chipsets angeht alles Pixel für Pixel zusammengemalt hab, das ist bei einer doppelt so hohen Auflösung natürlich entsprechend schwieriger...
Jetzt hab ich momentan ein Projekt im Sinn wo ich sämtliche Grafiken mit einem Renderprogramm erstellen kann, und dafür ist nun der 2000er mit seiner kleinen Auflösung und 8Bit-Farbtiefe weniger geeignet... Mein einziges Problem ist, dass ich für dieses Projekt zwei Dinge benötige die es in den Versionen nach dem RM2k nicht mehr gibt:
1. Mausunterstützung: Hatte mir Lukis Keypatch für den 2000er geholt und war sehr zufrieden damit. Ich meine, mal irgendwo gelesen zu haben, dass es möglich ist, eine Mausunterstützung über RGSS zu schreiben, aber leider kann ich da nirgendwo genaueres drüber finden...
2. Die Möglichkeit eine Variable als Pointer zu verwenden; die also aussagt, welche Variable verändert werden soll (Beispiel: Variable0001 hat den Inhalt "125", dann konnte man im RM2k sagen dass er die Variable deren Nummer durch den Inhalt der Variable0001 bestimmt wird geändert werden soll, also in diesem Fall Variable0125. Wenn man im RM2k "Change Variable" anklickt ist das die dritte Option von oben).
Jetzt also meine Frage an die RGSS-Spezialisten hier, ob es generell möglich ist, diese beiden Funktionen über RGSS zu schreiben, dann würde ich das nämlich als Grund sehen, diese Sprache zu erlernen... Das soll keine Aufforderung sein mir den Code fertig zu liefern, ich würde den schon selbst schreiben wollen Ich möchte halt nur wissen ob ich mir die Mühe machen soll mich in RGSS einzuarbeiten oder ob ich am Ende wieder Zeit vergeudet hab
Du würdest sehr viel Zeit vergeuden ein Mausscript zu schreiben. Von jemanden der keine Ahnung von Ruby hat bis zu dem Punkt wo man selbst Mausscripts schreiben kann könnte es ziemlich dauern. Also:
1. Ja, es gibt Mausscripte. Wenn du wissen willst wo:
2. Auch das kann man per Ruby lösen. Wenn du wissen willst wie:
Kleine Dinge kann man sich selber auch beibringen, ausprobieren, von anderen abgucken etc. Aber für große Sachen würde ich lieber auf bereits von Profis vorgefertigte Scripte zurückgreifen.
Ich bin übrigens keiner.
Ok, die blöde Frage mit dem Mausscript tut mir leid... Ich hatte auf der Hauptseite nicht unter Ressourcen sondern unter Skripte gesucht, da war natürlich nichts. Ich wusste nicht, dass es unter den Ressourcen zum XP noch nen Unterpunkt Skripte gibt, hätte ich genauer nachschauen sollen, Asche auf mein Haupt!
Jedenfalls vielen Dank für deine Antwort. Dass man sich nicht "mal eben schnell" Ruby beibringen kann ist mir klar, das war ja der Grund warum ich fragte, denn das wäre doch ziemlich blöd sich monatelang die Freizeit damit um die Ohren zu hauen nur um am Ende festzustellen, dass das was man vorhat mit Ruby gar nicht zu machen ist...
"Endstation Wedel", so ist es xD Obwohl ich ziemlich genau auf halber Strecke zwischen der vorletzten Station (Rissen) und der letzten wohne^^
€dit: Hab jetzt das Mausscript runtergeladen und sowohl das Script als auch das Event welches das Script startet von dem Demoprojekt in mein Projekt kopiert, aber jedes Mal wenn das Event zu der Stelle
"Script: Mouse.initSystem((Mouse::INIT_SAVE), 'cursor', 1, 2)"
kommt, bekomm ich die Fehlermeldung:
"NameError occurred while running script. uninitialized constant Interpreter::Mouse"
Das wundert mich ein wenig, weil das script in der Demo hervorragend funktioniert... Leider weiß ich auch nicht so ganz, was diese Fehlermeldung zu bedeuten hat :P Hab ich irgendetwas übersehen?
Bestimmt hast du was übersehen. Erstell mal ein neues Projekt und benutze erst dann das Mausscript. Halte dich am Besten genau an die mitgelieferte Anleitung.
Wenn es im Testprojekt klappt, weißt du das du was im Hauptprojekt falsch gemacht hast.
Ich hatte das schon in ein neues Projekt kopiert xD Ist ja quasi mein erster Vorstoß in dem RMXP. Und ich hatte mich an die Anleitung gehalten, keine Ahnung was falsch lief...
Ich hab das Problem jetzt umgangen indem ich einfach das Demoprojekt nehme (da funktioniert es ja), es umbenenne und mein Projekt da quasi hineinbaue. 8)
Des weiteren hatte ich jetzt die ersten Erfolgserlebnisse: Die zwei Zeilen Code von dir hab ich in ein Common Event getan, das funktioniert wunderbar, vielen Dank! Außerdem hab ich mich ein wenig mit dem Script-Editor befasst und erstmal das Scene_Title Script leicht modifiziert um das dämliche Maker-eigene Hauptmenü zu umgehen und mein eigenes zu erstellen (Ich bin einfach RM2k-verwöhnt, da gabs für so was auch einen Patch ).
Jetzt kommt aber mein nächstes Problem: Ich hab eine schöne Animation erstellt und an den Spielstart gesetzt und ein vorläufiges Titelbild gemacht. Dann hab ich das Projekt in eine .exe zusammengefasst und an eine Bekannte geschickt, weil ich nur mal testen wollte ob die animation auch auf anderen rechnern gut läuft (muss erst mal noch lernen in Frames statt in Sekunden zu rechnen ). Aber sie konnte die Datei nicht starten, sie meinte, da käme nur kurz ein schwarzes Fenster das sich sofort wieder schließt... Ich glaub eigentlich nicht dass das mit den Änderungen zusammenhängt die ich in Scene_Title gemacht hab, denn bei mir funktioniert alles wunderbar... Weiß jemand wie so ein Effekt zustande kommen kann? Ich meine, bei dem (nicht funktionierenden) Mausscript hab ich immerhin ne anständige Fehlermeldung kassiert aber so ganz ohne Feedback des Programms steh ich natürlich blöd da...
Nein sie hat das nicht installiert, aber eigentlich hab ich alles importiert was ich verwendet hab...
Mein Scene_Title Script sieht jetzt so aus:
#==============================================================================
# ** Scene_Title
#------------------------------------------------------------------------------
# This class performs title screen processing.
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# * Main Processing
#--------------------------------------------------------------------------
def main
# If battle test
if $BTEST
battle_test
return
end
# Load database
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# Make system object
$game_system = Game_System.new
# Make title graphic
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# Play title BGM
$game_system.bgm_play($data_system.title_bgm)
# Stop playing ME and BGS
Audio.me_stop
Audio.bgs_stop
# Execute transition
Graphics.transition
# Prepare for transition
Graphics.freeze
# Dispose of title graphic
@sprite.bitmap.dispose
@sprite.dispose
# Play decision SE
$game_system.se_play($data_system.decision_se)
# Stop BGM
Audio.bgm_stop
# Reset frame count for measuring play time
Graphics.frame_count = 0
# Make each type of game object
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# Set up initial party
$game_party.setup_starting_members
# Set up initial map position
$game_map.setup($data_system.start_map_id)
# Move player to initial position
$game_player.moveto($data_system.start_x, $data_system.start_y)
# Refresh player
$game_player.refresh
# Run automatic change for BGM and BGS set with map
$game_map.autoplay
# Update map (run parallel process event)
$game_map.update
# Switch to map screen
$scene = Scene_Map.new
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
# Update command window
@command_window.update
# If C button was pressed
if Input.trigger?(Input::C)
# Branch by command window cursor position
case @command_window.index
when 0 # New game
command_new_game
when 1 # Continue
command_continue
when 2 # Shutdown
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# * Battle Test
#--------------------------------------------------------------------------
def battle_test
# Load database (for battle test)
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
# Reset frame count for measuring play time
Graphics.frame_count = 0
# Make each game object
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# Set up party for battle test
$game_party.setup_battle_test_members
# Set troop ID, can escape flag, and battleback
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# Play battle start SE
$game_system.se_play($data_system.battle_start_se)
# Play battle BGM
$game_system.bgm_play($game_system.battle_bgm)
# Switch to battle screen
$scene = Scene_Battle.new
end
end
Ich hab halt so gut ich konnte das hauptfenster raus editiert sowie die Definitionen (Heißen die so? Stand "def" davor^^) für Neues Spiel, Laden und Beenden entfernt, so dass er gleich ins Game springt.
Hm, sie ist gestern offline gegangen bevor ich ihr das vorschlagen konnte, aber ich hab das Projekt noch einem anderen Bekannten geschickt, der hat immerhin eine ordentlich Meldung "RGSS102e.dll not found" bekommen. Als er dann das RTP installiert hat, hat es funktioniert, also werde ich meiner zuerst erwähnten Bekannten das auch noch mal vorschlagen aber ich finds trotzdem seltsam dass er eine Fehlermeldung bekommt und sie nicht
Das RTP besteht nicht nur aus Grafiken & Sounds, sondern auch aus eben jener dll ohne die kein Makergame funktioniert. Wenn du glaubst alles importiert zu haben, kannst du auch nur die dll mit in den Ordner beifügen.