查看: 2959|回复: 8

[已经解决] 有关P叔的一个属性装备脚本问题

[复制链接]
梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
发表于 2015-11-6 20:16:43 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 张咚咚 于 2015-11-7 12:41 编辑

只知道通过脚本获取一个带有属性的武器,怎么样可以在商店里购买属性武器呢?

1.jpg


2.jpg


Project1.zip (260.68 KB, 下载次数: 84)

点评

尽量别一帖多问  发表于 2015-11-15 11:52

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
回帖
3076
发表于 2015-11-14 23:56:01 | 显示全部楼层
求奖励多多,这遗精是第5次追问了咿咿...
Project1.rar (250.32 KB, 下载次数: 77)

点评

OK了。  发表于 2015-11-15 10:44
本版的置顶有个申请专用帖...  发表于 2015-11-15 10:38
嗯嗯,怎么申请。。  发表于 2015-11-15 10:35
申请认可啊喂...  发表于 2015-11-15 10:25
我知道了,解决了,阿里嘎套,不会再有遗精了=、=  发表于 2015-11-15 09:26

评分

参与人数 1星屑 +100 梦石 +1 收起 理由
Luciffer + 100 + 1 ╮( ̄▽ ̄")╭

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
 楼主| 发表于 2015-11-7 20:47:00 | 显示全部楼层
不能沉啊!!顶起来!!
回复

使用道具 举报

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
回帖
3076
发表于 2015-11-11 22:18:20 | 显示全部楼层
这个问题不是一两句脚本就能解决的...
由于脚本改动的地方比较多,还添加了部分脚本,所以这里就不上脚本了,具体请见工程咿咿...理解工程中聪聪的范例,你就会设置了,默认是用了10号开关和5号变量,你可以根据实际情况自行修改的咿咿...
你的脚本是从整合系统中抽出来的,为了防止报错,注释和修改了部分内容咿咿...具体改动请搜索 # 聪聪 字样查找...
Project1.rar (250.03 KB, 下载次数: 75)

评分

参与人数 1梦石 +1 收起 理由
Luciffer + 1 认可答案

查看全部评分

聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
 楼主| 发表于 2015-11-13 09:09:48 | 显示全部楼层
正太君 发表于 2015-11-11 22:18
这个问题不是一两句脚本就能解决的...
由于脚本改动的地方比较多,还添加了部分脚本,所以这里就不上脚本了 ...

买的装备角色好像不能穿。。
回复

使用道具 举报

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
回帖
3076
发表于 2015-11-13 16:57:33 | 显示全部楼层
利用劳动课来机房帮你修脚本...
Project1.rar (259.33 KB, 下载次数: 77)

点评

=、=  发表于 2015-11-14 10:38
看吧?问了吧?  发表于 2015-11-14 10:37
怎么设置商店只有这一个武器,买了后就没有呢。。  发表于 2015-11-14 10:35
不出意外的话,聪聪估计你还会追问售罄的问题...  发表于 2015-11-13 17:44
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

梦石
0
星屑
19426
在线时间
3082 小时
注册时间
2013-1-11
回帖
1207
 楼主| 发表于 2015-11-14 10:22:15 | 显示全部楼层
本帖最后由 张咚咚 于 2015-11-14 10:44 编辑
正太君 发表于 2015-11-13 16:57
利用劳动课来机房帮你修脚本...


谢谢你,嗯,还有最后一个问题。

就是卖装备时,它显示属性增减正常,买的时候只能以普通属性增减,怎么把附加属性也算进去呢。

1.jpg



[pre lang="ruby"]#==============================================================================
# ■ Window_ShopStatus
#------------------------------------------------------------------------------
#  商店画面、显示物品所持数与角色装备的窗口。
#==============================================================================

class Window_ShopStatus < Window_Base
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 240, 360)
    @item = nil
    refresh
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    if @item != nil
      number = $game_party.item_number(@item)
      self.contents.font.color = system_color
      self.contents.draw_text(4, 0, 200, WLH, Vocab::Possession)
      self.contents.font.color = normal_color
      self.contents.draw_text(4, 0, 200, WLH, number, 2)
      for actor in $game_party.members
        x = 4
        y = WLH * (2 + actor.index * 2)
        draw_actor_parameter_change(actor, x, y)
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 绘制角色当前装备和能力值
  #     actor : 角色
  #     x     : 绘制点 X 座标
  #     y     : 绘制点 Y 座标
  #--------------------------------------------------------------------------
  def draw_actor_parameter_change(actor, x, y)
    return if @item.is_a?(RPG::Item)
    enabled = actor.equippable?(@item)
    self.contents.font.color = normal_color
    self.contents.font.color.alpha = enabled ? 255 : 128
    self.contents.draw_text(x, y, 200, WLH, "")
    self.contents.draw_text(x, y + WLH * 1, 200, WLH, "气血上限")
    self.contents.draw_text(x, y + WLH * 2, 200, WLH, "法力上限")
    self.contents.draw_text(x, y + WLH * 3, 200, WLH, "攻击")
    self.contents.draw_text(x, y + WLH * 4, 200, WLH, "防御")
    self.contents.draw_text(x, y + WLH * 5, 200, WLH, "抗魔")
    self.contents.draw_text(x, y + WLH * 6, 200, WLH, "速度")
    self.contents.draw_text(x, y + WLH * 7, 200, WLH, "暴击率")
    self.contents.draw_text(x, y + WLH * 8, 200, WLH, "闪避率")

    if @item.is_a?(RPG::Weapon)
      item1 = weaker_weapon(actor)
    elsif actor.two_swords_style and @item.kind == 0
      item1 = nil
    else
      item1 = actor.equips[1 + @item.kind]
    end

      draw_item_name(item1, x, y, enabled)
   
      maxhp1 = item1 == nil ? 0 : item1.maxhp
      maxhp2 = @item == nil ? 0 : @item.maxhp
      change = maxhp2 - maxhp1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 1, 200, WLH, sprintf("%+d", change), 2)

      maxmp1 = item1 == nil ? 0 : item1.maxmp
      maxmp2 = @item == nil ? 0 : @item.maxmp
      change = maxmp2 - maxmp1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 2, 200, WLH, sprintf("%+d", change), 2)
   
      atk1 = item1 == nil ? 0 : item1.atk
      atk2 = @item == nil ? 0 : @item.atk
      change = atk2 - atk1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 3, 200, WLH, sprintf("%+d", change), 2)

      def1 = item1 == nil ? 0 : item1.def
      def2 = @item == nil ? 0 : @item.def
      change = def2 - def1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 4, 200, WLH, sprintf("%+d", change), 2)

      spi1 = item1 == nil ? 0 : item1.spi
      spi2 = @item == nil ? 0 : @item.spi
      change = spi2 - spi1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 5, 200, WLH, sprintf("%+d", change), 2)

      agi1 = item1 == nil ? 0 : item1.agi
      agi2 = @item == nil ? 0 : @item.agi
      change = agi2 - agi1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 6, 200, WLH, sprintf("%+d", change), 2)

      hit1 = item1 == nil ? 0 : item1.hit
      hit2 = @item == nil ? 0 : @item.hit
      change = hit2 - hit1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 7, 200, WLH, sprintf("%+d", change), 2)

      eva1 = item1 == nil ? 0 : item1.eva
      eva2 = @item == nil ? 0 : @item.eva
      change = eva2 - eva1
      self.contents.font.color = Color.new(0, 255, 0, 255) if change > 0     #绿色(+)
      self.contents.font.color = Color.new(255, 255, 255, 255) if change == 0 #白色(=)
      self.contents.font.color = Color.new(128, 0, 0, 255) if change < 0     #红色(-)
      self.contents.draw_text(x, y + WLH * 8, 200, WLH, sprintf("%+d", change), 2)

  end
  #--------------------------------------------------------------------------
  # ● 获取双刀派角色所装备的武器中较弱的武器
  #     actor : 角色
  #--------------------------------------------------------------------------
  def weaker_weapon(actor)
    if actor.two_swords_style
      weapon1 = actor.weapons[0]
      weapon2 = actor.weapons[1]
      if weapon1 == nil or weapon2 == nil
        return nil
      elsif weapon1.atk < weapon2.atk
        return weapon1
      else
        return weapon2
      end
    else
      return actor.weapons[0]
    end
  end
  #--------------------------------------------------------------------------
  # ● 设置物品
  #     item : 新物品
  #--------------------------------------------------------------------------
  def item=(item)
    if @item != item
      @item = item
      refresh
    end
  end
