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

Project1

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

[已经解决] 【★】如何制作一个武器,装备后普通攻击敌全体?

[复制链接]

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4514
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

1
发表于 2012-10-8 16:31:52 | 显示全部楼层
本帖最后由 protosssonny 于 2012-10-8 19:02 编辑

就这个是脚本的问题,那么P叔占楼预定答这个好了。事件什么的简单饭菜依旧是先留给大家的。

VA真是不熟悉。各种定义找不到在哪里,忙了半天才有个结果。
安安,P叔交作业了
范例在这里,由于大小限制,请自行添加RGSS300.dll文件。
Project1.rar (300.86 KB, 下载次数: 204)
按照安安的要求,上传到百度网盘,一直没有毅力注册网盘,今天终于注册了。
在百度网盘的范例
按规定截图,但是图看不出什么效果:

脚本在这里,注释得很详细:
  1. #encoding:utf-8
  2. #==============================================================================
  3. # ■ Game_Action
  4. #------------------------------------------------------------------------------
  5. #  处理战斗中的行动的类。本类在 Game_Battler 类的内部使用。
  6. #==============================================================================

  7. class Game_Action
  8.   #--------------------------------------------------------------------------
  9.   # ● 目标为敌人
  10.   #--------------------------------------------------------------------------
  11.   def targets_for_opponents
  12.     if item.for_random?
  13.       Array.new(item.number_of_targets) { opponents_unit.random_target }
  14.     elsif item.for_one?
  15.       num = 1 + (attack? ? subject.atk_times_add.to_i : 0)
  16.       num = atk_times_by_weapon  # 添加
  17.       if num == 1                # 如果目标数为1则执行默认情形
  18.         if @target_index < 0
  19.           [opponents_unit.random_target] * num
  20.         else
  21.           [opponents_unit.smooth_target(@target_index)] * num
  22.         end
  23.       elsif num == 5             # 如果目标数为5则执行攻击全体
  24.         opponents_unit.alive_members
  25.       else
  26.         case num
  27.         when 2                   # 如果目标数为2则先攻击1次目标,再攻击1个随机目标
  28.           [opponents_unit.smooth_target(@target_index)] + [opponents_unit.random_target]
  29.         when 3                   # 如果目标数为3则先攻击1次目标,再攻击2个随机目标
  30.           [opponents_unit.smooth_target(@target_index)] + [opponents_unit.random_target] + [opponents_unit.random_target]
  31.         when 4                   # 如果目标数为4则先攻击1次目标,再攻击3个随机目标
  32.           [opponents_unit.smooth_target(@target_index)] + [opponents_unit.random_target] + [opponents_unit.random_target] + [opponents_unit.random_target]
  33.         end  
  34.       end  
  35.     else
  36.       opponents_unit.alive_members
  37.     end
  38.   end
  39.   
  40.   def atk_times_by_weapon
  41.     times = [1]                  # 赋初值
  42.     if @subject.class != Game_Enemy  # 攻击者不为敌人(即为角色)的情形
  43.       for i in @subject.weapons  # 如果注释包含这些文字
  44.         # 因为考虑双手武器,所以用for i in @subject.weapons
  45.         times.push(0) if i.note.include?("<AttackType0>")
  46.         times.push(1) if i.note.include?("<AttackType1>")
  47.         times.push(2) if i.note.include?("<AttackType2>")
  48.         times.push(3) if i.note.include?("<AttackType3>")
  49.         times.push(4) if i.note.include?("<AttackType4>")
  50.       end
  51.     end
  52.     # 当数组times中包含0,则time为5(全体攻击标志),否则就为数组times的最大值。
  53.     time = times.include?(0) ? 5 : times.max
  54.     return time
  55.   end  
  56. end  
复制代码

点评

已收到 =v=  发表于 2012-10-8 19:24
嗷呜,已经传网盘了。本帖子编辑过了,有下载地址。[url=home.php?mod=space&username=迷糊的安安]@迷糊的安安[/url]  发表于 2012-10-8 19:22
= = 当然是试过脚本才认可的…… 不过因为我的VA版本略奇怪,所以范例工程还是乃自己来传比较好……  发表于 2012-10-8 19:18
写代码从【实现功能】走向【编程思想】是个不断成熟的过程(貌似是七夕小雨说的),P叔加油!  发表于 2012-10-8 18:53
范例能用百度网盘传下么 = = 论坛附件下不下来 方法试过是可行了  发表于 2012-10-8 18:50

评分

参与人数 1梦石 +4 收起 理由
迷糊的安安 + 4 认可答案 好人卡+2

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-16 05:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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