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

Project1

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

小LIM的脚本:如何通过事件改变武器说明的后缀?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
跳转到指定楼层
1
发表于 2007-12-25 20:36:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
用的还是小LIM的打造属于自己的装备,在里面通过28、29、30三个属性来判断某武器最多有三个镶嵌孔,找NPC镶嵌一个就减去一个属性,这部分已经完成了。

现在想在NPC镶嵌完之后立即判断装备着的武器是否有28、29与30号属性,如果三个属性都没有就把$last_des这个有多少孔的描述去除,能不能做到?



我在脚本里的描述是:
  if @new_weapon.element_set.include?(28) and  @new_weapon.element_set.include?(29) and @new_weapon.element_set.include?(30)
    $last_des = "3个镶嵌孔"
  elsif @new_weapon.element_set.include?(28) and  @new_weapon.element_set.include?(29)
    $last_des = "2个镶嵌孔"
  elsif @new_weapon.element_set.include?(29) and  @new_weapon.element_set.include?(30)
    $last_des = "2个镶嵌孔"
  elsif @new_weapon.element_set.include?(28)
    $last_des = "1个镶嵌孔"
  elsif @new_weapon.element_set.include?(29)
    $last_des = "1个镶嵌孔"
  elsif @new_weapon.element_set.include?(30)
    $last_des = "1个镶嵌孔"
  end
  @new_weapon.description = $start_des + $first_des + $last_des + $font_color
end
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
2
 楼主| 发表于 2007-12-25 20:36:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
用的还是小LIM的打造属于自己的装备,在里面通过28、29、30三个属性来判断某武器最多有三个镶嵌孔,找NPC镶嵌一个就减去一个属性,这部分已经完成了。

现在想在NPC镶嵌完之后立即判断装备着的武器是否有28、29与30号属性,如果三个属性都没有就把$last_des这个有多少孔的描述去除,能不能做到?



我在脚本里的描述是:
  if @new_weapon.element_set.include?(28) and  @new_weapon.element_set.include?(29) and @new_weapon.element_set.include?(30)
    $last_des = "3个镶嵌孔"
  elsif @new_weapon.element_set.include?(28) and  @new_weapon.element_set.include?(29)
    $last_des = "2个镶嵌孔"
  elsif @new_weapon.element_set.include?(29) and  @new_weapon.element_set.include?(30)
    $last_des = "2个镶嵌孔"
  elsif @new_weapon.element_set.include?(28)
    $last_des = "1个镶嵌孔"
  elsif @new_weapon.element_set.include?(29)
    $last_des = "1个镶嵌孔"
  elsif @new_weapon.element_set.include?(30)
    $last_des = "1个镶嵌孔"
  end
  @new_weapon.description = $start_des + $first_des + $last_des + $font_color
end
版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

剑·法

梦石
0
星屑
55
在线时间
12 小时
注册时间
2006-8-31
帖子
1015
3
发表于 2007-12-25 22:09:19 | 只看该作者
LZ的脚本稍加整理,加上方法定义如下:

def set_element(arg)
  $last_des = ""
  s = (arg.find_all{|n| @new_weapon.element_set.include?(n)}).size
  $last_des = "#{s}个镶嵌孔" if s > 0
  @new_weapon.description = $start_des + $first_des + $last_des + $font_color
end

之后,在事件页利用方法所在类的全局实例的调用即可。

比如:$类.set_element([28,29,30])
复活?复活!XD
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
4
 楼主| 发表于 2007-12-25 22:55:38 | 只看该作者
不大懂。。。如何在事件页利用方法所在类的全局实例的调用啊??事件里的脚本该怎么写?{/gg}


比如在事件里判断1号角色装备着的武器是否有28、29与30号属性,如果三个属性都没有也就是那个s=0的情况下去除$last_des?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

剑·法

梦石
0
星屑
55
在线时间
12 小时
注册时间
2006-8-31
帖子
1015
5
发表于 2007-12-25 23:05:23 | 只看该作者
就是这个脚本所定义的类
如果,已经全局实例化了,在事件的脚本直接用全局变量调用相关方法就行了。

比如:类名如果为Weapon,且脚本中已经实例化了:
$aa = Weapon.new

那么如果想判断28,29,30属性
在事件页的脚本里就可以这样调用:
$aa.set_element([28,29,30])
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
复活?复活!XD
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
6
 楼主| 发表于 2007-12-25 23:18:38 | 只看该作者
我自己原来那一段删了,把脚本替换成这样,怎么本来装备有几个孔的描述部分再也没有了?
。。。。。。

。。。。。。
if @new_weapon.agi_plus != 0
    $first_des += "速度,"
  end
  if @new_weapon.dex_plus != 0
    $first_des += "灵巧,"
  end

def set_element(arg)
  $last_des = ""
  s = (arg.find_all{|n| @new_weapon.element_set.include?(n)}).size
  if s > 0
  $last_des = "#{s}个镶嵌孔"   
  end
  @new_weapon.description = $start_des + $first_des + $last_des + $font_color
  end
  @new_weapon.description = $start_des + $first_des + $last_des + $font_color
end
回复 支持 反对

使用道具 举报

Lv1.梦旅人

剑·法

梦石
0
星屑
55
在线时间
12 小时
注册时间
2006-8-31
帖子
1015
7
发表于 2007-12-25 23:47:20 | 只看该作者
$last_des = "#{s}个镶嵌孔"  

这句就是根据属性的多少判定有几个孔。
复活?复活!XD
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-20 18:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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