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

Project1

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

[已经解决] 独立变量如何用?

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
88
在线时间
331 小时
注册时间
2010-10-24
帖子
778
跳转到指定楼层
1
发表于 2011-3-15 13:41:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 a19981007a 于 2011-3-15 18:04 编辑

独立变量怎么用了,急求.....
正在做纯事件的ARPG,但是没一个怪都要新建一个变量很麻烦,所有找到了独立变量,
却不会用,哪位会用啊.... 拜托啦。

Lv1.梦旅人

梦石
0
星屑
88
在线时间
331 小时
注册时间
2010-10-24
帖子
778
2
 楼主| 发表于 2011-3-15 17:27:00 | 只看该作者
没人回答吗?难道没有人知道吗?
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
3
发表于 2011-3-15 17:31:30 | 只看该作者
回复 a19981007a 的帖子

本来看标题以为打错字了....
准备活动:
Game_Map类
67~68行之间追加
    $game_self_var[map_id] = [] if $game_self_var[map_id] == nil
81~83行之间追加
      $game_self_var[map_id] = [] if $game_self_var[map_id] == nil
Scene_Title类
128~129
    $game_self_var      = []
Scene_Save
82~83
    Marshal.dump($game_self_var, file)
Scene_Load
82~83
    $game_self_var      = Marshal.load(file)
好了,准备完毕
把下面代码插到Main前(建议Interpreter 7后,改为Interpreter 8)
  1. #==============================================================================
  2. # ■ Interpreter (分割定义 8)
  3. #------------------------------------------------------------------------------
  4. #  执行事件命令的解释器。本类在 Game_System 类
  5. # 和 Game_Event 类的内部使用。
  6. #==============================================================================

  7. class Interpreter
  8.   #--------------------------------------------------------------------------
  9.   # ● 获取变量
  10.   #     variable_id : 变量 ID
  11.   #--------------------------------------------------------------------------
  12.   def [](variable_id)
  13.     return 0 if @event_id == 0
  14.     if $game_self_var[$game_map.map_id][@event_id][variable_id] == nil
  15.       return 0
  16.     else
  17.       return $game_self_var[$game_map.map_id][@event_id][variable_id]
  18.     end
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● 设置变量
  22.   #     variable_id : 变量 ID
  23.   #     value       : 变量的值
  24.   #--------------------------------------------------------------------------
  25.   def []=(variable_id, value)
  26.     return if @event_id == 0
  27.     $game_self_var[$game_map.map_id][@event_id][variable_id] = value
  28.   end
  29. end
复制代码
使用方法:
事件脚本里面
a = self[id]
让a变量带入第id个值,比如
a = self[8]

self[id] = XXX
让第id个值等于XXX,比如
self[7] = 100

其他事件调用方法:
XXXX = $game_self_var[地图ID][事件ID][变量ID]
$game_self_var[地图ID][事件ID][变量ID] = XXXX
附:范例
Project1.rar (187.09 KB, 下载次数: 120)
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
88
在线时间
331 小时
注册时间
2010-10-24
帖子
778
4
 楼主| 发表于 2011-3-15 18:03:25 | 只看该作者
回复 沙漠点灰 的帖子

我说的是这个独立变量怎么用....看说明看不懂啊
你的那个也不知道。
看附件....
再追加一些经验~

◆独立变量.rar

315.32 KB, 下载次数: 56

回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
323 小时
注册时间
2010-8-21
帖子
666
5
发表于 2011-3-15 18:16:28 | 只看该作者
回复 a19981007a 的帖子

你的那个好麻烦,不如用我的....附件里边有....
你的那个有
  def add_link(id,event_id = @event_id)
    eventa = $game_map.events[event_id]
    eventa.add_link(id)
    $game_self_switches[eventa.self_s_name(id)] = 0
  end
  def delete_link(id,event_id = @event_id)
    eventa = $game_map.events[event_id]
    eventa.delete_link(id)
    num = $game_self_switches[eventa.self_s_name(id)]
    $game_self_switches[eventa.self_s_name(id)] = 0
    return num
  end
  def get_val(map_id,event_id,v_id)
    num = $game_self_switches[[map_id,event_id,v_id.to_s + "z"]]
    return num == nil ? 0 : num
  end
  def set_val(map_id,event_id,v_id,value = 0)
    $game_self_switches[[map_id,event_id,v_id.to_s + "z"]] = value
    $game_map.events[event_id].refresh
  end  


用 什么
set_link(map_id,event_id,v_id,value = 0)
get_val(map_id,event_id,v_id)
来获取(get_val)变量,设置(set_link)变量,我的 self[id]就好了
>>猛戳>>MetalSagaR游戏主页<<这里<<
欢迎提供您的意见
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
88
在线时间
331 小时
注册时间
2010-10-24
帖子
778
6
 楼主| 发表于 2011-3-15 18:22:02 | 只看该作者
回复 沙漠点灰 的帖子

哦,你的还并不是很了解。先加你为好友吧....以后慢慢研究
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-25 12:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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