Ir para conteúdo
  • 0

Script De Força


Snowsz

Pergunta

Bom eu queria pedir um script desse modo, o player tem o first skill né ?, então, eu quero por para ser impossivel upar o first skill, mas a cada 1 de first skill que o player consseguir ele ficara com +20 de hit, tipo, para aumentar o first skill eu quero um item, quando der use ele ganha +1 de first skill!

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

O one, e aquela formula de trocar o skill do player:

doPlayerAddSkill(cid, skill, amount, round)

Não funciona?

@Snowsz

Tem um modo de fazer isso, mais o jogador será deslogado, pode ser deste jeito?

Link para o comentário
Compartilhar em outros sites

  • 0

Smix como assim ? deslogado '-'

como funcionaria esse modo ?

 

 

 

@EDIT

queria fazer uma pequena alteraçãozinha, queria que a cada skill first, ele ganhace +5 de hp, e +5 de mana, mas claro sempre adicionando esse dano que eu pedi '-'

Editado por Snowsz
Link para o comentário
Compartilhar em outros sites

  • 0

Obrigado, slicer vlw ^^, agora so aguardo alguem poder fazer esse script para mim :(, eu sou scripter iniciante, '-', com ajuda de amigos melhorei um pouco, mas ainda não o suficiente para um script desse nivel.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu até pensei no creaturescript onStatsChange, mas é totalmente inviável, pois você precisaria registrar em todos os monstros do servidor.

 

Ou seja, só editando as fórmulas de dano.

 

Abraços.

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, é bastante simples.

 

Só procurar pelas funções que geram o dano da arma e adicionar um bônus pelo nível de Fist Fighting do jogador, por exemplo:

 


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);
}

 

Essa função acima é responsável por definir o dano aleatório das armas corpo-a-corpo, basta então adicionar um cálculo extra no retorno da função:

 

return -(ret + player->getSkill(SKILL_FIST, SKILL_LEVEL) * 20);

 

return -(random_range(0, ret, DISTRO_NORMAL) + player->getSkill(SKILL_FIST, SKILL_LEVEL) * 20;

 

No caso acima, adicionaria 20 (vinte) a mais de dano por nível da skill Fist Fighting na função de dano corpo-a-corpo.

Editado por Oneshot
Link para o comentário
Compartilhar em outros sites

  • 0

snows, isso vc modifica nas src, do seu tfs, se vc n tiver exixte vários src 0.3.6 e 0.4 aqui no fórum....basta procurar e fazer o q o Oneshot falo..abre a src com o dev e procura weapons.cpp, dps de edita, aperta ctrl+f9 se ajudei rep ++

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...