Wir der Titel schon sagt re-release ich hier den reinen Sourcecode des Waffenlevelsystems, da ich mir gedacht habe, dass es für Anfänger hilfreich sei.
Und schon gehts los:
DPClient.cpp:
Suche nach:
Code:
ar >> aEquipInfoAdd[nParts].bItemResist >> aEquipInfoAdd[nParts].nResistAbilityOption;
Code:
#ifdef __WEAPON_LVL ar >> aEquipInfoAdd[nParts].nWeaponLevel >> aEquipInfoAdd[nParts].nWeaponExp; #endif
Suche nach:
Code:
#include "AttackArbiter.h"
Code:
#ifdef __WEAPON_LVL #include "UserMacro.h" #endif
Code:
void CAttackArbiter::OnDamaged( int nDamage )
Code:
void CAttackArbiter::OnDamaged( int nDamage )
{
#if __VER >= 9 // __RECOVERY10
m_pDefender->m_nAtkCnt = 1;
#endif // __RECOVERY10
m_pDefender->SetDamagedMotion( m_pAttacker, m_dwAtkFlags );
g_UserMng.AddDamage( m_pDefender, GETID( m_pAttacker ), nDamage, m_dwAtkFlags );
FLOAT fFaktor = 22.0f; // Waffen EXP einstellen Ich habe hier vorhin von 25 auf 15 gestellt
CItemElem* pItemElem;
BYTE nValue = 0;
BOOL bLvlUp = FALSE;
if(m_pDefender->IsPlayer() && !m_pAttacker->IsPlayer())
{
// Wenn Spieler von Monster angegriffen -> Schild leveln.
pItemElem = m_pDefender->GetWeaponItem(PARTS_SHIELD);
nValue = 1;
}
else
if(!m_pDefender->IsPlayer() && m_pAttacker->IsPlayer())
{
// Wenn Monster von Spieler angegriffen -> Waffe leveln.
pItemElem = m_pAttacker->GetWeaponItem();
nValue = 2;
}
if(nValue == 1)
{
// if(m_pDefender->HasBuff(BUFF_ITEM, II_SYS_SYS_SCR_WEAPON_EXP2))
// fFaktor *= 2;
//if(m_pDefender->HasBuff(BUFF_ITEM, II_SYS_SYS_SCR_WEAPON_EXP3))
// fFaktor *= 3;
}
else
if(nValue == 2)
{
//if(m_pAttacker->HasBuff(BUFF_ITEM, II_SYS_SYS_SCR_WEAPON_EXP2))
// fFaktor *= 2;
//if(m_pAttacker->HasBuff(BUFF_ITEM, II_SYS_SYS_SCR_WEAPON_EXP3))
// fFaktor *= 3;
}
nDamage = (int)(nDamage * fFaktor);
if(pItemElem && (nValue == 1 || nValue == 2))
{
if(nValue == 2) // Wenn erste Hand eine Waffe ist
{
// Prüfe ob in der anderen Hand auch eine Waffe ist.
if(m_pAttacker->GetLWeaponItem())
{
BYTE cbHandFlag = GetHandFlag();
int nPart;
for( BYTE cbFlag = 0x01; cbFlag <= 0x02; ++cbFlag )
{
if( cbHandFlag & cbFlag )
{
nPart = (cbFlag & 0x01) ? PARTS_RWEAPON : PARTS_LWEAPON;
}
}
pItemElem = m_pAttacker->GetWeaponItem(nPart);
}
}
if(pItemElem && pItemElem->m_nWeaponLevel < 30 && pItemElem->m_nWeaponExp + nDamage >= (DWORD)(INT_MAX / 100 * pItemElem->m_nWeaponLevel))
{
// Level up
int nRest = pItemElem->m_nWeaponExp + nDamage - (INT_MAX / 100 * pItemElem->m_nWeaponLevel);
pItemElem->m_nWeaponExp = 0;
if(nValue == 2)
{
m_pAttacker->ResetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
else
if(nValue == 1)
{
m_pDefender->ResetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
pItemElem->m_nWeaponLevel++;
if(nValue == 2)
{
m_pAttacker->SetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
else
if(nValue == 1)
{
m_pDefender->SetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
bLvlUp = TRUE;
while(nRest > 0)
{
if(pItemElem->m_nWeaponLevel < 30 && nRest >= (INT_MAX / 100 * pItemElem->m_nWeaponLevel))
{
// Level Up
nRest -= (INT_MAX / 100 * pItemElem->m_nWeaponLevel);
if(nValue == 2)
{
m_pAttacker->ResetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
else
if(nValue == 1)
{
m_pDefender->ResetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
pItemElem->m_nWeaponLevel++;
if(nValue == 2)
{
m_pAttacker->SetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
else
if(nValue == 1)
{
m_pDefender->SetDestParamEquip(pItemElem->GetProp(), pItemElem);
}
}
else
{
pItemElem->m_nWeaponExp += nRest;
if(pItemElem->m_nWeaponExp > (DWORD)(INT_MAX / 100 * pItemElem->m_nWeaponLevel))
pItemElem->m_nWeaponExp = (INT_MAX / 100 * pItemElem->m_nWeaponLevel);
nRest = 0;
}
}
}
else
{
// Exp gesteigert
pItemElem->m_nWeaponExp += nDamage;
if(pItemElem->m_nWeaponExp > (DWORD)(INT_MAX / 100 * pItemElem->m_nWeaponLevel))
pItemElem->m_nWeaponExp = (INT_MAX / 100 * pItemElem->m_nWeaponLevel);
}
CString str;
if(bLvlUp && pItemElem && pItemElem->GetProp())
{
str.Format("Deine Waffe(%s) ist auf Level %d gestiegen", pItemElem->GetProp()->szName, pItemElem->m_nWeaponLevel);
}
if(nValue == 2)
{
m_pAttacker->UpdateItem((BYTE)pItemElem->m_dwObjId, UI_WEAPON_LEVEL, pItemElem->m_nWeaponLevel);
m_pAttacker->UpdateItem((BYTE)pItemElem->m_dwObjId, UI_WEAPON_EXP, pItemElem->m_nWeaponExp);
if(bLvlUp)
{
((CUser*)m_pAttacker)->AddText(str);
g_UserMng.AddCreateSfxObj(m_pAttacker, XI_GEN_LEVEL_UP01 );
}
}
else
if(nValue == 1)
{
m_pDefender->UpdateItem((BYTE)pItemElem->m_dwObjId, UI_WEAPON_LEVEL, pItemElem->m_nWeaponLevel);
m_pDefender->UpdateItem((BYTE)pItemElem->m_dwObjId, UI_WEAPON_EXP, pItemElem->m_nWeaponExp);
if(bLvlUp)
{
((CUser*)m_pDefender)->AddText(str);
g_UserMng.AddCreateSfxObj(m_pDefender, XI_GEN_LEVEL_UP01 );
}
}
}
}
Suche nach:
Code:
CItemElem::CItemElem()
Code:
#ifdef __WEAPON_LVL m_nWeaponExp = 0; m_nWeaponLevel = 1; #endif
Code:
m_idGuild = 0;
Suche nach:
Code:
#if __VER >= 15 // __PETVIS m_bTranformVisPet = ie.m_bTranformVisPet; #endif // __PETVIS
Code:
#ifdef __WEAPON_LVL m_nWeaponLevel = ie.m_nWeaponLevel; m_nWeaponExp = ie.m_nWeaponExp; #endif
Suche nach:
Code:
enum { expired = 0x01, binds = 0x02, isusing = 0x04, };
Code:
#ifdef __WEAPON_LVL DWORD m_nWeaponExp; int m_nWeaponLevel; #endif
Suche nach:
Code:
#ifdef __ADD_RESTATE_LOW #define RESTATE_LOW 50 #endif // __ADD_RESTATE_LOW
Code:
#ifdef __WEAPON_LVL #define UI_WEAPON_LEVEL 19 #define UI_WEAPON_EXP 20 #endif
Code:
#ifdef __CLIENT CTexture* pTexture; #endif // __CLIENT
Code:
#ifdef __WEAPON_LVL int nWeaponExp; int nWeaponLevel; #endif
Code:
#ifdef __CLIENT pTexture = NULL; #endif // __CLIENT
Code:
#ifdef __WEAPON_LVL nWeaponExp = 0; nWeaponLevel = 0; #endif
Suche nach:
Code:
void CMover::SetDestParamEquip( ItemProp* pItemProp, CItemElem* pItemElem, BOOL bIgnoreSetItem )
{
if( pItemElem && pItemElem->IsFlag( CItemElem::expired ) )
return;
Code:
#ifdef __WEAPON_LVL
if(pItemElem && pItemElem->GetProp())
{
WeaponLevelingProp* pProp = prj.GetWeaponLevelingProp(pItemElem->GetProp()->dwItemKind3);
if(pProp)
{
SetDestParam( pProp->dwDstParameter, pProp->dwAdjPerLevel * pItemElem->m_nWeaponLevel, NULL_CHGPARAM );
}
}
#endif
Code:
void CMover::ResetDestParamEquip( ItemProp* pItemProp, CItemElem* pItemElem )
{
if( pItemElem && pItemElem->IsFlag( CItemElem::expired ) )
return;
Code:
#ifdef __WEAPON_LVL
if(pItemElem && pItemElem->GetProp())
{
WeaponLevelingProp* pProp = prj.GetWeaponLevelingProp(pItemElem->GetProp()->dwItemKind3);
if(pProp)
{
ResetDestParam( pProp->dwDstParameter, pProp->dwAdjPerLevel * pItemElem->m_nWeaponLevel);
}
}
#endif
Code:
( (CItemElem*)pItemBase )->m_byFlag = byFlag; UpdateParts( FALSE ); #endif // __CLIENT UpdateParam(); break; }
Code:
#ifdef __WEAPON_LVL
case UI_WEAPON_LEVEL:
{
((CItemElem*)pItemBase)->m_nWeaponLevel = dwValue;
}
break;
case UI_WEAPON_EXP:
{
((CItemElem*)pItemBase)->m_nWeaponExp = dwValue;
}
break;
#endif
Suche nach:
Code:
#if __VER >= 15 // __PETVIS ar << m_bTranformVisPet; #endif // __PETVIS
Code:
#ifdef __WEAPON_LVL ar << m_nWeaponLevel; ar << m_nWeaponExp; #endif
Code:
#ifdef __CLIENT SetTexture(); #endif
Code:
#ifdef __WEAPON_LVL ar >> m_nWeaponLevel; ar >> m_nWeaponExp; #endif
Suche nach:
Code:
if( m_UltimateWeapon.Load_GemAbility() == FALSE )
{
return FALSE;
}
return TRUE;
}
#endif // __ULTIMATE
Code:
#ifdef __WEAPON_LVL
WeaponLevelingProp* CProject::GetWeaponLevelingProp(DWORD dwItemKind)
{
map<DWORD, WeaponLevelingProp>::iterator i = m_aWeaponLevelingProp.find( dwItemKind );
if( i != m_aWeaponLevelingProp.end() )
return &i->second;
return NULL;
}
#endif
Code:
BOOL CProject::OpenProject( LPCTSTR lpszFileName )
{
Code:
#ifdef __WEAPON_LVL // 1h Sword WeaponLevelingProp pWeaponLevelingProp(IK3_SWD, DST_STR, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // 1h Axe pWeaponLevelingProp = WeaponLevelingProp(IK3_AXE, DST_STR, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // 2h Sword pWeaponLevelingProp = WeaponLevelingProp(IK3_THSWD, DST_STR, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // 2h Axe pWeaponLevelingProp = WeaponLevelingProp(IK3_THAXE, DST_STR, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // Shield pWeaponLevelingProp = WeaponLevelingProp(IK3_SHIELD, DST_STA, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // Knuckle pWeaponLevelingProp = WeaponLevelingProp(IK3_KNUCKLEHAMMER, DST_STR, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // Stick pWeaponLevelingProp = WeaponLevelingProp(IK3_CHEERSTICK, DST_INT, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // Wand pWeaponLevelingProp = WeaponLevelingProp(IK3_WAND, DST_INT, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // Staff pWeaponLevelingProp = WeaponLevelingProp(IK3_STAFF, DST_INT, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // BOW pWeaponLevelingProp = WeaponLevelingProp(IK3_BOW, DST_DEX, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); // YOYO pWeaponLevelingProp = WeaponLevelingProp(IK3_YOYO, DST_STR, 1); m_aWeaponLevelingProp.insert(make_pair(pWeaponLevelingProp.dwItemKind, pWeaponLevelingProp)); #endif
Suche nach:
Code:
static FLOAT m_fItemDropRate; // ¸ó½ºÅÍ ¾ÆÀÌÅÛ µå·Ó·ü static FLOAT m_fGoldDropRate; // ¸ó½ºÅÍ Æä³Ä µå·Ó·ü static FLOAT m_fMonsterExpRate; // ¸ó½ºÅÍ °æÇèÄ¡·ê
Code:
#ifdef __WEAPON_LVL map<DWORD, WeaponLevelingProp> m_aWeaponLevelingProp; WeaponLevelingProp* GetWeaponLevelingProp(DWORD dwItemKind); #endif
Suche nach:
Code:
struct ObjProp
{
DWORD dwID; // º¯¼ö¸í
TCHAR szName[64]; // Çѱ۸íĪ
DWORD dwType;
DWORD dwAI; // AIInterface
DWORD dwHP;
ObjProp()
{
*szName = '\0';
dwID = dwType = dwAI = dwHP = 0;
}
};
Code:
#ifdef __WEAPON_LVL
struct WeaponLevelingProp
{
WeaponLevelingProp(DWORD dwItemKind2, DWORD dwDstParameter2, DWORD dwAdjPerLevel2)
{
dwItemKind = dwItemKind2;
dwDstParameter = dwDstParameter2;
dwAdjPerLevel = dwAdjPerLevel2;
}
DWORD dwItemKind;
DWORD dwDstParameter;
DWORD dwAdjPerLevel;
};
#endif
Suche nach:
Code:
#endif // __SYS_PLAYER_DATA } #endif // __MA_VER11_05 // Äɸ¯ÅÍ ºÀÀÎ °Å·¡ ±â´É world,database,neuz
Code:
#ifdef __WEAPON_LVL pItemElem->m_nWeaponLevel = GetIntPaFromStr( pstrItem, pLocation ); pItemElem->m_nWeaponExp = GetIntPaFromStr( pstrItem, pLocation ); if(pItemElem->m_nWeaponExp < 0) pItemElem->m_nWeaponExp = 0; if(pItemElem->m_nWeaponLevel < 1) pItemElem->m_nWeaponLevel = 1; #endif
Suche nach:
Code:
pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption, pItemElem->m_idGuild, pItemElem->m_nResistSMItemId
Code:
#ifdef __WEAPON_LVL , pItemElem->m_nWeaponLevel , pItemElem->m_nWeaponExp #endif
Code:
void CDbManager::SaveOneItem( CItemElem* pItemElem, PItemStruct pItemStruct )
Code:
void CDbManager::SaveOneItem( CItemElem* pItemElem, PItemStruct pItemStruct )
{
char szPiercing[32] = {0,};
if( pItemElem->IsEmpty() == FALSE )
{
#if __VER >= 11 // __MA_VER11_05 // Äɸ¯ÅÍ ºÀÀÎ °Å·¡ ±â´É world,database,neuz
if( pItemElem->m_dwItemId == II_SYS_SYS_SCR_SEALCHARACTER )
sprintf( pItemStruct->szItem, "%d,%d,%d,%d,,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d ,%d/",
pItemElem->m_dwObjId, pItemElem->m_dwItemId,
0, 0,
pItemElem->m_nItemNum, pItemElem->m_nRepairNumber,
pItemElem->m_nHitPoint, pItemElem->m_nRepair,
0, pItemElem->m_byFlag,
pItemElem->GetSerialNumber(), pItemElem->GetOption(),
pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption,
pItemElem->m_idGuild,
pItemElem->m_nResistSMItemId
);
else
sprintf( pItemStruct->szItem, "%d,%d,%d,%d,%s,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,% d,%d,%d/",
pItemElem->m_dwObjId, pItemElem->m_dwItemId,
0, 0, pItemElem->m_szItemText,
pItemElem->m_nItemNum, pItemElem->m_nRepairNumber,
pItemElem->m_nHitPoint, pItemElem->m_nRepair,
0, pItemElem->m_byFlag,
pItemElem->GetSerialNumber(), pItemElem->GetOption(),
pItemElem->m_bItemResist, pItemElem->m_nResistAbilityOption,
pItemElem->m_idGuild,
pItemElem->m_nResistSMItemId
, pItemElem->m_nWeaponLevel
, pItemElem->m_nWeaponExp
);
Suche nach:
Code:
m_apTextureToolTip[ nSetting + 6 ].Render( p2DRender, CPoint( PlusRect.left, PlusRect.bottom ) ); m_apTextureToolTip[ nSetting + 8 ].Render( p2DRender, CPoint( PlusRect.right, PlusRect.bottom ) );
Code:
#ifdef __WEAPON_LVL
if(m_pItemElem && m_pItemElem->GetProp())
{
WeaponLevelingProp* pProp = prj.GetWeaponLevelingProp(m_pItemElem->GetProp()->dwItemKind3);
if(pProp)
{
CGaugeMaker pGaugeMaker;
pGaugeMaker.Render(p2DRender, rect, MulDiv(m_pItemElem->m_nWeaponExp, 100, INT_MAX / 100 * m_pItemElem->m_nWeaponLevel));
}
}
#endif
Suche nach:
Code:
CToolTip();
~CToolTip();
void SetPosition( int nPos ) { m_nPosition = nPos; }
void SetEnable( BOOL bEnable ) { m_bEnable = bEnable; }
BOOL GetEnable() { return m_bEnable; }
void CancelToolTip();
Code:
#ifdef __WEAPON_LVL CItemElem* m_pItemElem; BOOL m_bGaugeShow; int m_nWeaponExp; int m_nWeaponLevel; #endif
Suche nach:
Code:
else
{
strTemp.Format( prj.GetText(TID_GAME_TOOLTIP_DEFENSE_B) );
pEdit->AddString( strTemp, dwItemColor[g_Option.m_nToolTipText].dwGeneral );
strTemp.Format( " %d ~ %d", nMin, nMax );
}
}
pEdit->AddString( strTemp, dwColorMinMax );
Code:
#ifdef __WEAPON_LVL
WeaponLevelingProp* pProp = prj.GetWeaponLevelingProp(pItemElem->GetProp()->dwItemKind3);
if(pProp)
{
strTemp.Format("\nLevel Effect: %s +%d", FindDstString(pProp->dwDstParameter), pProp->dwAdjPerLevel * pItemElem->m_nWeaponLevel);
pEdit->AddString( strTemp, 0xFFFF0000);
}
#endif
Code:
void CWndMgr::PutToolTipItemAndSubToolTip( CItemBase* pItemBase, CPoint point, CRect* pRect, int nFlag )
{
Code:
#ifdef __WEAPON_LVL g_toolTip.m_pItemElem = (CItemElem*)pItemBase; #endif
Code:
switch( nSubToolTipFlag )
{
case 0:
{
Code:
#ifdef __WEAPON_LVL g_toolTip.m_pItemElem = (CItemElem*)pPartsItemBase; #endif
Code:
g_toolTip.PutToolTipEx( pPartsItemBase->m_dwItemId, strEquipItem, *pRect, point, 0, nSubToolTipFlag );
if( pPartsItemProp->IsUltimate() )
g_toolTip.SetUltimateToolTip( pPartsItemBase );
break;
}
case 1:
{
Code:
#ifdef __WEAPON_LVL g_toolTipSub1.m_pItemElem = (CItemElem*)pPartsItemBase; #endif
Code:
g_toolTipSub1.PutToolTipEx( pPartsItemBase->m_dwItemId, strEquipItem, *pRect, point, 0, nSubToolTipFlag );
if( pPartsItemProp->IsUltimate() )
g_toolTipSub1.SetUltimateToolTip( pPartsItemBase );
break;
}
case 2:
{
Code:
#ifdef __WEAPON_LVL g_toolTipSub2.m_pItemElem = (CItemElem*)pPartsItemBase; #endif
Code:
CItemElem* pItemElem = (CItemElem*)pItemBase; CString str = _T( "" ); CString strTemp = _T( "" ); CString strEnter = '\n'; DWORD dwColorBuf;
Code:
#ifdef __WEAPON_LVL
if(pItemElem && pItemElem->GetProp())
{
WeaponLevelingProp* pProp = prj.GetWeaponLevelingProp(pItemElem->GetProp()->dwItemKind3);
if(pProp)
{
strTemp.Format("Exp: %d%%\n", MulDiv(((CItemElem*)pItemBase)->m_nWeaponExp, 100, INT_MAX / 100 * ((CItemElem*)pItemBase)->m_nWeaponLevel));
strEdit.AddString( strTemp, D3DCOLOR_XRGB( 178, 0, 255 ));
}
}
#endif
Suche nach:
Code:
m_byFlag = 0; m_nItemNum = 1; m_idGuild = 0; m_nAbilityOption = 0; m_nRepairNumber = 0; m_nHitPoint = 0; m_nRepair = 0;
Code:
#ifdef __WEAPON_LVL m_nWeaponExp = 0; m_nWeaponLevel = 1; #endif
Code:
#if __VER >= 15 // __PETVIS m_bTranformVisPet = ie.m_bTranformVisPet; #endif // __PETVIS
Code:
#ifdef __WEAPON_LVL m_nWeaponLevel = ie.m_nWeaponLevel; m_nWeaponExp = ie.m_nWeaponExp; #endif
Suche nach:
Code:
private:
int m_nAbilityOption;
public:
enum { expired = 0x01, binds = 0x02, };
Code:
#ifdef __WEAPON_LVL DWORD m_nWeaponExp; int m_nWeaponLevel; #endif
Am Ende der Datei einfügen:
Code:
#ifdef __WEAPON_LVL
CGaugeMaker::CGaugeMaker()
{
m_pVBGauge = NULL;
m_bVBGauge = NULL;
}
CGaugeMaker::~CGaugeMaker()
{
SAFE_RELEASE( m_pVBGauge );
}
void CGaugeMaker::Render(C2DRender* p2DRender, CRect rect, int nWidth)
{
rect.top += 5;
rect.left += 32;
rect.right = rect.left + nWidth;
rect.bottom = rect.top + 10;
m_texGauFillNormal.LoadTexture( g_Neuz.m_pd3dDevice, MakePath( DIR_THEME, "GauEmptyNormal.bmp" ), 0xffff00ff, TRUE );
g_Neuz.m_pd3dDevice->CreateVertexBuffer( sizeof( TEXTUREVERTEX2 ) * 3 * 6, D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, D3DFVF_TEXTUREVERTEX2, D3DPOOL_DEFAULT, &m_pVBGauge, NULL );
m_bVBGauge = m_pTheme->MakeGaugeVertex( g_Neuz.m_pd3dDevice, &rect, 0x84ff0000, m_pVBGauge, &m_texGauFillNormal );
if( m_bVBGauge )
m_pTheme->RenderGauge( p2DRender->m_pd3dDevice, m_pVBGauge, &m_texGauFillNormal );
}
#endif
Suche nach:
Code:
CWndTreasureRecieve(); virtual ~CWndTreasureRecieve(); void InsertItem( DWORD dwID, int idx, int nCount ); virtual BOOL Initialize( CWndBase* pWndParent = NULL, DWORD nType = MB_OK ); virtual BOOL OnChildNotify( UINT message, UINT nID, LRESULT* pLResult ); virtual void OnDraw( C2DRender* p2DRender ); virtual void OnInitialUpdate(); }; #endif//__TREASUREBOX
Code:
#ifdef __WEAPON_LVL
class CGaugeMaker : public CWndNeuz
{
public:
LPDIRECT3DVERTEXBUFFER9 m_pVBGauge;
BOOL m_bVBGauge;
CTexture m_texGauFillNormal;
CGaugeMaker();
~CGaugeMaker();
void Render(C2DRender* p2DRender, CRect rect, int nWidth);
};
#endif
Code:
#define __WEAPON_LVL
Wer es benutzen möchte viel Spaß dabei, wer es nicht mag einfach nicht beachten.
MfG
Edit: Sicherung des Waffenlevels und der EXP von xConsx






