Project1

标题: 话说如何通过地图备注获取地图的ID? [打印本页]

作者: 漫天游弋    时间: 2015-11-19 02:12
标题: 话说如何通过地图备注获取地图的ID?
本帖最后由 漫天游弋 于 2015-11-19 02:20 编辑

如题;
关于va如何获取地图备注只要在 Game_Map里加上下面这一段就行了【应该都知道= =
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 获取显示备注  #在其它地方调用可以语句为:$game_map.note
  3. #--------------------------------------------------------------------------
  4.   def note
  5.     @map.note
  6.   end


但是..
好像地图的备注和地图的ID没啥关联性,所以得来此求助、、


好吧,如果看不懂标题的话我就举个栗子:
角色在地图1,获取了当前地图的备注之后,通过自己定的算法得出【地图2的备注】,然后如何通过【地图2的备注】来获取【地图2的地图ID】呢?
作者: 喵呜喵5    时间: 2015-11-19 07:18
新建一个哈希表,把每个地图的备注和地图id关联起来,需要的时候,查表
作者: 漫天游弋    时间: 2015-11-21 02:06
本帖最后由 漫天游弋 于 2015-11-23 13:07 编辑

果然看上去有点乱【明明事件就可以弄好的,为毛要用脚本啦!
  1. class Game_Interpreter  
  2. #=========================================
  3. #  通过地图备注查找地图id                 by_漫天游弋
  4. #==============================
  5. #变量备忘
  6. #$game_variables[9]  =>  A类地图的备注
  7. #$game_variables[8]  =>  B类世界的备注
  8. #$game_variables[7]  =>  A类地图ID
  9. #$game_variables[6]  =>  B类世界ID
  10. #$game_variables[5] = 玩家的地图y
  11. #$game_variables[4] = 玩家的地图x
  12. #==============================
  13.   def map_hash_beta
  14. # 哈希表
  15.     map_hash = {
  16.     #A类地图的备注
  17.     "1000" =>3,
  18.     "1001" =>nil,
  19.     "1002" =>nil,
  20.   
  21.     #B类地图的备注
  22.     "1100" =>2,
  23.     "1101" =>nil,
  24.     "1102" =>nil
  25.     }
  26. #==============================
  27. # 保存玩家坐标
  28.   $game_variables[4] = $game_player.x
  29.   $game_variables[5] = $game_player.y
  30. #=============================
  31. # 判断语句
  32.   if $game_map.note.to_i < 1100 #当前为A类的地图

  33.     $game_variables[8] = $game_map.note.to_i #B类地图的备注
  34.     $game_variables[8] +=100
  35.     #哈希表查找: B类的地图ID => 地图备注
  36.     $game_variables[6] = map_hash[$game_variables[8].to_s].to_i

  37.     #切换到B类的地图
  38.     $game_player.reserve_transfer($game_variables[6],
  39.     $game_variables[4], $game_variables[5], 0)  
  40.     $game_temp.fade_type = 2  #无渐变
  41.   else  #当前为B类地图

  42.     $game_variables[9] = $game_map.note.to_i #A类地图的备注
  43.     $game_variables[9] -=100
  44.     #哈希表查找: A类地图ID => 地图备注
  45.     $game_variables[7] = map_hash[$game_variables[9].to_s].to_i
  46.    
  47.     #切换到A类地图
  48.     $game_player.reserve_transfer($game_variables[7],
  49.     $game_variables[4], $game_variables[5], 0)  
  50.     $game_temp.fade_type = 2
  51. end
  52.   

  53. end #map_hash_beta
  54. end   #class
复制代码

作者: 喵呜喵5    时间: 2015-11-21 07:29
漫天游弋 发表于 2015-11-21 02:06
果然看上去有点乱【明明事件就可以弄好的,为毛要用脚本啦! ...

不麻烦的话你怎么能意识到你想通过备注来定位某张地图的思路有多蠢
作者: 喵呜喵5    时间: 2015-11-23 10:17
没看懂你要实现什么效果

区分A类地图和B类地图是为了做什么?
单纯的区分的话,在地图载入时读取一下备注就可以区分了
作者: 漫天游弋    时间: 2015-11-23 13:06
喵呜喵5 发表于 2015-11-23 10:17
没看懂你要实现什么效果

区分A类地图和B类地图是为了做什么?

好吧,原来是我没表达清楚。
其实我上面那个代码已经把思路说的很明显了。
我想做一个A类地图和B类地图可以随时切换的功能。
说通俗一点就是表世界和里世界的地图可以互相切换。
比如角色在A类地图的地图1,使用切换功能,就会转到B类地图的地图1,反过来也一样呢。
作者: 喵呜喵5    时间: 2015-11-23 14:11
漫天游弋 发表于 2015-11-23 13:06
好吧,原来是我没表达清楚。
其实我上面那个代码已经把思路说的很明显了。
我想做一个A类地图和 ...

表里世界一一对应的话,A的备注里写上B的ID,B的备注里写上A的ID,结束




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1