Username: Password:

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Ranjhafriel

Pages: [1]
1
Request / How drop item ? i have script for take item at inventory
« on: October 14, 2025, 01:42:10 pm »
 [sdad]

script take to depot
---- [ahhhgrrrhhhlll]

```# ======================================================
# === 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...")

```

Pages: [1]