赞 | 406 |
VIP | 0 |
好人卡 | 11 |
积分 | 390 |
经验 | 242285 |
最后登录 | 2024-11-26 |
在线时间 | 5719 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 39021
- 在线时间
- 5719 小时
- 注册时间
- 2006-11-10
- 帖子
- 6619
|
本帖最后由 灯笼菜刀王 于 2018-7-21 10:39 编辑
可以参考game troop, 这里是读取数据库某ID的troop的资料, 然后把它里面的怪按塞到一个数组里储存, 用index来独立化同样ID的怪。
用这个思路, 可以想想, 你要的是 用事件来关联怪的数据, 那把事件ID当做key, 建个哈希表来储存就好了。
为了通用性, 用全局变量来做哈希表
$arpg_troop={}
$arpg_troop[$game_map.events[id]] = Game_Enemy.new(0,id)
这样就让事件和敌人关联起来了 $arpg_troop[@event_id] 得到的就是这个事件的"敌人属性"
当然,直接这样做会有问题的, 你要先到game_enemy里, 把troop_id = 0 的情况定义为 读取 数据库的敌人而不是队伍敌人
然后在考虑怎么分辨地图事件, 只让需要当敌人的事件塞到哈希表里, (最直接的当然是用名字或者事件备注法来判断, 预先在脚本里设置好对应的ID和敌人然后像默认队伍一样处理更是好方法~)
最后,考虑要在什么时候加载这个哈希表, 如何加载之类的(重定义 scene_map的初始化是一个方法, 直接在场所转移的时候加载下个地图的敌人更是一个好方法, 在每个地图用自动执行来加载是最简单的方法) |
|