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

Project1

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

[已经解决] 如何让1号角色的战斗选项与其他角色的不同(1vip)

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-10-9 13:54:05 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 黑舞嗜 于 2011-10-9 16:43 编辑

可以把它理解成宠物系统,主要就是想修改1号角色的战斗选项(去掉攻击与防御然后改掉特技与物品的选项名),而其他角色不变


好吧~我承认弄这个不容易~我+1个VIP。。。。

点评

请注意战斗/逃跑的地方是所有角色一起的 所以无法单独  发表于 2011-10-9 20:53
那个是角色的特技名称。 比如说1号角色的特技显示时是剑法 2号是枪法 等等等等  发表于 2011-10-9 20:41
roguelike求生RPG研发中....

Lv2.观梦者

(?????)

梦石
0
星屑
729
在线时间
1327 小时
注册时间
2011-7-18
帖子
3184

贵宾

2
发表于 2011-10-9 17:44:48 | 只看该作者
我不是字母君 发表于 2011-10-9 17:20
既然给了VIP那我就努力做做这个工程吧&此帖占楼&猫君别删贴
本技能分类系统可以满足你的要求。
Window_Skil ...

为什么我要删帖……我给新人们留下了什么印象啊……
那个……不介意的话签名字体小一点吧……

认真答题有糖 =W=

点评

