查看: 1980|回复: 7

[已经解决] 【已解决】脚本里加个条件分歧 包裹携带物品或开关做条件

[复制链接]
梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
发表于 2023-3-31 13:37:16 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 金芒芒 于 2023-3-31 16:25 编辑

如果携带物品‘’战令1‘’=1 那么
enermy_selected_troops =[ [21,21],[21,21,21],[21,21],[21,21,21],[21,21,21,21,21] ]
如果携带物品‘’战令2‘’=1 那么
enermy_selected_troops =[ [5,5],[5,5,5],[5,5],[5,5,5],[5,5,5,5,5] ]

[pre lang="ruby"]  #--------------------------------------------------------------------------
  # ● 命令 : 自定义战斗
  #--------------------------------------------------------------------------
  def command_custom_battle#定义命令_自定义战斗
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
     #$游戏系统。se播放($数据系统。未指定文件或目录
   
  choose_map_main#选择主地图
  map_info = @map_info#地图信息=@地图信息
  #如果选择随机地图随机士兵
  if ! @force_back and map_info[0] == -1#如果!@强制返回并地图信息[0]==-1
    make_random_efs_game#生成随机efs_game
    return
  end
#---------------------------------------------------- ↑↓   
    #如果@强制后退或@强制后退==无
    if ! @force_back or @force_back == nil
    #自定义主战场(0,@地图信息[1],@地图信息[2])
    custom_battle_main(0,@map_info[1],@map_info[2])
    #团队选定部队=@选定部队
    team_selected_troops = @selected_units
    #如果@强制后退或@强制后退==无
    if ! @force_back or @force_back == nil
      #自定义主战场(1,@地图信息[1],@地图信息[2])
      custom_battle_main(1,@map_info[1],@map_info[2])
      #敌人选定部队=@选定部队
      enermy_selected_troops =[ [21,21],[21,21,21],[21,21],[21,21,21],[21,21,21,21,21] ] #@selected_units
      enermy_selected_troops =[ [5,5],[5,5,5],[5,5],[5,5,5],[5,5,5,5,5] ]
      #如果@强制后退或@强制后退==无
      if ! @force_back or @force_back == nil
        
        choose_hero_main#选择英雄主
        selected_hero = @selected_hero#选定的英雄=@选定的英雄
        
        if ! @force_back or @force_back == nil
        team_army = Game_Army_Slg.new(0)
        enermy_army = Game_Army_Slg.new(1)
        team_army.create_empty_army
        enermy_army.create_empty_army

        
        team_army.load_twoD_Array(team_selected_troops,selected_hero)
        enermy_army.load_twoD_Array(enermy_selected_troops)
       # 切换地图画面
      #
        team_army.set_groups_name
        $custom_battle_next_fighter_team = team_army
        $custom_battle_next_fighter_enermy = enermy_army
        $custom_battle_next_map_id = map_info[0]
        

        $game_party.setup_starting_members
        
        
        
    # 设置初期位置的地图##############1356622
        $game_map.setup(19)
    # 主角向初期位置移动
        $game_player.moveto(0, 0)
    # 刷新主角
        $game_player.refresh
    # 执行地图设置的 BGM 与 BGS 的自动切换
        $game_map.autoplay
        
        
        
        
    # 刷新地图 (执行并行事件)
        $game_map.update
    # 切换地图画面
        $scene = Scene_Map.new
      
         # $scene = Scene_Map.new
          #efs_title_main
         
         else # fourth
        @force_back = false
        Graphics.update
        efs_title_update
        end   
         
           
      else # third
      @force_back = false
      Graphics.update
      efs_title_update
      end   
    else # second
    @force_back = false
    Graphics.update
    efs_title_update
    end
  
   else #1st
     @force_back = false
     Graphics.update
     efs_title_update
   end
   
  end[/pre]

用开关也行
[pre lang="ruby"]  #--------------------------------------------------------------------------
  # ● 命令 : 自定义战斗
  #--------------------------------------------------------------------------
  def command_custom_battle#定义命令_自定义战斗
    # 演奏确定 SE
    $game_system.se_play($data_system.decision_se)
     #$游戏系统。se播放($数据系统。未指定文件或目录
   
  choose_map_main#选择主地图
  map_info = @map_info#地图信息=@地图信息
  #如果选择随机地图随机士兵
  if ! @force_back and map_info[0] == -1#如果!@强制返回并地图信息[0]==-1
    make_random_efs_game#生成随机efs_game
    return
  end
