Request /Buff Command

03/18/2016 16:15 .HeyEyay.#1
Request /Buff Command
03/18/2016 19:56 Professor Linebeck#2
Code:
ON_TEXTCMDFUNC( TextCmd_buff,	          "buff",			  "buff",			"buff",			 "buff", TCM_SERVER, AUTH_ADMINISTRATOR , "" )
Code:
BOOL TextCmd_buff ( CScanner& scanner )
{
#ifdef __WORLDSERVER	
	CUser* pUser = (CUser*)scanner.dwValue;
	if( IsValidObj( pUser ) )
    {
		pUser->DoBuff(SI_ASS_CHEER_HEAPUP,    15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_QUICKSTEP, 15, pUser); 
		pUser->DoBuff(SI_ASS_HEAL_PATIENCE,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CATSREFLEX, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CANNONBALL, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_MENTALSIGN, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_BEEFUP,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_ACCURACY, 10, pUser);
		pUser->DoBuff(SI_ASS_CHEER_HASTE,    15, pUser); 
		pUser->AddText("Successfully buffed!");
	}
	else
    {
        pUser->AddText( "Something went terrible wrong!" );        
    }
#endif 
	return TRUE;
}
03/19/2016 13:07 .SnoX#3
Quote:
Originally Posted by Professor Linebeck View Post
Code:
ON_TEXTCMDFUNC( TextCmd_buff,	          "buff",			  "buff",			"buff",			 "buff", TCM_SERVER, AUTH_ADMINISTRATOR , "" )
Code:
BOOL TextCmd_buff ( CScanner& scanner )
{
#ifdef __WORLDSERVER	
	CUser* pUser = (CUser*)scanner.dwValue;
	if( IsValidObj( pUser ) )
    {
		pUser->DoBuff(SI_ASS_CHEER_HEAPUP,    15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_QUICKSTEP, 15, pUser); 
		pUser->DoBuff(SI_ASS_HEAL_PATIENCE,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CATSREFLEX, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CANNONBALL, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_MENTALSIGN, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_BEEFUP,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_ACCURACY, 10, pUser);
		pUser->DoBuff(SI_ASS_CHEER_HASTE,    15, pUser); 
		pUser->AddText("Successfully buffed!");
	}
	else
    {
        pUser->AddText( "Something went terrible wrong!" );        
    }
#endif 
	return TRUE;
}
DoBuff fehlt noch in der Ctrl.cpp/.h
03/19/2016 17:05 Exrib0.#4
Man kann es auch mit einem Limit machen, so können die Spieler damit nicht spammen, z.B. aller 10 Sekunden :

_Interface/FuncTextCmd.cpp:

PHP Code:
BOOL TextCmd_BuffPlayerCScannerscanner )
{
#ifdef __WORLDSERVER
    
CUserpUser = (CUser*)scanner.dwValue;

    if( 
GetTickCount() - pUser->GetLastBuffTick() <= SEC10 ) ){
        
pUser->AddText"Du kannst dich nur alle 10 Sekunden buffen!" );
        return 
TRUE;
    }
    
    
pUser->SetLastBuffTickGetTickCount() );

    
// Assist Buffs
    
pUser->DoActiveSkill2020pUser );
    
pUser->DoActiveSkill4620pUser );
    
pUser->DoActiveSkill4920pUser );
    
pUser->DoActiveSkill5020pUser );
    
pUser->DoActiveSkill5220pUser );
    
pUser->DoActiveSkill5320pUser );
    
pUser->DoActiveSkill11420pUser );
    
pUser->DoActiveSkill11520pUser );
    
pUser->DoActiveSkill11620pUser );
#endif // __WORLDSERVER
    
return TRUE;

PHP Code:
    ON_TEXTCMDFUNCTextCmd_BuffPlayer,               "Buff",      "buff",                    "±Ó¼Ó¸»",         "±Ó",      TCM_SERVERAUTH_GENERAL      "±Ó¼Ó¸» [/¸í·É ¾ÆÀ̵𠳻¿ë]" 
