Çözüldü Karakterin bonuslarını degiştirmek

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ı.

MEKA

Discord: mekaprojects
Site yetkilisi
Süper Moderatör
Premium Üye
Grafiker
Geliştirici
Yardımsever Üye
Mesaj
2.793
Çözümler
287
Beğeni
2.053
Puan
1.850
Ticaret Puanı
2
Oyun başında karakterlerin belli bir bonusları var mesela hareket hızı vs bunları nerden ayarlayabilirim?
 
Çözüm
Bende denemediğim için bir şey diyemiyorum. :)
Ama o kodun çalışması için sanırsam oyunda login olmak gerekiyor. Yeni bir kod yazdım şunu bi dener misiniz? Ben denemedim :(
C++:
    LogManager::instance().CharLog(pack.player.dwID, 0, 0, 0, "CREATE PLAYER", "", d->GetHostName());
Yukarıda ki kodu aratın ve üstüne bunu ekleyin.
C++:
        TPacketGDAddAffect p;
        p.dwPID = r_Tab.players[pPacketDB->bAccountCharacterIndex].dwID;
        p.elem.dwType = AFFECT_UNIQUE_ABILITY;
        p.elem.bApplyOn = POINT_MOV_SPEED;
        p.elem.lApplyValue = 60;
        p.elem.dwFlag = AFF_MOV_SPEED_POTION;
        p.elem.lDuration = INFINITE_AFFECT_DURATION;
        p.elem.lSPCost = 0;
        db_clientdesc->DBPacket(HEADER_GD_ADD_AFFECT, 0, &p...
dediğin şey sanırım game source içerisinden yapılıyor fakat,
/usr/game/share/locale/turkey/quest/object/notarget/login/ yolundaki
give_basic_weapon.start (Başlangıç itemlerini ayarladığın dosya)
içerisine; başlangıçta 365 günlük kalıcı özellikler verebilirsin. Yani source dosyalarına bulaşmadan quest ile bu şekilde yapabilirsin.
 
give_basic_weapon questi kullanmıyorum srcden direk karakterin özelliklerini nasıl degiştirebilirim ?
şebnem özelliklerini ve rüzgarın ayakkabıları özelliklerini vermek istiyorum quest ile ugrasmadan
 
Daha öncesinde başlangıç itemlerini direk verme yardım konunuzda bi kod paylaşmıştım. Çözüldü - Başlangıç itemlerini Source üzerinden ayarlamak Oralarda AddAffect fonksiyonunu kullanırsanız belki istediğiniz olabilir.

Örnek kullanım;
C++:
AddAffect(AFFECT_UNIQUE_ABILITY, POINT_MOV_SPEED, 60, AFF_MOV_SPEED_POTION, INFINITE_AFFECT_DURATION, 0, false, true);

Bu kod süresiz 60 hareket hızı verecektir.
 
Biraz daha detay verebilirmisiniz tam olarak nereye eklemem gerek
 
Bende denemediğim için bir şey diyemiyorum. :)
Ama o kodun çalışması için sanırsam oyunda login olmak gerekiyor. Yeni bir kod yazdım şunu bi dener misiniz? Ben denemedim :(
C++:
    LogManager::instance().CharLog(pack.player.dwID, 0, 0, 0, "CREATE PLAYER", "", d->GetHostName());
Yukarıda ki kodu aratın ve üstüne bunu ekleyin.
C++:
        TPacketGDAddAffect p;
        p.dwPID = r_Tab.players[pPacketDB->bAccountCharacterIndex].dwID;
        p.elem.dwType = AFFECT_UNIQUE_ABILITY;
        p.elem.bApplyOn = POINT_MOV_SPEED;
        p.elem.lApplyValue = 60;
        p.elem.dwFlag = AFF_MOV_SPEED_POTION;
        p.elem.lDuration = INFINITE_AFFECT_DURATION;
        p.elem.lSPCost = 0;
        db_clientdesc->DBPacket(HEADER_GD_ADD_AFFECT, 0, &p, sizeof(p));
 
Çözüm
Teşekkürler işe yaradı bu kodu çogaltarak diger bonuslarıda ekliyecem
 
Kodu yazdıydım ama üşendiğim için sunucuyu açıp build edip deneyememiştim. Çalışmasına çok sevindim. :)
Rüzgarın ayakkabısı takılabiliyor mu? Takılmaması gerekiyor yoksa daha fazla hız eklenir karaktere
 
Kodu yazdıydım ama üşendiğim için sunucuyu açıp build edip deneyememiştim. Çalışmasına çok sevindim. :)
Rüzgarın ayakkabısı takılabiliyor mu? Takılmaması gerekiyor yoksa daha fazla hız eklenir karaktere
Rüzgar ayakkabılarını iptal edecegim için denemedim ama denerim bir sorum daha olacak

p.elem.dwFlag = AFF_MOV_SPEED_POTION; bu kodu kullanmasak ne olur ? yani savunma felan ekliyecem buraya ne yazagımı bulamadım
 
AFF_NONE yazıp deneyebilir misiniz?
 
TPacketGDAddAffect p; kodunu birden fazla kullanmayı kabul etmiyor nasıl düzenlemem gerek aynı kodu arka arka eklemeyi gösterebilirmisiniz size zahmet
 
TPacketGDAddAffect p1;
db_clientdesc->DBPacket(HEADER_GD_ADD_AFFECT, 0, &p1, sizeof(p1));
TPacketGDAddAffect p2;
db_clientdesc->DBPacket(HEADER_GD_ADD_AFFECT, 0, &p2, sizeof(p2));
TPacketGDAddAffect p3;
db_clientdesc->DBPacket(HEADER_GD_ADD_AFFECT, 0, &p3, sizeof(p3));

Aynı değişken kullanmaya izin vermiyordur. Bu şekilde deneyin :)
 
Teşekkürler sorunsuz çalışıyor şuanda
 
Durum
İçerik kilitlendiği için mesaj gönderimine kapatıldı.
Geri
Üst