Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker


Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Jeux: puie z / Jeux: Citymaime - Chapitre 1 / Jeux: Mer, îles et fous / News: Du neuf dans le making / News: Muma|Rope est disponible en (...) / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

283 connectés actuellement

30732342 visiteurs
depuis l'ouverture

2320 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Eclipso

Zarok

Offgame

Lunae - le bazar d'Emz0

Kingdom Ultimate

Tous nos partenaires

Devenir
partenaire



Définir un fond de combat par map

Par défaut, RMXP vous permet de définir un fond de combat par tileset.
Cependant, vous préféreriez qu'à chaque map soit associé un fond de combat précis.

Script pour RPG Maker XP
Ecrit par Fflo
Publié par Fflo (lui envoyer un message privé)
Signaler un script cassé

❤ 0

Pourquoi ai-je créé ce script ?
RMXP ne vous permet de définir qu'un seul fond de combat par tileset. Si je crée plusieurs maps avec le même tileset mais que je définis un élément-clé différent à chaque fois (pour une map de neige, la map A met en évidence une grande rivière ; la map B met en évidence une grande falaise), je serais dans l'obligation de n'utiliser qu'un unique fond.
J'aurais pu, par "flemmardise", dupliquer le tileset dans la base de données et y donner un fond différent. Mais ça aurait été une sévère violation du concept DRY (Don't Repeat Yourself) qui est utilisé en programmation informatique.

Que fait ce script ?
Au lieu de faire une corrélation Tileset->Fond ; je modifie le fonctionnement de l'attribution des fonds de combat en définissant une corrélation Map->Fond.
Désormais, chaque map sera associée à un fond de combat spécifique.

Quelles sont les modalités d'utilisation de ce script ?
Utilisation libre dans tous types de projets, personnels ou commerciaux.
Je demande quand même à être cité dans vos crédits. Un script ne se crée pas en un claquement de doigts !

Comment utiliser ce script ?
Copiez le code ci-dessous et insérez-le dans un nouveau script sur votre projet RMXP fétiche.
Voici les lignes les plus importantes:
* Default = "Stallion.png"
Définissez le nom du fond de combat "d'urgence" lorsque l'ID de votre map n'existe pas dans le tableau Battlebacks. N'oubliez pas l'extension de votre image.
* Battlebacks[X] = [Y, Z]
Rajoutez des lignes au fur et à mesure. Faites en sorte que les valeurs X se suivent (même si je ne pense pas qu'il y aura de dysfonctionnement si ce n'est pas le cas). Remplacez Y par l'ID de votre map et Z par le nom de votre fond.

Portion de code : Tout sélectionner

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
 
#=============================================================================#
# Battleback by map by Fflo                                                   #
#=============================================================================#
 
#-----------------------------------------------------------------------------#
# What does this script do?                                                   #
#-----------------------------------------------------------------------------#
# Replaces tileset-specific battlebacks by map-specific battlebacks           #
#-----------------------------------------------------------------------------#
 
#-----------------------------------------------------------------------------#
# How to use that script:                                                     #
#-----------------------------------------------------------------------------#
# * Copy-paste the whole script into a new slot, under "Materials"            #
# * If you want to know what I've changed, scroll and stop each time you find #
# "FFLO" (without quotes)                                                     #
# * Add a line to the example array for each map you'd like to add a          #
# battleback                                                                  #
# * If no valid mapId is found in the array, a rescue battleback will be      #
# displayed instead of throwing an error                                      #
# * The script should work without any modification                           #
#-----------------------------------------------------------------------------#
 
#-----------------------------------------------------------------------------#
# Terms of use:                                                               #
#-----------------------------------------------------------------------------#
# * Free to use in commercial projects                                        #
# * Give credit to Fflo                                                       #
#-----------------------------------------------------------------------------#
 
module Fflo_Script_Config
  module Game_Map_Battleback
    Default = "Stallion.png" # FFLO - Emergency case, for not existing mapId
    
    Battlebacks = [] # FFLO - Do not remove this line!
    # FFLO - Add entries
    Battlebacks[0] = [1, "Cave.png"] # FFLO - [map_id, filename]
    Battlebacks[1] = [2, "Stallion.png"]
    Battlebacks[2] = [7, "Ecole.png"]
    Battlebacks[3] = [8, "Classe.png"]
  end
end
 
class Game_Map
  alias gm_setup setup
  def setup(map_id)
    @map_id = map_id
    @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
    
    tileset = $data_tilesets[@map.tileset_id]
    @tileset_name = tileset.tileset_name
    @autotile_names = tileset.autotile_names
    @panorama_name = tileset.panorama_name
    @panorama_hue = tileset.panorama_hue
    @fog_name = tileset.fog_name
    @fog_hue = tileset.fog_hue
    @fog_opacity = tileset.fog_opacity
    @fog_blend_type = tileset.fog_blend_type
    @fog_zoom = tileset.fog_zoom
    @fog_sx = tileset.fog_sx
    @fog_sy = tileset.fog_sy
    
    # FFLO - Search Battlebacks if an array with index 0 = map_id exists
    @current_map_battleback = Fflo_Script_Config::Game_Map_Battleback::Battlebacks
    @current_map_battleback = @current_map_battleback.detect{|m|
      m[0] == @map_id
    }
    
    # FFLO - Assign battleback if mapId exists, else use rescue battleback
    @battleback_name = @current_map_battleback.nil? ?
      Fflo_Script_Config::Game_Map_Battleback::Default :
      @current_map_battleback[1]
    @passages = tileset.passages
    @priorities = tileset.priorities
    @terrain_tags = tileset.terrain_tags
    
    @display_x = 0
    @display_y = 0
    
    @need_refresh = false
    
    @events = {}
    for i in @map.events.keys
      @events[i] = Game_Event.new(@map_id, @map.events[i])
    end
    
    @common_events = {}
    for i in 1...$data_common_events.size
      @common_events[i] = Game_CommonEvent.new(i)
    end
    
    @fog_ox = 0
    @fog_oy = 0
    @fog_tone = Tone.new(0, 0, 0, 0)
    @fog_tone_target = Tone.new(0, 0, 0, 0)
    @fog_tone_duration = 0
    @fog_opacity_duration = 0
    @fog_opacity_target = 0
    
    @scroll_direction = 2
    @scroll_rest = 0
    @scroll_speed = 60
  end
end
 






Maluskan - posté le 26/08/2021 à 17:45:41 (164 messages postés)

❤ 1

Je pense que tu pourrais utiliser la gem Rubocop => https://rubocop.org/ pour respecter les règles de formatage. Sinon bravo pour le boulot :sourire2

Galerie musicale : https://soundcloud.com/maluska

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers