Yardım Razuning v5 binek binmeme sorunu

Konu sahibi bu konuda soru soruyor. Sorusu ile ilgili bilgisi olanların yanıtlamasını bekliyor.

gktgakbs

Çaylak Üye
Üye
Mesaj
9
Beğeni
0
Puan
8
Ticaret Puanı
0
Merhabalar direkt kendim yazdım fakat sorun var. girdiğimde oyuna ctl g yapıyorum binip iniyor direkt olarak sağ tıkladığımda da hiçbir şey olmuyor eksik birşey mi yapıyorum daha öncede konu açmıştım uzun zaman sonra geri döndüm hatırlamıyorum yardımcı olabilecek var mı? deneme için item proto tarafında 71128 yırtıcı aslanı düzenledim model olarak ta 20107 at modelini ekledim ki belki görünümde sıkıntı vardır diye



item proto tarafı: 71128 Èæ»çÀÚÀÌ¿ë±Ç ITEM_QUEST 0 1 ITEM_CAN_USE QUEST_USE_MULTIPLE | LOG 0 0 0 0 0 0 LEVEL 20 LIMIT_NONE 0 APPLY_NONE 0 APPLY_NONE 0 APPLY_NONE 20107 28800 0 0 0 0 0 0 0 0

bu lua tarafı:
lua:
Genişlet Daralt Kopyala
quest universal_mount begin
    state start begin
        -- VNUM: 71128 ve diğerleri
        when 71128.use or 52045.use or 71164.use begin
            -- 1 Saniye Spam Engeli
            if pc.getqf("mount_limit") > get_time() then
                syschat("Lütfen 1 saniye bekleyin.")
                return
            end
            pc.setqf("mount_limit", get_time() + 1)

            -- Dönüşüm Kontrolü
            if pc.is_polymorphed() then
                syschat("Dönüşmüş haldeyken binemezsin.")
                return
            end

            -- Eğer her şey tamamsa C++ komutunu tetikle
            pc.ride()
        end
    end
end

buda c++ game source tarafı için
game source c++:
Genişlet Daralt Kopyala
ACMD(do_ride)
{
    if (ch->IsObserverMode() || ch->IsDead() || ch->IsStun())
        return;

    // 1. Durum: Zaten binekteyse veya ata binmişse indir
    if (ch->GetMountVnum() > 0 || ch->IsHorseRiding())
    {
        if (ch->IsHorseRiding())
            ch->StopRiding(); // Atı durdur
        
        if (ch->GetMountVnum() > 0)
            do_unmount(ch, NULL, 0, 0); // Bineği indir (Hata veren yer burasıydı, düzelttik)

        ch->RemoveAffect(AFFECT_MOUNT); // Binek etkisini temizle
        return;
    }

    // 2. Durum: Dönüşüm Kontrolü (Güvenlik)
    if (ch->IsPolymorphed())
    {
        ch->ChatPacket(CHAT_TYPE_INFO, "Dönüşmüş haldeyken binemezsin.");
        return;
    }

    // 3. Durum: Envanter Taraması
    for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
    {
        LPITEM item = ch->GetInventoryItem(i);
        // ITEM_QUEST (18) ve Value0'da mob kodu olanı bul
        if (item && item->GetType() == 18 && item->GetValue(0) > 100)
        {
            DWORD mountVnum = item->GetValue(0);
            DWORD mountTime = item->GetValue(1) * 60;

            // BİNİŞ FİX: Sadece MountVnum yetmez, Affect (Etki) ekliyoruz
            ch->RemoveAffect(AFFECT_MOUNT);
            ch->MountVnum(mountVnum);
            
            // Bu satır karakterin binekte kalmasını sağlar (Bin-İn hatasını çözer)
            ch->AddAffect(AFFECT_MOUNT, POINT_MOUNT, mountVnum, AFF_NONE, mountTime, 0, true);
            
            ch->ChatPacket(CHAT_TYPE_INFO, "[Sistem] Bineğe binildi.");
            return;
        }
    }

    // 4. Durum: At Kontrolü
    if (ch->GetHorseLevel() > 0)
    {
        if (!ch->IsHorseRiding())
            ch->StartRiding();
    }
}
 
Andsk atın yardımcı olayım size
 


Mavi ruh hocamızın wideosunu en ince detaylı inceleyip izlerseniz hic bir sorun kalmıyacagına eminim ben size detaylarıda anlatsam zaten yapacagım islemleri forumda kayıt ederek cözümleme saglıyorum bu nedenle siz wideo detaylı izleyin yapamazsanız eger yardımcı olurum
 
Geri
Üst