/buff Frage

11/02/2012 14:52 DerJumbo#1
Wie muss dieser Code aussehen :

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

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

damit /buff nur aller 10 Minuten ausgeführt werden kann.

Ich freue mich über Antworten.

MFG DerJumbo
11/03/2012 13:14 Kiseku™#2
du meinst ein Couldown oder wie man das schreibt oder ? ich glaube das wird beim antihack eingestellt das man nicht übertrieben buffen kann achja alle 10 min ist doof weil wenn du in der PVP bist angenommen man wird reingeportet also eine PvP-Zone und man kann das nur alle 10 min machen ist das doof wenn man stirbt

lg ~Kiseku~
thx wehre nett wenn ich dir geholen habe ;D
11/03/2012 15:49 DerJumbo#3
In der Pvp steht ein Buff Pingu, aber ich will das man zb behe Dungeon ist und keine Buffs mehr hat /buff machen kann aber mit nem Cooldown das man das nur jeder Minute oder so machen kann, weil sonst könnten die es zum laggen bringen wenn sie ganze zeit /buff machen.
11/03/2012 16:13 Kiseku™#4
ja das ist schon kla ^^ aber ich habe leider keine Ahnung wie man so etwas macht ;) aber anderer tipp mach doch in die Dungeon Ein Buff Pang Oder mach das behe keine Buffs Nehmt ;D

lg ~Kiseku~
11/03/2012 19:21 Sedrika#5
FuncTextCmd.cpp
Code:
ON_TEXTCMDFUNC( TextCmd_BuffPlayer, "Buff", "buff", "Buff", "buff", TCM_SERVER, AUTH_GENERAL , "Player Buff" )

BOOL TextCmd_BuffPlayer( CScanner& scanner )
{
#ifdef __WORLDSERVER
	CUser* pUser = (CUser*)scanner.dwValue;

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

	// Assist Buffs
	pUser->DoActiveSkill( 20, 15, pUser );
	pUser->DoActiveSkill( 49, 15, pUser );
	pUser->DoActiveSkill( 50, 15, pUser );
	pUser->DoActiveSkill( 52, 15, pUser );
	pUser->DoActiveSkill( 53, 15, pUser );
	pUser->DoActiveSkill( 114, 15, pUser );
	pUser->DoActiveSkill( 115, 15, pUser );
	pUser->DoActiveSkill( 116, 15, pUser );
#endif // __WORLDSERVER
	return TRUE;
}
User.h
Code:
public:
	DWORD			m_dwBuffTick;
	DWORD			GetLastBuffTick();
	DWORD			SetLastBuffTick( DWORD Tick );
User.cpp
Code:
DWORD CUser::GetLastBuffTick()
{
	return m_dwBuffTick;
}

DWORD CUser::SetLastBuffTick( DWORD Tick )
{
	m_dwBuffTick = Tick;
	return TRUE;
}
Das ganze im Worldserver und alles ist so wie du es wolltest.
11/04/2012 16:31 DerJumbo#6
Vielen dank Sedrika :D

Bekomme aber 2 Error :

PHP Code:
\Users\****\Desktop\Source\Program\_Interface\FuncTextCmd.cpp(623) : error C2248'CUser::GetLastBuffTick' cannot access private member declared in class 'CUser'
        
User.h(92) : see declaration of 'CUser::GetLastBuffTick'
        
User.h(69) : see declaration of 'CUser'
\Users\****\Desktop\Source\Program\_Interface\FuncTextCmd.cpp(628) : error C2248'CUser::SetLastBuffTick' cannot access private member declared in class 'CUser'
        
User.h(93) : see declaration of 'CUser::SetLastBuffTick'
        
User.h(69) : see declaration of 'CUser' 
11/05/2012 14:28 lolix3#7
User.h

Du hast die Deklarationen in den Private Bereich eingefügt, kopier es in den Public Bereich, dann sollte es gehen.

Greetz
11/05/2012 18:25 DerJumbo#8
stimmt danke :D geht jetzt :D Kann man i-wie das so machen das die buffs alle ne stunde halten?
11/07/2012 15:28 DerJumbo#9
hat da jemand was ?
11/09/2012 22:43 DerJumbo#10
hab es immer noch nicht raus, kann mir bitte jemand helfen?
11/11/2012 17:59 DerJumbo#11
Wenn einer eine Lösung hätte würde ich mich sehr darüber freuen.
11/11/2012 18:03 N8Schatten#12
Änder doch einfach hier:

Code:
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 );
}
das: pAddSkillProp->dwSkillTime = 9999999;
11/11/2012 19:33 Crowley™#13
naja bin nicht so der fan von /buff.... würde lieber ein paar buffpangs mehr setzen als so eine kacke einzubauen ^^
11/11/2012 20:19 N8Schatten#14
kanst es ja auch anders einbauen einfach autobuff bei login und die skillzeit auf 23studen fertig dann brauch man net immer net buffpeng zu suchen
11/11/2012 21:11 DerJumbo#15
In welcher Datei ist

PHP Code:
void CCtrl::DoBuffDWORD dwSkillint nLevelCCtrl *pTarget
drin?