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

Project1

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

[已经解决] 求助关于扔色子的战斗方式

[复制链接]

Lv1.梦旅人

梦石
0
星屑
70
在线时间
233 小时
注册时间
2011-4-25
帖子
148
跳转到指定楼层
1
发表于 2013-6-13 14:22:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 李思无 于 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:当前一轮角色敌人摇出的骰子点数图片(每一个点对应一张骰子点数的图片显示)

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
来自 12楼
发表于 2013-6-13 17:52:59 | 只看该作者
李思无 发表于 2013-6-13 17:03
能麻烦帮我弄一个 范例工程出来吗? 我亲自测试一下 感觉会更容易掌握一点, 还有就是,战斗的进程用这个 ...

Project7.rar (191.62 KB, 下载次数: 34)
专为计算脚本做的范例
其实还有很多功能没有开发……比如战斗的循环也可以用脚本代替,当然这些就是后话了……

评分

参与人数 1星屑 +140 梦石 +1 收起 理由
弗雷德 + 140 + 1 认可答案

查看全部评分

其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
52
在线时间
586 小时
注册时间
2012-5-31
帖子
768
2
发表于 2013-6-13 14:28:27 | 只看该作者
怎么听着有点绕、、、、、、、、、、、
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
233 小时
注册时间
2011-4-25
帖子
148
3
 楼主| 发表于 2013-6-13 14:38:16 | 只看该作者
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点伤害

(随机数每回合双方都各变动一次)
以此类推。。。
  
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
4
发表于 2013-6-13 14:57:21 | 只看该作者
这个用公共事件也能做出来,不过最好还是用脚本中的函数功能计算比较好。
大体思路是:读取角色、及敌人能力、装备等到计算脚本。
然后在公共事件设置战斗,然后角色ID、敌人ID来调用那个脚本中计算伤害,先用随机函数确定伤害值,然后再利用读取的装备数据(直接从角色属性中提取、或从角色装备的装备属性中都行)计算削减。然后返回一个最终伤害值。(估计还得判断伤害小于0等等这种情况……)
伤害值返回到共用事件中,然后利用减血事件做到减血……至于胜利……简单点的方法就是并行一个事件,敌人的小于等于0时执行就好了(编一个系统很麻烦的,就算是很简单的系统)
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv4.逐梦者

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

开拓者

5
发表于 2013-6-13 14:59:52 | 只看该作者
楼上说的你能理解吗···大概就是一个有点繁琐的公共事件
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
233 小时
注册时间
2011-4-25
帖子
148
6
 楼主| 发表于 2013-6-13 15:11:06 | 只看该作者
~ 补充一点, 我想弄成的是 车轮式的战斗方式, 当我方的角色们全挂了才判断游戏结束,能麻烦帮我弄个范例工程吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
233 小时
注册时间
2011-4-25
帖子
148
7
 楼主| 发表于 2013-6-13 15:12:53 | 只看该作者
512195574 发表于 2013-6-13 14:57
这个用公共事件也能做出来,不过最好还是用脚本中的函数功能计算比较好。
大体思路是:读取角色、及敌人能 ...

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

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

车轮战这里也希望你能帮帮忙帮我弄一下。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
8
发表于 2013-6-13 15:18:20 | 只看该作者
李思无 发表于 2013-6-13 15:12
能麻烦你做个函数功能计算的范例给我吗?

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

车轮战好说,不过制作前我想先问一下这个游戏的战斗次数多吗?如果少的话就直接全用公共事件就好了,多的话就用脚本了……
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
70
在线时间
233 小时
注册时间
2011-4-25
帖子
148
9
 楼主| 发表于 2013-6-13 15:26:02 | 只看该作者
512195574 发表于 2013-6-13 15:18
车轮战好说,不过制作前我想先问一下这个游戏的战斗次数多吗?如果少的话就直接全用公共事件就好了,多的 ...

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
192 小时
注册时间
2010-8-23
帖子
161
10
发表于 2013-6-13 16:19:56 | 只看该作者
本帖最后由 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认证一下吧
其实我是个三流的画师  ←_←
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-5 10:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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