设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
Project1 查看内容

仿网游中的武器设置 (武器攻击力波动)

2006-5-1 00:00| 发布者: 柳柳| 查看: 9902| 评论: 0|原作者: 灼眼的夏娜

摘要:    作者 灼眼的夏娜  版本与更新  2006年4月  相关网址 讨论贴点此进入  范例工程 不提供 脚本功能 这是一个模仿网络游戏中的武器设置等,次处只设置了武
 

 作者

灼眼的夏娜

 版本与更新

 2006年4月

 相关网址

讨论贴点此进入

 范例工程

不提供



脚本功能

这是一个模仿网络游戏中的武器设置等,次处只设置了武器的atk,其他的 什么属性需要的可以自行考虑,防具也如此。
该代码思路非常简单,只是提供一种方法。

使用方法

复制全部代码在main前插入即可~

注意:存档的时候一定要把$data_weapons 和 $data_classes一并存入记录,如果自己设置了防具的话 $data_armors也要存入~~

相关截图

 


 

 脚本内容

class Game_Party
 
 def gain_weapon(weapon_id, n)
   if weapon_id > 0
     # 商店购买 或 装备栏中卸下的武器不进行随机处理~
     if $scene.is_a?(Scene_Shop) or $scene.is_a?(Scene_Equip)
       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
     else
       # 随机浮动范围~★★★★★★★
       add_atk = rand(50)-25
       if add_atk == 0
         @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
       else
         now = 0
         # 判断数据库中是否已经有 相同属性的武器~
         for i in weapon_id...$data_weapons.size
           if $data_weapons[i].atk == $data_weapons[weapon_id].atk+add_atk and
            ($data_weapons[i].name.split('+')[0] == $data_weapons[weapon_id].name or $data_weapons[i].name.split('-')[0] == $data_weapons[weapon_id].name)
             now = i
             break
           end         end
         if now == 0
           # 无相同属性时则 重新生成~
           new_weapon = $data_weapons[weapon_id].clone
           new_weapon.id = $data_weapons.size
           if add_atk<0
             new_weapon.name = $data_weapons[weapon_id].name+"-"+add_atk.abs.to_s
           else
             new_weapon.name = $data_weapons[weapon_id].name+"+"+add_atk.abs.to_s
           end
           new_weapon.atk = $data_weapons[weapon_id].atk+add_atk
           $data_weapons.push(new_weapon)
           # 职业可装备武器数组更新~
           for i in 1...$data_classes.size
             if $data_classes[i].weapon_set.include?(weapon_id)
               $data_classes[i].weapon_set.push(new_weapon.id)
             end
           end
           # 增加武器~
           @weapons[new_weapon.id] = [[weapon_number(new_weapon.id) + n, 0].max, 99].min
         else
           # 有相同属性则直接 增加武器~
           @weapons[now] = [[weapon_number(now) + n, 0].max, 99].min
         end
       end
     end
   end
 end
 
 def lose_weapon(weapon_id, n)  
   if weapon_id > 0
     @weapons[weapon_id] = [[weapon_number(weapon_id) - n, 0].max, 99].min
   end
 end
 
end


 

脚本使用的通用说明

约定:本脚本来源于网络,任何人不得随意将本脚本应用于商业用途,如需转载,必须保留所有版权信息,如果是国内作者,最好征求作者同意——否则发生任何后果,66RPG不予负责。使用此脚本表示您默认接受上述约定。

说明:不同脚本之间、尤其是不同作者脚本之间会有冲突,本站会对已知脚本冲突进行简单说明。测试新脚本请下载本站提供的测试文件或者新建工程测试。脚本不要贪多,否则可能会互相冲突对您的游戏造成未知的影响。如果脚本内或者本站内提供了解释,请务必完全看完解释后再使用,如有问题,请到论坛讨论。


鲜花
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-26 12:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

返回顶部