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

Project1

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

[已经解决] 求柳柳的宠物系统的那个脚本

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2012-10-2
帖子
6
跳转到指定楼层
1
发表于 2012-10-2 03:12:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
我是新人。想加个宠物系统,看了柳柳的教学视频,可是视频里那个脚本的地址已经无效了。谁有?谢谢。

Lv1.梦旅人

梦石
0
星屑
23
在线时间
585 小时
注册时间
2012-7-3
帖子
2123
2
发表于 2012-10-2 08:36:35 | 只看该作者
http://www.66rpg.com/articles/3005
看看这个帖子对你有没有帮助..

评分

参与人数 1星屑 +200 收起 理由
hys111111 + 200 改评分

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
10 小时
注册时间
2012-10-2
帖子
6
3
 楼主| 发表于 2012-10-2 12:31:53 | 只看该作者
爱尔伯塔 发表于 2012-10-2 08:36
http://www.66rpg.com/articles/3005
看看这个帖子对你有没有帮助..

谢谢你,不过这个脚本有问题。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2012-10-3
帖子
19
4
发表于 2012-10-6 09:48:52 | 只看该作者
本帖最后由 hcm 于 2012-10-19 13:05 编辑
  1. #============================================================================
  2. #宠物系统 By Iselia雪
  3. #数据库中可以捕捉的敌人格式这样写 敌人,捕捉后的职业
  4. #捕捉特技的属性下面设定。
  5. #敌人捕捉的几率和这个属性抵抗力反比,和使用者速度+敏捷与目标速度+敏捷比值成正比。
  6. #具体设置参考范例~
  7. #整合了chaochao的人物仓库(新建的宠物$game_party.actors.include?不认?!)
  8. #不过这个难不住我ORZ……^__________^
  9. #捕捉后敌人的行走图和战斗图名字相同,没有行走图则为空。
  10. #============================================================================
  11. $捕捉 = "抓宠物啦"
  12. module RPG
  13.   class Skill
  14.     def catch?
  15.       return @element_set.include?($data_system.elements.index($捕捉))
  16.     end
  17.   end
  18. end
  19. module RPG
  20.   class Enemy
  21.     def name
  22.       return @name.split(/,/)[0]
  23.     end
  24.     def mold
  25.       return @name.split(/,/)[1]
  26.     end
  27.   end
  28. end
  29. class Game_Enemy < Game_Battler
  30.   def mold
  31.     return $data_enemies[@enemy_id].mold
  32.   end
  33.   def element_ranks
  34.     return $data_enemies[@enemy_id].element_ranks
  35.   end
  36.   def make_pet
  37.     pet = $data_actors[mold.to_i]
  38.     pet.battler_name = self.battler_name
  39.     pet.battler_hue = self.battler_hue
  40.     begin
  41.       RPG::Cache.character(self.battler_name,self.battler_hue)
  42.       pet.character_name = self.battler_name
  43.       pet.character_hue = self.battler_hue
  44.     rescue Errno::ENOENT
  45.       
  46.     end
  47.     pet.name = self.name
  48.     $data_actors[$data_actors.size] = pet
  49.     pet2 = Game_Actor.new($data_actors.size - 1)
  50.     $game_actors.push(pet2)
  51.     $data_actors.delete_at($data_actors.size)
  52.     p $data_actors[$data_actors.size]
  53.     if $game_party.actors.size == 4
  54.       $game_party.add_actor($game_actors.size-1,2)
  55.     else
  56.       $game_party.add_actor($game_actors.size-1)
  57.     end
  58.     $scene.status_window.refresh
  59.   end
  60. end
  61. class Game_Actors
  62.   def push(val)
  63.     if @data.size < 999
  64.      @data.push(val)
  65.     end  
  66.   end
  67.   def size
  68.     return @data.size
  69.   end
  70.   def [](actor_id)
  71.     if actor_id > 999
  72.       return nil
  73.     end
  74.     if @data[actor_id] == nil
  75.       @data[actor_id] = Game_Actor.new(actor_id)
  76.     end
  77.     return @data[actor_id]
  78.   end
  79. end
  80. class Game_Battler
  81.   alias skill_effect_iselia :skill_effect
  82.     def skill_effect(user,skill)
  83.       if skill.element_set.include?($data_system.elements.index($捕捉))
  84.         catch(user)
  85.         return true
  86.       end
  87.     skill_effect_iselia(user,skill)
  88.   end
  89.   #捕捉
  90.   def catch(user)
  91.     percent = (user.agi + user.dex) / (self.agi + self.dex) * percent_base
  92.     if self.can_catch and rand(100) < percent
  93.       self.hidden = true
  94.       self.current_action.kind = 3
  95.       make_pet
  96.     end
  97.   end
  98.   #可否捕捉
  99.   def can_catch
  100.     return self.is_a?(Game_Enemy) && self.mold != nil
  101.   end
  102.   #宠物资料
  103.   def percent_base
  104.     return 0 if self.is_a?(Game_Actor)
  105.     return [100,80,60,40,20,10,5][self.element_ranks[$data_system.elements.index($捕捉)]]
  106.   end
  107. end
  108. class Scene_Battle
  109.   attr_accessor :status_window
  110.   def make_skill_action_result
  111.     # 获取特技
  112.     @skill = $data_skills[@active_battler.current_action.skill_id]
  113.     # 如果不是强制行动
  114.     unless @active_battler.current_action.forcing
  115.       # 因为 SP 耗尽而无法使用的情况下
  116.       unless @active_battler.skill_can_use?(@skill.id)
  117.         # 清除强制行动对像的战斗者
  118.         $game_temp.forcing_battler = nil
  119.         # 移至步骤 1
  120.         @phase4_step = 1
  121.         return
  122.       end
  123.     end
  124.     # 消耗 SP
  125.     @active_battler.sp -= @skill.sp_cost
  126.     # 刷新状态窗口
  127.     @status_window.refresh
  128.     # 在帮助窗口显示特技名
  129.     @help_window.set_text(@skill.name, 1)
  130.     # 设置动画 ID
  131.     @animation1_id = @skill.animation1_id
  132.     @animation2_id = @skill.animation2_id
  133.     # 设置公共事件 ID
  134.     @common_event_id = @skill.common_event_id
  135.     # 设置对像侧战斗者
  136.     set_target_battlers(@skill.scope)
  137.     if @skill.catch?
  138.       @active_battler.animation_id = @animation1_id
  139.     ($data_animations[@animation1_id].frame_max + 8).times do
  140.       Graphics.update
  141.       @spriteset.update
  142.     end
  143.     @target_battlers.each do |v|
  144.       v.animation_id = @animation2_id
  145.     end
  146.     ($data_animations[@animation2_id].frame_max + 8).times do
  147.       Graphics.update
  148.       @spriteset.update
  149.     end
  150.     end
  151.     # 应用特技效果
  152.     for target in @target_battlers
  153.       target.skill_effect(@active_battler, @skill)
  154.     end
  155.     if @skill.catch?
  156.     @phase4_step = 5
  157.     end
  158.   end
  159. end



  160. ‘‘──史莱姆法师于2012-10-6 09:50补充以下内容:

  161. 人物仓库脚本
  162. #==============================================================================
  163. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  164. #==============================================================================

  165. #==============================================================================
  166. # ■ chaochao的人物仓库ver1.02正式版
  167. # 修改了Game_Party
  168. # 功能:
  169. # 用来存放角色的仓库……
  170. # 召唤画面用$scene = Chaochao_Scene_Party.new
  171. # 其它使用说明在代码里已经备注。
  172. #------------------------------------------------------------------------------
  173. # 作者:chaochao
  174. # [url]http://zhuchao.go1.icpcn.com[/url]
  175. #==============================================================================
  176. class Chaochao_Window_PartyLeft < Window_Selectable
  177.   def initialize
  178.     super(0, 0, 320, 224)
  179.     self.contents = Bitmap.new(width - 32, height - 32)
  180.     self.index = 0
  181.     refresh
  182.   end
  183.   def actor
  184.     return @actors[self.index]
  185.   end
  186.   def refresh
  187.     if self.contents != nil
  188.       self.contents.dispose
  189.       self.contents = nil
  190.     end
  191.     @actors = []
  192.     for i in 0...$game_party.actors.size
  193.       @actors.push($game_party.actors[i])
  194.     end
  195.    
  196.     @item_max = 4
  197.     if @item_max > 0
  198.       self.contents = Bitmap.new(width - 32, (row_max+1) * 32)
  199.       for i in 0...@item_max
  200.         draw_item(i)
  201.       end
  202.     end
  203.   end
  204.   def draw_item(index)
  205.     if @actors[index] != nil
  206.       actor = @actors[index]
  207.       text = @actors[index].name
  208.       lv = @actors[index].level.to_s + " "
  209.       if $game_party.chaochao.include?(actor.id) or $game_party.actors.size <= 1
  210.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  211.       else
  212.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  213.       end
  214.       self.contents.draw_text(4, index * 32 + 32, 288, 32, text)
  215.       self.contents.font.color = normal_color
  216.       self.contents.font.size = 16
  217.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  "Level:   ", 2)
  218.       colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  219.       colory = [255.0000 / 60 * @actors[index].level,255].min
  220.       self.contents.font.color = Color.new(colorx, colory, 0)
  221.       self.contents.draw_text(4, index * 32 + 36, 288, 32,  lv, 2)
  222.       self.contents.font.color = normal_color
  223.       self.contents.font.size = 22
  224.     else
  225.       self.contents.draw_text(4, index * 32 + 32, 288, 32,  "米有人物!")
  226.     end
  227.   end
  228.   def update_cursor_rect
  229.     if @index < 0
  230.       self.cursor_rect.empty
  231.       return
  232.     end
  233.     row = @index / @column_max
  234.     if row < self.top_row
  235.       self.top_row = row
  236.     end
  237.     if row > self.top_row + (self.page_row_max - 1)
  238.       self.top_row = row - (self.page_row_max - 1)
  239.     end
  240.     cursor_width = self.width / @column_max - 32
  241.     x = @index % @column_max * (cursor_width + 32)
  242.     y = @index / @column_max * 32 - self.oy + 32
  243.     self.cursor_rect.set(x, y, cursor_width, 32)
  244.   end
  245.   def item_max
  246.     return @item_max
  247.   end
  248.   def actor?(index)
  249.     return @actors[index] == nil ? false : true
  250.   end
  251.   def set_index(x)
  252.     @index = x
  253.   end
  254. end

  255. #------------------------------------------------------------------------------

  256. class Chaochao_Window_PartyRight < Window_Selectable
  257.   def initialize
  258.     super(320, 0, 320, 224)
  259.     self.contents = Bitmap.new(width - 32, height - 32)
  260.     self.index = -1
  261.     refresh
  262.   end
  263.   def actor
  264.     return @actors[self.index]
  265.   end
  266.   def refresh
  267.     if self.contents != nil
  268.       self.contents.dispose
  269.       self.contents = nil
  270.     end
  271.     @actors = []
  272.     for i in 0...$game_party.actors2.size
  273.       @actors.push($game_party.actors2[i])
  274.     end
  275.    
  276.     @item_max = $game_party.actors2.size
  277.     if @item_max > 0
  278.       self.contents = Bitmap.new(width - 32, row_max * 32)
  279.       for i in 0...@item_max
  280.         draw_item(i)
  281.       end
  282.     elsif @item_max == 0
  283.       
  284.     end
  285.   end
  286.   def draw_item(index)
  287.     actor = @actors[index]
  288.     text = @actors[index].name
  289.     lv = @actors[index].level.to_s + " "
  290.     if $game_party.chaochao2.include?(actor.id) or $game_party.actors.size >= 4
  291.         self.contents.font.color = Color.new(255, 0, 0) #不能被移动的颜色
  292.       else
  293.         self.contents.font.color = Color.new(0, 255, 0) #可以被移动的颜色
  294.       end
  295.     self.contents.draw_text(4, index * 32, 288, 32, text)
  296.     self.contents.font.color = normal_color
  297.     self.contents.font.size = 16
  298.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  "Level:   ", 2)
  299.     colorx = [255.0000 - 255.0000/60 * @actors[index].level,0].max
  300.     colory = [255.0000 / 60 * @actors[index].level,255].min
  301.     self.contents.font.color = Color.new(colorx, colory, 0)
  302.     self.contents.draw_text(4, index * 32 + 4, 288, 32,  lv, 2)
  303.     self.contents.font.color = normal_color
  304.     self.contents.font.size = 22
  305.   end
  306.   def update_cursor_rect
  307.     if @index < 0
  308.       self.cursor_rect.empty
  309.       return
  310.     end
  311.     row = @index / @column_max
  312.     if row < self.top_row
  313.       self.top_row = row
  314.     end
  315.     if row > self.top_row + (self.page_row_max - 1)
  316.       self.top_row = row - (self.page_row_max - 1)
  317.     end
  318.     cursor_width = self.width / @column_max - 32
  319.     x = @index % @column_max * (cursor_width + 32)
  320.     y = @index / @column_max * 32 - self.oy
  321.     self.cursor_rect.set(x, y, cursor_width, 32)
  322.   end
  323.   def item_max
  324.     return @item_max
  325.   end
  326.   def actor?(index)
  327.     return @actors[index] == nil ? false : true
  328.   end
  329.   def set_index(x)
  330.     @index = x
  331.   end
  332. end

  333. #------------------------------------------------------------------------------

  334. class Chaochao_Window_PartyData < Window_Base
  335.   
  336.   def initialize
  337.     super(0, 224, 640, 256)
  338.     self.contents = Bitmap.new(width - 32, height - 32)
  339.     @actor = nil
  340.   end
  341.   
  342.   def set_actor(actor)
  343.     self.contents.clear
  344.     draw_actor_name(actor, 4, 0)
  345.     draw_actor_state(actor, 140, 0)
  346.     draw_actor_hp(actor, 284, 0)
  347.     draw_actor_sp(actor, 460, 0)
  348.     @actor = actor
  349.     self.visible = true
  350.   end
  351.   def clear
  352.     self.contents.clear
  353.   end
  354. end

  355. #------------------------------------------------------------------------------

  356. class Game_Party
  357.   attr_reader   :actors2
  358.   attr_reader   :chaochao#不能从队伍向备用角色移动的角色ID
  359.   attr_reader   :chaochao2#不能从备用角色向队伍移动的角色ID
  360.   def initialize
  361.     @actors = []
  362.     @gold = 0
  363.     @steps = 0
  364.     @items = {}
  365.     @weapons = {}
  366.     @armors = {}
  367.     @actors2 = []
  368.     @chaochao = []
  369.     @chaochao2 = []
  370.   end
  371.   def add_actor(actor_id,type=1)#type为1是向队伍中添加,为2则相反。
  372.     case type
  373.     when 1
  374.       if $game_actors[actor_id] != nil
  375.         actor = $game_actors[actor_id]
  376.         #如果队伍没有满和队伍中没有此角色
  377.         if @actors.size < 4 and not @actors.include?(actor) and not @actors2.include?(actor)
  378.           @actors.push(actor)
  379.           $game_player.refresh
  380.         end
  381.       end
  382.     when 2
  383.       if $game_actors[actor_id] != nil
  384.         actor = $game_actors[actor_id]
  385.         #如果角色不在队伍中和不在备用角色队伍中的情况下
  386.         #向备用角色中添加角色
  387.         if not @actors.include?(actor) and not @actors2.include?(actor)
  388.           @actors2.push(actor)
  389.           $game_player.refresh
  390.         end
  391.       end
  392.     end
  393.   end
  394.   
  395.   def huanren(index,type=1)#type为1是从备用角色向队伍中移动,为2则相反。
  396.     case type
  397.     when 1
  398.       id = @actors2[index].id
  399.       actor = $game_actors[id]
  400.       if @actors.size < 4  and not @chaochao2.include?(index) #and not @actors.include?(actor)
  401.         @actors.push(actor)
  402.         #@actors2.delete(actor)
  403.         @actors2.each do |i|
  404.           @actors2.delete(i) if i.id == actor.id
  405.         end
  406.         $game_system.se_play($data_system.decision_se)
  407.         $game_player.refresh
  408.       end
  409.     when 2
  410.       id = @actors[index].id
  411.       actor = $game_actors[id]
  412.       if actor != nil  and not @chaochao.include?(index)
  413.         @actors2.push(actor)
  414.         @actors.each do |i|
  415.           @actors.delete(i) if i.id == actor.id
  416.         end
  417.         $game_system.se_play($data_system.decision_se)
  418.         $game_player.refresh
  419.       end
  420.     end
  421.   end
  422.   
  423.   #type1,1是操作队伍中的角色能否向备用队伍移动,2则相反。
  424.   #type2,1是添加不能移动的,2是删除不能移动的。
  425.   def yidong(actor_id,type1,type2=1)
  426.     case type2
  427.     when 1
  428.       case type1
  429.       when 1
  430.         @chaochao.push(actor_id)
  431.       when 2
  432.         @chaochao2.push(actor_id)
  433.       end
  434.     when 2
  435.       case type1
  436.       when 1
  437.         @chaochao.delete(actor_id)
  438.       when 2
  439.         @chaochao2.delete(actor_id)
  440.       end
  441.     end
  442.   end
  443.   
  444.   #type,1从队伍中离开,2从备用角色中离开,3从队伍和备用角色中离开。
  445.   def remove_actor(actor_id,type=1)
  446.     actor = $game_actors[actor_id]
  447.     case type
  448.     when 1
  449.       @actors.delete(actor)
  450.       $game_player.refresh
  451.     when 2
  452.       @actors2.delete(actor)
  453.       $game_player.refresh
  454.     when 3
  455.       @actors.delete(actor)
  456.       @actors2.delete(actor)
  457.       $game_player.refresh
  458.     end
  459.   end
  460.   
  461.   def refresh
  462.     new_actors = []
  463.     new_actors2 = []
  464.     for i in [email][email protected][/email]
  465.       if $game_actors[@actors[i].id] != nil
  466.         new_actors.push($game_actors[@actors[i].id])
  467.       end
  468.     end
  469.     @actors = new_actors
  470.     for i in [email][email protected][/email]
  471.       if $game_actors[@actors2[i].id] != nil
  472.         new_actors2.push($game_actors[@actors2[i].id])
  473.       end
  474.     end
  475.     @actors2 = new_actors2
  476.   end
  477. end

  478. #------------------------------------------------------------------------------

  479. class Chaochao_Scene_Party
  480.   def main
  481.     @left_temp_command = 0
  482.     @right_temp_command = 0
  483.     @temp = 0
  484.     @left_window = Chaochao_Window_PartyLeft.new
  485.     @left_window.active = true
  486.     @right_window = Chaochao_Window_PartyRight.new
  487.     @right_window.active = false
  488.     @data_window = Chaochao_Window_PartyData.new
  489.     update_data
  490.     Graphics.transition
  491.     loop do
  492.       Graphics.update
  493.       Input.update
  494.       update
  495.       if $scene != self
  496.         break
  497.       end
  498.     end
  499.     Graphics.freeze
  500.     @left_window.dispose
  501.     @right_window.dispose
  502.     @data_window.dispose
  503.   end
  504.   
  505.   def update
  506.     @left_window.update
  507.     @right_window.update
  508.     @data_window.update
  509.     update_command
  510.     update_data
  511.   end
  512.   
  513.   def update_command
  514.     if Input.trigger?(Input::B)
  515.       $game_system.se_play($data_system.cancel_se)
  516.       #画面切换
  517.       $scene = Scene_Map.new
  518.       return
  519.     end
  520.     if @left_window.active
  521.       update_left
  522.       return
  523.     end
  524.     if @right_window.active
  525.       update_right
  526.       return
  527.     end
  528.   end
  529.   
  530.   def update_left
  531.     if Input.trigger?(Input::RIGHT)
  532.       if @right_window.item_max > 0
  533.         @left_temp_command = @left_window.index
  534.         @left_window.set_index(-1)
  535.         $game_system.se_play($data_system.cursor_se)
  536.         @left_window.active = false
  537.         @right_window.active = true
  538.         @left_window.refresh
  539.         @right_window.refresh
  540.         @right_window.set_index(@right_temp_command)
  541.         return
  542.       else
  543.         $game_system.se_play($data_system.buzzer_se)
  544.         return
  545.       end
  546.     end
  547.     if Input.trigger?(Input::C)
  548.       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)
  549.         $game_party.huanren(@left_window.index,2)#type为1是从备用角色向队伍中移动,为2则相反。
  550.         @left_window.refresh
  551.         @right_window.refresh
  552.       else
  553.         $game_system.se_play($data_system.buzzer_se)
  554.       end
  555.     end
  556.     return
  557.   end
  558.   
  559.   def update_right
  560.     if Input.trigger?(Input::LEFT)
  561.       if @left_window.item_max > 0
  562.         @right_temp_command = @right_window.index
  563.         @right_window.set_index(-1)
  564.         $game_system.se_play($data_system.cursor_se)
  565.         @left_window.active = true
  566.         @right_window.active = false
  567.         @left_window.refresh
  568.         @right_window.refresh
  569.         @left_window.set_index(@left_temp_command)
  570.         return
  571.       else
  572.         $game_system.se_play($data_system.buzzer_se)
  573.         return
  574.       end
  575.     end
  576.     if Input.trigger?(Input::C)
  577.       if $game_party.actors.size >= 4
  578.         $game_system.se_play($data_system.buzzer_se)
  579.         return
  580.       end
  581.       if @right_window.active and @right_window.actor?(@right_window.index) and not $game_party.chaochao2.include?($game_party.actors2[@right_window.index].id)
  582.         $game_party.huanren(@right_window.index,1)#type为1是从备用角色向队伍中移动,为2则相反。
  583.         if $game_party.actors2.size == 0
  584.           @right_temp_command = @right_window.index
  585.           @right_window.set_index(-1)
  586.           $game_system.se_play($data_system.cursor_se)
  587.           @left_window.active = true
  588.           @right_window.active = false
  589.           @left_window.refresh
  590.           @right_window.refresh
  591.           @left_window.set_index(@left_temp_command)
  592.         end
  593.         if @right_window.index > 0
  594.           @right_window.set_index(@right_window.index-1)
  595.         end
  596.         @left_window.refresh
  597.         @right_window.refresh
  598.       else
  599.         $game_system.se_play($data_system.buzzer_se)
  600.       end
  601.     end
  602.     return
  603.   end
  604.   
  605.   def update_data
  606.     if @left_window.active
  607.       if $game_party.actors[@left_window.index] != nil
  608.         @data_window.set_actor($game_party.actors[@left_window.index])
  609.       else
  610.         @data_window.clear
  611.       end
  612.       return
  613.     end
  614.     if @right_window.active
  615.       if $game_party.actors2[@right_window.index] != nil
  616.         @data_window.set_actor($game_party.actors2[@right_window.index])
  617.       else
  618.         @data_window.clear
  619.       end
  620.       return
  621.     end
  622.   end
  623. end

  624. #==============================================================================
  625. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  626. #==============================================================================

  627. 人物仓库插件
  628. #==============================================================================
  629. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  630. #==============================================================================

  631. #==============================================================================
  632. # ■ Interpreter (分割定义 4)
  633. #------------------------------------------------------------------------------
  634. #  执行事件命令的解释器。本类在 Game_System 类
  635. # 和 Game_Event 类的内部使用。
  636. #==============================================================================
  637. class Interpreter
  638.   #--------------------------------------------------------------------------
  639.   # ● 角色的替换
  640.   #--------------------------------------------------------------------------
  641.   def command_129
  642.     # 获取角色
  643.     actor = $game_actors[@parameters[0]]
  644.     # 角色有效的情况下
  645.     if actor != nil
  646.       # 操作分支
  647.       if @parameters[1] == 0
  648.         if @parameters[2] == 1
  649.           $game_actors[@parameters[0]].setup(@parameters[0])
  650.         end
  651.         if $game_party.actors.size == 4
  652.           $game_party.add_actor(@parameters[0],2)
  653.         else
  654.           $game_party.add_actor(@parameters[0])
  655.         end
  656.       else
  657.         $game_party.remove_actor(@parameters[0],3)
  658.       end
  659.     end
  660.     # 继续
  661.     return true
  662.   end
  663. end

  664. #==============================================================================
  665. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  666. #==============================================================================


  667. ’’
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2012-10-3
帖子
19
5
发表于 2012-10-6 09:51:13 | 只看该作者
人物仓库插件
#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================

