Project1

标题: 麻烦大家看看这段脚本里哪里出错了。 [打印本页]

作者: hijl1990    时间: 2013-6-24 11:44
标题: 麻烦大家看看这段脚本里哪里出错了。
本帖最后由 hijl1990 于 2013-6-26 15:20 编辑

其实我只是想要魔塔的那种战斗方式。

可是找了很久都没找到,魔塔样板里的又太复杂了。。

于是在魔塔吧找了篇教程开始自己动手写,结果点击战斗出现报错。SyntaxError

应该是最后一块战斗处理里出错了,麻烦各位看看。。

下面是脚本内容:
  1. #==============================================================================
  2. # ■ JiSuanShangHai(计算伤害)
  3. #------------------------------------------------------------------------------
  4. #  确定怪物的属性及伤害等。
  5. #==============================================================================
  6. class JiSuanShangHai
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化状态
  9.   #--------------------------------------------------------------------------
  10.   def initialize(enemy_id)   #怪兽ID
  11.     @enemy_id = enemy_id   
  12.   end
  13.   #--------------------------------------------------------------------------
  14.   # ● 计算怪物的各种能力等
  15.   #--------------------------------------------------------------------------
  16.   def cal_damage
  17.     actor_atk = $game_actors[1].str    #角色的攻击:力量值
  18.     actor_def = $game_actors[1].dex    #角色的防御:灵巧值
  19.     enemy_hp = $data_enemies[@enemy_id].hp     #怪兽的生命
  20.     enemy_atk = $data_enemies[@enemy_id].atk   #怪兽的攻击:攻击力
  21.     enemy_def = $data_enemies[@enemy_id].pdef  #怪兽的防御:物理防御
  22.   #--------------------------------------------------------------------------
  23.   # ● 战斗处理
  24.   #--------------------------------------------------------------------------   
  25.     enemy_per_attack_damage = enemy_atk – actor_def
  26.     actor_per_attack_damage = actor_atk – enemy_def
  27. #获取敌我双方攻击对方一次能造成多少伤害
  28.     enemy_per_attack_damage = 0 if enemy_per_attack_damage < 0
  29.     actor_per_attack_damage = 0 if actor_per_attack_damage < 0
  30. #如果某一方对攻击力没超过对方防御力,那么就不能造成伤害,而不是给对方加血
  31.   if actor_per_attack_damage == 0
  32. #如果角色无法对敌人造成伤害,那么伤害就是“????”,返回数字的时候就用99999999
  33. #这个足够大的数字
  34.     damage = 99999999
  35.   else
  36. #角色可以攻击到敌人。
  37.   if enemy_per_attack_damage == 0
  38. #敌人伤害不了角色,防杀,直接不用计算了
  39.     damage = 0
  40.      else
  41. #正常情况,开始计算
  42.     enemy_attack_times = (enemy_hp / actor_per_attack_damage).to_I
  43. #获取敌人攻击的次数,用取整方法
  44.     enemy_attack_times -= 1 if enemy_hp % actor_per_attack_damage == 0
  45. #如果可以整除的话,敌人攻击的次数要减少一次。%符号是取两数相除的余数,如果能
  46. #整除就是得到0
  47.     damage = enemy_per_attack_damage * enemy_attack_times
  48. end
  49. end
  50. return damage
  51. #把刚才计算出来的伤害返回给玩家,让玩家能通过这个方法获得伤害

  52. end
  53. end
复制代码

Project1.rar

187.61 KB, 下载次数: 21


作者: hijl1990    时间: 2013-6-24 11:45
然后是公共事件
是新工程,没用任何脚本系统
作者: hijl1990    时间: 2013-6-24 12:20
怎么发帖都没人理呢。。
作者: Sion    时间: 2013-6-24 12:58
格式这么乱,出错是正常的
作者: hijl1990    时间: 2013-6-24 13:41
Sion 发表于 2013-6-24 12:58
格式这么乱,出错是正常的

第一次写,不知道出什么问题了,求指点。。
作者: hijl1990    时间: 2013-6-24 14:18
hijl1990 发表于 2013-6-24 13:41
第一次写,不知道出什么问题了,求指点。。

谢谢,工程补上了,在一楼。。
作者: hijl1990    时间: 2013-6-24 14:19
Sion 发表于 2013-6-24 12:58
格式这么乱,出错是正常的

谢谢,工程补上了,在一楼。。
作者: 天地有正气    时间: 2013-6-24 14:36
你看看这个,是天干宝典里的

魔塔式的战斗.zip

213.58 KB, 下载次数: 18

魔塔战斗


作者: Sion    时间: 2013-6-24 14:46
本帖最后由 Sion 于 2013-6-24 14:48 编辑

事件脚本编辑的框太小了,自动换行导致报错。
其实直接在Interpreter类里添加方法来计算就可以了,Interpreter 类里的方法可以在事件里直接调用,没必要新建类。
作者: hijl1990    时间: 2013-6-24 14:53
Sion 发表于 2013-6-24 14:46
事件脚本编辑的框太小了,自动换行导致报错。
其实直接在Interpreter类里添加方法来计算就可以了,Interpre ...

Interpreter有7个项,我不知道该修改哪里。。你能修好后把工程发给我参考下吗?
作者: Sion    时间: 2013-6-24 15:08
hijl1990 发表于 2013-6-24 14:53
Interpreter有7个项,我不知道该修改哪里。。你能修好后把工程发给我参考下吗? ...

Project1.rar (188.52 KB, 下载次数: 11)
作者: 你最珍贵    时间: 2013-6-26 13:47
直接破个魔塔就好了~




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