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

Project1

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

8人限制和通用魔法商店并存

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2007-8-19
帖子
35
跳转到指定楼层
1
发表于 2007-8-23 02:56:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
小弟做游戏时饮用了风中萧萧大人的八人限制和通用魔法商店脚本,但是只能使用通用的,我想求个两种都可以用的脚本,我是新人
八人制战斗
http://rpg.blue/web/htm/news713.htm

版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2007-8-19
帖子
35
2
 楼主| 发表于 2007-8-23 02:56:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
小弟做游戏时饮用了风中萧萧大人的八人限制和通用魔法商店脚本,但是只能使用通用的,我想求个两种都可以用的脚本,我是新人
八人制战斗
http://rpg.blue/web/htm/news713.htm

版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

渣蓝

梦石
0
星屑
165
在线时间
1911 小时
注册时间
2007-7-12
帖子
1543
3
发表于 2007-8-23 03:00:09 | 只看该作者
本人脚本盲一个,不懂.
建议去综合应援区,悬赏整合下.
null
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
帖子
2057
4
发表于 2007-8-23 03:06:05 | 只看该作者
不好意思,对于你的问题请详细解说一下。
因为在那个八人的战斗范例里已经攻给魔法商店的脚本,
你要的到底是什么?

还有,附带一提,我们不会因为你是新人就什么都帮你做,你应该先尝试专研一下他人的范例,
这样对自己是有帮助的。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2007-8-19
帖子
35
5
 楼主| 发表于 2007-8-23 03:08:15 | 只看该作者
