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

Project1

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

[已经过期] 新人请教思路(战斗系统和宠物系统)

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2015-5-27
帖子
7
跳转到指定楼层
1
发表于 2015-6-9 13:42:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
新人,不做伸手党,请教思路,脚本什么的我自己慢慢研究...

我想做个类似手机的卡牌游戏的战斗系统,但是一直找不到适合的,现在想要自己慢慢做,顺便学习一下脚本,以下是我想要知道的,先谢过各位大侠了

1, 进入战斗后,排阵问题,怎样设定比较好.有想过用横版坐标和战棋系统,但是都不是很适合,敌我都是3*3方阵

2,添加自动结束选项(脚本就以普攻来计算胜负就好),怎样弄比较好

3,宠物系统,不想在敌人中一个一个的设置,也参考过宠物系统,但是我想自己写,因为资源里面的很多设定不是自己想要的
请教一下这个系统的思路是什么
意思是,如何不用在敌人数据中设置就可以添加非常庞大的敌人数据系统(还有我方角色系统)

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

8
发表于 2015-6-13 09:10:59 | 只看该作者
crixin 发表于 2015-6-10 22:22
我要的是他们的站位,技能我方可以选择..
怎么表达呢,就是我方如果普攻就只能攻击对方前排,要攻击其他位置 ...

你放置敌人的时候刻意进行排列,将单数敌人(如1号)放前面,双数(2号)放后面,技能导入事件分歧:如果敌人1已经出现就对2进行强制攻击。这样也能做出打一列的感觉,同理,你也需要设置目标是后排时,前排也挨打,毕竟是贯穿伤害嘛。
当然,如果技能目标是单体就会出现因为前排存在不能打后排的条件,但因为事件是在技能的其他处理之后,因此纯事件的话你需要在多做一个空白的技能让玩家学会,实际造成伤害效果的技能不学,内容是给敌人叠加个异常状态,然后导入个公共事件,以叠加的状态来判定受攻击的敌人位置,然后再判定他前面有没有敌人,如果有就强制有实际伤害的技能在前排上,后排不被攻击,如果没有,就强制打后排。
还有就是游戏内原本设置当1号敌人没有了会自动打2号,所以排列才会是我那种样子。怕运气值的原因状态附加不上就在技能公式里面写。但这样敌人受攻击就会多个0的伤害数字。怕技能数目不够就用扩限脚本。
纯事件就是这种做法了,非常麻烦与愚笨,不推荐使用。虽然这种方法我自己都在用……

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2015-5-27
帖子
7
7
 楼主| 发表于 2015-6-10 22:22:18 | 只看该作者
jianyulei 发表于 2015-6-10 19:29
据我理解,手机游戏的宠物系统基本就是按一下放个技能,或者纯粹的被动技能般的存在。楼主也是想要这种效果 ...

我要的是他们的站位,技能我方可以选择..
怎么表达呢,就是我方如果普攻就只能攻击对方前排,要攻击其他位置就必须用技能.例如A技能是攻击后排全体这样子的效果...
其实就是想远离常规战斗方式,更有策略性...

最后请问大神有好方法吗?请教请教{:2_275:}
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
帖子
813

开拓者

6
发表于 2015-6-10 19:29:13 | 只看该作者
据我理解,手机游戏的宠物系统基本就是按一下放个技能,或者纯粹的被动技能般的存在。楼主也是想要这种效果?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2015-5-27
帖子
7
5
 楼主| 发表于 2015-6-10 15:32:44 | 只看该作者
企鹅达达 发表于 2015-6-10 11:19
http://www.rpgmakervxace.net/topic/12218-import-parameters/
csv转成数据库内置数据的脚本比如这个。不 ...

感谢,看来要懂这个真的需要一段时间,不过我会努力学习的了...

点评

