Project1
标题:
请问!有没有VX的对话框的一种脚本 进来看
[打印本页]
作者:
canonl
时间:
2009-5-4 11:12
标题:
请问!有没有VX的对话框的一种脚本 进来看
就是想实现的效果 人物对话的时候 直接显示名字在头像上面 这个图是XP的 现在需要VX的 有吗?我翻了21个多小时的教程 也没找到想要的。。如果有知道的话 给个链接 我自己去拿 谢谢啊~~
[LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
canonl
时间:
2009-5-4 11:14
顺便再问下 到那里去下载论坛附件 。。。上传了1下图片 忘了复制链接。。找不到了。。只好重新上传。。囧!
作者:
妲己
时间:
2009-5-4 18:03
有是有一个.不过不大好看......作些修改比较好......
基本方法:
显示名字:\w[你的名字].脚本如下:
=begin rdoc
= #037 メッセージ制御文字追加
== 概要
メッセージウィンドウに名前ウィンドウを追加します。左右の表示位置を指定でき、
内容には制御文字を使用することが出来ます。
また、アイテム・武器・防具の名前を呼び出せるようになります。
== 注記事項
* #008「メッセージバグ修正」#009「アイテム名取り込み対応」を取り込んでいます。
これらと併用する必要はありません。
* 動作の詳細は下記の[動作について]をご覧下さい。
== このスクリプトの情報
バージョン:: 2.0.0
対応:: RPGツクールVX
配布元:: http://quiet-labs.net/s/037/
作成者:: ユミル ( mailto:
[email protected]
)
挿入位置:: [VX] 標準の位置に挿入
動作条件:: [VX] 特に無し
== 動作について
* メッセージの先頭に「 \w[ (内容) ] 」の形式で入力してください。
メッセージの表示の際にこの位置に到達すると、名前欄に内容を表示します。
* 「 \w[\n[1]] 」の用に指定した場合、そのアクターの名前を画面に表示できます。
* \w もしくは \wl で左に表示、\wr で右側に表示します。
* メッセージの中で何度でも使用することが出来ます。メッセージの表示中に名前欄を
変更することも出来ます。
* また、以下の特殊文字を使用できるようになります。
- \It[n] ID n 番のアイテムの名前に置き換えられます。
- \We[n] ID n 番の武器の名前に置き換えられます。
- \Ar[n] ID n 番の防具の名前に置き換えられます。
* n には半角数字を入力します。
\It[\v[1]] のように変数で指定することも可能です。
* また、RPGツクールVX の標準スクリプトの以下の不具合を修正します。
* \G が小文字の時に動作しない不具合。
* 構文をエスケープできない不具合。(通常「\\G」などと入力した場合、画面には
「\G」と表示されるべきであるが、不具合により「\G」と同じ動作をしてしまう)
* 英文字は大文字・小文字の区別はありません。
* 特殊文字はメッセージ編集中に表示できるプレビューには反映されませんが、
ゲーム中での動作時は問題なく反映されます。
==サポート
* 不具合などがありましたら掲示板で報告していただければ幸いです。
* 設定や組み込みなどで不明な点が有れば掲示板にてお尋ね下さい。
== 更新履歴
[2.0.0]
更新 : 2008-05-04
* #008「メッセージバグ修正」を吸収。
* #009「アイテム名取り込み対応」を吸収。
[1.0.2]
更新 : 2008-03-06
* 特殊文字の追加を容易にするために Window_Message#convert_special_characters
を分割。
[1.0.1]
更新 : 2008-02-26
* 戦闘中、名前ウィンドウの位置が上に固定される不具合を修正。
* 左右位置の設定が有効にならない不具合を修正。
[1.0.0]
更新 : 2008-01-29
* 公開。
=end
# このサイトのスクリプトの名前空間。
module QuietLab
end
# このスクリプトの名前空間。
module QuietLab::Script_37
# このスクリプトのバージョンの日付表記。
Version = 2008_05_04
end
# 名前を表示するクラス。
class QuietLab::Script_37::Window_Name < Window_Base
# ウィンドウに表示する文字列。
attr_reader :text
# オブジェクトを初期化します。
def initialize(x = 0, y = 0)
super(x, y, 160, WLH + 32)
@text = ""
refresh
end
# 内容を再描画します。
def refresh
self.contents.clear
self.contents.draw_text(4, 0, self.width - 32 - 8, WLH, @text)
self.open if @text != ""
end
# 表示する文字列を設定します。位置は [ 0:左, 2:右 ] です。
def set_text(pos, val)
@text = val
self.x = (pos == 2 ? 544 - self.width : 0)
refresh
end
end
# メッセージウィンドウのクラス。
class Window_Message
#-- alias 定義
# 判別のため、メソッド名末尾に _by_QuietLab37 を付加します。
#++
alias :initialize_by_QuietLab37 :initialize
alias :dispose_by_QuietLab37 :dispose
alias :update_by_QuietLab37 :update
alias :create_gold_window_by_QuietLab37 :create_gold_window
alias :start_message_by_QuietLab37 :start_message
alias :reset_window_by_QuietLab37 :reset_window
alias :terminate_message_by_QuietLab37 :terminate_message
alias :update_message_by_QuietLab37 :update_message
# オブジェクトを初期化します。
def initialize
initialize_by_QuietLab37
create_name_window
end
# 使用しているウィンドウ・スプライトを解放します。
def dispose
dispose_by_QuietLab37
dispose_name_window
end
# ウィンドウを更新します。
def update
update_name_window
update_by_QuietLab37
end
# ゴールドウィンドウを作成します。
def create_gold_window
create_gold_window_by_QuietLab37
@gold_window.z = self.z + 1
end
# メッセージの表示処理を開始します。
def start_message
@name_window.close
start_message_by_QuietLab37
end
# ウィンドウの状態をリセットします。
def reset_window
reset_window_by_QuietLab37
if @position == 0
self.y = 24
@gold_window.y = -16
end
reset_name_window
end
# 発言者ウィンドウの位置をリセットします。
def reset_name_window
@name_window.opacity = self.opacity
@name_window.y = self.y - 40
end
# メッセージの表示処理を終了します。
def terminate_message
terminate_message_by_QuietLab37
@name_window.close
end
# メッセージの内容を更新します。
def update_message
loop do
case @text.slice(/./m)
when "\x0a"
@text.sub!(/\x0a\[(.*?)\]/, "")
@name_window.set_text(0, $1)
when "\x0b"
@text.sub!(/\x0b\[(.*?)\]/, "")
@name_window.set_text(2, $1)
else
break
end
break unless @show_fast or @line_show_fast
end
update_message_by_QuietLab37
end
# 発言者ウィンドウを作成します。
def create_name_window
@name_window = QuietLab::Script_37::Window_Name.new
@name_window.openness = 0
@name_window.z = self.z + 1
end
# 発言者ウィンドウを解放します。
def dispose_name_window
@name_window.dispose
end
# 発言者ウィンドウを更新します。
def update_name_window
@name_window.update
end
# 表示する内容に含まれる特殊文字を変換します。
# このメソッドは分割されており、ここではエスケープの置き換えを行います。
def convert_special_characters
@text.gsub!(/\\\\/) { "\x7f" }
convert_special_characters_main
@text.gsub!(/\x7f/) { "\\" }
end
# 表示する内容に含まれる特殊文字を変換します。
# このメソッドは分割されており、ここではエディタ標準の制御文字の置き換えを
# 行います。
def convert_special_characters_system
@text.gsub!(/\\V\[(\d+)\]/i) { $game_variables[$1.to_i] }
@text.gsub!(/\\V\[(\d+)\]/i) { $game_variables[$1.to_i] }
@text.gsub!(/\\N\[(\d+)\]/i) { $game_actors[$1.to_i].name }
@text.gsub!(/\\C\[(\d+)\]/i) { "\x01[#{$1}]" }
@text.gsub!(/\\G/i) { "\x02" }
@text.gsub!(/\\\./) { "\x03" }
@text.gsub!(/\\\|/) { "\x04" }
@text.gsub!(/\\!/) { "\x05" }
@text.gsub!(/\\>/) { "\x06" }
@text.gsub!(/\\</) { "\x07" }
@text.gsub!(/\\\^/) { "\x08" }
end
# 表示する内容に含まれる特殊文字を変換します。
# このメソッドは分割されており、ここでは文字の置き換えを行うメソッドを
# 呼び出します。
def convert_special_characters_main
convert_special_characters_system
convert_special_characters_item
convert_special_characters_name
end
# 表示する内容に含まれる特殊文字を変換します。
# このメソッドは分割されており、ここではこのスクリプトで追加された
# アイテム関連の制御文字の置き換えを行います。
def convert_special_characters_item
@text.gsub!(/\\It\[(\d+)\]/i) do
$data_items[$1.to_i].nil? ? "" : $data_items[$1.to_i].name
end
@text.gsub!(/\\We\[(\d+)\]/i) do
$data_weapons[$1.to_i].nil? ? "" : $data_weapons[$1.to_i].name
end
@text.gsub!(/\\Ar\[(\d+)\]/i) do
$data_armors[$1.to_i].nil? ? "" : $data_armors[$1.to_i].name
end
end
# 表示する内容に含まれる特殊文字を変換します。
# このメソッドは分割されており、ここではこのスクリプトで追加された
# 名前ウィンドウ関連の制御文字の置き換えを行います。
def convert_special_characters_name
@text.gsub!(/\\WR\[(.*?)\]/i) { "\x0b[#{$1}]" }
@text.gsub!(/\\WL?\[(.*?)\]/i) { "\x0a[#{$1}]" }
end
end
# 戦闘中に使用されるメッセージウィンドウのクラス。
class Window_BattleMessage
#-- alias 定義
# 判別のため、メソッド名末尾に _by_QuietLab37 を付加します。
#++
alias :reset_window_by_QuietLab37 :reset_window
# ウィンドウの状態をリセットします。
def reset_window
reset_window_by_QuietLab37
reset_name_window
end
end
# QuietLab ScriptFormat v1.20
复制代码
效果图:
个人觉得...还是用VX呼出对话框好看些.就是偶有小冲突...... [LINE]1,#dddddd[/LINE]
系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者:
PAME
时间:
2009-5-4 18:34
我觉的还是事先做在图片上好 [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
妲己
时间:
2009-5-4 18:57
同感.使用自己制作的对话框美......
作者:
雪流星
时间:
2009-5-4 19:49
地球村搜索關鍵字「ATS」
作者:
canonl
时间:
2009-5-4 21:59
谢谢各位 谢谢妲己,,我是脚本白痴,这个太难了点。。 。。不过做在图片上倒是可以试试 - -
作者:
妲己
时间:
2009-5-4 22:18
这个脚本很简单哪.其他的不用管.只要根据需要在对话里写:\w[名字]今天天气不错~~~这种类型的就行了{/cy}
作者:
canonl
时间:
2009-5-4 23:16
最后还是自己制作了图片 哈哈 果然很美 而且还不用输命令。。直接上图就OK 谢谢~!
作者:
canonl
时间:
2009-5-4 23:18
老规矩,只要帮忙的人都有分。。大部分的分给最后采用了的人 谢谢
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1