oguz53han

Yeni üye
14 May 2021
20
0
0
(34) İstanbul Anadolu
Merhaba, yaptığım oyunda ülke güvenliğini sağlamak amaçlı birkaç Variable kullandım. Bunlar, devriye, guvenlik, ozel polis, sorusturma polisi, ozel guvenlik, kıyafet teminati ve cevirme polisi. Bu variable ların alabileceği max değer 250.000 olarak belirledim. Yani her birine 250.000 bütçe verildiğinde toplam 2 milyonluk bir butce çıkıyor ortaya. Ve ülkede olan biten olayları görebilecekleri bir istatistik penceresi yaptım. Bu istatistik penceresinde cinayet adında bir variable var. Yapmak istediğim şey şu, cinayetin default değeri ülke nüfusunun yüzde 0.5 i ve bu oranın yukarıda saydığım variableların max. değere olan yüzdesi kadar cinayetin de bu yüzdeyle azalmasını istiyorum. Yani 2 milyonluk max değerin yarısı bir bütçe verdim mesela, cinayet oranının yüzde 50 azalması lazım. 2 milyonluk max değerin yüzde 80 ini verdim, cinayetin yüzde 80 oranında azalması lazım. Bunu blueprint node larında nasıl yapabilirim.

https://www.hizliresim.com/boxh616

https://www.hizliresim.com/hilzj7z
 
Eğer soruyu doğru anladıysam. CinayetOranı = AnlıkDeğerlerToplamı / MaxDeğerlerToplamı gibi gözüküyor. Bunun BP node larını yapmak aşırı basit olduğu için doğru anlayan birileri mutlaka gösterecektir. Yalnız böyle bir hesabı neden saniyede 100 lerce kere hesaplamak isteyebilirsin onu anlayamıyorum. Üstelik her bir işlem için int den float a dönüşüm de uyguluyorsun. Tick fonksiyonun bunun yeri olduğuna emin misin?
 
https://www.hizliresim.com/imjuiki - Polis Finansman ust sinir yazan variableda verilen değer, structdaki variableların hepsini 250 bin yapınca alacakları toplam değer. Variableların o anki değeri şu anda 1,832,000.
Yani Polis finansman ust sınırının %91 i. 

https://www.hizliresim.com/arfwf1x - Buradada nüfusun yüzde 5 ini alıyorum ve onu default cinayet sayısı olarak kullanmak istiyorum.

Şimdi Ülkenin Türkiye olduğunu farz edelim. 82,000,000'un yüzde 5i 410,000 eder. Örnek ülkede işlenen yıllık cinayet sayısı 410,000 olarak belirledim. Tam burada yapmak istediğim şey 410,000 sayısını %91 oranında azaltmak. 

https://www.hizliresim.com/nto0d57 - Burada verilen finansmanı arttırıp, azaltabiliyorum. Yani %91 sabit bir oran değil. Benim finansmana verdiğim miktara göre artıp azalıyor. Hepsi 250.000 olsaydı %100 olurdu mesela.

Event ticki Suç oranları yazan yerdeki sayıların finansmanı arttırdığın gibi kendini güncellemesi için kullanıyorum.



Edit

https://www.hizliresim.com/4ykfg28

Sorunu çözdüm. Ülkenin yüzde 5'ini toplam variablelardan gelen yüzdeyle çarpıp 100 e bölerek, cinayet oranının yüzde 91 ini almış oldum. Ve Default değerden çıkardım. Sonuçta yaklaşık 3 binlik bir şaşma oldu ama variable toplamlarını en üste çıkardığımda şaşma olmuyor 0 değerini veriyor. 

İntegerdan floata çarpım oranını 0,5 verebilmek için çevirdim hocam. 

Event tick konusunda eğer yerine kullanabileceğim başka bir event tavsiyen varsa alırım. Yardım etmeye çalıştığın için çok teşekkür ederim.
 
Eventi yada fonksiyonu kendin oluşturabilirsin. Tek yapman gereken finans değerinin değiştiği yerlerde oluşturduğun fonksiyonu çağırman. Yani finansmanı set ettiğin yerin bir adım sonrasında cinayet oranını set edecek fonksiyonu çağırman. Böylelikle her saniyede 60-120 kez matematik işlemi yapmaktan cpu yu kurtarırsın.