Project1

标题: 求助关于扔色子的战斗方式 [打印本页]

作者: 李思无    时间: 2013-6-13 14:22
标题: 求助关于扔色子的战斗方式
本帖最后由 李思无 于 2013-6-16 13:42 编辑

麻烦帮我弄个摇骰子战斗的脚本
伤害的计算:   角色A 力量+随机数(默认为1—6,可以自己进行调整) 去对比  敌人A 力量+随机数
              角色A的数据大,则对敌人A造成 数值差的伤害。反之就是敌人A对角色A造成数值差的伤害。(这个数值要减去对应方的防御(速度)才是造成这一轮攻击的实际伤害。)
              【如:   角色A  8(力量)+6(随机数) > 敌人A 7(力量)+4(随机数)  】
                     【       14-11=3                3-1(敌人A的防御)=2      这一轮攻击就对敌人A造成了2点伤害】

大致是,在事件中插入一段代码激活后,就会自动读取玩家当前的队伍,按照队伍的排列顺序,读取第一个角色的HP、力量、防御(速度),当有角色的HP归0后就死亡,自动读取第二个角色,代入第二个角色的HP、力量、防御(速度),一直进行战斗,直到一方全灭。
需要注意的是,敌人的队伍读取,玩家手动输入数字,举例我输入51、52、53,那么电脑(敌人)的队伍就是 51号角色、52号角
色、53号角色。 然后同样的,车轮战,分别自动识别代入敌人的力量和HP,然后进行战斗。

图片的显示,由于我这种战斗方式不需要进入默认的战斗模块,是直接在地图上进行战斗 所以相应的就会需要在战斗过程中出现图片以及显示变量数据(HP、伤害、骰子的数字 等等情况)
详情我附图说明  
1:当前队伍我方的头像                 2:敌人方的头像
3:当前角色的HP数值                  5:敌人的HP数字
4:当前角色的力量(基础力量+装备)   6:当前敌人的力量
7:角色的立绘                        8:敌人的立绘
9:当前战斗信息简报(角色A对敌人A造成多少多少伤害之类的)
10:当前一轮角色摇出的骰子点数图片(每一个点对应一张骰子点数的图片显示)
11:当前一轮角色敌人摇出的骰子点数图片(每一个点对应一张骰子点数的图片显示)

作者: wwwcctvty    时间: 2013-6-13 14:28
怎么听着有点绕、、、、、、、、、、、
作者: 李思无    时间: 2013-6-13 14:38
wwwcctvty 发表于 2013-6-13 14:28
怎么听着有点绕、、、、、、、、、、、

假设这样:

角色A  HP10(能力6)                        敌人A HP20(能力7)
           
第一回合:
角色A (能力值6)+随机数4  对比    敌人A (能力值7)+随机数6
等于:
角色A 10 < 敌人A 13
敌人A对角色A造成3点伤害

(随机数每回合双方都各变动一次)
以此类推。。。
  
作者: 512195574    时间: 2013-6-13 14:57
这个用公共事件也能做出来,不过最好还是用脚本中的函数功能计算比较好。
大体思路是:读取角色、及敌人能力、装备等到计算脚本。
然后在公共事件设置战斗,然后角色ID、敌人ID来调用那个脚本中计算伤害,先用随机函数确定伤害值,然后再利用读取的装备数据(直接从角色属性中提取、或从角色装备的装备属性中都行)计算削减。然后返回一个最终伤害值。(估计还得判断伤害小于0等等这种情况……)
伤害值返回到共用事件中,然后利用减血事件做到减血……至于胜利……简单点的方法就是并行一个事件,敌人的小于等于0时执行就好了(编一个系统很麻烦的,就算是很简单的系统)
作者: chd114    时间: 2013-6-13 14:59
楼上说的你能理解吗···大概就是一个有点繁琐的公共事件
作者: 李思无    时间: 2013-6-13 15:11
~ 补充一点, 我想弄成的是 车轮式的战斗方式, 当我方的角色们全挂了才判断游戏结束,能麻烦帮我弄个范例工程吗?
作者: 李思无    时间: 2013-6-13 15:12
512195574 发表于 2013-6-13 14:57
这个用公共事件也能做出来,不过最好还是用脚本中的函数功能计算比较好。
大体思路是:读取角色、及敌人能 ...

