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

Project1

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

[已经解决] 1VIP 简单的给脚本添加角色切换功能

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
107 小时
注册时间
2010-10-10
帖子
228
跳转到指定楼层
1
发表于 2011-8-31 14:38:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 梦到叶子了 于 2011-9-1 14:47 编辑

问题是给这个 脚本  添加角色上下切换功能

就是切换队员角色,

就是类似那个状态栏、装备栏,按下pageup或者pagedown上下切换角色。
希望高手能帮忙解决下,谢谢!~
  1. #==============================================================================
  2. # ■ Scene_Baby
  3. #------------------------------------------------------------------------------
  4. #  对召唤兽的管理菜单
  5. #==============================================================================

  6. class Scene_Baby
  7.   #--------------------------------------------------------------------------
  8.   # ● 主处理
  9.   #--------------------------------------------------------------------------
  10.   def initialize(actor_index = 0)
  11.    $kds_baby = actor_index
  12.    $baby_face = 0
  13.    if $game_party.actors[$kds_baby].kds_baby.size > 0
  14.     if $game_party.actors[$kds_baby].kds_canzhan != 0
  15.       $baby_index = $game_actors[$game_party.actors[$kds_baby].kds_canzhan]
  16.     else
  17.       $baby_index = $game_actors[$game_party.actors[$kds_baby].kds_baby[0]]
  18.     end
  19.     $stop = nil
  20.    else
  21.     $stop = 0
  22.    end
  23.   end
  24.   def main
  25.       #宠物界面
  26.     @skin = Sprite.new()
  27.     @skin.bitmap = RPG::Cache.windowskin("skin_baby")
  28.     @actor = $game_party.actors[0]
  29.     @help_window = Window_Help.new
  30.     @help_window.opacity = 0 # 宠物帮助窗口透明度
  31.     @help_window.y = 480-64 #XY坐标
  32.     @item_window = Window_Item.new
  33.     @item_window.opacity = 0 # 宠物物品窗口透明度
  34.     @item_window.active = false
  35.     @item_window.help_window = @help_window
  36.     @item_window.index = -1
  37.     if $game_party.actors[$kds_baby].kds_baby.size > 0
  38.       if $game_party.actors[$kds_baby].kds_canzhan != 0
  39.        @skill_window = Window_Skill.new($game_actors[$game_party.actors[$kds_baby].kds_canzhan])
  40.        @skill_window.opacity = 255 # 宠物特技窗口透明度
  41.        @skill_window.help_window = @help_window
  42.       else
  43.        @skill_window = Window_Skill.new($game_actors[$game_party.actors[$kds_baby].kds_baby[0]])
  44.        @skill_window.help_window = @help_window
  45.       end
  46.     else
  47.       @skill_window = Window_Skill.new(0)
  48.     end
  49.     @skill_window.active = false#true
  50.     @skill_window.index = -1
  51.     @skill_window.update
  52.     s1 = "设置参战"
  53.     s2 = "查看技能"
  54.     s3 = "使用物品"
  55.     s4 = "能力分配"
  56.     s5 = "放生守护"
  57.     s6 = "退出菜单"
  58.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5,s6])
  59.     @command_window.opacity = 0 # 宠物普通窗口透明度
  60.     @command_window.y = 480-64-192-32
  61.     if $game_party.actors[$kds_baby].kds_baby.size == 0
  62.     @command_window.disable_item(0)
  63.     @command_window.disable_item(1)
  64.     @command_window.disable_item(2)
  65.     @command_window.disable_item(3)
  66.     @command_window.disable_item(4)
  67.     end
  68.     @command_window.refresh
  69.     @command_window.update
  70.    
  71.     s1 = ""
  72.     s3 = ""
  73.     s2 = ""
  74.     s4 = ""
  75.     s5 = ""
  76.     @command2_window = Window_Command.new(110, [s1, s2, s3, s4, s5],1,16,14)
  77.     @command2_window.x = 160+236+125-6
  78.     @command2_window.y = -4+16+24+22+7+1
  79.     @command2_window.index = -1
  80.     @command2_window.back_opacity = 0
  81.     @command2_window.opacity = 0
  82.     @command2_window.active = false
  83.     @command2_window.help_window = @help_window
  84.    
  85.     if $game_party.actors[$kds_baby].kds_baby.size > 0
  86.       if $game_party.actors[$kds_baby].kds_canzhan != 0
  87.          @status_window = Window_EquipLeft.new($game_actors[$game_party.actors[$kds_baby].kds_canzhan])
  88.       else
  89.          @status_window = Window_EquipLeft.new($game_actors[$game_party.actors[$kds_baby].kds_baby[0]])
  90.       end
  91.     else
  92.       @status_window = Window_EquipLeft.new(0)
  93.     end

  94.     if $game_party.actors[$kds_baby].kds_baby.size > 0
  95.       if $game_party.actors[$kds_baby].kds_canzhan != 0
  96.           @head_window = Window_Head.new($game_actors[$game_party.actors[$kds_baby].kds_canzhan])
  97.       else
  98.           @head_window = Window_Head.new($game_actors[$game_party.actors[$kds_baby].kds_baby[0]])
  99.       end
  100.     else
  101.       @head_window = Window_Head.new(0)
  102.     end
  103.     if $game_party.actors[$kds_baby].kds_baby.size > 0
  104.       if $game_party.actors[$kds_baby].kds_canzhan != 0
  105.          @babys_window = Window_Baby.new($game_actors[$game_party.actors[$kds_baby].kds_canzhan])
  106.       else
  107.          @babys_window = Window_Baby.new($game_actors[$game_party.actors[$kds_baby].kds_baby[0]])
  108.       end
  109.     else
  110.       @babys_window = Window_Baby.new(0)
  111.     end
  112.       @babys_window.index = -1
  113.       @babys_window.update
  114.       @babys_window.active = false
  115.       @babys_window.help_window = @help_window
  116.     Graphics.transition(40, "Graphics/Transitions/" + $data_system.battle_transition)
  117.     loop do
  118.       Graphics.update
  119.       Input.update
  120.       update
  121.       if $scene != self
  122.         break
  123.       end
  124.     end
  125.     # 装备过渡
  126.     Graphics.freeze
  127.     # 释放窗口
  128.     $stop = nil
  129.     @command_window.dispose
  130.     @command2_window.dispose
  131.     @help_window.dispose
  132.     @item_window.dispose
  133.     @head_window.dispose
  134.     @status_window.dispose
  135.     @skill_window.dispose
  136.     @babys_window.dispose
  137.   end
  138.   #--------------------------------------------------------------------------
  139.   # ● 刷新画面
  140.   #--------------------------------------------------------------------------
  141.   def update
  142.     @help_window.update
  143.     $baby_face += 1
  144.     if ($baby_face+12)%12 == 0 and $game_party.actors[$kds_baby].kds_baby.size > 0
  145.        @head_window.refresh
  146.        if $baby_face == 36
  147.           $baby_face = 0
  148.        end
  149.     end
  150.     if @command2_window.active
  151.       @command2_window.update
  152.       up_command2
  153.     end
  154.     if @babys_window.active
  155.        @babys_window.update
  156.        up_babys
  157.     end
  158.     if @skill_window.active
  159.        @skill_window.update
  160.        up_skill
  161.     end
  162.     if @command_window.active
  163.       @command_window.update
  164.       up_command
  165.     end
  166.     if @item_window.active
  167.        @item_window.update
  168.        up_item
  169.     end
  170.   end
  171.   
  172.   def up_command
  173.     if Input.trigger?(Input::B)
  174.       $game_system.se_play($data_system.cancel_se)
  175.       $scene = Scene_Map.new
  176.       return
  177.     end
  178.     if Input.trigger?(Input::C)

  179.      $command_index = @command_window.index
  180.      if @command_window.index != 5 and @command_window.index != 2
  181.        if $game_party.actors[$kds_baby].kds_baby.size == 0
  182.           $game_system.se_play($data_system.buzzer_se)
  183.          return
  184.        end
  185.        $game_system.se_play($data_system.decision_se)
  186.        @command_window.active = false
  187.        @babys_window.index = 0
  188.        @babys_window.active = true
  189.        $baby_index = $game_actors[$game_party.actors[$kds_baby].kds_baby[0]]
  190.        @baby_index = 0
  191.        @babys_window.refresh
  192.        @head_window.refresh
  193.        @skill_window.refresh
  194.        @status_window.refresh2
  195.      elsif @command_window.index == 5
  196.       $game_system.se_play($data_system.cancel_se)
  197.       $scene = Scene_Map.new
  198.      elsif @command_window.index == 2
  199.        if $game_party.actors[$kds_baby].kds_baby.size == 0
  200.           $game_system.se_play($data_system.buzzer_se)
  201.          return
  202.        end
  203.        $game_system.se_play($data_system.decision_se)
  204.        @item_window.update
  205.        @item_window.index = -1
  206.        @command_window.active = false
  207.        @babys_window.index = 0
  208.        @babys_window.active = true
  209.        $baby_index = $game_actors[$game_party.actors[$kds_baby].kds_baby[0]]
  210.        @baby_index = 0
  211.        @babys_window.refresh
  212.        @head_window.refresh
  213.        @skill_window.refresh
  214.        @status_window.refresh2
  215.      end
  216.      return
  217.     end
  218.   end
  219.   
  220.   def up_babys
  221.     if @babys_window.index != @baby_index
  222.        @baby_index = @babys_window.index
  223.        $baby_index = $game_actors[$game_party.actors[$kds_baby].kds_baby[@babys_window.index]]
  224.        @babys_window.refresh
  225.        @head_window.refresh
  226.        @skill_window.refresh
  227.        @status_window.refresh2
  228.     end
  229.     if Input.trigger?(Input::B)
  230.       $game_system.se_play($data_system.cancel_se)
  231.        Graphics.freeze
  232.        @babys_window.index = -1
  233.        @babys_window.active = false
  234.        @command_window.active = true
  235.        @help_window.set_text("")
  236.        Graphics.transition
  237.       return
  238.     end
  239.     if Input.trigger?(Input::C)
  240.        Graphics.freeze
  241.        $game_system.se_play($data_system.decision_se)
  242.        @chong = $game_actors[$game_party.actors[$kds_baby].kds_baby[@babys_window.index]]
  243.        @zhu = $game_party.actors[$kds_baby]
  244.       case  @command_window.index
  245.       when 0
  246.        if $game_party.actors[$kds_baby].kds_canzhan == $game_party.actors[$kds_baby].kds_baby[@babys_window.index]
  247.           $game_party.actors[$kds_baby].kds_canzhan = 0
  248.        else
  249.           $game_party.actors[$kds_baby].kds_canzhan = $game_party.actors[$kds_baby].kds_baby[@babys_window.index]
  250.        end
  251.        @babys_window.refresh
  252.       when 1
  253.        @babys_window.active = false
  254.        @skill_window.index = 0
  255.        @skill_window.active = true
  256.       when 2
  257.        @babys_window.active = false
  258.        @item_window.index = 0
  259.        @item_window.active = true
  260.       when 3
  261.        @babys_window.active = false
  262.        @command2_window.index = 0
  263.        @command2_window.active = true
  264.       when 4
  265.        $game_variables[29] = $game_party.actors[$kds_baby].id
  266.        $game_party.remove_actor(@chong.id)
  267.        @baby_index = 0
  268.        if @babys_window.index > 0
  269.        @babys_window.index -= 1
  270.        end
  271.        if @zhu.kds_baby.size == 0
  272.         $stop = 0
  273.         @babys_window.index = -1
  274.         @babys_window.active = false
  275.         @command_window.active = true
  276.         @help_window.set_text("")
  277.         @command_window.disable_item(0)
  278.         @command_window.disable_item(1)
  279.         @command_window.disable_item(2)
  280.         @command_window.disable_item(3)
  281.         @command_window.disable_item(4)
  282.         @command_window.refresh
  283.         @command_window.update
  284.        end
  285.         @babys_window.refresh
  286.         @head_window.refresh
  287.         @skill_window.refresh
  288.         @status_window.refresh2
  289.       end
  290.       Graphics.transition
  291.       return
  292.     end
  293.   end
  294.   
  295.   def up_skill
  296.     if Input.trigger?(Input::B)
  297.       $game_system.se_play($data_system.cancel_se)
  298.        Graphics.freeze
  299.        @babys_window.active = true
  300.        @skill_window.index = -1
  301.        @skill_window.active = false
  302.        Graphics.transition
  303.       return
  304.     end
  305.   end
  306.    
  307.   def up_item
  308.     if Input.trigger?(Input::B)
  309.       $game_system.se_play($data_system.cancel_se)
  310.        Graphics.freeze
  311.        @babys_window.active = true
  312.        @item_window.index = -1
  313.        @item_window.active = false
  314.        Graphics.transition
  315.       return
  316.     end
  317.     if Input.trigger?(Input::C)
  318.       @item = @item_window.item
  319.        if @item == nil
  320.           $game_system.se_play($data_system.buzzer_se)
  321.          return
  322.        end  

  323.          
  324.        if @item.element_set.include?(11)
  325.         if @chong.skills.include?(@item.recover_hp) == false
  326.           @chong.learn_skill(@item.recover_hp)
  327.         else
  328.           $game_system.se_play($data_system.buzzer_se)
  329.          return
  330.         end
  331.        elsif @item.element_set.include?(12)
  332.           @chong.level = 1
  333.           @chong.maxhp = @chong.base_maxhp
  334.           @chong.maxsp = @chong.base_maxsp
  335.           @chong.str = @chong.base_str
  336.           @chong.dex = @chong.base_dex
  337.           @chong.agi = @chong.base_agi
  338.           @chong.int = @chong.base_int
  339.           @chong.qianli = 0
  340.        end
  341.         $game_system.se_play(@item.menu_se)
  342.         if @item.consumable
  343.           $game_party.lose_item(@item.id, 1)
  344.         end
  345.         @item_window.refresh
  346.         @skill_window.refresh
  347.         @status_window.refresh2
  348.       return
  349.     end
  350.   end

  351.   def  up_command2
  352.     if Input.trigger?(Input::B)
  353.        $game_system.se_play($data_system.cancel_se)
  354.        Graphics.freeze
  355.        @babys_window.active = true
  356.        @command2_window.index = -1
  357.        @command2_window.active = false
  358.        Graphics.transition
  359.       return
  360.     end
  361.     if Input.trigger?(Input::C)
  362.       if @chong.qianli <= 0
  363.         $game_system.se_play($data_system.buzzer_se)
  364.         return
  365.       end
  366.       $game_system.se_play($data_system.decision_se)
  367.       case @command2_window.index
  368.       when 0
  369.         @chong.maxhp += 10
  370.         @chong.hp += 10
  371.       when 1
  372.         @chong.maxsp += 6
  373.         @chong.int += 1
  374.       when 2
  375.         @chong.str += 1
  376.       when 3
  377.         @chong.dex += 1
  378.       when 4
  379.         @chong.agi += 1
  380.       end
  381.       @chong.qianli -= 1
  382.       @status_window.refresh2
  383.     end
  384.   end
  385. end
