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

Project1

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

[原创发布] 【脚本】事件复制

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
跳转到指定楼层
1
发表于 2013-4-5 02:37:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 joe5491 于 2013-4-6 23:56 编辑

有没有想过要用把A地图的事件复制到B地图上过呢?
还是把A地图上的某事件复制出N个呢?
或是复制完的脚本想要保存在地图上呢?
现在有了事件复制脚本,以上问题皆可解决!!!

p.s.使用方式自行看脚本的注解

某月某日修了某個bug....
  1. #========================================================
  2. #★ 事件複製 -by joe59491
  3. #========================================================

  4. #========參數設定========================================
  5. $Eve_Control = 18  #是否要關閉自動回復地圖上的事件的開關編號
  6. #========================================================

  7. #========使用說明========================================
  8. #複製事件
  9. #Eve_To_Map.new(新X座標,新Y座標,複製事件所在地圖的編號,複製事件編號)
  10. #新事件编号是从200开始算起的,如果你这张地图内有超过200普通事件,会爆,记得改一下下面的脚本
  11. #预设一张图最多复制100个事件(够多了吧?)
  12. #刪除事件(全部,針對複製的)
  13. #Dis_Eve.new
  14. #儲存事件(非自動,針對複製的)
  15. #Save_Eve.new
  16. #讀取事件(非自動,針對複製的)
  17. #Load_Eve.new
  18. #p.s. 當開關關閉時,會事件會被保留,否則會消失。
  19. #========================================================

  20. class Game_Character
  21.   attr_accessor   :id                       # ID
  22. end

  23. class Eve_To_Map
  24.   def initialize(x, y, map_id, eve_id)
  25.     map = load_data(sprintf("Data/Map%03d.rxdata", map_id))
  26.     #p map.events[7]
  27.     for i in 200..300
  28.       if $game_map.events[i] == nil
  29.         $game_map.events[i] = Game_Event.new($game_map.map_id, map.events[eve_id])
  30.         $game_map.events[i].moveto(x,y)
  31.         $game_map.events[i].id=i
  32.         $scene.spriteset.dispose
  33.         $scene.spriteset = Spriteset_Map.new
  34.         break
  35.       end
  36.     end   
  37.   end
  38. end

  39. class Game_Map
  40.   attr_accessor :SEve
  41.   alias initialize_seve initialize
  42.   def initialize
  43.     @SEve=[0]
  44.     initialize_seve
  45.   end
  46.   alias update_seve update
  47.   def update
  48.    
  49.     if $game_map.need_refresh
  50.     #p  
  51.     end
  52.   update_seve
  53.   end
  54. end

  55. class Save_Eve
  56.   def initialize
  57.     $game_map.SEve[$game_map.map_id]=[0]
  58.     for i in 200..300
  59.       if $game_map.events[i] != nil
  60.         $game_map.SEve[$game_map.map_id][i-200] = $game_map.events[i]
  61.       end
  62.     end   
  63.   end
  64. end

  65. class Load_Eve
  66.   def initialize
  67.     if $game_map.SEve[$game_map.map_id]!=nil
  68.       for i in 0..100
  69.         if $game_map.SEve[$game_map.map_id][i] != nil and $game_map.SEve[$game_map.map_id][i] != 0
  70.           $game_map.events[i+200]=$game_map.SEve[$game_map.map_id][i]
  71.         end
  72.       end   
  73.     $scene.spriteset = Spriteset_Map.new
  74.     end
  75.   end
  76. end

  77. class Dis_Eve
  78.   def initialize
  79.     for i in 200..300
  80.       if $game_map.events[i] != nil
  81.         $game_map.events[i].erase
  82.       end
  83.     end  
  84.   end
  85. end

  86. class Interpreter
  87.   alias command_201_seve command_201
  88.   def command_201
  89.     if !$game_switches[$Eve_Control]
  90.       Save_Eve.new
  91.     end
  92.     command_201_seve
  93.   end
  94. end

  95. class Scene_Map
  96.   attr_accessor :spriteset
  97.   alias transfer_player_seve transfer_player
  98.   def transfer_player
  99.    
  100.     transfer_player_seve
  101.     if !$game_switches[$Eve_Control]
  102.       Load_Eve.new   
  103.     end
  104.   end
  105. end
复制代码

Lv3.寻梦者

唯一的信徒

梦石
0
星屑
1665
在线时间
1357 小时
注册时间
2013-1-29
帖子
1637
2
发表于 2013-4-5 08:32:37 | 只看该作者
记得有《扔东西脚本》这个东西的吧。。。
『我只是一个正在潜心修炼的渣乐师罢了』
Dear Time\(^o^)/~


假如上面的图片挂了的话麻烦各位去发个帖 @ 一下 orzFly 让他修复 deartime
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

3
发表于 2013-4-6 20:47:12 | 只看该作者
  1. $Eve_Control = 18  #是否要關閉自動回復地圖上的事件的開關編號
