Project1
标题:
请教个关于赵云传2状态栏和名字的问题!
[打印本页]
作者:
holwar天下
时间:
2008-2-4 05:59
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 07:55
提示:
作者被禁止或删除 内容自动屏蔽
作者:
cmbljsw
时间:
2008-2-4 10:52
LZ……要记得哦36小时内不能自顶哦……
你能截上图上来嘛?我没见过呀……
作者:
天圣的马甲
时间:
2008-2-4 11:06
新手提问区磨练读心术啊……{/hx}
人物创建的意思,是吧?
RM默认有一个名称输入处理,将脚本里Window_NameInput的日文换成常见的中文字就行了。
或者用脚本:
http://rpg.blue/web/htm/news196.htm
http://rpg.blue/web/htm/news375.htm
作者:
cmbljsw
时间:
2008-2-4 11:09
以下引用
天圣的马甲于2008-2-4 3:06:09
的发言:
新手提问区磨练读心术啊……
……无语,貌似那个怪物属性还米人有法呢……不知道作者是哪位。
还有问个弱弱的问题,那样不就说话都要搞脚本了?
作者:
holwar天下
时间:
2008-2-4 18:33
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 18:35
提示:
作者被禁止或删除 内容自动屏蔽
作者:
mikeliuxuan
时间:
2008-2-4 18:47
这是名字脚本(XP中自带 但默认是 日文
)# --------------------------------------------------------------------
# 本脚本来自www.66rpg.com,转载自www.phylomortis.com,转载请保留此信息
# --------------------------------------------------------------------
class Scene_Name
# -------------------------
def main
@actor = $game_actors[$game_temp.name_actor_id]
@edit_window = Window_NameEdit.new(@actor, $game_temp.name_max_char)
@input_window = Window_NameInput.new
@alert_window = Window_Base.new(188, 208, 264, 64)
@alert_window.contents = Bitmap.new(228, 32)
@alert_window.contents.font.name = "黑体"
@alert_window.contents.font.size = 24
@alert_window.contents.draw_text(0, 0, 228, 32, "你必须输入一个名字")
@alert_window.z = 1001
@alert_window.visible = false
c1 = " English"
c2 = " ひらがな"
c3 = " 输入中文"
c4 = " 输入空格"
c5 = " 输入退格"
c6 = " 默认姓名"
c7 = " 确定"
commands = [c1, c2, c3, c4, c5, c6, c7]
@command_window = Window_NameCommand.new(160, commands)
@input_window.active = false
@input_window.visible = true
@command_window.index = 0
@command_window.visible = true
@command_window.active = true
@command_window.x = 0
@command_window.y = 128
@command_window.z = 1000
@alert_count = 0
Graphics.transition
loop do
Graphics.update
Input.update
update
if $scene != self
break
end
end
Graphics.freeze
@edit_window.dispose
@input_window.dispose
@command_window.dispose
@alert_window.dispose
end
# -------------------------
def update
@edit_window.update
@input_window.update
@command_window.update
@alert_window.update
if @alert_window.visible == true && @alert_count > 0
@alert_count -= 1
if @alert_count <= 0
@command_window.active = true
@alert_window.visible = false
end
return
end
if @input_window.active == false
@command_window.active = true
end
if @command_window.active == false
@input_window.active = true
end
if Input.repeat?(Input::B) && @input_window.active == true
if @edit_window.index == 0
return
else
$game_system.se_play($data_system.cancel_se)
@edit_window.back
end
end
if Input.repeat?(Input::B) && @command_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if Input.trigger?(Input::C)
if @command_window.active == true
case @command_window.index
when 0
$game_system.se_play($data_system.decision_se)
@input_window.mode = 1
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 1
$game_system.se_play($data_system.decision_se)
@input_window.mode = 2
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 2
$game_system.se_play($data_system.decision_se)
@input_window.mode = 3
@input_window.refresh
@command_window.active = false
@input_window.active = true
@input_window.index = 0
return
when 3
if @edit_window.index < $game_temp.name_max_char
$game_system.se_play($data_system.decision_se)
@edit_window.add(" ")
else
$game_system.se_play($data_system.buzzer_se)
end
return
when 4
$game_system.se_play($data_system.decision_se)
@edit_window.back
return
when 5
$game_system.se_play($data_system.decision_se)
@edit_window.restore_default
return
when 6
if @edit_window.name == ""
$game_system.se_play($data_system.buzzer_se)
@alert_window.visible = true
@command_window.active = false
@alert_count = 60
return
end
$game_system.se_play($data_system.decision_se)
@actor.name = @edit_window.name
$game_system.se_play($data_system.decision_se)
$scene = Scene_Map.new
return
end
end
if @edit_window.index == $game_temp.name_max_char &&
@input_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character == "" && @input_window.active == true
$game_system.se_play($data_system.buzzer_se)
return
end
if @input_window.character != nil && @input_window.active == true &&
@edit_window.index <= $game_temp.name_max_char
$game_system.se_play($data_system.decision_se)
if @input_window.mode == 1
@edit_window.char_type[@edit_window.index] = 1
else
@edit_window.char_type[@edit_window.index] = 2
end
@edit_window.add(@input_window.character)
end
return
end
end
end
class Window_NameEdit < Window_Base
# ---------------------------
attr_accessor :char_type
attr_reader :name
attr_reader :index
# ---------------------------
def initialize(actor, max_char)
super(0, 0, 640, 128)
self.contents = Bitmap.new(width - 32, height - 32)
@actor = actor
@name = actor.name
@max_char = max_char
@char_type = []
name_array = @name.split(//)[0...@max_char]
@name = ""
for i in 0...name_array.size
@name += name_array[i]
@char_type[i] = 1
end
@default_name = @name
@index = name_array.size
refresh
update_cursor_rect
end
# ---------------------------
def restore_default
@name = @default_name
for i in 0..@default_name.size
@char_type[i] = 1
end
@index = @name.split(//).size
refresh
update_cursor_rect
end
# ---------------------------
def add(character)
if @index < @max_char and character != ""
@name += character
@index += 1
refresh
update_cursor_rect
end
end
# ---------------------------
def back
if @index > 0
name_array = @name.split(//)
@name = ""
for i in 0...name_array.size-1
@name += name_array[i]
end
@index -= 1
refresh
update_cursor_rect
end
end
# ---------------------------
def refresh
self.contents.clear
name_array = @name.split(//)
for i in 0...@max_char
c = name_array[i]
if c == nil
c = "_"
end
x = 320 - @max_char * 14 + i * 28
if @char_type[i] == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
end
self.contents.draw_text(x, 32, 28, 32, c, 1)
end
draw_actor_graphic(@actor, 320 - @max_char * 14 - 40, 80)
end
# ---------------------------
def update_cursor_rect
x = 320 - @max_char * 14 + @index * 28
self.cursor_rect.set(x, 32, 28, 32)
end
# ---------------------------
def update
super
update_cursor_rect
end
end
class Window_NameInput < Window_Base
# ----------------------------------
attr_accessor :mode
# ----------------------------------
ENGLISH_TABLE =
[
"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","","","","",
"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","","","","",
".",",","?","!","/",
"\\","<",">",";",":",
"","", "" , "" , "" ,
"@","#","$","%","^",
"&","*","(",")","",
"[","]","'","\"","~",
"良","翔","叶","青","黥",
"恐","开","御","恺","寇",
"阔","适","彬","霰","霞",
"侠","降","鹰","欣","齿",
"赤","冷","冰","秉","耿",
"根","更","罡","功","恭",
]
HIRAGANA_TABLE =
[
"あ","い","う","え","お",
"か","き","く","け","こ",
"さ","し","す","せ","そ",
"た","ち","つ","て","と",
"な","に","ぬ","ね","の",
"は","ひ","ふ","へ","ほ",
"ま","み","む","め","も",
"や", "" ,"ゆ", "" ,"よ",
"ら","り","る","れ","ろ",
"わ", "" ,"を", "" ,"ん",
"が","ぎ","ぐ","げ","ご",
"ざ","じ","ず","ぜ","ぞ",
"だ","ぢ","づ","で","ど",
"ば","び","ぶ","べ","ぼ",
"ぱ","ぴ","ぷ","ぺ","ぽ",
"ゃ","ゅ","ょ","っ","ゎ",
"ぁ","ぃ","ぅ","ぇ","ぉ",
"ー","・", "淫","民","霖" ,
"巧","小","大","神","灵",
"月","乐","天","地","人",
"仙","汉","阳","阴","五",
"行","杏","星","情","晴",
"擎","卿","靓","英","雄",
"勇","士","兵","雷","豹",
"恶","狼","魔","妖","恒",
"痕","幻","环","官","才",
"夫","腾","棠","剪","宾",
"欣","军","寻","深","嫔",
]
KATAKANA_TABLE =
[
"张","王","李","赵","曹",
"许","刘","郑","周","吴",
"冯","马","钱","孙","陈",
"扬","徐","高","胡","朱",
"林","何","郭","罗","狮",
"梁","宋","韩","唐","董",
"萧","程","袁","邓","沈",
"方","石","谭","熊","金",
"陆","孔","白","崔","康",
"毛","秦","江","史","顾",
"彭","吕","苏","蒋","蔡",
"贾","魏","薛","叶","余",
"潘","杜","戴","夏","钟",
"汪","田","任","姜","范",
"侯","孟","龙","万","段",
"汤","离","常","易","武",
"乔","贺","龚","文","邹",
"峰","风","封","锋","严",
"国","华","勇","毅","坚",
"猛","亮","雨","莹","淑",
"男","心","夜","珍","伟",
"波","涛","浩","瀚","炎",
"言","岩","焰","麟","伦",
"琴","矜","银","殷","奔",
"别","剑","姬","疾","精",
"镜","景","疆","强","将",
"虹","空","恐","彪","骠",
]
# ----------------------------------
def initialize
super(160, 128, 480, 352)
self.contents = Bitmap.new(width - 32, height - 32)
self.active = false
@index = -1
@mode = 1
refresh
update_cursor_rect
end
# ----------------------------------
def index=(value)
@index = value
update_cursor_rect
end
#--------------------------------------
def character
if @mode == 1
return ENGLISH_TABLE[@index]
elsif @mode == 2
return HIRAGANA_TABLE[@index]
else
return KATAKANA_TABLE[@index]
end
end
# ----------------------------------
def refresh
self.contents.clear
for i in 0..134
x = 4 + i / 5 / 9 * 152 + i % 5 * 28
y = i / 5 % 9 * 32
if @mode == 1
self.contents.font.name = "黑体"
self.contents.font.size = 24
self.contents.draw_text(x, y, 28, 32, ENGLISH_TABLE[i], 1)
elsif @mode == 2
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, HIRAGANA_TABLE[i], 1)
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
self.contents.draw_text(x, y, 28, 32, KATAKANA_TABLE[i], 1)
end
end
end
# ----------------------------------
def update_cursor_rect
if self.active == false
self.cursor_rect.empty
else
x = 4 + @index / 5 / 9 * 152 + @index % 5 * 28
y = @index / 5 % 9 * 32
self.cursor_rect.set(x, y, 28, 32)
end
end
# ----------------------------------
def update
super
if @index >= 0 && @index <= 134
if Input.repeat?(Input::RIGHT)
$game_system.se_play($data_system.cursor_se)
if @index % 5 == 4
if @index < 94
@index += 41
end
else
@index += 1
end
end
if Input.repeat?(Input::LEFT)
$game_system.se_play($data_system.cursor_se)
if @index % 5 == 0
if @index < 45
self.active = false
@index = -999
return
else
@index -= 41
end
else
@index -= 1
end
end
if Input.repeat?(Input::DOWN)
$game_system.se_play($data_system.cursor_se)
if @index % 45 < 40
@index += 5
end
end
if Input.repeat?(Input::UP)
if Input.trigger?(Input::UP) or @index % 45 >= 5
$game_system.se_play($data_system.cursor_se)
if @index % 45 >= 5
@index -= 5
end
end
end
end
update_cursor_rect
end
end
class Window_NameCommand < Window_Command
# -------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
if i == 1 or i == 2
font = 1
self.contents.font.name = "黑体"
self.contents.font.size = 22
else
font = 0
self.contents.font.name = "黑体"
self.contents.font.size = 24
end
draw_item(i, normal_color, font)
end
end
# -------------------------------
def draw_item(index, color, f)
if f == 0
self.contents.font.color = color
self.contents.font.name = "黑体"
self.contents.font.size = 24
else
self.contents.font.name = "黑体"
self.contents.font.size = 22
end
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_text(rect, @commands[index])
end
end
复制代码
触发一个自动事件。 事件中设定一个更换角色姓名。
[LINE]1,#dddddd[/LINE]
脚本太长,已经修改。
作者:
天圣的马甲
时间:
2008-2-4 18:47
哦……= =
早把你那长长的回复打上不就没这么麻烦了= =
如果识别名字不行,就直接识别角色编号不就好了?比如赵云是1号角色,就设置成1_状态栏。
描绘角色编号的语句是actor.id
作者:
holwar天下
时间:
2008-2-4 19:10
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 19:11
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 19:18
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 20:24
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 20:25
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 21:14
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-4 21:34
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-6 05:45
提示:
作者被禁止或删除 内容自动屏蔽
作者:
沉影不器
时间:
2008-2-6 06:01
提示:
作者被禁止或删除 内容自动屏蔽
作者:
holwar天下
时间:
2008-2-7 19:44
提示:
作者被禁止或删除 内容自动屏蔽
作者:
纯子
时间:
2008-2-7 20:03
class Window_CharStatus找到def draw_name
testname = actor.name.to_s + "_状态栏"把name改id,图片名字都改角色id。。。 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
holwar天下
时间:
2008-2-7 20:15
提示:
作者被禁止或删除 内容自动屏蔽
作者:
纯子
时间:
2008-2-7 21:56
没问题啊,我试过了
作者:
holwar天下
时间:
2008-2-8 01:29
提示:
作者被禁止或删除 内容自动屏蔽
作者:
天圣的马甲
时间:
2009-6-12 08:00
66RPG的官方脚本应该是自动根据战斗图选择头像……如果那个赵云传真的是用了这个整合脚本的话。
我在66RPG的官方脚本工程里利用名称输入处理修改了角色的姓名,并没有出现读取头像失败的问题。
整合脚本在这里,你下载看看:http://rpg.blue/web/htm/dj16.htm
此外如果方便,把那个赵云传的脚本文件打包传上来吧。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1