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

Project1

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

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

[复制链接]

Lv4.逐梦者

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

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

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

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

Lv5.捕梦者

梦石
0
星屑
22948
在线时间
8638 小时
注册时间
2011-12-31
帖子
3367
13
发表于 2015-1-23 20:53:22 | 只看该作者
我没用過
特徴欄拡張
http://blueredzone.com/script/vxace/vxace_featuresextension.html
たとえば職業IDを条件にして職業に応じて攻撃力上昇,攻撃力減少の特徴を武器に付けておくことで
職業による得意武器,苦手武器なんてものを作ることもできます.

もちろん複数の条件を組み合わせることも可能です.

また条件に指定できる項目は条件セットとして別スクリプトで追加する形になっています.
この中身をみると分かりますが,非常に簡単に条件セットを追加できるようになっているので
独自の条件を簡単につくることができます.
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

12
发表于 2015-1-23 10:57:47 | 只看该作者
公共事件并行···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
166 小时
注册时间
2015-1-8
帖子
48
11
发表于 2015-1-23 10:19:51 | 只看该作者
或者做一个分歧条件当为某个职业时增加某个效果
[
回复 支持 反对

使用道具 举报

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
回复 支持 反对

使用道具 举报

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
星屑
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

开拓者

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
星屑
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
星屑
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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 17:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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