Çözüldü questsiz pet sistemi (levelsiz)

  • Konuyu açan Konuyu açan enes turan
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 16
  • Gösterim Gösterim 114
Bu konu çözüme ulaştırılmıştır. Çözüm için konuya yazılan tüm yorumları okumayı unutmayın. Eğer konudaki yorumlar sorununuzu çözmediyse yeni bir konu açabilirsiniz.
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.

enes turan

Yardımsever Üye
Yardımsever Üye
MT Üye
Mesaj
519
Çözümler
32
Beğeni
232
Puan
609
Ticaret Puanı
0
merhabalar

questsiz pet sistemi
elinde arşivinde olan varsa paylaşabilirmi rica etsem ?
 
Çözüm
sorun çözüldü

sistemle paylaşılan petsystem.cpp ve .h dosyasını direkt değiştirince hata vermiyor ama çalışmıyordu kendi orjinal dosyalarımla karşılaştırıp eksikleri çekince sorun çözdüldü.
merhabalar

questsiz pet sistemi
elinde arşivinde olan varsa paylaşabilirmi rica etsem ?
char_item.cpp aç

Arat:

Kod:
Genişlet Daralt Kopyala
bool CHARACTER::UseItemEx (LPITEM item, TItemPos DestCell)
{

Altına Ekle:

Kod:
Genişlet Daralt Kopyala
    if (item->GetVnum() == 53001)
    {
        CPetSystem* petSystem = GetPetSystem();
        CPetActor* petActor = petSystem->GetByVnum (34001);
        if (petActor)
        {
            if (petActor->IsSummoned())
                petSystem->Unsummon (34001);
            else if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34001, item, "'s Anka Kusu", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
            
            return true;
        }
        else if (petSystem)
        {
            if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34001, item, "'s Anka Kusu", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
            return true;
        }
    }
    
    if (item->GetVnum() == 53002)
    {
        CPetSystem* petSystem = GetPetSystem();
        CPetActor* petActor = petSystem->GetByVnum (34002);
        if (petActor)
        {
            if (petActor->IsSummoned())
                petSystem->Unsummon (34002);
            else if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34002, item, "'s Ren Geyigi", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
            
            return true;
        }
        else if (petSystem)
        {
            if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34002, item, "'s Ren Geyigi", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
            return true;
        }
    }

53001 -> peti çağıracak olan item kodu

34001 - > Petin mobvnumu

Anka Kusu - > Petin ismi

Kodu çoğaltarak petleri arttırabilirsin tek tek petleri ekleyemedim o kadar vaktim yoktu kusura bakma
 
Son düzenleme:
char_item.cpp aç

Arat:

Kod:
Genişlet Daralt Kopyala
bool CHARACTER::UseItemEx (LPITEM item, TItemPos DestCell)
{

Altına Ekle:

Kod:
Genişlet Daralt Kopyala
    if (item->GetVnum() == 53001)
    {
        CPetSystem* petSystem = GetPetSystem();
        CPetActor* petActor = petSystem->GetByVnum (34001);
        if (petActor)
        {
            if (petActor->IsSummoned())
                petSystem->Unsummon (34001);
            else if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34001, item, "'s Anka Kusu", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
          
            return true;
        }
        else if (petSystem)
        {
            if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34001, item, "'s Anka Kusu", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
            return true;
        }
    }
  
    if (item->GetVnum() == 53002)
    {
        CPetSystem* petSystem = GetPetSystem();
        CPetActor* petActor = petSystem->GetByVnum (34002);
        if (petActor)
        {
            if (petActor->IsSummoned())
                petSystem->Unsummon (34002);
            else if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34002, item, "'s Ren Geyigi", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
          
            return true;
        }
        else if (petSystem)
        {
            if (petSystem->CountSummoned() == 0)
                petSystem->Summon (34002, item, "'s Ren Geyigi", false);
            else
                ChatPacket(CHAT_TYPE_INFO, "Once evcil hayvanini gondermelisin !");
            return true;
        }
    }

53001 -> peti çağıracak olan item kodu

34001 - > Petin mobvnumu

Anka Kusu - > Petin ismi

Kodu çoğaltarak petleri arttırabilirsin tek tek petleri ekleyemedim o kadar vaktim yoktu kusura bakma
Teşekkür ederim yorumun için
Fakat aradığım tam olarak bu değildi alttaki dosyadaki gibi fakat ya eksik var yada uyumsuzluk var ben bir türlü çalıştıramadım hata da almıyor
 

Dosya Eklentileri

Son düzenleme:
bunu tüm petler için tek tek yaptın mı gerçekten ?
Hayır tüm petler için tek tek yapmış olsam paylaştığım kod bloğu o şekilde olurdu. Ben arkadaşımızın giyilebilir pet sistemi dışında birşey istediğini düşündüm ona göre olabilecek en basit şekilde bir kod bloğu paylaştım mantıklı olan tabiki bir tablo oluşturup itemvnum,petvnum,petname gibi değişkenleri tablo içerisinden çektirmek olurdu arkadaşın işi hızlıca görülsün istediğim için bu şekilde oluşturdum. Gördüğün bir sıkıntı varsa söyleyebilirsin.
 
Hayır tüm petler için tek tek yapmış olsam paylaştığım kod bloğu o şekilde olurdu. Ben arkadaşımızın giyilebilir pet sistemi dışında birşey istediğini düşündüm ona göre olabilecek en basit şekilde bir kod bloğu paylaştım mantıklı olan tabiki bir tablo oluşturup itemvnum,petvnum,petname gibi değişkenleri tablo içerisinden çektirmek olurdu arkadaşın işi hızlıca görülsün istediğim için bu şekilde oluşturdum. Gördüğün bir sıkıntı varsa söyleyebilirsin.
yok tüm petler için tek tek yaptığını düşündüğüm için öyle dedim yoksa sıkıntı yok :D aslında yorumda paylaştığı sistem benim fileste çalışıyordu ama onun fileste çalışmadı o yüzden başka sistem arıyor.
 
yok tüm petler için tek tek yaptığını düşündüğüm için öyle dedim yoksa sıkıntı yok :D aslında yorumda paylaştığı sistem benim fileste çalışıyordu ama onun fileste çalışmadı o yüzden başka sistem arıyor.
@xenfero aynen öyle yanlış ama Proto güncellemesi den sonra 200 e yakin pet var onun için tek tek biraz zor olur
 
Eğer kod veren arkadaşın dediği bir sistemi ekleyeceksen o şekilde ekleme büyük çılgınlık. Birtane fonksiyon yap birtane argüman ekle içine pet kodlarını ekle sonra kodu şu şekilde kullan


if (PetVnum(item->GetVnum())

Fazlaca varsa aralık belirtebilirsin yada petlerini TYPE olarak kullanabilirsin.

TYPE = ITEM_PET
SUBTYPE = NORMAL_PET

böylece yeni pet eklediğinde yeni vnum eklemene gerek kalmaz.
 
yok tüm petler için tek tek yaptığını düşündüğüm için öyle dedim yoksa sıkıntı yok :D aslında yorumda paylaştığı sistem benim fileste çalışıyordu ama onun fileste çalışmadı o yüzden başka sistem arıyor.
Anladım problem değil :)
@xenfero aynen öyle yanlış ama Proto güncellemesi den sonra 200 e yakin pet var onun için tek tek biraz zor olur

Hata detaylarını paylaşırsan yardımcı olabilirim. Sistemi incelemedim ama sende çalışmamasının nedenini bulabiliriz. Bu sistem giymeli pet sistemimi videosu var mı ?
 
Anladım problem değil :)


Hata detaylarını paylaşırsan yardımcı olabilirim. Sistemi incelemedim ama sende çalışmamasının nedenini bulabiliriz. Bu sistem giymeli pet sistemimi videosu var mı ?
giymeli değil bu pet sistemi sadece questten alıp srcye döküyor işi. questle bağını kesiyor yani.
 
Eğer kod veren arkadaşın dediği bir sistemi ekleyeceksen o şekilde ekleme büyük çılgınlık. Birtane fonksiyon yap birtane argüman ekle içine pet kodlarını ekle sonra kodu şu şekilde kullan


if (PetVnum(item->GetVnum())

Fazlaca varsa aralık belirtebilirsin yada petlerini TYPE olarak kullanabilirsin.

TYPE = ITEM_PET
SUBTYPE = NORMAL_PET

böylece yeni pet eklediğinde yeni vnum eklemene gerek kalmaz.
Tablo oluşturulabilirdi fakat arkadaş öyle kullanmayacakmış başka bir sistemden bahsediyor.
 
Anladım problem değil :)


Hata detaylarını paylaşırsan yardımcı olabilirim. Sistemi incelemedim ama sende çalışmamasının nedenini bulabiliriz. Bu sistem giymeli pet sistemimi videosu var mı ?
Kısaca sistem petler için yeni bir type ve subtype oluşturuyor ve o atadigin type değerinden vnum0 ı çekiyor ve mobu çağırıyor Hiç bir hata yada syserr vermiyor bende orda tıkandım :)

