![NOOOO [sdad]](https://mindee-bot.com/forum/Smileys/akyhne/sSW_Dad.gif)
script take to depot
----
![[ahhhgrrrhhhlll]](https://mindee-bot.com/forum/Smileys/akyhne/ahhhgggrrr.gif)
```# ======================================================
# === AUTO TAKE ITEM DARI DEPOT SAMPAI BACKPACK PENUH ==
# === Versi: Aman keluar + otomatis jalankan waypoint 2 ==
# ======================================================
# ===================== CONFIG =====================
ITEM_ID = 5574 # ID item yang dicari
SCAN_DELAY = 800 # jeda antar scan (ms)
BACKPACK_LIMIT = 16 # kapasitas maksimum backpack (slot penuh)
# ===================== EVENT =====================
def onChangeLocation(x, y, z):
# Jika sedang menunggu pindah waypoint 2
if script.GetVar("exitToWaypoint2") == "1":
script.StatusMessage("Berhasil keluar depot, jalankan waypoint 2...")
script.SetVar("exitToWaypoint2", "0")
script.RunWaypoint(2)
return
# Kalau belum dalam mode keluar, lanjut masuk ke depot
if script.EnterShop():
script.StatusMessage("Masuk ke depot berhasil, mulai pencarian item...")
script.SetVar("page", 1)
script.RunEvent("ScanDepotPage", SCAN_DELAY)
else:
script.StatusMessage("Gagal masuk ke depot, pastikan posisi sudah 1 langkah dari pintu.")
def onReceiveDepotMenu(depot_name, depot_id, depot_type, slots):
# Simpan data depot aktif
script.SetVar("depot_id", depot_id)
script.SetVar("depot_type", depot_type)
script.SetVar("slots", slots)
# ===================== CEK BACKPACK =====================
def BackpackFull():
bp_items = script.GetBackpackItems()
if bp_items is None:
return False # belum terbaca
used_slots = 0
for item in bp_items:
if item != 0:
used_slots += 1
return used_slots >= BACKPACK_LIMIT
# ===================== SCAN DEPOT =====================
def ScanDepotPage():
if not script.IsInShop():
script.StatusMessage("Karakter sudah keluar dari depot, hentikan proses.")
return
# Cek apakah backpack penuh
if BackpackFull():
script.StatusMessage("Backpack penuh! Keluar dari depot dan tandai untuk pindah ke waypoint 2...")
script.SetVar("exitToWaypoint2", "1") # aktifkan flag
script.LeaveShop() # keluar dari depot
return
depot_type = script.GetVar("depot_type")
depot_id = script.GetVar("depot_id")
if depot_type is None:
script.StatusMessage("Menunggu data depot...")
script.RunEvent("ScanDepotPage", SCAN_DELAY)
return
# Jika masih di depotmail (type 1), lanjut ke depot utama
if depot_type == 1:
script.StatusMessage("Masih di depotmail (type 1), berpindah ke depot utama...")
if script.DepotGoNext():
script.RunEvent("ScanDepotPage", SCAN_DELAY)
else:
script.StatusMessage("Gagal berpindah ke depot utama.")
return
# Baca isi depot
items = script.GetDepotItems()
if items is None:
script.StatusMessage("Gagal membaca isi depot.")
script.RunEvent("ScanDepotPage", SCAN_DELAY)
return
found_any = False
for i in range(len(items)):
item = items
if item == 0:
continue
if item == ITEM_ID:
found_any = True
slot_id = i + 1
script.StatusMessage("Item {} ditemukan di slot {}.".format(item, slot_id))
# Cek kapasitas sebelum ambil
if BackpackFull():
script.StatusMessage("Backpack penuh saat ambil item, keluar dari depot...")
script.SetVar("exitToWaypoint2", "1")
script.LeaveShop()
return
ok = script.RetrieveSlotToBackpack(slot_id, depot_type)
if ok:
script.StatusMessage("Berhasil mengambil item {} dari slot {}.".format(item, slot_id))
script.RunEvent("ScanDepotPage", SCAN_DELAY)
return
else:
script.StatusMessage("Gagal mengambil item {} dari slot {}.".format(item, slot_id))
# Jika tidak ada item target di halaman ini, lanjut ke halaman berikut
if not found_any:
script.StatusMessage("Tidak ada item {} di halaman ini, lanjut ke halaman berikut...".format(ITEM_ID))
if script.DepotGoNext():
script.RunEvent("ScanDepotPage", SCAN_DELAY)
else:
script.StatusMessage("Semua halaman selesai diperiksa, tidak ada item {} lagi.".format(ITEM_ID))
else:
script.RunEvent("ScanDepotPage", SCAN_DELAY)
# ===================== AKHIR SCRIPT =====================
script.SetVar("exitToWaypoint2", "0")
script.StatusMessage("Script aktif. Masuk ke depot dan mulai pencarian item...")
```