赞 | 0 |
VIP | 77 |
好人卡 | 306 |
积分 | 1 |
经验 | 85662 |
最后登录 | 2023-11-23 |
在线时间 | 1782 小时 |
Lv1.梦旅人 虱子
- 梦石
- 0
- 星屑
- 121
- 在线时间
- 1782 小时
- 注册时间
- 2010-6-19
- 帖子
- 3597
|
5楼
楼主 |
发表于 2012-5-16 12:13:13
|
只看该作者
其实我是用放置提取物脚本做的ARPG后发现某地图的怪物一出去再进去就全被重置了- -
查看脚本后发现是因为用名字来定义的怪物的名字被修改了,因此再进去时不能重新加载@item
于是打算用个old_name的参数来确定那个事件是否是怪物……
下面这个是自己改的Game_Event中的initialize,怪物的命名方法是[mob-ID,Color]- class Game_Event
- attr_accessor :item
- #=============================================================================
- # 黑幕敌人
- #=============================================================================
- def initialize(map_id, event) # 可能会发生冲突
- super()
- @map_id = map_id
- @event = event
- @id = @event.id
- @erased = false
- @starting = false
- @through = true
- #===========================================================================
- # 会发生冲突的地方
- #===========================================================================
- if @event.name.gsub("mob-"){""} != @event.name
- enemy_id = @event.name.gsub("mob-"){""}.split(",")[0]
- @item = L_ARPG_enemy.new(map_id,@id.to_i,enemy_id.to_i).clone
- event_c = @event.name.gsub("mob-"){""}.split(",")[1]
- event_c = "0" if event_c.nil?
- @event.name = $data_enemies[enemy_id.to_i].name + "," + event_c ######## 事件的名字被更改掉了
- elsif @event.name.gsub("animal-"){""} != @event.name
- enemy_id = @event.name.gsub("animal-"){""}.split(",")[0]
- @item = L_ARPG_animal.new(map_id,@id.to_i,enemy_id.to_i).clone
- event_c = @event.name.gsub("animal-"){""}.split(",")[1]
- event_c = "0" if event_c.nil?
- @event.name = $data_enemies[enemy_id.to_i].name + "," + event_c
- else
- @item = nil
- end
- #===========================================================================
- # 会发生冲突的地方
- #===========================================================================
- # 初期位置的移动
- moveto(@event.x, @event.y)
- refresh
- end
- end
复制代码 因为还有个显示名字的脚本所以直接改掉事件的名字了
而在Game_Map的地图读取中原本读取的是Drop_Item里的地图,现在先改回load_data了,这个问题暂时解决,但是不知道以后还会不会跳Bug……
所以还是想给事件弄个不会被更改的old_name参数来确定那个事件是否是怪物,如果不能在RPG::Event里定义的话求指教…… |
|