只是编辑怪物属性的话,我写的脚本就能做到了,不过掉落物、特征、备注得另外想方法导入,虽然我已经写了,但用法解释很麻烦所以我不发  发表于 2015-6-10 15:51
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
180
在线时间
829 小时
注册时间
2010-6-26
帖子
671
4
发表于 2015-6-10 11:19:52 | 只看该作者
本帖最后由 企鹅达达 于 2015-6-10 12:23 编辑

http://www.rpgmakervxace.net/topic/12218-import-parameters/
csv转成数据库内置数据的脚本比如这个。不过你要改成怪物数据的话得先懂一点脚本知识,反正我改了之后技能、道具、武器、防具、怪物数据全都在excel里弄了

嗯,吐槽一下,简介、备注会换行所以只能编辑器里编辑,不然会错位,编辑过后还得改后缀、转码其实蛮麻烦的← ← 楼上高手有其它好招不?
下面是举例一个,另外其实还有其他数据库的导入方式,只要懂脚本的话就能自己改,反正来来去去就那几句

RUBY 代码复制
  1. #     PG::output_enemies
  2. #     PG::run_enemy
  3. =begin
  4. ==============使用方法=======================
  5. 1. 执行事件脚本  PG::output_enemies
  6. 2. 导出文本之后部分说明部分的转行符需要手动删除
  7. 3. 将文本内容粘贴到excel之中,执行数据>分列,分割标志为|
  8. 4. 编辑数据,其中特征、习得技能、效果、掉落物、敌人行动
  9.    等格式为数组的数据无法直接从表格导入
  10. 5. 表格编辑完成之后保存成csv格式,再用记事本另存为utf-8编码(否则无法读取中文)
  11. 6.执行事件脚本   PG::run_enemy
  12. 7.关掉编辑器再打开,数据库里的数据就弄好了
  13. =end
  14. module PG
  15. #--------------------------------------------------------------------------
  16.   # ●
  17.   #--------------------------------------------------------------------------
  18.   def self.output_enemies
  19.     ret = ""
  20.     $data = load_data("Data/Enemies.rvdata2")
  21.       ret += "id"
  22.       ret += "|"+ "name"
  23.       ret += "|"+ "battler_name"
  24.       ret += "|"+ "battler_hue"
  25.       ret += "|"+ "params[0]"
  26.       ret += "|"+ "params[1]"
  27.       ret += "|"+ "params[2]"
  28.       ret += "|"+ "params[3]"
  29.       ret += "|"+ "params[4]"
  30.       ret += "|"+ "params[5]"
  31.       ret += "|"+ "params[6]"
  32.       ret += "|"+ "params[7]"
  33.       ret += "|"+ "exp"
  34.       ret += "|"+ "gold"
  35.       ret += "|"+ "drop_items"
  36.       ret += "|"+ "actions"
  37.       ret += "|"+ "features"
  38.     for i in 1..$data.size
  39.       break if $data[i] == nil
  40.       ret += "\n" + $data[i].id.to_s
  41.       ret += "|"+ $data[i].name
  42.       ret += "|"+ $data[i].battler_name
  43.       ret += "|"+ $data[i].battler_hue.to_s
  44.       ret += "|"+ $data[i].params[0].to_s
  45.       ret += "|"+ $data[i].params[1].to_s
  46.       ret += "|"+ $data[i].params[2].to_s
  47.       ret += "|"+ $data[i].params[3].to_s
  48.       ret += "|"+ $data[i].params[4].to_s
  49.       ret += "|"+ $data[i].params[5].to_s
  50.       ret += "|"+ $data[i].params[6].to_s
  51.       ret += "|"+ $data[i].params[7].to_s
  52.       ret += "|"+ $data[i].exp.to_s
  53.       ret += "|"+ $data[i].gold.to_s
  54.       ret += "|["
  55.       if $data[i].drop_items.size>0
  56.         for j in 0...$data[i].drop_items.size
  57.           ret += "["+ $data[i].drop_items[j].kind.to_s
  58.           ret += ","+ $data[i].drop_items[j].data_id.to_s
  59.           ret += ","+ $data[i].drop_items[j].denominator.to_s
  60.           ret += "],"
  61.         end
  62.       end
  63.       ret += "],"
  64.       ret += "|["
  65.       if $data[i].actions.size>0
  66.         for j in 0...$data[i].actions.size
  67.           ret += "["+ $data[i].actions[j].skill_id.to_s
  68.           ret += ","+ $data[i].actions[j].condition_type.to_s
  69.           ret += ","+ $data[i].actions[j].condition_param1.to_s
  70.           ret += ","+ $data[i].actions[j].condition_param2.to_s
  71.           ret += ","+ $data[i].actions[j].rating.to_s
  72.           ret += "],"
  73.         end
  74.       end
  75.       ret += "],"
  76.       ret += "|["
  77.       if $data[i].features.size>0
  78.         for j in 0...$data[i].features.size
  79.           ret += "["+ $data[i].features[j].code.to_s
  80.           ret += ","+ $data[i].features[j].data_id.to_s
  81.           ret += ","+ $data[i].features[j].value.to_s
  82.           ret += "],"
  83.         end
  84.       end
  85.       ret += "],"
  86.     end
  87.     File.open("Enemies.txt", 'w') { |file| file.write(ret) }
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ●
  91.   #--------------------------------------------------------------------------
  92.   def self.run_enemy
  93.     $data = load_data("Data/Enemies.rvdata2")
  94.     File.open("Enemies.csv", 'r') {|f|
  95.       @inFile = f
  96.       line = read_line
  97.       while !@inFile.eof?
  98.         line = read_line
  99.         i = line[0].to_i
  100.         $data << RPG::Enemy.new if $data[i] == nil
  101.         $data[i].name = line[1]
  102.         $data[i].battler_name = line[2]
  103.         $data[i].battler_hue = line[3].to_i
  104.         $data[i].params[0] = line[4].to_i
  105.         $data[i].params[1] = line[5].to_i
  106.         $data[i].params[2] = line[6].to_i
  107.         $data[i].params[3] = line[7].to_i
  108.         $data[i].params[4] = line[8].to_i
  109.         $data[i].params[5] = line[9].to_i
  110.         $data[i].params[6] = line[10].to_i
  111.         $data[i].params[7] = line[11].to_i
  112.         $data[i].exp = line[12].to_i
  113.         $data[i].gold = line[13].to_i
  114.       end
  115.     }
  116.     save_data($data, "Data/Enemies.rvdata2")
  117.     SceneManager::exit
  118.   end
  119. end
