KAYNAK KOD Hera Süresinin Bitmesine Rağmen Oyunda Kaybolmaması

deglasser

KY Kıdemli Üye
KY YardımSever
Katılım
24 Kas 2023
Mesajlar
66
Çözümler
3
Tepkime puanı
5
Puanları
8
teşekkürler
 

AKUMA

KY Kıdemli Üye
KY YardımSever
Katılım
24 Ağu 2022
Mesajlar
22
Tepkime puanı
1
Puanları
13
Teşekkür ederim.
 

byfantastiq

KY Kıdemli Üye
Katılım
3 Şub 2024
Mesajlar
176
Tepkime puanı
10
Puanları
18
Merhaba arkadaşlar öncelikle pek bu tarz hazır kod içerikli konular pek paylaşmıyorum. Sebebi belli olsa da kısaca bazı kişilerin şu hayatta hep keser mantığında çalışıyor olmasından dolayı.

Şimdi bu konu hem bir sorunu en basit şekilde nasıl çözer ya da kaynağını nasıl buluruz olayını da içerecek.
Öncelikle source içerisinde ya da oyunda karşılaştığımız bir sorunu ben nasıl çözüyorum ya da en azından çözüm için nereyi düzenlemem gerektiğini nasıl buluyorum ondan bahsedeceğim.

*** Gizli metin: alıntı yapılamaz. ***


Eminim ki bu yazıyı okumayıp direk kodları alarak yoluna devam edecek birçok kişi olacaktır. Ama bir kişi de olsa burada yazılanlardan bir şeyler kaparak kendisi de buna benzer yollar ile sorunları çözme gayesini kendisine amaç edinirse ne mutlu bana.
paylaşım için teşekkür ederim öğrenmek amaçlı güzel bir içerik olmuş
 

Alshain

KY Kıdemli Üye
Katılım
19 Ara 2022
Mesajlar
116
Çözümler
1
Tepkime puanı
3
Puanları
28
Paylaşım için teşekkürler
 

memati81

KY Kıdemli Üye
Katılım
31 Mar 2023
Mesajlar
180
Tepkime puanı
3
Puanları
28
void MagicInstance::Type6Cancel(bool bForceRemoval /* = false*/, uint32 iSkillID/* = 0*/)
{
// NPCs cannot transform.
if (pSkillCaster == nullptr
|| !pSkillCaster->isPlayer()
// Are we transformed? Note: if we're relogging, and we need to remove it, we should ignore this check.
|| (!bForceRemoval && !TO_USER(pSkillCaster)->isTransformed()))
return;
CUser* pUser = TO_USER(pSkillCaster);
_MAGIC_TYPE6* pType = g_pMain->m_Magictype6Array.GetData(iSkillID);
_MAGIC_TYPE6* pType2 = g_pMain->m_Magictype6Array.GetData(nSkillID);

if (pType == nullptr && pType2 == nullptr) // nSkillID null sonradan eklendi sc sildirme vs. için
return;

if (pUser->isSiegeTransformation())
pUser->m_bRegeneType = REGENE_NORMAL;

Packet result(WIZ_MAGIC_PROCESS, uint8(MagicOpcode::MAGIC_CANCEL_TRANSFORMATION));
// TODO: Reset stat changes, recalculate stats.
pUser->m_transformationType = Unit::TransformationType::TransformationNone;

pUser->m_sTransformHpchange = false;
pUser->m_sTransformMpchange = false;

g_pMain->SpecialTrans = false;

// yeni ekleme 18.06
if (isHeraScroll())
{
_MAGIC_TYPE4* pType4 = g_pMain->m_Magictype4Array.GetData(nSkillID);
if (pType4 != nullptr)
{
TO_USER(pSkillCaster)->m_bHeraNPBonus = 0;
TO_USER(pSkillTarget)->m_sHeraExpGainAmount = 100;
}
}
// yeni ekleme 18.06 end
pUser->Send(&result);
pUser->SetUserAbility();
pUser->RemoveSavedMagic(pUser->m_bAbnormalType);
pUser->StateChangeServerDirect(3, ABNORMAL_NORMAL);
}



aslında böyle olması gerekli sizler ne düşünüyorsunuz burda eksikler ve hatalar var gibi geldi böyle yapılsa daha mantıklı geliyor gibi ?
 

memati81

KY Kıdemli Üye
Katılım
31 Mar 2023
Mesajlar
180
Tepkime puanı
3
Puanları
28
void MagicInstance::Type6Cancel(bool bForceRemoval /* = false*/, uint32 iSkillID/* = 0*/)
{
// NPCs cannot transform.
if (pSkillCaster == nullptr
|| !pSkillCaster->isPlayer()
|| (!bForceRemoval && !TO_USER(pSkillCaster)->isTransformed()))
return;

CUser * pUser = TO_USER(pSkillCaster);

_MAGIC_TYPE6* pType = g_pMain->m_Magictype6Array.GetData(iSkillID);
_MAGIC_TYPE6* pType2 = g_pMain->m_Magictype6Array.GetData(nSkillID);

if (pType == nullptr && pType2 == nullptr) // nSkillID null sonradan eklendi sc sildirme vs. için
return;

if (pUser->isSiegeTransformation())
pUser->m_bRegeneType = REGENE_NORMAL;

Packet result(WIZ_MAGIC_PROCESS, uint8(MagicOpcode::MAGIC_CANCEL_TRANSFORMATION));
// TODO: Reset stat changes, recalculate stats.
pUser->m_transformationType = Unit::TransformationType::TransformationNone;
pUser->m_sTransformHpchange = false;
pUser->m_sTransformMpchange = false;
pUser->Send(&result);
pUser->SetUserAbility();
pUser->RemoveSavedMagic(pUser->m_bAbnormalType);
pUser->StateChangeServerDirect(3, ABNORMAL_NORMAL);
if (pUser->m_transformSkillUseid == TransformationSkillMovingTower) pUser->m_transformSkillUseid = TransformationSkillUseNone;
}
yani benim mantığım bunu aldı siziler ne düşünürsünüz?
 

m3sut15

KY Kıdemli Üye
Katılım
6 Şub 2023
Mesajlar
151
Çözümler
1
Tepkime puanı
4
Puanları
28
Teşekkürler ...
 

zalim1990

KY Kıdemli Üye
KY YardımSever
Katılım
7 Ocak 2021
Mesajlar
657
Tepkime puanı
221
Puanları
195
Teşekkürler
 
Reklam