Claro pensa q eu to falando doke ? -.- n torne o topico flood, so quero instala e pronto!
Ensinarei nos mínimos detalhes, de modo que até um leigo qualquer, seguindo os passos conseguiria fazer as modificações corretamente.
Para seguir os passos abaixo, é recomendável ter em mãos, o código-fonte do seu servidor, ou seja, as sources.
1. No seu IDE de preferência, abra o arquivo weapons.cpp, e procure pela função abaixo:
int32_t WeaponMelee::getWeaponDamage(const Player* player, const Creature* target, const Item* item, bool maxDamage /*= false*/) const
{
int32_t attackSkill = player->getWeaponSkill(item);
int32_t attackValue = std::max((int32_t)0, (int32_t(item->getAttack() + item->getExtraAttack()) - elementDamage));
float attackFactor = player->getAttackFactor();
double maxValue = Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor);
if(random_range(1, 100) <= g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE))
{
maxValue = std::pow(maxValue, g_config.getDouble(ConfigManager::CRITICAL_HIT_MUL));
player->sendCritical();
}
Vocation* vocation = player->getVocation();
if(vocation && vocation->getMultiplier(MULTIPLIER_MELEE) != 1.0)
maxValue *= vocation->getMultiplier(MULTIPLIER_MELEE);
int32_t ret = (int32_t)std::floor(maxValue);
if(maxDamage)
return -ret;
return -random_range(0, ret, DISTRO_NORMAL);
}
Precisamos modificar o dano, certo? Então modificaremos o valor de retorno da função.
int32_t ret = (int32_t)std::floor(maxValue);
Precisamos editar de um modo que, a cada ponto na skill Fist Fighting, o jogador receba 20 de dano extra, certo? Para isso basta adicionar a seguinte linha abaixo:
ret += (player->getSkill(SKILL_FIST, SKILL_LEVEL) * 20);
Ficando assim:
int32_t ret = (int32_t)std::floor(maxValue); ret += (player->getSkill(SKILL_FIST, SKILL_LEVEL) * 20);
Você precisará fazer o mesmo procedimento para as funções que retornam o dano das armas de combate a distância, como bows e crossbows e armas mágicas, como wands e rods. Armas "melee" também possuem uma segunda função, responsável por retornar o dano elemental, como exemplo Fire Sword.
Como sou muito bonzinho, deixo abaixo o arquivo weapons.cpp.tar.gz com as modificações.
Basta substituir ele na pasta das sources de seu servidor, abrir o projeto no seu IDE de preferência e compilar. Lembre também de deletar qualquer pasta obj/
Editado Janeiro 11 por Oneshot
oneshot muito obrigado rep+, mas so tenho uma duvida, esse download ja esta com bow e tal? se não tiver, é o mesmo procedimento ? para deixar bow e crossbow e tal do mesmo jeito ?
Já está com todas modificações, melee, distance e wands e rods.
Movido para Pedidos e dúvidas resolvidos - Scripting
Editado Janeiro 11 por Oneshot




info
Grupo: Visconde
Registrado: 17/09/10
Posts: 252
Reputação: +9
istalar o q mano, o code q o kra pois???