Night.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

News: Des jeux d'hiver sous la couette / Scripts: Système de vol pour RPG Maker (...) / Jeux: Onsen RPG - A Tale of Yu / Jeux: Final Destiny / Jeux: puie z / Chat

Bienvenue
visiteur !





Désactiver
la neige


publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

286 connectés actuellement

30769242 visiteurs
depuis l'ouverture

3061 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

Offgame

Zarok

Le Temple de Valor

Eclipso

Tous nos partenaires

Devenir
partenaire



Messages postés par Mack
Nombre de messages référencés sur Oniromancie (non supprimés): 1805

Aller à la page: 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

Posté dans Forum - Screenshots de vos jeux !

Mack - posté le 12/11/2024 à 18:35:31. (2311 messages postés) -

Cool, ça rend bien:D

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker XP] + de 999 dans la base de données ?

Mack - posté le 23/10/2024 à 22:12:43. (2311 messages postés) -

En faite, c'est plus compliqué que ce qu'on pourrait penser :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
class Interpreter
  def changeMax
    $data_actors        = load_data("Data/Actors.rxdata")
    for i in $data_actors.size..1500
      $data_actors[i] = $data_actors[1].clone
    end
    
    file = File.open("Actors.rxdata", "wb")
    Marshal.dump($data_actors, file)
    file.close
  end
end



En mettant ce code, et en créant un évent qui appelle ce script :

Portion de code : Tout sélectionner

1
changeMax()


Ca va remplir jusqu'à 1500 héros, en y mettant le premier à chaque fois ( beaucoup plus simple de copier coller le premier héros en boucle que d'initialiser à vide :F )
A la racine de ton projet, ça va te créer un Actors.rxdata, il faudra juste fermer ton projet, SAUVEGARDE le Actors.rxdata qui se trouve dans Data ( changer son nom en Actors2 par exemple ), et mettre le Actors.rxdata généré par le script.

Par contre, ben ils existeront bien en BD, mais une fois chargé en jeu, ben tu pourras rien en faire :F


Il va donc falloir trouver une solution à ce problème :F


EDIT :
En faite, c'est pas si dur :

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
#==============================================================================
# ** Game_Actors
#------------------------------------------------------------------------------
#  This class handles the actor array. Refer to "$game_actors" for each
#  instance of this class.
#==============================================================================
 
class Game_Actors
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @data = []
  end
  #--------------------------------------------------------------------------
  # * Get Actor
  #     actor_id : actor ID
  #--------------------------------------------------------------------------
  def [](actor_id)
    if actor_id > 999 or $data_actors[actor_id] == nil
      return nil
    end
    if @data[actor_id] == nil
      @data[actor_id] = Game_Actor.new(actor_id)
    end
    return @data[actor_id]
  end
end
 



C'est le script qui gère la classe Game_Actors, qui va contenir tout les héros du jeu.
Or, on peut voir :

Portion de code : Tout sélectionner

1
if actor_id > 999 or $data_actors[actor_id] == nil


Qui dit que si actor_id > 999, on considère que le héros n'existe pas.
Il suffit donc juste de changer e 999 par une autre valeur ( 1500 par rapport à mon exemple ), et c'est bon !

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RMMZ] Besoin d'un plugin pour porter des objets

Mack - posté le 19/10/2024 à 18:54:18. (2311 messages postés) -

Oui, clairement c'est le mieux

Par contre, je suis pas sur que tu puisses positionner un évent sur des positions qui ne soient pas des cases, d'où les pictures.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RMMZ] Besoin d'un plugin pour porter des objets

Mack - posté le 19/10/2024 à 10:41:51. (2311 messages postés) -

Pourquoi pas le faire en picture ?
Quand tu soulève l'objet, tu rends ton event invisble, tu le TP en dehors de la map pour pas qu'il te gène, et tu affiches une picture sur les screenX / screenY du héros.
Quand tu le poses, tu récupères les coordonnées devant le héros, tu TP l'évent à cet endroit, et tu efface la picture


En cherchant un peu, et avec des commandes en JS, y a même surement moyen de faire que la picture ai le même sprite que l'évent soulevé de manière automatique.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Screenshots de vos jeux !

Mack - posté le 11/10/2024 à 19:41:56. (2311 messages postés) -

AnthonyP a dit:

Bientôt ResidentEvil1 psx et Spyro le dragon 1 sur Rpgmaker2000 :lei Si si on y croit ! :kirby


J'ai pas testé, mais comme à part la commande qui permet de transformer une picture en modèle 3D, c'est considérer comme une picture classique, bah ça doit passer :F

Medoc- a dit:

Ça me fait penser au premier Phoenix Wright et son DLC où on avait ce genre d'effet sur les objets. :sourire3


Ui :)
C'est un peu la référence pour l'instant, surtout le 2 ou tu peux tourner le modèle pour l'inspecter et trouver des preuves

Nemau a dit:

Cool ! Est-ce qu'on voit l'objet en creux, comme dans KnH ou la Triforce de ALttP, ou bien est-ce que l'objet est généré tel qu'il donne l'impression de l'être ? (pas dûr d'être clair :doute5)

Je reprends cet exemple : ici on croit voir une forme pleine qui tourne dans le sens inverse des aiguilles d'une montre, mais on voit en réalité une forme creuse (i.e. : la partie avant ne s'affiche pas) qui tourne dans le sens des aiguilles d'une montre. Du moins si RotS n'a pas changé son système depuis.


?
En fait je dessine toute les faces du solides, de la plus éloignées à la plus proche de la "caméra"
C'est d'ailleurs pas du tout opti, puisque je vais dessiner des parties du modèles qui sont pas visible, mais pour l'instant, j'vais pas chercher plus loin :F
J'sais pas trop si ça va répondre à ta question, mais y a pas d'intérieur, je me contente juste de sinner les faces, donc la partie exterieur du modèle

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Screenshots de vos jeux !

Mack - posté le 10/10/2024 à 23:04:16. (2311 messages postés) -

