Salve, avrei bisogno dell'aiuto di uno scripter nella modifica di un vehicle system script che ho provato e riprovato a modificare ma non ce la faccio. Credo sia un problema di script e non di eventi, CREDO. allora, questo è lo script: class Game_Character
def passable?(x, y, d)
# Get new coordinates
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
# If coordinates are outside of map
unless $game_map.valid?(new_x, new_y)
return false
end
# If through is ON
if @through
return true
end
# If unable to leave first move tile in designated direction
unless $game_map.passable?(x, y, d, self)
return false
end
# If unable to enter move tile in designated direction
unless $game_map.passable?(new_x, new_y, 10 - d)
return false
end
#check terrain for vehicle
check_terrain(new_x, new_y)
# Loop all events
for event in $game_map.events.values
# If event coordinates are consistent with move destination
if event.x == new_x and event.y == new_y
@state = true
# If through is OFF
unless event.through
# If self is event
if self != $game_player
return false
end
# With self as the player and partner graphic as character
if event.character_name != ""
return false
end
end
end
end
if @state == false
return false
end
# If player coordinates are consistent with move destination
if $game_player.x == new_x and $game_player.y == new_y
# If through is OFF
unless $game_player.through
# If your own graphic is the character
if @character_name != ""
return false
end
end
end
return true
end
#--------------------------------------------------------------------------
# * Check the terrain for the vehicle
# @terrain (0=none, 1=river, 2=ocean, 3=air, 4=ground)
# @vehicle (0=foot, 1=canoe, 2=boat, 3=dragon)
# @state (true=passable tile, false=unpassable tile)
#--------------------------------------------------------------------------
def check_terrain(new_x, new_y)
@state = false
@terrain = $game_map.terrain_tag(new_x, new_y)
@vehicle = $game_variables[1]
@state = true if @vehicle == 0 && @terrain == 4 #foot & ground
@state = true if @vehicle == 1 && @terrain == 3 #canoe & river
@state = true if @vehicle == 2 && @terrain == 2 #boat & ocean
@state = true if @vehicle == 3 #dragon
@state = true if @terrain == 0
end
end
class Game_Player < Game_Character
alias in_vehicle_alias update
#--------------------------------------------------------------------------
# * Memorize actor graphic
#--------------------------------------------------------------------------
def actor_memorize
@actor_name = $game_actors[1].character_name
@actor_hue = $game_actors[1].character_hue
@battler_name = $game_actors[1].battler_name
@battler_hue = $game_actors[1].battler_hue
return true
end
#--------------------------------------------------------------------------
# * Restore actor graphic
#--------------------------------------------------------------------------
def actor_restore
actor = $game_actors[1]
actor.set_graphic(@actor_name.to_s, @actor_hue, @battler_name.to_s, @battler_hue)
$game_player.refresh
return true
end
#--------------------------------------------------------------------------
# * Enter a vehicle
#--------------------------------------------------------------------------
def enter_vehicle(type)
$game_system.menu_disabled = true
$game_system.save_disabled = true
if type != "dragon"
@through = true
move_forward
@through = false
end
actor_memorize
actor = $game_actors[1]
actor.set_graphic(type, @actor_hue, @battler_name.to_s, @battler_hue)
$game_switches[1] = false #Canoe Off
$game_switches[2] = false #Boat Off
$game_switches[3] = false #Dragon Off
if type == "canoe"
$game_variables[1] = 1 #set terrian
$game_switches[1] = true #Canoe On
Audio.bgm_play("Audio/BGM/047-Positive05", 100, 100) #play canoe music
elsif type == "boat"
$game_variables[1] = 2 #set terrian
$game_switches[2] = true #Boat On
Audio.bgm_play("Audio/BGM/046-Positive04", 100, 100) #play ship music
elsif type == "dragon"
$game_variables[1] = 3 #set terrian
$game_switches[3] = true #Dragon On
Audio.bgm_play("Audio/BGM/045-Positive03", 100, 100) #play dragon music
end
$game_player.refresh
$game_map.refresh
return true
end
#--------------------------------------------------------------------------
# * Enter a vehicle
#--------------------------------------------------------------------------
def exit_vehicle
$game_system.menu_disabled = false
$game_system.save_disabled = false
if @terrain == 4
if $game_switches[1] == true #getting off canoe
canoe = $game_map.events[1] #get canoe event
canoe.moveto(x, y) #move to player's x, y coords
$game_switches[1] = false #Canoe Off
$game_variables[2] = x #set canoe x coord
$game_variables[3] = y #set canoe y coord
@through = true
move_forward
@through = false
elsif $game_switches[2] == true #getting off boat
boat = $game_map.events[2] #get boat event
boat.moveto(x, y) #move to player's x, y coords
$game_switches[2] = false #Boat Off
$game_variables[4] = x #set boat x coord
$game_variables[5] = y #set boate y coord
@through = true
move_forward
@through = false
elsif $game_switches[3] == true #getting off dragon
dragon = $game_map.events[3] #get dragon event
dragon.moveto(x, y) #move to player's x, y coords
$game_switches[3] = false #Dragon Off
$game_variables[6] = x #set dragon x coord
$game_variables[7] = y #set dragon y coord
end
# get off vehicle
actor_restore
# reset terrain
$game_variables[1] = 0
# play walking music
Audio.bgm_play("Audio/BGM/044-Positive02", 100, 100) #play music
$game_player.refresh
$game_map.refresh
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
in_vehicle_alias
# if not on ground terrain, check for boat exit
if $game_variables[1] != 0
if Input.trigger?(Input::C)
exit_vehicle
end
end
end
end con questo sistema il personaggio mi scende solamente sulla terra ed è giusto ke sia così, ma mi servirebbe che "scendesse" anche quando il drago o la barca solcano rispettivamente aria e mare e questo per fare un sistema di "entrata" all'interno del veicolo come nelle FFseries. io nei miei test ho alternato un common event che schiacciando un tasto mi avrebbe traspostato alla data mappa e una leggera modifica allo script dalla riga 236: def update
in_vehicle_alias
# if not on ground terrain, check for boat exit
if $game_variables[1] != 0
if Input.trigger?(Input::C)
exit_vehicle
elsif Input.trigger?(Input::R)
exit_vehicle
end e il common event in sotanza faceva si che pressando il tasto R il pg si trasportasse nell'interno del veicolo; purtroppo lo faceva solamente sopra la terra quindi se ero sopra il mare o in giro non entrava.. T_T credo di aver spiegato tutto..aiutatemi!!