复制代码
是什么意思···打开之后复制的事件会被全部还原?
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2013-4-6 20:54:26 | 只看该作者
  1.         $scene.spriteset = Spriteset_Map.new
复制代码
37行有错误求解释···
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
5
 楼主| 发表于 2013-4-6 21:59:54 | 只看该作者
chd114 发表于 2013-4-6 20:54
37行有错误求解释···

使用多功能事件吧...這是他的前身...有bug沒修掉...
多功能事件內已經包含了這腳本的所有功能....

傳送點:http://rpg.blue/thread-304023-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
182 小时
注册时间
2012-2-11
帖子
233
6
发表于 2013-4-6 23:22:48 | 只看该作者
nice。复制事件的确是事件党常用的功能呢~

其实我的机关陷阱样例里面也有复制事件(链接见签名)
里面是这样写的:
  1. module EventHelper
  2.   def self.get_rpg_event(event_id, map_id=$game_map.map_id)
  3.     map = $game_map.instance_variable_get(:@map)
  4.     if map_id != $game_map.map_id
  5.       map = load_data(sprintf("Data/Map%03d.rvdata2", map_id))
  6.     end
  7.     return map.events[event_id]
  8.   end

  9. end
  10. class Game_Event
  11.   attr_accessor :id
  12.   attr_accessor :erased
  13. end

  14. class Game_Map
  15.   # rpg_evt:需要刷新的事件RPG::Event, 用上面的get_rpg_event获得
  16.   # xy:坐标
  17.   # dir:朝向
  18.   # ss:需要打开的独立开关列表("ABCD")
  19.   def spawn_event(rpg_evt, x, y, dir=2, ss="")
  20.     new_id = 1 + @map.events.keys.max
  21.     new_evt = RPG::Event.new(x, y)
  22.     new_evt.id = new_id
  23.     new_evt.pages = rpg_evt.pages
  24.     @map.events[new_id] = new_evt

  25.     @events[new_id] = Game_Event.new(@map_id, new_evt)
  26.     @events[new_id].set_direction(dir)
  27.     ss.each_char{|c| $game_self_switches[[@map_id, new_id, c]] = true }
  28.    
  29.     # 刷新图块
  30.     refresh_tile_events
  31.     SceneManager.scene.instance_eval { @spriteset.refresh_characters }
  32.   end
  33. end
复制代码

点评

恩 自己做的版本都大同小异。毕竟这个是事件党很常用的功能嘛  发表于 2013-4-7 20:12
感覺上差不多呢!不過多了獨立開關的控制也不錯!  发表于 2013-4-7 00:03
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
122 小时
注册时间
2010-6-22
帖子
54
7
发表于 2013-4-19 16:44:45 | 只看该作者
{:2_253:}那个……LZ,其实我对你范例里面的arpg系统也很感兴趣,因为刚好我最近在做的某解密类用到了技能解密……如果改成可以快捷键使用的话就方便多了,于是可以给个原版么?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
8
 楼主| 发表于 2013-4-19 17:01:39 | 只看该作者
Judgement 发表于 2013-4-19 16:44
那个……LZ,其实我对你范例里面的arpg系统也很感兴趣,因为刚好我最近在做的某解密类用到了技能 ...


其實範例裡面已經有ARPG系統了....

只是....你要自己寫快捷技能的腳本(雖然我有),因為我手邊的ARPG腳本已經被我整合的不像樣了...(神馬網路腳本,中文輸入腳本、彈幕遊戲腳本之類的...)

自已想辦法研究看看吧...

p.s.話說真正原版在這:http://forum.gamer.com.tw/G2.php?bsn=04918&sn=2056(我兩年前下載的...)

点评

囧,似乎要翻墙才能下  发表于 2013-4-19 17:14
就是因为被改的太多才想再要个原版啊-_-,嘛,总之谢谢了  发表于 2013-4-19 17:12
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
122 小时
注册时间
2010-6-22
帖子
54
9
发表于 2013-4-19 17:19:05 | 只看该作者
joe5491 发表于 2013-4-19 17:01
其實範例裡面已經有ARPG系統了....

只是....你要自己寫快捷技能的腳本(雖然我有),因為我手邊的ARPG腳 ...

{:2_254:} 不懂是因为IP问题还是下载链接失效了,下不了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
10
 楼主| 发表于 2013-4-19 22:01:43 | 只看该作者
本帖最后由 joe5491 于 2013-4-19 22:05 编辑
Judgement 发表于 2013-4-19 17:19
不懂是因为IP问题还是下载链接失效了,下不了


2008年的東西了,還能期望原載點還存活嗎....

p.s.五年了...還好我兩年前有先下載....

好吧,翻出來的原始檔案.... arpgclass.rar (210.33 KB, 下载次数: 54)

不過字體之類的要自行解決....然後其實功能真的不是很齊全....(最基本ARPG)

点评

因为不是用来做arpg,这种功能不齐全刚好是我要的(要改一个齐全的arpg反而麻烦多了- -)  发表于 2013-4-20 11:14
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-6-7 03:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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