image
( Le modèle du cristal vient de là : https://egideon.itch.io/stylized-crystal )

J'ai pas mal avancé ces deux derniers jours :banane
Donc maintenant, on peut colorier les solides, et faire chaque face indépendamment.
Ça reste du très basique, mais je pense qu'on peut faire des trucs cool !


Merci -FWT- et Nemau :D


D'ailleurs, si y a des gens qui veulent faire un genre de point and click sur RM2K3 avec ce truc, j'suis dispo ! =>[]
( Puis ça partira pas à la poubelle au moins :F )

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Screenshots de vos jeux !

Mack - posté le 08/10/2024 à 22:24:44. (2311 messages postés) -

Nan, comme c'est pas du tout de la vrai 3D, je sais pas la texturer, et je suis même pas sur que ça soit possible ,donc pour l'instant ça restera comme ça :F

P't'être qu'un jour j'essayerais de rendre possible le texturing en faisant juste un aplat de couleur sur chaque face, mais même ça je saurais pas comment faire pour l'instant ! ( Et c'est pas du tout dans mes priorités non plus :F )

Pour faire très simple, c'est juste une "projection" 3D dans un espace 2D, donc y a aucun moteur qui tourne derrière, c'est juste des maths pour calculer les points dans l'espace 3D, et les afficher sur un plans 2D

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Screenshots de vos jeux !

Mack - posté le 08/10/2024 à 21:02:11. (2311 messages postés) -

image

J'ai fait quelques tests pour faire un rendu 3D d'un .obj dans EasyRPG.

Aucune idée de à quoi ça va me servir, mais c'est rigoulo :F

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RM VXAce] Le super titre parce que j'ai aucune idée de comment résumer ma demande ici

Mack - posté le 16/09/2024 à 21:08:57. (2311 messages postés) -

En vrai, faut passer par l'aide en ligne, t'as souvent pas mal de truc
L'autre truc à faire, c'est de lire le code :F
Ou au moins le nom des méthodes / fonctions ( les def XXX ), ça peut pas mal aider ^^




J'dis que c'est un peu crado, mais en vrai, je pense pas que y ai de meilleure méthode :F
Une autre solution serait de se mettre dans l'update de la Window_Enemies ( j'ai plus le nom exacte ), et d'arriver à accéder à la Window_Skills, mais c'est vraiment pas mieux, pour un truc surement bien plus chiant




Ephy a dit:

Merci <3
Ca fonctionne à l'envers mais ça fonctionne.


Ah oui, j'ai fait les positions sans réfléchir :F

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RM VXAce] Le super titre parce que j'ai aucune idée de comment résumer ma demande ici

Mack - posté le 16/09/2024 à 20:13:32. (2311 messages postés) -

C'est l'idée oui


Le problème d'aller le foutre dans la Window_BattleEnemy, c'est que tu n'auras pas accès à la Window_Skill, donc ça va être la merde pour la bouger


Le mieux, c'est trouver la boucle de sélection ( habituellement c'est un truc du genre @enemy_window.update ), et de s'y foutre dedans
Mais j'arrive pas à trouver où c'est pour l'instant :F


Edit :
Ah putaingue, c'est vrai que VXAce utilise une methode de handler, donc t'auras pas de XX.update :F




J'ai fait un truc dégueu, mais qui marche :

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
#==============================================================================
# ** Scene_Battle
#------------------------------------------------------------------------------
#  This class performs battle screen processing.
#==============================================================================
 
class Scene_Battle < Scene_Base
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  alias old_update update
  def update
    old_update 
    ###
    if (@enemy_window.open? and @enemy_window.active)
      enemy_index = @enemy_window.index
      if (enemy_index < $game_troop.members.size)
        if ($game_troop.members[enemy_index].screen_x < Graphics.width / 2)
          @skill_window.x = 0
        else
          @skill_window.x = (Graphics.width - (Graphics.width / 5) * 2)
        end
      end
    end
    ###
  end
  
end
 



La partie entre ###, c'est ce qu'il faudrait copier au bon endroit pour faire un truc propre, là, le mettre dans l'update de la scene, même si ça marche c'est pas bien beau :F

