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

Project1

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

仿仙剑练蛊皿

 关闭 [复制链接]

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
跳转到指定楼层
1
发表于 2008-2-9 23:18:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
之前看过有人要求,忘了是谁,所以就作出来了,看来脑真的已经完全残废,
这一个基本的功能竟然花了我两小时,该是时候退休了。。。。。
因为1个月没来,不知道有没有人发过,有人发过的话,就无视吧。
也不用介绍太多,玩过仙剑的人都应该直到练蛊皿,此脚本的功能就是模仿该功能,仅此而已,具体用法请看脚本开头,如果理解不能,是很正常的,因为我的表达能力不好。
以下为截图:





以下为脚本:
  1. #=============================================================================
  2. # ■ 仿练蛊皿系统
  3. #    v 0.01
  4. #    by enghao_lim
  5. #    email:[email protected]
  6. #-----------------------------------------------------------------------------
  7. #    次腳本的功能就有如名字一样,就是模仿仙剑的练蛊皿。
  8. #    练蛊皿里只能放入物品而已,武器与防具,一概不行。
  9. #    为了配合游戏,某些物品是不能放入练蛊皿的,
  10. #    所以只要将不能放入器皿里的物品的编号加入 $lgm_except_item 里就行了。
  11. #    默认里有三个物品,分别是 30,31,32编号的物品。
  12. #    $界面标题 就是界面的标题,可以更改为自己需要的名字,默认为『"练蛊皿"』。
  13. #    这个脚本采用了一个运算方式,让不管什么物品,部分先后,
  14. #    都能够拿到成果。所以这脚本为每个物品都设置了一个“练蛊皿值”,
  15. #    先后放入两个的物品的练蛊皿值相加后,总值就会得到相应的物品。
  16. #    练蛊皿值的设置方法:在物品名字后面添加@,然后后面填写其练蛊皿值。
  17. #    方便理解的格式:『物品名@练蛊皿值』。例子:回复药@5。
  18. #    这样回复药的练蛊皿值就为5。补充一点,如果没有设置,
  19. #    物品编号将自动成为改物品的练蛊皿值。接下来就是为总值设定得到的物品,
  20. #    设置敌方在下面,两个物品的练蛊皿值相加数 => 得到的物品编号。
  21. #    就用回之前的例子好了,回复药有5点,如果放入两个,相加起来就是10点,
  22. #    而根据下列表显示,『10 => 6』,也就是说我们能够获得编号为6的物品。
  23. #    为了防止出现合成不到的情况,所以必须填入所有可能性的最大数量,
  24. #    比如说,默认是40,怎要拿的呢?就在以下的列表,从0开始,到39,
  25. #    总共有40个,所以Max_lgm_value必须填入40,相对的,如果删除掉其中一个,
  26. #    记得把Max_lgm_value必须填入39,否则可能会出现问题。
  27. #    还有,从0到39,当中的号数不能中断,必须是连号才行。
  28. #    最后,调用的方法:$scene = Scene_LGM.new
  29. #-----------------------------------------------------------------------------
  30.      $界面标题 = "练蛊皿"
  31.      $lgm_except_item = [32,31,30]
  32. #=============================================================================

  33. module LGM
  34.   #所有可能性的最大数量
  35.   Max_lgm_value = 40
  36.   Output = []
  37.   Output = {
  38.   #两个物品的练蛊皿值相加数 => 得到的物品编号
  39.   0 => 1,
  40.   1 => 1,
  41.   2 => 2,
  42.   3 => 2,
  43.   4 => 3,
  44.   5 => 3,
  45.   6 => 4,
  46.   7 => 4,
  47.   8 => 5,
  48.   9 => 5,
  49.   10 => 6,
  50.   11 => 6,
  51.   12 => 7,
  52.   13 => 7,
  53.   14 => 8,
  54.   15 => 8,
  55.   16 => 9,
  56.   17 => 10,
  57.   18 => 11,
  58.   19 => 12,
  59.   20 => 13,
  60.   21 => 14,
  61.   22 => 15,
  62.   23 => 16,
  63.   24 => 17,
  64.   25 => 18,
  65.   26 => 19,
  66.   27 => 20,
  67.   28 => 21,
  68.   29 => 22,
  69.   30 => 23,
  70.   31 => 24,
  71.   32 => 25,
  72.   33 => 26,
  73.   34 => 27,
  74.   35 => 28,
  75.   36 => 29,
  76.   37 => 30,
  77.   38 => 31,
  78.   39 => 32,
  79.   }
  80. end

  81. class Window_LGM_Title < Window_Base
  82.   def initialize
  83.     super(0,0,640,96)
  84.     self.contents = Bitmap.new(width - 32,height - 32)
  85.     refresh
  86.   end
  87.   def refresh
  88.     self.contents.clear
  89.     self.contents.font.color = crisis_color
  90.     self.contents.font.size = 48
  91.     self.contents.draw_text(0,0,self.width - 32,64,$界面标题,1)
  92.   end
  93. end

  94. class Window_LGM_Item < Window_Selectable
  95.   def initialize
  96.     super(320,96,320,320)
  97.     refresh
  98.     self.index = 0
  99.   end
  100.   def item
  101.     return @data[self.index]
  102.   end
  103.   def refresh
  104.     if self.contents != nil
  105.       self.contents.dispose
  106.       self.contents = nil
  107.     end
  108.     @data = []
  109.     for i in 1...$data_items.size
  110.       if $game_party.item_number(i) > 0 and !$lgm_except_item.include?(i)
  111.         @data.push($data_items[i])
  112.       end
  113.     end
  114.     @item_max = @data.size
  115.     if @item_max > 0
  116.       self.contents = Bitmap.new(width - 32,row_max * 32)
  117.       for i in 0...@item_max
  118.         draw_item(i)
  119.       end
  120.     end
  121.   end
  122.   def draw_item(index)
  123.     item = @data[index]
  124.     number = $game_party.item_number(item.id)
  125.     self.contents.font.color = normal_color
  126.     x = 4
  127.     y = index * 32
  128.     rect = Rect.new(x,y,self.width - 32,32)
  129.     self.contents.fill_rect(rect, Color.new(0,0,0,0))
  130.     bitmap = RPG::Cache.icon(item.icon_name)
  131.     opacity = self.contents.font.color == normal_color ? 255 : 128
  132.     self.contents.blt(x, y + 4, bitmap, Rect.new(0,0,24,24),opacity)
  133.     self.contents.draw_text(x + 28,y,212,32,item.name,0)
  134.     self.contents.draw_text(x + 240,y,16,32,":",1)
  135.     self.contents.draw_text(x + 256,y,24,32,number.to_s, 2)
  136.   end
  137.   def update_help
  138.     @help_window.set_text(self.item == nil ? "" : self.item.description)
  139.   end
  140. end

  141. class Window_LGM_Help < Window_Base
  142.   def initialize
  143.     super(0, 416, 640, 64)
  144.     self.contents = Bitmap.new(width - 32,height - 32)
  145.   end
  146.   def set_text(text, align = 0)
  147.     if text != @text or align != @align
  148.       self.contents.clear
  149.       self.contents.font.color = normal_color
  150.       self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
  151.       @text = text
  152.       @align = align
  153.       @actor = nil
  154.     end
  155.     self.visible = true
  156.   end
  157. end

  158. class Window_LGM_Command < Window_Selectable
  159.   def initialize
  160.     super(0,96,320,352)
  161.     @w1 = Window_Base.new(0,96,320,96)
  162.     @w2 = Window_Base.new(0,192,320,96)
  163.     @w3 = Window_Base.new(0,288,320,64)
  164.     @w4 = Window_Base.new(0,352,320,64)
  165.     self.contents = Bitmap.new(width - 32,height - 32)
  166.     self.opacity = 0
  167.     self.back_opacity = 0
  168.     @commands = [$lgm_input_item[0],$lgm_input_item[1],"取消重來","蠱物練化"]
  169.     @item_max = 4
  170.     refresh
  171.     self.index = -1
  172.     self.active = false
  173.   end
  174.   def dispose
  175.     super
  176.     @w1.dispose
  177.     @w2.dispose
  178.     @w3.dispose
  179.     @w4.dispose
  180.   end
  181.   def refresh
  182.     self.contents.clear
  183.     rect = Rect.new(4,0,280,64)
  184.     self.contents.fill_rect(rect,Color.new(0, 0, 0, 0))
  185.     self.contents.draw_text(4,0,280,32,"蛊物㈠:")
  186.     self.contents.draw_text(4,32,280,32,$lgm_input_item[0],2)
  187.     rect = Rect.new(4,96,280,64)
  188.     self.contents.fill_rect(rect,Color.new(0, 0, 0, 0))
  189.     self.contents.draw_text(4,96,280,32,"蛊物㈡:")
  190.     self.contents.draw_text(4,128,280,32,$lgm_input_item[1],2)
  191.     rect = Rect.new(4,192,280,32)
  192.     self.contents.fill_rect(rect,Color.new(0, 0, 0, 0))
  193.     self.contents.draw_text(rect,@commands[3],1)
  194.     rect = Rect.new(4,256,280,32)
  195.     self.contents.fill_rect(rect,Color.new(0, 0, 0, 0))
  196.     self.contents.draw_text(rect,@commands[2],1)
  197.   end
  198.   def update_cursor_rect
  199.     case self.index
  200.     when 0
  201.       self.cursor_rect.set(0,0,288,64)
  202.     when 1
  203.       self.cursor_rect.set(0,96,288,64)
  204.     when 2
  205.       self.cursor_rect.set(0,192,288,32)
  206.     when 3
  207.       self.cursor_rect.set(0,256,288,32)
  208.     end
  209.   end
  210. end

  211. class Window_LGM_Output < Window_Base
  212.   def initialize
  213.     super(160,160,320,160)
  214.     self.contents = Bitmap.new(width - 32,height - 32)
  215.     refresh
  216.   end
  217.   def refresh
  218.     self.contents.clear
  219.     self.contents.font.size = 20
  220.     self.contents.font.color = normal_color
  221.     self.contents.draw_text(0,0,self.width - 32,32,"物品練化:",1)
  222.     self.contents.font.size = 40
  223.     self.contents.font.color = crisis_color
  224.     self.contents.draw_text(0,32,self.width - 32,96,$lgm_output_item,1)
  225.   end
  226. end

  227. module RPG
  228.   class Item
  229.     def name
  230.       name = @name.split(/@/)[0]
  231.       return name != nil ? name : ""
  232.     end
  233.     def lgm_value
  234.       lgm_value = @name.split(/@/)[1]
  235.       return lgm_value != nil ? lgm_value.to_i : @id
  236.     end
  237.   end
  238. end

  239. class Scene_LGM
  240.   def main
  241.     @lgm_input_item = [0,0]
  242.     @lgm_output_item = 0
  243.     $lgm_input_item = ["没有蛊物","没有蛊物"]
  244.     $lgm_output_item = "沒有練化"
  245.     @tw = Window_LGM_Title.new
  246.     @hw = Window_LGM_Help.new
  247.     @iw = Window_LGM_Item.new
  248.     @iw.active = false
  249.     @iw.index = -1
  250.     @iw.help_window = @hw
  251.     @cw = Window_LGM_Command.new
  252.     @cw.active = true
  253.     @cw.index = 0
  254.     @ow = Window_LGM_Output.new
  255.     @ow.visible = false
  256.     @ow.z = 2000
  257.     Graphics.transition
  258.     loop do
  259.       Graphics.update
  260.       Input.update
  261.       update
  262.       break if $scene != self
  263.     end
  264.     Graphics.freeze
  265.     @tw.dispose
  266.     @hw.dispose
  267.     @iw.dispose
  268.     @cw.dispose
  269.     @ow.dispose
  270.   end
  271.   def update
  272.     @tw.update
  273.     @hw.update
  274.     @iw.update
  275.     @cw.update
  276.     @ow.update
  277.     return update_cw if @cw.active
  278.     return update_iw if @iw.active
  279.     return update_ow if @ow.visible
  280.   end
  281.   def update_cw
  282.     if Input.trigger?(Input::B)
  283.       $game_system.se_play($data_system.cancel_se)
  284.       $game_party.gain_item(@lgm_input_item[0],1) if @lgm_input_item[0] != 0
  285.       $game_party.gain_item(@lgm_input_item[1],1) if @lgm_input_item[1] != 0
  286.       @lgm_input_item = [0,0]
  287.       $lgm_input_item = ["沒有蠱物","没有蛊物"]
  288.       $scene = Scene_Map.new
  289.       return
  290.     end
  291.     if Input.trigger?(Input::C)
  292.       case @cw.index
  293.       when 0,1
  294.         $game_system.se_play($data_system.decision_se)
  295.         @cw.active = false
  296.         @iw.index = 0
  297.         @iw.active = true
  298.       when 2
  299.         if @lgm_input_item[0] == 0 or @lgm_input_item[1] == 0
  300.           $game_system.se_play($data_system.cancel_se)
  301.           return
  302.         end
  303.         Audio.se_play("Audio/SE/056-Right02")
  304.         a = $data_items[@lgm_input_item[0]].lgm_value
  305.         b = $data_items[@lgm_input_item[1]].lgm_value
  306.         c = (a + b) % LGM::Max_lgm_value
  307.         @lgm_output_item = LGM::Output[c]
  308.         $lgm_output_item = $data_items[@lgm_output_item].name
  309.         $game_party.gain_item(@lgm_output_item,1)
  310.         @lgm_input_item = [0,0]
  311.         $lgm_input_item = ["沒有蠱物","没有蛊物"]
  312.         @ow.refresh
  313.         @ow.visible = true
  314.         @cw.active = false
  315.       when 3
  316.         if @lgm_input_item[0] == 0 and @lgm_input_item[1] == 0
  317.           $game_system.se_play($data_system.cancel_se)
  318.           return
  319.         end
  320.         $game_system.se_play($data_system.decision_se)
  321.         $game_party.gain_item(@lgm_input_item[0],1) if @lgm_input_item[0] != 0
  322.         $game_party.gain_item(@lgm_input_item[1],1) if @lgm_input_item[1] != 0
  323.         @lgm_input_item = [0,0]
  324.         $lgm_input_item = ["沒有蠱物","没有蛊物"]
  325.         @cw.refresh
  326.         @iw.refresh
  327.       end
  328.     end
  329.   end
  330.   def update_iw
  331.     if Input.trigger?(Input::B)
  332.       $game_system.se_play($data_system.cancel_se)
  333.       @iw.active = false
  334.       @iw.index = -1
  335.       @cw.active = true
  336.     end
  337.     if Input.trigger?(Input::C)
  338.       @item = @iw.item
  339.       return $game_system.se_play($data_system.cancel_se) if @item == nil
  340.       $game_system.se_play($data_system.decision_se)
  341.       case @cw.index
  342.       when 0
  343.         $game_party.gain_item(@lgm_input_item[0],1) if @lgm_input_item[0] !=0
  344.         $game_party.gain_item(@item.id,-1)
  345.         @lgm_input_item[0] = @item.id
  346.         $lgm_input_item[0] = @item.name
  347.         if @lgm_input_item[1] != 0
  348.           @cw.index = 2
  349.           @cw.active = true
  350.           @iw.active = false
  351.           @iw.index = -1
  352.         else
  353.           @cw.index = 1
  354.           @cw.active = true
  355.           @iw.active = false
  356.           @iw.index = -1
  357.         end
  358.       when 1
  359.         $game_party.gain_item(@lgm_input_item[1],1) if @lgm_input_item[1] !=0
  360.         $game_party.gain_item(@item.id,-1)
  361.         @lgm_input_item[1] = @item.id
  362.         $lgm_input_item[1] = @item.name
  363.         if @lgm_input_item[0] == 0
  364.           @cw.index = 0
  365.           @cw.active = true
  366.           @iw.active = false
  367.           @iw.index = -1
  368.         else
  369.           @cw.index = 2
  370.           @cw.active = true
  371.           @iw.active = false
  372.           @iw.index = -1
  373.         end
  374.       end
  375.       @cw.refresh
  376.       @iw.refresh
  377.     end
  378.   end
  379.   def update_ow
  380.     if Input.trigger?(Input::C) or Input.trigger?(Input::B)
  381.       @ow.visible = false
  382.       @cw.index = 0
  383.       @cw.active = true
  384.       @iw.refresh
  385.       @cw.refresh
  386.     end
  387.   end
  388. end
