设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2080|回复: 7
打印 上一主题 下一主题

[已经解决] 战斗特殊效果中这个偷窃功能怎么设置

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
跳转到指定楼层
1
发表于 2012-3-10 21:25:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#===================================================
#ノーマルアイテムの指定 
#エネミーネームに -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扱い。
#===================================================
这段啥意思。

Lv3.寻梦者

梦石
0
星屑
2490
在线时间
1556 小时
注册时间
2010-10-22
帖子
1047
2
发表于 2012-3-10 22:50:46 | 只看该作者
应该是这样的吧...?
敌人名称(-nB X Y)
其中B指盗窃物品种类(i为物品,w为武器,a为防具)
      X指盗窃物品的ID
      Y指盗窃物品的数量
例:幽灵(-na 1 2) ,指在幽灵身上能够偷到防具类第1号物品,数量为2个...

【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
3
 楼主| 发表于 2012-3-10 23:12:23 | 只看该作者
kangxi0109 发表于 2012-3-10 22:50
应该是这样的吧...?
敌人名称(-nB X Y)
其中B指盗窃物品种类(i为物品,w为武器,a为防具)

-na啥意思?
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2490
在线时间
1556 小时
注册时间
2010-10-22
帖子
1047
4
发表于 2012-3-11 01:37:24 | 只看该作者
本帖最后由 kangxi0109 于 2012-3-11 01:45 编辑

“-n”照打,a为防具(i为物品,w为武器,a为防具)
即:-ni为物品,-nw为武器,-na为防具
注意,间隔用的空格要用半角的。
你试试不就行啦?
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
5
 楼主| 发表于 2012-3-11 15:34:16 | 只看该作者
kangxi0109 发表于 2012-3-11 01:37
“-n”照打,a为防具(i为物品,w为武器,a为防具)
即:-ni为物品,-nw为武器,-na为防具
注意,间隔用的 ...

貌似n是普通的,r是特殊的,不知道啥区别。

点评

概率不同  发表于 2012-3-11 17:11
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2490
在线时间
1556 小时
注册时间
2010-10-22
帖子
1047
6
发表于 2012-3-11 17:10:50 | 只看该作者
就字面来讲,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
复制代码
应该是盗窃成功的几率有所不同。
【2022.06.03】原本以为已经不可能再找回来的东西重新找回来了,原本一直念念不忘的坑终于再一次拿起铲子了。一别竟近10年,你好,我的世界我的梦。
【不可阻挡】异元-地劫黎明
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
138 小时
注册时间
2010-6-20
帖子
46
7
 楼主| 发表于 2012-3-11 17:38:58 | 只看该作者
kangxi0109 发表于 2012-3-11 17:10
就字面来讲,normal 是指普通的,可引申为一般物品;rare是指特殊的,可引申为稀有物品
就这段脚本看:应该 ...

谢了。知道了。。
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
802
在线时间
246 小时
注册时间
2006-11-26
帖子
431
8
发表于 2014-1-13 01:18:49 | 只看该作者
kangxi0109 发表于 2012-3-11 17:10
就字面来讲,normal 是指普通的,可引申为一般物品;rare是指特殊的,可引申为稀有物品
就这段脚本看:应该 ...

我想问的指特殊的,是几率吗??偷窃这么久才没有偷到。郁闷了!
点击陆丰群侠传叁正式发布
陆丰群侠传QQ交流群。
584128354
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-30 15:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表