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

Project1

 找回密码
 注册会员
搜索
查看: 2498|回复: 6
打印 上一主题 下一主题

[RMVA发布] 【不是创意的创意】装备所需能力要求

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

跳转到指定楼层
1
发表于 2015-6-20 00:13:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
首先还是惯例···需要一个新方法(参考[url
然后是设定部分
然后是处理部分
处理部分2

建议与https://rpg.blue/forum.php?mod=v ... p;page=1#pid2609056配套使用
@希忆 @寒冷魔王 @精灵使者 @VIPArcher @876加几 @三途亚梦 的看法?
目前该脚本不对装备做等级限制

评分

参与人数 1星屑 +5 收起 理由
希忆 + 5

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png

Lv3.寻梦者

梦石
0
星屑
1024
在线时间
1389 小时
注册时间
2010-8-9
帖子
3471
2
发表于 2015-6-20 00:20:54 | 只看该作者
本帖最后由 寒冷魔王 于 2015-6-20 00:22 编辑

上次没提到,但是以前和你说了
  1. (-999..999).each{|i|@equiprepeat[i]||=0}
复制代码
像这种,最好使用数组的迭代
  1. @equiprepeat = Array.new(2000,0)
复制代码
如果你不赋初值,用Hash还好说,但是既然要全写上,那么Array显然更好一些

点评

······这也可以?  发表于 2015-6-20 14:35
甚至你可以def [],这样虽然你是在用Array,但是感觉就像你现在在用的Hash一样  发表于 2015-6-20 14:18
或者,比较普遍的做法是,写个专有方法。array.get(-2)是2号武器。而不必立绘看不到的地方是如何储存的  发表于 2015-6-20 14:17
每次调用如array[id(-2)]就表示武器2  发表于 2015-6-20 14:15
def id(i); return (i<0)?-i : i+1000; end  发表于 2015-6-20 14:14
SRPG on RM 项目研发组 正式成立。目前SRPG·RMVA系统进度88.8%。SMRC Kernel 进度90%
↖(^ω^)↗热烈庆祝~SMRC Ver5.1 SRPG战棋地图移动范围生成脚本正式发布~~
-----------------------------------------------------------------------------------------
SMRC具有高性能、高兼容、定制自由、使用方便的特点。
1.性能,100移动力轻松算出,无压力;
2.兼容,RGSS1-3通吃,效率保证;
3.支持移动形状定制,支持4方位、6方位、正方形或其他任意有移动规律的形状;
4.可以充当高性能寻路来使用。
【链接点此】
-----------------------------------------------------------------------------------------
【2016/01/06更新 | 改版】RM脚本编辑器Gemini
-----------------------------------------------------------------------------------------
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
185 小时
注册时间
2014-9-4
帖子
82
3
发表于 2015-6-20 00:59:42 | 只看该作者
本帖最后由 希忆 于 2015-6-20 01:05 编辑

说真的,无法吐槽equiprepeat 的写法了。Hash.new(0)!!!!!!!!
绕来绕去的,各种走弯路。想想还是帮你重构一下,结果比我想象的少。
返回值是一个反应装备数量的哈希表,(负数武器id|正数防具id) => 装备数量
没错的话,虽然未测试,但我觉得应该和你的代码具有相同的作用。
  1. #写在Game_Actor里更好吧。@equips可是Game_Actors里的
  2. #attr_writer不需要。没看见你在后续的代码里修改@equiprepeat的值
  3. class Game_Actor
  4.   def equiprepeat
  5.     @equiprepeat=Hash.new(0)#hash表的默认值设定为零就行了,你那一个1999次循环无法直视。。天啊。。
  6.     equips.each do |e|  # Game_Actors#equips 方法,返回当前装备实例的数组,详见默认173,比@equips省心多了
  7.       if e.is_a?(RPG::Weapon)
  8.         @equiprepeat[-e.id] += 1
  9.       elsif e.is_a?(RPG::Armor)
  10.         @equiprepeat[e.id] += 1
  11.       end
  12.     end
  13.     @equiprepeat #最后一行返回可以省下return少打几个字母
  14.   end
  15. end
复制代码
对于后面的部分,没想法【图书馆那个已经满足我的需求了】【你这个类dota装备栏扩展性似乎还不错,装第二个同样的装备要求更高属性挺有创意的】

点评

具体的设置构思在6楼···那么窗口就拜托你啦~  发表于 2015-6-21 10:14
可装备技能啊,那个界面就挺不错的;我倒是不介意帮你写一个练习练习,#不过水平不高,不一定能写得很好就是了。  发表于 2015-6-21 10:08
可装备技能啊,那个界面就挺不错的;我倒是不介意帮你写一个练习练习,#不过水平不高,不一定能写得很好就是了。  发表于 2015-6-21 10:08
介意弄一个配套的窗口部分吗?如果可以的话我明天会把设置的部分发出来  发表于 2015-6-20 23:59
话说放假你有空吗?表示在尝试http://rm.66rpg.com/forum.php?mod=viewthread&tid=376363&extra=page%3D2%26filter%3Dtypeid%26typeid%3D368%26typeid%3D368的仿制,但是楼主窗口苦手···   发表于 2015-6-20 23:59
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
76
在线时间
1379 小时
注册时间
2012-7-5
帖子
1698

开拓者

4
发表于 2015-6-20 07:33:05 | 只看该作者

点评

然而还有VXwww  发表于 2015-6-20 07:50
作为xp版补充吧  发表于 2015-6-20 07:35

  -fk: -azogi:
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

5
 楼主| 发表于 2015-6-20 08:20:03 | 只看该作者
希忆 发表于 2015-6-19 07:59
说真的,无法吐槽equiprepeat 的写法了。Hash.new(0)!!!!!!!!
绕来绕去的,各种走弯路。想想还是帮你重构一 ...

因为出现了DOTA的装备方式···所以同样的脚本会有更多的功能~
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

6
 楼主| 发表于 2015-6-21 10:13:58 | 只看该作者
本帖最后由 chd114 于 2015-6-20 20:04 编辑

Data.zip (239.73 KB, 下载次数: 45)
  1. =begin
  2. 给一个技能增加技能位与COST占用
  3. =end
  4. module Chd114 end
  5. module Chd114::Skill
  6.   Cost = {#占用Cost
  7.   #82=>5,
  8.   127=>3,
  9.   }
  10. end
  11. (1..999).each{|i|Chd114::Skill::Cost[i]||=1}
  12. #Chd114::Skill::Cost[i]
复制代码
RUBY 代码复制
  1. class Game_Battler#Game_Actor
  2.   #--------------------------------------------------------------------------
  3.   # ● 实例变量
  4.   #--------------------------------------------------------------------------
  5. #seat反正一个技能占一个位置···所以module里面不设置
  6.   attr_writer   :equiping_skills     # 角色当前装备的技能
  7.   attr_writer   :skill_seat          # 角色占用技能位数
  8.   attr_writer   :skill_cost          # 角色占用技能cost
  9.   attr_writer   :max_skill_seat      # 角色最大技能位数
  10.   attr_writer   :max_skill_cost      # 角色最大技能cost
  11.   alias skill_cost_initialize initialize
  12.   def initialize
  13.     skill_cost_initialize
  14.     @equiping_skills||=[]
  15.     @skill_seat||=0
  16.     @skill_cost||=0
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ○ 角色已经装备技能
  20.   #--------------------------------------------------------------------------
  21.   def equiping_skills
  22.     @equiping_skills||=[]
  23.     return @equiping_skills
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ○ 角色最大占用技能位数
  27.   #--------------------------------------------------------------------------
  28.   def max_skill_seat
  29.     @max_skill_seat||=0
  30.     return @max_skill_seat
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ○ 角色剩余技能位数(=max_skill_seat-equiping_skills里面的所有技能的seat)
  34.   #--------------------------------------------------------------------------
  35.   def skill_seat
  36.     cd=Chd114::Skill::Cd[skill_id]
  37.     equiprepeat.each{|k,v|
  38.     if Chd114::Equip::SkillSeat[k]!=nil
  39.       cddouble=v
  40.     Chd114::Equip::SkillSeat[k].each{|k,v|cd+=v*cddouble}
  41.     end
  42.     }
  43.     cd=0 if cd<0
  44.     cd
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ○ 角色最大占用技能cost
  48.   #--------------------------------------------------------------------------
  49.   def max_skill_cost
  50.     @max_skill_cost||=0
  51.     return @max_skill_cost
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ○ 角色剩余技能cost(=max_skill_seat-equiping_skills里面的所有技能的cost)
  55.   #--------------------------------------------------------------------------
  56.   def skill_cost
  57.     cd=Chd114::Skill::Times[skill_id][0]
  58.     equiprepeat.each{|k,v|
  59.     if Chd114::Equip::SkillCost[k]!=nil
  60.       cddouble=v
  61.     Chd114::Equip::SkillCost[k].each{|k,v|cd+=v*cddouble}
  62.     end
  63.     }
  64.     cd=0 if cd<0
  65.     cd
  66.   end
  67. end

点评

我晚上看看试试,裸写界面,蛤蛤说实在的有点虚  发表于 2015-6-21 19:34
此楼已编辑···附件你看一下吧也许有一点点帮助···  发表于 2015-6-21 13:05
也许我该传工程···这样看着应该方便一点点···  发表于 2015-6-21 13:04
SkillSeat不需要啊···因为技能本来就是一个占一个位置  发表于 2015-6-21 13:03
Skill::Cd Equip::SkillSeat Equip::SkillCost 呢?  发表于 2015-6-21 12:35
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

矿工

梦石
0
星屑
134
在线时间
898 小时
注册时间
2012-10-5
帖子
1535
7
发表于 2015-6-21 15:37:32 | 只看该作者
本帖最后由 876加几 于 2015-6-21 15:43 编辑

抱歉,我无法发表自己的看法,因为我是XP党(大雾)!
(不过,很赞成你的创意(大雾),我也在XP做过类似的,如:装备等级限)

点评

所以我们可以慢慢来~  发表于 2015-6-25 21:22
@kururu伦家要的不止那个  发表于 2015-6-25 21:17
@chd114 这可能是一个大工程,而且我是毕业班的,任务有点重,等7月3日才有可能开始实现。  发表于 2015-6-25 20:00
四楼的四楼是我写的XP版= =  发表于 2015-6-25 09:14
有人想要XP的···要不然你来做XP版本?0w0  发表于 2015-6-21 22:49
呃,发糖贴好冷清呀!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-21 06:55

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表