赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 441 |
最后登录 | 2012-12-16 |
在线时间 | 14 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 14 小时
- 注册时间
- 2011-4-1
- 帖子
- 13
|
7楼
楼主 |
发表于 2012-12-11 21:32:48
|
只看该作者
本帖最后由 rty0511 于 2012-12-11 21:43 编辑
@电子最终龙
电子最终龙 发表于 2012-12-6 22:35
1. def是定義方法的語句,這段的方法是提供給下面的判定調用的,無須理會
2. @是局部變量的標籤,帶@的變量 ...
我把这部分放在了刷新自动状态
==========================================
# 刷新自动状态
update_auto_state(nil, $data_armors[@armor1_id])
update_auto_state(nil, $data_armors[@armor2_id])
update_auto_state(nil, $data_armors[@armor3_id])
update_auto_state(nil, $data_armors[@armor4_id])
end
===========================================
的后面
然后运行的时候提示
=========================
脚本‘Game__Actor’的102行 发生了NameError。
undefined local variable or method 'old_armor' for Game_Actor:Class
=========================
是不是说old_game这个变量要先声明?
我自己改了下,写进去的是这样
=========================
def eq_set_sum(state_id)
armor1 = $data_armors[@armor1_id]
armor2 = $data_armors[@armor2_id]
armor3 = $data_armors[@armor3_id]
armor4 = $data_armors[@armor4_id]
e2 = armor1 != nil ? (armor1.state_id == 23 ? 1 : 0) : 0
e3 = armor2 != nil ? (armor2.state_id == 23 ? 1 : 0) : 0
e4 = armor3 != nil ? (armor3.state_id == 23 ? 1 : 0) : 0
e5 = armor4 != nil ? (armor4.state_id == 23 ? 1 : 0) : 0
return e2+e3+e4+e5
end
#判定和去除套裝效果:
def old_armor(state_id)
if old_armor.state_id == 23 # n為“XX套裝”自動屬性的序號
# 統計全身套裝件數
set_num = eq_set_num(old_armor.state_id)
# 根據自定的多層套裝效果做計算
case set_num
when 2
# 去除兩件效果
add_state(20)
when 3
# 去除三件效果
add_state(21)
end
end
end
=========================
但这样进去穿上一件装备显示有自动状态,但穿两件还是只有自动状态。。。
是不是 when 2
# 去除兩件效果
add_state(20)
这里要写明是那个角色?怎么写捏? |
|