复制代码

点评

2L已改正  发表于 2011-8-31 17:41
将baby改成BabyXD  发表于 2011-8-31 17:41
已修改,请将该脚本放到原脚本下方  发表于 2011-8-31 17:35
问题是?  发表于 2011-8-31 17:14
我是新手党,但是请不要小看任何一个新手,新手们的力量,是不容忽略的!

Lv1.梦旅人

虱子

梦石
0
星屑
121
在线时间
1782 小时
注册时间
2010-6-19
帖子
3597
2
发表于 2011-8-31 15:04:15 | 只看该作者
本帖最后由 Wind2010 于 2011-9-2 16:36 编辑
  1. class Scene_Baby
  2.   alias l_97315_update update unless defined?(l_97315_update)
  3.   def update
  4.     if Input.trigger?(Input::R) and not $game_party.actors.size==1
  5.       $scene = Scene_Baby.new(($kds_baby+1)%$game_party.actors.size)
  6.       return
  7.     elsif Input.trigger?(Input::L) and not $game_party.actors.size==1
  8.       $scene = Scene_Baby.new(($kds_baby-1+$game_party.actors.size)%$game_party.actors.size)
  9.       return
  10.     end
  11.     l_97315_update
  12.   end
  13. end
复制代码

点评

多谢~~  发表于 2011-9-2 17:04
/ ? % ?  发表于 2011-9-2 06:43
2L的修正,加进去没有错误了,但是。。。。一个渐变过渡,然后,没有切换,还是当前的召唤兽位置  发表于 2011-8-31 17:45
话说改了照样错误……  发表于 2011-8-31 17:43
按切换下个角色, $scene = Scene_baby.new(($kds_baby+1)/$game_party.actors.size) 出错 按切换上角色$scene = Scene_baby.new(($kds_baby-1+$game_party.actors.size)/$game_party.出错  发表于 2011-8-31 17:39

http://rpg.blue/thread-175056-1-2.html
PVZ型塔防物一个
http://rpg.blue/thread-155199-1-2.html
RMXP技术讨论区手动认可帖,得到答案请认可
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
107 小时
注册时间
2010-10-10
帖子
228
3
 楼主| 发表于 2011-9-1 09:30:35 | 只看该作者
问题还没有被解决……这个应该不难吧?
我是新手党,但是请不要小看任何一个新手,新手们的力量,是不容忽略的!
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7976
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
4
发表于 2011-9-2 00:07:55 | 只看该作者
这个脚本并不能够单独运行,无法帮你了,本来还想打发时间来着……

点评

范例来了  发表于 2011-9-2 09:59
回复

使用道具 举报

Lv2.观梦者

(?????)

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

贵宾

5
发表于 2011-9-2 07:59:44 | 只看该作者
正如LS所说 ╮(╯_╰)╭ 请附上你的工程
笨召的二次创作同人游戏么……第二季OP大沼心存在感一度暴表啊 = = |||

点评

范例……  发表于 2011-9-2 09:59
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
54 小时
注册时间
2011-8-4
帖子
87
6
发表于 2011-9-2 08:39:35 | 只看该作者
求范例,不然不好分析

点评

有范例了  发表于 2011-9-2 09:59
我也大一了啊~~
哇咔咔咔咔,癫狂侠客给我现场教学了,你们没有吧~~

梦幻西游高仿版制作进程:
剧情:★★★☆☆☆☆☆☆☆
脚本:★☆☆☆☆☆☆☆☆☆
音乐:★★★☆☆☆☆☆☆☆
界面:★☆☆☆☆☆☆☆☆☆
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
107 小时
注册时间
2010-10-10
帖子
228
7
 楼主| 发表于 2011-9-2 09:58:53 | 只看该作者
本帖最后由 梦到叶子了 于 2011-9-2 17:04 编辑

范例在此,各位大神解决吧~~具体是给宠物添加上下角色切换功能

点评

嗯亿万前辈指点后又改了下,看看可不可以  发表于 2011-9-2 16:36
我是新手党,但是请不要小看任何一个新手,新手们的力量,是不容忽略的!
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-23 00:15

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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