irpg Community
ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Printable Version

+- irpg Community (https://irpg.in.th)
+-- Forum: irpg Fabella RPG Maker Academia (https://irpg.in.th/forum-4.html)
+--- Forum: RPG Maker Engine School (https://irpg.in.th/forum-7.html)
+--- Thread: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ (/thread-1469.html)



ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Nazuth - 10-13-2013

พอดีเจอปัญหาเล็กน้อยครับ
การเช็คจำนวนไอเทมทุกชนิดที่ปาร์ตี้มีว่ารวมกันแล้วมีจำนวนเท่าไหร่
รวมถึงประเภทของไอเทมที่ปาร์ตี้มีว่ามีกี่ประเภท ต้องเขียนสคริปท์อย่างไรเหรอครับ

ที่คิดได้มันค่อนข้างยุ่งยากที่จะเขียนบวกไอเทมที่มีทุกชิ้นทีละชิ้น
ผมไม่ชำนาญสคริปท์เท่าไหร่เลยอยากรู้ว่ามีวิธีเขียนให้มันสั้นๆเหรอเปล่า


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Hitoshura - 10-13-2013

ประเภทของไอเท็มนี่คือยังไงคะ -3-"?

เช็คว่ามีกี่ประเภทในกระเป๋าหรอคะ (เช่น มีดาบกะเกราะ = 2 ประเภท?)


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Nazuth - 10-13-2013

อย่างเช่น มี โพชั่น 10 ขวด,ยาถอนพิษ 5 ชิ้น,อีริกเซอร์ 1 ชิ้น
ถ้าเช็คจำนวนไอเทมทุกชิ้นก็จะเป็น 16 ชิ้น
แต่ถ้าเช็คประเภทไอเทมก็จะเป็น 3 ประเภทน่ะครับเพราะมีไอเทมอยู่สามอย่าง


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Hitoshura - 10-13-2013

Code:
class Game_Party
  def inventory_check
    iamount = 0
    wamount = 0
    aamount = 0
    type = 0
    (1..$data_items.size).each {|i|
    iamount += item_number(i)
    }
    (1..$data_weapons.size).each {|i|
      wamount += weapon_number(i)
    }
    (1..$data_armors.size).each {|i|
      aamount += armor_number(i)
    }
    type += 1 if iamount != 0
    type += 1 if wamount != 0
    type += 1 if aamount != 0
    $game_variables[1] = iamount+wamount+aamount
    $game_variables[2] = type
  end
end

เรียกใช้งานก็ใช้คำสั่ง call script : $game_party.inventory_check นะคะ

ปล. เราดัดแปลง(อย่างมาก) มาจากอันนี้ค่ะ : P
http://www.gdunlimited.net/forums/topic/9056-resolved-remembering-the-inventory/


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Nazuth - 10-13-2013

ขอบคุณมากครับขอลองดูก่อนเลย =w=b


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Shinryu - 10-13-2013

ย่อได้เยอะเลยนะเนี่ย


ของผมใช้วิธี for i in 1...size แล้ว+ไปอยู่ ใช้ราวๆ5บรรทัด/เช็ค1ประเภท

ผมลอง
Code:
(1..$data_items.size).each {|i| $items_size += item_number(i)}
$items_size เป็นตัวเอาไปใช้ในสคริปต์ของผม

แต่ลองแล้วมันแฮงแฮะ คิดว่าคงเพราะไม่ได้ประกาศคลาสไว้ อยากรู้วิธีแทรกวิธีนี้ในสคริปต์หน่อยครับ


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Nazuth - 10-13-2013

ตอนนี้แสดงจำนวนทั้งหมดได้แล้วครับแต่ประเภทของไอเทมนี่ยังไม่ได้น่ะครับ
คือผมอยากให้แสดงว่ามีไอเทมทั้งหมดกี่อย่างน่ะครับไม่ใช่แยกประเภทไอเทม อาวุธ ชุดเกราะ
เช่นว่ามี โพชั่น โพชั่นชั้นดี ยาถอนพิษ ๆลๆ ก็จะบวกเพิ่มไปตามไอเทมที่มีว่ามีกี่อย่าง

ผมจะเอาไปใช้แยกประเภทการ์ดแบบนี้น่ะครับลองพยายามโมเพิ่มจากเดิมแล้วแต่ไม่สำเร็จ orz
[Image: NOK01JD.png]


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Hitoshura - 10-13-2013

@natsukikung

Code:
class Game_Party
  def inventory_check
    amount = 0
    type = 0
    (1..$data_items.size).each {|i|
    amount += item_number(i)
    type += 1 if item_number(i) != 0
    }
    (1..$data_weapons.size).each {|i|
    amount += weapon_number(i)
    type += 1 if weapon_number(i) != 0
    }
    (1..$data_armors.size).each {|i|
    amount += armor_number(i)
    type += 1 if armor_number(i) != 0
    }
    $game_variables[1] = amount
    $game_variables[2] = type
  end
end



(10-13-2013, 09:26 AM)Shinryu Wrote: ย่อได้เยอะเลยนะเนี่ย


ของผมใช้วิธี for i in 1...size แล้ว+ไปอยู่ ใช้ราวๆ5บรรทัด/เช็ค1ประเภท

ผมลอง
Code:
(1..$data_items.size).each {|i| $items_size += item_number(i)}
$items_size เป็นตัวเอาไปใช้ในสคริปต์ของผม

แต่ลองแล้วมันแฮงแฮะ คิดว่าคงเพราะไม่ได้ประกาศคลาสไว้ อยากรู้วิธีแทรกวิธีนี้ในสคริปต์หน่อยครับ

อันนี้เราก็ไม่รู้เหมือนกันค่ะ เพราะความรู้ด้านนี้เราไม่ค่อยมี อันนีก็อาศัยดูจากสคริปต์คนอื่นเอา T T

แต่จะลองไปมั่วดูนะคะ ;_;


RE: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ - Nazuth - 10-13-2013

ได้แล้วครับ TTwTT ขอบคุณมากเดี๋ยวให้เครดิตไว้ในเกมด้วยครับ