marty 5.8 windows Geliştirme Günlüğü

  • Konuyu açan Konuyu açan enes turan
  • Açılış Tarihi Açılış Tarihi
  • Yanıt Yanıt 29
  • Gösterim Gösterim 2K
güncelleme:
C++:
Genişlet Daralt Kopyala
#define ENABLE_GROWTH_PET_SYSTEM                // < Growth pet system


uzun bir aradan sonra sistemde sona yaklaştık gibi güncel halini paylaşmak istedim :)

yumurtadan çıktıktan sonra 3 evrim geçirebilir

Adsız.webp



81 lwl olduktan sonra petin boyutu büyür ve eğer petin yaşı 3 ve üzeri ise son gelişimi yapılır ve görünüşü değişir

Petin boyutu biraz daha küçülecek :D :D
örn:


pet ismi değiştirme, efsunlama, tipini öğrenme ve nakliye kutusu işlemleri

 
C++:
Genişlet Daralt Kopyala
#define ENABLE_NEW_BATTLE_PASS                    //


verilen görev
görev sonucu alınan item, bonus
isteğe göre arttırılabilir göre eklenebilir.
JSON:
Genişlet Daralt Kopyala
        {
            "mission_type" : 2,
            "target_value" : 1000,
            "target_vnum" : 0,
            "mission_desc" : "1000#oyuncu#maglup#et",
            "item_rewards" : {
                "80014" : 1
            },
            "aff_rewards" : {
                "17" :  5
            }
        },

BL_MOUSE_WHEEL_TOP_WINDOW scrollbar uyarlaması yapıldı

1120_002829.webp
 
C++:
Genişlet Daralt Kopyala
#define ENABLE_EVENT_MANAGER                    // oto event system

sistem aylık olarak sql üzerinden ayarlanır
gün için birden fazla event eklenebilir
belirlenen saatler arasında otomatik başlar ve biter
anlık olarak event eklenip çıkarılabilir
anlık olarak dropları ayarlanabilir


1732291100484.webp
 
C++:
Genişlet Daralt Kopyala
#define ENABLE_ATTRACT_RANGER                    // okcular dibimde

1123_185952.webp
1123_185956.webp


item kullandığı andan itibaren tüm okçular karakterin dibine girer

C++:
Genişlet Daralt Kopyala
#define ENABLE_REFINE_RENEWAL                    // + basma ekranı açık kalsın
1123_185937.webp


C++:
Genişlet Daralt Kopyala
#define AUTO_SHOUT                                // Otomatik Bağırma Sistemi

1123_190230.webp


C++:
Genişlet Daralt Kopyala
#define ENABLE_SHOW_CHEST_DROP                    // sandık aynası modulü

1123_190832.webp


C++:
Genişlet Daralt Kopyala
#define ENABLE_SKILL_CHOOSE_SYSTEM                // Uzaktan Beceri Seçme Sistemi

1123_190107.webp


C++:
Genişlet Daralt Kopyala
#define __AUTO_QUQUE_ATTACK__                    // metin atak systm

5 adet metin eklenebilir sırayla

1123_211916.webp
 
Son düzenleme:
C++:
Genişlet Daralt Kopyala
#define WJ_SPLIT_INVENTORY_SYSTEM                // K Envanter
#define ENABLE_MULTI_FARM_BLOCK                    // Multi Farm
#define ENABLE_SWITCHBOT                        // Serverside Switchbot

1125_012735.webp


1125_012757.webp
 
Eğer okçular dibinde sisteminde FindAffect kullanıyorsan asla önermem. Cesaret Pelerini çok sıkça kullanılan item. (Zaten genel olarak FindAffect kullanmayı önermem) Çünkü Metin2 bize bir değişkene atayıpta kullanabilmemiz için bir imkan veriyor.

Oyuncu Load Olduğu Zaman LoadAffect
Oyuncuya Affect Verildiğinde AddAffect
Oyuncudan Affect Silindiğinde RemoveAffect

AddAffect İçinde

dwType == AFFECT_XXXX
SetExample(true);

LoadAffect'de Aynı Sadece RemoveAffect içinde bunu false yapacaksın.


char.cpp'de bir değişken yap char.h'ye bu değişken için prototipler hazırla.

Sonra şöyle kullan

if (GetExample())
AttractRanger();

Böylelikle sen AddAffect ile oyuncuya etki verdiğin zaman char_affect.cpp deki AddAffect çalışacak ve 1. argümandan gelen AFFECT eşit ise affect.h'deki sayımıza bu değişken true olacak sonra sen okçular dibimde itemini kullandığında GetExample() true döndüreceği için AttractRanger(); çalışacaktır. aynı şekilde bu etki devam ediyor içinde FindAffect değil GetExample() kullan. RemoveAffect olduğu zaman false atayacağız. Doğal olarak biz GetExample() yani true ise koşulu kullandığımız için çalışmayacak. Çünkü Affect'in silinmesi sonrasında false atatık. Karakter load olduğunda sqldaki affectler dağıtılırken eğer yine aynı numaralı AFFECT varsa true olacak.
 
Son düzenleme:
Eğer okçular dibinde sisteminde FindAffect kullanıyorsan asla önermem. Cesaret Pelerini çok sıkça kullanılan item. (Zaten genel olarak FindAffect kullanmayı önermem) Çünkü Metin2 bize bir değişkene atayıpta kullanabilmemiz için bir imkan veriyor.

Oyuncu Load Olduğu Zaman LoadAffect
Oyuncuya Affect Verildiğinde AddAffect
Oyuncudan Affect Silindiğinde RemoveAffect

AddAffect İçinde

dwType == AFFECT_XXXX
SetExample(true);

LoadAffect'de Aynı Sadece RemoveAffect içinde bunu false yapacaksın.


char.cpp'de bir değişken yap char.h'ye bu değişken için prototipler hazırla.

Sonra şöyle kullan

if (GetExample())
AttractRanger();

Böylelikle sen AddAffect ile oyuncuya etki verdiğin zaman char_affect.cpp deki AddAffect çalışacak ve 1. argümandan gelen AFFECT eşit ise affect.h'deki sayımıza bu değişken true olacak sonra sen okçular dibimde itemini kullandığında GetExample() true döndüreceği için AttractRanger(); çalışacaktır. aynı şekilde bu etki devam ediyor içinde FindAffect değil GetExample() kullan. RemoveAffect olduğu zaman false atayacağız. Doğal olarak biz GetExample() yani true ise koşulu kullandığımız için çalışmayacak. Çünkü Affect'in silinmesi sonrasında false atatık. Karakter load olduğunda sqldaki affectler dağıtılırken eğer yine aynı numaralı AFFECT varsa true olacak.
FindAffect ile çalışıyor evet
Bu ne gibi sorun yada sıkıntı yaratır ki
 
FindAffect ile çalışıyor evet
Bu ne gibi sorun yada sıkıntı yaratır ki
list boyutu büyüdükçe var olan sayıya göre değişir (Ne kadar etkisi var olabilir zaten de) ama böyle bir imkan varken kullanmak çok gereksiz. (tabii bu benim açımdan)

Çünkü oyuncu cesaret pelerine 1 kere basmıyor 1 basışta 10 kere basıyor bu da her basışta bellekteki listi yeniden baştan sona (saklanan sayıyı bulana) kadar taraması demek.

FindAffect fonksiyonuna baktığında zaten ne demek istediğimi anlayabileceğini düşünüyorum.
 
Son düzenleme:
Geri
Üst