但是通用的会把限制的屏蔽掉
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
帖子
2057
6
发表于 2007-8-23 03:30:43 | 只看该作者
对于你的问题,你是说你想限制和通用的魔法商店一起用是吧?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
0 小时
注册时间
2007-8-19
帖子
35
7
 楼主| 发表于 2007-8-23 03:35:12 | 只看该作者
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
8003
在线时间
1184 小时
注册时间
2007-7-29
帖子
2057
8
发表于 2007-8-23 03:42:52 | 只看该作者
只是修改了一些脚本,就几个字而已。
呼叫场面 使用 脚本:
$scene = Scene_XShop.new([技能编号])
注:用法和以前的一样。
如果有问题在发短信给我。

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

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

  5. $XShop_use_1 = "金钱"    #——这项是购买魔法特技的货币的名称,如“灵魄”、“金钱”

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

  7. $XShop_use_variable = 0  #——这项是购买魔法特技时消耗的变量编号,如果=0 则是消耗金钱

  8. $XShop_Window_Opacity = 200  #——这项是窗口透明度

  9. #==============================================================================
  10. # ■ Window_XGold
  11. #------------------------------------------------------------------------------
  12. #  显示金钱的窗口。
  13. #==============================================================================
  14. class Window_XGold < Window_Base
  15. #--------------------------------------------------------------------------
  16. # ● 初始化窗口
  17. #--------------------------------------------------------------------------
  18. def initialize
  19.    super(0, 0, 272, 64)
  20.    self.contents = Bitmap.new(width - 32, height - 32)
  21.    refresh
  22. end
  23. #--------------------------------------------------------------------------
  24. # ● 刷新
  25. #--------------------------------------------------------------------------
  26. def refresh
  27.    self.contents.clear
  28.    self.contents.font.color = system_color
  29.    self.contents.draw_text(0, 0 , 240,32 ,$XShop_use_1)
  30.    self.contents.font.color = normal_color
  31.    self.contents.draw_text(0, 0, 240-contents.text_size($XShop_use_2).width-6, 32, $XShop_gold.to_s, 2)
  32.    self.contents.font.color = system_color
  33.    self.contents.draw_text(0, 0, 240, 32, $XShop_use_2, 2)
  34. end
  35. end
  36. #==============================================================================
  37. # ■ Scene_XShop
  38. #------------------------------------------------------------------------------
  39. #  处理特技商店画面的类。
  40. #==============================================================================
  41. class Scene_XShop
  42. #--------------------------------------------------------------------------
  43. # ● 初始化
  44. #--------------------------------------------------------------------------
  45. def initialize(id)
  46.    @id = id
  47. end  
  48. #--------------------------------------------------------------------------
  49. # ● 主处理
  50. #--------------------------------------------------------------------------
  51. def main
  52.    screen = Spriteset_Map.new
  53.    if $XShop_use_variable == 0
  54.      $XShop_gold = $game_party.gold
  55.    else
  56.      $XShop_gold = $game_variables[$XShop_use_variable]
  57.    end
  58.    # 生成帮助窗口
  59.    @help_window = Window_Help.new
  60.    @help_window.opacity = $XShop_Window_Opacity

  61.    # 生成金钱窗口
  62.    @gold_window = Window_XGold.new
  63.    @gold_window.x = 368
  64.    @gold_window.y = 416
  65.    @gold_window.opacity = $XShop_Window_Opacity
  66.    # 生成购买窗口
  67.    @buy_window = Window_XShopBuy.new(@id)
  68.    @buy_window.active = true
  69.    @buy_window.visible = true
  70.    @buy_window.help_window = @help_window
  71.    @buy_window.opacity = $XShop_Window_Opacity
  72.    # 生成状态窗口
  73.    @status_window = Window_XShopStatus.new
  74.    @status_window.visible = true
  75.    @status_window.active = false
  76.    @status_window.opacity = $XShop_Window_Opacity
  77.       
  78.    #生成指令窗口
  79.    @command_window = Window_Command.new(160,["学会","遗忘"])
  80.    @command_window.x = 320
  81.    @command_window.y = 240
  82.    @command_window.z = 500
  83.    @command_window.visible = false
  84.    @command_window.active = false
  85.    @command_window.opacity = $XShop_Window_Opacity
  86.    
  87.    # 执行过渡
  88.    Graphics.transition
  89.    # 主循环
  90.    loop do
  91.      # 刷新游戏画面
  92.      Graphics.update
  93.      # 刷新输入信息
  94.      Input.update
  95.      # 刷新画面
  96.      update
  97.      # 如果画面切换的话就中断循环
  98.      if $scene != self
  99.        break
  100.      end
  101.    end
  102.    # 准备过渡
  103.    Graphics.freeze
  104.    # 释放窗口
  105.    @help_window.dispose
  106.    #@mhelp_window.dispose
  107.    @gold_window.dispose
  108.    @command_window.dispose
  109.    @buy_window.dispose
  110.    @status_window.dispose
  111.    screen.dispose
  112. end
  113. #--------------------------------------------------------------------------
  114. # ● 刷新画面
  115. #--------------------------------------------------------------------------
  116. def update
  117.    # 刷新窗口
  118.    @help_window.update
  119.    #@mhelp_window.update
  120.    @gold_window.update
  121.    @buy_window.update
  122.    @status_window.update
  123.    @command_window.update
  124.    # 购买窗口激活的情况下: 调用 update_buy
  125.    if @buy_window.active
  126.      update_buy
  127.      return
  128.    end
  129.    if @status_window.active
  130.      update_status
  131.      return
  132.    end
  133.    if @command_window.active
  134.      update_command
  135.      return
  136.    end
  137. end
  138. #--------------------------------------------------------------------------
  139. # ● 刷新画面 (购买窗口激活的情况下)
  140. #--------------------------------------------------------------------------
  141. def update_buy
  142.    @status_window.skill = @buy_window.skill
  143.    if Input.trigger?(Input::B)
  144.      $game_system.se_play($data_system.cancel_se)
  145.      $scene = Scene_Map.new
  146.      return
  147.    end
  148.    if Input.trigger?(Input::C)
  149.      @skill = @buy_window.skill
  150.      if @skill == nil or @skill.price > $XShop_gold  
  151.        $game_system.se_play($data_system.buzzer_se)
  152.        return
  153.      end
  154.      $game_system.se_play($data_system.decision_se)
  155.      @buy_window.active = false
  156.      @status_window.index = 0
  157.      @status_window.active = true
  158.    end
  159. end
  160. #--------------------------------------------------------------------------
  161. # ● 刷新画面 (状态窗口激活的情况下)
  162. #--------------------------------------------------------------------------
  163. def update_status
  164.    if Input.trigger?(Input::B)
  165.      $game_system.se_play($data_system.cancel_se)
  166.      @status_window.active = false
  167.      @status_window.index = -1
  168.      @buy_window.active = true
  169.    end
  170.    if Input.trigger?(Input::C)
  171.       @status_window.active = false
  172.       @command_window.visible = true
  173.       @command_window.active = true
  174.    end   
  175. end
  176. end
  177. #--------------------------------------------------------------------------
  178. # ● 刷新画面 (指令窗口激活的情况下)
  179. #--------------------------------------------------------------------------
  180. def update_command
  181.    if Input.trigger?(Input::B)
  182.      $game_system.se_play($data_system.cancel_se)
  183.      @status_window.index = -1
  184.      @command_window.active = false
  185.      @command_window.visible = false
  186.      @buy_window.active = true
  187.      return
  188.    end
  189.    if Input.trigger?(Input::C)
  190.      if @command_window.index == 0      
  191.        if $game_party.actors[@status_window.index].skill_learn?(@skill.id)
  192.          $game_system.se_play($data_system.cancel_se)
  193.          return
  194.        else
  195.          $game_system.se_play($data_system.decision_se)
  196.          if $XShop_use_variable == 0
  197.            $game_party.gain_gold([email protected])
  198.            $XShop_gold -= @skill.price
  199.          else
  200.            $game_variables[$XShop_use_variable] -= @skill.price
  201.            $XShop_gold -= @skill.price
  202.          end
  203.          $game_party.actors[@status_window.index].learn_skill(@skill.id)
  204.          @gold_window.refresh
  205.          @buy_window.refresh
  206.          @status_window.refresh
  207.          @status_window.index = -1
  208.          @buy_window.active = true
  209.          @command_window.active = false
  210.          @command_window.visible = false   
  211.        end
  212.      elsif  @command_window.index == 1
  213.        if $game_party.actors[@status_window.index].skill_learn?(@skill.id) == false
  214.          $game_system.se_play($data_system.cancel_se)
  215.          return
  216.        else
  217.          $game_system.se_play($data_system.decision_se)
  218.          if $XShop_use_variable == 0
  219.            $game_party.gain_gold(@skill.price/2)  #<-遗忘价格为学习的一半,/2的地方相同
  220.            $XShop_gold += @skill.price/2
  221.          else
  222.            $game_variables[$XShop_use_variable] += @skill.price/2
  223.            $XShop_gold += @skill.price/2
  224.          end
  225.          $game_party.actors[@status_window.index].forget_skill(@skill.id)
  226.          @gold_window.refresh
  227.          @buy_window.refresh
  228.          @status_window.refresh
  229.          @status_window.index = -1
  230.          @buy_window.active = true
  231.          @command_window.active = false
  232.          @command_window.visible = false
  233.        end
  234.      end
  235.      return
  236.    end
  237. end
  238. #==============================================================================
  239. # ■ Window_XShopStatus
  240. #------------------------------------------------------------------------------
  241. #  特技商店画面、显示物品所持数与角色装备的窗口。
  242. #==============================================================================
  243. class Window_XShopStatus < Window_Selectable
  244. #--------------------------------------------------------------------------
  245. # ● 初始化对像
  246. #--------------------------------------------------------------------------
  247. def initialize
  248.    super(368, 64, 272, 352)
  249.    self.contents = Bitmap.new(width - 32, height - 32)
  250.    self.contents.font.size = 18
  251.    @skill = nil
  252.    refresh
  253. end
  254. #--------------------------------------------------------------------------
  255. # ● 刷新
  256. #--------------------------------------------------------------------------
  257. def refresh
  258.    self.contents.clear
  259.    for i in 0...$game_party.actors.size
  260.      actor = $game_party.actors[i]
  261.      self.contents.font.color = system_color
  262.      self.contents.draw_text(0, 40*i, 240, 32, actor.name)   
  263.      if actor.skill_learn?(@skill.id)
  264.        self.contents.font.color = Color.new(255,255,255,128)
  265.        self.contents.draw_text(0, 40*i, 200, 32, "此特技已经学习",2)        
  266.      else
  267.        self.contents.font.color = Color.new(255,255,0,255)
  268.        self.contents.draw_text(75, 40*i, 240, 32, "此特技尚未学习")
  269.      end
  270.    end
  271.    @item_max = $game_party.actors.size
  272. end
  273. #--------------------------------------------------------------------------
  274. # ● 设置物品
  275. #     item : 新的物品
  276. #--------------------------------------------------------------------------
  277. def skill=(skill)
  278.    if @skill != skill
  279.      @skill = skill
  280.      refresh
  281.    end
  282. end
  283. #--------------------------------------------------------------------------
  284. # ● 刷新光标矩形
  285. #--------------------------------------------------------------------------
  286. def update_cursor_rect
  287.    if @index < 0
  288.      self.cursor_rect.empty
  289.    else
  290.      self.cursor_rect.set(0, @index * 40, self.width - 32, 32)
  291.    end
  292. end
  293. end
  294. #==============================================================================
  295. # ■ Window_XShopBuy
  296. #------------------------------------------------------------------------------
  297. #  特技商店画面、浏览显示可以购买的商品的窗口。
  298. #==============================================================================
  299. class Window_XShopBuy < Window_Selectable
  300. #--------------------------------------------------------------------------
  301. # ● 初始化对像
  302. #     shop_goods : 商品
  303. #--------------------------------------------------------------------------
  304. def initialize(id)
  305.    super(0, 64, 368, 416)
  306.    @id = id
  307.    refresh
  308.    self.index = 0
  309. end
  310. #--------------------------------------------------------------------------
  311. # ● 获取物品
  312. #--------------------------------------------------------------------------
  313. def skill
  314.    return @data[self.index]
  315. end
  316. #--------------------------------------------------------------------------
  317. # ● 刷新
  318. #--------------------------------------------------------------------------
  319. def refresh
  320.    if self.contents != nil
  321.      self.contents.dispose
  322.      self.contents = nil
  323.    end
  324.    @data = []
  325.    for skill_id in @id
  326.      skill = $data_skills[skill_id]
  327.      if skill != nil
  328.        @data.push(skill)
  329.      end
  330.    end
  331.    @item_max = @data.size
  332.    if @item_max > 0
  333.      self.contents = Bitmap.new(width - 32, row_max * 32)
  334.      for i in 0...@item_max
  335.        draw_item(i)
  336.      end
  337.    end
  338. end
  339. #--------------------------------------------------------------------------
  340. # ● 描绘羡慕
  341. #     index : 项目编号
  342. #--------------------------------------------------------------------------
  343. def draw_item(index)
  344.    skill = @data[index]
  345.    # 除此之外的情况设置为无效文字色
  346.    if skill.price <= $XShop_gold
  347.      self.contents.font.color = normal_color
  348.    else
  349.      self.contents.font.color = disabled_color
  350.    end
  351.    x = 4
  352.    y = index * 32
  353.    rect = Rect.new(x, y, self.width - 32, 32)
  354.    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  355.    bitmap = RPG::Cache.icon(skill.icon_name)
  356.    opacity = self.contents.font.color == normal_color ? 255 : 128
  357.    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  358.    self.contents.draw_text(x + 28, y, 212, 32, skill.name, 0)
  359.    self.contents.draw_text(x + 240, y, 88, 32, skill.price.to_s, 2)
  360. end
  361. #--------------------------------------------------------------------------
  362. # ● 刷新帮助文本
  363. #--------------------------------------------------------------------------
  364. def update_help
  365.    @help_window.set_text(self.skill == nil ? "" : self.skill.description)
  366. end
  367. end
  368. #==============================================================================
  369. # ■ RPG原装定义
  370. #==============================================================================
  371. module RPG
  372. class Skill
  373.    def description
  374.      description = @description.split(/@/)[0]
  375.      return description != nil ? description : ''
  376.    end
  377.    def price
  378.      price = @description.split(/@/)[1]
  379.      return price != nil ? price.to_i : 0
  380.    end
  381. end
  382. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
15
在线时间
0 小时
注册时间
2007-8-23
帖子
3
9
发表于 2007-8-23 03:49:47 | 只看该作者
{/pz}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-25 04:28

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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