Project1

标题: 关于大话西游个人脚本系统分享与教学的求助 [打印本页]

作者: foreverlove    时间: 2011-6-13 08:50
标题: 关于大话西游个人脚本系统分享与教学的求助
如题,在战斗中,我方只有血槽没有数字啊,应该怎样修改呢?dsu_plus_rewardpost_czw
作者: 白发书生    时间: 2011-6-13 09:12
可以试试这个脚本~~~~
效果图:
  1. #=============================================================================
  2. #================================卡通血条=====================================
  3. #=============================================================================
  4. #脚本功能:用来看的吧……提示HP,SP的“去值”,方便于选择恢复物品,特技用……
  5. #不用该提示可以关掉,下面是开关号,不想用我设的开关号就自己设吧。
  6. HP_SWITCHE = 1 #HP去值显现开关ID
  7. SP_SWITCHE = 2 #SP去值显现开关ID
  8. #以下是HP,SP这就个字的颜色修改,不想用我设的话就自己改下,可能得到特殊效果……
  9. #“HP”字符串颜色
  10. HP_COLOR = Color.new(224,106,187,255)
  11. #“SP”字符串颜色
  12. SP_COLOR = Color.new(5,214,202,255)
  13. #血条长度
  14. HP_XT = 130
  15. #魔条长度
  16. SP_XT = 130
  17. #底色选择&改变&自定义
  18. #HP/SP底色也就是那条橘黄true/橘色 false/黑色
  19. #使用方法:想用黑色做底的话直接把下面的true改为false
  20. HP_YELLOW_BACK =  true                #true/false
  21. SP_YELLOW_BACK =  true                #true/false
  22. #底色自定义说明:自定义的话先把上面的true改为false才有效,然后把#后去掉在对相应
  23. #修改,可以打开PS或window图画工具做参考~
  24. HP_ZDYCOLOR = #Color.new(r,g,b,255)
  25. SP_ZDYCOLOR = #Color.new(红,绿,蓝,255)
  26. #===============================================================================
  27. class Window_Base < Window
  28.   @@color1 = Color.new(212, 37, 62, 255)
  29.   @@color2 = Color.new(0, 0, 0, 255)
  30.   alias :draw_actor_hp_original :draw_actor_hp
  31. def draw_actor_hp(actor,x,y,w=HP_XT,width = 144)
  32.   self.contents.fill_rect(x-2,y+16,w+4,16,Color.new(255,255,255,255))
  33.   self.contents.fill_rect(x-1,y+17,w+2,14,Color.new(0,0,0,255))
  34.       if HP_YELLOW_BACK  == true
  35.   self.contents.fill_rect(x,y+18,w,13,Color.new(217,168,0,255))
  36. else
  37.   self.contents.fill_rect(x,y+18,w,13,(HP_ZDYCOLOR or @@color2))
  38. end
  39.   w1 = w * actor.hp/actor.maxhp
  40.   self.contents.fill_rect(x,y+18,w1,1,Color.new(250,155,155,255))
  41.   self.contents.fill_rect(x,y+19,w1,1,Color.new(250,120,120,255))
  42.   self.contents.fill_rect(x,y+20,w1,1,Color.new(250,90,85,255))
  43.   self.contents.fill_rect(x,y+21,w1,1,Color.new(250,60,55,255))
  44.   self.contents.fill_rect(x,y+22,w1,1,Color.new(250,35,30,255))
  45.   self.contents.fill_rect(x,y+23,w1,1,Color.new(250,10,5,255))
  46.   self.contents.fill_rect(x,y+24,w1,1,Color.new(250,10,5,255))
  47.   self.contents.fill_rect(x,y+25,w1,1,Color.new(250,10,5,255))
  48.   self.contents.fill_rect(x,y+26,w1,1,Color.new(250,35,30,255))
  49.   self.contents.fill_rect(x,y+27,w1,1,Color.new(250,60,55,255))
  50.   self.contents.fill_rect(x,y+28,w1,1,Color.new(250,90,85,255))
  51.   self.contents.fill_rect(x,y+29,w1,1,Color.new(250,120,120,255))
  52.   self.contents.fill_rect(x,y+30,w1,1,Color.new(250,155,155,255))
  53.   b = actor.maxhp - actor.hp
  54.   i = x + w1
  55.   self.contents.font.size = 17
  56.   if actor.hp <= 0
  57.      self.contents.font.color = Color.new(105,106,107,255)
  58.     self.contents.draw_text(i,y+9,w1+50,30,"死亡" )
  59.   end
  60. if $game_switches[HP_SWITCHE] == true
  61.   if b > 0
  62.   self.contents.font.color = @@color1
  63.      if actor.hp > 0
  64.   self.contents.draw_text(i,y+9,w1+50,30,"-" + b.to_s)
  65.    end
  66.   end
  67. end
  68.     self.contents.font.size = 20
  69.     self.contents.font.color = HP_COLOR
  70.     self.contents.draw_text(x, y-8, 32, 32, $data_system.words.hp)
  71.     if width - 32 >= 108
  72.       hp_x = x + width - 108
  73.       flag = true
  74.     elsif width - 32 >= 48
  75.       hp_x = x + width - 48
  76.       flag = false
  77.     end
  78.     self.contents.font.size = 17
  79.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  80.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  81.     self.contents.draw_text(hp_x, y-8, 40, 32, actor.hp.to_s, 2)
  82.     if flag
  83.       self.contents.font.color = normal_color
  84.       #self.contents.draw_text(hp_x + 30, y-8, 12, 32, "/", 1)
  85.       #self.contents.draw_text(hp_x + 40, y-8, 48, 32, actor.maxhp.to_s)
  86.     end
  87.     self.contents.font.size = 20
  88. end
  89.   alias :draw_actor_sp_original :draw_actor_sp
  90. def draw_actor_sp(actor,x,y,w=SP_XT, width = 144)
  91.   self.contents.fill_rect(x-2,y+16,w+4,16,Color.new(255,255,255,255))
  92.   self.contents.fill_rect(x-1,y+17,w+2,14,Color.new(0,0,0,255))
  93.   if SP_YELLOW_BACK == true
  94.   self.contents.fill_rect(x,y+18,w,13,Color.new(217,168,0,255))
  95.   else
  96.   self.contents.fill_rect(x,y+18,w,13,(SP_ZDYCOLOR or @@color2))
  97. end
  98.   w1 = w * actor.sp/actor.maxsp
  99.   self.contents.fill_rect(x,y+18,w1,1,Color.new(0,110,205,255))
  100.   self.contents.fill_rect(x,y+19,w1,1,Color.new(0,130,225,255))
  101.   self.contents.fill_rect(x,y+20,w1,1,Color.new(0,150,235,255))
  102.   self.contents.fill_rect(x,y+21,w1,1,Color.new(0,170,240,255))
  103.   self.contents.fill_rect(x,y+22,w1,1,Color.new(0,180,245,255))
  104.   self.contents.fill_rect(x,y+23,w1,1,Color.new(0,180,250,255))
  105.   self.contents.fill_rect(x,y+24,w1,1,Color.new(0,180,255,255))
  106.   self.contents.fill_rect(x,y+25,w1,1,Color.new(0,180,250,255))
  107.   self.contents.fill_rect(x,y+26,w1,1,Color.new(0,180,245,255))
  108.   self.contents.fill_rect(x,y+27,w1,1,Color.new(0,170,240,255))
  109.   self.contents.fill_rect(x,y+28,w1,1,Color.new(0,150,235,255))
  110.   self.contents.fill_rect(x,y+29,w1,1,Color.new(0,130,225,255))
  111.   self.contents.fill_rect(x,y+30,w1,1,Color.new(0,110,205,255))
  112.   b = actor.maxsp - actor.sp
  113.   i = x + w1
  114.   self.contents.font.size = 17
  115. if $game_switches[SP_SWITCHE] == true
  116.    if b > 0
  117.   self.contents.font.color = @@color1
  118.   self.contents.draw_text(i,y+9,w1+50,30,"-" + b.to_s)
  119. else
  120.   end
  121. end
  122.   self.contents.font.size = 20
  123.     self.contents.font.color = SP_COLOR
  124.     self.contents.draw_text(x, y-8, 32, 32, $data_system.words.sp)
  125.     if width - 32 >= 108
  126.       sp_x = x + width - 108
  127.       flag = true
  128.     elsif width - 32 >= 48
  129.       sp_x = x + width - 48
  130.       flag = false
  131.     end
  132.     self.contents.font.size = 17
  133.     self.contents.font.color = actor.sp == 0 ? knockout_color :
  134.       actor.sp <= actor.maxsp / 4 ? crisis_color : normal_color
  135.     self.contents.draw_text(sp_x, y-8, 40, 32, actor.sp.to_s, 2)
  136.     if flag
  137.       self.contents.font.color = normal_color
  138.       #self.contents.draw_text(sp_x + 30, y-8, 12, 32, "/", 1)
  139.       #self.contents.draw_text(sp_x + 40, y-8, 48, 32, actor.maxsp.to_s)
  140.     end
  141.     self.contents.font.size = 20
  142. end
  143. end

  144. #==============================================================================
  145. # ■ Game_Actor
  146. #------------------------------------------------------------------------------
  147. #  アクターを扱うクラスです。このクラスは Game_Actors クラス ($game_actors)
  148. # の内部で使用され、Game_Party クラス ($game_party) からも参照されます。
  149. #==============================================================================

  150. class Game_Actor < Game_Battler
  151.   def now_exp
  152.     return @exp - @exp_list[@level]
  153.   end
  154.   def next_exp
  155.     return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  156.   end
  157. end

  158. #==============================================================================
  159. #经验条
  160. #==============================================================================

  161. class Window_Base < Window

  162.   #--------------------------------------------------------------------------
  163.   # ● EXP ゲージの描画
  164.   #--------------------------------------------------------------------------
  165.   # オリジナルのEXP描画を draw_actor_sp_original と名前変更
  166.   alias :draw_actor_exp_original :draw_actor_exp
  167.   def draw_actor_exp(actor, x, y, width = 204)
  168.     # 変数rateに 現在のexp/nextexpを代入
  169.     if actor.next_exp != 0
  170.       rate = actor.now_exp.to_f / actor.next_exp
  171.     else
  172.       rate = 1
  173.     end
  174.     # plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
  175.     # plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
  176.     # align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
  177.     # align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
  178.     # align3:ゲージタイプ 0:左詰め 1:右詰め
  179.     plus_x = 0
  180.     rate_x = 0
  181.     plus_y = 25
  182.     plus_width = 0
  183.     rate_width = 100
  184.     height = 10
  185.     align1 = 1
  186.     align2 = 2
  187.     align3 = 0
  188.     # グラデーション設定 grade1:空ゲージ grade2:実ゲージ
  189.     # (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション(激重))
  190.     grade1 = 1
  191.     grade2 = 0
  192.     # 色設定。color1:外枠,color2:中枠
  193.     # color3:空ゲージダークカラー,color4:空ゲージライトカラー
  194.     # color5:実ゲージダークカラー,color6:実ゲージライトカラー
  195.     color1 = Color.new(0, 0, 0, 192)
  196.     color2 = Color.new(255, 255, 192, 192)
  197.     color3 = Color.new(0, 0, 0, 192)
  198.     color4 = Color.new(64, 0, 0, 192)
  199.     color5 = Color.new(80 * rate, 80 - 80 * rate ** 2, 80 - 80 * rate, 192)
  200.     color6 = Color.new(240 * rate, 240 - 240 * rate ** 2, 240 - 240 * rate, 192)
  201.     # 変数expに描画するゲージの幅を代入
  202.     if actor.next_exp != 0
  203.       exp = (width + plus_width) * actor.now_exp * rate_width /
  204.                                                           100 / actor.next_exp
  205.     else
  206.       exp = (width + plus_width) * rate_width / 100
  207.     end
  208.     # ゲージの描画
  209.     gauge_rect(x + plus_x + width * rate_x / 100, y + plus_y,
  210.                 width, plus_width + width * rate_width / 100,
  211.                 height, exp, align1, align2, align3,
  212.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  213.     # オリジナルのEXP描画処理を呼び出し
  214.     draw_actor_exp_original(actor, x, y)
  215.   end
  216.   #--------------------------------------------------------------------------
  217.   # ● ゲージの描画
  218.   #--------------------------------------------------------------------------
  219.   def gauge_rect(x, y, rect_width, width, height, gauge, align1, align2, align3,
  220.                 color1, color2, color3, color4, color5, color6, grade1, grade2)
  221.     case align1
  222.     when 1
  223.       x += (rect_width - width) / 2
  224.     when 2
  225.       x += rect_width - width
  226.     end
  227.     case align2
  228.     when 1
  229.       y -= height / 2
  230.     when 2
  231.       y -= height
  232.     end
  233.     # 枠描画
  234.     self.contents.fill_rect(x, y, width, height, color1)
  235.     self.contents.fill_rect(x + 1, y + 1, width - 2, height - 2, color2)
  236.     if align3 == 0
  237.       if grade1 == 2
  238.         grade1 = 3
  239.       end
  240.       if grade2 == 2
  241.         grade2 = 3
  242.       end
  243.     end
  244.     if (align3 == 1 and grade1 == 0) or grade1 > 0
  245.       color = color3
  246.       color3 = color4
  247.       color4 = color
  248.     end
  249.     if (align3 == 1 and grade2 == 0) or grade2 > 0
  250.       color = color5
  251.       color5 = color6
  252.       color6 = color
  253.     end
  254.     # 空ゲージの描画
  255.     self.contents.gradation_rect(x + 2, y + 2, width - 4, height - 4,
  256.                                   color3, color4, grade1)
  257.     if align3 == 1
  258.       x += width - gauge
  259.     end
  260.     # 実ゲージの描画
  261.     self.contents.gradation_rect(x + 2, y + 2, gauge - 4, height - 4,
  262.                                   color5, color6, grade2)
  263.   end
  264. end

  265. #------------------------------------------------------------------------------
  266. #  Bitmapクラスに新たな機能を追加します。
  267. #==============================================================================

  268. class Bitmap
  269.   #--------------------------------------------------------------------------
  270.   # ● 矩形をグラデーション表示
  271.   #     color1 : スタートカラー
  272.   #     color2 : エンドカラー
  273.   #     align  :  0:横にグラデーション
  274.   #               1:縦にグラデーション
  275.   #               2:斜めにグラデーション(激重につき注意)
  276.   #--------------------------------------------------------------------------
  277.   def gradation_rect(x, y, width, height, color1, color2, align = 0)
  278.     if align == 0
  279.       for i in x...x + width
  280.         red   = color1.red + (color2.red - color1.red) * (i - x) / (width - 1)
  281.         green = color1.green +
  282.                 (color2.green - color1.green) * (i - x) / (width - 1)
  283.         blue  = color1.blue +
  284.                 (color2.blue - color1.blue) * (i - x) / (width - 1)
  285.         alpha = color1.alpha +
  286.                 (color2.alpha - color1.alpha) * (i - x) / (width - 1)
  287.         color = Color.new(red, green, blue, alpha)
  288.         fill_rect(i, y, 1, height, color)
  289.       end
  290.     elsif align == 1
  291.       for i in y...y + height
  292.         red   = color1.red +
  293.                 (color2.red - color1.red) * (i - y) / (height - 1)
  294.         green = color1.green +
  295.                 (color2.green - color1.green) * (i - y) / (height - 1)
  296.         blue  = color1.blue +
  297.                 (color2.blue - color1.blue) * (i - y) / (height - 1)
  298.         alpha = color1.alpha +
  299.                 (color2.alpha - color1.alpha) * (i - y) / (height - 1)
  300.         color = Color.new(red, green, blue, alpha)
  301.         fill_rect(x, i, width, 1, color)
  302.       end
  303.     elsif align == 2
  304.       for i in x...x + width
  305.         for j in y...y + height
  306.           red   = color1.red + (color2.red - color1.red) *
  307.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  308.           green = color1.green + (color2.green - color1.green) *
  309.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  310.           blue  = color1.blue + (color2.blue - color1.blue) *
  311.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  312.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  313.                   ((i - x) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  314.           color = Color.new(red, green, blue, alpha)
  315.           set_pixel(i, j, color)
  316.         end
  317.       end
  318.     elsif align == 3
  319.       for i in x...x + width
  320.         for j in y...y + height
  321.           red   = color1.red + (color2.red - color1.red) *
  322.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  323.           green = color1.green + (color2.green - color1.green) *
  324.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  325.           blue  = color1.blue + (color2.blue - color1.blue) *
  326.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  327.           alpha = color1.alpha + (color2.alpha - color1.alpha) *
  328.                 ((x + width - i) / (width - 1.0) + (j - y) / (height - 1.0)) / 2
  329.           color = Color.new(red, green, blue, alpha)
  330.           set_pixel(i, j, color)
  331.         end
  332.       end
  333.     end
  334.   end
  335. end

复制代码

作者: foreverlove    时间: 2011-6-13 09:31
用了脚本是这样
不用是这样
作者: foreverlove    时间: 2011-6-13 09:32
我想在自己的血槽里有数字
作者: foreverlove    时间: 2011-6-13 09:33
谁用过那个系统帮忙教教我怎么改啊,那个系统好复杂
作者: 白发书生    时间: 2011-6-13 09:59
不会改~~~~~~~~~猎魂引当召唤兽,强~~~~~~~~~
作者: jiahui5592986    时间: 2011-6-13 12:30
求LZ的工程,只要DATA文件,谢了
作者: foreverlove    时间: 2011-6-13 17:07
不好意思,才看到

Data.rar

167.98 KB, 下载次数: 603






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1