能麻烦你做个函数功能计算的范例给我吗?

还有就是在 我说描述的 装备 和武器 这一块 ,我不太会弄。

车轮战这里也希望你能帮帮忙帮我弄一下。

作者: 512195574    时间: 2013-6-13 15:18
李思无 发表于 2013-6-13 15:12
能麻烦你做个函数功能计算的范例给我吗?

还有就是在 我说描述的 装备 和武器 这一块 ,我不太会弄。

车轮战好说,不过制作前我想先问一下这个游戏的战斗次数多吗?如果少的话就直接全用公共事件就好了,多的话就用脚本了……
作者: 李思无    时间: 2013-6-13 15:26
512195574 发表于 2013-6-13 15:18
车轮战好说,不过制作前我想先问一下这个游戏的战斗次数多吗?如果少的话就直接全用公共事件就好了,多的 ...

我的游戏就定义是这种战斗模式了! 所以希望前辈能帮忙用脚本做一下!谢谢。

作者: 512195574    时间: 2013-6-13 16:19
本帖最后由 512195574 于 2013-6-13 16:29 编辑
李思无 发表于 2013-6-13 15:26
我的游戏就定义是这种战斗模式了! 所以希望前辈能帮忙用脚本做一下!谢谢。
! ...

  1. #调用方法damage_cal(数字1,数字2)
  2. 数字1代表你人物的ID,数字2代表怪物的ID

  3. def damage_cal(i,j)
  4.      d = 100 #设置怪物ID与变量之间的差值,如果怪物ID为8,那么它的HP数值就储存在108号变量
  5.      actord = $game_actors[i].str
  6.      actord = actord + rand(6) + 1
  7.      enemyd = $data_enemies[j].str
  8.      enemyd = enemyd + rand(6) + 1
  9.      c = actord - enemyd
  10.     if c > 0
  11.           c = c - $data_enemies[j].pdef
  12.        if c >= 0
  13.         $game_variables[d+j] -= c
  14.        end
  15.       end
  16.     if c < 0
  17.        c = -c
  18.        c = c - $game_actors[i].pdef
  19.        if c >= 0
  20.           $game_actors[i].hp -= c
  21.        end
  22.      end
  23.     if $game_variables[d+j] <= 0
  24.       $game_switches[77] = true
  25.     end
  26. end
复制代码
计算脚本就是这样了,刚才出了点失误……稍微耽误了点时间= =(我不是前辈,也在边做边学习脚本……)
人物生命值就是人物的HP
敌人的HP储存在敌人ID加100的变量中,如果敌人hp为0,那么第77号开关将开启。此时可以执行某某事情,结束战斗。
至于减去的伤害则等于角色或者怪物的物理防御

举个例子
damage_cal(1,2)
就代表1号角色与怪物2号战斗过一次了
循环设置mage_cal(1,2)就表示与怪物一直战斗着,可以刚才的77号开关中断循环

车轮战的话就是你在编游戏的时候考虑如果角色Hp=0时,换到damage_cal(2,2)就行了

