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

Project1

 找回密码
 注册会员
搜索

求助 随机装备前缀的随机问题

查看数: 1507 | 评论数: 4 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-12-28 17:29

正文摘要:

RT..........金庸无双2的装备系统用了随机装备  有前缀  我想把它的随机前缀设置成其中的某一个 要怎么设置 求指教 class Game_Party     def gain_weapon(weapon_id, n, ...

回复

batfjtn 发表于 2013-12-29 14:43:03
首先先来一段游戏中的源代码:

RUBY 代码复制
  1. class Game_Party  
  2.   def gain_weapon(weapon_id, n,ran = true)
  3.     if $scene.is_a?(Scene_Equip) or $scene.is_a?(Scene_Shop) or ran == false
  4.       @weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
  5.       return
  6.     end
  7.  
  8.     case rand(100)
  9.     when (98..100)
  10.       equip_class=",A"
  11.       ext_damage=15
  12.       ext_power=5
  13.     when (92..97)
  14.       equip_class=",B"
  15.       ext_damage=12
  16.       ext_power=4
  17.     when (82..93)
  18.       equip_class=",C"
  19.       ext_damage=8
  20.       ext_power=3
  21.     when (70..81)
  22.       equip_class=",D"
  23.       ext_damage=5
  24.       ext_power=2
  25.     when (50..69)
  26.       equip_class=",E"
  27.       ext_damage=3
  28.       ext_power=1
  29.     else
  30.       equip_class=""
  31.       ext_damage=0
  32.       ext_power=0
  33.     end
  34.  
  35.     new_qz = $qianzui_weapons[randg(1,$qianzui_weapons.size-1)]
  36.     new_weapon = $data_weapons[weapon_id].dup#clone
  37.     new_weapon.id = $data_weapons.size
  38.     new_weapon.name = new_qz.name+new_weapon.name+equip_class
  39.     for i in weapon_id...$data_weapons.size
  40.       if $data_weapons[i].name == new_weapon.name
  41.           @weapons[i] = [[weapon_number(i) + n, 0].max, 99].min
  42.         return
  43.       end
  44.     end
  45.     new_weapon.atk  = randg(0,new_qz.atk)+new_weapon.atk+ext_damage
  46.     new_weapon.pdef = randg(0,new_qz.pdef)+new_weapon.pdef
  47.     new_weapon.mdef = randg(0,new_qz.mdef)+new_weapon.mdef
  48.     new_weapon.str_plus = randg(0,new_qz.str_plus) + new_weapon.str_plus+ext_power
  49.     new_weapon.dex_plus = randg(0,new_qz.dex_plus) + new_weapon.dex_plus+ext_power
  50.     new_weapon.agi_plus = randg(0,new_qz.agi_plus) + new_weapon.agi_plus+ext_power
  51.     new_weapon.int_plus = randg(0,new_qz.int_plus) + new_weapon.int_plus+ext_power
  52.     #new_weapon.rang = randg(0,new_qz.rang) + new_weapon.rang  停用附加值
  53.     new_weapon.rang = new_weapon.rang
  54.     #new_weapon.time = randg(0,new_qz.time) + new_weapon.time  停用附加值
  55.     new_weapon.description = new_weapon.description + new_qz.description
  56.     new_weapon.element_set = $data_weapons[weapon_id].element_set.dup
  57.     new_qz.element_set.each{|ele|new_weapon.element_set.push(ele)}
  58.     new_weapon.plus_state_set = $data_weapons[weapon_id].plus_state_set.dup
  59.     new_qz.plus_state_set.each{|ele|new_weapon.plus_state_set.push(ele)}
  60.     new_weapon.minus_state_set = $data_weapons[weapon_id].minus_state_set.dup
  61.     new_qz.minus_state_set.each{|ele|new_weapon.minus_state_set.push(ele)}
  62.     $data_weapons.push(new_weapon)
  63.     for i in 1...$data_classes.size
  64.       if $data_classes[i].weapon_set.include?(weapon_id)
  65.         $data_classes[i].weapon_set.push(new_weapon.id)
  66.       end
  67.     end
  68.     @weapons[new_weapon.id] = [[weapon_number(new_weapon.id) + n, 0].max, 99].min
  69.   end
  70.  
  71.   def gain_armor(armor_id, n, ran = true)
  72.     if $scene.is_a?(Scene_Equip) or $scene.is_a?(Scene_Shop) or ran == false
  73.       @armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
  74.       return
  75.     end
  76.  
  77.     case rand(100)
  78.     when (98..100)
  79.       equip_class=",A"
  80.       ext_defence=15
  81.       ext_power=5
  82.     when (92..97)
  83.       equip_class=",B"
  84.       ext_defence=12
  85.       ext_power=4
  86.     when (82..93)
  87.       equip_class=",C"
  88.       ext_defence=8
  89.       ext_power=3
  90.     when (70..81)
  91.       equip_class=",D"
  92.       ext_defence=5
  93.       ext_power=2
  94.     when (50..69)
  95.       equip_class=",E"
  96.       ext_defence=3
  97.       ext_power=1
  98.     else
  99.       equip_class=""
  100.       ext_defence=0
  101.       ext_power=0
  102.     end
  103.  
  104.     new_qz = $qianzui_armors[randg(1,$qianzui_armors.size-1)]
  105.     new_armor = $data_armors[armor_id].dup#clone
  106.     new_armor.id = $data_armors.size
  107.     new_armor.name = new_qz.name+new_armor.name+equip_class
  108.     for i in armor_id...$data_armors.size
  109.       if $data_armors[i].name == new_armor.name
  110.           @armors[i] = [[armor_number(i) + n, 0].max, 99].min
  111.         return
  112.       end
  113.     end
  114.     new_armor.eva  = new_qz.eva+new_armor.eva
  115.     new_armor.pdef = new_qz.pdef+new_armor.pdef+ext_defence
  116.     new_armor.mdef = new_qz.mdef+new_armor.mdef+ext_defence
  117.     new_armor.str_plus = new_qz.str_plus + new_armor.str_plus+ext_power
  118.     new_armor.dex_plus = new_qz.dex_plus + new_armor.dex_plus+ext_power
  119.     new_armor.agi_plus = new_qz.agi_plus + new_armor.agi_plus+ext_power
  120.     new_armor.int_plus = new_qz.int_plus + new_armor.int_plus+ext_power
  121.     new_armor.description = new_armor.description + new_qz.description
  122.     new_armor.guard_element_set = $data_armors[armor_id].guard_element_set.dup
  123.     new_qz.guard_element_set.each{|ele|new_armor.guard_element_set.push(ele)}
  124.     new_armor.guard_state_set  = $data_armors[armor_id].guard_state_set .dup
  125.     new_qz.guard_state_set .each{|ele|new_armor.guard_state_set .push(ele)}
  126.     $data_armors.push(new_armor)
  127.     for i in 1...$data_classes.size
  128.       if $data_classes[i].armor_set.include?(armor_id)
  129.         $data_classes[i].armor_set.push(new_armor.id)
  130.       end
  131.     end
  132.     @armors[new_armor.id] = [[armor_number(new_armor.id) + n, 0].max, 99].min
  133.   end
  134.  
  135.   def lose_weapon(weapon_id, n)
  136.     if weapon_id > 0
  137.       @weapons[weapon_id] = [@weapons[weapon_id] - n, 0].max
  138.     end
  139.   end
  140.  
  141.   def lose_armor(armor_id, n)
  142.     if armor_id > 0
  143.       @armors[armor_id] = [@armors[armor_id] - n, 0].max
  144.     end
  145.   end
  146. end


前缀的得到方式为:

RUBY 代码复制
  1. case rand(100)
  2.     when (98..100)
  3.       equip_class=",A"
  4.       ext_defence=15
  5.       ext_power=5
  6.     when (92..97)
  7.       equip_class=",B"
  8.       ext_defence=12
  9.       ext_power=4
  10.     when (82..93)
  11.       equip_class=",C"
  12.       ext_defence=8
  13.       ext_power=3
  14.     when (70..81)
  15.       equip_class=",D"
  16.       ext_defence=5
  17.       ext_power=2
  18.     when (50..69)
  19.       equip_class=",E"
  20.       ext_defence=3
  21.       ext_power=1
  22.     else
  23.       equip_class=""
  24.       ext_defence=0
  25.       ext_power=0
  26.     end


那你就就应该知道如何修改了~~!!

直接随机数字改为固定选项~~!!

比如:

RUBY 代码复制
  1. case rand(1)
  2.     when 1
  3.       equip_class=",A"
  4.       ext_defence=15
  5.       ext_power=5
  6.     when (92..97)
  7.       equip_class=",B"
  8.       ext_defence=12
  9.       ext_power=4
  10.     when (82..93)
  11.       equip_class=",C"
  12.       ext_defence=8
  13.       ext_power=3
  14.     when (70..81)
  15.       equip_class=",D"
  16.       ext_defence=5
  17.       ext_power=2
  18.     when (50..69)
  19.       equip_class=",E"
  20.       ext_defence=3
  21.       ext_power=1
  22.     else
  23.       equip_class=""
  24.       ext_defence=0
  25.       ext_power=0
  26.     end


这样得出来的装备属性就会只得到一下选项:
      equip_class=",A"
      ext_defence=15
      ext_power=5

然后就对应到下面的脚本:
RUBY 代码复制
  1. =begin
  2. 武器/防具詳細說明及套裝界面
  3. 從window_help 分離, 由vioyrbr設計及整合 20130615
  4. 依附於main 的顏色及字型設定
  5. =end
  6. class Window_Help < Window_Base
  7.   #==========================================================
  8.   def set_weapon(weapon)
  9.     if weapon.nil?
  10.       self.visible = false
  11.       return
  12.     else
  13.       self.visible = true
  14.     end
  15.     return if weapon == @item
  16.     self.width = 240
  17.     self.height = 330
  18.     self.z += 20
  19.  
  20.     self.contents = Bitmap.new(self.width, self.height)
  21.     self.windowskin = RPG::Cache.windowskin("equip")
  22.     self.contents.font.name = $font_spec_name
  23.     self.contents.font.size = 18
  24.     h = 0
  25.     suffix = ""
  26.  
  27.     case weapon.equip_class
  28.     when 'A'
  29.       self.contents.font.color = font_color("金")
  30.       suffix = "「傳說」"
  31.     when 'B'
  32.       self.contents.font.color = font_color("紫")
  33.       suffix = "「史詩」"
  34.     when 'C'
  35.       self.contents.font.color = font_color("紅")
  36.       suffix = "「完美」"
  37.     when 'D'
  38.       self.contents.font.color = font_color("藍")
  39.       suffix = "「精良」"
  40.     when 'E'
  41.       self.contents.font.color = font_color("綠")
  42.       suffix = "「優秀」"
  43.     else
  44.       self.contents.font.color = font_color("白")  
  45.     end
  46.  
  47.     self.contents.draw_text(0,h*ch,cw(weapon.name+suffix),ch,weapon.name+suffix)
  48.     self.contents.font.size = 16
  49.     h += 1
  50.     self.contents.font.color = font_color("黃")   
  51.     h += description(0,h,weapon.description)
  52.     if weapon.price != 0
  53.       h += 1
  54.       #if $scene.is_a?(Scene_BuyShop)
  55.         #self.contents.draw_text(0,h*ch,cw("購買價格 :")+cw(weapon.price.to_s),ch,"購買價格 :"+weapon.price.to_s)
  56.       #else
  57.         #self.contents.draw_text(0,h*ch,cw("出售價格 :")+cw((weapon.price/2).to_s),ch,"出售價格 :"+(weapon.price/2).to_s)
  58.       #end
  59.     end
  60.  
  61.     self.contents.font.color = font_color("綠")
  62.     if weapon.atk != 0
  63.       h += 1
  64.       self.contents.draw_text(0,h*ch,cw("攻擊力 #{weapon.atk}"),ch,"攻擊力 #{weapon.atk}")
  65.     end
  66.     if weapon.pdef != 0
  67.       h += 1
  68.       self.contents.draw_text(0,h*ch,cw("外功防御 #{weapon.pdef}"),ch,"外功防御 #{weapon.pdef}")
  69.     end
  70.     if weapon.mdef != 0
  71.       h += 1
  72.       self.contents.draw_text(0,h*ch,cw("內功防禦 #{weapon.mdef}"),ch,"內功防禦 #{weapon.mdef}")
  73.     end
  74.  
  75.     self.contents.font.color = font_color("紅")
  76.     if weapon.str_plus != 0
  77.       h += 1
  78.       self.contents.draw_text(0,h*ch,cw("剛勁 #{weapon.str_plus}"),ch,"剛勁 #{weapon.str_plus}")
  79.     end
  80.     if weapon.dex_plus != 0
  81.       h += 1
  82.       self.contents.draw_text(0,h*ch,cw("癒勁 #{weapon.dex_plus}"),ch,"癒勁 #{weapon.dex_plus}")
  83.     end
  84.     if weapon.agi_plus != 0
  85.       h += 1
  86.       self.contents.draw_text(0,h*ch,cw("輕勁 #{weapon.agi_plus}"),ch,"輕勁 #{weapon.agi_plus}")
  87.     end
  88.     if weapon.int_plus != 0
  89.       h += 1
  90.       self.contents.draw_text(0,h*ch,cw("柔勁 #{weapon.int_plus}"),ch,"柔勁 #{weapon.int_plus}")
  91.     end
  92.  
  93.     self.contents.font.color = font_color("紫")
  94.     if weapon.plus_state_set.size != 0
  95.       strtemp=""
  96.       weapon.plus_state_set.each{|id|
  97.         if strtemp==""
  98.           strtemp = "附加狀態 " + $data_states[id].name
  99.         else
  100.           strtemp = strtemp + $data_states[id].name
  101.           h+=1
  102.           self.contents.draw_text(0,h*ch,cw(strtemp),ch,strtemp)
  103.           strtemp = ""
  104.         end        
  105.       }
  106.       if strtemp != ""
  107.         h+=1
  108.         self.contents.draw_text(0,h*ch,cw(strtemp),ch,strtemp)
  109.         strtemp = ""
  110.       end      
  111.     end
  112.     @item = weapon
  113.   end
  114. #==========================================================
  115.   def set_armor(armor)
  116.     if armor.nil?
  117.       self.visible = false
  118.       return
  119.     else
  120.       self.visible = true
  121.     end
  122.     return if armor == @item
  123.  
  124.     self.width = 240
  125.     self.height = 330
  126.     self.z += 20
  127.     self.contents = Bitmap.new(self.width, self.height)
  128.     self.windowskin = RPG::Cache.windowskin("equip")
  129.     self.contents.font.name = $font_spec_name
  130.     self.contents.font.size = 18
  131.     h = 0
  132.         suffix = ""
  133.  
  134.     case armor.equip_class
  135.     when 'A'
  136.       self.contents.font.color = font_color("金")
  137.       suffix = "「傳說」"
  138.     when 'B'
  139.       self.contents.font.color = font_color("紫")
  140.       suffix = "「史詩」"
  141.     when 'C'
  142.       self.contents.font.color = font_color("紅")
  143.       suffix = "「完美」"
  144.     when 'D'
  145.       self.contents.font.color = font_color("藍")
  146.       suffix = "「精良」"
  147.     when 'E'
  148.       self.contents.font.color = font_color("綠")
  149.       suffix = "「優秀」"
  150.     else
  151.       self.contents.font.color = font_color("白")  
  152.     end
  153.  
  154.     self.contents.draw_text(0,h*ch,cw(armor.name+suffix),ch,armor.name+suffix)
  155.     self.contents.font.size = 16
  156.     h += 1
  157.     self.contents.font.color = font_color("黃")   
  158.     h += description(0,h,armor.description)
  159.     if armor.price != 0
  160.       h += 1
  161.       #if $scene.is_a?(Scene_BuyShop)
  162.         #self.contents.draw_text(0,h*ch,cw("購買價格 :")+cw(armor.price.to_s),ch,"購買價格 :"+armor.price.to_s)
  163.       #else
  164.         #self.contents.draw_text(0,h*ch,cw("出售價格 :")+cw((armor.price/2).to_s),ch,"出售價格 :"+(armor.price/2).to_s)
  165.       #end
  166.     end
  167.  
  168.     self.contents.font.color = font_color("綠")
  169.     if armor.pdef != 0
  170.       h += 1
  171.       self.contents.draw_text(0,h*ch,cw("外功防禦 #{armor.pdef}"),ch,"外功防禦 #{armor.pdef}")
  172.     end
  173.     if armor.mdef != 0
  174.       h += 1
  175.       self.contents.draw_text(0,h*ch,cw("內功防禦 #{armor.mdef}"),ch,"內功防禦 #{armor.mdef}")
  176.     end
  177.  
  178.     self.contents.font.color = font_color("紅")
  179.     if armor.str_plus != 0
  180.       h += 1
  181.       self.contents.draw_text(0,h*ch,cw("剛勁 #{armor.str_plus}"),ch,"剛勁 #{armor.str_plus}")
  182.     end
  183.     if armor.dex_plus != 0
  184.       h += 1
  185.       self.contents.draw_text(0,h*ch,cw("癒勁 #{armor.dex_plus}"),ch,"癒勁 #{armor.dex_plus}")
  186.     end
  187.     if armor.agi_plus != 0
  188.       h += 1
  189.       self.contents.draw_text(0,h*ch,cw("輕勁 #{armor.agi_plus}"),ch,"輕勁 #{armor.agi_plus}")
  190.     end
  191.     if armor.int_plus != 0
  192.       h += 1
  193.       self.contents.draw_text(0,h*ch,cw("柔勁 #{armor.int_plus}"),ch,"柔勁 #{armor.int_plus}")
  194.     end
  195.  
  196.     self.contents.font.color = font_color("紫")
  197.     if armor.guard_state_set.size != 0
  198.       strtemp=""
  199.       armor.guard_state_set.each{|id|
  200.         if strtemp==""
  201.           strtemp = "抵禦狀態 " + $data_states[id].name
  202.         else
  203.           strtemp = strtemp + $data_states[id].name
  204.           h+=1
  205.           self.contents.draw_text(0,h*ch,cw(strtemp),ch,strtemp)
  206.           strtemp = ""
  207.         end        
  208.       }
  209.       if strtemp != ""
  210.         h+=1
  211.         self.contents.draw_text(0,h*ch,cw(strtemp),ch,strtemp)
  212.         strtemp = ""
  213.       end      
  214.     end
  215.     @item = armor
  216.   end
  217. #==========================================================
  218. # 套裝顯示(武器) -- 遊戲內設定是沒有武器套裝, 缺功能, 只作備用
  219. #==========================================================
  220.   def suit_weapon(weapon)
  221.     self.visible = false
  222.     return
  223.   end
  224. #==========================================================
  225. # 套裝顯示(防具)
  226. #==========================================================
  227.   def suit_armor(armor)
  228.     if armor.nil?
  229.       self.visible = false
  230.       return
  231.     else
  232.       self.visible = true
  233.     end
  234.     return if armor == @item
  235.  
  236.     local_suit_list = []
  237.     SUIT_LIST.each{ |key,value|
  238.       if value.include?(armor.id)        
  239.         local_suit_list.push(key)
  240.       end      
  241.     }
  242.     if local_suit_list == []
  243.       self.visible = false
  244.       return
  245.     end   
  246.  
  247.     self.width = 180
  248.     self.z += 20
  249.     self.contents = Bitmap.new(self.width, self.height)
  250.     self.windowskin = RPG::Cache.windowskin("equip")
  251.     self.contents.font.name = $font_spec_name
  252.     self.contents.font.color = font_color("黃")
  253.     self.contents.font.size = 18
  254.     h=0
  255.  
  256.     self.contents.draw_text(0,h*ch,cw("套裝內容"),ch,"套裝內容")
  257.  
  258.     h+=2
  259.     self.contents.font.size = 14
  260.     local_suit_list.each {|result|
  261.       self.contents.draw_text(0,h*ch,cw(result),ch,result)
  262.       h+=1
  263.     }
  264.  
  265.     self.height = [h * ch + 32,330].min
  266.   end
  267.  
  268.   #==========================================================
  269.   # 套裝顯示(防具) -- 已安裝後
  270.   #==========================================================
  271.   def suit_armor_check(actor)
  272.     self.contents.clear
  273.     suitname = actor.suit_matching
  274.     if suitname.nil?
  275.       self.visible = false
  276.       return
  277.     end
  278.  
  279.     effects = SUIT_EFFECT[suitname]
  280.     begin
  281.       self.width = 160
  282.       self.z += 20
  283.       self.contents = Bitmap.new(self.width, self.height)
  284.       self.windowskin = RPG::Cache.windowskin("equip")
  285.       self.contents.font.name = $font_spec_name
  286.       self.contents.font.color = font_color("黃")
  287.       self.contents.font.size = 18
  288.       h=0
  289.  
  290.       self.contents.draw_text(0,h*ch,cw("套裝效果"),ch,"套裝效果")
  291.       h+=2
  292.       x = 90
  293.       self.contents.font.size = 14
  294.       self.contents.draw_text(0,h*ch,cw("氣血上限"),ch,"氣血上限")
  295.       self.contents.draw_text(x,h*ch,cw(effects[0].to_s),ch, effects[0].to_s)
  296.       h+=1
  297.       self.contents.draw_text(0,h*ch,cw("內力上限"),ch,"內力上限")
  298.       self.contents.draw_text(x,h*ch,cw(effects[1].to_s),ch, effects[1].to_s)
  299.       h+=1
  300.       self.contents.draw_text(0,h*ch,cw("剛勁"),ch,"剛勁")
  301.       self.contents.draw_text(x,h*ch,cw(effects[2].to_s),ch, effects[2].to_s)
  302.       h+=1
  303.       self.contents.draw_text(0,h*ch,cw("癒勁"),ch,"癒勁")
  304.       self.contents.draw_text(x,h*ch,cw(effects[3].to_s),ch, effects[3].to_s)
  305.       h+=1
  306.       self.contents.draw_text(0,h*ch,cw("輕勁"),ch,"輕勁")
  307.       self.contents.draw_text(x,h*ch,cw(effects[4].to_s),ch, effects[4].to_s)
  308.       h+=1
  309.       self.contents.draw_text(0,h*ch,cw("柔勁"),ch,"柔勁")
  310.       self.contents.draw_text(x,h*ch,cw(effects[5].to_s),ch, effects[5].to_s)
  311.       h+=1
  312.     end
  313.     self.height = [h * 14 + 32,330].min
  314.   end  
  315. end


这个就是随机之后选择的名称代码`~!!
RUBY 代码复制
  1. case weapon.equip_class
  2.     when 'A'
  3.       self.contents.font.color = font_color("金")
  4.       suffix = "「傳說」"
  5.     when 'B'
  6.       self.contents.font.color = font_color("紫")
  7.       suffix = "「史詩」"
  8.     when 'C'
  9.       self.contents.font.color = font_color("紅")
  10.       suffix = "「完美」"
  11.     when 'D'
  12.       self.contents.font.color = font_color("藍")
  13.       suffix = "「精良」"
  14.     when 'E'
  15.       self.contents.font.color = font_color("綠")
  16.       suffix = "「優秀」"
  17.     else
  18.       self.contents.font.color = font_color("白")  
  19.     end


如果按照我上面修改的最后得到的装备名称就是:
    when 'A'
      self.contents.font.color = font_color("金")
      suffix = "「傳說」"

liujianxiong520 发表于 2013-12-28 22:00:50
大哥
  这是游戏里面的源脚本
我想把前缀指定为某一个 而且 这个是RPGXP的...........

点评

金庸2的装备前缀是在另外一个脚本中生成的~!随机属性那个~!  发表于 2013-12-29 14:23
tan12345 发表于 2013-12-28 20:36:13
VA有另外一个随机前缀的装备脚本,你可以用那个。
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-9-30 10:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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