Le "gros" problème de VXAce, c'est qu'il gère de manière unique toute les windows ( en gros, pas besoin d'appeler la fonction update manuellement ).
C'est super parce que ça évite de trop se faire chier, mais du coup ça peut devenir chiant pour gérer des updates "à la main" selon qu'elle fenêtre est active :F

J'vais voir si y a une meilleure méthode, mais là je vois pas trop

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Mack - posté le 09/09/2024 à 20:47:24. (2311 messages postés) -

Citation:


Alors ça marche mais à moitié.
Déjà, y'a pas moyen de récupérer l'ID d'un tile via RM à ma connaissance. Obligé de récupérer cet ID dans une variable et de regarder sa valeur via la table des variables in-game. C'est pas très pratique mais ça t'y es pour rien.



Comment ça ? Il suffit juste de mettre le numéro, pourquoi vouloir passer par une variable ?
A la limite, si tu connais pas l'ID de la tile que tu veux remplacer, ni celle par quoi tu veux la remplacer, le mieux c'est d'utiliser un truc du genre :

Portion de code : Tout sélectionner

1
2
3
$game_map.data.zsize.times do |z|
  p $game_map.data[2,5,z]
end


Qui va afficher dans la console le tile ID de chaque couche, pour les coordonnées 2/5, et à toi de voir à quoi ça correspond.
( Mais à première vue, 0-255 la couche B, 256-511 la C, 512-727 D, et 728-(728+256) [Flemme de compter :F] la E )




En utilisant basiquement :

Portion de code : Tout sélectionner

1
$game_map.convert_tiles(1, 2)


Ca marche très bien, j'ai utilisé le tileset basique de RMVAce ( Terrain ), ça change bien mes panneaux en ponts ( sur la couche B ).



@Crystal, on va pas se cacher que mon code avait aucune chance de marcher, et que c'était pas le but :F

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [Scripts] Petites questions connes sur les SCRIPTS!!

Mack - posté le 08/09/2024 à 22:57:52. (2311 messages postés) -

Pas sur que y ai une commande toute prête pour faire ça


Par contre, la solution de Crystal est un bon début, il suffit de faire une boucle sur la longueur / largeur / 3, et de changer le tile.

Un truc dans ce genre :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
class Game_Interpreter
  def change_tiles(old, new)
    for x in 0..$game_map.data.size
      for y in 0..$game_map.data[x].size
        for z in 0..3
          if $game_map.data[x][y][z] == old
            $game_map.data[x][y][z] = new
          end
        end
      end
    end
  end
end



( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [MZ] Editer le menu de l'écran titre

Mack - posté le 27/08/2024 à 19:29:38. (2311 messages postés) -

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
//-----------------------------------------------------------------------------
// Window_TitleCommand
//
// The window for selecting New Game/Continue on the title screen.
 
function Window_TitleCommand() {
    this.initialize(...arguments);
}
 
Window_TitleCommand.prototype = Object.create(Window_Command.prototype);
Window_TitleCommand.prototype.constructor = Window_TitleCommand;
 
Window_TitleCommand.prototype.initialize = function(rect) {
    Window_Command.prototype.initialize.call(this, rect);
    this.openness = 0;
    this.selectLast();
};
 
Window_TitleCommand._lastCommandSymbol = null;
 
Window_TitleCommand.initCommandPosition = function() {
    this._lastCommandSymbol = null;
};
 
Window_TitleCommand.prototype.makeCommandList = function() {
    const continueEnabled = this.isContinueEnabled();
    this.addCommand(TextManager.newGame, "newGame");
    this.addCommand(TextManager.continue_, "continue", continueEnabled);
    this.addCommand(TextManager.options, "options");
};
 
Window_TitleCommand.prototype.isContinueEnabled = function() {
    return DataManager.isAnySavefileExists();
};
 
Window_TitleCommand.prototype.processOk = function() {
    Window_TitleCommand._lastCommandSymbol = this.currentSymbol();
    Window_Command.prototype.processOk.call(this);
};
 
Window_TitleCommand.prototype.selectLast = function() {
    if (Window_TitleCommand._lastCommandSymbol) {
        this.selectSymbol(Window_TitleCommand._lastCommandSymbol);
    } else if (this.isContinueEnabled()) {
        this.selectSymbol("continue");
    }
};
 



L'intégralité du Window_TitleCommand



Donc je suppose que t'as mis en commentaire ces lignes là :

Portion de code : Tout sélectionner

1
2
    this.addCommand(TextManager.continue_, "continue", continueEnabled);
    this.addCommand(TextManager.options, "options");




A première vue, rien dedans pour changer la taille.
( Enfin, rien pour le faire de façon propre :F )



Par contre, dans rmmz_scenes.js, j'ai trouvé ça :

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
Scene_Title.prototype.commandWindowRect = function() {
    const offsetX = $dataSystem.titleCommandWindow.offsetX;
    const offsetY = $dataSystem.titleCommandWindow.offsetY;
    const ww = this.mainCommandWidth();
    const wh = this.calcWindowHeight(3, true);
    const wx = (Graphics.boxWidth - ww) / 2 + offsetX;
    const wy = Graphics.boxHeight - wh - 96 + offsetY;
    return new Rectangle(wx, wy, ww, wh);
};



Dedans, je vois :

Portion de code : Tout sélectionner

1
    const wh = this.calcWindowHeight(3, true);



Je suppose que ça calcul la taille pour 3 commandes, donc en mettant 1 à la place ça devrait passer.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Aëdemphia

Mack - posté le 19/08/2024 à 20:37:31. (2311 messages postés) -

Brocolilipop a dit:

Ça devrait plutôt être facile de coder un outil qui teste si un message dépasse de sa boîte, non ? On connaît la taille des fenêtres et la police du jeu, on peut remplacer les balises par un texte approprié (variable -> 0000, nom -> w ou m * nombre de caractères maximal dans un nom de personnage, etc.) et ensuite calculer la largeur du texte résultant. Bon ça règle pas tous les soucis d'une traduction mais ça rend cette histoire de dépassement gérable.


Y a encore plus simple, si Nonor a pas trop changé la police du jeu, c'est une police où chaque caractères fait la même taille.
Je crois qu'Harusame avait regardé, et une boite sans faceset, c'est 40 caractères.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [Rpg Maker MZ] Afficher le nom d'une touche lors d'un dialogue

Mack - posté le 08/08/2024 à 22:38:11. (2311 messages postés) -

Réponse du Discord :

Mack a dit:

...
C'était tout simple et j'y ai pas pensé.

Portion de code : Tout sélectionner

1
2
3
4
5
let key = Nowis337_KeyboardRebind.finalData[1];
let currentbindedkey = Nowis337_KeyboardRebind.currentBindedKey(key.inputKey);
let label = Nowis337_KeyboardRebind.findKeyDisplay(currentbindedkey);
 
$gameActors.actor(1).setName(label);


Petite astuce, quand tu galères à trouve ce que contiens une liste d'élément, affiche les tous, et regarde celui que tu veux :F
Attention par contre, ici INDEX c'est 1, parce que dans la config, KeyBind List, c'est le premier élement configurable. Si t'avais fait dans un autre sens, ça serait pas 1, mais autre chose
Donc, en gros, INDEX, il faut que ça soit toujours égale à ça :
image



Donc voila, maintenant le héros 1 de la BD aura le nom de la touche.
A toi de voir ce que tu veux en faire maintenant !

Si tu as besoin de faire la même chose, mais pour la touche Cancel, c'est exactement la même chose, mais avec l'index 2.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [Rpg maker Vx Ace] Systeme de bouclier a briser pendant les combats

Mack - posté le 21/07/2024 à 20:22:34. (2311 messages postés) -

Salut !

Démo :
https://www.mediafire.com/file/n8ow47pdv16e5ff/Octopath+Shield.7z/file

Script :

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
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
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
 
module OctoShield
  
  X_offset = 0
  Y_offset = 0
  
  # Icon ID
  Icon_pts = 495
  
  # Basic Shield Points per enemy
  Default_Pts = 5
  
  # Basic shield damage per action
  Base_DMG = 0
  
  # Base resistances
  Damage_Res = [125, 100, 80, 60, 40, 20] # 0, 1, 2, 3, 4, 5 Pts de shield
  
end
 
class Game_Enemy < Game_Battler
  
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  alias initialize_old initialize
  def initialize(index, enemy_id)
    
    initialize_old(index, enemy_id)
    
    shield_init(enemy_id)
    
  end
  
end
 
class Game_Battler < Game_BattlerBase
  
  attr_accessor :shield_pts
  attr_reader   :use_octoshield
  attr_reader   :shield_resistance
  
  #--------------------------------------------------------------------------
  # * OctoShield Initialization
  #--------------------------------------------------------------------------
  def shield_init(id)
    @shield_pts = 0
    
    @use_octoshield = false
    if (!actor?())
      @use_octoshield = true
      
      # Init base pts
      @shield_pts = OctoShield::Default_Pts
      
      # Read notes for base pts, and resistances
      regex = /<OctoShield: (\w+) (.*)>/i
      
      note = $data_enemies[id].note
      results = note.scan(regex)
      results.each do |res|
        
        # p res
        
        if (res[0] == "pts")
          
          @shield_pts = res[1].to_i
          
        elsif (res[0] == "res")
          
          @shield_resistance = res[1].split(",", -1).map(&:to_i)
          
        end
      end
    
    end
    
  end
  
  #--------------------------------------------------------------------------
  # * Apply Effect of Skill/Item
  #--------------------------------------------------------------------------
  alias item_apply_old item_apply
  def item_apply(user, item)
    
    item_apply_old(user, item)
    
    if (@result.hit? and @use_octoshield)
      
      if (@shield_pts > 0)
        
        pts = OctoShield::Base_DMG
        
        # Read item for damage to shield
        regex = /<OctoShield: (\w+) (\d+)>/i
        note = item.note
        results = note.scan(regex)
        results.each do |res|
          
          #p res
          
          if (res[0] == "pts")
            pts = res[1].to_i
          end
        end
        
        
        @shield_pts -= pts
        if (@shield_pts < 0)
          @shield_pts = 0
        end
        
      end
      
    end
  end
  
  #--------------------------------------------------------------------------
  # * Calculate Damage
  #--------------------------------------------------------------------------
  def make_damage_value(user, item)
    value = item.damage.eval(user, self, $game_variables)
    value *= item_element_rate(user, item)
    value *= pdr if item.physical?
    value *= mdr if item.magical?
    value *= rec if item.damage.recover?
    value = apply_critical(value) if @result.critical
    value = apply_variance(value, item.damage.variance)
    value = apply_guard(value)
    
    # Modifications here :
    if (@use_octoshield)
      
      dmg_res = OctoShield::Damage_Res
      if (@shield_resistance)
        dmg_res = @shield_resistance
      end
      
      if (@shield_pts < dmg_res.size())
        
        dmg_res = dmg_res[@shield_pts].to_i
        
        value *= dmg_res / 100.0
        
      end
      
    end
    # End of modifications
    
    @result.make_damage(value.to_i, item)
  end
  
end
  
class Sprite_Battler < Sprite_Base
  attr_accessor :window_octoshield
  attr_reader   :use_octoshield
  
  alias initialize_old initialize
  def initialize(viewport, battler = nil)
    
    initialize_old(viewport, battler)
    
    if (battler)
      @use_octoshield = true
      
      x = self.x
      y = self.y
      
      @window_octoshield = Window_Base.new(x, y, 80, 80)
      @window_octoshield.back_opacity = 0 
      @window_octoshield.opacity = 0
      @window_octoshield.visible = false
      
    end
    
  end
  #--------------------------------------------------------------------------
  # * Update Transfer Origin Bitmap
  #--------------------------------------------------------------------------
  alias update_bitmap_old update_bitmap
  def update_bitmap
    
    update_bitmap_old()
    
    if (@use_octoshield)
      
      if (@battler.actor?())
        return
      end
    
      if (bitmap)
        x = OctoShield::X_offset
        y = - bitmap.height / 2 + OctoShield::Y_offset
      else
        x = OctoShield::X_offset
        y = OctoShield::Y_offset
      end
      
      x += self.x
      y += self.y
      
      @window_octoshield.x = x
      @window_octoshield.y = y
      @window_octoshield.contents_opacity = self.opacity
      
    end
    
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  alias update_old update
  def update
    
    update_old()
    
    if (@window_octoshield)
      
      @window_octoshield.visible = true
      
      @window_octoshield.contents.clear()
      
      @window_octoshield.draw_text(0, 0, 80, 24, @battler.shield_pts)
      
      if (OctoShield::Icon_pts > 0) 
        txt_size = @window_octoshield.text_size(@battler.shield_pts)
        @window_octoshield.draw_icon(OctoShield::Icon_pts, txt_size.width, 0, true)
      end
      
    end
  end
  
  #--------------------------------------------------------------------------
  # * Free
  #--------------------------------------------------------------------------
  alias dispose_old dispose
  def dispose
    dispose_old
    @window_octoshield.dispose if @window_octoshield
  end
end
 




Donc tu peux paramétrer une partie directement depuis le script.
Les 2 offsets, c'est pour décaler les points de boucliers, en négatif ça va en haut / gauche, en positif bas/droite
Icon_Pts, c'est si tu veux afficher une icone à côté du nombre de point de bouclier. 0 si tu veux pas d'icône
Default_Pts, c'est le nombre par défaut de point de bouclier. Donc si tu mets 1, TOUT les monstres auront 1 point de bouclier.
Base_DMG, c'est le nombre de point de shield que fait TOUT les sorts.
Damage_Res c'est le modificateur de dégat par rapport au point de bouclier. Le premier, c'est quand y a 0 point, le second quand y a 1 point, ...

Evidemment, les valeurs Default_Pts, Base_DMG, et Damage_Res sont des valeurs par défaut.
Tu peux paramètrer ces valeurs en ajoutant des notes aux sorts, ou aux ennemis :
- Sur un ennemi :

Portion de code : Tout sélectionner

1
<OctoShield: pts 3>


Indiquera qu'il aura 3 point de bouclier. Peut importe la valeur mise dans le script.

Portion de code : Tout sélectionner

1
<OctoShield: res 200,150,145>


Changera le modificateur de dégât.

- Sur une compétence :

Portion de code : Tout sélectionner

1
<OctoShield: pts 1>


Fera que le sort retire 1 point de bouclier.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Screen de la semaine - TroDark City

Mack - posté le 02/07/2024 à 19:46:17. (2311 messages postés) -

Merci à tous :D

Roi of the Suisse a dit:

@Mack
C'est très propre !
Pourquoi le lampadaire a un halo lumineux à un seul niveau alors que le personnage a un halo lumineux à deux niveaux ? Pourquoi le personnage a un halo d'ailleurs ? Il porte une lanterne ? Pourquoi les PNJ ne portent pas de lanterne aussi ? Ils sont nyctalopes ?



En faite, le lampadaire à bien 2 niveaux de lumières, mais ça ce voit beaucoup moins
( En plus du fait que quand 2 lumières de niveaux "moyenne" se touchent elles fusionnent pour donner une lumière "forte" )

Et pour les PNJ, c'est des kepons trop dark, ils aiment les trucs bresons !
Et le héros, lui aime pas trop ça, c'est un chic type, donc il porte une lampe à 360° pour que tout le monde le voit !

Blague à part, j'ai full pifé la map, donc en vrai elle à pas vraiment de sens, c'était plus pour essayer d'avoir un résultat plus jolie qu'un terrain vague :F
Sur un screen on voit pas trop, ça aurait surement mieux rendu avec un Gif, mais ça aurait pas vraiment été du jeu !

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Topic des bribes de projets

Mack - posté le 03/06/2024 à 20:55:05. (2311 messages postés) -

Le nombre de griffe sortie de la patte ?

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Discussion Générale de making

Mack - posté le 03/06/2024 à 18:22:18. (2311 messages postés) -

Salut les genses !

Alka voulait faire un système de lumière simple, mais dynamique sous Maniacs, du coup j'ai jeté un œil :
image

J'me suis un peu emmerdé, mais du coup ça marche vraiment pas trop mal, apparemment sur la patate de Alka ça rame pas trop, donc potentiellement ça pourrait bien passer même sur les petites configs, à condition de pas trop blinder de lumières :F

J'ai aussi un peu fait mumuse pour afficher le reflet du héros dans l'eau, y a encore un peu de boulot, notamment sur l'animation du reflet, mais ça rend vraiment pas mal je trouve !

Donc un petit lien pour ceux qui voudraient y jeter un œil, ou carrément essayer de s'en servir dans un projet !

https://www.mediafire.com/file/ex41vgm74dy9r86/Fog.zip/file

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker VX Ace] CHiffre dans les sauvegardes

Mack - posté le 21/04/2024 à 11:58:45. (2311 messages postés) -

Avec une version sans script, j'ai rien du tout dans ce genre là :
image

Je suis allé jeté un œil dans les scripts, idem, rien qui pourrait afficher du texte à cette endroit

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker VX Ace] CHiffre dans les sauvegardes

