Nazuth Away   10-13-2013, 07:05 AM
#1
พอดีเจอปัญหาเล็กน้อยครับ
การเช็คจำนวนไอเทมทุกชนิดที่ปาร์ตี้มีว่ารวมกันแล้วมีจำนวนเท่าไหร่
รวมถึงประเภทของไอเทมที่ปาร์ตี้มีว่ามีกี่ประเภท ต้องเขียนสคริปท์อย่างไรเหรอครับ

ที่คิดได้มันค่อนข้างยุ่งยากที่จะเขียนบวกไอเทมที่มีทุกชิ้นทีละชิ้น
ผมไม่ชำนาญสคริปท์เท่าไหร่เลยอยากรู้ว่ามีวิธีเขียนให้มันสั้นๆเหรอเปล่า
This post was last modified: 10-13-2013, 07:06 AM by Nazuth.

[Image: 76561198134933497.png]
Show ContentFanPage:


Hitoshura   10-13-2013, 08:18 AM
#2
ประเภทของไอเท็มนี่คือยังไงคะ -3-"?

เช็คว่ามีกี่ประเภทในกระเป๋าหรอคะ (เช่น มีดาบกะเกราะ = 2 ประเภท?)
Nazuth Away   10-13-2013, 08:21 AM
#3
อย่างเช่น มี โพชั่น 10 ขวด,ยาถอนพิษ 5 ชิ้น,อีริกเซอร์ 1 ชิ้น
ถ้าเช็คจำนวนไอเทมทุกชิ้นก็จะเป็น 16 ชิ้น
แต่ถ้าเช็คประเภทไอเทมก็จะเป็น 3 ประเภทน่ะครับเพราะมีไอเทมอยู่สามอย่าง

[Image: 76561198134933497.png]
Show ContentFanPage:


Hitoshura   10-13-2013, 08:29 AM
#4
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/
Nazuth Away   10-13-2013, 08:36 AM
#5
ขอบคุณมากครับขอลองดูก่อนเลย =w=b

[Image: 76561198134933497.png]
Show ContentFanPage:


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


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

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

แต่ลองแล้วมันแฮงแฮะ คิดว่าคงเพราะไม่ได้ประกาศคลาสไว้ อยากรู้วิธีแทรกวิธีนี้ในสคริปต์หน่อยครับ
This post was last modified: 10-13-2013, 09:27 AM by Shinryu.

[Image: 7f7cb68ce0.png][Image: rlogo.png]
Show ContentSpoiler:
Nazuth Away   10-13-2013, 09:38 AM
#7
ตอนนี้แสดงจำนวนทั้งหมดได้แล้วครับแต่ประเภทของไอเทมนี่ยังไม่ได้น่ะครับ
คือผมอยากให้แสดงว่ามีไอเทมทั้งหมดกี่อย่างน่ะครับไม่ใช่แยกประเภทไอเทม อาวุธ ชุดเกราะ
เช่นว่ามี โพชั่น โพชั่นชั้นดี ยาถอนพิษ ๆลๆ ก็จะบวกเพิ่มไปตามไอเทมที่มีว่ามีกี่อย่าง

ผมจะเอาไปใช้แยกประเภทการ์ดแบบนี้น่ะครับลองพยายามโมเพิ่มจากเดิมแล้วแต่ไม่สำเร็จ orz
[Image: NOK01JD.png]
This post was last modified: 10-13-2013, 09:40 AM by Nazuth.

[Image: 76561198134933497.png]
Show ContentFanPage:


Hitoshura   10-13-2013, 10:06 AM
#8
@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

แต่จะลองไปมั่วดูนะคะ ;_;
Nazuth Away   10-13-2013, 10:25 AM
#9
ได้แล้วครับ TTwTT ขอบคุณมากเดี๋ยวให้เครดิตไว้ในเกมด้วยครับ

[Image: 76561198134933497.png]
Show ContentFanPage:


  
Users browsing this thread: 3 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.