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

Project1

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

[已经解决] 敌人能否无限召唤小怪?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1733
在线时间
484 小时
注册时间
2006-1-7
帖子
1073
跳转到指定楼层
1
发表于 2015-11-10 21:17:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
默认的战斗系统是做不到了,不知道有没有可能通过脚本等方法实现呢?
这样做是不是要扩展敌人数量默认最多8个的设定?怎么改?
我想再加入一个小怪数量的统计(因为有可能小怪不是固定的某一个)
然后当小怪数量超过N的时候,战斗判定为失败。

请问各位大手有没有什么办法?谢谢!
@RyanBern @恐惧剑刃 @芯☆淡茹水  
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。

Lv2.观梦者

梦石
0
星屑
451
在线时间
228 小时
注册时间
2015-2-23
帖子
241
2
发表于 2015-11-11 11:47:20 | 只看该作者
1,敌人队伍增加一个可以添加敌人的函数。
2,敌人战斗图画面坐标改成可外部变动。
3,增加一个计算方式来确定新增加的敌人图片的画面坐标。
4,敌人战斗精灵增加判断敌人队伍是否增加敌人,来刷新敌人战斗图。
5,增加一个函数来专门添加敌人,以及对增加的敌人计数。

点评

说的挺简单。  发表于 2015-11-11 12:01
制作XP特效,找我。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
帖子
1516
3
发表于 2015-11-11 23:38:37 | 只看该作者
……研究一下脚本然后模仿着写写就好(反正我不会)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
66
在线时间
91 小时
注册时间
2012-8-15
帖子
57
4
发表于 2015-11-12 16:03:31 | 只看该作者
脚本是可以实现的
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

梦石
0
星屑
9467
在线时间
5073 小时
注册时间
2013-6-21
帖子
3580

开拓者贵宾剧作品鉴家

5
发表于 2015-11-12 17:04:28 | 只看该作者
2楼给出的做法可行,我来补充一下细节。细节这里比较讨厌。

1. 敌人队伍增加一个可以添加敌人的函数。
参考Game_Troop#setup方法里添加敌人的部分,编写临时增加敌人的方法。在这里必须要参考Game_Enemy的initialize,在生成敌人的时候,指定的是敌人所在队伍和敌人的编号。一种可能的办法为
RUBY 代码复制
  1. class Game_Troop
  2.   def add_enemy(enemy_id)
  3.     # 稍后说明
  4.     enemy = Game_Enemy.new(队伍编号, 敌人索引, 敌人 ID)
  5.     @enemies << enemy
  6.   end
  7. end

在这里,敌人索引可以设置为@enemies.size,而队伍编号在这里暂时设置为 0。临时添加的敌人不能等同于数据库中的敌人,设置为别的有可能会出错,设置为 0 表示这是临时添加的敌人。
2. 敌人战斗图画面坐标改成可外部变动。
这点要修改Game_Enemy的若干部分,在下面给出提示。
Game_Enemy#initialize:这里看到敌人的若干属性,例如[中途出现(hidden)]和[不死之身(immortal)]等。只有设置正确队伍编号的敌人才能正常设置这个属性,对于临时添加的敌人,这样设置会有问题。可以通过队伍编号(troop_id)是否为 0,进行判断敌人是否是临时添加的。同时你要注意到,这里添加的敌人是什么要根据队伍而定,但是临时添加的敌人由于没有队伍,所以也不能这样指定。可以考虑将此initialize方法加一个参数上去,如果队伍编号为 0,则需要进一步提供敌人ID的信息。
Game_Enemy#screen_x:敌人战斗坐标信息,对于非临时生成的敌人,坐标信息在数据库-队伍中给出。但是对于临时添加的敌人,则不能这样设置。需要借助attr_writer :screen_x来提供设置@screen_x的方法。然后在本方法中判断,如果队伍 ID 为 0,则直接返回设置好的@screen_x即可。
Game_Enemy#screen_y:同理。
3. 敌人战斗精灵增加判断敌人队伍是否增加敌人,来刷新敌人战斗图。
这一块需要你修改Spriteset_Battle,在添加敌人的同时,将敌人的战斗精灵加入场景中。表示敌人战斗图精灵是@enemy_sprites数组,因此你需要想办法将其取出(例如利用attr_reader :enemy_sprites),然后在生成新敌人的同时将他的战斗图加入到场景中。

总之,改起来比较麻烦,范例我就不上了,自己好好研究一下。

点评

收到。看来我要好好研究一下了。先谢过了。  发表于 2015-11-12 21:07

评分

参与人数 1星屑 +150 收起 理由
myownroc + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 14:07

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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