Mack - posté le 21/04/2024 à 10:59:18. (2311 messages postés) -

Tu utilises un script en particulier pour les saves ?

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [Vx Ace] Aide pour ce lancer!

Mack - posté le 16/04/2024 à 10:36:20. (2311 messages postés) -

Comme dit Ecko, tout ce que tu demandes est faisable, mais certaines choses sont soit très compliqué, soit très longue /chiante

- Selon le mini jeu, ça va du très facile, au un peu plus compliqué

- Beaucoup de tuto

- Faisable assez facilement, mais peut devenir compliqué selon ce que tu veux faire ( plus t'as de possibilité différente pour un même personnage, plus ça va se complexifié )

- Ca dépend ce que tu entends par là. Si c'est "juste" les avoir dans l'équipe, c'est facile à faire, mais ça peut devenir très long

- Largement faisable. Soit par script, soit par évènement. ( Doit surement y avoir des tuto pour faire des boutiques custom pour RM2k3, le principe sera grossièrement le même )

- Faisable, mais faut passer par un CMS ( Custom Menu System ), donc soit par évent, soit par script. Et encore une fois, ça peut devenir compliqué selon ce que tu veux faire

- Faisable, mais honnêtement, c'est beaucoup trop chiant ( Surtout la partie graphique )

- C'est ce qu'on appel un CBS ( Custom Battle System ), c'est faisable, mais ça dépend vraiment de ce que tu veux faire

- Comme pour la customisation du personnage, c'est faisable, et c'est même très facile, mais ça veut dire avoir une animation par action. Et donc si tu combines avec la personnalisation, ça fait vite beaucoup

- Facile à faire, plein de tuto existe sur RM2K3 ( surtout la course / sneak )

- Faisable, mais c'est surement l'enfer.

- Faisable, mais c'est un peu trop vague

- Faisable, mais ça demande quelques connaissances avancées en évent, ou de passer par des scripts si ça existe

- Très facile à faire

- Comme le système de housing, mais en beaucoup plus complexe ( gestion des habitants en plus quoi )

- Faisable

Donc pour moi, tout est faisable, mais certain trucs seront assez compliqué / chiant
Si tu débutes, il vaut mieux partir sur un truc plus simple au début, et rajouter les choses compliquées au fur et à mesure.
Notamment commencer par quelque chose de beaucoup plus "classique", histoire de te faire la main sur la base du logiciel

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Screenshots de vos jeux !

Mack - posté le 07/04/2024 à 19:38:59. (2311 messages postés) -

Ca faisait un moment que j'avais pas touché à RM, et du coup j'ai repris des vieux trucs :
Ennemis animés en combat :
image
Chaque ennemis peut avoir une arme différente, quasiment tout est géré depuis la BD de RM

Et le second gros projet, rendre EasyRPG compatible à la souris :
image
image
Donc normalement, tout est fait, il faut juste faire du testing.

( Tout est en Gif, je sais pas pourquoi ça autoplay pas )

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Discussion Générale de making

Mack - posté le 27/03/2024 à 07:31:07. (2311 messages postés) -

Ouais, c'est un peu le bordel :

Citation:

nstructions:
You need the rpg maker 2003 from Steam, atleast I used that with the last version and CRC.

The Utility.exe has to be selected as 英語 to generate an english RPG Maker 2003.

From Utility options below 英語 (English):
Directory Normal Rpg maker 2003
Directory New version Rpg maker 2003
Click just below the button and finish



image

Sinon j'ai mis juste le player ici si tu veux pas te faire chier à tout installer :
https://www.mediafire.com/file/8ijzebaugncw2qu/RPG_RT.exe/file

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Discussion Générale de making

Mack - posté le 26/03/2024 à 19:51:21. (2311 messages postés) -

J'avais un peu de temps à perdre cette aprem au boulot, et donc j'ai un peu glander sur internet, et en faisant le tour de mes sites RM, j'suis tombé sur ce sujet :
https://rpgmaker.net/forums/topics/24260/?post=946405#post946405

Citation:

Maniacs Patched projects seem to gut/remove the directdraw support in RGP_RT.exe altogether and makes it just use GDI (compare the config windows between a patched project and vanilla, it's not present in Maniacs patched versions)
However I did discover a graphics driver setting that forced GDI to be smooth with my NVIDIA card:
image



Donc question un peu conne Sylvanor, mais par hasard tu serais pas sur un PC portable avec un GPU intégré sur la CM, et un "vrai" GPU ?
Et du coup tu rentrerais dans ce cas où le jeu se lance sur la mauvaise carte ?

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Discussion Générale de making

Mack - posté le 29/02/2024 à 20:32:22. (2311 messages postés) -

Zam a dit:

Mack > Avec Maniacs c'est possible de récupérer la valeur de n'importe quelle variable de n'importe quelle sauvegarde, tu fais ce que tu veux avec ça.

EasyRPG serait une piste aussi oui, ils ont peut-être une solution.


Ah, j'me souviens pas mais peut être, ça fait trop longtemps que j'ai pas touché à ces commandes là :F

Nemau a dit:

Zam's the Maaaaaaniac, Maaaaaaaniac on the floor !...

Je crois que Zim se posait aussi la question de faire un système de sauvegarde custom, et je crois qu'on lui avait répondu "EasyRPG", je te conseille de lui demander (mais on parle de Zim donc pas en MP si tu veux avoir une réponse avant la fin du siècle =>[]).


C'est pas forcément étonnant que la réponses aux questions de la customisation soit EasyRPG, ça permet de base de jouer à 90% des jeux RM, et c'est open source, donc si t'as quelqu'un qui sait programmer, tu peux faire à peu près c'que tu veux dessus

Sylvanor a dit:

Peut-être qu'un jour le patch Maniac réglera ses problèmes de framerate et je pourrai l'utiliser.
Cherry, je crois qu'il a plus trop envie de passer du temps avec RM2003, il me semble qu'il avait été très mal payé/considéré par Enterbrain, j'ai pas trop envie de l'embêter avec ça. J'ai senti qu'il avait pondu DynRPG un peu pour que tout le monde puisse faire des patchs de son côté (et la version Steam de RM est compatible avec DynRPG) mais finalement personne ou presque n'en a rien fait ça a dû le décevoir un peu.

Je vis bien avec le système de base de RM pour les sauvegardes. Je me suis résigné.

Juste, je trouvais que la version custom qu'on avait grâce au patch de Cherry ne récupérait pas assez d'infos mais je me suis dit tiens si je stocke genre tout le groupe dans une seule variable où chaque chiffre est l'identifiant d'un personnage et que je le récupère grâce à un modulo et une division j'économise plein de variables et je pourrai peut-être faire quelque chose quand même. Sur une variable à 6 chiffres je pourrais même récupérer le lieu (3 chiffres), et ça ferait un super système qui affiche autant d'infos que le système de base. Mais voilà le patch c'était avant la version Steam.

On verra un jour pour EasyRPG, reste à régler définitivement les problèmes de framerate pour celui-là aussi... De mémoire les cinématiques c'était réglé? Enfin plus ou moins je crois?



T'es sur que DynRPG est compatible avec la version Steam ? Quand j'avais commencé à faire des plugins dessus ( en 2020 ), c'était pas compatible, j'avais été obligé de passer sur la vieille version de RM, avec tout les problème de compatibilité que ça engendre :/
Parce que si oui, j'peux toujours voir pour faire un plugin pour rajouter c'que tu veux
Edit : En faisant des recherches, les seules réponses que j'ai datent de quelques années, et disent toute que c'est mort :F

Maniacs, je pense que y aura jamais de version qui tourne mieux :F
Comme le mec à pas accès au code source, il fait un peu comme il peut, donc forcément niveau opti ça sera jamais parfait :F
( Même si dans les utilisations simple, c'est sencé être bien plus opti que la version Steam )

Et pour EasyRPG, de mémoire, oui des solutions ont été trouvé pour la vidéo, mais comme ça marche que pour Windows ( et peut être Linux ), ça à été mis de côté tant que c'est pas compatible avec tout les OS :/
( Après, à la limite on s'en fou, tu peux toujours avoir une version custom qui tourne que sous Win/Linux )
Et pour les lenteurs, de mémoires les gens ont trouvé que ça venait de leur façon de gérer les teintes, mais y a pas eu vraiment d'avancement :/
Je crois que les gens attendent de passer sous la version 3 de SDL, pour pouvoir gérer tout avec des shaders, mais on va pas se cacher qu'il doit rester max une ou deux personnes qui bossent vraiment sur EasyRPG, en tout cas sur la partie compatibilité et résolution de bugs )



EDIT :
D'ailleurs en parlant d'EasyRPG et Maniacs :
image
Avec la version version WIP de l'éditeur Maniacs, on peut apparemment créer de nouvelles fenêtres pour faire de nouvelles commandes, enfin fini de passer par des commentaires moches \o/

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Discussion Générale de making

Mack - posté le 28/02/2024 à 22:19:46. (2311 messages postés) -

Et encore, avec Maniacs tu vas surtout pouvoir récupérer les même infos que dans l'écran de sauvegarde, de manière très facile, sinon ça va être un peu plus compliqué.

Y a bien une commande "Global Save" qui permet de sauvegarder / récupérer des infos peut importe la save. Mais je sais pas si on peut sauvegarder du texte, ou que les variables / interrupteur.

L'autre solution, c'est de passer par des fichiers .txt, mais j'pense que juste la commande Global Save devrait suffire

EDIT :
Sinon, comme t'as un projet conséquent et qui existe depuis longtemps, y a toujours la possibilité de demander à Cherry si c'est possible d'essayer de trafiquer l'exe pour rajouter ce que tu veux, je sais que pour des trucs simples elle ( il ? ) a déjà fait des modifs pour un projet commercial ( Beloved Rapture ) sur lequel je passe régulièrement un coup de main

Et la quatrième solution, c'est de trouver quelqu'un pour faire une version custom de EasyRPG qui supporte Aëdemphia, mais ça j'y crois zéro :F

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RESOLU] [rmxp] retirer gain d'argent

Mack - posté le 04/01/2024 à 00:39:34. (2311 messages postés) -

Dans le script Window_BattleResult, dans la def initialize, t'as ça :

Portion de code : Tout sélectionner

1
self.y = 160 - height / 2



Faut que tu joues avec le 160

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RESOLU] [rmxp] retirer gain d'argent

Mack - posté le 08/12/2023 à 18:50:29. (2311 messages postés) -

Okay bizarre, j'ai enfin eu le temp de retester sur un projet vierge et ça marche bien ...

Tu peux m'envoyer une démo que j'essaye de voir si y a pas un genre de conflit ?

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RESOLU] [rmxp] retirer gain d'argent

Mack - posté le 07/12/2023 à 13:10:19. (2311 messages postés) -

Rassure moi, tu l'as bien rajouter comme nouveau script ? :F
J'essayerais de voir ce soir, j'ai peut être merdé quand j'ai remis le script d'origine lors de mon test

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RESOLU] [rmxp] retirer gain d'argent

