赞 | 12 |
VIP | 0 |
好人卡 | 0 |
积分 | 157 |
经验 | 66628 |
最后登录 | 2024-10-1 |
在线时间 | 1851 小时 |
Lv4.逐梦者
- 梦石
- 10
- 星屑
- 5748
- 在线时间
- 1851 小时
- 注册时间
- 2013-2-14
- 帖子
- 395
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 hijl1990 于 2013-6-26 15:20 编辑
其实我只是想要魔塔的那种战斗方式。
可是找了很久都没找到,魔塔样板里的又太复杂了。。
于是在魔塔吧找了篇教程开始自己动手写,结果点击战斗出现报错。SyntaxError
应该是最后一块战斗处理里出错了,麻烦各位看看。。
下面是脚本内容:- #==============================================================================
- # ■ JiSuanShangHai(计算伤害)
- #------------------------------------------------------------------------------
- # 确定怪物的属性及伤害等。
- #==============================================================================
- class JiSuanShangHai
- #--------------------------------------------------------------------------
- # ● 初始化状态
- #--------------------------------------------------------------------------
- def initialize(enemy_id) #怪兽ID
- @enemy_id = enemy_id
- end
- #--------------------------------------------------------------------------
- # ● 计算怪物的各种能力等
- #--------------------------------------------------------------------------
- def cal_damage
- actor_atk = $game_actors[1].str #角色的攻击:力量值
- actor_def = $game_actors[1].dex #角色的防御:灵巧值
- enemy_hp = $data_enemies[@enemy_id].hp #怪兽的生命
- enemy_atk = $data_enemies[@enemy_id].atk #怪兽的攻击:攻击力
- enemy_def = $data_enemies[@enemy_id].pdef #怪兽的防御:物理防御
- #--------------------------------------------------------------------------
- # ● 战斗处理
- #--------------------------------------------------------------------------
- enemy_per_attack_damage = enemy_atk – actor_def
- actor_per_attack_damage = actor_atk – enemy_def
- #获取敌我双方攻击对方一次能造成多少伤害
- enemy_per_attack_damage = 0 if enemy_per_attack_damage < 0
- actor_per_attack_damage = 0 if actor_per_attack_damage < 0
- #如果某一方对攻击力没超过对方防御力,那么就不能造成伤害,而不是给对方加血
- if actor_per_attack_damage == 0
- #如果角色无法对敌人造成伤害,那么伤害就是“????”,返回数字的时候就用99999999
- #这个足够大的数字
- damage = 99999999
- else
- #角色可以攻击到敌人。
- if enemy_per_attack_damage == 0
- #敌人伤害不了角色,防杀,直接不用计算了
- damage = 0
- else
- #正常情况,开始计算
- enemy_attack_times = (enemy_hp / actor_per_attack_damage).to_I
- #获取敌人攻击的次数,用取整方法
- enemy_attack_times -= 1 if enemy_hp % actor_per_attack_damage == 0
- #如果可以整除的话,敌人攻击的次数要减少一次。%符号是取两数相除的余数,如果能
- #整除就是得到0
- damage = enemy_per_attack_damage * enemy_attack_times
- end
- end
- return damage
- #把刚才计算出来的伤害返回给玩家,让玩家能通过这个方法获得伤害
- end
- end
复制代码 |
|