Project1

标题: 战斗特殊效果中这个偷窃功能怎么设置 [打印本页]

作者: 流浪剑客    时间: 2012-3-10 21:25
标题: 战斗特殊效果中这个偷窃功能怎么设置
#===================================================
#ノーマルアイテムの指定 
#エネミーネームに -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扱い。
#===================================================
这段啥意思。dsu_plus_rewardpost_czw
作者: kangxi0109    时间: 2012-3-10 22:50
应该是这样的吧...?
敌人名称(-nB X Y)
其中B指盗窃物品种类(i为物品,w为武器,a为防具)
      X指盗窃物品的ID
      Y指盗窃物品的数量
例:幽灵(-na 1 2) ,指在幽灵身上能够偷到防具类第1号物品,数量为2个...


作者: 流浪剑客    时间: 2012-3-10 23:12
kangxi0109 发表于 2012-3-10 22:50
应该是这样的吧...?
敌人名称(-nB X Y)
其中B指盗窃物品种类(i为物品,w为武器,a为防具)

-na啥意思?
作者: kangxi0109    时间: 2012-3-11 01:37
本帖最后由 kangxi0109 于 2012-3-11 01:45 编辑

“-n”照打,a为防具(i为物品,w为武器,a为防具)
即:-ni为物品,-nw为武器,-na为防具
注意,间隔用的空格要用半角的。
你试试不就行啦?

作者: 流浪剑客    时间: 2012-3-11 15:34
kangxi0109 发表于 2012-3-11 01:37
“-n”照打,a为防具(i为物品,w为武器,a为防具)
即:-ni为物品,-nw为武器,-na为防具
注意,间隔用的 ...

貌似n是普通的,r是特殊的,不知道啥区别。
作者: kangxi0109    时间: 2012-3-11 17:10
就字面来讲,normal 是指普通的,可引申为一般物品;rare是指特殊的,可引申为稀有物品
就这段脚本看:
  1. #盗み成功判定 アジリティが同一で50%、2倍で100%
  2. if rand(100) <= ((user.agi+0.01)/(self.agi+0.01))*100/2
  3. r_pos = self.rare_item
  4. #レアアイテム判定
  5. if !r_pos.nil? && rand(10) <= 1
  6. pos = r_pos
  7. end
复制代码
应该是盗窃成功的几率有所不同。
作者: 流浪剑客    时间: 2012-3-11 17:38
kangxi0109 发表于 2012-3-11 17:10
就字面来讲,normal 是指普通的,可引申为一般物品;rare是指特殊的,可引申为稀有物品
就这段脚本看:应该 ...

谢了。知道了。。
作者: 冷血冰狐    时间: 2014-1-13 01:18
kangxi0109 发表于 2012-3-11 17:10
就字面来讲,normal 是指普通的,可引申为一般物品;rare是指特殊的,可引申为稀有物品
就这段脚本看:应该 ...

我想问的指特殊的,是几率吗??偷窃这么久才没有偷到。郁闷了!




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1