Project1
标题:
小LIM的脚本:如何通过事件改变武器说明的后缀?
[打印本页]
作者:
stella
时间:
2007-12-25 20:36
标题:
小LIM的脚本:如何通过事件改变武器说明的后缀?
用的还是小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 [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
stella
时间:
2007-12-25 20:36
标题:
小LIM的脚本:如何通过事件改变武器说明的后缀?
用的还是小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 [LINE]1,#dddddd[/LINE]
版务信息:本贴由楼主自主结贴~
作者:
黑撒旦
时间:
2007-12-25 22:09
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])
作者:
stella
时间:
2007-12-25 22:55
不大懂。。。如何在事件页利用方法所在类的全局实例的调用啊??事件里的脚本该怎么写?{/gg}
比如在事件里判断1号角色装备着的武器是否有28、29与30号属性,如果三个属性都没有也就是那个s=0的情况下去除$last_des?
作者:
黑撒旦
时间:
2007-12-25 23:05
就是这个脚本所定义的类
如果,已经全局实例化了,在事件的脚本直接用全局变量调用相关方法就行了。
比如:类名如果为Weapon,且脚本中已经实例化了:
$aa = Weapon.new
那么如果想判断28,29,30属性
在事件页的脚本里就可以这样调用:
$aa.set_element([28,29,30]) [LINE]1,#dddddd[/LINE]
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者:
stella
时间:
2007-12-25 23:18
我自己原来那一段删了,把脚本替换成这样,怎么本来装备有几个孔的描述部分再也没有了?
。。。。。。
。。。。。。
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
作者:
黑撒旦
时间:
2007-12-25 23:47
$last_des = "#{s}个镶嵌孔"
这句就是根据属性的多少判定有几个孔。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1