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:
Zamieniamy
na
Nast?pnie przechodzimy do player.cpp i np. na samym ko?cu dodajemy
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)
Teraz szukamy sendSpecialeffect(attackedCreature); i robimy to co poprzednio, czyli dodajemy np. nad lastAttack
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.
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.