Mack - posté le 07/12/2023 à 07:17:37. (2311 messages postés) -

Ah ?
image

T'as un script qui modifie la Window_BattleResult ?

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RESOLU] [rmxp] retirer gain d'argent

Mack - posté le 06/12/2023 à 19:43:45. (2311 messages postés) -

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
#==============================================================================
# ** Window_BattleResult
#------------------------------------------------------------------------------
#  This window displays amount of gold and EXP acquired at the end of a battle.
#==============================================================================
 
class Window_BattleResult < Window_Base 
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    x = 4
    self.contents.font.color = normal_color
    cx = contents.text_size(@exp.to_s).width
    self.contents.draw_text(x, 0, cx, 32, @exp.to_s)
    x += cx + 4
    self.contents.font.color = system_color
    cx = contents.text_size("EXP").width
    self.contents.draw_text(x, 0, 64, 32, "EXP")
    if @gold > 0
      x += cx + 16
      self.contents.font.color = normal_color
      cx = contents.text_size(@gold.to_s).width
      self.contents.draw_text(x, 0, cx, 32, @gold.to_s)
      x += cx + 4
      self.contents.font.color = system_color
      self.contents.draw_text(x, 0, 128, 32, $data_system.words.gold)
    end
    y = 32
    for item in @treasures
      draw_item_name(item, 4, y)
      y += 32
    end
  end
