Screen
Code
###################
# WndField.cpp #
###################
# WndField.cpp #
###################
Sucht nach:
Code:
CWndCharInfo::CWndCharInfo()
Code:
m_nATKSpeed = 0;
Code:
m_nSpeedDepla = 0; m_nCriticalRate = 0; m_nSpellCastSpeed = 0; m_nReflectDamage = 0; m_nHitRate = 0; m_nBlockmelee = 0; m_nBlockRange = 0; m_nEsquiveRate = 0;
Sucht nach:
Code:
void CWndCharInfo::OnDraw(C2DRender* p2DRender)
Code:
p2DRender->TextOut( 60, 113, prj.GetText((TID_APP_CHARACTER_DETAIL)), D3DCOLOR_ARGB(255,0,0,0));
Code:
int nyAdd = 121; int nyAdd10 = 205; int x = 5, nNextX = 100;
Code:
CString strMsg;
Unter:
Code:
int nyAdd = 121; int nyAdd10 = 205; int x = 5, nNextX = 100; CString strMsg; dwColor = D3DCOLOR_ARGB(255,0,0,0); x = 50; y = 18 + nyAdd; nNext = 15; // °ø°Ý·Â RenderATK( p2DRender, x, y ); y += nNext; //¹æ¾î·Â if( m_nStaCount != 0 && GetVirtualDEF() != g_pPlayer->GetShowDefense( FALSE ) ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } p2DRender->TextOut( x , y, GetVirtualDEF(), dwColor ); y += nNext; } else p2DRender->TextOut( x , y, g_pPlayer->GetShowDefense( FALSE ), dwColor ); y += nNext;
Code:
strMsg.Format( "%d%%", g_pPlayer->GetSpeedDepla() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext; strMsg.Format( "%d%%", g_pPlayer->GetCriticalRate() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext; strMsg.Format( "%d%%", g_pPlayer->GetSpellCastSpeed() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext; strMsg.Format( "%d%%", g_pPlayer->GetReflectDamage() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext;
Sucht nach:
Code:
float fAttackSpeed; dwColor = D3DCOLOR_ARGB(255,0,0,0); if( m_nDexCount != 0 && GetVirtualATKSpeed() != g_pPlayer->GetAttackSpeed() ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } fAttackSpeed = GetVirtualATKSpeed(); } else fAttackSpeed = g_pPlayer->GetAttackSpeed(); strMsg.Format( "%d%%", int( fAttackSpeed*100.0f ) /2 ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext;
Code:
if( GetVirtualHitRate() != g_pPlayer->GetHitRate() ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } strMsg.Format( "%d%%", GetVirtualHitRate() ); } else strMsg.Format( "%d%%", g_pPlayer->GetHitRate() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext; if( GetVirtualBlockmelee() != g_pPlayer->GetBlockmelee() ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } strMsg.Format( "%d%%", GetVirtualBlockmelee() ); } else strMsg.Format( "%d%%", g_pPlayer->GetBlockmelee() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext; if( GetVirtualBlockRange() != g_pPlayer->GetBlockRange() ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } strMsg.Format( "%d%%", GetVirtualBlockRange() ); } else strMsg.Format( "%d%%", g_pPlayer->GetBlockRange() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext; if( GetVirtualEsquiveRate() != g_pPlayer->GetEsquiveRate() ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } strMsg.Format( "%d%%", GetVirtualEsquiveRate() ); } else strMsg.Format( "%d%%", g_pPlayer->GetEsquiveRate() ); p2DRender->TextOut( x , y, strMsg, dwColor ); y += nNext;
Unter:
Code:
x =15; nNextX = 60;
Code:
//baisse stat y = 52 + nyAdd;
Code:
//baisse stat y = 135 + nyAdd;
Code:
y = 18 + nyAdd; dwColor = D3DCOLOR_ARGB(255, 0, 0, 180); p2DRender->TextOut( 7, y, prj.GetText(TID_GAME_CHARACTER_13), dwColor ); p2DRender->TextOut( 85, y, prj.GetText(TID_GAME_CHARACTER_14), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_DEFENCE), dwColor ); p2DRender->TextOut( 85, y, prj.GetText(TID_GAME_CHARACTER_15), dwColor ); y += nNext;
Code:
p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_DEPLA), dwColor ); p2DRender->TextOut( 85, y, prj.GetText(TID_TOOLTIP_TOUCHER), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_DCC), dwColor ); p2DRender->TextOut( 85, y, prj.GetText(TID_TOOLTIP_BLOCKMELEE), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_INCANT), dwColor ); p2DRender->TextOut( 85, y, prj.GetText(TID_TOOLTIP_BLOCKDISTANCE), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_RENVOI), dwColor ); p2DRender->TextOut( 85, y, prj.GetText(TID_TOOLTIP_ESQUIVE), dwColor ); y += nNext;
Code:
y += 12;
Code:
y += 27;
Code:
y = 15 + nyAdd2, nNext = 15;
Mit:
Code:
y = 108 + nyAdd2, nNext = 15;
Code:
p2DRender->TextOut( 60, 281, prj.GetText((TID_GAME_CHARACTTER_PVP0)), dwColor );
Code:
p2DRender->TextOut( 60, 362, prj.GetText((TID_GAME_CHARACTTER_PVP0)), dwColor );
Ersetzt:
Code:
int nyAdd = 121; int posY = 49 + nyAdd; int posX = 128;
Code:
int nyAdd = 121; int posY = 133 + nyAdd; int posX = 128;
Code:
posY += 36; m_wndApply.Create ( "Apply", 0, CRect( posX - 108, posY, posX - 58, posY + 22 ), this, 112 ); m_wndReset.Create ( "Reset", 0, CRect( posX - 30, posY, posX + 20, posY + 22 ), this, 113 );
Code:
posY += 36; m_wndApply.Create ( "Apply", 0, CRect( posX - 108, posY, posX - 58, posY + 22 ), this, 112 ); m_wndReset.Create ( "Reset", 0, CRect( posX - 30, posY, posX + 20, posY + 22 ), this, 113 );
__________________________________________________ __
In:
Code:
int CWndCharInfo::GetVirtualCritical()
Code:
#if __VER < 9 // __S_9_ADD if( g_pPlayer->IsAfterDeath() ) // Á×À½ ÀÌÈÄ »óŶó¸é? nCritical += CRITICAL_AFTER_DEATH; int nHitPercent = g_pPlayer->GetHitPointPercent( 100 ); if( nHitPercent < CRITICAL_BERSERK_HP ) // HP°¡ MAX´ëºñ 30% ¹Ì¸¸? { // CRITICAL_BERSERK_HP : nHitPercent = CRITICAL_BERSERK_PROB : x // 30 : 15 = 20 : x nCritical += CRITICAL_BERSERK_PROB - ( nHitPercent * CRITICAL_BERSERK_PROB / CRITICAL_BERSERK_HP ); } #endif // __S_9_ADD } return nCritical; }
Code:
int CWndCharInfo::GetVirtualSpeedDepla() { int nSpeedDepla; nSpeedDepla = g_pPlayer->GetParam( DST_SPEED, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nSpeedDepla; } int CWndCharInfo::GetVirtualCriticalRate() { int nCriticalRate; nCriticalRate = g_pPlayer->GetParam( DST_CRITICAL_BONUS, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nCriticalRate; } int CWndCharInfo::GetVirtualSpellCastSpeed() { int nSpellCastSpeed; nSpellCastSpeed = g_pPlayer->GetParam( DST_SPELL_RATE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nSpellCastSpeed; } int CWndCharInfo::GetVirtualReflectDamage() { int nReflectDamage; nReflectDamage = g_pPlayer->GetParam( DST_REFLECT_DAMAGE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nReflectDamage < 0 ) nReflectDamage = 0; #endif // __JEFF_11 return nReflectDamage; } int CWndCharInfo::GetVirtualHitRate() { int nHitRate; nHitRate = g_pPlayer->GetParam( DST_ADJ_HITRATE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nHitRate; } int CWndCharInfo::GetVirtualBlockmelee() { int nBlockmelee; nBlockmelee = g_pPlayer->GetParam( DST_BLOCK_MELEE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nBlockmelee < 0 ) nBlockmelee = 0; if( nBlockmelee > 96 ) nBlockmelee = 96; #endif // __JEFF_11 return nBlockmelee; } int CWndCharInfo::GetVirtualBlockRange() { int nBlockRange; nBlockRange = g_pPlayer->GetParam( DST_BLOCK_RANGE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nBlockRange < 0 ) nBlockRange = 0; if( nBlockRange > 96 ) nBlockRange = 96; #endif // __JEFF_11 return nBlockRange; } int CWndCharInfo::GetVirtualEsquiveRate() { int nEsquiveRate; nEsquiveRate = (int)( ( g_pPlayer->GetDex() * 0.5 ) ); nEsquiveRate = g_pPlayer->GetParam( DST_PARRY, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nEsquiveRate < 0 ) nEsquiveRate = 0; #endif // __JEFF_11 return nEsquiveRate; } #endif
Sucht nach:
Code:
void CWndCharacterDetail::OnInitialUpdate()
Code:
y += 12; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_STR), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_STA), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_DEX), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_INT), dwColor ); y += nNext; p2DRender->TextOut( 7, y, prj.GetText(TID_GAME_CHARACTER_07), dwColor ); y += nNext;
Code:
p2DRender->TextOut( 7, y, prj.GetText(TID_TOOLTIP_HITRATE), dwColor ); y += nNext;
Sucht nach:
Code:
void CWndCharacterDetail2::OnDraw(C2DRender* p2DRender)
Code:
if( m_nStaCount != 0 && GetVirtualDEF() != g_pPlayer->GetShowDefense( FALSE ) ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } p2DRender->TextOut( x , y, GetVirtualDEF(), dwColor ); y += nNext; } else p2DRender->TextOut( x , y, g_pPlayer->GetShowDefense( FALSE ), dwColor ); y += nNext;
Dashier:
Code:
if( GetVirtualSpeedDepla() != g_pPlayer->GetSpeedDepla() ) //ÀÓÀÇ ½ºÅÈÀÌ º¯°æµÇ°í ÇöÀç ´É·ÂÄ¡¶û ´Ù¸¦ °æ¿ì { if( (g_nRenderCnt / 8) & 1 ) { dwColor = D3DCOLOR_ARGB(255,255,0,0); } p2DRender->TextOut( x , y, GetVirtualSpeedDepla(), dwColor ); y += nNext; } else p2DRender->TextOut( x , y, g_pPlayer->GetSpeedDepla(), dwColor ); y += nNext;
Code:
float CWndCharacterDetail2::GetVirtualATKSpeed() { float fSpeed = 1.0f; float fItem = 1.0f; ItemProp* pWeaponProp = g_pPlayer->GetActiveHandItemProp(); if( pWeaponProp ) fItem = pWeaponProp->fAttackSpeed; JobProp* pProperty = prj.GetJobProp( g_pPlayer->GetJob() ); ASSERT( pProperty ); // A = int( ij¸¯ÅÍÀÇ °ø¼Ó + ( ¹«±âÀÇ °ø¼Ó * ( 4 * µ¦½º + ( ·¹º§ / 8 ) ) ) - 3 ) // °ø°Ý¼Óµµ = ( ( 50 / 200 - A ) / 2 ) + °¡ÁßÄ¡ int A = int( pProperty->fAttackSpeed + ( fItem * ( 4.0f * (g_pPlayer->GetDex() + m_nDexCount) + g_pPlayer->GetLevel() / 8.0f ) ) - 3.0f ); if( 187.5f <= A ) A = (int)( 187.5f ); const MAX_ATTACK_SPEED_PLUSVALUE = 18; int nIndex = A / 10; nIndex = max( nIndex, 0 ); nIndex = min( nIndex, (MAX_ATTACK_SPEED_PLUSVALUE-1) ); float fPlusValue[MAX_ATTACK_SPEED_PLUSVALUE] = { 0.08f, 0.16f, 0.24f, 0.32f, 0.40f, 0.48f, 0.56f, 0.64f, 0.72f, 0.80f, 0.88f, 0.96f, 1.04f, 1.12f, 1.20f, 1.30f, 1.38f, 1.50f }; fSpeed = ( ( 50.0f / (200.f - A) ) / 2.0f ) + fPlusValue[nIndex]; float fDstParam = g_pPlayer->GetParam( DST_ATTACKSPEED, 0 ) / 1000.0f; fSpeed += fDstParam; if( 0 < g_pPlayer->GetParam( DST_ATTACKSPEED_RATE, 0 ) ) fSpeed = fSpeed + ( fSpeed * g_pPlayer->GetParam( DST_ATTACKSPEED_RATE, 0 ) / 100 ); if( fSpeed < 0.0f ) fSpeed = 0.1f; if( fSpeed > 2.0f ) fSpeed = 2.0f; return fSpeed; }
Code:
int CWndCharacterDetail2::GetVirtualSpeedDepla() { int nSpeedDepla; nSpeedDepla = g_pPlayer->GetParam( DST_CHR_CHANCECRITICAL, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nSpeedDepla < 0 ) nSpeedDepla = 0; #endif // __JEFF_11 return nSpeedDepla; }
Code:
CWndCharacterDetail2::CWndCharacterDetail2()
Code:
m_nATKSpeed = 0;
Code:
m_nSpeedDepla = 0; m_nCriticalRate = 0; m_nSpellCastSpeed = 0; m_nReflectDamage = 0; m_nHitRate = 0; m_nBlockmelee = 0; m_nBlockRange = 0; m_nEsquiveRate = 0;
###################
# WndField.h #
###################
Sucht nach:# WndField.h #
###################
Code:
class CWndCharacterDetail2 : public CWndBase
Code:
int m_nATKSpeed;
Code:
int m_nSpeedDepla; int m_nCriticalRate; int m_nSpellCastSpeed; int m_nReflectDamage; int m_nHitRate; int m_nBlockmelee; int m_nBlockRange; int m_nEsquiveRate;
Code:
class CWndCharInfo : public CWndBase
Code:
int m_nATKSpeed;
Code:
int m_nSpeedDepla; int m_nCriticalRate; int m_nSpellCastSpeed; int m_nReflectDamage; int m_nHitRate; int m_nBlockmelee; int m_nBlockRange; int m_nEsquiveRate;
Unter:
Code:
CWndCharInfo(); virtual ~CWndCharInfo(); virtual void OnDraw(C2DRender* p2DRender); virtual void OnInitialUpdate(); virtual BOOL Initialize(CWndBase* pWndParent = NULL,DWORD dwWndId = 0); // message virtual BOOL OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase = NULL ); virtual BOOL OnChildNotify(UINT message,UINT nID,LRESULT* pLResult); virtual void OnSize(UINT nType, int cx, int cy); virtual void OnLButtonUp(UINT nFlags, CPoint point); virtual void OnLButtonDown(UINT nFlags, CPoint point); virtual void OnMouseWndSurface( CPoint point ); virtual BOOL Process (); void RefreshStatPoint(); void GetVirtualATK(int* pnMin, int* pnMax); int GetVirtualDEF(); int GetVirtualCritical(); float GetVirtualATKSpeed();
Code:
int GetVirtualSpeedDepla(); int GetVirtualCriticalRate(); int GetVirtualSpellCastSpeed(); int GetVirtualReflectDamage(); int GetVirtualHitRate(); int GetVirtualBlockmelee(); int GetVirtualBlockRange(); int GetVirtualEsquiveRate();
Code:
CWndCharacterDetail2(); virtual ~CWndCharacterDetail2(); virtual void OnDraw(C2DRender* p2DRender); virtual void OnInitialUpdate(); virtual BOOL Initialize(CWndBase* pWndParent = NULL,DWORD dwWndId = 0); // message virtual BOOL OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase = NULL ); virtual BOOL OnChildNotify(UINT message,UINT nID,LRESULT* pLResult); virtual void OnSize(UINT nType, int cx, int cy); virtual void OnLButtonUp(UINT nFlags, CPoint point); virtual void OnLButtonDown(UINT nFlags, CPoint point); virtual void OnMouseWndSurface( CPoint point ); virtual BOOL Process (); void RefreshStatPoint(); void GetVirtualATK(int* pnMin, int* pnMax); int GetVirtualDEF(); int GetVirtualCritical(); float GetVirtualATKSpeed();
Code:
int GetVirtualSpeedDepla();
###################
# MoverAttack.cpp #
###################
# MoverAttack.cpp #
###################
Sucht nach:
Code:
BOOL CMover::CanFlyByAttack()
Code:
int CMover::GetSpeedDepla() { int nSpeedDepla; nSpeedDepla = GetParam( DST_SPEED, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nSpeedDepla; } int CMover::GetCriticalRate() { int nCriticalRate; nCriticalRate = GetParam( DST_CRITICAL_BONUS, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nCriticalRate; } int CMover::GetSpellCastSpeed() { int nSpellCastSpeed; nSpellCastSpeed = GetParam( DST_SPELL_RATE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nSpellCastSpeed; } int CMover::GetReflectDamage() { int nReflectDamage; nReflectDamage = GetParam( DST_REFLECT_DAMAGE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nReflectDamage; } int CMover::GetHitRate() { int nHitRate; nHitRate = GetParam( DST_ADJ_HITRATE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã return nHitRate; } int CMover::GetBlockmelee() { int nBlockmelee; nBlockmelee = GetParam( DST_BLOCK_MELEE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nBlockmelee < 0 ) nBlockmelee = 0; if( nBlockmelee > 96 ) nBlockmelee = 96; #endif // __JEFF_11 return nBlockmelee; } int CMover::GetBlockRange() { int nBlockRange; nBlockRange = GetParam( DST_BLOCK_RANGE, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nBlockRange < 0 ) nBlockRange = 0; if( nBlockRange > 96 ) nBlockRange = 96; #endif // __JEFF_11 return nBlockRange; } int CMover::GetEsquiveRate() { int nEsquiveRate; nEsquiveRate = (int)( ( GetDex() * 0.5 ) ); nEsquiveRate = GetParam( DST_PARRY, 0 ); // Å©¸®Æ¼Äà Ȯ·üÀ» ³ô¿©ÁÖ´Â ½ºÅ³°ü·Ã #ifdef __JEFF_11 if( nEsquiveRate < 0 ) nEsquiveRate = 0; #endif // __JEFF_11 return nEsquiveRate; }
###################
# Mover.h #
###################
# Mover.h #
###################
Nach:
Code:
int GetNaturalArmor(); float GetAttackSpeed();
Code:
int GetSpeedDepla(); int GetCriticalRate(); int GetSpellCastSpeed(); int GetReflectDamage(); int GetHitRate(); int GetBlockmelee(); int GetBlockRange(); int GetEsquiveRate();
Fertig!