- Joined
- Oct 6, 2008
- Messages
- 471
- Reaction score
- 73
Normally I don't Re post peoples work from other forums because I feel that most should be smart enough to view dev forums besides RageZone but this was to random to pass up
Credits go to Yannick @ EPvPers
Use a translator if you can not understand
Edit by ShadowDragon - Re-Uploaded files are here:
---------- Post added at 12:07 PM ---------- Previous post was at 12:03 PM ----------
just in case
EDIT: updated info
Credits go to Yannick @ EPvPers
Use a translator if you can not understand
Edit by ShadowDragon - Re-Uploaded files are here:
To view the content, you need to sign in or register
Heyho leutZ
Hier gibts jetzt die Snippets für das Colosseum (Ranking funktion ist leider nicht dabei). Die Resourcen müsst ihr aber selber einbauen (maps, NPC usw..).
Zuerst die eigenen Dateien für das Colosseum
To view the content, you need to sign in or register
Die Colosseum.lua kommt in den Resource Ordner.
Die ColosseumFunc.lua kommt in den "LuaFunc" Ordner der sich im Resource Ordner befindet.
WndColosseum.cpp / WndColosseum.h kommen im Source in den Ordner "_Interface".
Colosseum.cpp / Colosseum.cpp kommen im Source in den Ordner "_Common".
Danach adden wir noch die WndColosseum.cpp/h in die Neuz Solution und die Colosseum.cpp/h in die WorldServer Solution
Dann adden wir noch die Define für das Colosseum in den Dateien ../NEUZ/versioncommon.h und ../WORLDSERVER/versioncommon.h
Code:#define __COLOSSEUM
../_Interface/WndWorld.cpp
Wir gehen zur Function
Code:BOOL CWndWorld::OnEraseBkgnd(C2DRender* p2DRender)
Und tragen unter
Code:pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA ); pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ALPHAREF, 0x08 );
diesen code ein
Code:#ifdef __COLOSSEUM if ( dwColosseumStartSplashTick > g_tmCurrent ) { int nAlpha = ( dwColosseumStartSplashTick - g_tmCurrent ) / 32; if( nAlpha > 255 ) nAlpha = 255; int x = (GetClientRect().Width() / 2) - (m_TexColosseumStart.m_size.cx / 2); int y = (GetClientRect().Height() / 2) - (m_TexColosseumStart.m_size.cy / 2); m_TexColosseumStart.Render( &g_Neuz.m_2DRender, CPoint(x, y) , nAlpha ); } #endif //__COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:void CWndWorld::OnInitialUpdate()
Suchen danach
Code:m_TexGuildWinner.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "TexGuildCombatWinner.bmp" ), 0xffff00ff ); m_TexGuildBest.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "TexGuildCombatBest.bmp" ), 0xffff00ff );
und tragen darunter ein
Code:#ifdef __COLOSSEUM dwColosseumStartSplashTick = 0; m_TexColosseumStart.LoadTexture( m_pApp->m_pd3dDevice, MakePath( DIR_THEME, "WndColoCountDesign.tga" ), D3DCOLOR_ARGB( 0, 0, 0, 0 ) ); #endif //__COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:BOOL CWndWorld::OnCommand( UINT nID, DWORD dwMessage, CWndBase* pWndBase )
Suchen danach
Code:switch( nID ) {
und tragen drunter ein
Code:#ifdef __COLOSSEUM case MMI_COLOSSEUM_COLOENTER01: { SAFE_DELETE( g_WndMng.m_pColosseumEnter ); g_WndMng.m_pColosseumEnter = new CWndColosseumEnter; if( g_WndMng.m_pColosseumEnter ) g_WndMng.m_pColosseumEnter->Initialize(); } break; #endif //__COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:HRESULT CWndWorld::InvalidateDeviceObjects()
Suchen nach
Code:m_TexGuildWinner.Invalidate(); m_TexGuildBest.Invalidate();
und tragen darunter ein
Code:#ifdef __COLOSSEUM m_TexColosseumStart.Invalidate(); #endif //__COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:HRESULT CWndWorld::DeleteDeviceObjects()
Suchen nach
Code:m_TexGuildWinner.DeleteDeviceObjects(); m_TexGuildBest.DeleteDeviceObjects();
und tragen darunter ein
Code:#ifdef __COLOSSEUM m_TexColosseumStart.DeleteDeviceObjects(); #endif //__COLOSSEUM
------------------------------------------------------
../_Interface/WndWorld.h
Wir suchen nach
Code:class CWndWorld : public CWndNeuz { BOOL m_bBGM; FLOAT m_fHigh; FLOAT m_fLow; CPoint m_ptMouseOld; CPoint m_ptMouseSpot; BOOL m_bFreeMove; BOOL m_bFlyMove; BOOL m_bSelectTarget; #ifdef __VRCAMERA BOOL m_bCameraMode; #endif BOOL m_bViewMap; public:
und tragen darunter ein:
Code:#ifdef __COLOSSEUM CTexture m_TexColosseumStart; DWORD dwColosseumStartSplashTick; #endif //__COLOSSEUM
------------------------------------------------------
../NEUZ/DPClient.cpp
Wir gehen zur Function
Code:void CDPClient::OnSnapshot( CAr & ar )
Suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE case SNAPSHOTTYPE_GUILDHOUSE_TENDER_MAINWND: OnGuildHouseTenderMainWnd( ar ); break; case SNAPSHOTTYPE_GUILDHOUSE_TENDER_INFOWND: OnGuildHouseTenderInfoWnd( ar ); break; case SNAPSHOTTYPE_GUILDHOUSE_TENDER_RESULT: OnGuildHouseTenderResult( ar ); break; #endif // __GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM case SNAPSHOTTYPE_COLOSSEUM_ENTER: OnColosseumEnter( ar ); break; case SNAPSHOTTYPE_COLOSSEUM_START: OnColosseumStart( ar ); break; case SNAPSHOTTYPE_COLOSSEUM_ENDWAIT: OnColosseumEndWait( ar ); break; case SNAPSHOTTYPE_COLOSSEUM_READY1: OnColosseumReady1( ar ); break; case SNAPSHOTTYPE_COLOSSEUM_READY2: OnColosseumReady2( ar ); break; case SNAPSHOTTYPE_COLOSSEUM_ENDMATCH: OnColosseumEndMatch( ar ); break; #endif // __ COLOSSEUM
------------------------------------------------------
Wir tragen ganz am ende VOR DEM "CDPClient g_Dplay;" dies ein:
Code:#ifdef __COLOSSEUM void CDPClient::SendColosseumStart( BYTE nState, BYTE byDifficult, BYTE byMenu ) { BEFORESENDSOLE( ar, PACKETTYPE_COLOSSEUM, DPID_UNKNOWN ); ar << nState << byDifficult << byMenu; SEND( ar, this, DPID_SERVERPLAYER ); } void CDPClient::SendColosseumEnter( BYTE nState ) { BEFORESENDSOLE( ar, PACKETTYPE_COLOSSEUM, DPID_UNKNOWN ); ar << nState; SEND( ar, this, DPID_SERVERPLAYER ); } void CDPClient::SendColosseumEndWait( BYTE nState ) { BEFORESENDSOLE( ar, PACKETTYPE_COLOSSEUM, DPID_UNKNOWN ); ar << nState; SEND( ar, this, DPID_SERVERPLAYER ); } void CDPClient::OnColosseumEnter( CAr & ar ) { SAFE_DELETE( g_WndMng.m_pColosseumMassage ); g_WndMng.m_pColosseumMassage = new CWndColosseumMassage(); if( g_WndMng.m_pColosseumMassage ) { g_WndMng.m_pColosseumMassage->Initialize(); } } void CDPClient::OnColosseumStart( CAr & ar ) { int nTime; ar >> nTime; if( g_WndMng.m_pColosseumStart && nTime == 0 ) { g_WndMng.m_pColosseumStart->Destroy(); } else { SAFE_DELETE( g_WndMng.m_pColosseumStart ); g_WndMng.m_pColosseumStart = new CWndColosseumStart(); if( g_WndMng.m_pColosseumStart ) { g_WndMng.m_pColosseumStart->m_nTime = nTime; g_WndMng.m_pColosseumStart->Initialize(); } } } void CDPClient::OnColosseumEndWait( CAr & ar ) { if( g_WndMng.m_pColosseumStart ) g_WndMng.m_pColosseumStart->Destroy(); if( g_WndMng.m_pColosseumMassage ) g_WndMng.m_pColosseumMassage->Destroy(); } void CDPClient::OnColosseumReady1( CAr & ar ) { int nTime; BYTE nStage; ar >> nTime >> nStage; if( g_WndMng.m_pColosseumStartReady2 ) g_WndMng.m_pColosseumStartReady2->Destroy(); SAFE_DELETE( g_WndMng.m_pColosseumStartReady1 ); g_WndMng.m_pColosseumStartReady1 = new CWndColosseumStartReady1(); if( g_WndMng.m_pColosseumStartReady1 ) { g_WndMng.m_pColosseumStartReady1->m_nTime = nTime; g_WndMng.m_pColosseumStartReady1->m_nStage = nStage; g_WndMng.m_pColosseumStartReady1->Initialize(); } } void CDPClient::OnColosseumReady2( CAr & ar ) { int nTime; ar >> nTime; if( g_WndMng.m_pColosseumStartReady1 ) g_WndMng.m_pColosseumStartReady1->Destroy(); SAFE_DELETE( g_WndMng.m_pColosseumStartReady2 ); g_WndMng.m_pColosseumStartReady2 = new CWndColosseumStartReady2(); if( g_WndMng.m_pColosseumStartReady2 ) { g_WndMng.m_pColosseumStartReady2->m_nTime = nTime; g_WndMng.m_pColosseumStartReady2->Initialize(); } } void CDPClient::OnColosseumEndMatch( CAr & ar ) { BOOL bWin; int nTime; ar >> bWin >> nTime; if( g_WndMng.m_pColosseumMassage ) g_WndMng.m_pColosseumMassage->Destroy(); if( g_WndMng.m_pColosseumStart ) g_WndMng.m_pColosseumStart->Destroy(); if( g_WndMng.m_pColosseumStartReady1 ) g_WndMng.m_pColosseumStartReady1->Destroy(); if( g_WndMng.m_pColosseumStartReady2 ) g_WndMng.m_pColosseumStartReady2->Destroy(); if( bWin ) { SAFE_DELETE( g_WndMng.m_pColosseumComplete ); g_WndMng.m_pColosseumComplete = new CWndColosseumComplete(); if( g_WndMng.m_pColosseumComplete ) { g_WndMng.m_pColosseumComplete->m_nTime = nTime; g_WndMng.m_pColosseumComplete->Initialize(); } } else { SAFE_DELETE( g_WndMng.m_pColosseumRetry ); g_WndMng.m_pColosseumRetry = new CWndColosseumRetry(); if( g_WndMng.m_pColosseumRetry ) { g_WndMng.m_pColosseumRetry->Initialize(); } } } #endif // __COLOSSEUM
------------------------------------------------------
../WORLDSERVER/User.cpp
Wir suchen nach
Code:void CUser::AddGuildHouseTenderResult( OBJID objGHId, BOOL bResult ) { if( IsDelete() ) return; m_Snapshot.cb++; m_Snapshot.ar << GetId(); m_Snapshot.ar << SNAPSHOTTYPE_GUILDHOUSE_TENDER_RESULT; m_Snapshot.ar << objGHId << bResult; } #endif // __GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM void CUser::SendColosseumEnter() { if( IsDelete() ) return; m_Snapshot.cb++; m_Snapshot.ar << GetId(); m_Snapshot.ar << SNAPSHOTTYPE_COLOSSEUM_ENTER; } void CUser::SendColosseumStart( int nTime ) { if( IsDelete() ) return; m_Snapshot.cb++; m_Snapshot.ar << GetId(); m_Snapshot.ar << SNAPSHOTTYPE_COLOSSEUM_START; m_Snapshot.ar << nTime; } void CUser::SendColosseumReady1( int nTime, BYTE nStage ) { if( IsDelete() ) return; m_Snapshot.cb++; m_Snapshot.ar << GetId(); m_Snapshot.ar << SNAPSHOTTYPE_COLOSSEUM_READY1; m_Snapshot.ar << nTime << nStage; } void CUser::SendColosseumReady2( int nTime ) { if( IsDelete() ) return; m_Snapshot.cb++; m_Snapshot.ar << GetId(); m_Snapshot.ar << SNAPSHOTTYPE_COLOSSEUM_READY2; m_Snapshot.ar << nTime; } void CUser::SendColosseumEndMatch( BOOL bWin, int nTime ) { if( IsDelete() ) return; m_Snapshot.cb++; m_Snapshot.ar << GetId(); m_Snapshot.ar << SNAPSHOTTYPE_COLOSSEUM_ENDMATCH; m_Snapshot.ar << bWin << nTime; } #endif //__COLOSSEUM
------------------------------------------------------
../NEUZ/DPClient.h
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE private: void OnGuildHouseTenderMainWnd( CAr & ar ); void OnGuildHouseTenderInfoWnd( CAr & ar ); void OnGuildHouseTenderResult( CAr & ar ); public: void SendGuildHouseTenderMainWnd( DWORD dwGHType, OBJID objNpcId ); void SendGuildHouseTenderInfoWnd( OBJID objGHId ); void SendGuildHouseTenderJoin( OBJID objGHId, int nTenderPerin, int nTenderPenya ); #endif // __GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM void SendColosseumStart( BYTE nState, BYTE byDifficult, BYTE byMenu ); void SendColosseumEnter( BYTE nState ); void SendColosseumEndWait( BYTE nState ); void OnColosseumEnter( CAr & ar ); void OnColosseumStart( CAr & ar ); void OnColosseumEndWait( CAr & ar ); void OnColosseumReady1( CAr & ar ); void OnColosseumReady2( CAr & ar ); void OnColosseumEndMatch( CAr & ar ); #endif // __COLOSSEUM
------------------------------------------------------
../_Network/MsgHdr.h
Wir suchen nach
Code:#define PACKETTYPE_QUERYMAILBOX_REQ (DWORD)0x88100240 #define PACKETTYPE_QUERYMAILBOX_COUNT (DWORD)0x88100241
und tragen darunter ein
Code:#ifdef __COLOSSEUM #define PACKETTYPE_COLOSSEUM (DWORD)0x88200000 #endif // __COLOSSEUM
------------------------------------------------------
Wir suchen nach
Code:#define SNAPSHOTTYPE_QUERYMAILBOX_REQ (WORD)0x8860
und tragen darunter ein
Code:#ifdef __COLOSSEUM #define SNAPSHOTTYPE_COLOSSEUM_ENTER (WORD)0x8880 #define SNAPSHOTTYPE_COLOSSEUM_START (WORD)0x8881 #define SNAPSHOTTYPE_COLOSSEUM_ENDWAIT (WORD)0x8882 #define SNAPSHOTTYPE_COLOSSEUM_READY1 (WORD)0x8883 #define SNAPSHOTTYPE_COLOSSEUM_READY2 (WORD)0x8884 #define SNAPSHOTTYPE_COLOSSEUM_ENDMATCH (WORD)0x8885 #endif // __COLOSSEUM
------------------------------------------------------
../WORLDSERVER/User.h
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE public: void AddGuildHouseTenderMainWnd( map<OBJID, char*>& mapGHList ); void AddGuildHouseTenderInfoWnd( OBJID objGHId, int nTenderMinPenya, __int64 nTenderPenya, vector<DWORD>& vecGuildId ); void AddGuildHouseTenderResult( OBJID objGHId, BOOL bResult ); #endif // __GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM public: void SendColosseumEnter(); void SendColosseumStart( int nTime ); void SendColosseumReady1( int nTime, BYTE nStage ); void SendColosseumReady2( int nTime ); void SendColosseumEndMatch( BOOL bWin, int nTime ); #endif //__COLOSSEUM
------------------------------------------------------
../WORLDSERVER/DPSrvr.cpp
Wir suchen nach
Code:#if __VER >= 15 // __CAMPUS #include "CampusHelper.h" #endif // __CAMPUS
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "Colosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE ON_MSG( PACKETTYPE_GUILDHOUSE_TENDER_MAINWND, OnGuildHouseTenderMainWnd ); ON_MSG( PACKETTYPE_GUILDHOUSE_TENDER_INFOWND, OnGuildHouseTenderInfoWnd ); ON_MSG( PACKETTYPE_GUILDHOUSE_TENDER_JOIN, OnGuildHouseTenderJoin ); #endif // __GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM ON_MSG( PACKETTYPE_COLOSSEUM, OnColosseum ); #endif // __COLOSSEUM
------------------------------------------------------
Wir tragen ganz am ende der Datei dies ein
Code:#ifdef __COLOSSEUM void CDPSrvr::OnColosseum( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize ) { CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser ); if( IsValidObj( pUser ) ) { BYTE nState; ar >> nState; CParty* pParty = g_PartyMng.GetParty( pUser->GetPartyId() ); switch( nState ) { case 1: //Start Match BYTE byDifficult, byMenu; ar >> byDifficult >> byMenu; if( pParty && pParty->IsLeader( pUser->m_idPlayer ) ) { if( CColosseumMng::GetInstance()->CreateNewMatch( pUser, byDifficult, byMenu ) ) { CColosseumMatch* pColosseumMatch = CColosseumMng::GetInstance()->GetMatchByParty( pParty ); if( pColosseumMatch ) pColosseumMatch->EnterRoom( pUser ); pUser->AddText("Match wurde gestartet"); } else pUser->AddText( "Du bist bereits angemeldet" ); } else pUser->AddText( "Du hast keine Party oder bist nicht der Party Leader." ); break; case 2: if( pParty ) { CColosseumMatch* pColosseumMatch = CColosseumMng::GetInstance()->GetMatchByParty( pParty ); if( pColosseumMatch ) if( pColosseumMatch->m_byMenu == 2 ) { if( pColosseumMatch->m_uGuildID == pUser->m_idGuild ) pColosseumMatch->EnterRoom( pUser ); } else pColosseumMatch->EnterRoom( pUser ); } break; case 3: if( pParty && pParty->IsLeader( pUser->m_idPlayer ) ) { CColosseumMatch* pColosseumMatch = CColosseumMng::GetInstance()->GetMatchByParty( pParty ); if( pColosseumMatch ) pColosseumMatch->EndWaitTime(); } break; } } } #endif // __COLOSSEUM
------------------------------------------------------
../WORLDSERVER/DPSrvr.h
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE void OnGuildHouseTenderMainWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long ); void OnGuildHouseTenderInfoWnd( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long ); void OnGuildHouseTenderJoin( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long ); #endif // __GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM void OnColosseum( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE, u_long ); #endif //__COLOSSEUM
------------------------------------------------------
../WORLDSERVER/ThreadMng.cpp
Wir suchen nach
Code:#include "guildquest.h"
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "Colosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir suchen nach
Code:#ifdef __EVENTLUA_SPAWN prj.m_EventLua.EventSpawnProcess(); #endif // __EVENTLUA_SPAWN
und tragen darunter ein
Code:#ifdef __COLOSSEUM CColosseumMng::GetInstance()->Process(); #endif // __COLOSSEUM
------------------------------------------------------
../WORLDSERVER/DPCoreClient.cpp
Wir suchen nach
Code:#include "WantedListSnapshot.h"
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "Colosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:void CDPCoreClient::OnAddPartyMember( CAr & ar, DPID, DPID, OBJID )
suchen nach
Code:if( IsValidObj( (CObj*)pMember ) ) { pMember->m_idparty = idParty;
und tragen darunter ein
Code:#ifdef __COLOSSEUM CColosseumMatch* ColoMatch = CColosseumMng::GetInstance()->GetMatchByParty( pParty ); if( ColoMatch && ColoMatch->m_bWaitTime ) if( ColoMatch->m_byMenu == 2 ) { if( ColoMatch->m_uGuildID == pMember->m_idGuild ) pMember->SendColosseumEnter(); } else pMember->SendColosseumEnter(); #endif //__COLOSSEUM
------------------------------------------------------
Wir suchen nach der Function
Code:void CDPCoreClient::OnRemovePartyMember( CAr & ar, DPID, DPID, OBJID )
suchen nach
Code:lpPlayer = CPlayerDataCenter::GetInstance()->GetPlayerString( idMember ); if( lpPlayer ) lstrcpy( pszMember, lpPlayer ); #endif // __SYS_PLAYER_DATA
und tragen darunter ein
Code:#ifdef __COLOSSEUM CColosseumMatch* pColoMatch = CColosseumMng::GetInstance()->GetMatchByParty( pParty ); if( pColoMatch ) pColoMatch->KickUser( idMember ); #endif // __COLOSSEUM
------------------------------------------------------
../_Common/Party.cpp
Wir suchen nach
Code:#if __VER >= 11 // __SYS_PLAYER_DATA #include "playerdata.h" #endif // __SYS_PLAYER_DATA
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "Colosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:BOOL CPartyMng::DeleteParty( u_long uPartyId )
suchen nach
Code:#if __VER >= 14 // __INSTANCE_DUNGEON CInstanceDungeonParty::GetInstance()->DestroyAllDungeonByDungeonID( uPartyId ); #endif // __INSTANCE_DUNGEON
und tragen darunter ein
Code:#ifdef __COLOSSEUM CColosseumMng::GetInstance()->DestroyMatch( uPartyId ); #endif // __COLOSSEUM
------------------------------------------------------
../_Common/Mover.cpp
Wir suchen nach
Code:#include "eveschool.h"
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "Colosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir gehen zur function
Code:int CMover::DoDie( CCtrl *pAttackCtrl, DWORD dwMsg )
suchen nach
Code:#if __VER >= 15 // __IMPROVE_QUEST_INTERFACE if( IsPlayer() == FALSE && pAttacker && pAttacker->IsPlayer() ) {
und tragen darunter ein
Code:#ifdef __COLOSSEUM CColosseumMatch* pColosseumMatch = CColosseumMng::GetInstance()->GetMatchByMoverID( GetId() ); if( pColosseumMatch ) pColosseumMatch->DestroyMover(); #endif // __COLOSSEUM
------------------------------------------------------
../_Common/Project.cpp
Wir suchen nach
Code:#ifdef __ENVIRONMENT_EFFECT #include "Environment.h" #endif // __ENVIRONMENT_EFFECT
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "Colosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir gehen zur Function
Code:BOOL CProject::OpenProject( LPCTSTR lpszFileName )
und tragen VOR DEM "return TRUE;" dies ein
Code:#ifdef __WORLDSERVER #ifdef __COLOSSEUM CColosseumMng::GetInstance()->LoadScript(); #endif // __COLOSSEUM #endif
------------------------------------------------------
../_Interface/WndManager.h
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE #include "WndHousing.h" #endif //__GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM #include "WndColosseum.h" #endif // __COLOSSEUM
------------------------------------------------------
Wir suchen nach
Code:// ¸ÞÁö½Ã À©µµ CWndMessageBox* m_pWndMessageBox; CWndMessageBoxUpper* m_pWndMessageBoxUpper; // Äù½ºÆ® ¾ÆÀÌÅÛ Á¤º¸ CWndQuestItemInfo* m_pQuestItemInfo;
und tragen darunter ein
Code:#ifdef __COLOSSEUM CWndColosseumComplete* m_pColosseumComplete; CWndColosseumEnter* m_pColosseumEnter; CWndColosseumMassage* m_pColosseumMassage; CWndColosseumRankGuild* m_pColosseumRankGuild; CWndColosseumRankNomal* m_pColosseumRankNomal; CWndColosseumRetry* m_pColosseumRetry; CWndColosseumStart* m_pColosseumStart; CWndColosseumStartReady1* m_pColosseumStartReady1; CWndColosseumStartReady2* m_pColosseumStartReady2; #endif // __COLOSSEUM
------------------------------------------------------
../_Interface/WndManager.cpp
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE m_pWndGHBid = NULL; #endif //__GUILD_HOUSE_MIDDLE #ifdef __MAIL_REQUESTING_BOX m_bWaitRequestMail = FALSE; #endif
und tragen darunter ein
Code:#ifdef __COLOSSEUM m_pColosseumComplete = NULL; m_pColosseumEnter = NULL; m_pColosseumMassage = NULL; m_pColosseumRankGuild = NULL; m_pColosseumRankNomal = NULL; m_pColosseumRetry = NULL; m_pColosseumStart = NULL; m_pColosseumStartReady1 = NULL; m_pColosseumStartReady2 = NULL; #endif // __COLOSSEUM
------------------------------------------------------
Wir suchen nach
Code:#ifdef __YS_CHATTING_BLOCKING_SYSTEM SAFE_DELETE( m_pWndChattingBlockingList ); #endif // __YS_CHATTING_BLOCKING_SYSTEM #ifdef __GUILD_HOUSE_MIDDLE SAFE_DELETE( m_pWndGHBid ); #endif //__GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM SAFE_DELETE( m_pColosseumComplete ); SAFE_DELETE( m_pColosseumEnter ); SAFE_DELETE( m_pColosseumMassage ); SAFE_DELETE( m_pColosseumRankGuild ); SAFE_DELETE( m_pColosseumRankNomal ); SAFE_DELETE( m_pColosseumRetry ); SAFE_DELETE( m_pColosseumStart ); SAFE_DELETE( m_pColosseumStartReady1 ); SAFE_DELETE( m_pColosseumStartReady2 ); #endif // __COLOSSEUM
------------------------------------------------------
Wir suchen nach
Code:#ifdef __GUILD_HOUSE_MIDDLE else if( m_pWndGHBid == pWndChild ) { SAFE_DELETE( m_pWndGHBid ); pWndChild = NULL; } #endif //__GUILD_HOUSE_MIDDLE
und tragen darunter ein
Code:#ifdef __COLOSSEUM else if(m_pColosseumComplete == pWndChild) { SAFE_DELETE( m_pColosseumComplete ); pWndChild = NULL; } else if(m_pColosseumEnter == pWndChild) { SAFE_DELETE( m_pColosseumEnter ); pWndChild = NULL; } else if(m_pColosseumMassage == pWndChild) { SAFE_DELETE( m_pColosseumMassage ); pWndChild = NULL; } else if(m_pColosseumRankGuild == pWndChild) { SAFE_DELETE( m_pColosseumRankGuild ); pWndChild = NULL; } else if(m_pColosseumRankNomal == pWndChild) { SAFE_DELETE( m_pColosseumRankNomal ); pWndChild = NULL; } else if(m_pColosseumRetry == pWndChild) { SAFE_DELETE( m_pColosseumRetry ); pWndChild = NULL; } else if(m_pColosseumStart == pWndChild) { SAFE_DELETE( m_pColosseumStart ); pWndChild = NULL; } else if(m_pColosseumStartReady1 == pWndChild) { SAFE_DELETE( m_pColosseumStartReady1 ); pWndChild = NULL; } else if(m_pColosseumStartReady2 == pWndChild) { SAFE_DELETE( m_pColosseumStartReady2 ); pWndChild = NULL; } #endif // __COLOSSEUM
Jetzt habt ihr das Colosseum!
---------- Post added at 12:07 PM ---------- Previous post was at 12:03 PM ----------
just in case
Alles genau nach deinem Tut gemacht und die Fehler spuckt er aus
weiss nicht was ich damit anfangen soll
Hilfe wäre sehr Nice![]()
../WorldServer/User.h
Änder mal das
Code:#ifdef __COLOSSEUM void SendColosseumEnter(); void SendColosseumStart( int nTime ); void SendColosseumReady1( int nTime, BYTE nStage ); void SendColosseumReady2( int nTime ); void SendColosseumEndMatch( BOOL bWin, int nTime ); #endif //__COLOSSEUM
zu
Code:#ifdef __COLOSSEUM public: void SendColosseumEnter(); void SendColosseumStart( int nTime ); void SendColosseumReady1( int nTime, BYTE nStage ); void SendColosseumReady2( int nTime ); void SendColosseumEndMatch( BOOL bWin, int nTime ); #endif //__COLOSSEUM
und sag bitte bescheid ob er nun sauber arbeitet^^
EDIT: updated info
UPDATE
In der WndWorld.cpp müsst ihr bei der function OnEraseBkgnd() diesen code:
Code:#ifdef __COLOSSEUM if ( dwColosseumStartSplashTick > g_tmCurrent ) { int nAlpha = ( dwColosseumStartSplashTick - g_tmCurrent ) / 32; Error("Error Report SplashTick %i Current %i Alpha %i",dwColosseumStartSplashTick, g_tmCurrent, nAlpha); if( nAlpha > 255 ) nAlpha = 255; int x = (GetClientRect().Width() / 2) - (m_TexColosseumStart.m_size.cx / 2); int y = (GetClientRect().Height() / 2) - (m_TexColosseumStart.m_size.cy / 2); m_TexColosseumStart.Render( &g_Neuz.m_2DRender, CPoint(x, y) , nAlpha ); } #endif //__COLOSSEUM
unter diesen schreiben:
Code:pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA ); pd3dDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE ); pd3dDevice->SetRenderState( D3DRS_ALPHAREF, 0x08 );
Dann passt das ganze wieder mit dem Background
2-3 Tage ~
Du musst es ganz ganz am ende machen. Also zwischen
Code:#ifdef __IMPROVE_MAP_SYSTEM #ifdef __CLIENT m_MapInformationManager.LoadMapInformationData(); #endif // __CLIENT #endif // __IMPROVE_MAP_SYSTEM
und
Code:return TRUE; }
APP_NEWCOLOCOMPLETE
APP_NEWCOLOENTER
TID_COLOSSEUM_COLOISGUILDJOIN0
APP_NEWCOLOMASSAGE
APP_NEWCOLORANKGUILD
APP_NEWCOLORANKNOMAL
APP_NEWCOLORETRY
APP_NEWCOLOSTART
TID_COLOSSEUM_WATINGSTAGESTART01
APP_NEWCOLOSTARTREADY1
APP_NEWCOLOSTARTREADY2
TID_COLOSSEUM_COLOISGUILDJOIN01
TID_COLOSSEUM_WATINGSTAGESTART01
Here's the rest of them. Define these, and if you follow the tut, should give no errors.
Remember to define TID_COLOSSEUM_COLOSUCCESS01 in the resource.
also
Remember to define MMI_COLOSSEUM_COLOENTER01 or else it'll give unknown identifier errors.
Last edited by a moderator:

