- Discord
- pvpers.gg
Metin2 oyuncuları arasında yıllardır konuşulan ve bir nevi uğur haline gelen bir totem vardır: "Demirci alnını silerken + basarsan geçer!"
Kimileri bu anı şansın dönüm noktası saydı, kimileri ise sadece eğlenceli bir efsane olarak gördü. Ama artık bu gelenek kodlara işlendi! Yeni sistem sayesinde demircinin alnını sildiği o kısa zaman dilimi gerçekten de geliştirme ihtimalinizi artırıyor.
Şimdi gelin, bu totemin nasıl gerçeğe dönüştüğüne ve oyuna nasıl entegre edildiğine birlikte bakalım...
Arat:
Üzerine ekle:
Arat:
Değiştir:
Arat:
Değiştir:
Arat:
Değiştir:
Arat:
Altına ekle:
Arat:
Altına ekle:
Arat:
Altına ekle:
Arat:
Altına ekle:
Arat:
Değiştir:
Arat:
Altına ekle:
Yıllardır oyuncuların sezgileriyle yönettiği bir alışkanlık artık somut bir oyun mekaniğine dönüştü.
Demircinin alnını sildiği o anı yakalayarak + basmak, sadece nostaljik bir refleks değil; başarı oranınızı doğrudan etkileyen stratejik bir hamle haline geldi.
Şimdi tek yapmanız gereken gözlerinizi dört açmak ve o kısa “an”ı kaçırmamak. Unutmayın, bazen bir yükseltme, yalnızca doğru zamanda basılan bir tuşla olur!
Kimileri bu anı şansın dönüm noktası saydı, kimileri ise sadece eğlenceli bir efsane olarak gördü. Ama artık bu gelenek kodlara işlendi! Yeni sistem sayesinde demircinin alnını sildiği o kısa zaman dilimi gerçekten de geliştirme ihtimalinizi artırıyor.
Şimdi gelin, bu totemin nasıl gerçeğe dönüştüğüne ve oyuna nasıl entegre edildiğine birlikte bakalım...
game/src/packet.h
Arat:
Kod:
} TPacketCGRefine;
Üzerine ekle:
Kod:
bool extra_luck;
game/src/input_main.cpp[B]
Arat:
Kod:
ch->DoRefine(item);
Değiştir:
Kod:
ch->DoRefine(item, false, p->extra_luck);
game/src/char.h
Arat:
Kod:
bool DoRefine(LPITEM item, bool bMoneyOnly = false);
Değiştir:
Kod:
bool DoRefine(LPITEM item, bool bMoneyOnly = false, bool bExtraLuck = false);
game/src/char_item.cpp
Arat:
Kod:
bool CHARACTER::DoRefine(LPITEM item, bool bMoneyOnly)
Değiştir:
Kod:
bool CHARACTER::DoRefine(LPITEM item, bool bMoneyOnly, bool bExtraLuck)
Arat:
Kod:
if (IsRefineThroughGuild() || bMoneyOnly)
prob -= 10;
Altına ekle:
Kod:
if (bExtraLuck)
prob -= 10;
client/UserInterface/PythonNetworkStreamModule.cpp
client/gamelib/ActorInstanceMotion.cpp
Arat:
Kod:
DWORD CActorInstance::__GetCurrentMotionKey()
{
return m_kCurMotNode.dwMotionKey;
}
Altına ekle:
Kod:
bool CActorInstance::IsMotionInMidFrame() const
{
if (!m_pkCurRaceMotionData)
return false;
static constexpr size_t FRAME_GAP = 20;
if (m_kCurMotNode.dwcurFrame > FRAME_GAP &&
m_kCurMotNode.dwcurFrame < m_kCurMotNode.dwFrameCount &&
(m_kCurMotNode.dwFrameCount - m_kCurMotNode.dwcurFrame) > FRAME_GAP)
{
return true;
}
return false;
}
std::string CActorInstance::GetCurrentMotionFilename() const
{
if (!m_pkCurRaceMotionData)
return {};
return m_pkCurRaceMotionData->GetMotionFileName();
}
client/gamelib/ActorInstance.h
client/UserInterface/InstanceBaseMotion.cpp
Arat:
Kod:
void CInstanceBase::SetLoopMotion(WORD wMotion, float fBlendTime/* =0.1f */, float fSpeedRatio)
{
m_GraphicThingInstance.SetLoopMotion(wMotion, fBlendTime, fSpeedRatio);
}
Altına ekle:
Kod:
bool CInstanceBase::IsMotionInMidFrame() const
{
return m_GraphicThingInstance.IsMotionInMidFrame();
}
std::string CInstanceBase::GetCurrentMotionName() const
{
return m_GraphicThingInstance.GetCurrentMotionFilename();
}
client/UserInterface/InstanceBase.h
Arat:
Kod:
void SetEndStopMotion();
Altına ekle:
Kod:
bool IsMotionInMidFrame() const;
std::string GetCurrentMotionName() const;
client/UserInterface/PythonNetworkStreamPhaseGame.cpp
Arat:
Kod:
bool CPythonNetworkStream::SendRefinePacket(BYTE byPos, BYTE byType)
Değiştir:
Kod:
bool CPythonNetworkStream::SendRefinePacket(BYTE byPos, BYTE byType, bool bExtraLuck)
Arat:
Kod:
kRefinePacket.type = byType;
Altına ekle:
Kod:
kRefinePacket.extra_luck = bExtraLuck;
client/UserInterface/Packet.h
Yıllardır oyuncuların sezgileriyle yönettiği bir alışkanlık artık somut bir oyun mekaniğine dönüştü.
Demircinin alnını sildiği o anı yakalayarak + basmak, sadece nostaljik bir refleks değil; başarı oranınızı doğrudan etkileyen stratejik bir hamle haline geldi.
Şimdi tek yapmanız gereken gözlerinizi dört açmak ve o kısa “an”ı kaçırmamak. Unutmayın, bazen bir yükseltme, yalnızca doğru zamanda basılan bir tuşla olur!
