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

Project1

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

请求修改柳柳殿的限制型魔法商店脚本

 关闭 [复制链接]

Lv1.梦旅人

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

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

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

x
http://rpg.blue/web/htm/news175.htm
修改后的效果为进入购买界面时
根据各个不同的角色把所有该角色能学的技能通通列出来
就是这样
希望能尽快修改成功吧!
版务信息:本贴由楼主自主结贴~
头像被屏蔽

Lv1.梦旅人 (禁止发言)

悔恨的天使

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

使用道具 举报

Lv1.梦旅人

WG后援团
此人已死 有事烧纸

梦石
0
星屑
69
在线时间
12 小时
注册时间
2008-1-12
帖子
1829

贵宾

3
发表于 2008-3-5 04:16:23 | 只看该作者
你有VIP1我就帮你改
郑重声明:
1.本人是文盲,以上内容文字均不认识,也看不懂是什么意思。
2.此事与本人一点关系都没有,只是本着“看贴(虽然看不懂)回贴,利人利己的中华民族优秀传统美德”,顺便赚1个RP。
3. 本人在此留言均为网络上复制,并不代表本人同意、支持或者反对楼主观点。  
4. 如本人留言违反国家有关法律,请网络管理员及时删除本人跟贴。  
5. 因删贴不及时所产生的任何法律(包括宪法,民法,刑法,书法,公检法,基本法,劳动法,婚姻法,输入法,没办法,国际法,今日说法,吸星大-法,与台湾关系法及文中涉及或可能涉及以及未涉及之法,各地治安管理条例)纠纷或责任本人概不负责。
6. 本人谢绝任何跨省追捕行为,如有需要请直接联系楼主、原作者以及网络管理员或法人代表。  
7. 此声明最终解释权归本人所有。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-1-3
帖子
192
4
发表于 2008-3-5 06:25:55 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

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

第2届TG大赛亚军

5
发表于 2008-3-5 22:05:02 | 只看该作者
真巧啊……我刚刚改完= =
晚上回来发。
不过感觉LZ确实很伸手党……发了这么多帖都是求脚本的……自己一点都没有思考过吗?
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

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

第2届TG大赛亚军