end
 



Ca t'affichera les golds, que si t'en a gagné pendant le combat, si c'est 0, ça affiche que le reste.

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker XP] Aide sur un script de contre-attaque quasi fonctionnel

Mack - posté le 06/12/2023 à 19:32:32. (2311 messages postés) -

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
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
 
#==========================================================================
# ** UL Counter Attack
#==========================================================================
# Uncle Lanzer 
# Version 1
# 21.09.10
#==========================================================================
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#   
#  This work is protected by the following license:
# #----------------------------------------------------------------------------
# #  
# #  Creative Commons - Attribution-NonCommercial-ShareAlike 3.0 Unported
# #  ( http://creativecommons.org/licenses/by-nc-sa/3.0/ )
# #  
# #  You are free:
# #  
# #  to Share - to copy, distribute and transmit the work
# #  to Remix - to adapt the work
# #  
# #  Under the following conditions:
# #  
# #  Attribution. You must attribute the work in the manner specified by the
# #  author or licensor (but not in any way that suggests that they endorse you
# #  or your use of the work).
# #  
# #  Noncommercial. You may not use this work for commercial purposes.
# #  
# #  Share alike. If you alter, transform, or build upon this work, you may
# #  distribute the resulting work only under the same or similar license to
# #  this one.
# #  
# #  - For any reuse or distribution, you must make clear to others the license
# #    terms of this work. The best way to do this is with a link to this web
# #    page.
# #  
# #  - Any of the above conditions can be waived if you get permission from the
# #    copyright holder.
# #  
# #  - Nothing in this license impairs or restricts the author's moral rights.
# #  
# #----------------------------------------------------------------------------
 
