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

Project1

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

[已经过期] 怎么简单做到同一把武器不同人或职业装备会有不同效果?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
跳转到指定楼层
1
发表于 2015-1-15 23:59:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
比如一把短刀给战士装备仅仅是攻击力提升,给盗贼装备就会有速度提升的效果!
一把大剑战士装备就会攻击上升,盗贼装备就会速度下降!

Lv1.梦旅人 (暗夜天使)

梦石
0
星屑
55
在线时间
473 小时
注册时间
2014-5-28
帖子
419
2
发表于 2015-1-16 04:21:50 | 只看该作者
本帖最后由 DivineCrow 于 2015-1-16 04:22 编辑

亚梦梦回答过个类似的问题  @三途亚梦
https://rpg.blue/thread-370979-1-27.html

我觉得可以按照这个  然后把增减技能改成添加状态

不过缺点就是添加的东西在装备属性里面不会显示   (也可以算是优点?

点评

最多是个伪BUG···我发的这个可以···但是要一个个设置的话还是有点蛋疼···  发表于 2015-1-17 17:41
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22948
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
3
发表于 2015-1-16 09:04:49 | 只看该作者
本帖最后由 tseyik 于 2015-1-16 09:12 编辑

1:為各職業/角色設定一些自動發動的專用状態或技能(能力増減)
2:再設定職業/角色,裝備某些裝備/裝備類那些專用状態或技能就自動有効
大約就是這様
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

4
发表于 2015-1-17 17:37:24 | 只看该作者
  1. class Game_Actor
  2.   alias_method :c4_20150117, :param_plus
  3.   def param_plus(id)
  4.     old = c4_20150117(id)
  5.     for i in 0...equips.size
  6.       if equips[i]!=nil
  7.         if id == 3#物理防御
  8.           if class_id==8#职业是盗贼
  9.             old-=equips[i].params[3]/10 if equips[i].etype_id==1#则盾牌增加的物理防御减少10%
  10.           end
  11.         end
  12.       end
  13.     end
  14.     old
  15.   end
  16. end
复制代码
参照这个修改吧?

点评

关于这代码能不能详细说明一下呢?下面给出一些疑问!!  发表于 2015-1-17 23:23
if class_id==8的class_id改成actor_id就是8号角色  发表于 2015-1-17 22:15
哦!另外在问一下,如果不是职业,而是人物角色不同使用武器效果不同的话要怎么改?(虽然可以用人物固定职业来回避这问题,不过还是想问...  发表于 2015-1-17 22:10
直接插入  发表于 2015-1-17 22:05
谢谢啊!是要修改原本的么,还是新建一个脚本插入进去?  发表于 2015-1-17 21:59

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 我很赞同

查看全部评分

[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
5
 楼主| 发表于 2015-1-17 23:22:26 | 只看该作者

整个代码看起来好像是,是符合条件时,修改数据库中指定装备的属性啊。哪不是装备第一人是数值改变了,取下来后装备不是已经是修改后的数值了么?第二人装备时不就是用被修改后的数值再计算么??
class Game_Actor
  alias_method :c4_20150117, :param_plus
  def param_plus(id)
    old = c4_20150117(id)
    for i in 0...equips.size
      if equips[i]!=nil
        if id == 3#物理防御  (id==3是数据库中3号位置的装备么?是怎么判断这ID武器还是防具的?)
          if class_id==8#职业是盗贼
            old-=equips[i].params[3]/10 if equips[i].etype_id==1#则盾牌增加的物理防御减少10%                                   
                               (params[3]/10要怎么理解?看起来是什么数值除以10的样子)
                                                                    (etype是装备类型吧!1是防具?哪2之后都是什么?)
          end
        end
      end
    end
    old
  end
end

点评

代码没有对数据库做出任何修改  发表于 2015-1-18 07:27
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

6
发表于 2015-1-18 09:28:58 | 只看该作者
雷影 发表于 2015-1-17 06:22
整个代码看起来好像是,是符合条件时,修改数据库中指定装备的属性啊。哪不是装备第一人是数值改变了,取 ...

id和param()的3都指物理防御···Game_BattlerBase里面有具体的设定,0为MHP、1为MMP、2为物理攻击···etype_id是装备的位置,p一下角色的equip_slots就会看到二刀流角色的装备位置是[0,0,2,3,4]而普通角色装备位置是[0,1,2,3,4]1默认是盾牌···2、3、4分别对应头盔、铠甲、饰品

点评

自己尝试了一下!在下面能帮看看这段代码能改进的地方么?  发表于 2015-1-18 15:27
谢谢啊!!到这一步,这系统基本上是成型了!剩下就是研究一下怎么在装备的时候添加技能和BUFF,取下的时候就取消的问题了!  发表于 2015-1-18 15:23
if equips[i].id==1#ID为1的武器或者防具,需要把这一句放在if equips[i]!=nil下面  发表于 2015-1-18 14:14
好了!可新问题又出来了!这个设定是对所有武器都有效的啊!1,2号角色装备小刀,匕首都有同样比例的数值修正啊!想具体区分到单个武器上怎么做  发表于 2015-1-18 14:04
分开处理,用新的条件分歧if id == 5什么的···  发表于 2015-1-18 13:04
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

7
发表于 2015-1-18 12:01:59 | 只看该作者
chd114 发表于 2015-1-17 16:28
id和param()的3都指物理防御···Game_BattlerBase里面有具体的设定,0为MHP、1为MMP、2为物理攻击·· ...
点评


雷影  了解了!十分感谢,没有问题了。  发表于 4 分钟前

@taroxd @VIPArcher 问题解决···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7436
在线时间
1098 小时
注册时间
2006-7-18
帖子
569
8
 楼主| 发表于 2015-1-18 15:26:16 | 只看该作者
能不能帮看看,怎么优化这段代码吗??
#武器装备因职业,人物不同产生不同效果的设定
#id和param()的3都指物理防御···Game_BattlerBase里面有具体的设定,
#0为MHP、1为MMP、2为物理攻击···etype_id是装备的位置,
#p一下角色的equip_slots就会看到二刀流角色的装备位置是[0,0,2,3,4]而普通角色装备位置是[0,1,2,3,4]1默认是盾牌···2、3、4分别对应头盔、铠甲、饰品
#actor_id就是角色ID,class_id是职业ID
class Game_Actor
  alias_method :c4_20150117, :param_plus
  def param_plus(id)
    old = c4_20150117(id)
    for i in 0...equips.size  
      if equips[i]!=nil
        if equips[i].id==1 #ID为武器或者防具数据库里编号
          if id == 2 #处理物理攻击力的变化(当武器是1,2号主角装备时)
            if actor_id==1 #1号主角
              old+=equips[i].params[2]/10  if equips[i].etype_id==0#获得10%攻击力加成           
              end
            if actor_id==2 #2号主角
              old+=equips[i].params[2]/2 if equips[i].etype_id==0#获得50%攻击力加成
            end
          end
          if id == 6 #处理敏捷值的变化
            if actor_id==1#1号主角
              old+=equips[i].params[6]/10  if equips[i].etype_id==0#获得10%敏捷加成           
              end
            if actor_id==2#2号主角
              old+=equips[i].params[6]/2 if equips[i].etype_id==0#获得50%敏捷加成
            end
          end
        end
      end
    end
    old
  end
end
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

9
发表于 2015-1-18 16:19:58 | 只看该作者
雷影 发表于 2015-1-17 22:26
能不能帮看看,怎么优化这段代码吗??
#武器装备因职业,人物不同产生不同效果的设定
#id和param()的3都指 ...
  1. if actor_id==1#1号主角
  2.    old+=equips[i].params[6]/10  if equips[i].etype_id==0#获得10%敏捷加成           
  3. end
复制代码
改成
  1.    old+=equips[i].params[6]/10  if equips[i].etype_id==0 and actor_id==1
复制代码
可以省2行···

点评

···重新开帖行吗···  发表于 2015-1-23 09:54
我这不是想省代码么,如果能以最少的方式达成效果就最好了  发表于 2015-1-23 03:08
如果你要加技能可以选择用论坛内现有的其他脚本···  发表于 2015-1-22 21:33
.added_skill_types.push(X)添加技能似乎是这一段!不知道要怎么写if  发表于 2015-1-18 17:17
这是给角色附加BUFF···  发表于 2015-1-18 17:16
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

10
发表于 2015-1-23 09:55:41 | 只看该作者
VA的数据库设置本来就有装备武器后习得技能的特性···只要你能用那个类型的技能就可以···

点评

我这不是想,不同人装备获得不同技能么!战士装备获得攻击技能,法师装备获得魔法,之类的!  发表于 2015-1-23 10:21
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 20:12

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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