![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs7/22_14_34_26_blog120829_attach_1_157.png?original)
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs8/22_14_34_26_blog120829_attach_1_170.png?original)
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs9/22_14_34_26_blog120829_attach_1_152.png?original)
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs7/22_14_34_26_blog120829_attach_1_158.png?original)
![사용자 삽입 이미지](https://t1.daumcdn.net/tistoryfile/fs7/22_14_34_26_blog120829_attach_1_156.png?original)
이것은 유용하지만 어려울수가 있습니다.
차근차근히 따라 오시길 바라겠습니다.
일단 이부분을 알아두셔야지 할수 있습니다.
일단 제가 다 해석을 하겠습니다.
\V[n] Replaced by the value of variable n (n = ID of a variable).(변동하는 평가를를 대체하라- 별효용성이 없음)
\N[n] Replaced by the name of actor n (n = ID of an actor). (액쳐의 이름을 대체하라)
\C[n] Change the color of the following text(n = 0 til 31).(텍스트의 색깔을 대체하라)
\G Replaced by the current gold amount. (현재 돈의 양을 대체하라)
\\ Replaced by the '\' character. (\의 캐릭터로부터 대체하라)
----이까지는 해석했지만 안 건드는게 좋습니다 밑부분부터 사용하시면 되겟습니다)--------
Control characters from woratanas NMS (v2.52):
\MAP Replaced by the current map name. (통용하는 맵이를을 바꿔라)
\NC[n] Replaced by the class of actor n (n = ID of an actor). (액터의 직업을 N으로 부터 대체해라)
\NP[n] Replaced by the name of actor n in the party (n = integer between 1 and 4).(액터의 파티로부터 대체하거라( n=1부터 4까지 정수)
\NM[n] Replaced by the name of enemy n (n = ID of an enemy).(적의 이름을 바꾸거라)
\NT[n] Replaced by the name of troop n (n = ID of a troop).(무리의 N을 대체시겨라)
\NI[n] Replaced by the name of item n (n = ID of an item).(아이템의 이름으로부터 대체시켜라)
\NW[n] Replaced by the name of weapon n (n = ID of a weapon).(무기의 이름으로부터 대체시켜라)
\NA[n] Replaced by the name of armor n (n = ID of an armor).(방어구의 이름을 대체시켜라)
\NS[n] Replaced by the name of skill n (n = ID of a skill). (스킬의 이름을 바꿔라)
\PRICE[n] Replaced by the price of the item n (n = ID of an item).
\IC[n] Replaced by the icon with the index n (n = Index of icon in the Iconset).
\DW[n] Replaced by the icon and name of weapon n (n = ID of a weapon).
\DI[n] Replaced by the icon and name of item n (n = ID of an item).
\DA[n] Replaced by the icon and name of armor n (n = ID of an armor).
\DS[n] Replaced by the icon and name of skill n (n = ID of a skill).
\FN[str] Following text is in font str (str = name of a font).
\FS[n] Following text is in fontsize n (n = integer. Standard is 20).
대충이렇게 됩니다.귀찮 ㅋ
Other control characters:
\BO Following text is or isn't bold.
\IT Following text is or isn't italic. 이택릭체
\SH Folling text is or isn't shadowed. 그림자체
\AL[n] Align text (n = integer between 0 and 2 (0 = left, 1 = center, 2 = right)). 가운데정렬 왼쪾 정렬 오른쪽정렬
스크립트를 보지면 이 부분이 있는데..
이부분은 게임에 적용할 일종의 연결고리라고 생각하지면 되겠습니다.
이것은 대입만하면 나타나기때문에 엄청 유용합니다.
---------------------------------------------------------------------------------------------------------------------------------------------------
이제 하는 방법을 가르켜 드리겠습니다.
일단 타이틀의
NEW GAME
LOAD GAME
EXIT
가 있다고 칩시다.
NEW GAME 를 연두색으로 가운데 정렬을 하고 싶다.
그러면 \AL[1] 이게 가운데 정렬입니다.
그리고 \C[3] 색깔을 연두색으로 바꿔라의 명령어 입니다. 위의 것 보시면 됨
그러면 \AL[1]\C[3]NEW GAME 이렇게 됩니다 이게 완성된 명령어 입니다.
지금 우리가 타이틀의 NEW GAME 을 바꾸려하니 당연히 게임만들기에 들어가서
F9에 들어가고 위의 그림(그림참조)과 같이 합니다.
그리고 확인을 하고 테스트를 해보면-
그리고 LOAD GAME에 칼을 넣고 싶으면
\IT\IC[9]LOAD GAME 를 넣으면 되겠죠 ^^
EXIT에는 미카엘을 넣어봅시다..
그러면 \AL[2]\C[10]EXIT미카엘 로 하면
완성된 그림 위에 감상하시죠..
------------------------------------------------------
일단 스크립트에 이것을 먼저 삽입을 해주신 다음에 위의 것을 해야합니다.
#==============================================================================
# ** [ERZVX] Enhanced Bitmap#draw_text (by ERZENGEL at 27-April-2008 at 19:53)
#------------------------------------------------------------------------------
# Bitmap#draw_text is able to convert control characters.
#==============================================================================
=begin
###############################################################################
Default control characters:
\V[n] Replaced by the value of variable n (n = ID of a variable).
\N[n] Replaced by the name of actor n (n = ID of an actor).
\C[n] Change the color of the following text(n = 0 til 31).
\G Replaced by the current gold amount.
\\ Replaced by the '\' character.
Control characters from woratanas NMS (v2.52):
\MAP Replaced by the current map name.
\NC[n] Replaced by the class of actor n (n = ID of an actor).
\NP[n] Replaced by the name of actor n in the party (n = integer between 1 and 4).
\NM[n] Replaced by the name of enemy n (n = ID of an enemy).
\NT[n] Replaced by the name of troop n (n = ID of a troop).
\NI[n] Replaced by the name of item n (n = ID of an item).
\NW[n] Replaced by the name of weapon n (n = ID of a weapon).
\NA[n] Replaced by the name of armor n (n = ID of an armor).
\NS[n] Replaced by the name of skill n (n = ID of a skill).
\PRICE[n] Replaced by the price of the item n (n = ID of an item).
\IC[n] Replaced by the icon with the index n (n = Index of icon in the Iconset).
\DW[n] Replaced by the icon and name of weapon n (n = ID of a weapon).
\DI[n] Replaced by the icon and name of item n (n = ID of an item).
\DA[n] Replaced by the icon and name of armor n (n = ID of an armor).
\DS[n] Replaced by the icon and name of skill n (n = ID of a skill).
\FN[str] Following text is in font str (str = name of a font).
\FS[n] Following text is in fontsize n (n = integer. Standard is 20).
Other control characters:
\BO Following text is or isn't bold.
\IT Following text is or isn't italic.
\SH Folling text is or isn't shadowed.
\AL[n] Align text (n = integer between 0 and 2 (0 = left, 1 = center, 2 = right)).
###############################################################################
=end
#==============================================================================
# ** Bitmap
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# * Draw text
#--------------------------------------------------------------------------
alias :erzvx_draw_text :draw_text unless $@
def draw_text(*args)
# Falls erstes Argument ein Rectobjekt ist
if args[0].is_a?(Rect)
if args.size > 3 then raise(ArgumentError) end
x, y, width, height = args[0].x, args[0].y, args[0].width, args[0].height
str = args[1]
align = args[2]
else
if args.size > 6 then raise(ArgumentError) end
x, y, width, height, str, align = args[0..5]
end
# Links ausrichten, falls Wert von align nil oder größer als 2 ist
align = 0 if align.nil? || align > 2
# Standardeigenschaften in Variablen speichern
name, size, color = self.font.name, self.font.size, self.font.color
bold, italic, shadow = self.font.bold, self.font.italic, self.font.shadow
# Temporäre Variablen erstellen
tstr = (str.is_a?(String) ? str : str.to_s) + "\n"; tc = ''; tx = 0
begin
lasttstr = tstr.clone
tstr = convert_special_characters(tstr)
end until tstr == lasttstr
while (!(c = tstr.slice!(/./m)).nil?)
case c
when "\x01" # \C[n]
tstr.sub!(/\[([0-9]+)\]/, "")
tcolor = $1.to_i
self.font.color = text_color(tcolor) if tcolor >= 0 && tcolor <= 31
when "\x02" # \C[n]
tstr.sub!(/\[([0-2]+)\]/, "")
align = $1.to_i
when "\x83" # \IC[n]
tstr.sub!(/\[([0-9]+)\]/, "")
icon_index = $1.to_i
draw_icon(icon_index, x, y)
tx += 24
when "\x84" # \FN[*]
tstr.sub!(/\[(.*?)\]/, "")
self.font.name = $1.to_s
when "\x85" # \FS[n]
tstr.sub!(/\[([0-9]+)\]/, "")
self.font.size = $1.to_i
when "\x88" # \BO
self.font.bold = !self.font.bold
when "\x89" # \IT
self.font.italic = !self.font.italic
when "\x93" # \SH
self.font.shadow = !self.font.shadow
when "\n" # Neue Zeile
if align == 1 # Zentriert
tx = width - tx
tx = tx / 2
erzvx_draw_text((x + tx), y, (width - tx), height, tc)
elsif align == 2 # Rechts
tx = width - tx
erzvx_draw_text((x + tx), y, (width - tx), height, tc)
end
# Temporäre Variablen zurücksetzen
tc = tstr = ''; tx = 0
else # Normal text character
# Ausrichtungsabfrage (Links)
if align == 0
erzvx_draw_text((x + tx), y, width, height, c, align)
tx += text_size(c).width
else
tc += c
tx += text_size(c).width
end
end
end
# Standardeigenschaften wiederherstellen
self.font.name, self.font.size, self.font.color = name, size, color
self.font.bold, self.font.italic, self.font.shadow = bold, italic, shadow
end
#--------------------------------------------------------------------------
# * Convert Special Characters
#--------------------------------------------------------------------------
def convert_special_characters(str)
# Mit Wert einer Variable ersetzen
str.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] }
# Mit Namen eines Heldens ersetzen
str.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name }
# Nachfolgenden Text in anderer Farbe anzeigen
str.gsub!(/\\C\[([0-9]+)\]/i) { "\x01[#{$1}]" }
# Mit dem aktuellen Goldbetrag ersetzen
str.gsub!(/\\G/) { $game_party.gold.to_s }
# Backslash anzeigen
str.gsub!(/\\\\/) { "\\" }
# Ausrichtung ändern
str.gsub!(/\\AL\[([0-2]+)\]/i) { "\x02[#{$1}]" }
# Woratana's :: Map Name
str.gsub!(/\\MAP/i) { get_map_name }
# Woratana's :: Actor Class Name
str.gsub!(/\\NC\[([0-9]+)\]/i) {
$data_classes[$data_actors[$1.to_i].class_id].name }
# Woratana's :: Party Actor Name
str.gsub!(/\\NP\[([0-9]+)\]/i) { $game_party.members[($1.to_i - 1)].name }
# Woratana's :: Monster Name
str.gsub!(/\\NM\[([0-9]+)\]/i) { $data_enemies[$1.to_i].name }
# Woratana's :: Troop Name
str.gsub!(/\\NT\[([0-9]+)\]/i) { $data_troops[$1.to_i].name }
# Woratana's :: Item Name
str.gsub!(/\\NI\[([0-9]+)\]/i) { $data_items[$1.to_i].name }
# Woratana's :: Weapon Name
str.gsub!(/\\NW\[([0-9]+)\]/i) { $data_weapons[$1.to_i].name }
# Woratana's :: Armor Name
str.gsub!(/\\NA\[([0-9]+)\]/i) { $data_armors[$1.to_i].name }
# Woratana's :: Skill Name
str.gsub!(/\\NS\[([0-9]+)\]/i) { $data_skills[$1.to_i].name }
# Woratana's :: Item Price
str.gsub!(/\\PRICE\[([0-9]+)\]/i) { $data_items[$1.to_i].price.to_s }
# Woratana's :: Draw Icon
str.gsub!(/\\IC\[([0-9]+)\]/i) { "\x83[#{$1}]" }
# Woratana's :: Draw Weapon Name + Icon
str.gsub!(/\\DW\[([0-9]+)\]/i) {
"\x83[#{$data_weapons[$1.to_i].icon_index}]\\NW[#{$1.to_i}]" }
# Woratana's :: Draw Item Name + Icon
str.gsub!(/\\DI\[([0-9]+)\]/i) {
"\x83[#{$data_items[$1.to_i].icon_index}]\\NI[#{$1.to_i}]" }
# Woratana's :: Draw Armor Name + Icon
str.gsub!(/\\DA\[([0-9]+)\]/i) {
"\x83[#{$data_armors[$1.to_i].icon_index}]\\NA[#{$1.to_i}]" }
# Woratana's :: Draw Skill Name + Icon
str.gsub!(/\\DS\[([0-9]+)\]/i) {
"\x83[#{$data_skills[$1.to_i].icon_index}]\\ns[#{$1.to_i}]" }
# Woratana's :: Font Name Change
str.gsub!(/\\FN\[(.*?)\]/i) { "\x84[#{$1}]" }
# Woratana's :: Font Size Change
str.gsub!(/\\FS\[([0-9]+)\]/i) { "\x85[#{$1}]" }
# Woratana's :: BOLD Text
str.gsub!(/\\BO/i) { "\x88" }
# Woratana's :: ITALIC Text
str.gsub!(/\\IT/i) { "\x89" }
# Woratana's :: SHADOW Text
str.gsub!(/\\SH/i) { "\x93" }
return str
end
#--------------------------------------------------------------------------
# * Get Text Color
#--------------------------------------------------------------------------
def text_color(n)
x = 64 + (n % 8) * 8
y = 96 + (n / 8) * 8
windowskin = Cache.system('Window')
return windowskin.get_pixel(x, y)
end
#--------------------------------------------------------------------------
# * Get Map Name
#--------------------------------------------------------------------------
def get_map_name
$data_mapinfos = load_data('Data/MapInfos.rvdata') if $data_mapinfos.nil?
map_id = $game_map.map_id
return $data_mapinfos[map_id].name
end
#--------------------------------------------------------------------------
# * Draw Icon
#--------------------------------------------------------------------------
def draw_icon(icon_index, x, y)
bitmap = Cache.system('Iconset')
rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
self.blt(x, y, bitmap, rect)
end
end
-----------------------------------------------------------------------------
게임상의 모든 글자에 효과 줄수 있습니다. 글자에 아이콘 넣을 수도 있고, 기울기, 그림자,
엄청 유용합니다만 오류도 안생기고..
힘드시면 쪽지를 보내서 대신 해드리겠습니다.
'게임이야기. > RPG 만들기 VX' 카테고리의 다른 글
같이싸우기(오류수정) (0) | 2008.08.22 |
---|---|
RPG VX 캐릭터 일러스트 (0) | 2008.08.22 |
NPC들입니다 (0) | 2008.08.22 |
해적님의 은행 오류 수정 (0) | 2008.08.21 |
같이싸우기5-다음맵에서도 소환수사용뒤죽박죽뒤죽박죽 (0) | 2008.08.21 |
rpg 만들기 vx 샘플맵 (0) | 2008.08.18 |
같이싸우기3-소환수의 장거리뒤죽박죽뒤죽박죽 (0) | 2008.08.18 |