#==============================================================================
# ■ Interpreter (分割定义 4)
#------------------------------------------------------------------------------
#  执行事件命令的解释器。本类在 Game_System 类
# 和 Game_Event 类的内部使用。
#==============================================================================
class Interpreter
  #--------------------------------------------------------------------------
  # ● 角色的替换
  #--------------------------------------------------------------------------
  def command_129
    # 获取角色
    actor = $game_actors[@parameters[0]]
    # 角色有效的情况下
    if actor != nil
      # 操作分支
      if @parameters[1] == 0
        if @parameters[2] == 1
          $game_actors[@parameters[0]].setup(@parameters[0])
        end
        if $game_party.actors.size == 4
          $game_party.add_actor(@parameters[0],2)
        else
          $game_party.add_actor(@parameters[0])
        end
      else
        $game_party.remove_actor(@parameters[0],3)
      end
    end
    # 继续
    return true
  end
end

#==============================================================================
# 本脚本来自www.66RPG.com,使用和转载请保留此信息
#==============================================================================
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2012-10-3
帖子
19
6
发表于 2012-10-6 09:52:42 | 只看该作者
本帖最后由 hcm 于 2012-10-19 13:05 编辑

人物仓库插件
  1. #==============================================================================
  2. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ Interpreter (分割定义 4)
  6. #------------------------------------------------------------------------------
  7. #  执行事件命令的解释器。本类在 Game_System 类
  8. # 和 Game_Event 类的内部使用。
  9. #==============================================================================
  10. class Interpreter
  11.   #--------------------------------------------------------------------------
  12.   # ● 角色的替换
  13.   #--------------------------------------------------------------------------
  14.   def command_129
  15.     # 获取角色
  16.     actor = $game_actors[@parameters[0]]
  17.     # 角色有效的情况下
  18.     if actor != nil
  19.       # 操作分支
  20.       if @parameters[1] == 0
  21.         if @parameters[2] == 1
  22.           $game_actors[@parameters[0]].setup(@parameters[0])
  23.         end
  24.         if $game_party.actors.size == 4
  25.           $game_party.add_actor(@parameters[0],2)
  26.         else
  27.           $game_party.add_actor(@parameters[0])
  28.         end
  29.       else
  30.         $game_party.remove_actor(@parameters[0],3)
  31.       end
  32.     end
  33.     # 继续
  34.     return true
  35.   end
  36. end

  37. #==============================================================================
  38. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  39. #==============================================================================
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2012-10-3
帖子
19
7
发表于 2012-10-6 09:58:28 | 只看该作者
本帖最后由 hcm 于 2012-10-19 13:06 编辑

