查看: 1784|回复: 6

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

  [复制链接]
梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
发表于 2007-12-25 20:36:03 | 显示全部楼层 |阅读模式

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

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

×
用的还是小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
版务信息:本贴由楼主自主结贴~
梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
发表于 2007-12-25 20:36:03 | 显示全部楼层 |阅读模式

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

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

×
用的还是小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
版务信息:本贴由楼主自主结贴~

剑·法

梦石
0
星屑
55
在线时间
12 小时
注册时间
2006-8-31
回帖
990
发表于 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
回复

使用道具 举报

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


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

使用道具 举报

剑·法

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

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

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

使用道具 举报

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
回帖
384
 楼主| 发表于 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
回复

使用道具 举报

剑·法

梦石
0
星屑
55
在线时间
12 小时
注册时间
2006-8-31
回帖
990
发表于 2007-12-25 23:47:20 | 显示全部楼层
$last_des = "#{s}个镶嵌孔"  

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部