查看: 61|回复: 0

[转载发布] 【脚本】事件复制

[复制链接]
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 37 天

    连续签到: 3 天

    [LV.5]常住居民I

    2028

    主题

    32

    回帖

    7260

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    0
    卡币
    5184
    OK点
    16
    积分
    7260
    发表于 同元一千年八月四日(秋) | 显示全部楼层 |阅读模式
    有没有想过要用把A地图的事件复制到B地图上过呢?
    还是把A地图上的某事件复制出N个呢?
    或是复制完的脚本想要保存在地图上呢?
    现在有了事件复制脚本,以上问题皆可解决!!!

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

    某月某日修了某個bug....
    1. #========================================================#★ 事件複製 -by joe59491#========================================================#========參數設定========================================$Eve_Control = 18  #是否要關閉自動回復地圖上的事件的開關編號#========================================================#========使用說明========================================#複製事件#Eve_To_Map.new(新X座標,新Y座標,複製事件所在地圖的編號,複製事件編號)#新事件编号是从200开始算起的,如果你这张地图内有超过200普通事件,会爆,记得改一下下面的脚本#预设一张图最多复制100个事件(够多了吧?)#刪除事件(全部,針對複製的)#Dis_Eve.new#儲存事件(非自動,針對複製的)#Save_Eve.new #讀取事件(非自動,針對複製的)#Load_Eve.new#p.s. 當開關關閉時,會事件會被保留,否則會消失。#========================================================class Game_Character  attr_accessor   :id                       # IDendclass Eve_To_Map  def initialize(x, y, map_id, eve_id)    map = load_data(sprintf("Data/Map%03d.rxdata", map_id))    #p map.events[7]    for i in 200..300      if $game_map.events[i] == nil        $game_map.events[i] = Game_Event.new($game_map.map_id, map.events[eve_id])        $game_map.events[i].moveto(x,y)        $game_map.events[i].id=i        $scene.spriteset.dispose        $scene.spriteset = Spriteset_Map.new        break      end    end      endendclass Game_Map  attr_accessor :SEve  alias initialize_seve initialize  def initialize    @SEve=[0]    initialize_seve  end  alias update_seve update  def update        if $game_map.need_refresh    #p      end  update_seve  endendclass Save_Eve  def initialize    $game_map.SEve[$game_map.map_id]=[0]    for i in 200..300      if $game_map.events[i] != nil        $game_map.SEve[$game_map.map_id][i-200] = $game_map.events[i]      end    end      endendclass Load_Eve  def initialize    if $game_map.SEve[$game_map.map_id]!=nil      for i in 0..100        if $game_map.SEve[$game_map.map_id][i] != nil and $game_map.SEve[$game_map.map_id][i] != 0          $game_map.events[i+200]=$game_map.SEve[$game_map.map_id][i]        end      end        $scene.spriteset = Spriteset_Map.new    end  endendclass Dis_Eve  def initialize    for i in 200..300      if $game_map.events[i] != nil        $game_map.events[i].erase      end    end    endendclass Interpreter  alias command_201_seve command_201  def command_201    if !$game_switches[$Eve_Control]      Save_Eve.new    end    command_201_seve  endendclass Scene_Map  attr_accessor :spriteset  alias transfer_player_seve transfer_player  def transfer_player        transfer_player_seve    if !$game_switches[$Eve_Control]      Load_Eve.new        end  endend复制代码
    复制代码
                 本帖来自P1论坛作者joe5491,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=303868  若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
    天天去同能,天天有童年!
    回复 论坛版权

    使用道具 举报

    ahome_bigavatar:guest
    ahome_bigavatar:welcomelogin
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2024-5-13 16:24 , Processed in 0.046478 second(s), 43 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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