Postado Julho 28, 2021 3 anos Então galera, botei os códigos tudo certinho e copilei. porem ao usar 2 staff os danos não são somados, fica saindo cada uma o seu dano. Alguém pra da uma solução pf Queria que ao usasse as duas, os danos das duas fossem somados. Tfs 0.4 Citar Vá em player.ccp e procure por: ret = RET_CANONLYUSEONEWEAPON; Você ira encontrar dois "ret = RET_CANONLYUSEONEWEAPON;", substitua por: ret = RET_NOERROR; Após, localize weapons.h e procure por: const Weapon* getWeapon(const Item* item) const; Embaixo você coloca: static int32_t getAttackLeft; static int32_t getAttackRigth; static int32_t getLeftExtraAttack; static int32_t getRigthExtraAttack; Depois, localize weapons.ccp e procure por: 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(); Substitua por: int32_t WeaponMelee::getWeaponDamage(const Player* player, const Creature* target, const Item* item, bool maxDamage /*= false*/) const { int32_t getAttackLeft; int32_t getAttackRigth; int32_t getLeftExtraAttack; int32_t getRigthExtraAttack; getAttackLeft = 0; getAttackRigth = 0; getLeftExtraAttack = 0; getRigthExtraAttack = 0; if (getAttackLeft == 0) { if (player->getInventoryItem(SLOT_LEFT) != NULL) { getAttackLeft = player->getInventoryItem(SLOT_LEFT)->getAttack(); getLeftExtraAttack = player->getInventoryItem(SLOT_LEFT)->getExtraAttack(); } else if (player->getInventoryItem(SLOT_LEFT) == NULL) { getAttackLeft = 0; getLeftExtraAttack = 0; } } if (getAttackRigth == 0) { if (player->getInventoryItem(SLOT_RIGHT) != NULL) { getAttackRigth = player->getInventoryItem(SLOT_RIGHT)->getAttack(); getRigthExtraAttack = player->getInventoryItem(SLOT_RIGHT)->getExtraAttack(); } else if (player->getInventoryItem(SLOT_RIGHT) == NULL) { getAttackRigth = 0; getRigthExtraAttack = 0; } } int32_t attackValue = std::max((int32_t)0, (int32_t)((getAttackLeft + getLeftExtraAttack + getAttackRigth + getRigthExtraAttack) - elementDamage)); int32_t attackSkill = player->getWeaponSkill(item); float attackFactor = player->getAttackFactor(); Citar
Postado Agosto 1, 2021 3 anos O padrão de dual wielding é exatamente esse. Por exemplo: Se com 1 arma o player da 1 dano a cada 4 segundos, usando 2 armas dará 1 dano a cada 2 segundos, sendo cada dano respectivo à uma arma. Para somar o dano das duas armas em um único hit você teria que modificar o código da source e toda a mecânica do dual wield. Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Agosto 2, 2021 3 anos Autor 23 horas atrás, luangop disse: O padrão de dual wielding é exatamente esse. Por exemplo: Se com 1 arma o player da 1 dano a cada 4 segundos, usando 2 armas dará 1 dano a cada 2 segundos, sendo cada dano respectivo à uma arma. Para somar o dano das duas armas em um único hit você teria que modificar o código da source e toda a mecânica do dual wield. Tendi Sera q alguem manja de fazer um script pra que nao possa usar 2 armas mesmo com id ( forçando o player usar 2 armas diferente ) Se alguem puder ajudar, fico muito grato !!!!
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.