Kanka bak şimdi burada şöyle bir kod dönmüş :
beceri hasarının minimun ve maximum değerini normal ayarlamış. işte en az -30 -> en fazla +30 diye.
Ortalama hasarı da beceri hasarına bağlamış.
yani beceri hasarı ve ortalama hasar da aynı anda pozitif sayı olarak dönmesin diye uğraşmış.
sana şöyle tercüme edeyim kankam :
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);
Bu senin yazdığın kod şimdi sana tercümesini yapacağım.
öncelikle terimleri anlatayım :
abs = Mutlak değer (Bir sayının sıfıra olan uzaklığını almaya yarıyan kod.) örnek : abs(-20) = 20 (Yani -20 sayısının sıfıra olan uzaklığı 20'dir.)
* = çarpma işareti
+ = toplama işareti(Bunları biliyorsun zaten.)
Bu da tercümesi :
int iSkillBonus (Beceri hasarı değeri) = Minmax(En az - En çok) (-30 (en az -30 gelecek), (gauss_random(0, 5) (Burayı bilmiyorum.) , 30(En fazla 30 gelecek.));
int iNormalHitBonus = 0; (Bu ortalama hasar değeri, şimdilik 0 olarak tanımlamış.)
if (Eğer) (abs(iSkillBonus) <= 20) (Silaha gelen beceri hasarının sıfıra olan uzaklığı 20 sayısından küçük veya eşitse)
iNormalHitBonus = -2 * iSkillBonus + abs(number(-8, 8) + number(-8, 8)) + number(1, 4); (Ortalama hasar = -2 * Silaha gelen beceri hasarı + (-8 ile 8 arasında rastgele seçilen bir sayının 0'a olan uzaklığı) + (-8 ile 8 arasında rastgele bir sayı) + (1 ile 4 arası rastgele bir sayı));
else (eğer değilse)
iNormalHitBonus = -2 * iSkillBonus + number(1, 5); (Ortalama hasar = -2 * (Silaha gelen beceri hasarı) + (1 ile 5 arası rastgele bir sayı))
Örnek verecek olursak :
Silahına -20 Beceri hasarı geldi diyelim :
-20nin mutlak değeri kaç (yani sıfıra olan uzaklığı) : 20
20 sayısı 20 sayısına eşit veya küçük mü? -evet.
o zaman if bloğundaki formülü uygulayacağız.
Ortalama hasar = -2 x -20(Silaha gelen beceri hasarı) + 5 (-8 ile 8 arasında rastgele bir sayı seçtim ve sıfıra olan uzaklığını buldum.) + 5 (-8 ile 8 arası rastgele bir sayı seçtim.) + 3 (1 ile 4 arası bir sayı seçtim) = -2 x -20 + 5 + 5 + 3 = 53 (Ortalama hasarınız) gördüğünüz gibi -20 beceri geldi karşılığında +53 gibi pozitif bir değer ortalama hasarı geldi.
Eğer silahıma +20 beceri hasarı gelseydi :
+20 sayısının mutlak değeri kaç (yani 0'a olan uzaklığı) ? = 20
20 sayısı 20 sayısına eşit veya küçük mü? -evet.
o zaman yine if bloğunu uygulayacağız.
Ortalama hasar = -2 x 20(gelen beceri hasarı) + 3 (-8, 8 arası rastgele bir sayının mutlak değeri) + 3 (yine -8, 8 arası rastgele bir sayı) + 2(1,4 arası bir sayı) = -2 x 20 + 3 + 3 + 2 = -32 (Ortalama hasarınız.) Gördüğünüz gibi 20 Beceri gelen silaha bu formülle -32 gibi negatif bir değer ortalama hasar geldi.
Buradaki kod bloğu hem beceri ve ortalama hasarının en az ve en çok değerini belirliyor
hem de Beceri hasarı negatif (-) gelirse Ortalama hasarını pozitif (+) çıkarttırıyor.
Beceri hasarı pozitif (+) gelirse ortalama hasarını negatif(-) çıkarttırıyor.
Umarım anlamışsındır
)