Project1

标题: 关于读取备注 [打印本页]

作者: 七重    时间: 2016-9-29 15:00
标题: 关于读取备注
请教一下。
  
  如何读取数据库中带有某备注的已持有道具,并存起来?

--

正在写一个道具窗口,功能是只显示数据库中备注有<TYPE_A>的已持有物品。

我的思路是改写:

  def make_item_list
    @data = $game_party.all_items
  end

↓ ↓

  def make_item_list
    @temp_data = 带有备注的物品数据
    @data = @temp_data
  end

--
这个获取的写法不是很清楚。。

作者: 喵呜喵5    时间: 2016-9-29 15:14
未测试
@data.collect{|i| i.note.include?('<TYPE_A>')}
作者: 七重    时间: 2016-9-29 15:47
本帖最后由 七重 于 2016-9-30 09:20 编辑
喵呜喵5 发表于 2016-9-29 15:14
未测试
@data.collect{|i| i.note.include?('')}


唔。。貌似不行。

$game_party.all_items里面放的好像只有键值。

--
我现在打算在Game_Party里面定义一个这样的属性。

  def items_type_a
    $krst_data_item = $data_items.select{|x| x.note.include?("<TYPA_A>")}
    @items.keys.sort.collect {|id| $krst_data_item[id] }
  end

我的想法是打算先获取带有备注的数据,再获取这组数据的键值,但是不知为何会出错。

报错,note未定义。

==
追记:
这里真的是完全理解错了。。
  all_item里面的是持有物品的数组。
  而game_party里面的貌似是物品列表
作者: QQ蚊子湯    时间: 2016-9-29 16:57
不知道有沒有理解錯誤
七重醬這個功能應該是這個方法吧?
  1.   def draw_item(index)
  2.     item = @data[index]
  3.     if item&&item.note.include?('<TYPE_A>')
  4.       rect = item_rect(index)
  5.       rect.width -= 4
  6.       draw_item_name(item, rect.x, rect.y, enable?(item))
  7.       draw_item_number(rect, item)
  8.     end
  9.   end
复制代码

作者: 七重    时间: 2016-9-29 19:59
QQ蚊子湯 发表于 2016-9-29 16:57
不知道有沒有理解錯誤
七重醬這個功能應該是這個方法吧?

看來我最初的思路就錯了呢。。

按你寫的現在可以運行了,謝謝解答!
作者: 七重    时间: 2016-9-30 11:13
本帖最后由 七重 于 2016-9-30 12:49 编辑

仔细一看还是不对。。。如果不在对@data赋值之前就处理好数据的话,会在物品栏中描画出空格(不止一个的物品的情况下)。。

按照原来的想法新定义了一个

RUBY 代码复制
  1. def all_items_TYPE_A
  2.     a = items.size
  3.     e = 0
  4.     c = 0
  5.     d = []
  6.     loop do
  7.       b = items[e]
  8.       if b.note.include?("<TYPE_A>")
  9.         d[c] = b
  10.         c += 1
  11.       end
  12.       e += 1
  13.       if e == a
  14.         break
  15.       end
  16.     end
  17.     p e
  18.     p c
  19.     return d
  20.   end


终于可以了。。。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1