Project1
标题:
這個 道具獲得提示 無法跟 沉影 的道具腳本共用
[打印本页]
作者:
御之嵐
时间:
2010-12-14 18:27
标题:
這個 道具獲得提示 無法跟 沉影 的道具腳本共用
本帖最后由 御之嵐 于 2010-12-14 18:29 编辑
這個是
獲得道具的顯示
#==============================================================================
# ★RGSS2
# STR20_入手インフォメーション v1.2 09/03/17
#
# ◇必須スクリプト STEMB_マップエフェクトベース
#
# ・マップ画面にアイテム入手・スキル修得などの際に表示するインフォです。
# ・表示内容は 任意指定の名目+アイテム名+ヘルプメッセージとなります。
# ・アイテムのメモ欄に info[/任意の文字列/] と記述することで
# 通常とは別の説明文をインフォに表示させることができます。(v1.1)
# [仕様]インフォが表示されている間も移動できます。
# 移動させたくない場合はウェイトを入れてください。
#------------------------------------------------------------------------------
#
# 更新履歴
# ◇1.1→1.2
# メッセージウィンドウより上に表示されてしまうのを修正(Z座標を変更した)
# ◇1.0→1.1
# 通常とは別の説明文をインフォに表示できるようになった
#
#==============================================================================
#==============================================================================
# ★RGSS2
# STEMB_マップエフェクトベース v0.8
#
# ・エフェクト表示のための配列定義、フレーム更新、ビューポート関連付け
#
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :streffect
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_stref initialize
def initialize
initialize_stref
@streffect = []
end
end
#==============================================================================
# ■ Spriteset_Map
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# ● エフェクトの作成
#--------------------------------------------------------------------------
def create_streffect
$game_temp.streffect = []
end
#--------------------------------------------------------------------------
# ● エフェクトの解放
#--------------------------------------------------------------------------
def dispose_streffect
for i in 0...$game_temp.streffect.size
$game_temp.streffect[i].dispose if $game_temp.streffect[i] != nil
end
$game_temp.streffect = []
end
#--------------------------------------------------------------------------
# ● エフェクトの更新
#--------------------------------------------------------------------------
def update_streffect
for i in 0...$game_temp.streffect.size
if $game_temp.streffect[i] != nil
$game_temp.streffect[i].viewport = @viewport1
$game_temp.streffect[i].update
$game_temp.streffect.delete_at(i) if $game_temp.streffect[i].disposed?
end
end
end
#--------------------------------------------------------------------------
# ★ エイリアス
#--------------------------------------------------------------------------
alias create_parallax_stref create_parallax
def create_parallax
create_parallax_stref
create_streffect
end
alias dispose_stref dispose
def dispose
dispose_streffect
dispose_stref
end
alias update_stref update
def update
update_stref
update_streffect
end
end
#==============================================================================
# ■ Window_Getinfo
#==============================================================================
class Window_Getinfo < Window_Base
# 設定箇所
G_ICON = 144 # ゴールド入手インフォに使用するアイコンインデックス
Y_TYPE = 1 # Y座標の位置(0 = 上基準 1 = 下基準)
Z = 188 # Z座標(問題が起きない限り変更しないでください)
TIME = 180 # インフォ表示時間(1/60sec)
OPACITY = 32 # 透明度変化スピード
B_COLOR = Color.new(0, 0, 0, 160) # インフォバックの色
INFO_SE = RPG::SE.new("Chime2", 80, 100) # インフォ表示時の効果音
STR20W = "info"# メモ設定ワード(※なるべく変更しないでください)
end
#
if false
# ★以下をコマンドのスクリプト等に貼り付けてテキスト表示----------------★
# 種類 / 0=アイテム 1=武器 2=防具 3=スキル 4=金
type = 0
# ID / 金の場合は金額を入力
id = 1
# 入手テキスト / 金の場合無効
text = "道具入手!"
#
e = $game_temp.streffect
e.push(Window_Getinfo.new(id, type, text))
# ★ここまで------------------------------------------------------------★
#
# ◇スキル修得時などにアクター名を直接打ち込むと
# アクターの名前が変えられるゲームなどで問題が生じます。
# なので、以下のようにtext部分を改造するといいかもしれません。
#
# 指定IDのアクターの名前取得
t = $game_actors[1].name
text = t + " / 學得技能!"
#
end
#==============================================================================
# ■ Window_Getinfo
#==============================================================================
class Window_Getinfo < Window_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# actor : アクター
#--------------------------------------------------------------------------
def initialize(id, type, text = "")
super(-16, 0, 544 + 32, 38 + 32)
self.z = Z
self.contents_opacity = 0
self.back_opacity = 0
self.opacity = 0
@count = 0
@i = $game_temp.getinfo_size.index(nil)
@i = $game_temp.getinfo_size.size if (@i == nil)
if Y_TYPE == 0
self.y = -14 + (@i * 40)
else
self.y = 416 - 58 - (@i * 40)
end
$game_temp.getinfo_size[@i] = true
refresh(id, type, text)
INFO_SE.play
end
#--------------------------------------------------------------------------
# ● 解放
#--------------------------------------------------------------------------
def dispose
$game_temp.getinfo_size[@i] = nil
super
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
self.viewport = nil
@count += 1
unless @count >= TIME
self.contents_opacity += OPACITY
else
if Y_TYPE == 0
self.y -= 1
else
self.y += 1
end
self.contents_opacity -= OPACITY
dispose if self.contents_opacity == 0
end
end
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh(id, type, text = "")
case type
when 0 ; data = $data_items[id]
when 1 ; data = $data_weapons[id]
when 2 ; data = $data_armors[id]
when 3 ; data = $data_skills[id]
when 4 ; data = id
else ; p "typeの値がおかしいです><;"
end
c = B_COLOR
self.contents.fill_rect(0, 14, 544, 24, c)
if type < 4
draw_item_name(data, 4, 14)
self.contents.draw_text(204, 14, 340, WLH, description(data))
else
draw_icon(G_ICON, 4, 14)
self.contents.draw_text(28, 14, 176, WLH, data.to_s + Vocab::gold)
end
self.contents.font.size = 14
w = self.contents.text_size(text).width
self.contents.fill_rect(0, 0, w + 4, 14, c)
self.contents.draw_text_f(4, 0, 340, 14, text)
Graphics.frame_reset
end
#--------------------------------------------------------------------------
# ● 解説文取得
#--------------------------------------------------------------------------
def description(data)
return $1.gsub!(/[\t\n\r\f]*/,"") if (data.note[/#{STR20W}\[\/(.*)\/\]/im]) != nil
return data.description
end
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :getinfo_size
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_str20 initialize
def initialize
initialize_str20
@getinfo_size = []
end
end
#==============================================================================
# ■ Bitmap
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# ● 文字縁取り描画
#--------------------------------------------------------------------------
def draw_text_f(x, y, width, height, str, align = 0, color = Color.new(64,32,128))
shadow = self.font.shadow
b_color = self.font.color.dup
font.shadow = false
font.color = color
draw_text(x + 1, y, width, height, str, align)
draw_text(x - 1, y, width, height, str, align)
draw_text(x, y + 1, width, height, str, align)
draw_text(x, y - 1, width, height, str, align)
font.color = b_color
draw_text(x, y, width, height, str, align)
font.shadow = shadow
end
def draw_text_f_rect(r, str, align = 0, color = Color.new(64,32,128))
draw_text_f(r.x, r.y, r.width, r.height, str, align = 0, color)
end
end
复制代码
必須在事件中插入
# type種類 / 0=道具 1=武器 2=防具 3=技能 4=錢
type =
# ID物品編號 / 如果是金錢的話直接輸入金錢數量
id =
# text顯示文字 / 提示上面的紫色文字
text = "獲得金錢!" #獲得道具! or 習得技能! or 獲得金錢!
#
e = $game_temp.streffect
e.push(Window_Getinfo.new(id, type, text))
复制代码
才會顯示
但是無法跟 沉影 大大
的道具腳本配合
例如
武器升級
隨機屬性
打洞鑲嵌
這3個腳本 測試之後都不能用
會發生問題
問題會出在
我的道具獲得顯示 裡面的
219行
return $1.gsub!(/[\t\n\r\f]*/,"") if (data.note[/#{STR20W}\[\/(.*)\/\]/im]) != nil
复制代码
這段裡面
請問 一下
要怎麼改才能讓他們相容?!
我比較偏好這種的道具顯示說...
作者:
shua1125
时间:
2010-12-15 06:04
本帖最后由 shua1125 于 2010-12-15 06:21 编辑
先试试关闭一个脚本后另一个是否能运行,来判定是不是真的冲突。
如果是冲突,其实可以换一个道具得失提示的脚本,这类脚本还是见过很多的……
实在不想换就恕我无能了,我是脚本盲,毕竟换脚本是最快捷的……
如果比较着急于制作进度,可以先用别的道具提示脚本暂时替换一下,等到这个脚本的问题解决之后再换回来。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1