WORLDSERVER/User.cpp:

PHP Code:
DWORD CUser::GetLastBuffTick()
{
    return 
m_dwBuffTick;
}

DWORD CUser::SetLastBuffTickDWORD Tick )
{
    
m_dwBuffTick Tick;
    return 
TRUE;

WORLDSERVER/User.h:

PHP Code:
    DWORD            m_dwBuffTick;
    
DWORD            GetLastBuffTick();
    
DWORD            SetLastBuffTickDWORD Tick ); 
Mit freundlichen Grüßen

Exrib0
03/20/2016 19:19 .HeyEyay.#5
where can i put this code

DWORD CUser::GetLastBuffTick()
{
return m_dwBuffTick;
}
03/20/2016 20:08 Exrib0.#6
Put it below:

PHP Code:
#ifdef __NEW_ITEM_VARUNA
void CUser::AddActivateBarunaPetDWORD dwItemIdDWORD dwBarunaPetIDBOOL bActivate )
{
    if( 
IsDelete() )    return;
    
    
m_Snapshot.cb++;
    
m_Snapshot.ar << GetId();
    
m_Snapshot.ar << SNAPSHOTTYPE_ADDBARUNAPET;
    
m_Snapshot.ar << dwItemId << dwBarunaPetID <<bActivate;
}
#endif// __NEW_ITEM_VARUNA 
03/26/2016 10:10 Ecrypter#7
Quote:
Originally Posted by Professor Linebeck View Post
Code:
ON_TEXTCMDFUNC( TextCmd_buff,	          "buff",			  "buff",			"buff",			 "buff", TCM_SERVER, AUTH_ADMINISTRATOR , "" )
Code:
BOOL TextCmd_buff ( CScanner& scanner )
{
#ifdef __WORLDSERVER	
	CUser* pUser = (CUser*)scanner.dwValue;
	if( IsValidObj( pUser ) )
    {
		pUser->DoBuff(SI_ASS_CHEER_HEAPUP,    15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_QUICKSTEP, 15, pUser); 
		pUser->DoBuff(SI_ASS_HEAL_PATIENCE,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CATSREFLEX, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CANNONBALL, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_MENTALSIGN, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_BEEFUP,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_ACCURACY, 10, pUser);
		pUser->DoBuff(SI_ASS_CHEER_HASTE,    15, pUser); 
		pUser->AddText("Successfully buffed!");
	}
	else
    {
        pUser->AddText( "Something went terrible wrong!" );        
    }
#endif 
	return TRUE;
}
Where i can add this in source?
03/26/2016 12:27 Professor Linebeck#8
Take a look at Exrib0's Post.
03/26/2016 17:52 Sedrika#9
Quote:
Originally Posted by Professor Linebeck View Post
Code:
ON_TEXTCMDFUNC( TextCmd_buff,	          "buff",			  "buff",			"buff",			 "buff", TCM_SERVER, AUTH_ADMINISTRATOR , "" )
Code:
BOOL TextCmd_buff ( CScanner& scanner )
{
#ifdef __WORLDSERVER	
	CUser* pUser = (CUser*)scanner.dwValue;
	if( IsValidObj( pUser ) )
    {
		pUser->DoBuff(SI_ASS_CHEER_HEAPUP,    15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_QUICKSTEP, 15, pUser); 
		pUser->DoBuff(SI_ASS_HEAL_PATIENCE,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CATSREFLEX, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_CANNONBALL, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_MENTALSIGN, 15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_BEEFUP,   15, pUser); 
		pUser->DoBuff(SI_ASS_CHEER_ACCURACY, 10, pUser);
		pUser->DoBuff(SI_ASS_CHEER_HASTE,    15, pUser); 
		pUser->AddText("Successfully buffed!");
	}
	else
    {
        pUser->AddText( "Something went terrible wrong!" );        
    }
#endif 
	return TRUE;
}
The "else" part would lead the server to crash if the object is not valid.