| 
 
| 赞 | 7 |  
| VIP | 0 |  
| 好人卡 | 1 |  
| 积分 | 9 |  
| 经验 | 33876 |  
| 最后登录 | 2019-3-1 |  
| 在线时间 | 576 小时 |  
 Lv2.观梦者 
	梦石0 星屑878 在线时间576 小时注册时间2010-6-26帖子793 | 
| 
本帖最后由 sq333333 于 2017-7-31 08:49 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 请大神看看下面这两段脚本是哪里有问题吗?
 一.根据能力值做出分歧:
 BUG现象:当kind是2(mhp),4(hp),6(tp),12(luk)时,分歧无效(不管该能力值是多少都判断为同一个结果)。
 #--------------------------------------------------------------------------
 # ● 根据能力值分歧 data = [类别, 数值, 区别]
 #--------------------------------------------------------------------------
 def comparison_parameter(data)
 return true if data[0][0] == 0
 kind = data[0]
 num = data[1]
 select = data[2]
 case kind
 when  1 ; par = level
 when  2 ; par = mhp
 when  3 ; par = mmp
 when  4 ; par = hp
 when  5 ; par = mp
 when  6 ; par = tp
 when  7 ; par = atk
 when  8 ; par = self.def
 when  9 ; par = mat
 when 10 ; par = mdf
 when 11 ; par = agi
 when 12 ; par = luk
 end
 if num < 0
 case kind
 when  4 ; num = mhp * num / 100
 when  5 ; num = mmp * num / 100
 when  6 ; num = max_tp * num / 100
 end
 num = num.abs
 end
 case select
 when  0 ; return par == num
 when  1 ; return par < num
 when  2 ; return par > num
 end
 end
 
 #--------------------------------------------------------------------------
 # ● 条件分歧 (能力值)
 #--------------------------------------------------------------------------
 def nece_5
 targets = N03.get_targets(@action_data[1], @battler)
 return if targets == []
 member_num = @action_data[5]
 member_num = targets.size if @action_data[5] == 0 && targets.size > 1
 hit_count = 0
 for target in targets
 hit_count += 1 if target.comparison_parameter([@action_data[2],@action_data[3],@action_data[4]])
 end
 judgment = hit_count >= member_num
 action_diverging(judgment, @action_data[6])
 end
 
 二:根据技能做出分歧:
 BUG现象:这个分歧具体是根据什么做分歧条件的?
 #--------------------------------------------------------------------------
 # ● 条件分歧 (技能)
 #--------------------------------------------------------------------------
 def nece_4
 targets = N03.get_targets(@action_data[1], @battler)
 return if targets == []
 member_num = @action_data[4]
 member_num = targets.size if @action_data[4] == 0 && targets.size > 1
 hit_count = 0
 miss_count = 0
 for target in targets
 hit_count += 1 if target.skill_learn?($data_skills[@action_data[2]]) && target.skill_conditions_met?($data_skills[@action_data[2]])
 miss_count += 1 if !target.skill_learn?($data_skills[@action_data[2]]) or !target.skill_conditions_met?($data_skills[@action_data[2]])
 end
 case @action_data[3]
 when 0 ; judgment = hit_count >= member_num
 when 1 ; judgment = miss_count >= member_num
 end
 action_diverging(judgment, @action_data[5])
 end
 
 
 
 | 
 |