Project1

标题: 又一个问题? [打印本页]

作者: wq365    时间: 2009-2-18 02:24
标题: 又一个问题?
是这样的,我设定到了一张新地图后自动发生战斗,然后战斗结束后我想地图上自动出现一个人与主角对话,然后我做了把,战斗结束这个人怎么也不出现?到底要怎么设定呀?真是急死我啦! [LINE]1,#dddddd[/LINE]此贴于 2009-2-18 17:51:09 被版主darkten提醒,请楼主看到后对本贴做出回应。 [LINE]1,#dddddd[/LINE]版务信息:版主帮忙结贴~
作者: 蓝色蝴蝶    时间: 2009-2-18 02:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: kakarot    时间: 2009-2-18 03:07
LS正解,另外再提供一种方法~
在楼主需要战斗后出现人物的位置放一个事件,把事件图形设成LZ想要的人物,然后把事件的不透明度设为0~在战斗结束后设置这个事件的移动路线,把不透明度改为255就OK啦~
p.s.LZ还可以根据需要在设置不透明度之前填一个传送动画或者把不透明度慢慢改到255,这样可以做出那个人物传送出现或者慢慢出现的效果哦~
以上~
作者: linruyin    时间: 2009-2-18 03:11
战斗胜利结束之后,可能大家需要不同的处理。其实全部可以写在公共事件里面
简单说来,修改方法和原理如下:

1、Scene_Battle 2中找到:update_phase5,这段是有关胜利的设置。如果使用了其它战斗脚本,请在你自己添加的战斗脚本中找到相应位置。修改如下:

  def update_phase5
    # 等待计数大于 0 的情况下
    if @phase5_wait_count > 0
      # 减少等待计数
      @phase5_wait_count -= 1
      # 等待计数为 0 的情况下
      if @phase5_wait_count == 0
        # 显示结果窗口
        @result_window.visible = true
        # 清除主回合标志
        $game_temp.battle_main_phase = false
        # 刷新状态窗口
        @status_window.refresh      
        #####################################################################
        #####################################################################
        common_event = $data_common_events[1]
        $game_system.battle_interpreter.setup(common_event.list, 0)
        #####################################################################
        #####################################################################
      end
      return
    end
    # 按下 C 键的情况下
    if Input.trigger?(Input::C)
      # 战斗结束
      battle_end(0)
    end
  end

红色部分就是添加的内容。意思是战斗处理器调用数据库公共事件1号。

好了。脚本方面设置完毕。下面是数据库部分:

2、数据库方面:

首先先是执行一段内容(我就不多说了,比如等20帧,所有角色显示动画“QQ_高兴”,显示一段文章,根据随机数获得物品等)。反正就是自定义内容先执行。

执行完毕,等待1帧,接着是执行脚本:

    $game_temp.in_battle = false
    $game_party.clear_actions
    for actor in $game_party.actors
      actor.remove_states_battle
    end
    $game_troop.enemies.clear
    if $game_temp.battle_proc != nil
      $game_temp.battle_proc.call(0)
      $game_temp.battle_proc = nil
    end

再等待1帧,再执行脚本:

$scene = Scene_Map.new

最后再等待1帧即可。

这段的原理,第一大段脚本是def battle_end里面的内容,第二段是返回地图。如果不这么执行,事件执行器可能会循环卡住,或者忘记做一些收尾工作。所以中间要等待几帧。

用公共事件1解决
如:在战斗前开启 开关1
在你须要的地方设置  开关1为no时
把你的行走图搞上
如图






作者: 凌辰    时间: 2009-2-18 03:59
其实……直接勾选失败后继续,再做角色行走路线,继续事件不就完了么- -




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