复制代码

Lv1.梦旅人

梦石
0
星屑
74
在线时间
117 小时
注册时间
2007-8-5
帖子
479
2
发表于 2008-2-9 23:20:13 | 只看该作者
恩....8错的说
回复 支持 反对

使用道具 举报

Lv1.梦旅人

music◆小流

梦石
0
星屑
50
在线时间
25 小时
注册时间
2008-1-23
帖子
498
3
发表于 2008-2-9 23:23:06 | 只看该作者
看看,8错,打包拿走{/hx}
回复 支持 反对

使用道具 举报

Lv3.寻梦者

孤独守望

梦石
0
星屑
3132
在线时间
1535 小时
注册时间
2006-10-16
帖子
4321

开拓者贵宾

4
发表于 2008-2-9 23:47:06 | 只看该作者
哇,这不是我一直想做的吗?打算开始动手术……
1.允许突破上限
2.可以过滤掉一些东西
菩提本非树,明镜本非台。回头自望路漫漫。不求姻缘,但求再见。
本来无一物,何处惹尘埃。风打浪吹雨不来。荒庭遍野,扶摇难接。
不知道多久更新一次的博客
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

5
发表于 2008-2-10 03:48:50 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
466 小时
注册时间
2006-2-25
帖子
1863
6
发表于 2008-2-10 03:54:59 | 只看该作者
lim的东西当然要支持.
顶!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

SB们再见

梦石
0
星屑
50
在线时间
13 小时
注册时间
2007-12-15
帖子
3592
7
发表于 2008-2-10 04:12:05 | 只看该作者
很好
拿走
顶下
。。。。。。。。。。
像咱这种人
会遇到爱嘛!
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
8
 楼主| 发表于 2008-2-10 07:29:13 | 只看该作者
以下引用沉影不器于2008-2-9 19:48:50的发言:
练蛊是不是物品合成的意思?

正解。{/hx}
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

心无天使

梦石
0
星屑
49
在线时间
0 小时
注册时间
2007-12-15
帖子
1016
9
发表于 2008-2-10 21:49:45 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

SB们再见

梦石
0
星屑
50
在线时间
13 小时
注册时间
2007-12-15
帖子
3592
10
发表于 2008-2-11 00:28:21 | 只看该作者
以下引用Eclair于2008-2-10 13:49:45的发言:

配合上原版的素材可能会更好的...似乎主战有个合成脚本了^^
越来越觉得..模仿仙剑的脚本越来越多,快要成整个系统了。

那样不好吗?
。。。。。。。。。。
像咱这种人
会遇到爱嘛!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 23:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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