我的小号曾经看到伸手党痛骂了一顿,结果被你扣了不少分,55~  发表于 2011-10-9 17:53
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
49
在线时间
46 小时
注册时间
2011-10-7
帖子
95
3
发表于 2011-10-9 19:26:14 | 只看该作者
本帖最后由 我不是字母君 于 2011-10-9 21:16 编辑

  1.     DISABLE_ATTACK=[1]#无法攻击的战斗者
  2.     #DISABLE_ITEM=[]#无法使用物品的战斗者#已经作废
  3.     DISABLE_SKILL=[]#无法使用技能的战斗者
  4.     DISABLE_GUARD=[1]#无法防御的战斗者
  5.     ACTOR_SKILLWORD=["剑法","枪法","斧法","袭杀","箭法","火統","白魔法","黑魔法"]
  6.     class Window_BattleCommand < Window_Selectable
  7.       def initialize(actor=$game_party.actors[0])
  8.         super(240, 240 , 160, 160)
  9.         @actor=actor
  10.         @item_max = 0
  11.         @commands = []
  12.         refresh
  13.         self.index = 0
  14.       end
  15.       def refresh
  16.         if !DISABLE_ATTACK.include?(@actor.id)
  17.           @commands.push "攻击"
  18.         end
  19.         if !DISABLE_SKILL.include?(@actor.id)
  20.         for i in [email protected]
  21.           skill = ACTOR_SKILLWORD[@actor.id-1]
  22.           if skill==nil
  23.              skill="特技"
  24.           end
  25.           if skill != nil and [email protected]?(skill)
  26.             desc = ""
  27.             desc += skill
  28.             @commands.push(desc)
  29.           end
  30.          
  31.         end
  32.         end
  33.         if !DISABLE_GUARD.include?(@actor.id)
  34.         @commands.push "防御"
  35.         end
  36.         if @actor.id==1
  37.           @commands.push "物品"
  38.         end
  39.         @item_max = @commands.size
  40.         height = @item_max  * 32 + 32
  41.         if height > 320
  42.           height = 320
  43.         end
  44.         self.y =320 - height
  45.         self.height= height
  46.         self.contents = Bitmap.new(width - 32, @item_max * 32)
  47.         self.contents.clear
  48.         for i in 0...@item_max
  49.           draw_item(i, normal_color)
  50.         end
  51.       end
  52.       def command
  53.         return @commands[self.index]
  54.       end
  55.       def draw_item(index, color)
  56.         self.contents.font.color = color
  57.         rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
  58.         self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  59.         self.contents.draw_text(rect, @commands[index])
  60.       end
  61.       def disable_item(index)
  62.         draw_item(index, disabled_color)
  63.       end
  64.     end

  65.     class Scene_Battle
  66.         def main
  67.         # 初始化战斗用的各种暂时数据
  68.         $game_temp.in_battle = true
  69.         $game_temp.battle_turn = 0
  70.         $game_temp.battle_event_flags.clear
  71.         $game_temp.battle_abort = false
  72.         $game_temp.battle_main_phase = false
  73.         $game_temp.battleback_name = $game_map.battleback_name
  74.         $game_temp.forcing_battler = nil
  75.         # 初始化战斗用事件解释器
  76.         $game_system.battle_interpreter.setup(nil, 0)
  77.         # 准备队伍
  78.         @troop_id = $game_temp.battle_troop_id
  79.         $game_troop.setup(@troop_id)
  80.         # 生成角色命令窗口
  81.         s1 = $data_system.words.attack
  82.         s2 = $data_system.words.skill
  83.         s3 = $data_system.words.guard
  84.         s4 = $data_system.words.item
  85.         @actor_command_window = Window_BattleCommand.new###只改这行……
  86.         @actor_command_window.y = 160
  87.         @actor_command_window.back_opacity = 160
  88.         @actor_command_window.active = false
  89.         @actor_command_window.visible = false
  90.         # 生成其它窗口
  91.         @party_command_window = Window_PartyCommand.new
  92.         @help_window = Window_Help.new
  93.         @help_window.back_opacity = 160
  94.         @help_window.visible = false
  95.         @status_window = Window_BattleStatus.new
  96.         @message_window = Window_Message.new
  97.         # 生成活动块
  98.         @spriteset = Spriteset_Battle.new
  99.         # 初始化等待计数
  100.         @wait_count = 0
  101.         # 执行过渡
  102.         if $data_system.battle_transition == ""
  103.           Graphics.transition(20)
  104.         else
  105.           Graphics.transition(40, "Graphics/Transitions/" +
  106.             $data_system.battle_transition)
  107.         end
  108.         # 开始自由战斗回合
  109.         start_phase1
  110.         # 主循环
  111.         loop do
  112.           # 刷新游戏画面
  113.           Graphics.update
  114.           # 刷新输入信息
  115.           Input.update
  116.           # 刷新画面
  117.           update
  118.           # 如果画面切换的话就中断循环
  119.           if $scene != self
  120.             break
  121.           end
  122.         end
  123.         # 刷新地图
  124.         $game_map.refresh
  125.         # 准备过渡
  126.         Graphics.freeze
  127.         # 释放窗口
  128.         @actor_command_window.dispose
  129.         @party_command_window.dispose
  130.         @help_window.dispose
  131.         @status_window.dispose
  132.         @message_window.dispose
  133.         if @skill_window != nil
  134.           @skill_window.dispose
  135.         end
  136.         if @item_window != nil
  137.           @item_window.dispose
  138.         end
  139.         if @result_window != nil
  140.           @result_window.dispose
  141.         end
  142.         # 释放活动块
  143.         @spriteset.dispose
  144.         # 标题画面切换中的情况
  145.         if $scene.is_a?(Scene_Title)
  146.           # 淡入淡出画面
  147.           Graphics.transition
  148.           Graphics.freeze
  149.         end
  150.         # 战斗测试或者游戏结束以外的画面切换中的情况
  151.         if $BTEST and not $scene.is_a?(Scene_Gameover)
  152.           $scene = nil
  153.         end
  154.       end
  155.       def phase3_setup_command_window
  156.         # 同伴指令窗口无效化
  157.         @party_command_window.active = false
  158.         @party_command_window.visible = false
  159.         @actor_command_window.dispose
  160.         @actor_command_window=Window_BattleCommand.new(@active_battler)
  161.         @actor_command_window.active = true
  162.         @actor_command_window.visible = true
  163.         # 设置角色指令窗口的位置
  164.         @actor_command_window.x =  @actor_index * 160
  165.         # 设置索引为 0
  166.         @actor_command_window.index = 0
  167.       end

  168.       def update_phase3_basic_command
  169.         # 按下 B 键的情况下
  170.         if Input.trigger?(Input::B)
  171.           # 演奏取消 SE
  172.           $game_system.se_play($data_system.cancel_se)
  173.           # 转向前一个角色的指令输入
  174.           phase3_prior_actor
  175.           return
  176.         end
  177.         # 按下 C 键的情况下
  178.         if Input.trigger?(Input::C)
  179.           # 角色指令窗口光标位置分之
  180.           if @actor_command_window.command == "攻击"
  181.             # 演奏确定 SE
  182.             $game_system.se_play($data_system.decision_se)
  183.             # 设置行动
  184.             @active_battler.current_action.kind = 0
  185.             @active_battler.current_action.basic = 0
  186.             # 开始选择敌人
  187.             start_enemy_select
  188.           elsif @actor_command_window.command == "防御"
  189.            # 演奏确定 SE
  190.             $game_system.se_play($data_system.decision_se)
  191.             # 设置行动
  192.             @active_battler.current_action.kind = 0
  193.             @active_battler.current_action.basic = 1
  194.             # 转向下一位角色的指令输入
  195.             phase3_next_actor
  196.           elsif  @actor_command_window.command == "逃跑"
  197.            # 不能逃跑的情况下
  198.             if $game_temp.battle_can_escape == false
  199.               # 演奏冻结 SE
  200.               $game_system.se_play($data_system.buzzer_se)
  201.               return
  202.             end
  203.             # 演奏确定 SE
  204.             $game_system.se_play($data_system.decision_se)
  205.             # 逃走处理
  206.             update_phase2_escape
  207.           elsif @actor_command_window.command == "物品"
  208.             # 演奏确定 SE
  209.             $game_system.se_play($data_system.decision_se)
  210.             # 设置行动
  211.             @active_battler.current_action.kind = 2
  212.             # 开始选择物品
  213.             start_item_select
  214.           else
  215.             # 演奏确定 SE
  216.             $game_system.se_play($data_system.decision_se)
  217.             # 设置行动
  218.             @active_battler.current_action.kind = 1
  219.             # 开始选择特技
  220.             start_skill_select
  221.           end
  222.           return
  223.         end
  224.       end
  225.       def start_skill_select
  226.         # 生成特技窗口
  227.         @skill_window=Window_Skill.new(@active_battler)
  228.         # 关联帮助窗口
  229.         @skill_window.help_window = @help_window
  230.         # 无效化角色指令窗口
  231.         @actor_command_window.active = false
  232.         @actor_command_window.visible = false
  233.       end
  234.     end
