Project1

标题: 关于装备强化脚本的一点问题 [打印本页]

作者: 007007114    时间: 2012-9-17 08:59
标题: 关于装备强化脚本的一点问题
在脚本的原设定中,强化成功后装备的附加四项主属性也会变化,如果原来装备没有附加属性也会附加上四条主属性。
我想修改为强化成功后装备原本有的属性被加强,不生成新的属性,原脚本和修改过的脚本如下,但是修改后的实际效果是强化成功后所有附加属性都没了。。。==求问
修改脚本:
   #---------------------------------------------------------------------
    # ● 生成新的數據
    #---------------------------------------------------------------------
    new_str = add_str + main_str if main_str > 0 # 新的str_plus
    new_str = main_str if main_str = 0
    new_dex = add_dex + main_dex if main_dex > 0 # 新的dex_plus
    new_dex = main_dex if main_dex = 0
    new_agi = add_agi + main_agi if main_agi > 0 # 新的agi_plus
    new_agi = main_agi if main_agi = 0
    new_int = add_int + main_int if main_int > 0 # 新的int_plus
    new_int = main_dex if main_int = 0
    new_pdef = add_pdef + main_pdef if main_pdef > 0 # 新的物防
    new_pdef = main_pdef if main_pdef = 0
    new_mdef = add_mdef + main_mdef if main_mdef > 0 # 新的魔防
    new_mdef = main_mdef if main_mdef = 0
    new_name = main_name
    new_des = main_des
    new_element = main_element
    new_atk = add_atk + main_atk if type == "weapon"


原脚本:
    #---------------------------------------------------------------------
    # ● 失敗/成功 的情况下,修正等級并取得提升/下降 值
    #---------------------------------------------------------------------
    case result
    when "failture"
      new_lv = lv - 1
      add_atk = -@minus["common"]["atk"]
      add_pdef = -@minus["common"]["pdef"]
      add_mdef = -@minus["common"]["mdef"]
      add_str = -@minus["common"]["str"]
      add_dex = -@minus["common"]["dex"]
      add_agi = -@minus["common"]["agi"]
      add_int = -@minus["common"]["int"]
      deduction = -@minus["common"]["deduction"] if @switches["deduct"]
    when "success"
      new_lv = lv + 1
      add_atk = @plus["common"]["atk"]
      add_pdef = @plus["common"]["pdef"]
      add_mdef = @plus["common"]["mdef"]
      add_str = @plus["common"]["str"]
      add_dex = @plus["common"]["dex"]
      add_agi = @plus["common"]["agi"]
      add_int = @plus["common"]["int"]
      deduction = @plus["common"]["deduction"] if @switches["deduct"]
    end
    #---------------------------------------------------------------------
    # ● 處理隨機折損
    #---------------------------------------------------------------------
    if @switches["deduct"]
      add_atk -= rand(deduction * 2)
      add_pdef -= rand(deduction)
      add_mdef -= rand(deduction)
      add_str -= rand(deduction)
      add_dex -= rand(deduction)
      add_agi -= rand(deduction)
      add_int -= rand(deduction)
    end
    #---------------------------------------------------------------------
    # ● 取得原生數據
    #---------------------------------------------------------------------
    case type
    when "weapon"
      equipment = $data_weapons[id]
      main_atk = equipment.atk
      main_element = equipment.element_set
      main_state = equipment.plus_state_set
    when "armor"
      equipment = $data_armors[id]
      main_state = equipment.guard_state_set # 防禦狀態組
      main_element = equipment.guard_element_set # 防禦屬性組
    end
    main_pdef = equipment.pdef
    main_mdef = equipment.mdef
    main_str = equipment.str_plus
    main_dex = equipment.dex_plus
    main_agi = equipment.agi_plus
    main_int = equipment.int_plus
    main_name = equipment.name
    main_des = equipment.description
    #---------------------------------------------------------------------
    # ● 生成新的數據
    #---------------------------------------------------------------------
    new_str = add_str + main_str# 新的str_plus
    new_dex = add_dex + main_dex # 新的dex_plus
    new_agi = add_agi + main_agi # 新的agi_plus
    new_int = add_int + main_int # 新的int_plus
    new_pdef = add_pdef + main_pdef # 新的物防
    new_mdef = add_mdef + main_mdef # 新的魔防
    new_name = main_name
    new_des = main_des
    new_element = main_element
    new_atk = add_atk + main_atk if type == "weapon"

dsu_plus_rewardpost_czw
作者: 007007114    时间: 2012-9-20 10:42
求问啊求问啊。。已经沉了好几个帖子了。。。
作者: 七夕小雨    时间: 2012-9-20 14:42
把if条件去了试试看
作者: 007007114    时间: 2012-9-20 22:27
七夕小雨 发表于 2012-9-20 14:42
把if条件去了试试看

if 条件去了就是原来脚本。。。会出现一旦强化的话 没有属性的装备也会产生4个属性
作者: 七夕小雨    时间: 2012-9-21 09:04
但是你得if条件好奇怪啊~~难道不应该是 new_agi = add_agi + main_agi if add_agi > 0 嘛?
为什么要写成new_str = add_str + main_str if main_str > 0 ?
作者: 007007114    时间: 2012-9-22 12:27
七夕小雨 发表于 2012-9-21 09:04
但是你得if条件好奇怪啊~~难道不应该是 new_agi = add_agi + main_agi if add_agi > 0 嘛?
为什么要写成ne ...

因为如果去掉if的话 原来装备比如没有力量附加 根据没有if的算法也会产生力量属性。。。我就是想说如果一开始有main_str再加,没有就不加了。 产生的问题是main_str貌似不是歌数值?因为按照我写的脚本,实际效果是原来有的属性一旦强化全部都清零了。。。

作者: chd114    时间: 2012-9-22 15:50
七夕小雨 发表于 2012-9-21 09:04
但是你得if条件好奇怪啊~~难道不应该是 new_agi = add_agi + main_agi if add_agi > 0 嘛?
为什么要写成ne ...

他的意思是说这个if是判断有没有附加属性的···如果附加属性大于0装备就有附加属性,如果没有则是???,如果去掉判断就会乱套···
作者: yagami    时间: 2012-9-22 23:12
new_str = main_str if main_str = 0
问题在这里
1个等号是赋值 要表达等于0 要2个等号
new_str = main_str if main_str == 0 你改成这样试试看

作者: 007007114    时间: 2012-9-23 08:15
yagami 发表于 2012-9-22 23:12
new_str = main_str if main_str = 0
问题在这里
1个等号是赋值 要表达等于0 要2个等号

成功啦!╮(╯▽╰)╭自学的三脚猫功夫果然漏洞颇多。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1