Bienvenue visiteur !
|
Désactiver la neige
Statistiques
Liste des membres
Contact
Mentions légales
286 connectés actuellement
30769242 visiteurs depuis l'ouverture
3061 visiteurs aujourd'hui
Partenaires
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
|
( 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 :
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 :
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 )
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
Il va donc falloir trouver une solution à ce problème
EDIT :
En faite, c'est pas si dur :
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 :
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 Si si on y croit ! |
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
Medoc- a dit: Ça me fait penser au premier Phoenix Wright et son DLC où on avait ce genre d'effet sur les objets. |
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 )
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
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) - |
|
( Le modèle du cristal vient de là : https://egideon.itch.io/stylized-crystal )
J'ai pas mal avancé ces deux derniers jours
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'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 )
|
( 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
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 )
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) - |
|
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
|
( 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
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
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
Ca fonctionne à l'envers mais ça fonctionne. |
Ah oui, j'ai fait les positions sans réfléchir
|
( 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
Edit :
Ah putaingue, c'est vrai que VXAce utilise une methode de handler, donc t'auras pas de XX.update
J'ai fait un truc dégueu, mais qui marche :
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
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
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 :
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 ] la E )
En utilisant basiquement :
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
|
( 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 :
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) - |
|
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à :
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 )
Par contre, dans rmmz_scenes.js, j'ai trouvé ça :
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 :
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é.
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
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 :
|
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 :
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 :
Indiquera qu'il aura 3 point de bouclier. Peut importe la valeur mise dans le script.
1
| <OctoShield: res 200,150,145> |
Changera le modificateur de dégât.
- Sur une compétence :
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
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
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 :
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
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à :
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 - [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 :
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 :
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
|
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:
|
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à
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
Maniacs, je pense que y aura jamais de version qui tourne mieux
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
( 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 :
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
|
( 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 :
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 ?
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 ?
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) - |
|
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) - |
|
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 :
1
| if $scene.active_battler == attacker |
et
1
| if $scene.active_battler == attacker and skill.power > 0 |
Par :
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 :
( 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
|
( 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 :
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
|
|
|