Zusätzliches Vehicle "Minecart" für den RPG Maker VX Ace
Intro
Es gab letztens im Forum die Frage nach einem zusätzlichen Vehicle für den Ace, nachdem der Maker scheinbar im RTP bereits Minecarts vorsah. Da das spannend klang, habe ich mich drangesetzt und kann euch nun Version 1 des Skripts präsentieren. Den ursprünglichen Frage Thread findet ihr hier: RPG Maker VX Ace » Skript-Anfragen » Veteran sucht ein paar Scripts.
Benutzung
Fügt das Skript einfach unter Materials ein. Das Minecart kann sich frei innerhalb der Region Acht bewegen, also mappt ein paar Gleise und verteilt dann auf die Gleisstrecke die Region Acht. Ihr braucht dann nurnoch ein Event, das Analog zum Eventbefehl Fahrzeugposition festlegen euch das Minecart auf der Karte platziert. Dafür ruft das Event folgendes Skript auf:
|
|
Ruby Quellcode |
1 |
$game_map.minecart.set_location( map_id, 8, 6) |
Und schon ist auf der aktuellen Map, an Position (8|6) das Minecart.
Oder ihr kennt euch schon etwas mit dem Skriptsystem aus und macht es über Spielvariablen:
|
|
Ruby Quellcode |
1 2 3 4 5 |
$game_map.minecart.set_location( $game_variables[4], # Map ID $game_variables[5], # X $game_variables[6] # Y ) |
Quellcode
|
|
Ruby Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
#============================================================================== # ** Minecart Vehicle #============================================================================== # Fügt dem Spiel ein weiteres Vehicle, nämlich das Minecart hinzu. Dieses # kann sich frei auf Felder mit der Region Acht bewegen (Zeile 74). # Um das Minecart zu platzieren, benutze folgenden Skriptaufruf in einem Event # $game_map.minecart.set_location( 27, 8, 6) # Damit wird das Minecart auf Map 27, auf den Koordinaten (8|6) positioniert. # Es ist auch möglich via # $game_map.minecart.set_location( map_id, 8, 6) # das Vehicle auf der aktuellen Map zu platzieren, ohne die MapID kennen zu # müssen. # Das Minecart kann ab Zeile 30 konfiguriert werden, die Geschwindigkeit # kann in Zeile 91 festgelegt werden (normalerweise 5 - wie das Schiff). #------------------------------------------------------------------------------ # Autor: Playm # Datum: Juni 2015 # Maker: RPG Maker VX Ace # Einfache Nutzung in nicht-kommerziellen VX Ace Projekten ist gestattet. # Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden. # Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet. #============================================================================== # ** DataManager #============================================================================== module DataManager def self.vehicles( type ) vehicle = nil if type == :minecart vehicle = RPG::System::Vehicle.new vehicle.character_name = 'Vehicle' vehicle.character_index = 7 vehicle.bgm = RPG::BGM.new vehicle.start_map_id = 0 vehicle.start_x = 0 vehicle.start_y = 0 end return vehicle end end #============================================================================== # ** Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # * Create Vehicles #-------------------------------------------------------------------------- def create_vehicles @vehicles = [] @vehicles[0] = Game_Vehicle.new(:boat) @vehicles[1] = Game_Vehicle.new(:ship) @vehicles[2] = Game_Vehicle.new(:airship) @vehicles[3] = Game_Vehicle.new(:minecart) end #-------------------------------------------------------------------------- # * Get Vehicle #-------------------------------------------------------------------------- def vehicle(type) return @vehicles[0] if type == :boat return @vehicles[1] if type == :ship return @vehicles[2] if type == :airship return @vehicles[3] if type == :minecart return nil end #-------------------------------------------------------------------------- # * Get Minecart #-------------------------------------------------------------------------- def minecart @vehicles[3] end #-------------------------------------------------------------------------- # * Determine if Passable by Minecart #-------------------------------------------------------------------------- def minecart_passable?(x, y) region_id(x,y) == 8 # Passable if region_id is 8 end end #============================================================================== # ** Game_Vehicle #============================================================================== class Game_Vehicle #-------------------------------------------------------------------------- # * Alias #-------------------------------------------------------------------------- alias_method( :org_init_move_speed_wo_minecart, :init_move_speed ) alias_method( :org_system_vehicle_wo_minecart, :system_vehicle ) #-------------------------------------------------------------------------- # * Initialize Move Speed #-------------------------------------------------------------------------- def init_move_speed org_init_move_speed_wo_minecart @move_speed = 5 if @type == :minecart end #-------------------------------------------------------------------------- # * Get System Settings #-------------------------------------------------------------------------- def system_vehicle org_system_vehicle_wo_minecart || DataManager.vehicles( @type ) end end #============================================================================== # ** Game_Player #============================================================================== class Game_Player #-------------------------------------------------------------------------- # * Alias #-------------------------------------------------------------------------- alias_method( :org_map_passable_wo_minecart, :map_passable? ) alias_method( :org_on_dmge_floor_wo_minecart, :on_damage_floor? ) #-------------------------------------------------------------------------- # * Detect Collision with Vehicle #-------------------------------------------------------------------------- def collide_with_vehicles?(x, y) $game_map.boat.pos_nt?(x, y) || $game_map.ship.pos_nt?(x, y) || $game_map.vehicles[3].pos_nt?(x, y) end #-------------------------------------------------------------------------- # * Determine if Map is Passable # d: Direction (2,4,6,8) #-------------------------------------------------------------------------- def map_passable?(x, y, d) if @vehicle_type == :minecart return $game_map.minecart_passable?(x, y) end org_map_passable_wo_minecart(x, y, d) end #-------------------------------------------------------------------------- # * Determine if Riding in Minecart #-------------------------------------------------------------------------- def in_minecart? @vehicle_type == :minecart end #-------------------------------------------------------------------------- # * Processing of Movement via Input from Directional Buttons #-------------------------------------------------------------------------- def move_by_input return if !movable? || $game_map.interpreter.running? move_straight(Input.dir4, turn_ok?) if Input.dir4 > 0 end #-------------------------------------------------------------------------- # * Determine if Player should turn #-------------------------------------------------------------------------- def turn_ok? return false if in_minecart? return true end #-------------------------------------------------------------------------- # * Board Vehicle # Assumes that the player is not currently in a vehicle. #-------------------------------------------------------------------------- def get_on_vehicle front_x = $game_map.round_x_with_direction(@x, @direction) front_y = $game_map.round_y_with_direction(@y, @direction) @vehicle_type = :boat if $game_map.boat.pos?(front_x, front_y) @vehicle_type = :ship if $game_map.ship.pos?(front_x, front_y) @vehicle_type = :airship if $game_map.airship.pos?(@x, @y) @vehicle_type = :minecart if $game_map.minecart.pos?(front_x, front_y) if vehicle @vehicle_getting_on = true force_move_forward unless in_airship? @followers.gather end @vehicle_getting_on end #-------------------------------------------------------------------------- # * Determine if Damage Floor #-------------------------------------------------------------------------- def on_damage_floor? org_on_dmge_floor_wo_minecart && !in_minecart? end end |
zum Lesen den Text mit der Maus markieren
Das große Scientia Wiki zur Spielentwicklung 
Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs
Musik von Shabraxxx für euch
Guide zu den Audioformaten
Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.

Was ist das RGSS ? RGSS-Dokumentation auf Sc
Kyoshiros Makerkurs

Musik von Shabraxxx für euch
Guide zu den Audioformaten

Skripte von mir (Auswahl):
Atmungssystem
| Streichholzsystem
| Animiert durch Bücher blättern
Random : Marktsystem für Kardor
| Staterelated Battlergraphic
| Hinweis auf mögliche Aktionen
SelfSwitchExpirationtimer Skript - Gameplayerweiterung für Pilzesammler und Farmspiele
Meine Skripte werden gerade hier gesammelt.Ähnliche Themen
-
Maker-Talk »-
Musik aus alten RPG Makern verwenden?
(15. Juli 2013, 22:40)
-
Skript-Anfragen »-
Veteran sucht ein paar Scripts
(11. Juni 2015, 18:01)
-
Skript-Anfragen »-
Class/rollen , Monster fangen/rufen script/s
(2. Juni 2015, 09:09)
-
Skripte & Plugins »-
Namenseingabeerweiterung für den RPG Maker VX Ace
(30. Mai 2015, 20:12)
-
Einsteigerhilfe »-
Frage zum Vehicle
(21. Januar 2013, 17:39)