复制代码
新·改版这个可真的是精品了。如果有去战斗逃跑条的脚本,尽量把此脚本放在普通脚本后面,系统脚本的前面。
某前辈写的冲突爆版本:http://www.66rpg.com/htm/news792.htm��� ��� ���
4号特罗西,就对应["剑法","枪法","斧法","袭杀","箭法","火統","白魔法","黑魔法"]中的第四个,袭杀���

修改了。可以让除了阿尔同学的所有人不能使用物品���这是新版效果���
如果要用原版实现此效果,必须修改DISABLE_ITEM设置为所有除1号角色外的角色ID,灰常麻烦

jt.png (417.58 KB, 下载次数: 0)

jt.png

点评

辛苦你了  发表于 2011-10-9 21:43
只能让一个角色不能使用物品啊?我想让除了1号其他的都不能使用物品要怎么做?  发表于 2011-10-9 21:07
这个我知道,主要是剑法后面的枪法什么的,算了,不说这个问题,那个战斗菜单的名称不能改成和其他角色的不一样么?  发表于 2011-10-9 20:52
请问这条是什么意思? ACTOR_SKILLWORD=["剑法","枪法","斧法","袭杀","箭法","火統","白魔法","黑魔法"]   发表于 2011-10-9 20:40
我是傻逼
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 08:22

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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