新手们!不要被看扁了!我们也会用论坛搜索,我们也会自己找脚本,我们也会自己点击关闭按钮旁边的小问号!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2015-5-27
帖子
7
3
 楼主| 发表于 2015-6-10 10:40:46 | 只看该作者
taroxd 发表于 2015-6-9 21:39
1. 游戏设计的问题,不在我可以解答的范围之内

2. 我记得有国外的脚本有自动战斗功能的。

{:2_275:}感谢~
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

2
发表于 2015-6-9 21:39:19 手机端发表。 | 只看该作者
本帖最后由 taroxd 于 2015-6-9 21:40 编辑

1. 游戏设计的问题,不在我可以解答的范围之内

2. 我记得有国外的脚本有自动战斗功能的。
要自己实现的话,可以在 Scene_Battle 里面,如果开了自动战斗就把所有的指令输入都跳过,自动选择普攻。选择普攻应该是有一个对应的方法的。

3. 或者用备注,或者在脚本编辑器内用常量定义。或者外置一个yaml的数据库也是可以的,只要你愿意去写读取的代码的话

点评

csv!!听起来很有趣的样子~而且我怪兽的数据差不多都是用excel表做好的了~~~求大神赐教~  发表于 2015-6-10 10:43
换我就直接用CSV了,Excel一拉一读也方便  发表于 2015-6-9 21:57
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 07:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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