alcak0001

Cezalı Üye
6 Kas 2016
23
-4
0
(80) Osmaniye
Envanter sisteminde eşya agırlıgı diye bir ınteger oluşturduk eşyalara agırlık verdik. Bu eşyaların ağırlığını toplayarak 20'ye eşitleyecek ve 20 den sonra eşya almayacak. Bu sistemi nasıl yapabiliriz ?
 
alcak0001' Alıntı:
Envanter sisteminde eşya agırlıgı diye bir ınteger oluşturduk eşyalara agırlık verdik. Bu eşyaların ağırlığını toplayarak 20'ye eşitleyecek ve 20 den sonra eşya almayacak. Bu sistemi nasıl yapabiliriz ?

Benim şimdiye kadar öğrendiğim bilgiye göre yapacak olsaydım

Taşıma kapasitesi(integer) ve kapasite dolu(boolean) oluştururdum ve bir eşya aldığında o eşyanın ağırlığı kadar taşıma kapasitesine eklerdim.Mesela bir taşı aldığında önce kapasite dolu adlı değişkeni kontrol eder eğer true ise alır ve taşıma kapasitesine 2 eklenir.Taşıma kapasitesi 20'yi geçince kapasite doluyu aktif eder.Yanlış varsa affola çok da uzman değilim.
 
supernova2132' Alıntı:
alcak0001' Alıntı:
Envanter sisteminde eşya agırlıgı diye bir ınteger oluşturduk eşyalara agırlık verdik. Bu eşyaların ağırlığını toplayarak 20'ye eşitleyecek ve 20 den sonra eşya almayacak. Bu sistemi nasıl yapabiliriz ?

Benim şimdiye kadar öğrendiğim bilgiye göre yapacak olsaydım

Taşıma kapasitesi(integer) ve kapasite dolu(boolean) oluştururdum ve bir eşya aldığında o eşyanın ağırlığı kadar taşıma kapasitesine eklerdim.Mesela bir taşı aldığında önce kapasite dolu adlı değişkeni kontrol eder eğer true ise alır ve taşıma kapasitesine 2 eklenir.Taşıma kapasitesi 20'yi geçince kapasite doluyu aktif eder.Yanlış varsa affola çok da uzman değilim.
Teşekkür edrim ama benim şimdilik geçici olarak ınteger sayısını saklamam lazım nasıl yapıldıgını bilen varsa acıklarsa sevinirim
 
Şöyle ki eğer linetrace yi f tuşu ile gönderip yerden nesneyi alıyorsan f tuşundan hemen sonra bir for each loop koyup oluşturduğun envanter structure sindeki tüm ağırlıkları toplayıp sonrasına bir branch ekleyeceksin diceksinki bu toplam büyükse 20 den hiçbişe yapmıcak. O toplamı da bir değişken içinde tutabilir, her f tuşuna basınca sıfırlar tekrar bu işlemi yaparsın.
 
Benim önerim şu şekilde;

Bazı değişkenleri yada sabitleri(Buradaki genel karşılaştırılması gereken toplam ağırlık'tır) gameinstance blueprint'i içinde tutmak. Level(Map) atladıkça da oyun boyunca bu değişkenleri gameinstance aracılığıyla mapler arası taşıyabiliriz.

Örneğin gameinstance blueprint'inde Envantermaxagirlik (Default 20) ve Envanteractuelagirlik(Default 0) adında birer integer kodlayıp.

Envantere aldığınız her mesh için ise bir actor blueprint oluşturup; (Bunu yapmamın nedeni o mesh'i actor haline getirdikten sonra artık bir çok şeye erişimimizin olması. Örneğin actor blueprint'in içerisine "actoragirlik" adında bir integer değişken atayabilirsiniz.) Yerden kılıç aldığımızı farz edelim. Kılıç'ın actor blueprint'ine ise actoragirlik adında bir integer tanımlardım. Actor içerisinde gameinstance blueprint'ine cast ederek Envanteractuelagirlik=Envanteractuelagirlik+actoragirlik sonucunu verecek bir custom event oluşturabiliriz.

Artık bir çok veri elimizde olduğuna göre; örneğin f tuşuna basıp o actor'ü envantere alma ile ilgili trigger'ı tetiklediğimizde gameinstance blueprint'imizdeki Envantermaxagirlik ile custom event'deki Envanteractuelagirlik'ı compare integer yardımıyla kontrol edip sonuc 20 veya daha az ise actor'ü envantere katma ile ilgli işlemleri yaptırabiliriz.

Gecenin bu vaktinde eksik veya yanlış anlatım yapmış olabilirim. Şimdiden eksiklerim için affediniz.

Ama işin mantığının bu yönde olması gerektiğini düşünüyorum.

İyi çalışmalar dileklerimle,
 
nurisural' Alıntı:
Benim önerim şu şekilde;

Bazı değişkenleri yada sabitleri(Buradaki genel karşılaştırılması gereken toplam ağırlık'tır) gameinstance blueprint'i içinde tutmak. Level(Map) atladıkça da oyun boyunca bu değişkenleri gameinstance aracılığıyla mapler arası taşıyabiliriz.

Örneğin gameinstance blueprint'inde Envantermaxagirlik (Default 20) ve Envanteractuelagirlik(Default 0) adında birer integer kodlayıp.

Envantere aldığınız her mesh için ise bir actor blueprint oluşturup; (Bunu yapmamın nedeni o mesh'i actor haline getirdikten sonra artık bir çok şeye erişimimizin olması. Örneğin actor blueprint'in içerisine "actoragirlik" adında bir integer değişken atayabilirsiniz.) Yerden kılıç aldığımızı farz edelim. Kılıç'ın actor blueprint'ine ise actoragirlik adında bir integer tanımlardım. Actor içerisinde gameinstance blueprint'ine cast ederek Envanteractuelagirlik=Envanteractuelagirlik+actoragirlik sonucunu verecek bir custom event oluşturabiliriz.

Artık bir çok veri elimizde olduğuna göre; örneğin f tuşuna basıp o actor'ü envantere alma ile ilgili trigger'ı tetiklediğimizde gameinstance blueprint'imizdeki Envantermaxagirlik ile custom event'deki Envanteractuelagirlik'ı compare integer yardımıyla kontrol edip sonuc 20 veya daha az ise actor'ü envantere katma ile ilgli işlemleri yaptırabiliriz.

Gecenin bu vaktinde eksik veya yanlış anlatım yapmış olabilirim. Şimdiden eksiklerim için affediniz.

Ama işin mantığının bu yönde olması gerektiğini düşünüyorum.

İyi çalışmalar dileklerimle,

Teşekkür edrim cevaplarınız için
 
Belki bu sistem sorununa yardımcı olabilir.Bi dene istersen.Kendine göre kişiselleştirebilirsin.

qjWaVR.png