irpg Community

Full Version: ถามเรื่องสคริปทืเกี่ยวกับการเช็คจำนวนไอเทมครับ
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
พอดีเจอปัญหาเล็กน้อยครับ
การเช็คจำนวนไอเทมทุกชนิดที่ปาร์ตี้มีว่ารวมกันแล้วมีจำนวนเท่าไหร่
รวมถึงประเภทของไอเทมที่ปาร์ตี้มีว่ามีกี่ประเภท ต้องเขียนสคริปท์อย่างไรเหรอครับ

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

เช็คว่ามีกี่ประเภทในกระเป๋าหรอคะ (เช่น มีดาบกะเกราะ = 2 ประเภท?)
อย่างเช่น มี โพชั่น 10 ขวด,ยาถอนพิษ 5 ชิ้น,อีริกเซอร์ 1 ชิ้น
ถ้าเช็คจำนวนไอเทมทุกชิ้นก็จะเป็น 16 ชิ้น
แต่ถ้าเช็คประเภทไอเทมก็จะเป็น 3 ประเภทน่ะครับเพราะมีไอเทมอยู่สามอย่าง
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/...inventory/
ขอบคุณมากครับขอลองดูก่อนเลย =w=b
ย่อได้เยอะเลยนะเนี่ย


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

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

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

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

แต่จะลองไปมั่วดูนะคะ ;_;
ได้แล้วครับ TTwTT ขอบคุณมากเดี๋ยวให้เครดิตไว้ในเกมด้วยครับ