赞 | 0 |
VIP | 0 |
好人卡 | 1 |
积分 | 1 |
经验 | 3794 |
最后登录 | 2020-7-25 |
在线时间 | 138 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 55
- 在线时间
- 138 小时
- 注册时间
- 2010-6-20
- 帖子
- 46
|
#===================================================
#ノーマルアイテムの指定
#エネミーネームに -n種類 ID 個数(-na 10 10) と入れて指定。
#種類は、i(アイテム) w(武器) a(防具)のいずれか一つ
#個数は省略可能、自動で1扱い。
#また、ドロップアイテムと同一にしたい場合は
#エネミーネームに -nd 個数(-nd 2) と入れて指定。
#個数は省略可能、自動で1扱い。
#===================================================
def normal_item
return get_item_from_name("n")#オプション"n"の文字列から取得
end
#===================================================
#レアアイテムの指定
#エネミーネームに -r種類 ID 個数(-na 10 10) と入れて指定。
#種類は、i(アイテム) w(武器) a(防具)のいずれか一つ
#個数は省略可能、自動で1扱い。
#また、ドロップアイテムと同一にしたい場合は
#エネミーネームに -rd 個数(-nd 2) と入れて指定。
#個数は省略可能、自動で1扱い。
#===================================================
def rare_item
return get_item_from_name("r")#オプション"r"の文字列から取得
end
#===================================================
#*Nameからアイテムを抜き出す処理
#===================================================
def get_item_from_name(opt)
names = $data_enemies[@enemy_id].name.split(/-/)
if names.size > 1
for i in 1...names.size
if names[i][0,1] != opt
next
end
names[i].sub!(/^.(.*)/){$1}
ary = names[i].split(/ /)
if ary[0][0,1] == "g"
cgy = "g"
id = 0
if ary[1].nil?
ary[1] = "1"
elsif ary[1].sub!(/^([0-9]+)/){$1}.nil?
ary[1] = "1"
end
possession = {"Category"=>cgy, "ID"=>id, "Num"=>ary[1].to_i}
return possession
elsif ary[0][0,1] == "d"
cgy = ""
id = 0
if self.item_id != 0
cgy = "i"
id = self.item_id
elsif self.weapon_id != 0
cgy = "w"
id = self.weapon_id
elsif self.armor_id != 0
cgy = "a"
id = self.armor_id
else
return nil
end
if ary[1].nil?
ary[1] = "1"
elsif ary[1].sub!(/^([0-9]+)/){$1}.nil?
ary[1] = "1"
end
possession = {"Category"=>cgy, "ID"=>id, "Num"=>ary[1].to_i}
return possession
elsif !ary[0].sub!(/^([iwa])/){$1}.nil? && !ary[1].sub!(/^([0-9]+)/){$1}.nil?
if ary[2].nil? || ary[2].sub!(/^([0-9]+)/){$1}.nil?
ary[2] = "1"
end
possession = {"Category"=>ary[0], "ID"=>ary[1].to_i, "Num"=>ary[2].to_i}
return possession
end
end
end
return nil
end
#===================================================
#スティールエフェクト
#===================================================
def steal_effect(user, skill) # 引数skillを追加
pos = self.normal_item
if !@item_possession || pos.nil?
@effect_message = "没有东西可偷。"
#self.damage = "Miss"
return false
end
#盗み成功判定 アジリティが同一で50%、2倍で100%
if rand(100) <= ((user.agi+0.01)/(self.agi+0.01))*100/2
r_pos = self.rare_item
#レアアイテム判定
if !r_pos.nil? && rand(10) <= 1
pos = r_pos
end
case pos["Category"]
when "i"
item = $data_items[pos["ID"]]
if item.nil?
print "这个物品不存在!"
return false
end
$game_party.gain_item(item.id, pos["Num"])
when "w"
item = $data_weapons[pos["ID"]]
if item.nil?
print "这个物品不存在!"
return false
end
$game_party.gain_weapon(item.id, pos["Num"])
when "a"
item = $data_armors[pos["ID"]]
if item.nil?
print "这个物品不存在!"
return false
end
$game_party.gain_armor(item.id, pos["Num"])
when "g"
# ゴールド獲得
$game_party.gain_gold(pos["Num"])
end
if pos["Category"] == "g"
@effect_message = "#{pos["Num"]}#{$data_system.words.gold}偷到!"
else
@effect_message = "#{item.name}#{pos["Num"]}个偷到!"
end
@item_possession = false
self.damage = "Steal!" if self.damage == "Miss"
return true
else
@effect_message = "没有东西可偷???"
#self.damage = "Miss
return false
end
return false # 念のためfalse返す処理追加
# 多分なくてもifの結果(false)が返ると思うけど…
end
end
#========================================================
应该是这段脚本上面注释
#===================================================
#レアアイテムの指定
#エネミーネームに -r種類 ID 個数(-na 10 10) と入れて指定。
#種類は、i(アイテム) w(武器) a(防具)のいずれか一つ
#個数は省略可能、自動で1扱い。
#また、ドロップアイテムと同一にしたい場合は
#エネミーネームに -rd 個数(-nd 2) と入れて指定。
#個数は省略可能、自動で1扱い。
#===================================================
这段啥意思。 |
|