end
[/pre]




[pre lang="ruby"]#==============================================================================
# ■ Window_ShopBuy
#------------------------------------------------------------------------------
#  商店画面、浏览显示可以购买的商品的窗口。
#==============================================================================

class Window_ShopBuy < Window_Selectable
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #     x      : 窗口 X 座标
  #     y      : 窗口 Y 座标
  #--------------------------------------------------------------------------
  def initialize(x, y)
    super(x, y, 304, 360)
    @shop_goods = $game_temp.shop_goods
    refresh
    self.index = 0
  end
  #--------------------------------------------------------------------------
  # ● 获取商品
  #--------------------------------------------------------------------------
  def item
    return @data[self.index]
  end
  #--------------------------------------------------------------------------
  # ● 刷新
  #--------------------------------------------------------------------------
  def refresh
    @data = []
    unless $game_switches[1] # 控制开关必须和这里一致...
      for goods_item in @shop_goods
        case goods_item[0]
        when 0
          item = $data_items[goods_item[1]]
        when 1
          item = $base_weapons[goods_item[1]]
        when 2
          item = $base_armors[goods_item[1]]
        end
        if item != nil
          @data.push(item)
        end
      end
    else
      for i in 0..$game_variables[1].size # 存储数组必须和这里一致...
        @data.push($game_variables[1]) if $game_variables[1]
      end
    end
    @item_max = @data.size
    create_contents
    for i in 0...@item_max
      draw_item(i)
    end
  end
  #--------------------------------------------------------------------------
  # ● 绘制商品
  #     index : 商品索引
  #--------------------------------------------------------------------------
  def draw_item(index)
    item = @data[index]
    number = $game_party.item_number(item)
    enabled = (item.price <= $game_party.gold and number < 99)
    rect = item_rect(index)
    self.contents.clear_rect(rect)
    draw_item_name(item, rect.x, rect.y, enabled)
    rect.width -= 4
    self.contents.draw_text(rect, item.price, 2)
  end
  #--------------------------------------------------------------------------
  # ● 更新帮助窗口文字
  #--------------------------------------------------------------------------
  def update_help
    @help_window.set_text(item == nil ? "" : item.description)
  end
end
[/pre]


点评

是scene_shop,我还是一会儿起床再开电脑吧...  发表于 2015-11-14 10:53
好了  发表于 2015-11-14 10:45
贴出来,我电脑都没开,用飞机帮你看...  发表于 2015-11-14 10:40
我需要Scene_ShopBuy的脚本...顺便这个脚本写得真够废材的咿咿...  发表于 2015-11-14 10:35
回复

使用道具 举报

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
回帖
3076
发表于 2015-11-14 11:54:42 | 显示全部楼层
在64行
  1. draw_item_name(item1, x, y, enabled)
复制代码
的上面一行加:
  1. @item.actor_id = actor.id
复制代码

点评

嗯,谢谢你!  发表于 2015-11-14 12:20
售罄的问题要改动比较多的地方,下次再来改...  发表于 2015-11-14 11:57
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

聪仔

梦石
0
星屑
6187
在线时间
3077 小时
注册时间
2013-12-26
回帖
3076
发表于 2015-11-14 12:18:00 | 显示全部楼层
上面的问题未放到工程里,因为工程不完整,那行脚本自己添加就好了...
下面解决售罄问题...
Project1.rar (259.66 KB, 下载次数: 47)
多帮聪聪申请几张好人卡哈,这无限追问花了不少时间的咿咿...

点评

买普通装备也只能买一次这个能不能去掉啊,还有买物品会出错。。。  发表于 2015-11-14 14:01
聪聪全国第三帅...
他们都叫我【人赢聪】
我的RM能力雷达图:

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部