对了,顺便一提,解决了的话就去http://rpg.blue/thread-230165-1-1.html认证一下吧
作者: 李思无    时间: 2013-6-13 17:03
512195574 发表于 2013-6-13 16:19
计算脚本就是这样了,刚才出了点失误……稍微耽误了点时间= =(还有,我不是前辈,也在边做边学习脚本…… ...

能麻烦帮我弄一个 范例工程出来吗? 我亲自测试一下 感觉会更容易掌握一点, 还有就是,战斗的进程用这个脚本的话,可以再地图上用对话框显示出变量值的吧?还有就是想问问,如何设置成车轮战的战法?
作者: 512195574    时间: 2013-6-13 17:52
李思无 发表于 2013-6-13 17:03
能麻烦帮我弄一个 范例工程出来吗? 我亲自测试一下 感觉会更容易掌握一点, 还有就是,战斗的进程用这个 ...

Project7.rar (191.62 KB, 下载次数: 34)
专为计算脚本做的范例
其实还有很多功能没有开发……比如战斗的循环也可以用脚本代替,当然这些就是后话了……
作者: 李思无    时间: 2013-6-14 12:54
512195574 发表于 2013-6-13 17:52
专为计算脚本做的范例
其实还有很多功能没有开发……比如战斗的循环也可以用脚本代替,当然这些就是后话 ...

何如手动确认解决问题了啊~~没找到
作者: 李思无    时间: 2013-6-14 12:56
本帖最后由 李思无 于 2013-6-14 13:00 编辑
512195574 发表于 2013-6-13 17:52
专为计算脚本做的范例
其实还有很多功能没有开发……比如战斗的循环也可以用脚本代替,当然这些就是后话 ...


前辈如果方便的话 可以加加我QQ指导我一下吗? 因为我是一个脚本盲来的,我想把这个战斗系统弄得完善一点!!!Q120211520
作者: 512195574    时间: 2013-6-14 13:26
本帖最后由 512195574 于 2013-6-14 13:30 编辑
李思无 发表于 2013-6-14 12:56
前辈如果方便的话 可以加加我QQ指导我一下吗? 因为我是一个脚本盲来的,我想把这个战斗系统弄得完善一点 ...


http://rpg.blue/thread-230165-1-1.html
貌似改版以后只能从上述位置结贴了··········
脚本的话,建议初期先在RM中按F1学,了解了循环、数组、分歧这些编程基本概念的用法后,就可以去http://rpg.blue/thread-238457-1-1.html看看脚本的创作思路了,侠客大哥的这个教程好在还教会制作者解决BUG的思路,以及编RM一些比较好的习惯。如果可以理解的话,在学完标题界面的基础篇、提高篇和菜单界面美化的基础篇就可以去看的懂他人制作的脚本来学习了。(如果到这时顺利的话,一般的脚本冲突和简单点脚本制作都可以自己解决了)
作者: 李思无    时间: 2013-6-16 12:04
标题: 麻烦帮我弄个摇骰子战斗的脚本
伤害的计算:   角色A 力量+随机数(默认为1—6,可以自己进行调整) 去对比  敌人A 力量+随机数
              角色A的数据大,则对敌人A造成 数值差的伤害。反之就是敌人A对角色A造成数值差的伤害。(这个数值要减去对应方的防御(速度)才是造成这一轮攻击的实际伤害。)
              【如:   角色A  8(力量)+6(随机数) > 敌人A 7(力量)+4(随机数)  】
                     【       14-11=3                3-1(敌人A的防御)=2      这一轮攻击就对敌人A造成了2点伤害】

大致是,在事件中插入一段代码激活后,就会自动读取玩家当前的队伍,按照队伍的排列顺序,读取第一个角色的HP、力量、防御(速度),当有角色的HP归0后就死亡,自动读取第二个角色,代入第二个角色的HP、力量、防御(速度),一直进行战斗,直到一方全灭。
需要注意的是,敌人的队伍读取,玩家手动输入数字,举例我输入51、52、53,那么电脑(敌人)的队伍就是 51号角色、52号角
色、53号角色。 然后同样的,车轮战,分别自动识别代入敌人的力量和HP,然后进行战斗。

图片的显示,由于我这种战斗方式不需要进入默认的战斗模块,是直接在地图上进行战斗 所以相应的就会需要在战斗过程中出现图片以及显示变量数据(HP、伤害、骰子的数字 等等情况)
详情我附图说明
1:当前队伍我方的头像                 2:敌人方的头像
3:当前角色的HP数值                  5:敌人的HP数字
4:当前角色的力量(基础力量+装备)   6:当前敌人的力量
7:角色的立绘                        8:敌人的立绘
9:当前战斗信息简报(角色A对敌人A造成多少多少伤害之类的)
10:当前一轮角色摇出的骰子点数图片(每一个点对应一张骰子点数的图片显示)
11:当前一轮角色敌人摇出的骰子点数图片(每一个点对应一张骰子点数的图片显示)

作者: 李思无    时间: 2013-6-16 12:06
本帖最后由 李思无 于 2013-6-16 13:23 编辑
512195574 发表于 2013-6-14 13:26
http://rpg.blue/thread-230165-1-1.html
貌似改版以后只能从上述位置结贴了··········
...


师父~ 请帮我弄一下可以吗?
作者: 李思无    时间: 2013-6-17 09:22
李思无 发表于 2013-6-16 12:06
师父~ 请帮我弄一下可以吗?

学无先后,达者为先。 在这个领域上你确实比我厉害啊~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1