查看: 1683|回复: 8

[已经解决] 关于装备强化脚本的一点问题

[复制链接]
梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-9-6
回帖
25
发表于 2012-9-17 08:59:13 | 显示全部楼层 |阅读模式

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

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

×
在脚本的原设定中,强化成功后装备的附加四项主属性也会变化,如果原来装备没有附加属性也会附加上四条主属性。
我想修改为强化成功后装备原本有的属性被加强,不生成新的属性,原脚本和修改过的脚本如下,但是修改后的实际效果是强化成功后所有附加属性都没了。。。==求问
修改脚本:
   #---------------------------------------------------------------------
    # ● 生成新的數據
    #---------------------------------------------------------------------
    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"

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-9-6
回帖
25
 楼主| 发表于 2012-9-20 10:42:25 | 显示全部楼层
求问啊求问啊。。已经沉了好几个帖子了。。。
回复

使用道具 举报

昨日的黄昏

梦石
0
星屑
1005
在线时间
937 小时
注册时间
2006-11-5
回帖
4020

第2届短篇游戏比赛季军第3届短篇游戏大赛小游戏及其他组季军

发表于 2012-9-20 14:42:33 | 显示全部楼层
把if条件去了试试看
[url=http://weibo.com/2238291690?s=6uyXnP]
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-9-6
回帖
25
 楼主| 发表于 2012-9-20 22:27:40 | 显示全部楼层
七夕小雨 发表于 2012-9-20 14:42
把if条件去了试试看

if 条件去了就是原来脚本。。。会出现一旦强化的话 没有属性的装备也会产生4个属性
回复

使用道具 举报

昨日的黄昏

梦石
0
星屑
1005
在线时间
937 小时
注册时间
2006-11-5
回帖
4020

第2届短篇游戏比赛季军第3届短篇游戏大赛小游戏及其他组季军

发表于 2012-9-21 09:04:31 | 显示全部楼层
但是你得if条件好奇怪啊~~难道不应该是 new_agi = add_agi + main_agi if add_agi > 0 嘛?
为什么要写成new_str = add_str + main_str if main_str > 0 ?
[url=http://weibo.com/2238291690?s=6uyXnP]
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-9-6
回帖
25
 楼主| 发表于 2012-9-22 12:27:56 | 显示全部楼层
七夕小雨 发表于 2012-9-21 09:04
但是你得if条件好奇怪啊~~难道不应该是 new_agi = add_agi + main_agi if add_agi > 0 嘛?
为什么要写成ne ...

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

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2012-9-22 15:50:11 | 显示全部楼层
七夕小雨 发表于 2012-9-21 09:04
但是你得if条件好奇怪啊~~难道不应该是 new_agi = add_agi + main_agi if add_agi > 0 嘛?
为什么要写成ne ...

他的意思是说这个if是判断有没有附加属性的···如果附加属性大于0装备就有附加属性,如果没有则是???,如果去掉判断就会乱套···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
3703
在线时间
3081 小时
注册时间
2011-11-17
回帖
943
发表于 2012-9-22 23:12:01 | 显示全部楼层
new_str = main_str if main_str = 0
问题在这里
1个等号是赋值 要表达等于0 要2个等号
new_str = main_str if main_str == 0 你改成这样试试看
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2012-9-6
回帖
25
 楼主| 发表于 2012-9-23 08:15:30 | 显示全部楼层
yagami 发表于 2012-9-22 23:12
new_str = main_str if main_str = 0
问题在这里
1个等号是赋值 要表达等于0 要2个等号

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

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部