#---------------------------------------------------- ↑↓   
    #如果@强制后退或@强制后退==无
    if ! @force_back or @force_back == nil
    #自定义主战场(0,@地图信息[1],@地图信息[2])
    custom_battle_main(0,@map_info[1],@map_info[2])
    #团队选定部队=@选定部队
    team_selected_troops = @selected_units
    #如果@强制后退或@强制后退==无
    if ! @force_back or @force_back == nil
      #自定义主战场(1,@地图信息[1],@地图信息[2])
      custom_battle_main(1,@map_info[1],@map_info[2])
      #敌人选定部队=@选定部队
      if $game_switches[18] = true
      #true是打开,false是关闭
      enermy_selected_troops =[ [21,21],[21,21,21],[21,21],[21,21,21],[21,21,21,21,21] ] #@selected_units
      end
      if $game_switches[19] = true
      enermy_selected_troops =[ [5,5],[5,5,5],[5,5],[5,5,5],[5,5,5,5,5] ]
      end
      #如果@强制后退或@强制后退==无
      if ! @force_back or @force_back == nil
        
        choose_hero_main#选择英雄主
        selected_hero = @selected_hero#选定的英雄=@选定的英雄
        
        if ! @force_back or @force_back == nil
        team_army = Game_Army_Slg.new(0)
        enermy_army = Game_Army_Slg.new(1)
        team_army.create_empty_army
        enermy_army.create_empty_army

        
        team_army.load_twoD_Array(team_selected_troops,selected_hero)
        enermy_army.load_twoD_Array(enermy_selected_troops)
       # 切换地图画面
      #
        team_army.set_groups_name
        $custom_battle_next_fighter_team = team_army
        $custom_battle_next_fighter_enermy = enermy_army
        $custom_battle_next_map_id = map_info[0]
        

        $game_party.setup_starting_members
        
        
        
    # 设置初期位置的地图##############1356622
        $game_map.setup(19)
    # 主角向初期位置移动
        $game_player.moveto(0, 0)
    # 刷新主角
        $game_player.refresh
    # 执行地图设置的 BGM 与 BGS 的自动切换
        $game_map.autoplay
        
        
        
        
    # 刷新地图 (执行并行事件)
        $game_map.update
    # 切换地图画面
        $scene = Scene_Map.new
      
         # $scene = Scene_Map.new
          #efs_title_main
         
         else # fourth
        @force_back = false
        Graphics.update
        efs_title_update
        end   
         
           
      else # third
      @force_back = false
      Graphics.update
      efs_title_update
      end   
    else # second
    @force_back = false
    Graphics.update
    efs_title_update
    end
  
   else #1st
     @force_back = false
     Graphics.update
     efs_title_update
   end
   
  end[/pre]

梦石
24
星屑
8942
在线时间
248 小时
注册时间
2020-12-4
回帖
259

极短24获奖极短23获奖极短22获奖

发表于 2023-3-31 16:03:20 | 显示全部楼层
猫大有做过一个能让游戏开关或变量在被访问的时候根据某对象实时更新的脚本,你可以去看看

上链接——
自更新开关和变量(你用了会知道有多好用)
https://rpg.blue/forum.php?mod=v ... amp;fromuid=2717817
(出处: Project1)
回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-3-31 16:19:16 | 显示全部楼层
纯属小虫 发表于 2023-3-31 16:03
猫大有做过一个能让游戏开关或变量在被访问的时候根据某对象实时更新的脚本,你可以去看看

上链接——

  1.       if $game_switches[18] == true
  2.       #true是打开,false是关闭
  3.       enermy_selected_troops =[ [21,21],[21,21,21],[21,21],[21,21,21],[21,21,21,21,21] ] #@selected_units
  4.       end
  5.       if $game_switches[19] == true
  6.       enermy_selected_troops =[ [5,5],[5,5,5],[5,5],[5,5,5],[5,5,5,5,5] ]
  7.       end
复制代码

谢谢
回复

使用道具 举报

梦石
24
星屑
8942
在线时间
248 小时
注册时间
2020-12-4
回帖
259

极短24获奖极短23获奖极短22获奖

发表于 2023-3-31 16:36:53 | 显示全部楼层
本帖最后由 纯属小虫 于 2023-4-6 16:21 编辑


如果携带物品‘’战令1‘’=1  
》》》》》》
$game_party.item_number(战令1物品ID) == 1

如果携带物品‘’战令2‘’=1
》》》》》》
$game_party.item_number(战令2物品ID) == 1

点评

emmmm 我又用错括号了 o.O  发表于 2023-4-6 10:53
获取item的数量应该是 $game_party.item_number(物品ID) 吧?  发表于 2023-4-5 02:50

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
7296
在线时间
1244 小时
注册时间
2015-8-15
回帖
473
 楼主| 发表于 2023-3-31 16:49:51 | 显示全部楼层
纯属小虫 发表于 2023-3-31 16:36
如果携带物品‘’战令1‘’=1  
》》》》》》
if $game_party.items[(战令1物品的id号)] == 1

这个可以有做任务最好了

点评

是的。。。原始事件做物品数量判定很麻烦;但用脚本也容易出错写错就是了。  发表于 2023-4-3 16:36
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部