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

Project1

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

[已经解决] 夏娜大人的"在游戏运行中制作事件 "腳本 如何指定地圖ID?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
461 小时
注册时间
2008-11-19
帖子
607
跳转到指定楼层
1
发表于 2012-5-15 17:24:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 sai90306 于 2012-5-15 19:35 编辑

請問夏娜大人的"在游戏运行中制作事件 "腳本如何修改才能添加指定地圖ID?
也就是主角在地圖1製作地圖2的事件 有可能實現嗎?
例如
produce_event(地圖ID,x,y,name,character_name)
這樣的形式
是在
Game_Event.new($game_map.map_id,produce_event(x,y,name,character_name))
這裡修改$game_map.map_id為指定變數嗎?

# 脚本说明:
# ● 在游戏运行中制作事件
# By:灼眼的夏娜
class Game_Map
attr_reader   :map
end
class Game_Character
attr_accessor :character_name
end
class Scene_Map
def conjure(x,y,name,character_name)
   $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,produce_event(x,y,name,character_name))
   $game_map.map.events[$game_map.events.size] = produce_event(x,y,name,character_name)
   @spriteset.dispose
   @spriteset = Spriteset_Map.new
end
def produce_event(x,y,name,character_name)
   e = RPG::Event.new(x,y)
   e.id = $game_map.events.size
   e.name = name
   e.pages = [RPG::Event::Page.new]   
   e.pages[0].graphic = RPG::Event::Page::Graphic.new
   e.pages[0].graphic.character_name = character_name   
   e.pages[0].step_anime = true
   e.pages[0].through = true
   #
   # 事件的一些其他属性大家可以自行设置
   #
   return e
end
end

点评

直接懸賞上加阿 hahaha  发表于 2012-5-15 19:57
馬山?是...@@?  发表于 2012-5-15 19:57
小狗狗!~你哪來的300?????????  发表于 2012-5-15 19:53
我也增加300!  发表于 2012-5-15 19:35
難道你是我的馬甲....還是....我是你的馬甲.... @__@  发表于 2012-5-15 19:19

Lv1.梦旅人

梦石
0
星屑
65
在线时间
400 小时
注册时间
2005-10-24
帖子
634
2
发表于 2012-5-15 18:02:21 | 只看该作者
插入事件的完整语句是
  1. $game_map.events[$game_map.events.size+1] = Game_Event.new($game_map.map_id,produce_event(x,y,name,character_name))
复制代码
光修改Game_Event.new()的参数只是改变事件自带的变量,并不能改变插入的目标地图。
事件党解决方案:在生成事件目标地图(地图2)放置自动事件,执行生成脚本;本地图(地图1)触发的事件打开那个自动事件的自动运行开关
脚本党解决方案:可以延迟执行非本地图的生成事件代码至Game_Map::setup | 可以改mapNNN.rxdata | 总之还有很多方法..
回复

使用道具 举报

Lv1.梦旅人

梦·贤者

梦石
0
星屑
50
在线时间
1141 小时
注册时间
2007-12-15
帖子
4100
3
发表于 2012-5-15 18:12:01 | 只看该作者

点评

這個可以製作事件沒錯的 但是只能在主角所在的地圖上發動@@  发表于 2012-5-15 19:39
http://rpg.blue/home.php?mod=space&uid=34951&do=blog&id=12799
回复

使用道具 举报

Lv3.寻梦者

双子人

梦石
0
星屑
3185
在线时间
3618 小时
注册时间
2009-4-4
帖子
4154

开拓者

4
发表于 2012-5-15 18:17:32 | 只看该作者
本帖最后由 hys111111 于 2012-5-15 18:18 编辑
  1. $game_map.map_id
复制代码
指的是当前地图ID,如果想在一号地图设置二号地图的事件
$game_map.map_id 必须要改为 2,其实不可以这样
所以最终要改成:
  1. # 脚本说明:
  2. # ● 在游戏运行中制作事件
  3. # By:灼眼的夏娜
  4. class Game_Map
  5. attr_reader   :map
  6. end
  7. class Game_Character
  8. attr_accessor :character_name
  9. end
  10. class Scene_Map
  11. def conjure(map_id,x,y,name,character_name)
  12.    @map = Game_Map.new.setup(map_id)
  13.    @map.events[$game_map.events.size+1] = Game_Event.new(map_id,produce_event(x,y,name,character_name))
  14.    @map.map.events[$game_map.events.size] = produce_event(x,y,name,character_name)
  15.    @spriteset.dispose
  16.    @spriteset = Spriteset_Map.new
  17. end
  18. def produce_event(map_id,x,y,name,character_name)
  19.    e = RPG::Event.new(x,y)
  20.    e.id = @map.events.size
  21.    e.name = name
  22.    e.pages = [RPG::Event::Page.new]   
  23.    e.pages[0].graphic = RPG::Event::Page::Graphic.new
  24.    e.pages[0].graphic.character_name = character_name   
  25.    e.pages[0].step_anime = true
  26.    e.pages[0].through = true
  27.    #
  28.    # 事件的一些其他属性大家可以自行设置
  29.    #
  30.    return e
  31. end
  32. end
复制代码
其实以上脚本指数更改了一下地图数据而已

点评

痾.= =..最基本的我竟然不會...請問這腳本怎麼在地圖事件中調用?  发表于 2012-5-16 00:20
常常受你幫助 謝謝囉!  发表于 2012-5-15 19:36
經提醒才發現 , 原來我們的帳號這麼類似...難道你是我的馬甲?hahah...(我沒馬甲的)  发表于 2012-5-15 19:10

评分

参与人数 1星屑 +416 收起 理由
lsu666666 + 416 我是純支持小狗狗來的!!~ 熱心的人.

查看全部评分

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
3 小时
注册时间
2012-5-12
帖子
29
5
发表于 2012-5-15 23:18:07 | 只看该作者
(*^__^*) 嘻嘻……

评分

参与人数 1星屑 -60 收起 理由
zhixin1997 -60 再见到就禁言

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-26 20:36

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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