宠物系统
  1. #============================================================================
  2. #宠物系统 By Iselia雪
  3. #数据库中可以捕捉的敌人格式这样写 敌人,捕捉后的职业
  4. #捕捉特技的属性下面设定。
  5. #敌人捕捉的几率和这个属性抵抗力反比,和使用者速度+敏捷与目标速度+敏捷比值成正比。
  6. #具体设置参考范例~
  7. #整合了chaochao的人物仓库(新建的宠物$game_party.actors.include?不认?!)
  8. #不过这个难不住我ORZ……^__________^
  9. #捕捉后敌人的行走图和战斗图名字相同,没有行走图则为空。
  10. #============================================================================
  11. $捕捉 = "抓宠物啦"
  12. module RPG
  13.   class Skill
  14.     def catch?
  15.       return @element_set.include?($data_system.elements.index($捕捉))
  16.     end
  17.   end
  18. end
  19. module RPG
  20.   class Enemy
  21.     def name
  22.       return @name.split(/,/)[0]
  23.     end
  24.     def mold
  25.       return @name.split(/,/)[1]
  26.     end
  27.   end
  28. end
  29. class Game_Enemy < Game_Battler
  30.   def mold
  31.     return $data_enemies[@enemy_id].mold
  32.   end
  33.   def element_ranks
  34.     return $data_enemies[@enemy_id].element_ranks
  35.   end
  36.   def make_pet
  37.     pet = $data_actors[mold.to_i]
  38.     pet.battler_name = self.battler_name
  39.     pet.battler_hue = self.battler_hue
  40.     begin
  41.       RPG::Cache.character(self.battler_name,self.battler_hue)
  42.       pet.character_name = self.battler_name
  43.       pet.character_hue = self.battler_hue
  44.     rescue Errno::ENOENT
  45.       
  46.     end
  47.     pet.name = self.name
  48.     $data_actors[$data_actors.size] = pet
  49.     pet2 = Game_Actor.new($data_actors.size - 1)
  50.     $game_actors.push(pet2)
  51.     $data_actors.delete_at($data_actors.size)
  52.     p $data_actors[$data_actors.size]
  53.     if $game_party.actors.size == 4
  54.       $game_party.add_actor($game_actors.size-1,2)
  55.     else
  56.       $game_party.add_actor($game_actors.size-1)
  57.     end
  58.     $scene.status_window.refresh
  59.   end
  60. end
  61. class Game_Actors
  62.   def push(val)
  63.     if @data.size < 999
  64.      @data.push(val)
  65.     end  
  66.   end
  67.   def size
  68.     return @data.size
  69.   end
  70.   def [](actor_id)
  71.     if actor_id > 999
  72.       return nil
  73.     end
  74.     if @data[actor_id] == nil
  75.       @data[actor_id] = Game_Actor.new(actor_id)
  76.     end
  77.     return @data[actor_id]
  78.   end
  79. end
  80. class Game_Battler
  81.   alias skill_effect_iselia :skill_effect
  82.     def skill_effect(user,skill)
  83.       if skill.element_set.include?($data_system.elements.index($捕捉))
  84.         catch(user)
  85.         return true
  86.       end
  87.     skill_effect_iselia(user,skill)
  88.   end
  89.   #捕捉
  90.   def catch(user)
  91.     percent = (user.agi + user.dex) / (self.agi + self.dex) * percent_base
  92.     if self.can_catch and rand(100) < percent
  93.       self.hidden = true
  94.       self.current_action.kind = 3
  95.       make_pet
  96.     end
  97.   end
  98.   #可否捕捉
  99.   def can_catch
  100.     return self.is_a?(Game_Enemy) && self.mold != nil
  101.   end
  102.   #宠物资料
  103.   def percent_base
  104.     return 0 if self.is_a?(Game_Actor)
  105.     return [100,80,60,40,20,10,5][self.element_ranks[$data_system.elements.index($捕捉)]]
  106.   end
  107. end
  108. class Scene_Battle
  109.   attr_accessor :status_window
  110.   def make_skill_action_result
  111.     # 获取特技
  112.     @skill = $data_skills[@active_battler.current_action.skill_id]
  113.     # 如果不是强制行动
  114.     unless @active_battler.current_action.forcing
  115.       # 因为 SP 耗尽而无法使用的情况下
  116.       unless @active_battler.skill_can_use?(@skill.id)
  117.         # 清除强制行动对像的战斗者
  118.         $game_temp.forcing_battler = nil
  119.         # 移至步骤 1
  120.         @phase4_step = 1
  121.         return
  122.       end
  123.     end
  124.     # 消耗 SP
  125.     @active_battler.sp -= @skill.sp_cost
  126.     # 刷新状态窗口
  127.     @status_window.refresh
  128.     # 在帮助窗口显示特技名
  129.     @help_window.set_text(@skill.name, 1)
  130.     # 设置动画 ID
  131.     @animation1_id = @skill.animation1_id
  132.     @animation2_id = @skill.animation2_id
  133.     # 设置公共事件 ID
  134.     @common_event_id = @skill.common_event_id
  135.     # 设置对像侧战斗者
  136.     set_target_battlers(@skill.scope)
  137.     if @skill.catch?
  138.       @active_battler.animation_id = @animation1_id
  139.     ($data_animations[@animation1_id].frame_max + 8).times do
  140.       Graphics.update
  141.       @spriteset.update
  142.     end
  143.     @target_battlers.each do |v|
  144.       v.animation_id = @animation2_id
  145.     end
  146.     ($data_animations[@animation2_id].frame_max + 8).times do
  147.       Graphics.update
  148.       @spriteset.update
  149.     end
  150.     end
  151.     # 应用特技效果
  152.     for target in @target_battlers
  153.       target.skill_effect(@active_battler, @skill)
  154.     end
  155.     if @skill.catch?
  156.     @phase4_step = 5
  157.     end
  158.   end
  159. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
6 小时
注册时间
2012-10-3
帖子
19
8
发表于 2012-10-6 10:04:19 | 只看该作者
柳柳的宠物系统

game111101_1064_抓宠系统.rar

284.59 KB, 下载次数: 127

柳柳的宠物系统

评分

参与人数 1星屑 +132 收起 理由
hcm + 132 感谢回答

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-3 05:25

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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