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

Project1

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

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

[复制链接]

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
跳转到指定楼层
1
发表于 2023-3-31 13:37:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 金芒芒 于 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] ]

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 命令 : 自定义战斗
  3.   #--------------------------------------------------------------------------
  4.   def command_custom_battle#定义命令_自定义战斗
  5.     # 演奏确定 SE
  6.     $game_system.se_play($data_system.decision_se)
  7.      #$游戏系统。se播放($数据系统。未指定文件或目录
  8.  
  9.   choose_map_main#选择主地图
  10.   map_info = @map_info#地图信息=@地图信息
  11.   #如果选择随机地图随机士兵
  12.   if ! @force_back and map_info[0] == -1#如果!@强制返回并地图信息[0]==-1
  13.     make_random_efs_game#生成随机efs_game
  14.     return
  15.   end
  16. #---------------------------------------------------- ↑↓   
  17.     #如果@强制后退或@强制后退==无
  18.     if ! @force_back or @force_back == nil
  19.     #自定义主战场(0,@地图信息[1],@地图信息[2])
  20.     custom_battle_main(0,@map_info[1],@map_info[2])
  21.     #团队选定部队=@选定部队
  22.     team_selected_troops = @selected_units
  23.     #如果@强制后退或@强制后退==无
  24.     if ! @force_back or @force_back == nil
  25.       #自定义主战场(1,@地图信息[1],@地图信息[2])
  26.       custom_battle_main(1,@map_info[1],@map_info[2])
  27.       #敌人选定部队=@选定部队
  28.       enermy_selected_troops =[ [21,21],[21,21,21],[21,21],[21,21,21],[21,21,21,21,21] ] #@selected_units
  29.       enermy_selected_troops =[ [5,5],[5,5,5],[5,5],[5,5,5],[5,5,5,5,5] ]
  30.       #如果@强制后退或@强制后退==无
  31.       if ! @force_back or @force_back == nil
  32.  
  33.         choose_hero_main#选择英雄主
  34.         selected_hero = @selected_hero#选定的英雄=@选定的英雄
  35.  
  36.         if ! @force_back or @force_back == nil
  37.         team_army = Game_Army_Slg.new(0)
  38.         enermy_army = Game_Army_Slg.new(1)
  39.         team_army.create_empty_army
  40.         enermy_army.create_empty_army
  41.  
  42.  
  43.         team_army.load_twoD_Array(team_selected_troops,selected_hero)
  44.         enermy_army.load_twoD_Array(enermy_selected_troops)
  45.        # 切换地图画面
  46.       #
  47.         team_army.set_groups_name
  48.         $custom_battle_next_fighter_team = team_army
  49.         $custom_battle_next_fighter_enermy = enermy_army
  50.         $custom_battle_next_map_id = map_info[0]
  51.  
  52.  
  53.         $game_party.setup_starting_members
  54.  
  55.  
  56.  
  57.     # 设置初期位置的地图##############1356622
  58.         $game_map.setup(19)
  59.     # 主角向初期位置移动
  60.         $game_player.moveto(0, 0)
  61.     # 刷新主角
  62.         $game_player.refresh
  63.     # 执行地图设置的 BGM 与 BGS 的自动切换
  64.         $game_map.autoplay
  65.  
  66.  
  67.  
  68.  
  69.     # 刷新地图 (执行并行事件)
  70.         $game_map.update
  71.     # 切换地图画面
  72.         $scene = Scene_Map.new
  73.  
  74.          # $scene = Scene_Map.new
  75.           #efs_title_main
  76.  
  77.          else # fourth
  78.         @force_back = false
  79.         Graphics.update
  80.         efs_title_update
  81.         end   
  82.  
  83.  
  84.       else # third
  85.       @force_back = false
  86.       Graphics.update
  87.       efs_title_update
  88.       end   
  89.     else # second
  90.     @force_back = false
  91.     Graphics.update
  92.     efs_title_update
  93.     end
  94.  
  95.    else #1st
  96.      @force_back = false
  97.      Graphics.update
  98.      efs_title_update
  99.    end
  100.  
  101.   end


