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

Project1

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

[已经过期] 请问如何赋予敌人职业和制作职业相克

 关闭 [复制链接]

Lv1.梦旅人

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
帖子
3678
跳转到指定楼层
1
发表于 2011-6-11 22:22:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5星屑
本帖最后由 夏季冰川 于 2011-6-11 23:54 编辑

比如在战斗中我方主角职业是枪兵,敌方有步兵和骑兵2个兵种,我想要枪兵对步兵兵种的敌人伤害翻倍

但对骑兵兵种敌人伤害只有正常的一半,请问这个效果怎么达到?(不要说用属性法,4L有更具体的说明)

最佳答案

查看完整内容

利用 数据库->职业 的属性有消毒 单独把职业相克分离出来. 本质上还是属性的关系.只是做了点手脚而已= =. 1.把 数据库->系统->属性 扩容. 有多少个 数据库->职业 就要扩容多少个属性. 至于这些属性的名字写不写都无所谓.只要自己认识就行. 不过最好还是设置为对应职业的名字为好.比较直观. 2.设置脚本开头处的常量 ClassIdDeviant 这个常量的值为 职业属性 的起始id-1 比如下面的范例工程里的 战士 的属性是第 17 号. 那么这个 C ...
~现在开始自绘头像~

Lv4.逐梦者

梦石
0
星屑
6855
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2011-6-11 22:22:35 | 只看该作者
利用 数据库->职业 的属性有消毒 单独把职业相克分离出来.
本质上还是属性的关系.只是做了点手脚而已= =.

1.把 数据库->系统->属性 扩容.
有多少个 数据库->职业 就要扩容多少个属性.
至于这些属性的名字写不写都无所谓.只要自己认识就行.
不过最好还是设置为对应职业的名字为好.比较直观.

2.设置脚本开头处的常量 ClassIdDeviant
这个常量的值为 职业属性 的起始id-1
比如下面的范例工程里的 战士 的属性是第 17 号.
那么这个 ClassIdDeviant 就应该设置为 17-1=16
这个就相当于是从 职业id 到 职业属性id 的偏移值

3.在 数据库->敌人 的行动命令里给敌人设置敌人的职业id
行动的具体行为不用管.反正敌人也不会使用这条命令.
给 气血 条件打上勾.然后输入这个敌人的职业id.也就是把气血堪称是职业来设置.
再把下面的 开关 条件打上勾.然后选择一个游戏从头到尾都不会为ON的开关.
并且把这个开关的id写入脚本开头的常量 ConditionSwitchId 中
范例工程里设置的是 1 号开关.

4.在脚本开头处设置 RateTable 常量表
这个就和 属性有消毒 是一个概念了.

5.将新方法 class_correct 的调用写到伤害计算公式里去.
具体可参考范例工程的 Game_Battler 3 的第 55-57行、148-150行.

6.在 数据库->职业 设置对于这些新增的属性的有效度即可.
概念完全和默认的一样.只是影响倍率和别的属性分离开了而已.

在范例工程里.
幽灵被设置为了 4 号职业.
被 1 号职业(战士)打会很痛.被 7 号职业(僧侣)打不掉血
蜥蜴被设置为了 5 号职业.
被 2 号职业(枪兵)打会很痛.被 8 号职业(魔导士)打不掉血

最后再说一下 RateTable 的设置.首单元那个 0 可改不能删.改了也没什么用.
从 200 开始往右一次就是 ABCDEF
C 位置上的那个 100 最好别动.其余的 5 个就根据需要改吧.

脚本核心部分:
  1. #==============================================================================
  2. # ■ Game_Battler
  3. #==============================================================================

  4. class Game_Battler
  5.   ConditionSwitchId = 1
  6.   ClassIdDeviant = 16
  7.   RateTable = [0,200,150,100,50,0,-100]
  8.   def class_correct(active_battler_class_id)
  9.     element_id = active_battler_class_id + ClassIdDeviant
  10.     return RateTable[$data_classes[@class_id].element_ranks[element_id]]
  11.   end
  12. end
  13. #==============================================================================
  14. # ■ Game_Enemy
  15. #==============================================================================

  16. class Game_Enemy < Game_Battler
  17.   attr_accessor :class_id
  18.   #--------------------------------------------------------------------------
  19.   # ● 初始化对像
  20.   #--------------------------------------------------------------------------
  21.   alias creat_enemy_class_id_initialize initialize
  22.   def initialize(troop_id, member_index)
  23.     creat_enemy_class_id_initialize(troop_id, member_index)
  24.     enemy = $data_enemies[@enemy_id]
  25.     @class_id = 1
  26.     for hzhj in enemy.actions
  27.       if hzhj.condition_switch_id == ConditionSwitchId
  28.         @class_id = hzhj.condition_hp
  29.         break
  30.       end
  31.     end
  32.   end
  33. end
复制代码
范例工程:
职业相克.rar (187.11 KB, 下载次数: 168)

点评

谢谢啦  发表于 2011-6-12 08:15











你知道得太多了

回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1743
在线时间
485 小时
注册时间
2006-1-7
帖子
1073
3
发表于 2011-6-11 22:37:04 | 只看该作者
楼主你那么多VIP了都是怎么赚来的?
我给你个提示,你知道有一个东西叫做 属性 的吗?
知道 属性相克 吗?就是那个ABCDE5级的那个?
好了提示到此。

点评

属性是有ABCDEF6种……  发表于 2011-6-12 00:31
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复

使用道具 举报

Lv3.寻梦者 (版主)

  /) /)<

梦石
0
星屑
4212
在线时间
4890 小时
注册时间
2009-2-16
帖子
8434

开拓者短篇七成年组季军

4
发表于 2011-6-11 23:08:48 | 只看该作者
白鬼 发表于 2011-6-11 22:37
楼主你那么多VIP了都是怎么赚来的?
我给你个提示,你知道有一个东西叫做 属性 的吗?
知道 属性相克 吗? ...

你这个提示无效 这么简单的东西谁都知道
LZ想要的效果根本不是属性相克这么简单
比如骑兵使用各种其他属性的魔法、武器 伤害翻倍怎么计算?按你的说法是将该魔法和武器勾选该属性 那要是步兵也使用同样的魔法呢?
回复

使用道具 举报

Lv1.梦旅人

~琉璃の雪~<

梦石
0
星屑
49
在线时间
36 小时
注册时间
2008-11-6
帖子
3678
5
 楼主| 发表于 2011-6-11 23:50:00 | 只看该作者
本帖最后由 夏季冰川 于 2011-6-11 23:52 编辑

2L说得那个我早就想过了,好了可能算我没说明白,我要在游戏里设5到6个兵种,有些相克伤害是2倍,有些4倍,有些更高,如果只有2,3个不同种类的职业且相克造成的伤害倍率是一样的,用属性法还差不多,但是要自由设定的话这样就办不到了.
~现在开始自绘头像~
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
2287 小时
注册时间
2008-8-3
帖子
1505
6
发表于 2011-6-12 00:47:29 | 只看该作者
大致说一种思路(有很大局限性)
设有职业1、2、3、4、5、6,总共6种
在造成伤害的地方加判断,
造成伤害方职业为x,承受伤害方职业为 y
x-y的值为1或-5时,伤害为2倍
值为2或-4时,伤害为4倍
值为-1时,伤害为1/2
值为-2时,伤害为1/4
我们缺乏的不是想象力,而是驾驭想象的能力
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 04:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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