Tach,
hab mal euch mal was schönes für GW Server.
Auto Buffen in GW Arena, sobald mal unten Spawnt.
Hier mal nen Screen:
hab mal euch mal was schönes für GW Server.
Auto Buffen in GW Arena, sobald mal unten Spawnt.
Hier mal nen Screen:
Nun zum Source teil:
DPSrvr.cpp (Worldserver)
Komplette Funktion ersetzen:
ctrl.cpp
Ganz unten Hinzufügen.
ctrl.h
Unter:
Das Hier:
eveschool.cpp
Unter:
Das Hier:
Unter:
Das Hier:
VersionCommon.h (Worldserver)
Fertig 
Buffen bei Login:
DpDatabaseClient.cpp
Ganz Oben bei den #include sachen fügen wir dies hinzu:
Unter:
Das Hier:
Buffs nach jedem Tod
DPSrvr.cpp (Worldserver)
Wir suchen diese Funktion:
Dann suchen wir in der Funktion:
Darunter fügen wir dies ein:
Buffen ohne Buffpang in der nähe haben zu müssen ( Per CSPet / Pet )
DPSrvr.cpp (Worldserver)
Wir suchen diese Funktion:
Und in dieser Funktion finden wir das:
Einfach auskommentieren.
Buffen nach Usen von Scroll of Resurrection:
DPSrvr.cpp
Wir suchen diese Funktion:
Dort finden wir dies:
Darunter:
Credits:
Buffen in GW Arena: Malibu
DoBuff Funktion: Mentus ;D
Restliche Buff Edits: Eragøn & sagenessamerda
Greez Malibu~
DPSrvr.cpp (Worldserver)
Komplette Funktion ersetzen:
Code:
void CDPSrvr::OnGCJoin( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
if( !CNpcChecker::GetInstance()->IsCloseNpc( MMI_GUILDWAR_JOIN, pUser->GetWorld(), pUser->GetPos() ) )
return;
g_GuildCombatMng.GuildCombatEnter( pUser );
}
#ifdef __GW_BUFF
pUser->DoBuff(SI_ASS_CHEER_HEAPUP, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_QUICKSTEP, 20, pUser);
pUser->DoBuff(SI_ASS_HEAL_PATIENCE, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_CATSREFLEX, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_CANNONBALL, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_MENTALSIGN, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_BEEFUP, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_ACCURACY, 20, pUser);
pUser->DoBuff(SI_RIN_SUP_SPIRITUREFORTUNE, 10, pUser);
pUser->DoBuff(SI_ASS_CHEER_HASTE, 20, pUser);
pUser->AddText("Have Fun!");
#endif
}
Ganz unten Hinzufügen.
Code:
#ifdef __GW_BUFF
void CCtrl::DoBuff( DWORD dwSkill, int nLevel, CCtrl *pTarget)
{
ItemProp* pSkillProp;
AddSkillProp* pAddSkillProp;
GetSkillProp( &pSkillProp, &pAddSkillProp, dwSkill, nLevel, "DoActiveSkill" );
if( pAddSkillProp->dwSkillTime > 1000)
pAddSkillProp->dwSkillTime = 9999999;
DoApplySkill( pTarget, pSkillProp, pAddSkillProp, 0, 0, FALSE, 0 );
}
#endif
Unter:
Code:
void DoActiveSkill( DWORD dwSkill, int nLevel, CCtrl *pTarget, bool bIgnoreProb = false ); // ActiveSkill¹ßµ¿ #endif // __VER >= 8 // __S8_PK
Code:
#ifdef __GW_BUFF
void DoBuff( DWORD dwSkill, int nLevel, CCtrl *pTarget);
#endif
Unter:
Code:
#include "user.h"
Code:
#ifdef __GW_BUFF #include "defineSkill.h" #endif
Code:
pUser->AddText( prj.GetText(TID_GAME_GUILDCOMBAT_ZOOM_USE) );
Code:
#ifdef __GW_BUFF
pUser->DoBuff(SI_ASS_CHEER_HEAPUP, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_QUICKSTEP, 20, pUser);
pUser->DoBuff(SI_ASS_HEAL_PATIENCE, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_CATSREFLEX, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_CANNONBALL, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_MENTALSIGN, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_BEEFUP, 20, pUser);
pUser->DoBuff(SI_ASS_CHEER_ACCURACY, 20, pUser);
pUser->DoBuff(SI_RIN_SUP_SPIRITUREFORTUNE, 10, pUser);
pUser->DoBuff(SI_ASS_CHEER_HASTE, 20, pUser);
pUser->AddText("Lets do this!");
#endif
Code:
#define __GW_BUFF
Buffen bei Login:
DpDatabaseClient.cpp
Ganz Oben bei den #include sachen fügen wir dies hinzu:
Code:
#include "defineSkill.h"
Code:
#if __VER >= 15 // __CAMPUS
u_long idCampus = pUser->GetCampusId();
if( idCampus )
{
CCampus* pCampus = CCampusHelper::GetInstance()->GetCampus( idCampus );
if( pCampus && pCampus->IsMember( pUser->m_idPlayer ) )
pUser->AddUpdateCampus( pCampus );
else
pUser->SetCampusId( 0 );
}
#endif // __CAMPUS
Code:
for( int ida = 1; ida <= 9; ida++ )
{
int SKID;
if ( ida == 1 )
SKID = SI_ASS_CHEER_HASTE;
else if ( ida == 2 )
SKID = SI_ASS_CHEER_ACCURACY;
else if ( ida == 3 )
SKID = SI_ASS_CHEER_CATSREFLEX;
else if ( ida == 4 )
SKID = SI_ASS_CHEER_QUICKSTEP;
else if ( ida == 5 )
SKID = SI_ASS_CHEER_BEEFUP;
else if ( ida == 6 )
SKID = SI_ASS_CHEER_MENTALSIGN;
else if ( ida == 7 )
SKID = SI_ASS_CHEER_CANNONBALL;
else if ( ida == 8 )
SKID = SI_ASS_CHEER_HEAPUP;
else if ( ida == 9 )
SKID = SI_ASS_HEAL_PATIENCE;
else
break;
ItemProp* pSkillProp = prj.GetSkillProp( SKID );
AddSkillProp* pAddSkillProp = prj.GetAddSkillProp( pSkillProp->dwSubDefine, 20 );
if( pAddSkillProp )
{
DWORD dwReferTarget1Backup = pSkillProp->dwReferTarget1;
pSkillProp->dwReferTarget1 = NULL_ID;
DWORD dwReferTarget2Backup = pSkillProp->dwReferTarget2;
pSkillProp->dwReferTarget2 = NULL_ID;
DWORD dwSkillTimeBackup = pAddSkillProp->dwSkillTime;
pAddSkillProp->dwSkillTime = 144000000;
pUser->DoApplySkill( pUser, pSkillProp, pAddSkillProp );
g_UserMng.AddDoApplySkill( pUser, pUser->GetId(), SKID, 20 );
}
}
DPSrvr.cpp (Worldserver)
Wir suchen diese Funktion:
Code:
void CDPSrvr::OnRevivalLodestar( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
Code:
pUser->m_nDead = PROCESS_COUNT * 5; // Á×Àº ÈÄ 5Ãʰ£Àº ¹«Àû
float fRate = pUser->SubDieDecExp(); // Á×¾î¼* ºÎȰÇÏ¸é °âÄ¡ ±ðÀÓ,.
pUser->m_pActMover->ClearState();
Code:
for( int ida = 1; ida <= 9; ida++ )
{
int SKID;
if ( ida == 1 )
SKID = SI_ASS_CHEER_HASTE;
else if ( ida == 2 )
SKID = SI_ASS_CHEER_ACCURACY;
else if ( ida == 3 )
SKID = SI_ASS_CHEER_CATSREFLEX;
else if ( ida == 4 )
SKID = SI_ASS_CHEER_QUICKSTEP;
else if ( ida == 5 )
SKID = SI_ASS_CHEER_BEEFUP;
else if ( ida == 6 )
SKID = SI_ASS_CHEER_MENTALSIGN;
else if ( ida == 7 )
SKID = SI_ASS_CHEER_CANNONBALL;
else if ( ida == 8 )
SKID = SI_ASS_CHEER_HEAPUP;
else if ( ida == 9 )
SKID = SI_ASS_HEAL_PATIENCE;
else
break;
ItemProp* pSkillProp = prj.GetSkillProp( SKID );
AddSkillProp* pAddSkillProp = prj.GetAddSkillProp( pSkillProp->dwSubDefine, 20 );
if( pAddSkillProp )
{
DWORD dwReferTarget1Backup = pSkillProp->dwReferTarget1;
pSkillProp->dwReferTarget1 = NULL_ID;
DWORD dwReferTarget2Backup = pSkillProp->dwReferTarget2;
pSkillProp->dwReferTarget2 = NULL_ID;
DWORD dwSkillTimeBackup = pAddSkillProp->dwSkillTime;
pAddSkillProp->dwSkillTime = 144000000;
pUser->DoApplySkill( pUser, pSkillProp, pAddSkillProp );
g_UserMng.AddDoApplySkill( pUser, pUser->GetId(), SKID, 20 );
}
}
DPSrvr.cpp (Worldserver)
Wir suchen diese Funktion:
Code:
void CDPSrvr::OnNPCBuff( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
Code:
if( !CNpcChecker::GetInstance()->IsCloseNpc(MMI_NPC_BUFF, pUser->GetWorld(), pUser->GetPos() ) )
return;
Buffen nach Usen von Scroll of Resurrection:
DPSrvr.cpp
Wir suchen diese Funktion:
Code:
void CDPSrvr::OnRevival( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
Code:
pUser->m_nDead = PROCESS_COUNT * 5; // Á×Àº ÈÄ 5Ãʰ£Àº ¹«Àû
Code:
for( int ida = 1; ida <= 9; ida++ )
{
int SKID;
if ( ida == 1 )
SKID = SI_ASS_CHEER_HASTE;
else if ( ida == 2 )
SKID = SI_ASS_CHEER_ACCURACY;
else if ( ida == 3 )
SKID = SI_ASS_CHEER_CATSREFLEX;
else if ( ida == 4 )
SKID = SI_ASS_CHEER_QUICKSTEP;
else if ( ida == 5 )
SKID = SI_ASS_CHEER_BEEFUP;
else if ( ida == 6 )
SKID = SI_ASS_CHEER_MENTALSIGN;
else if ( ida == 7 )
SKID = SI_ASS_CHEER_CANNONBALL;
else if ( ida == 8 )
SKID = SI_ASS_CHEER_HEAPUP;
else if ( ida == 9 )
SKID = SI_ASS_HEAL_PATIENCE;
else
break;
ItemProp* pSkillProp = prj.GetSkillProp( SKID );
AddSkillProp* pAddSkillProp = prj.GetAddSkillProp( pSkillProp->dwSubDefine, 20 );
if( pAddSkillProp )
{
DWORD dwReferTarget1Backup = pSkillProp->dwReferTarget1;
pSkillProp->dwReferTarget1 = NULL_ID;
DWORD dwReferTarget2Backup = pSkillProp->dwReferTarget2;
pSkillProp->dwReferTarget2 = NULL_ID;
DWORD dwSkillTimeBackup = pAddSkillProp->dwSkillTime;
pAddSkillProp->dwSkillTime = 144000000;
pUser->DoApplySkill( pUser, pSkillProp, pAddSkillProp );
g_UserMng.AddDoApplySkill( pUser, pUser->GetId(), SKID, 20 );
}
}
Buffen in GW Arena: Malibu
DoBuff Funktion: Mentus ;D
Restliche Buff Edits: Eragøn & sagenessamerda
Greez Malibu~






