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

Project1

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

[已经解决] 如何让同种类物品不重叠

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1428
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-10-27 22:21:55 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
1星屑

让同种类物品不重叠,多出来的在另一个格子里创建,求脚本达人相助

最佳答案

查看完整内容

用法是在物品的备注栏里写 stackmax[可叠加数量] NONDISCARD 是不可丢弃 resize_inventory (更改背包大小) 范例: 就这样~~ 翻去865行,把 @warning_window = Window_Warning.new return 这两行给注释掉,再插入 clear_loot_slots 是这样的效果吗?

点评

不清楚具体效果,见帖子  发表于 2011-10-28 09:26
测试了下,无问题……范例已上传至板凳  发表于 2011-10-28 09:01

评分

参与人数 1星屑 +2 收起 理由
Rion幻音 + 2 不客气~

查看全部评分

roguelike求生RPG研发中....

Lv1.梦旅人

梦石
0
星屑
50
在线时间
518 小时
注册时间
2010-6-16
帖子
1073
2
发表于 2011-10-27 22:21:56 | 只看该作者
本帖最后由 Rion幻音 于 2011-10-28 09:25 编辑

用法是在物品的备注栏里写
stackmax[可叠加数量]
NONDISCARD    是不可丢弃
resize_inventory (更改背包大小)

范例: Item Test.rar (246.45 KB, 下载次数: 71)
就这样~~



翻去865行,把
@warning_window = Window_Warning.new
return
这两行给注释掉,再插入
clear_loot_slots
是这样的效果吗?

点评

唉~算了,就这样把...谢谢了  发表于 2011-10-28 09:32
额~话说丢弃1个以后其他的都变成无法使用了...你的范例倒是可以....能把丢弃改成直接丢弃,后面那些判断去掉么...  发表于 2011-10-28 09:15
研究了一下,是和破限的脚本冲突了...晕  发表于 2011-10-28 09:08
额~为什么得到东西以后包里什么也没有?(\stackmax[1] 这个填了啊)  发表于 2011-10-28 08:53
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
134 小时
注册时间
2009-3-29
帖子
470
3
发表于 2011-10-28 00:08:04 | 只看该作者
可以在物品里多几个吗?比如
001:物品A
002:物品A
003:物品A
变量代入
当001物品A= “限制数”
002物品A+1

点评

另外我是脚本盲  发表于 2011-10-28 00:08
黑之结界勇士
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
503
在线时间
1478 小时
注册时间
2011-9-17
帖子
1316

开拓者贵宾

4
发表于 2011-10-28 09:42:37 | 只看该作者
本帖最后由 iisnow 于 2011-10-28 09:48 编辑

刚刚自己写的脚本:
试试吧!可能背包总格子方面还没有考虑,要考虑的话,我就去稍微改一下好了
  1. module ITEM_APART
  2.   
  3.   MAX  =  999  # 默认最多携带量
  4.   
  5. end

  6. # 用法说明:在物品的描述后加@再加上最大叠加数即可:
  7. # 例如:己方单体 HP 回复。@50

  8. class Game_Party
  9.   
  10.   include ITEM_APART

  11.   def initialize
  12.     # 建立角色序列
  13.     @actors = []
  14.     # 初始化金钱与步数
  15.     @gold = 0
  16.     @steps = 0
  17.     # 生成物品、武器、防具的所持数 hash
  18.     @items = {}
  19.     @weapons = {}
  20.     @armors = {}
  21.     @limt = []              # 生成个物品可叠加数
  22.     get_limit
  23.   end
  24.    
  25.   def gain_item(item_id, n)
  26.     # 更新 hash 的个数数据
  27.     if item_id > 0
  28.       @items[item_id] = [[item_number(item_id) + n, 0].max ,MAX].min
  29.     end
  30.   end
  31.   
  32.   def limt(id)
  33.     return @limt[id]
  34.   end
  35.   
  36.   def get_limit
  37.     for i in 1...$data_items.size
  38.       @limt[i] = $data_items[i].description.split("@")[1].to_i
  39.     end
  40.   end
  41.   
  42. end

  43. class Window_Item < Window_Selectable
  44.   
  45. def refresh
  46.     if self.contents != nil
  47.       self.contents.dispose
  48.       self.contents = nil
  49.     end
  50.     @data = []
  51.     # 添加报务
  52.     for i in 1...$data_items.size
  53.       if $game_party.item_number(i) > 0
  54.         if $game_party.item_number(i) > $game_party.limt(i)
  55.           part_num = $game_party.item_number(i) / $game_party.limt(i)
  56.           if $game_party.item_number(i) % $game_party.limt(i) != 0
  57.             part_num += 1
  58.           end
  59.           for p in 0...part_num
  60.             @data.push($data_items[i])
  61.           end
  62.         end
  63.       end
  64.     end
  65.     # 在战斗中以外添加武器、防具
  66.     unless $game_temp.in_battle
  67.       for i in 1...$data_weapons.size
  68.         if $game_party.weapon_number(i) > 0
  69.           @data.push($data_weapons[i])
  70.         end
  71.       end
  72.       for i in 1...$data_armors.size
  73.         if $game_party.armor_number(i) > 0
  74.           @data.push($data_armors[i])
  75.         end
  76.       end
  77.     end
  78.     # 如果项目数不是 0 就生成位图、重新描绘全部项目
  79.     @item_max = @data.size
  80.     if @item_max > 0
  81.       self.contents = Bitmap.new(width - 32, row_max * 32)
  82.       for i in 0...@item_max
  83.         draw_item(i)
  84.       end
  85.     end
  86.   end
  87.   
  88.   def draw_item(index)
  89.     item = @data[index]
  90.     case item
  91.     when RPG::Item
  92.       if @data[index + 1] == item
  93.         number = $game_party.limt(item.id)
  94.       else
  95.         number = $game_party.item_number(item.id) % $game_party.limt(item.id)
  96.         if number == 0
  97.           number = $game_party.limt(item.id)
  98.         end
  99.       end
  100.     when RPG::Weapon
  101.       number = $game_party.weapon_number(item.id)
  102.     when RPG::Armor
  103.       number = $game_party.armor_number(item.id)
  104.     end
  105.     if item.is_a?(RPG::Item) and
  106.        $game_party.item_can_use?(item.id)
  107.       self.contents.font.color = normal_color
  108.     else
  109.       self.contents.font.color = disabled_color
  110.     end
  111.     x = 4 + index % 2 * (288 + 32)
  112.     y = index / 2 * 32
  113.     rect = Rect.new(x, y, self.width / @column_max - 32, 32)
  114.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  115.     bitmap = RPG::Cache.icon(item.icon_name)
  116.     opacity = self.contents.font.color == normal_color ? 255 : 128
  117.     self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
  118.     self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
  119.     self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
  120.     self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
  121.   end
  122.   
  123. end

  124.   
复制代码
大致是这个样子:


可能还要改改那个描述显示,加上:
description.split("@")[0]
就可以了

点评

我只是不知道这是VX的问题,因为LZ以前是在XP问过问题的,这脚本本来就是我写的啊…你要VX版的话,马上也可以改给你看啊  发表于 2011-10-29 23:40
这里是VX,别老说那些脚本自己写  发表于 2011-10-29 23:33
我帖子中要有是不HX的空白,请Ctrl + A
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-29 08:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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