AK-KK SRC

Indította Radox, 2019-07-25, 07:33:29

Sziasztok ak,kk-t hol lehet be állítani forrásba, hogy mi legyen a maximum ?
Véletlennek azt nevezzük, amikor a számításaink kudarcot vallanak.

game/src/item_addon.cpp

void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)

2019-07-30, 22:33:22 #2 Utolsó szerkesztés: 2019-07-30, 22:35:41 Szerző: Pisti95
Növelt random AK-KK optoláskor

Server/SRC/item_addon.cpp

Így nézzen ki:

#include "stdafx.h"
#include "config.h"
#include "constants.h"
#include "utils.h"
#include "item.h"
#include "item_addon.h"

extern int minKK;
extern int maxKK;
extern int minAK;
extern int maxAK;

CItemAddonManager::CItemAddonManager()
{
}

CItemAddonManager::~CItemAddonManager()
{
}

void CItemAddonManager::ApplyAddonTo(int iAddonType, LPITEM pItem)
{
if (!pItem)
{
sys_err("ITEM pointer null");
return;
}

// TODO ŔĎ´Ü ÇϵĺÄÚµůŔ¸·Î ĆňŸ ˝şĹł Ľöġ şŻ°ć¸¸ °ćżě¸¸ ŔűżëąŢ°ÔÇŃ´Ů.

if (minKK>maxKK)
{
sys_err("item_addon: minKK [%d] nagyobb mint a maxKK [%d]", minKK, maxKK);
int bufferKK = minKK;
minKK = maxKK;
maxKK = bufferKK;
}

if (minAK == -32767)
minAK = (minKK * 2);

if (maxAK == 32767)
maxAK = (maxKK * 2);

if (minAK>maxAK)
{
sys_err("item_addon: minAK [%d] nagyobb mint a maxAK [%d]", minAK, maxAK);
int bufferAK = minAK;
minAK = maxAK;
maxAK = bufferAK;
}

int iSkillBonus = MINMAX(minKK, (int)(gauss_random(2, 30) + 2.5f), maxKK);
int iNormalHitBonus = 0;
if (abs(iSkillBonus) <= 20)
iNormalHitBonus = 2 * iSkillBonus + abs(number(1, 32) + number(1, 32)) + number(1, 32);
else
iNormalHitBonus = 2 * iSkillBonus + number(1, 10);

iNormalHitBonus = MINMAX(minAK, iNormalHitBonus, maxAK);

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





Server/SRC/config.cpp

Keres:

int gPlayerMaxLevel = 99;

Alá beilleszt:

int minKK = -32767;
int maxKK = 32767;
int minAK = -32767;
int maxAK = 32767;


Keres:

      TOKEN("max_level")

Alá beilleszt:

      TOKEN("min_kk")
{
str_to_number(minKK, value_string);


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


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


}


TOKEN("max_kk")
{
str_to_number(maxKK, value_string);


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


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


}


TOKEN("min_ak")
{
str_to_number(minAK, value_string);


minAK = MINMAX(-32767, minAK, 32766);


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


}


TOKEN("max_ak")
{
str_to_number(maxAK, value_string);


maxAK = MINMAX(-32767, maxAK, 32766);


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


}

      



Server/SRC/config.h

Keres:

extern int gPlayerMaxLevel;

Alá beilleszt:

extern int minKK;
extern int maxKK;
extern int minAK;
extern int maxAK;






Szerveren: channel-1-2-3-4 stb
CONFIG file:


MIN_KK: -30
MAX_KK: 50
MIN_AK: -30
MAX_AK: 100