#################
#               #  
# CONFIGURATION #
#               # 
#################
# IT`S PRETTY SIMPLE........ JUST KILL THE BATMAN! <-- FORGET THAT -.-U
# MAKE A "(YOUR COUNTER NAME)" STATE
# UL_COUNTER_STATES = { A => [ B,C]}
# A = THE COUNTER STATE
# B = RATE OF SUCCESS
# C = STRENGHT OF COUNTER ( % OF A NORMAL ATTACK)
Scene_Battle::UL_Counter_States = { 66 => [100,100], 
#Rancune2:
100 => [100,75], 
#Rancune1:
122 => [100,50], 
123 => [100,30], 142 => [30,30], 143 => [40,40], 144 => [50,50], 145 => [60,60], 184 => [100,100], 242 => [100,600], 249 => [150,100], 242 => [100,500], 
280 => [80,100], 281 => [45,40], 344 => [100,180], 250 => [100,300], 430 => [30,30], 431 => [40,40], 432 => [50,50], 433 => [60,60], 
#Rancune3:
436 => [100,100]} #ADD MORE BY THE SAME SYNTAX
 
 
# MESSAGGE WHEN COUNTER
Scene_Battle::UL_Counter_Messages = ['\m contre-attaque!']
 
# CHECKING SCRIPT
if !@ul_counterattack_disabled
 
# START
class Game_Battler
    
  alias lanzer_counter_battler_atkeff attack_effect
  def attack_effect(attacker)
    b = lanzer_counter_battler_atkeff(attacker)
    if @scene.is_a?(Scene_Battle)
      if $scene.active_battler == attacker
        $scene.ul_atkcounter_test(self)
      end
    end
    return b
  end
  
  alias counter_skill_attacks skill_effect
  def skill_effect(attacker, skill)
    b = counter_skill_attacks(attacker, skill)
    if @scene.is_a?(Scene_Battle)
      if $scene.active_battler == attacker and skill.power > 0
        $scene.ul_atkcounter_test(self)
      end
    end
    return b
  end
  
end
 