用开关也行
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 命令 : 自定义战斗
  3.   #--------------------------------------------------------------------------
  4.   def command_custom_battle#定义命令_自定义战斗
  5.     # 演奏确定 SE
  6.     $game_system.se_play($data_system.decision_se)
  7.      #$游戏系统。se播放($数据系统。未指定文件或目录
  8.  
  9.   choose_map_main#选择主地图
  10.   map_info = @map_info#地图信息=@地图信息
  11.   #如果选择随机地图随机士兵
  12.   if ! @force_back and map_info[0] == -1#如果!@强制返回并地图信息[0]==-1
  13.     make_random_efs_game#生成随机efs_game
  14.     return
  15.   end
  16. #---------------------------------------------------- ↑↓   
  17.     #如果@强制后退或@强制后退==无
  18.     if ! @force_back or @force_back == nil
  19.     #自定义主战场(0,@地图信息[1],@地图信息[2])
  20.     custom_battle_main(0,@map_info[1],@map_info[2])
  21.     #团队选定部队=@选定部队
  22.     team_selected_troops = @selected_units
  23.     #如果@强制后退或@强制后退==无
  24.     if ! @force_back or @force_back == nil
  25.       #自定义主战场(1,@地图信息[1],@地图信息[2])
  26.       custom_battle_main(1,@map_info[1],@map_info[2])
  27.       #敌人选定部队=@选定部队
  28.       if $game_switches[18] = true
  29.       #true是打开,false是关闭
  30.       enermy_selected_troops =[ [21,21],[21,21,21],[21,21],[21,21,21],[21,21,21,21,21] ] #@selected_units
  31.       end
  32.       if $game_switches[19] = true
  33.       enermy_selected_troops =[ [5,5],[5,5,5],[5,5],[5,5,5],[5,5,5,5,5] ]
  34.       end
  35.       #如果@强制后退或@强制后退==无
  36.       if ! @force_back or @force_back == nil
  37.  
  38.         choose_hero_main#选择英雄主
  39.         selected_hero = @selected_hero#选定的英雄=@选定的英雄
  40.  
  41.         if ! @force_back or @force_back == nil
  42.         team_army = Game_Army_Slg.new(0)
  43.         enermy_army = Game_Army_Slg.new(1)
  44.         team_army.create_empty_army
  45.         enermy_army.create_empty_army
  46.  
  47.  
  48.         team_army.load_twoD_Array(team_selected_troops,selected_hero)
  49.         enermy_army.load_twoD_Array(enermy_selected_troops)
  50.        # 切换地图画面
  51.       #
  52.         team_army.set_groups_name
  53.         $custom_battle_next_fighter_team = team_army
  54.         $custom_battle_next_fighter_enermy = enermy_army
  55.         $custom_battle_next_map_id = map_info[0]
  56.  
  57.  
  58.         $game_party.setup_starting_members
  59.  
  60.  
  61.  
  62.     # 设置初期位置的地图##############1356622
  63.         $game_map.setup(19)
  64.     # 主角向初期位置移动
  65.         $game_player.moveto(0, 0)
  66.     # 刷新主角
  67.         $game_player.refresh
  68.     # 执行地图设置的 BGM 与 BGS 的自动切换
  69.         $game_map.autoplay
  70.  
  71.  
  72.  
  73.  
  74.     # 刷新地图 (执行并行事件)
  75.         $game_map.update
  76.     # 切换地图画面
  77.         $scene = Scene_Map.new
  78.  
  79.          # $scene = Scene_Map.new
  80.           #efs_title_main
  81.  
  82.          else # fourth
  83.         @force_back = false
  84.         Graphics.update
  85.         efs_title_update
  86.         end   
  87.  
  88.  
  89.       else # third
  90.       @force_back = false
  91.       Graphics.update
  92.       efs_title_update
  93.       end   
  94.     else # second
  95.     @force_back = false
  96.     Graphics.update
  97.     efs_title_update
  98.     end
  99.  
  100.    else #1st
  101.      @force_back = false
  102.      Graphics.update
  103.      efs_title_update
  104.    end
  105.  
  106.   end


Lv5.捕梦者

梦石
24
星屑
7022
在线时间
247 小时
注册时间
2020-12-4
帖子
306

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

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

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

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
3
 楼主| 发表于 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
复制代码

谢谢
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
24
星屑
7022
在线时间
247 小时
注册时间
2020-12-4
帖子
306

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

4
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6296
在线时间
1104 小时
注册时间
2015-8-15
帖子
658
5
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 23:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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