Project1

标题: 求解怎么做出只在草丛遇怪啊 [打印本页]

作者: a326973738    时间: 2013-3-13 21:59
标题: 求解怎么做出只在草丛遇怪啊
本人小白哦
正在学习做口袋妖怪
不知道怎么搞成只在草丛遇怪   试过开关  但是要的开关太多了  还没有用



还有怎么设置成猪脚不参与战斗呢???





我的地图不显示名字





作者: wingzeroplus    时间: 2013-3-13 23:36
有个不用脚本的笨办法
设置一个事件并行处理……
先用变量A代入主角的X坐标,用变量B代入主角的Y坐标
当然分歧条件变量A>XXX,变量B>YYY,更改遇敌允许,否则再判断变量A<ZZZ,变量B<PPP也允许,否则禁止遇敌
……当然那些按你地图画的草丛位置坐标自己算一下就行,在需要的地图上放上这个事件即可

至于其他的问题,版规禁止一贴多问,所以……你自己看着办
作者: 熊喵酱    时间: 2013-3-14 12:05
其實用xv或va就可以解決..  不過不推薦額...
一個一個弄應該不會太多阿  在邊緣弄就好了
作者: wabbyzw    时间: 2013-3-14 18:17
我来告诉你一个XP的办法,利用地形标志。当角色的地形标志为(假设是1)1的时候,在把步数的变量带入为0.之后计算,每走一步+1,利用随机数,假设第一次步数到7,那么到7步遇怪,貌似很麻烦。
作者: jhhuang    时间: 2013-3-16 14:09
  1. #==============================================================================
  2. # ■ 队长不加入战斗
  3. #==============================================================================
  4. # 队伍中首战角色在战斗中离队,战斗结束后返回首位.
  5. #              by Jhhuang
  6. #==============================================================================

  7. class Game_Party
  8.   #--------------------------------------------------------------------------
  9.   # ● 战斗开始队长离开
  10.   #     actor_id : 角色 ID
  11.   #--------------------------------------------------------------------------
  12.   def duizhang_remove_actor(actor_id)
  13.     # 删除角色
  14.     @actors.delete($game_actors[actor_id])
  15.     # 还原主角
  16.     $game_player.refresh
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 战斗结束队长归队
  20.   #     actor_id : 角色 ID
  21.   #--------------------------------------------------------------------------
  22.   def duizhang_add_actor(actor_id)
  23.     # 获取角色
  24.     actor = $game_actors[actor_id]
  25.     # 添加角色
  26.     @actors.insert(0,actor)
  27.     # 还原主角
  28.     $game_player.refresh
  29.   end
  30. end
  31. #==============================================================================
  32. # ■ Scene_Battle (分割定义 1)
  33. #------------------------------------------------------------------------------
  34. #  处理战斗画面的类。
  35. #==============================================================================

  36. class Scene_Battle
  37.   # 初始化
  38.   alias duizhang_initialize initialize
  39.   def initialize
  40.     @duizhang = $game_party.actors[0].id
  41.     $game_party.duizhang_remove_actor(@duizhang)
  42.     duizhang_initialize
  43.   end
  44.   alias duizhang_main main
  45.   def main
  46.     duizhang_main
  47.     $game_party.duizhang_add_actor(@duizhang)
  48.   end
  49. end
复制代码

作者: jhhuang    时间: 2013-3-16 14:10
  1. #==============================================================================
  2. # ■ 遇敌用地形标志
  3. #==============================================================================
  4. # 当站在设置地形上时才会遇见敌人.
  5. #              by Jhhuang
  6. #==============================================================================
  7. class Game_Player < Game_Character

  8.   # 设置遇敌的地形标志
  9.   DIREN_TERRAIN = 6
  10.   
  11.   
  12.   #--------------------------------------------------------------------------
  13.   # ● 画面更新
  14.   #--------------------------------------------------------------------------
  15.   def update
  16.     # 本地变量记录移动信息
  17.     last_moving = moving?
  18.     # 移动中、事件执行中、强制移动路线中、
  19.     # 信息窗口一个也不显示的时候
  20.     unless moving? or $game_system.map_interpreter.running? or
  21.            @move_route_forcing or $game_temp.message_window_showing
  22.       # 如果方向键被按下、主角就朝那个方向移动
  23.       case Input.dir4
  24.       when 2
  25.         move_down
  26.       when 4
  27.         move_left
  28.       when 6
  29.         move_right
  30.       when 8
  31.         move_up
  32.       end
  33.     end
  34.     # 本地变量记忆坐标
  35.     last_real_x = @real_x
  36.     last_real_y = @real_y
  37.     super
  38.     # 角色向下移动、画面上的位置在中央下方的情况下
  39.     if @real_y > last_real_y and @real_y - $game_map.display_y > CENTER_Y
  40.       # 画面向下卷动
  41.       $game_map.scroll_down(@real_y - last_real_y)
  42.     end
  43.     # 角色向左移动、画面上的位置在中央左方的情况下
  44.     if @real_x < last_real_x and @real_x - $game_map.display_x < CENTER_X
  45.       # 画面向左卷动
  46.       $game_map.scroll_left(last_real_x - @real_x)
  47.     end
  48.     # 角色向右移动、画面上的位置在中央右方的情况下
  49.     if @real_x > last_real_x and @real_x - $game_map.display_x > CENTER_X
  50.       # 画面向右卷动
  51.       $game_map.scroll_right(@real_x - last_real_x)
  52.     end
  53.     # 角色向上移动、画面上的位置在中央上方的情况下
  54.     if @real_y < last_real_y and @real_y - $game_map.display_y < CENTER_Y
  55.       # 画面向上卷动
  56.       $game_map.scroll_up(last_real_y - @real_y)
  57.     end
  58.     # 不在移动中的情况下
  59.     unless moving?
  60.       # 上次主角移动中的情况
  61.       if last_moving
  62.         # 与同位置的事件接触就判定为事件启动
  63.         result = check_event_trigger_here([1,2])
  64.         # 没有可以启动的事件的情况下
  65.         if result == false
  66.           # 调试模式为 ON 并且按下 CTRL 键的情况下除外
  67.           unless $DEBUG and Input.press?(Input::CTRL)
  68.             # 遇敌计数下降
  69.             if @encounter_count > 0 and $game_map.terrain_tag(@x, @y) == DIREN_TERRAIN
  70.               @encounter_count -= 1
  71.             end
  72.           end
  73.         end
  74.       end
  75.       # 按下 C 键的情况下
  76.       if Input.trigger?(Input::C)
  77.         # 判定为同位置以及正面的事件启动
  78.         check_event_trigger_here([0])
  79.         check_event_trigger_there([0,1,2])
  80.       end
  81.     end
  82.   end
  83. end
复制代码





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