class Scene_Battle
  attr_accessor :active_battler
  
  def ul_atkcounter_test(battler)
    # The actor is applied with a state that prevents movement. Stop counter.
    return unless battler.movable?
    
    ul_temp = UL_Counter_States.keys
    for i in 0...ul_temp.size
      if battler.state?(ul_temp[i])
        if UL_Counter_States[ul_temp[i]][0] > rand(99)
          @ul_counter = UL_Counter_States[ul_temp[i]][1]
          @ul_countertarget = battler
          return
        end
      end
    end
  end
  
  alias lanzer_counter_battle_up4s5 update_phase4_step5
  def update_phase4_step5
    lanzer_counter_battle_up4s5
    if @ul_countertarget != nil
      @phase4_step = 1337  # LEET
      @ul_atkcounter = 28
    end
  end
  
  def ul_counter_update
    if @ul_countertarget.dead? or @ul_atkcounter == 0 or !@ul_countertarget.movable?
      @ul_atkcounter = nil
      @ul_counter = nil
      @ul_countertarget = nil
      @phase4_step = 6
      return
    end
    @ul_atkcounter -= 1
    if @ul_atkcounter == 10
      @ul_countertarget.animation_id = @ul_countertarget.animation1_id
      @active_battler.animation_id = @ul_countertarget.animation2_id
      ul_temp = rand(UL_Counter_Messages.size)
      ul_temp = UL_Counter_Messages[ul_temp].clone
      ul_temp.gsub!(/\\[Mm]/) { @ul_countertarget.name }
      @help_window.set_text(ul_temp, 1)
      @active_battler.attack_effect(@ul_countertarget)
      if !@active_battler.damage.is_a?(String)
        @active_battler.hp += @active_battler.damage
        @active_battler.damage = @active_battler.damage * @ul_counter / 100
        @active_battler.hp -= @active_battler.damage
        @status_window.refresh
      end
      @active_battler.damage_pop = true
    end
  end
  
  alias lanzer_counter_battle_update update
  def update
    if @ul_atkcounter != nil
      ul_counter_update
    end
    lanzer_counter_battle_update
  end
end
 
#--------------------------------------------------------------------------#
end
 



En faite, le script de base est mal branlé.


Pour faire simple, la méthode skill_effect est censé renvoyer un boolean ( vrai ou faux ).
Or, dans le script, ben cette partie est complétement passer à la trappe, on renvoi jamais le résultat de la méthode d'origine.
Donc en rajoutant juste le return, ça marche, mais comme la première fois, j'ai pas réussis à tester en combat.


En relisant un peu le script de base, j'me dit que en combat, même si l'ennemi rate son coup, le contre doit avoir lieu, je sais pas si c'est un truc que tu veux ou pas.


Par contre Cortez, je comprend pas ce que t'as essayé de faire ? ( Enfin, je comprend pas comment ça peut marcher ? )
Le problème initiale, c'était que ça essayé d'appeler une métode qui n'existait pas dans la classe Scene_Script, comment ça marche ce que t'as fait ?
Le alias_method va créer une méthode vide dans le cas où elle existe pas ?

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker XP] Aide sur un script de contre-attaque quasi fonctionnel

Mack - posté le 06/12/2023 à 11:54:23. (2311 messages postés) -

Question con, mais le nouveau if il englobe que la condition, il englobe pas la ligne lanzer_counter_battler_atkeff(attacker) ?
( Ni le counter_skill_attacks(attacker )

Pareil, le skill que tu veux lancer dans le menu est bien lancable ?
( Genre si c'est du soin, que la cible est pas toute sa vie )

Là sur le code que tu montres je vois rien qui pourrait bloquer ça a part le truc que j'ai dit avant

J'essaierais de voir ce soir pour faire des test

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker XP] Aide sur un script de contre-attaque quasi fonctionnel

Mack - posté le 05/12/2023 à 10:41:01. (2311 messages postés) -

Ouais, c'est une solution, mais pour moi c'est pas une bonne.
En gros en faisant ce que ChatGPT te dit, la Scene_Skill va hériter de tout les attribut du Scene_Battle, donc de plein de truc dont t'as rien à faire.


Tu peux te contenter d'englober les lignes :

Portion de code : Tout sélectionner

1
if $scene.active_battler == attacker


et

Portion de code : Tout sélectionner

1
if $scene.active_battler == attacker and skill.power > 0


Par :

Portion de code : Tout sélectionner

1
if $scene.is_a?(Scene_Battle)


( Avec le end juste après )

Comme ça si on est pas dans la Scene_Battle, le active_player ne sera jamais appelé.

( J'ai pas réussis à faire fonctionner le contre, je suppose que j'ai chier quelque part dans la config, mais j'ai plus le crash dans le menu des compétences, donc je te laisserais tester en combat )




Ah, et aussi, essaye d'utiliser la balise de code plutôt que celle de spoiler, c'est plus facile à lire :P

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - Topic de l'informatique

Mack - posté le 04/12/2023 à 20:52:35. (2311 messages postés) -

Moi j'ai bien les trucs dont parle Trotter, c'est bizarre.

Par contre, c'est quoi la différence entre cette taskbar et épingler les programmes à la barre des taches ?
Genre moi, j'ai toujours les boutons pour ouvrir mon navigateur web, l'explorer, Steam, ... qui sont épinglés à la barre, du coup, même si ils sont pas ouvert j'ai quand même le bouton

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RM2k3] Distance entre deux points

Mack - posté le 04/12/2023 à 18:42:00. (2311 messages postés) -

Effectivement, au final j'ai ben utilisé la méthode de Tassle, et ça donne ça :
image
( Evidemment, l'HUD c'est du gros WIP bien crado, mais au moins ça me permettra de vérifier que les gens comprennent à peu près )

Pour l'instant j'ai réellement codé que 3 sorts ( Au plus proche, En ligne, et En ligne ( derrière ) ), mais j'ai fait un google sheet pour faire et visualiser les calculs avant de les mettre en place, donc pour l'instant, j'ai les 3 d'avant, plus un qui cible en prio la frontline, et un la backline.
J'pense essayer de faire un truc pour viser la middleline, et peut être les diagonales en prio, puis je m'arrêterais surement là, et j'essayerais d'en faire plus qu'un WIP :F

( Je prend note de tout les commentaires, même si je n'y répond pas )

Posté dans Forum - [RPG Maker XP] Aide sur un script de contre-attaque quasi fonctionnel

Mack - posté le 04/12/2023 à 18:29:01. (2311 messages postés) -

Roi of the Suisse a dit:

La méthode active_battler est définie dans la classe Scene_Battle :

Portion de code : Tout sélectionner

1
2
class Scene_Battle
attr_accessor :active_battler



Es-tu sûr que ta classe Scene_Skill hérite de la classe Scene_Battle ?


Ah peut près sur que c'est pas le cas, mais ça n'a aucun intérêt, non ?

J'me souviens plus du tout de la syntaxe, mais ça serait pas mieux de mettre une condition pour vérifier qu'il soit bien dans un Scene_Battle plutôt ?

( De mémoire c'est un truc du genre $scene.is_a(Scene_Battle), donc rajouter ça devant la condition qui pose problème et mettre le et qui effectue pas la seconde condition si la première n'est pas remplie serait mieux non ? )

( Je prend note de tout les commentaires, même si je n'y répond pas )

Aller à la page: 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

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