Created
February 2, 2018 04:01
-
-
Save xvw/26fd4bbcb1728e44d14b524ec3d9eadf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
=begin | |
Attention, l'utilisation de ce script rend le jeu injouable. Il n'est | |
utile QUE pour générer un fichier compatible avec RPGMaker XP et l'AMS | |
Ultimate (et rendre le mapping des hauteurs un peu plus sexy :) ) | |
## Installation | |
- Copier le script "au dessus de Main" (dans la rubrique Material par exemple) | |
## Utilisation | |
Au démarrage du jeu, une fois le script installé, le jeu va générer directement | |
un fichier "rxdata" compatible avec le script de Zeus. | |
(Il est conseillé d'activer l'affichage de la console "Jeu > Afficher la console" | |
histoire de voir "ce que le script est en train de faire") | |
Le script va toujours générer la carte sur laquelle est définie la position de | |
départ de l'équipe. Donc il est possible de générer plusieurs cartes. | |
Il faut créer une carte, mettre le point de départ de l'équipe dessus. Il faut | |
que la carte ait exactement la même taille que celle dans XP (pour laquelle on | |
voudra générer les hauteurs). | |
Ensuite, il suffit de mapper avec les régions les hauteurs. Les régions vont de | |
1 à 59, pas de région = 0 et 63 = -1, 62 = -2, 61 = -3 et 60 = -4, donc les donnees | |
pour les directions de saut. | |
Il est possible en faisant clique droit sur le nom de la carte, de spécifier la | |
gravité, en l'ajoutant dans les notes de la carte. Attention, il faut impérativement | |
qu'il n y ait que ça dans les notes. Si jamais la gravité n'est pas définie, | |
le script considérera que c'est 10 (soit 1.0 dans l'éditeur de Zeus). | |
Une fois le jeu lancé, un message sera affiché quand le calcul sera terminé. Sur | |
une map de 500x500, il faut tout de même compter un peu de temps (+- 2, 3 secondes | |
en fonction du PC). Une fois que la procédure est terminée, un message s'affichera | |
et donnera le nom du fichier dans lequel les données ont étés crées. | |
En général un fichier créé à cette forme: | |
"Map[ID de la map]H.rxdata" | |
Ensuite, il suffit de copier ce fichier dans le répertoire "Data/Data System" du | |
projet XP avec l'AMS Ultimate et d'accorder son ID en renommant le fichier collé. | |
Pour éviter de "devoir renommer" le fichier généré après l'avoir collé, il suffit | |
simplement de générer via une map RVXACE qui a le même ID que celle de XP. | |
Bonne chance, hésite pas à me contacter si tu as un soucis et bonne chance pour | |
ton projet ;) | |
=end | |
module SceneManager | |
def self.first_scene_class | |
Scene_AMS | |
end | |
end | |
class Scene_AMS < Scene_Base | |
def start | |
setup | |
get_gravity | |
build_table | |
perform_rxdata | |
finalize | |
end | |
def setup | |
@map_id = $data_system.start_map_id | |
@map = load_data(sprintf("Data/Map%03d.rvdata2", @map_id)) | |
@target = sprintf("Map%03dH.rxdata", @map_id) | |
@info = $data_mapinfos[@map_id] | |
puts "Process for Map[#{@map_id}] (#{@info.name}) [#{@map.width}x#{@map.height}]" | |
end | |
def get_gravity | |
@gravity = 1.0 | |
f = @map.note | |
@gravity = f.to_f unless f.empty? | |
@gravity = (@gravity * 10).to_i | |
puts "Selected gravity is #{@gravity}\n\n" | |
end | |
def build_table | |
@table = Table.new(@map.width, @map.height) | |
(0...@table.xsize).each do |x| | |
puts "Process line #{x+1}/#{@map.width}" | |
(0...@table.ysize).each do |y| | |
@table[x, y] = get_region_data(x, y) | |
end | |
end | |
end | |
def get_region_data(x, y) | |
region = @map.data[x, y, 3] >> 8 | |
return region if region < 60 | |
region - 64 | |
end | |
def perform_rxdata | |
puts "\n\n" | |
data = [@gravity, @table] | |
save_data(data, @target) | |
end | |
def finalize | |
puts "Press [ENTER] to close" | |
msgbox("Map #{@map_id} was generated in #{@target}") | |
exit | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment