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

Project1

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

人物仓库脚本问题

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
16 小时
注册时间
2008-2-12
帖子
313
跳转到指定楼层
1
发表于 2008-3-20 23:14:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x

  1. #------------------------------------------------------------------------------
  2. # 作者:chaochao
  3. # http://zhuchao.go1.icpcn.com
  4. #==============================================================================
  5. class Chaochao_Window_PartyLeft < Window_Selectable
  6.   def initialize
  7.     super(0, 0, 320, 224)
  8.     self.contents = Bitmap.new(width - 32, height - 32)
  9.     self.index = 0
  10.     refresh
  11.   end
  12.   def actor
  13.     return @actors[self.index]
  14.   end
  15.   def refresh
  16.     if self.contents != nil
  17.       self.contents.dispose
  18.       self.contents = nil
  19.     end
  20.     @actors = []
  21.     for i in 0...$game_party.actors.size
  22.       @actors.push($game_party.actors[i])
  23.     end
  24.    
  25.     @item_max = 4
  26.     if @item_max > 0
  27.       self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
  28.       for i in 0...@item_max
  29.         draw_item(i)
  30.       end
  31.     end
  32.   end
  33.   def draw_item(index)
  34.     if @actors[index] != nil
  35.       actor = @actors[index]
  36.       text = @actors[index].name
  37.       lv = @actors[index].level.to_s + " "
  38.       if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
  39.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  40.       else
  41.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  42.       end
  43.       self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
  44.       self.contents.font.color = normal_color
  45.       self.contents.font.size = 16
  46.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  "Level:   ", 2)
  47.       colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  48.       colory = [255.0000 / 60 * @actors[index].level,255].min
  49.       self.contents.font.color = Color.new(colorx, colory, 0)
  50.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
  51.       self.contents.font.color = normal_color
  52.       self.contents.font.size = 22
  53.     else
  54.       self.contents.draw_text(4, index * 32 + 32, 288, 32,  "米有人物!")
  55.     end
  56.   end
  57.   def update_cursor_rect
  58.     if @index < 0
  59.       self.cursor_rect.empty
  60.       return
  61.     end
  62.     row = @index / @column_max
  63.     if row < self.top_row
  64.       self.top_row = row
  65.     end
  66.     if row > self.top_row + (self.page_row_max - 1)
  67.       self.top_row = row - (self.page_row_max - 1)
  68.     end
  69.     cursor_width = self.width / @column_max - 32
  70.     x = @index % @column_max * (cursor_width + 32)
  71.     y = @index / @column_max * 32 - self.oy + 32
  72.     self.cursor_rect.set(x, y, cursor_width, 32)
  73.   end
  74.   def item_max
  75.     return @item_max
  76.   end
  77.   def actor?(index)
  78.     return @actors[index] == nil ? false : true
  79.   end
  80.   def set_index(x)
  81.     @index = x
  82.   end
  83. end

  84. #------------------------------------------------------------------------------

  85. class Chaochao_Window_PartyRight < Window_Selectable
  86.   def initialize
  87.     super(320, 0, 320, 224)
  88.     self.contents = Bitmap.new(width - 32, height - 32)
  89.     self.index = -1
  90.     refresh
  91.   end
  92.   def actor
  93.     return @actors[self.index]
  94.   end
  95.   def refresh
  96.     if self.contents != nil
  97.       self.contents.dispose
  98.       self.contents = nil
  99.     end
  100.     @actors = []
  101.     for i in 0...$game_party.actors2.size
  102.       @actors.push($game_party.actors2[i])
  103.     end
  104.    
  105.     @item_max = $game_party.actors2.size
  106.     if @item_max > 0
  107.       self.contents = Bitmap.new(width - 32, row_max * 32)
  108.       for i in 0...@item_max
  109.         draw_item(i)
  110.       end
  111.     elsif @item_max == 0
  112.       
  113.     end
  114.   end
  115.   def draw_item(index)
  116.     actor = @actors[index]
  117.     text = @actors[index].name
  118.     lv = @actors[index].level.to_s + " "
  119.     if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
  120.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  121.       else
  122.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  123.       end
  124.     self.contents.draw_text(4, index * 32, 288, 32, text)
  125.     self.contents.font.color = normal_color
  126.     self.contents.font.size = 16
  127.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  "Level:   ", 2)
  128.     colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  129.     colory = [255.0000 / 60 * @actors[index].level,255].min
  130.     self.contents.font.color = Color.new(colorx, colory, 0)
  131.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  lv, 2)
  132.     self.contents.font.color = normal_color
  133.     self.contents.font.size = 22
  134.   end
  135.   def update_cursor_rect
  136.     if @index < 0
  137.       self.cursor_rect.empty
  138.       return
  139.     end
  140.     row = @index / @column_max
  141.     if row < self.top_row
  142.       self.top_row = row
  143.     end
  144.     if row > self.top_row + (self.page_row_max - 1)
  145.       self.top_row = row - (self.page_row_max - 1)
  146.     end
  147.     cursor_width = self.width / @column_max - 32
  148.     x = @index % @column_max * (cursor_width + 32)
  149.     y = @index / @column_max * 32 - self.oy
  150.     self.cursor_rect.set(x, y, cursor_width, 32)
  151.   end
  152.   def item_max
  153.     return @item_max
  154.   end
  155.   def actor?(index)
  156.     return @actors[index] == nil ? false : true
  157.   end
  158.   def set_index(x)
  159.     @index = x
  160.   end
  161. end

  162. #------------------------------------------------------------------------------

  163. class Chaochao_Window_PartyData < Window_Base
  164.   
  165.   def initialize
  166.     super(0, 224, 640, 256)
  167.     self.contents = Bitmap.new(width - 32, height - 32)
  168.     @actor = nil
  169.   end
  170.   
  171.   def set_actor(actor)
  172.     self.contents.clear
  173.     draw_actor_name(actor, 4, 0)
  174.     draw_actor_state(actor, 140, 0)
  175.     draw_actor_hp(actor, 284, 0)
  176.     draw_actor_sp(actor, 460, 0)
  177.     @actor = actor
  178.     self.visible = true
  179.   end
  180.   def clear
  181.     self.contents.clear
  182.   end
  183. end

  184. #------------------------------------------------------------------------------

  185. class Game_Party
  186.   attr_reader   :actors2
  187.   attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  188.   attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  189.   def initialize
  190.     @actors = []
  191.     @gold = 0
  192.     @steps = 0
  193.     @items = {}
  194.     @weapons = {}
  195.     @armors = {}
  196.     @actors2 = []
  197.     @chaochao = []
  198.     @chaochao2 = []
  199.   end
  200.   def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
  201.     case type
  202.     when 1
  203.       if $game_actors[actor_id] != nil
  204.         actor = $game_actors[actor_id]
  205.         #如果队伍没有满和队伍中没有此角色
  206.         if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
  207.           @actors.push(actor)
  208.           $game_player.refresh
  209.         end
  210.       end
  211.     when 2
  212.       if $game_actors[actor_id] != nil
  213.         actor = $game_actors[actor_id]
  214.         #如果角色不在队伍中和不在备用角色队伍中的情况下
  215.         #向备用角色中添加角色
  216.         if not @actors.include?(actor) and not @actors2.include?(actor)
  217.           @actors2.push(actor)
  218.           $game_player.refresh
  219.         end
  220.       end
  221.     end
  222.   end
  223.   
  224.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  225.     actor = $game_actors[index]
  226.     case type
  227.     when 1
  228.       if @actors.size < 4 and @actors2.include?(actor) and not @chaochao2.include?(index) and not @actors.include?(actor)
  229.         @actors.push(actor)
  230.         @actors2.delete(actor)
  231.         $game_system.se_play($data_system.decision_se)
  232.         $game_player.refresh
  233.       end
  234.     when 2
  235.       if @actors.include?(actor) and not @chaochao.include?(index) and not @actors2.include?(actor)
  236.         @actors2.push(actor)
  237.         @actors.delete(actor)
  238.         $game_system.se_play($data_system.decision_se)
  239.         $game_player.refresh
  240.       end
  241.     end
  242.   end
  243.   
  244.   #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  245.   #type2,1是添加不能移动的,2是删除不能移动的。
  246.   def yidong(actor_id,type1,type2=1)
  247.     case type2
  248.     when 1
  249.       case type1
  250.       when 1
  251.         @chaochao.push(actor_id)
  252.       when 2
  253.         @chaochao2.push(actor_id)
  254.       end
  255.     when 2
  256.       case type1
  257.       when 1
  258.         @chaochao.delete(actor_id)
  259.       when 2
  260.         @chaochao2.delete(actor_id)
  261.       end
  262.     end
  263.   end
  264.   
  265.   #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  266.   def remove_actor(actor_id,type=1)
  267.     actor = $game_actors[actor_id]
  268.     case type
  269.     when 1
  270.       @actors.delete(actor)
  271.       $game_player.refresh
  272.     when 2
  273.       @actors2.delete(actor)
  274.       $game_player.refresh
  275.     when 3
  276.       @actors.delete(actor)
  277.       @actors2.delete(actor)
  278.       $game_player.refresh
  279.     end
  280.   end
  281.   
  282.   def refresh
  283.     new_actors = []
  284.     new_actors2 = []
  285.     for i in [email protected]
  286.       if $data_actors[@actors[i].id] != nil
  287.         new_actors.push($game_actors[@actors[i].id])
  288.       end
  289.     end
  290.     @actors = new_actors
  291.     for i in [email protected]
  292.       if $data_actors[@actors2[i].id] != nil
  293.         new_actors2.push($game_actors[@actors2[i].id])
  294.       end
  295.     end
  296.     @actors2 = new_actors2
  297.   end
  298. end

  299. #------------------------------------------------------------------------------

  300. class Chaochao_Scene_Party
  301.   def main
  302.     @left_temp_command = 0
  303.     @right_temp_command = 0
  304.     @temp = 0
  305.     @left_window = Chaochao_Window_PartyLeft.new
  306.     @left_window.active = true
  307.     @right_window = Chaochao_Window_PartyRight.new
  308.     @right_window.active = false
  309.     @data_window = Chaochao_Window_PartyData.new
  310.     update_data
  311.     Graphics.transition
  312.     loop do
  313.       Graphics.update
  314.       Input.update
  315.       update
  316.       if $scene != self
  317.         break
  318.       end
  319.     end
  320.     Graphics.freeze
  321.     @left_window.dispose
  322.     @right_window.dispose
  323.     @data_window.dispose
  324.   end
  325.   
  326.   def update
  327.     @left_window.update
  328.     @right_window.update
  329.     @data_window.update
  330.     update_command
  331.     update_data
  332.   end
  333.   
  334.   def update_command
  335.     if Input.trigger?(Input::B)
  336.       $game_system.se_play($data_system.cancel_se)
  337.       #画面切换
  338.       $scene = Scene_Map.new
  339.       return
  340.     end
  341.     if @left_window.active
  342.       update_left
  343.       return
  344.     end
  345.     if @right_window.active
  346.       update_right
  347.       return
  348.     end
  349.   end
  350.   
  351.   def update_left
  352.     if Input.trigger?(Input::RIGHT)
  353.       if @right_window.item_max > 0
  354.         @left_temp_command = @left_window.index
  355.         @left_window.set_index(-1)
  356.         $game_system.se_play($data_system.cursor_se)
  357.         @left_window.active = false
  358.         @right_window.active = true
  359.         @left_window.refresh
  360.         @right_window.refresh
  361.         @right_window.set_index(@right_temp_command)
  362.         return
  363.       else
  364.         $game_system.se_play($data_system.buzzer_se)
  365.         return
  366.       end
  367.     end
  368.     if Input.trigger?(Input::C)
  369.       if @left_window.active and @left_window.actor?(@left_window.index) and $game_party.actors.size > 1 and not $game_party.chaochao.include?($game_party.actors[@left_window.index].id)
  370.         $game_party.huanren($game_party.actors[@left_window.index].id,2)#type为1是从备用角色向队伍中移动,为2则相反。
  371.         @left_window.refresh
  372.         @right_window.refresh
  373.       else
  374.         $game_system.se_play($data_system.buzzer_se)
  375.       end
  376.     end
  377.     return
  378.   end
  379.   
  380.   def update_right
  381.     if Input.trigger?(Input::LEFT)
  382.       if @left_window.item_max > 0
  383.         @right_temp_command = @right_window.index
  384.         @right_window.set_index(-1)
  385.         $game_system.se_play($data_system.cursor_se)
  386.         @left_window.active = true
  387.         @right_window.active = false
  388.         @left_window.refresh
  389.         @right_window.refresh
  390.         @left_window.set_index(@left_temp_command)
  391.         return
  392.       else
  393.         $game_system.se_play($data_system.buzzer_se)
  394.         return
  395.       end
  396.     end
  397.     if Input.trigger?(Input::C)
  398.       if $game_party.actors.size >= 4
  399.         $game_system.se_play($data_system.buzzer_se)
  400.         return
  401.       end
  402.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  403.         $game_party.huanren($game_party.actors2[@right_window.index].id,1)#type为1是从备用角色向队伍中移动,为2则相反。
  404.         if $game_party.actors2.size == 0
  405.           @right_temp_command = @right_window.index
  406.           @right_window.set_index(-1)
  407.           $game_system.se_play($data_system.cursor_se)
  408.           @left_window.active = true
  409.           @right_window.active = false
  410.           @left_window.refresh
  411.           @right_window.refresh
  412.           @left_window.set_index(@left_temp_command)
  413.         end
  414.         if @right_window.index > 0
  415.           @right_window.set_index(@right_window.index-1)
  416.         end
  417.         @left_window.refresh
  418.         @right_window.refresh
  419.       else
  420.         $game_system.se_play($data_system.buzzer_se)
  421.       end
  422.     end
  423.     return
  424.   end
  425.   
  426.   def update_data
  427.     if @left_window.active
  428.       if $game_party.actors[@left_window.index] != nil
  429.         @data_window.set_actor($game_party.actors[@left_window.index])
  430.       else
  431.         @data_window.clear
  432.       end
  433.       return
  434.     end
  435.     if @right_window.active
  436.       if $game_party.actors2[@right_window.index] != nil
  437.         @data_window.set_actor($game_party.actors2[@right_window.index])
  438.       else
  439.         @data_window.clear
  440.       end
  441.       return
  442.     end
  443.   end
  444. end
复制代码

加入这段脚本,Game_Party第82行  return @exp_list[@level+1] > 0 ? @exp.to_s : "-------"出错。。
此贴于 2008-3-24 0:11:48 被版主水迭澜提醒,请楼主看到后对本贴做出回应。
----------------版务----------------
如果问题未解决,请继续提问
如果问题已解决,请结贴
若到末贴发贴时间后一周仍未结贴
管理员会自动为你过期帖子、结贴或强行认可答案(好人卡-1)

版务信息:本贴由楼主自主结贴~
哎。。。。。。。。。。。。

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

2
发表于 2008-3-21 02:38:22 | 只看该作者
你用了什么其他脚本吗
出错信息是什么?
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

悔恨的天使

梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-2-26
帖子
726
3
发表于 2008-3-21 03:02:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-29 12:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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