Eğer kod veren arkadaşın dediği bir sistemi ekleyeceksen o şekilde ekleme büyük çılgınlık. Birtane fonksiyon yap birtane argüman ekle içine pet kodlarını ekle sonra kodu şu şekilde kullan


if (PetVnum(item->GetVnum())

Fazlaca varsa aralık belirtebilirsin yada petlerini TYPE olarak kullanabilirsin.

TYPE = ITEM_PET
SUBTYPE = NORMAL_PET

böylece yeni pet eklediğinde yeni vnum eklemene gerek kalmaz.
Aslında ekteki sistem tam olarak böyle fakat çalıştırmadım
 
Kısaca sistem petler için yeni bir type ve subtype oluşturuyor ve o atadigin type değerinden vnum0 ı çekiyor ve mobu çağırıyor Hiç bir hata yada syserr vermiyor bende orda tıkandım :)


Aslında ekteki sistem tam olarak böyle fakat çalıştırmadım

Yaşadığın sorunları özelden gönderirsen yardımcı olabilirim.
 
sorun çözüldü

sistemle paylaşılan petsystem.cpp ve .h dosyasını direkt değiştirince hata vermiyor ama çalışmıyordu kendi orjinal dosyalarımla karşılaştırıp eksikleri çekince sorun çözdüldü.
 
Çözüm
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Üst