6
发表于 2008-3-6 00:18:17 | 只看该作者
  1. #==============================================================================
  2. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  3. #==============================================================================

  4. #==============================================================================
  5. # ■ 本脚本源自www.66rpg.com,转载与使用请保留此信息
  6. #==============================================================================

  7. #——以下是一些自定义的内容

  8. $mShop_use_1 = "学习点数"    #——这项是购买魔法特技的货币的名称,如“灵魄”、“金钱”

  9. $mShop_use_2 = " "  #——这项是购买魔法特技的货币单位,如“点”、“¥”

  10. $mShop_use_variable = [1,2,3]  #——这项是购买魔法特技时消耗的变量编号,如果=0 则是消耗金钱

  11. $mShop_Window_Opacity = 160  #——这项是窗口透明度
  12. #==============================================================================
  13. # ■ RPG原装定义
  14. #==============================================================================
  15. module RPG
  16.   class Skill
  17.     def description
  18.       description = @description.split(/@/)[0]
  19.       return description != nil ? description : ''
  20.     end
  21.     def price
  22.       price = @description.split(/@/)[1]
  23.       return price != nil ? price.to_i : 0
  24.     end
  25.   end
  26. end

  27. #==============================================================================
  28. # 本脚本来自www.66RPG.com,使用和转载请保留此信息
  29. #==============================================================================

  30. #==============================================================================
  31. # ■ Window_MShopStatus
  32. #------------------------------------------------------------------------------
  33. #  特技商店画面、显示物品所持数与角色装备的窗口。
  34. #==============================================================================
  35. class Window_MShopStatus < Window_Selectable
  36.   #--------------------------------------------------------------------------
  37.   # ● 初始化对像
  38.   #--------------------------------------------------------------------------
  39.   def initialize
  40.     super(0, 64, 272, 352)
  41.     self.contents = Bitmap.new(width - 32, height - 32)
  42.     self.contents.font.size = 18
  43.     @skill = nil
  44.     self.index = 0
  45.     refresh
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 刷新
  49.   #--------------------------------------------------------------------------
  50.   def refresh
  51.     self.contents.clear
  52.     for i in 0...$game_party.actors.size
  53.       actor = $game_party.actors[i]
  54.       draw_actor_graphic(actor,12,80*i+64)
  55.       self.contents.font.color = system_color
  56.       self.contents.draw_text(44, 80*i, 240, 32, actor.name)
  57.       self.contents.draw_text(0, 80*i , 240-20,32,"等级",2)
  58.       self.contents.font.color = normal_color
  59.       self.contents.draw_text(0, 80*i, 240, 32, actor.level.to_s , 2)
  60.       self.contents.font.color = system_color
  61.       self.contents.draw_text(44, 80*i+22, 45, 32, $data_system.words.hp)
  62.       self.contents.font.color = normal_color
  63.       self.contents.draw_text(44, 80*i+22, 90, 32, actor.maxhp.to_s,2)
  64.       self.contents.font.color = system_color
  65.       self.contents.draw_text(150, 80*i+22, 45, 32, $data_system.words.sp)
  66.       self.contents.font.color = normal_color
  67.       self.contents.draw_text(150, 80*i+22, 90, 32, actor.maxsp.to_s,2)   
  68.       can_learn=false
  69.       for j in $data_classes[actor.class_id].learnings
  70.         if j.skill_id == @skill.id
  71.           can_learn=true
  72.         end
  73.       end
  74.       if can_learn == true
  75.         if actor.skill_learn?(@skill.id)
  76.           self.contents.font.color = Color.new(255,255,255,128)
  77.           self.contents.draw_text(44, 80*i+44, 196, 32, "⊙此项特技已经学习⊙",2)      
  78.         else
  79.           self.contents.font.color = Color.new(255,255,0,255)
  80.           self.contents.draw_text(44, 80*i+44, 240, 32, "★此项特技尚未学习★")
  81.         end
  82.       else
  83.         self.contents.font.color = Color.new(255,255,255,128)
  84.         self.contents.draw_text(44, 80*i+44, 196, 32, "◇此项特技无法学习◇",2)      
  85.       end
  86.     end
  87.     @item_max = $game_party.actors.size
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ● 设置物品
  91.   #     item : 新的物品
  92.   #--------------------------------------------------------------------------
  93.   def skill=(skill)
  94.     if @skill != skill
  95.       @skill = skill
  96.       refresh
  97.     end
  98.   end
  99.   #--------------------------------------------------------------------------
  100.   # ● 刷新光标矩形
  101.   #--------------------------------------------------------------------------
  102.   def update_cursor_rect
  103.     if @index < 0
  104.       self.cursor_rect.empty
  105.     else
  106.       self.cursor_rect.set(0, @index * 80, self.width - 32, 80)
  107.     end
  108.   end
  109. end

  110. #==============================================================================
  111. # ■ Window_MShopBuy
  112. #------------------------------------------------------------------------------
  113. #  特技商店画面、浏览显示可以购买的商品的窗口。
  114. #==============================================================================
  115. class Window_MShopBuy < Window_Selectable
  116.   #--------------------------------------------------------------------------
  117.   # ● 初始化对像
  118.   #     shop_goods : 商品
  119.   #--------------------------------------------------------------------------
  120.   def initialize(id)
  121.     super(272, 64, 368, 416)
  122.     @id = id
  123.     refresh
  124. #    self.index = 0
  125.   end
  126.   #--------------------------------------------------------------------------
  127.   # ● 获取物品
  128.   #--------------------------------------------------------------------------
  129.   def skill
  130.     return @data[self.index]
  131.   end
  132.   #--------------------------------------------------------------------------
  133.   # ● 刷新
  134.   #--------------------------------------------------------------------------
  135.   def refresh
  136.     if self.contents != nil
  137.       self.contents.dispose
  138.       self.contents = nil
  139.     end
  140.     @data = []
  141.     for skill_id in @id
  142.       skill = $data_skills[skill_id]
  143.       if skill != nil
  144.         @data.push(skill)
  145.       end
  146.     end
  147.     @item_max = @data.size
  148.     if @item_max > 0
  149.       self.contents = Bitmap.new(width - 32, row_max * 32)
  150.       for i in 0...@item_max
  151.         draw_item(i)
  152.       end
  153.     end
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 描绘羡慕
  157.   #     index : 项目编号
  158.   #--------------------------------------------------------------------------
  159.   def draw_item(index)
  160.     skill = @data[index]
  161.     # 除此之外的情况设置为无效文字色
  162.     if skill.price <= $mShop_gold
  163.       self.contents.font.color = normal_color
  164.     else
  165.       self.contents.font.color = disabled_color
  166.     end
  167.     x = 4
  168.     y = index * 32
  169.     rect = Rect.new(x, y, self.width - 32, 32)
  170.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  171.     bitmap = RPG::Cache.icon(skill.icon_name)
  172.     opacity = self.contents.font.color == normal_color ? 255 : 128
  173.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  174.     self.contents.draw_text(x + 28, y, 212, 32, skill.name, 0)
  175.     self.contents.draw_text(x + 240, y, 88, 32, skill.price.to_s, 2)
  176.   end
  177.   #--------------------------------------------------------------------------
  178.   # ● 刷新帮助文本
  179.   #--------------------------------------------------------------------------
  180.   def update_help
  181.     @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  182.   end
  183. end

  184. #==============================================================================
  185. # ■ Window_MGold
  186. #------------------------------------------------------------------------------
  187. #  显示金钱的窗口。
  188. #==============================================================================
  189. class Window_MGold < Window_Base
  190.   #--------------------------------------------------------------------------
  191.   # ● 初始化窗口
  192.   #--------------------------------------------------------------------------
  193.   def initialize
  194.     super(0, 0, 272, 64)
  195.     self.contents = Bitmap.new(width - 32, height - 32)
  196.     refresh
  197.   end
  198.   #--------------------------------------------------------------------------
  199.   # ● 刷新
  200.   #--------------------------------------------------------------------------
  201.   def refresh
  202.     self.contents.clear
  203.     self.contents.font.color = system_color
  204.     self.contents.draw_text(0, 0 , 240,32 ,$mShop_use_1)
  205.     self.contents.font.color = normal_color
  206.     self.contents.draw_text(0, 0, 240-contents.text_size($mShop_use_2).width-6, 32, $mShop_gold.to_s, 2)
  207.     self.contents.font.color = system_color
  208.     self.contents.draw_text(0, 0, 240, 32, $mShop_use_2, 2)
  209.   end
  210. end
  211. #==============================================================================
  212. # ■ Scene_MShop
  213. #------------------------------------------------------------------------------
  214. #  处理特技商店画面的类。
  215. #==============================================================================
  216. class Scene_MShop
  217.   #--------------------------------------------------------------------------
  218.   # ● 初始化
  219.   #--------------------------------------------------------------------------
  220.   def initialize(actor_id = 1)
  221.     @actor = $game_party.actors[actor_id - 1]
  222.     @id = []
  223.     if $mShop_use_variable[actor_id - 1] == 0
  224.       $mShop_gold = $game_party.gold
  225.     else
  226.       $mShop_gold = $game_variables[$mShop_use_variable[@actor.id - 1]]
  227.     end
  228.     for i in 0... $data_classes[@actor.class_id].learnings.size
  229.       @id[i] = $data_classes[@actor.class_id].learnings[i].skill_id
  230.     end
  231.   end
  232.   #--------------------------------------------------------------------------
  233.   # ● 主处理
  234.   #--------------------------------------------------------------------------
  235.   def main
  236.     screen = Spriteset_Map.new
  237.     # 生成帮助窗口
  238.     @help_window = Window_Help.new
  239.     @help_window.opacity = $mShop_Window_Opacity
  240.     # 生成金钱窗口
  241.     @gold_window = Window_MGold.new
  242.     @gold_window.x = 0
  243.     @gold_window.y = 416
  244.     @gold_window.opacity = $mShop_Window_Opacity
  245.     # 生成购买窗口
  246.     @buy_window = Window_MShopBuy.new(@id)
  247.     @buy_window.active = false
  248.     @buy_window.visible = true
  249.     @buy_window.help_window = @help_window
  250.     @buy_window.opacity = $mShop_Window_Opacity
  251.     # 生成状态窗口
  252.     @status_window = Window_MShopStatus.new
  253.     @status_window.visible = true
  254.     @status_window.active = true
  255.     @status_window.opacity = $mShop_Window_Opacity
  256.     # 执行过渡
  257.     Graphics.transition
  258.     # 主循环
  259.     loop do
  260.       # 刷新游戏画面
  261.       Graphics.update
  262.       # 刷新输入信息
  263.       Input.update
  264.       # 刷新画面
  265.       update
  266.       # 如果画面切换的话就中断循环
  267.       if $scene != self
  268.         break
  269.       end
  270.     end
  271.     # 准备过渡
  272.     Graphics.freeze
  273.     # 释放窗口
  274.     @help_window.dispose
  275.     @gold_window.dispose
  276.     @buy_window.dispose
  277.     @status_window.dispose
  278.     screen.dispose
  279.   end
  280.   #--------------------------------------------------------------------------
  281.   # ● 刷新画面
  282.   #--------------------------------------------------------------------------
  283.   def update
  284.     # 刷新窗口
  285.     @help_window.update
  286.     @gold_window.update
  287.     @buy_window.update
  288.     @status_window.update
  289.     # 购买窗口激活的情况下: 调用 update_buy
  290.     if @buy_window.active
  291.       update_buy
  292.       return
  293.     end
  294.     if @status_window.active
  295.       update_status
  296.       return
  297.     end
  298.   end
  299.   #--------------------------------------------------------------------------
  300.   # ● 刷新画面 (右侧窗口激活的情况下)
  301.   #--------------------------------------------------------------------------
  302.   def update_buy
  303.     @status_window.skill = @buy_window.skill
  304.     if Input.trigger?(Input::B)
  305.       $game_system.se_play($data_system.cancel_se)
  306.         @buy_window.active = false
  307.         @buy_window.index = -1
  308.         @status_window.active = true
  309.        return
  310.     end
  311.     if Input.trigger?(Input::C)
  312.       @skill = @buy_window.skill
  313.       if @skill == nil or @skill.price > $mShop_gold
  314.         $game_system.se_play($data_system.buzzer_se)
  315.         return
  316.       end
  317.       can_learn=false
  318.       for j in $data_classes[$game_party.actors[@status_window.index].class_id].learnings
  319.         if j.skill_id == @skill.id
  320.           can_learn=true
  321.         end
  322.       end
  323.       if can_learn==false
  324.         $game_system.se_play($data_system.cancel_se)
  325.         return
  326.       end
  327.       if $game_party.actors[@status_window.index].skill_learn?(@skill.id)
  328.         $game_system.se_play($data_system.cancel_se)
  329.         return
  330.       else
  331.         $game_system.se_play($data_system.decision_se)
  332.         if $mShop_use_variable[@actor.id - 1] == 0
  333.           $game_party.gain_gold([email protected])
  334.           $mShop_gold -= @skill.price
  335.         else
  336.           $game_variables[$mShop_use_variable[@actor.id - 1]] -= @skill.price
  337.           $mShop_gold -= @skill.price
  338.         end
  339.         $game_party.actors[@status_window.index].learn_skill(@skill.id)
  340.         @gold_window.refresh
  341.         @buy_window.refresh
  342.         @status_window.refresh
  343.         $game_system.se_play($data_system.decision_se)
  344.         @buy_window.active = false
  345.         @buy_window.index = -1
  346.         @status_window.active = true
  347.       end
  348.     end
  349.   end
  350.   #--------------------------------------------------------------------------
  351.   # ● 刷新画面 (状态窗口激活的情况下)
  352.   #--------------------------------------------------------------------------
  353.   def update_status
  354.     if Input.trigger?(Input::B)
  355.       $game_system.se_play($data_system.cancel_se)
  356.       $scene = Scene_Map.new #---改成menu
  357.     end
  358.     if Input.trigger?(Input::C)
  359.       @actor = $game_party.actors[@status_window.index]
  360.       @id = []
  361.       for i in 0... $data_classes[@actor.class_id].learnings.size
  362.         @id[i] = $data_classes[@actor.class_id].learnings[i].skill_id
  363.       end
  364.       @buy_window.dispose
  365.       @buy_window = Window_MShopBuy.new(@id)
  366.       @buy_window.help_window = @help_window
  367.       if $mShop_use_variable[@actor.id - 1] == 0
  368.         $mShop_gold = $game_party.gold
  369.       else
  370.         $mShop_gold = $game_variables[$mShop_use_variable[@actor.id - 1]]
  371.       end
  372.       @buy_window.opacity = $mShop_Window_Opacity
  373.       @status_window.refresh
  374.       @status_window.active = false
  375.       @buy_window.active = true
  376.       @buy_window.index = 0
  377.       @gold_window.refresh
  378.     end
  379.   end
  380. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2007-7-9
帖子
145
7
 楼主| 发表于 2008-3-6 01:45:24 | 只看该作者
哎``你不是要下星期才有空么。。。
我倒想跟你学脚本来着。。。
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

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

第2届TG大赛亚军

8
发表于 2008-3-6 01:48:21 | 只看该作者
是啊,不过这个脚本是我先前就改好的{/hx}
P。S 其实学脚本,多看看F1、整合一下人家的脚本就有收获了
毕竟求人不如求己,不可能别人永远帮你的
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-30 03:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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