Paguba Medie si Paguba Competentei
Salut! Ma intrebam care este formula pentru a determina valoarea pc, cand se cunoaste pgm si invers. Nu am analizat fenomenul foarte mult, dar ma gandesc la faptul ca fie este o formula si pentru un nr x% pgm exista doar un y% pc, sau se genereaza numere in jurul unei formule ca si cea mentionata si se alege o valoare generata printr-un randomiser. Multumesc anticipat!
Te rog sa respecti modelul data viitoare.
Paguba medie si competenta sunt definite in void CItemAddonManager::ApplyAddonTo in item_addon.cpp.
Pe scurt, paguba medie este setata la 0 si apoi se calculeaza in functie de ce paguba competenta iese pe arma.
Paguba competenta se incadreaza intre -30 si 30. Aici este toata formula de calcul:
E putin greu de inteles dar, gauss_random e folosit in loc de un random number generator pentru ca in programare e considerat 'mai accurate' decat un rng normal. (poti sa citesti pe net despre asta)
Ideea e ca se asigura mereu daca valoarea de la iSkillBonus e negativa aceasta o sa devina pozitiva, de asta -2 (cand iSkillBonus e negativ -> iNormalHitBonus devine pozitiv si vice-versa)
In general asta poate sa fie un sablon care poti sa-l modifici (functia de calcularea de paguba medie ultima e in plus ca sa fie accurate)
PMminim si PMmaxim sunt valori strict pozitive.
Paguba medie si competenta sunt definite in void CItemAddonManager::ApplyAddonTo in item_addon.cpp.
Pe scurt, paguba medie este setata la 0 si apoi se calculeaza in functie de ce paguba competenta iese pe arma.
Paguba competenta se incadreaza intre -30 si 30. Aici este toata formula de calcul:
Cod: Selectaţi tot
int iSkillBonus = MINMAX(-30, (int) (gauss_random(0, 5) + 0.5f), 30);
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);Ideea e ca se asigura mereu daca valoarea de la iSkillBonus e negativa aceasta o sa devina pozitiva, de asta -2 (cand iSkillBonus e negativ -> iNormalHitBonus devine pozitiv si vice-versa)
In general asta poate sa fie un sablon care poti sa-l modifici (functia de calcularea de paguba medie ultima e in plus ca sa fie accurate)
Cod: Selectaţi tot
int iSkillBonus = MINMAX(PCminim, (int) (gauss_random(0, 5) + 0.5f), PCmaxim);
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(PMminim, iNormalHitBonus, PMmaxim);- Pentru acest mesaj, Syron for the post:
- MasterWoeful
-
- Informaţie
-
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 26 vizitatori



