What's new

-Tibia 8.54 sendSpecialeffect()

Status
Not open for further replies.

Rarzillo De Bonzo

Senior User
Joined
Apr 10, 2009
Messages
726
Reaction score
27
Witam, od niedawna na powa?nie wzi??em si? za Symfonie C++ i codziennie czytam oko?o 20-30stron, wi?c my?l? i? tak za miesi?c przerobi? 1 tom, xD. Dobra tam, nie wa?ne, zapomnijcie. Tak, wi?c oto jedna z moich funkcji, kt?re dorobi?em do source i kt?ra si? na pewno mi przyda.
Ot?? chodzi mi o sendSepcialeffect, wysy?a efekt do targeta w zale?no?ci od profesji.
Tak, wi?c zaczynamy w game.cpp

Szukamy:
Code:
bool Game::combatChangeHealth(CombatType_t combatType, Creature* attacker, Creature* target, int32_t healthChange,
	MagicEffect_t hitEffect/* = MAGIC_EFFECT_UNKNOWN*/, TextColor_t hitColor/* = TEXTCOLOR_UNKNOWN*/, bool force/* = false*/)

Zamieniamy
Code:
					addMagicEffect(list, targetPos, magicEffect);

na
Code:
if(attacker->getCreature())
{
addMagicEffect(list, targetPos, magicEffect);

}

Nast?pnie przechodzimy do player.cpp i np. na samym ko?cu dodajemy

Code:
void Player::SendSpecialEffect(Creature* target)
{
     
	    switch(this->getVocationId())
	{
		case 1: case 3: case 8: case 12:
	g_game.addMagicEffect(target->getPosition(), MAGIC_EFFECT_SLEEP);
	        break;
	}
}

case 1 czyli wed?ug tego co jest napisane w switchu, to ka?dy case odpowiada id vocation'a.


Teraz szukamy w player.cpp, tej funkcji void Player::doAttacking(uint32_t interval)
i dodajemy tam SendSpecialEffect(attackedCreature); (np. nad lastAttack)
Code:
else if((!weapon->hasExhaustion() || !hasCondition(CONDITION_EXHAUST, EXHAUST_COMBAT)) && weapon->useWeapon(this, tool, attackedCreature))
            lastAttack = OTSYS_TIME();
	}

Teraz szukamy sendSpecialeffect(attackedCreature); i robimy to co poprzednio, czyli dodajemy np. nad lastAttack
Code:
	else if(Weapon::useFist(this, attackedCreature))
		lastAttack = OTSYS_TIME();


Teraz przechodzimy do player.h i dodajemy
void Player::SendSpecialEffect(Creature* target);

Testowane na tfs 0.3.6plr1.
Stworzone przez Raezil.

---------- Tre?? dodana o 22:30 ----------

Do combatChangeHealth zosta?o dodane Best hit w zale?no?ci od combat (co? jak na naruto story). Nied?ugo dodam, gdy tylko b?d? przy kompie.

@down
Jeju, to m?j 5 czy tam 7 kod w cpp, zaraz to zedytuje.
 

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: sendSpecialeffect()

Teraz przechodzimy do player.h i dodajemy
bool Player::sendSpecialeffect(Creature* target);

Ciekawe.

Usuwamy:
addMagicEffect(list, targetPos, magicEffect);

Usuwasz efekty ze wszystkich combat?w? Potworki musz? ciekawie atakowa?.

bool Player::sendSpecialeffect(Creature* target)
To w ko?cu camelCase czy nie?


czyli dodajemy np. nad lastAttack

[CPP]else if(Weapon::useFist(this, attackedCreature))
sendSpecialeffect(attackedCreature);

lastAttack = OTSYS_TIME();[/CPP]

@edit
Co nie oznacza, ?e nie mog? zwr?ci? uwagi na b??dy.
 
Last edited:

Rarzillo De Bonzo

Senior User
Joined
Apr 10, 2009
Messages
726
Reaction score
27
Odp: sendSpecialeffect()

W sumie mo?na zamiast addmagiceffect wklei? to
if(attacker->getCreature())
{
addMagicEffect(list, targetPos, magicEffect);

}
i teraz dzia?a.

@edit
Dantez, w sumie dzi?kuje za ukazanie b??d?w, daje reputa. Nawet nie zauwa?y?em, ?e mobki nie maj? efektu, a tego boola musia?em da? przez przypadek. Aj, te pocz?tki s? zawsze trudne ;D.

@down
Dziwne, ale mobki atakuj? efektami, wi?c mhm.
 
Last edited:

Dantez

Moim sekretem jest ciasto
Joined
May 22, 2008
Messages
1,206
Reaction score
202
Odp: sendSpecialeffect()

Ten warunek nie ma sensu.
 

Arkam

Forum friend
Joined
Dec 20, 2008
Messages
1,980
Reaction score
180
Odp: sendSpecialeffect()

W sumie mo?na zamiast addmagiceffect wklei? to
if(attacker->getCreature())
{
addMagicEffect(list, targetPos, magicEffect);

}
i teraz dzia?a.

@edit
Dantez, w sumie dzi?kuje za ukazanie b??d?w, daje reputa. Nawet nie zauwa?y?em, ?e mobki nie maj? efektu, a tego boola musia?em da? przez przypadek. Aj, te pocz?tki s? zawsze trudne ;D.

@down
Dziwne, ale mobki atakuj? efektami, wi?c mhm.
To wyja?nij w jakim celu usi?ujesz wcisn?? te addMagicEffect do warunku kt?ry dzia?a akurat w tym miejscu gdzie jest tak samo jakby? da? if(1==1) :D
 
Status
Not open for further replies.
Top