Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
314 connectés actuellement
30729805 visiteurs depuis l'ouverture
3422 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
DeadPool98 -
posté le 20/12/2016 à 22:12:48 (47 messages postés)
| Je suis un carton... | Domaine concerné: Script
Logiciel utilisé: Rpg Maker Vx Ace
Bonsoir Makeuses et Makeurs
Je voudrais savoir si il était possible de rendre les polices d'écritures plus nettes dans les dialogues?
En gros j'aimerais passer de ça:
à ça:
Voilà voilà, j'espère que l'on m'aidera à trouver une solution à ce détail...
|
J'aime les shorts, ça garde les genoux bien au frais! |
Nemau -
posté le 21/12/2016 à 00:22:50 (53212 messages postés)
- - | Narrer l'autocatégorème | Salut. Les galeries perso ne sont pas faites pour héberger ce genre d'image. A la place utilise Xooimage par exemple (une fois l'image uploadée copie le deuxième lien qu'il te propose).
Je vais éditer ton post avec un réupload des images.
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
DeadPool98 -
posté le 21/12/2016 à 10:41:14 (47 messages postés)
| Je suis un carton... | Merci et désolé... attends je le fais
|
J'aime les shorts, ça garde les genoux bien au frais! |
Verehn -
posté le 23/12/2016 à 02:11:29 (9058 messages postés)
- | Vhehrhehn | Qu'est-ce que tu utilises pour faire tes dialogues en bulle ? Est-ce que les dialogues sans bulle ont un problème ?
Quelle police d'écriture ? Est-ce qu'en la changeant pour une police plus courante ça passe ?
|
Eldrao ~ PakuPaku ~ Winged Light ~ Ruin ~ Ma galerie ~ LTDAD ~ Don de graphismes plateforme 2D |
DeadPool98 -
posté le 23/12/2016 à 10:50:16 (47 messages postés)
| Je suis un carton... | Salut Verehn!
Alors pour les dialogues en bulles j'utilise ce 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
| #==============================================================================
#
# ¥ Yami Engine Ace - Basic Module
# -- Last Updated: 2012.04.27
# -- Level: Nothing
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YSE-BasicModule"] = true
#==============================================================================
# ¥ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.04.27 - Added Notetags Initializer.
# 2012.03.24 - Added Parse Range Keys.
# 2012.03.17 - Updated Load Data Method.
# 2012.03.13 - Remove requirements mechanic.
# 2012.03.11 - Change in requirements mechanic.
# 2012.03.02 - Added Message Box.
# 2012.03.01 - Started and Finished Script.
#
#==============================================================================
# ¥ Introduction
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script provides many methods for Yami Engine Ace.
#
#==============================================================================
# ¥ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ¥ Materials/‘fÞ but above ¥ Main. Remember to save.
#
#==============================================================================
# ¥ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
#==============================================================================
# ¥ Configuration
#==============================================================================
module YSE
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - External Data Configuration -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DATA_CONFIGURATION = { # Start here.
:ext => "rvdata2", # Data File Extension.
:salt => "cl", # Salt. Make an unique two-character phrase.
# Must be 2 characters.
:unique => "z8x8273ac", # Unique phrase. Must be at least 1 character.
:comp_level => 9, # Level from 1 to 9. Best Speed at 1, Best
# Compress at 9.
} # Do not delete this.
end
#==============================================================================
# ¥ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================
#==============================================================================
# ¡ YSE - Basic Module
#==============================================================================
module YSE
#--------------------------------------------------------------------------
# message_box
#--------------------------------------------------------------------------
def self.message_box(title, message)
api = Win32API.new('user32','MessageBox',['L', 'P', 'P', 'L'],'I')
api.call(0,message,title,0)
end
#--------------------------------------------------------------------------
# charset
#--------------------------------------------------------------------------
def self.charset
result = "abcdefghjkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ0123456789"
result
end
#--------------------------------------------------------------------------
# make_random_string
#--------------------------------------------------------------------------
def self.make_random_string(length = 6)
result = ""
while result.size < length
result << charset[rand(charset.size)]
end
result
end
#--------------------------------------------------------------------------
# make_filename
#--------------------------------------------------------------------------
def self.make_filename(filename, dir = "")
ext = DATA_CONFIGURATION[:ext]
result = "#{dir}/#{filename}.#{ext}"
result
end
#--------------------------------------------------------------------------
# compress_data
#--------------------------------------------------------------------------
def self.compress_data(data, comp_level = nil)
compress_level = comp_level.nil? ? DATA_CONFIGURATION[:comp_level] : comp_level
result = Zlib::Deflate.deflate(Marshal.dump(data), compress_level)
result
end
#--------------------------------------------------------------------------
# decompress_data
#--------------------------------------------------------------------------
def self.decompress_data(data)
result = Zlib::Inflate.inflate(Marshal.load(data))
result
end
#--------------------------------------------------------------------------
# make_hash
#--------------------------------------------------------------------------
def self.make_hash(string = "")
salt = DATA_CONFIGURATION[:salt]
result = string.crypt(salt)
result = result + DATA_CONFIGURATION[:unique]
result
end
#--------------------------------------------------------------------------
# save_data
#--------------------------------------------------------------------------
def self.save_data(filename, data_hash)
File.open(filename, "wb") do |file|
Marshal.dump(compress_data(data_hash), file)
end
return true
end
#--------------------------------------------------------------------------
# save_data
#--------------------------------------------------------------------------
def self.load_data(filename, method, index = 0, ext = nil)
File.open(filename, "rb") do |file|
index.times { Marshal.load(file) }
if ext
case ext
when :mtime
method.call(Marshal.load(decompress_data(file)), file.mtime)
end
else
method.call(Marshal.load(decompress_data(file)))
end
end
return true
end
#--------------------------------------------------------------------------
# parse_range
#--------------------------------------------------------------------------
def self.parse_range(hash)
result = {}
hash.each { |key, value|
if key.is_a?(Range)
key.each { |id| result[id] = value }
else
result[key] = value
end
}
result
end
#--------------------------------------------------------------------------
# patch_start
#--------------------------------------------------------------------------
def self.patch_start
return unless $imported["YSE-PatchSystem"]
SceneManager.call(Scene_Patch_YSE)
end
end # YSE - Basic Module
#==============================================================================
# ¡ DataManager
#==============================================================================
module DataManager
#--------------------------------------------------------------------------
# alias method: load_database
#--------------------------------------------------------------------------
class <<self; alias load_database_yebm load_database; end
def self.load_database
load_database_yebm
load_notetags_ye
end
#--------------------------------------------------------------------------
# new method: load_notetags_ye
#--------------------------------------------------------------------------
def self.load_notetags_ye
groups = [$data_actors, $data_classes, $data_skills, $data_items, $data_weapons,
$data_armors, $data_enemies, $data_states]
groups.each { |group|
group.each { |obj|
next if obj.nil?
obj.notetags_initialize
}
}
end
end # DataManager
#==============================================================================
# ¡ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
#--------------------------------------------------------------------------
# new method: notetags_initialize
#--------------------------------------------------------------------------
def notetags_initialize
@notelines = []
#---
self.note.split(/[\r\n]+/).each { |line|
@notelines.push(line)
} # self.note.split
#---
notetags_reader
end
#--------------------------------------------------------------------------
# new method: notetags_reader
#--------------------------------------------------------------------------
def notetags_reader
# Reading Notetags.
end
end # RPG::BaseItem
#==============================================================================
# ¡ System Errors
#==============================================================================
if YSE::DATA_CONFIGURATION[:salt].size < 2
YSE.message_box("YSE - Basic Module", "Salt must have at least 2 characters.")
exit
end
if YSE::DATA_CONFIGURATION[:unique].size < 1
YSE.message_box("YSE - Basic Module", "Unique phrase must have at least 1 character.")
exit
end
#==============================================================================
#
# ¥ End of File
#
#============================================================================== |
Il est en deux partie... désolé pour la taille...
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
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
#==============================================================================
#
# ¥ Yami Engine Ace - Pop Message
# -- Last Updated: 2012.06.07
# -- Level: Normal
# -- Requires: n/a
#
#==============================================================================
$imported = {} if $imported.nil?
$imported["YSE-PopMessage"] = true
#==============================================================================
# ¥ Updates
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# 2012.06.07 - Fixed Compatible: YEA - Ace Message System.
# 2012.05.11 - Fixed Message Position.
# - Remove Requirement: YSE - Fix Events Order.
# 2012.05.07 - Fixed Face position.
# - Added Requirement: YSE - Fix Events Order.
# 2012.04.06 - You can change Bubble Tag filename.
# 2012.03.28 - Fixed Default Message Position and Sizes.
# 2012.03.27 - Fixed Default Message.
# 2012.03.27 - Added Bubble Tag.
# 2012.03.25 - Fixed Escape Message.
# 2012.03.24 - Fixed Battle Message.
# 2012.03.24 - Rewrote script.
#
#==============================================================================
# ¥ Instructions
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# To install this script, open up your script editor and copy/paste this script
# to an open slot below ¥ Materials/‘fÞ but above ¥ Main. Remember to save.
#
# -----------------------------------------------------------------------------
# Message Window text Codes - These go inside of your message window.
# -----------------------------------------------------------------------------
# Position: Effect:
# \bm[x] - Sets Message Window position to event x. *Note
# \cbm - Cancel bubble message.
#
# *Note: Set to 0 to sets position to Game Player.
#
#==============================================================================
# ¥ Compatibility
# =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
# This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
# it will run with RPG Maker VX without adjusting.
#
#==============================================================================
module YSE
module POP_MESSAGE
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# - Visual Settings -
#=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
LIMIT = { # Start.
:limit_width => 0, # Set to 0 to disable limit.
:limit_line => 6, # Set to 0 to disable limit.
} # End.
POSITION = { # Start.
:x_buffer => 0,
:y_buffer => -36,
:face_x_buffer => 8,
:face_y_buffer => 24,
:tag_y_buffer => -6,
:name_x_buffer => 112, # Require YEA - Message System.
} # End.
EFFECT = { # Start.
:fade_face => true,
:move_face => true,
:use_bubble_tag => true,
:bubble_tag_name => "BubbleTag",
} # End.
end
end
#==============================================================================
# ¥ Editting anything past this point may potentially result in causing
# computer damage, incontinence, explosion of user's head, coma, death, and/or
# halitosis so edit at your own risk.
#==============================================================================
#==============================================================================
# ¡ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# public instance variables
#--------------------------------------------------------------------------
attr_accessor :character_sprites
end # Spriteset_Map
#==============================================================================
# ¡ Window_Message_Face
#==============================================================================
class Window_Message_Face < Window_Base
#--------------------------------------------------------------------------
# initialize
#--------------------------------------------------------------------------
def initialize
super(0, 0, 120, 255)
self.opacity = 0
@face_name = ""
@face_index = 0
@move_x = 0
close
end
#--------------------------------------------------------------------------
# message_window=
#--------------------------------------------------------------------------
def message_window=(window)
@message_window = window
end
#--------------------------------------------------------------------------
# set_face
#--------------------------------------------------------------------------
def set_face
contents.clear
return unless @message_window
if !$game_message.face_name.empty?
draw_face($game_message.face_name, $game_message.face_index, 0, 0)
set_position
show_face
else
hide_face
end
end
#--------------------------------------------------------------------------
# set_position
#--------------------------------------------------------------------------
def set_position
return unless @message_window
self.x = @message_window.x
self.y = @message_window.y - 96
self.x += YSE::POP_MESSAGE::POSITION[:face_x_buffer]
self.y += YSE::POP_MESSAGE::POSITION[:face_y_buffer]
self.y += (@message_window.real_lines - 1) * 24
self.z = @message_window.z + 1
if (@face_name != $game_message.face_name || @face_index != $game_message.face_index)
if YSE::POP_MESSAGE::EFFECT[:move_face]
@move_x = 30
self.x -= 30
end
@face_name = $game_message.face_name
@face_index = $game_message.face_index
self.contents_opacity = 0 if YSE::POP_MESSAGE::EFFECT[:fade_face]
end
end
#--------------------------------------------------------------------------
# show_face
#--------------------------------------------------------------------------
def show_face
open
end
#--------------------------------------------------------------------------
# hide_face
#--------------------------------------------------------------------------
def hide_face
contents.clear
close
end
#--------------------------------------------------------------------------
# update
#--------------------------------------------------------------------------
def update
super
self.contents_opacity += 15 if self.contents_opacity < 255
unless @move_x <= 0
self.x += 2
@move_x -= 2
end
end
end # Sprite_Message_Face
#==============================================================================
# ¡ Window_Message
#==============================================================================
class Window_Message < Window_Base
#--------------------------------------------------------------------------
# new method: face_window=
#--------------------------------------------------------------------------
def face_window=(window)
@face_window = window
end
#--------------------------------------------------------------------------
# new method: bubble_tag=
#--------------------------------------------------------------------------
def bubble_tag=(sprite)
@bubble_tag = sprite
end
#--------------------------------------------------------------------------
# new method: message_escape_characters_pop_message
#--------------------------------------------------------------------------
def message_escape_characters_pop_message(result)
result.gsub!(/\eBM\[(\d+)\]/i) { event_pop_message_setup($1.to_i, false) }
result.gsub!(/\eBMF\[(\d+)\]/i) { event_pop_message_setup($1.to_i, true) }
result.gsub!(/\eCBM/i) { event_pop_message_setup(nil, false) }
result
end
#--------------------------------------------------------------------------
# alias method: convert_escape_characters
#--------------------------------------------------------------------------
alias yse_convert_escape_characters_pm convert_escape_characters
def convert_escape_characters(text)
result = yse_convert_escape_characters_pm(text)
result = message_escape_characters_pop_message(result)
result
end
#--------------------------------------------------------------------------
# new method: event_pop_message_setup
#--------------------------------------------------------------------------
def event_pop_message_setup(event_id, follower = false)
if follower && $game_player.followers[event_id].nil?
@event_pop_id = nil
@event_pop_follower = false
return ""
end
@event_pop_follower = follower
@event_pop_id = event_id
return ""
end
#--------------------------------------------------------------------------
# new method: set_face_position
#--------------------------------------------------------------------------
def set_face_position
return unless SceneManager.scene_is?(Scene_Map)
return unless @event_pop_id
return unless @face_window
contents.clear
@face_window.set_face
return unless $imported["YEA-MessageSystem"]
return if @face_window.close?
#@name_window.x = self.x + YSE::POP_MESSAGE::POSITION[:face_x_buffer] + YSE::POP_MESSAGE::POSITION[:name_x_buffer] if (@name_position == 1 || @name_position == 2)
end
#--------------------------------------------------------------------------
# alias method: new_page
#--------------------------------------------------------------------------
alias window_message_new_page_pm_yse new_page
def new_page(text, pos)
window_message_new_page_pm_yse(text, pos)
set_face_position
end
#--------------------------------------------------------------------------
# alias method: close
#--------------------------------------------------------------------------
alias pop_message_close close
def close
pop_message_close
return unless SceneManager.scene_is?(Scene_Map)
return unless @event_pop_id
@event_pop_id = nil
@event_pop_follower = false
@face_window.hide_face
return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
@bubble_tag.visible = false if @bubble_tag
end
#--------------------------------------------------------------------------
# alias method: open_and_wait
#--------------------------------------------------------------------------
alias pop_message_open_and_wait open_and_wait
def open_and_wait
pop_message_open_and_wait
return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
@bubble_tag.visible = true if @event_pop_id && @bubble_tag
end
#--------------------------------------------------------------------------
# alias method: process_all_text
#--------------------------------------------------------------------------
alias pop_message_process_all_text process_all_text
def process_all_text
@event_pop_id = nil
convert_escape_characters($game_message.all_text)
update_placement
adjust_pop_message($game_message.all_text)
pop_message_process_all_text
end
#--------------------------------------------------------------------------
# alias method: update_placement
#--------------------------------------------------------------------------
alias event_pop_message_update_placement update_placement
def update_placement
if SceneManager.scene_is?(Scene_Map)
if @event_pop_id.nil?
fix_default_message
event_pop_message_update_placement
elsif @event_pop_id == 0
character = $game_player
self.y = character.screen_y - self.height + YSE::POP_MESSAGE::POSITION[:y_buffer]
self.x = character.screen_x - self.width / 2 + YSE::POP_MESSAGE::POSITION[:x_buffer]
fix_position_bubble(character)
set_bubble_tag(character)
elsif @event_pop_id > 0
hash = @event_pop_follower ? $game_player.followers : $game_map.events
character = hash[@event_pop_id]
self.y = character.screen_y - self.height + YSE::POP_MESSAGE::POSITION[:y_buffer]
self.x = character.screen_x - self.width / 2 + YSE::POP_MESSAGE::POSITION[:x_buffer]
fix_position_bubble(character)
set_bubble_tag(character)
end
else
event_pop_message_update_placement
end
end
#--------------------------------------------------------------------------
# new method: fix_default_message
#--------------------------------------------------------------------------
def fix_default_message
self.width = window_width
self.height = window_height
self.x = 0
@face_window.hide_face if @face_window
create_contents
return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
@bubble_tag.visible = false if @bubble_tag
end
#--------------------------------------------------------------------------
# new method: fix_position_bubble
#--------------------------------------------------------------------------
def fix_position_bubble(character)
end_x = self.x + self.width
end_y = self.y + self.height
self.x = 0 if self.x < 0
self.y = character.screen_y if self.y < 0
self.x = Graphics.width - self.width if end_x > Graphics.width
self.y = Graphics.height - self.height if end_y > Graphics.height
end
#--------------------------------------------------------------------------
# new method: set_bubble_tag
#--------------------------------------------------------------------------
def set_bubble_tag(character)
return unless YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
return unless @bubble_tag
up = self.y == character.screen_y
self.y += up ? @bubble_tag.height / 2 : -@bubble_tag.height / 2
@bubble_tag.x = character.screen_x - @bubble_tag.width / 2
if up
@bubble_tag.src_rect.set(0, @bubble_tag.height, @bubble_tag.width, @bubble_tag.height)
@bubble_tag.y = self.y - @bubble_tag.height - YSE::POP_MESSAGE::POSITION[:tag_y_buffer]
else
@bubble_tag.src_rect.set(0, 0, @bubble_tag.width, @bubble_tag.height)
@bubble_tag.y = self.y + self.height + YSE::POP_MESSAGE::POSITION[:tag_y_buffer]
end
end
#--------------------------------------------------------------------------
# new method: cal_number_line
#--------------------------------------------------------------------------
def cal_number_line(text)
result = 0
text.each_line { result += 1 }
return result
end
#--------------------------------------------------------------------------
# new method: cal_width_line
#--------------------------------------------------------------------------
def cal_width_line(text)
result = 0
text.each_line { |line|
result = text_size(line).width if result < text_size(line).width
}
return result
end
#--------------------------------------------------------------------------
# alias method: adjust_message_window_size
#--------------------------------------------------------------------------
if $imported["YEA-MessageSystem"]
alias yse_pop_message_adjust_message_window_size adjust_message_window_size
def adjust_message_window_size
start_name_window if @event_pop_id
return if @event_pop_id
yse_pop_message_adjust_message_window_size
end
end
#--------------------------------------------------------------------------
# new method: adjust_pop_message
#--------------------------------------------------------------------------
def adjust_pop_message(text = " ")
return unless SceneManager.scene_is?(Scene_Map)
unless @event_pop_id
if $imported["YEA-MessageSystem"]
#adjust_message_window_size
end
return
end
n_line = cal_number_line(text)
n_line = YSE::POP_MESSAGE::LIMIT[:limit_line] if YSE::POP_MESSAGE::LIMIT[:limit_line] > 0 && cal_number_line(text) > YSE::POP_MESSAGE::LIMIT[:limit_line]
@real_lines = n_line
self.height = fitting_height(n_line)
self.width = cal_width_line(text) + 24
self.width += new_line_x
if self.width > YSE::POP_MESSAGE::LIMIT[:limit_width] && YSE::POP_MESSAGE::LIMIT[:limit_width] > 0
self.width = YSE::POP_MESSAGE::LIMIT[:limit_width]
end
create_contents
update_placement
end
#--------------------------------------------------------------------------
# overwrite method: new_line_x
#--------------------------------------------------------------------------
def new_line_x
if $game_message.face_name.empty?
return 0
else
result = YSE::POP_MESSAGE::POSITION[:face_x_buffer]
p_x = $imported["YEA-MessageSystem"] ? YEA::MESSAGE::FACE_INDENT_X : 112
result += p_x
return result
end
end
#--------------------------------------------------------------------------
# new method: real_lines
#--------------------------------------------------------------------------
def real_lines
@real_lines
end
end # Window_Message
#==============================================================================
# ¡ Scene_Map
#==============================================================================
class Scene_Map < Scene_Base
#--------------------------------------------------------------------------
# alias method: create_message_window
#--------------------------------------------------------------------------
alias yse_pm_create_message_window create_message_window
def create_message_window
yse_pm_create_message_window
@face_window = Window_Message_Face.new
@face_window.message_window = @message_window
if YSE::POP_MESSAGE::EFFECT[:use_bubble_tag]
@bubble_tag_sprite = Sprite.new
@bubble_tag_sprite.visible = false
@bubble_tag_sprite.bitmap = Cache.system(YSE::POP_MESSAGE::EFFECT[:bubble_tag_name])
@bubble_tag_sprite.src_rect.set(0, 0, @bubble_tag_sprite.width, @bubble_tag_sprite.height / 2)
@message_window.bubble_tag = @bubble_tag_sprite
end
@message_window.face_window = @face_window
end
#--------------------------------------------------------------------------
# alias method: dispose_spriteset
#--------------------------------------------------------------------------
alias pop_message_dispose_spriteset dispose_spriteset
def dispose_spriteset
pop_message_dispose_spriteset
return unless @bubble_tag_sprite
@bubble_tag_sprite.dispose
end
end # Scene_Map
#==============================================================================
#
# ¥ End of File
#
#============================================================================== |
Ensuite j'utilise un autre tout petit script pour modifier la police du jeu:
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
| #=========================================
#Script police d'Ecriture
#=========================================
#
# Auteur : Brandobscure.
#
#=======================================
#
# Script à placer au dessus du script Main.
# Vous pouvez modifier le script a la ligne :
# 32 pour le Nom de l'écriture
# 43 pour la taille de l'écriture
# 49 si vous voulez mettre l'écriture en gras
# 53 si vous voulez le mettre en italique
#
#===============================================================
#
#
# Choix de la police d'ecriture pour le jeu.
# Font.default_name = ["papyrus"]
#
# Vous pouvez placer plusieurs police ecriture en cas ou si le pc d'un joueur
# na pas la police demandé. Voici donc le morceau de code à changer.
#-------------------------------------------------
# Font.default_name = ["Rod","nom de la 2em police"]
#---------------------------------------------------
Font.default_name = ["Pokemon X and Y"] #Police que j'utilise pour mon projet
#donc a vous de changer.
#Taille de l'ecriture de la police.
Font.default_size= 23
#Option pour les polices d'ecriture.
#false=desactivé; true=activé
#Ecriture en gras.
Font.default_bold = false
#Ecriture en italique
Font.default_italic = false
#Ombre: Activé par défaut.
Font.default_shadow = false |
Du coup, que se soit avec ou sans bulle, la police est toujours aussi moche
J'utilise la police d'écriture Pokemon X and Y:
http://www.dafont.com/fr/pokemon-x-and-y.font
Et même en utilisant d'autre police ont a toujours un résultat pas très charmant...
Je vais uploader des screen du jeu pour que vous compreniez pourquoi cet "anti-alisaing" me dérange tant...
En fait il n'est pas du tout en harmonie avec les graphismes...
Sinon, j'ai vu que l'on pouvait utiliser des sprites pour les chiffres et lettres... le script qui réaliserait cela
s'appel SFont, mais est totalement introuvable (ou alors je ne sais pas chercher )
En tout cas merci de t'être penché sur mon problème
|
J'aime les shorts, ça garde les genoux bien au frais! |
Verehn -
posté le 23/12/2016 à 13:06:44 (9058 messages postés)
- | Vhehrhehn | Je crois qu'on est arrivé au même endroit en recherchant la solution. Par contre même si SFont de Victor est introuvable, il y a un projet démonstration d'un autre script du même genre ici: https://app.box.com/s/m2yb4leuivo7kg8d3vrbjj9yhpng2ccv
EDIT: Oups je me suis emmêlé les pinceaux avec une autre recherche pour XP.
N'oublie pas de télécharger des polices adéquates avec: http://www.dafont.com/bitmap.php
|
Eldrao ~ PakuPaku ~ Winged Light ~ Ruin ~ Ma galerie ~ LTDAD ~ Don de graphismes plateforme 2D |
DeadPool98 -
posté le 23/12/2016 à 14:57:41 (47 messages postés)
| Je suis un carton... | J'imagine que tu vois ce que je veux dire... mais il s'agit d'un projet sous XP...
Et j'aurais besoin d'une version du script pour VX Ace...
Si une âme charitable pouvait m'aider
PS: je cherche encore en contactant des personnes sur les forum anglais. J'essayerais de le replacer dans la partie script d'Oniro
PS*: Je tiens peut-être une piste: http://www.rpgmakercentral.com/topic/442-ve-sfonts/
Il y a un long script qui est donné. Je sais pas si c'est celui là...
Bon, j'ai retrouvé le script et j'ai lu son fonctionnement. Je l'ai essayé, mais il me déclare une erreur
Voici d'abord les scripts:
Le Victor Engine (pour faire fonctionner l'ensemble de ses scripts)
https://drive.google.com/file/d/0B0cSp2lASM9wTEhkS3Jjc1N1NjQ/view
Et le Victor SFont (the 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
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
| #==============================================================================
# ** Victor Engine - SFont
#------------------------------------------------------------------------------
# Author : Victor Sant
#
# Aditional Credit :
# - RubyGame (Original Concept)
# - Trickster (RubyGame SFont conversion to RPG Maker)
#
# Version History:
# v 1.00 - 2011.12.21 - First relase
#------------------------------------------------------------------------------
# This script allows the use of SFonts. SFonts is a image file that replaces
# the normal font.
#
# What are SFonts? (from http://rubygame.org/docs/)
# SFont is a type of bitmapped font, which is loaded from an image file with
# a meaningful top row of pixels, and the font itself below that. The top row
# provides information about what parts of of the lower area contains font
# data, and which parts are empty. The image file should contain all of the
# glyphs on one row, with the colorkey color at the bottom-left pixel and the
# "skip" color at the top-left pixel.
#
#------------------------------------------------------------------------------
# Compatibility
# Requires the script 'Victor Engine - Basic Module'
#
# * Overwrite methods
# None
#
# * Alias methods
# class Bitmap
# def draw_text
# def text_size(str)
#
# class << DataManager
# def create_game_objects
#
# class Sprite_Timer < Sprite
# def create_bitmap
#
# class Window_Base < Window
# def create_contents
# def text_color(n)
#
#------------------------------------------------------------------------------
# Instructions:
# To instal the script, open you script editor and paste this script on
# a new section on bellow the Materials section. This script must also
# be bellow the script 'Victor Engine - Basic'
# The SFonts must be placed on the folder "Graphics/SFonts". Create a folder
# named "SFonts" on the Graphics folder.
#
#------------------------------------------------------------------------------
# Additional instructions:
#
# On the SFont, the first pixel on the top left corner is considered the
# "skip color", so, anywhere that this color appears on the first row
# the part will be skiped, so use it to define the limit from each
# character. At first it might be hard to get how it work.
#
# If the constant ALL_SFONT is true, all fonts in all windows will be
# replaced with SFonts, if false, you will need to add them manually
# in the code (not recomended for begginers).
#
# The method "text_color(n)" from Window_Base can be used to change
# the SFont, where n is the SFont index on the SFONT_NAMES array.
# (Remember that indexes starts at 0, not at 1)
# Text on independent bitmaps (outside windows) will need to be changed
# manually on the code.
#
# The system colors can be changed on the Window_Base class, on the
# following methods. Replace the number in text_color(x) with the index
# of the color SFont on the SFONT_NAMES array.
# def normal_color; text_color(0); end;
# def system_color; text_color(16); end;
# def crisis_color; text_color(17); end;
# def knockout_color; text_color(18); end;
# def gauge_back_color; text_color(19); end;
# def hp_gauge_color1; text_color(20); end;
# def hp_gauge_color2; text_color(21); end;
# def mp_gauge_color2; text_color(23); end;
# def mp_gauge_color1; text_color(22); end;
# def mp_cost_color; text_color(23); end;
# def power_up_color; text_color(24); end;
# def power_down_color; text_color(25); end;
# def tp_gauge_color1; text_color(28); end;
# def tp_gauge_color2; text_color(29); end;
# def tp_cost_color; text_color(29); end;
# If you don't feel like changing the default scripts just create a new
# script on the Materials section for the class Window_Base and add these
# medthods.
#
#==============================================================================
#==============================================================================
# ** Victor Engine
#------------------------------------------------------------------------------
# Setting module for the Victor Engine
#==============================================================================
module Victor_Engine
#--------------------------------------------------------------------------
# * Set the use of SFonts for all windows
# If true all windows will use SFonts automatically, if false
# you must set them manually
#--------------------------------------------------------------------------
VE_ALL_SFONT = true
#--------------------------------------------------------------------------
# * Set SFonts
# Set here the name of the SFonts that will be used, add how many
# SFont names you want. Refer to the SFont bitmap with $sfont[index]
#--------------------------------------------------------------------------
VE_SFONT_NAMES = ["Arial White", "Arial Red", "Arial Blue", "Arial Green",
"Arial Yellow", "Arial Gray"]
#--------------------------------------------------------------------------
# * Set the digit list
# The order of the digits here define the order of of the digits on
# the image file, make sure to follow the same order or the text
# in game might be totally screwed.
# You can add how many characters you want, even complex character.
# the character here doesn't need to be exactly the same from the
# image file so you can use special characters to show icons and such.
#--------------------------------------------------------------------------
VE_SFONT_DIGITS = ["!",'"',"#","$","%","&","'","(",")","*","+",",","-",".",
"/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A",
"B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T",
"U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g",
"h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"{","|","}","~"]
end
$imported[:ve_sfonts] = true
#==============================================================================
# ** Cache
#------------------------------------------------------------------------------
# This module loads each of graphics, creates a Bitmap object, and retains it.
# To speed up load times and conserve memory, this module holds the created
# Bitmap object in the internal hash, allowing the program to return
# preexisting objects when the same bitmap is requested again.
#==============================================================================
module Cache
#--------------------------------------------------------------------------
# * New method: sfont
#--------------------------------------------------------------------------
def self.sfont(filename, hue = 0)
self.load_bitmap("Graphics/SFonts/", filename, hue)
end
end
#==============================================================================
# ** Bitmap
#------------------------------------------------------------------------------
# This class handles and draws the bitmaps
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :sfont
#--------------------------------------------------------------------------
# * Alias method: draw_text
#--------------------------------------------------------------------------
alias :draw_text_ve_sfont :draw_text
def draw_text(*args)
sfont ? draw_sfont_text(*args) : draw_text_ve_sfont(*args)
end
#--------------------------------------------------------------------------
# * Alias method: draw_sfont_text
#--------------------------------------------------------------------------
def draw_sfont_text(*args)
is_rect = args[0].is_a?(Rect)
x = is_rect ? args[0].x : args[0]
y = is_rect ? args[0].y : args[1]
width = is_rect ? args[0].width : args[2]
height = is_rect ? args[0].height : args[3]
text = is_rect ? args[1].to_s : args[4].to_s
align = is_rect ? args[2] : args[5]
bitmap = sfont.draw_text(text)
x += width - bitmap.width if align == 2
x += (width - bitmap.width) / 2 if align == 1
y += (height - bitmap.height) / 2 - 4
blt(x, y, bitmap, bitmap.rect)
end
#--------------------------------------------------------------------------
# * Alias method: text_size
#--------------------------------------------------------------------------
alias :text_size_ve_sfont :text_size
def text_size(text)
sfont ? sfont.text_size(text) : text_size_ve_sfont(text)
end
end
#==============================================================================
# ** DataManager
#------------------------------------------------------------------------------
# This module handles the game and database objects used in game.
# Almost all global variables are initialized on this module
#==============================================================================
class << DataManager
#--------------------------------------------------------------------------
# * Alias method: create_game_objects
#--------------------------------------------------------------------------
alias :create_game_objects_ve_sfont :create_game_objects
def create_game_objects
create_game_objects_ve_sfont
create_sfonts
end
#--------------------------------------------------------------------------
# * New method: create_sfonts
#--------------------------------------------------------------------------
def create_sfonts
$sfont = VE_SFONT_NAMES.collect {|name| SFont.new(name)}
end
end
#==============================================================================
# ** Sprite_Timer
#------------------------------------------------------------------------------
# This sprite is used to display the timer. It observes the $game_system
# and automatically changes sprite conditions.
#==============================================================================
class Sprite_Timer < Sprite
#--------------------------------------------------------------------------
# * Alias method: create_bitmap
#--------------------------------------------------------------------------
alias :create_bitmap_ve_sfont :create_bitmap
def create_bitmap
create_bitmap_ve_sfont
self.bitmap.sfont = $sfont[0] if VE_ALL_SFONT
end
end
#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This is a superclass of all windows in the game.
#==============================================================================
class Window_Base < Window
#--------------------------------------------------------------------------
# * Alias method: create_contents
#--------------------------------------------------------------------------
alias :create_contents_ve_sfont :create_contents
def create_contents
create_contents_ve_sfont
contents.sfont = $sfont[0] if VE_ALL_SFONT
end
#--------------------------------------------------------------------------
# * Alias method: text_color
#--------------------------------------------------------------------------
alias :text_color_ve_sfont :text_color
def text_color(n)
sfont(n)
text_color_ve_sfont(n)
end
#--------------------------------------------------------------------------
# * Alias method: change_color
#--------------------------------------------------------------------------
alias :change_color_ve_sfont :change_color
def change_color(color, enabled = true)
change_color_ve_sfont(color, enabled)
contents.sfont.alpha = enabled ? 255 : translucent_alpha
end
#--------------------------------------------------------------------------
# * New method: sfont
#--------------------------------------------------------------------------
def sfont(n)
return if !contents.sfont
contents.sfont = $sfont[n] ? $sfont[n] : $sfont[0]
end
end
#==============================================================================
# ** SFont
#------------------------------------------------------------------------------
# This class handles the SFonts
#==============================================================================
class SFont
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :bitmap
attr_accessor :alpha
#--------------------------------------------------------------------------
# * initialize
#--------------------------------------------------------------------------
def initialize(name)
@bitmap = Cache.sfont(name)
@height = @bitmap.height + 4
@skip = @bitmap.get_pixel(0, 0)
@digits = VE_SFONT_DIGITS
@alpha = 255
@values = {}
@values[" "] = Rect.new(-12, 0, 12, @height)
setup_digits
@values.default = @values[" "]
end
#--------------------------------------------------------------------------
# * setup_digits
#--------------------------------------------------------------------------
def setup_digits
x1 = x2 = 0
@digits.each do |digit|
x1 += 1 while @bitmap.get_pixel(x1, 0) == @skip && x1 < @bitmap.width
x2 = x1
x2 += 1 while @bitmap.get_pixel(x2, 0) != @skip && x2 < @bitmap.width
@values[digit] = Rect.new(x1, 0, x2 - x1, @height)
x1 = x2
end
end
#--------------------------------------------------------------------------
# * text_size
#--------------------------------------------------------------------------
def text_size(text)
size = 0
text.split("").each {|i| size += @values[i].width}
rect = Rect.new(0, 0, size, @height)
rect
end
#--------------------------------------------------------------------------
# * draw_text
#--------------------------------------------------------------------------
def draw_text(text)
width = [text_size(text).width, 1].max
bitmap = Bitmap.new(width, @height)
x = 0
text.split("").each do |i|
bitmap.blt(x, 4, @bitmap, @values[i], @alpha)
x += @values[i].width
end
bitmap
end
#--------------------------------------------------------------------------
# * dispose
#--------------------------------------------------------------------------
def dispose
return if !@bitmap || @bitmap.disposed?
@bitmap.dispose
end
end |
Je l'ai essayé mais je me suis surement foiré quelque par (j'ai une erreur comme quoi il ne peut pas créer de bitmap)
Si vous arrivez à le faire fonctionner, je veux bien savoir comment vous vous y êtes pris...
Bonne après midi à tous!
|
J'aime les shorts, ça garde les genoux bien au frais! | Index du forum > Entraide > [RESOLU] [Rpg Maker Vx Ace] Police d'écriture Nette?
|
|
|