Jump to content

[Config] Minimo E Maximo Dm E Dh


tierrilopes
 Share

Recommended Posts

Serve para definir o valor mínimo e máximo de DM e DH a sair nas armas.

Ir até ao ficheiro config.h

Procurar por:

extern int VIEW_BONUS_RANGE;

Adicionar o seguinte por baixo:
 

extern int minDanoHabilidade;

extern int maxDanoHabilidade;

extern int minDanoMedio;

extern int maxDanoMedio;

Ir até ao ficheiro config.cpp

Procurar por:

int VIEW_BONUS_RANGE = 500;

Adicionar o seguinte por baixo:
 

int minDanoHabilidade = -30;

int maxDanoHabilidade = 30;

int minDanoMedio = -30;

int maxDanoMedio = 30;

Procurar por:
 

TOKEN("gold_drop_time") {

str_to_number(gold_drop_time, value_string);

gold_drop_time = MINMAX(0, gold_drop_time, 32767);

fprintf(stderr, "GOLD_DROP_TIME: %d\n", gold_drop_time);

}

Adicionar o seguinte por baixo:
 

TOKEN("minDanoHabilidade") {

str_to_number(minDanoHabilidade, value_string);

minDanoHabilidade = MINMAX(-32767, minDanoHabilidade, 32767);

fprintf(stderr, "minDanoHabilidade: %d\n", minDanoHabilidade);

}

TOKEN("maxDanoHabilidade") {

str_to_number(maxDanoHabilidade, value_string);

maxDanoHabilidade = MINMAX(-32767, maxDanoHabilidade, 32767);

fprintf(stderr, "maxDanoHabilidade: %d\n", maxDanoHabilidade);

}

TOKEN("minDanoMedio") {

str_to_number(minDanoMedio, value_string);

minDanoMedio = MINMAX(-32767, minDanoMedio, 32767);

fprintf(stderr, "minDanoMedio: %d\n", minDanoMedio);

}

TOKEN("maxDanoMedio") {

str_to_number(maxDanoMedio, value_string);

maxDanoMedio = MINMAX(-32767, maxDanoMedio, 32767);

fprintf(stderr, "maxDanoMedio: %d\n", maxDanoMedio);

}

Substituir o item_addon.cpp pelo do anexo, ou colocar o seguinte conteúdo:

Spoiler

#include "stdafx.h"
#include "config.h"
#include "constants.h"
#include "utils.h"
#include "item.h"
#include "item_addon.h"
extern int minDanoHabilidade;
extern int maxDanoHabilidade;
extern int minDanoMedio;
extern int maxDanoMedio;
CItemAddonManager::CItemAddonManager()
{
}
CItemAddonManager::~CItemAddonManager()
{
}
void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
{
    if (!pItem)
    {
        sys_err("ITEM pointer null");
        return;
    }
    if (minDanoHabilidade>maxDanoHabilidade)
    {
        sys_err("item_addon: minDanoHabilidade [%d] é maior que maxDanoHabilidade [%d]", minDanoHabilidade, maxDanoHabilidade);
        int bufferFKS = minDanoHabilidade;
        minDanoHabilidade = maxDanoHabilidade;
        maxDanoHabilidade = bufferFKS;
    }
    if(minDanoMedio==32767) minDanoMedio = (minDanoHabilidade*2);
    if(maxDanoMedio==32767) maxDanoMedio = (maxDanoHabilidade*2);
    if (minDanoMedio>maxDanoMedio)
    {
        sys_err("item_addon: minDanoMedio [%d] é maior que maxDanoMedio [%d]", minDanoMedio, maxDanoMedio);
        int bufferDSS = minDanoMedio;
        minDanoMedio = maxDanoMedio;
        maxDanoMedio = bufferDSS;
    }
    int iSkillBonus = MINMAX(minDanoHabilidade, (int) (gauss_random(0, 5) + 0.5f), maxDanoHabilidade);
    int iNormalHitBonus = 0;
    if (abs(iSkillBonus) <= 20) iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4);
    else iNormalHitBonus = -2 * iSkillBonus + number(1, 5);
    iNormalHitBonus = MINMAX(minDanoMedio, iNormalHitBonus, maxDanoMedio);
    pItem->RemoveAttributeType(APPLY_SKILL_DAMAGE_BONUS);
    pItem->RemoveAttributeType(APPLY_NORMAL_HIT_DAMAGE_BONUS);
    pItem->AddAttribute(APPLY_NORMAL_HIT_DAMAGE_BONUS, iNormalHitBonus);
    pItem->AddAttribute(APPLY_SKILL_DAMAGE_BONUS, iSkillBonus);
}

 

Adicionar o seguinte aos ficheiros CONFIG dos canais:

minDanoMedio: Valor

maxDanoMedio: Valor

minDanoHabilidade: Valor

maxDanoHabilidade: Valor

Onde diz Valor poderá ser um número desde -32768 até 32767

 

 

item_addon.cpp

item_addon.cpp

  • Like 3
  • Haha 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...

As probabilidades acho que são alteradas aqui:

 

int iSkillBonus = MINMAX(minDanoHabilidade, (int) (gauss_random(0, 5) + 0.5f), maxDanoHabilidade);

int iNormalHitBonus = 0;

if (abs(iSkillBonus) <= 20)

iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4);

else

iNormalHitBonus = -2 * iSkillBonus + number(1, 5);

 

No gauss_random e nos number...

 

Mas não tenho a certeza... Tenta e diz o resultado sff...

Link to comment
Share on other sites

  • 1 year later...
  • 4 months later...
  • 7 months later...
  • 4 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...