Filo avukatımızın ikinci büyük konusuna tekrar hoş geldiniz.
Buradaki mevcut nesneler ve örneklerle çalışıyor.
Ancak son birkaç bölümde sınıf metotlarını nasıl manipüle edebileceğimizi ve yeni bir örneği nasıl
oluşturabileceğimizi gördük.
Ancak şu anda görmediğimiz şey, mevcut nesneler ve örneklerle nasıl çalışabileceğimizdir.
Bu nedenle aşağıdaki slayta bir göz atalım.
Burada uzay pingi uygulamamızı düşük kalitede kullanıyoruz diyelim.
İşte buradaki, artık bizim uzay ping uygulamamız ve içinde bir sürü nesnemiz var.
Örneğin, bu nesne sözcüğümüz var, şuradaki.
Bu artık tüm grafik görüntülerin bu uzaylılara, bu uzaylı atışlarına, bu oyuncuya, oyuncu atışına
ve daha fazlasına yerleştirildiği nesnedir.
Eğer özel bir nesneden, örneğin şuradaki kuştan bahsediyorsanız, o zaman bir örnekten
bahsediyoruz demektir.
Yani bu dünya örneği.
Şu anda yalnızca bir dünya nesnesi mevcut, o da bu örnek.
Ve bunda örneğin bir kuş, bir oyuncu, madeni paralar ve daha fazlası var.
Burada bazı oyuncu örneklerimiz var ve bunda bazı canlı skorlar ve daha fazlası var.
Bir de şurada bir uzaylı örneği var.
Son birkaç bölümde, bu uygulama üzerinde nasıl yeni nesneler oluşturabileceğimizi gördük, ancak
mevcut olanları değiştiremiyoruz.
Ve bu şu anda öğreneceğimiz bir şey çünkü oyunlarla oynamak ya da manipüle etmek istiyorsanız,
sadece bunu yapmak için izniniz varsa, o zaman mevcut nesneler üzerinde çalışmanız gerekir çünkü
mevcut olanların değerlerini artırmak yerine tamamen yeni bir oyuncu nesnesi oluşturmak mantıklı değildir
ya da çok daha zordur.
Pekala, şimdi Ubuntu sanal makinesine geçelim ve bunu nasıl yapabileceğimize bakalım.
Bunun şekli biraz farklıdır, ancak bunu birkaç dakika içinde öğreneceğiz.
Bu yüzden, gidelim.
Ubuntu sanal makinesine geri dönelim.
Tamam, işte Ubuntu sanal makinesine geri döndük.
Şimdi de uygulama kodumuza bir göz atalım.
Uygulamalar içinde bu uygulamayı ücretsiz olarak çalıştırabiliyoruz ve bu uygulamayı da Chegg
School ile açıyoruz.
Bu arada, eğer son videoları izlemediyseniz, bu uygulamayı da bu bölümün eki olarak burada
bulabilirsiniz, eğer izlemediyseniz, kesinlikle sorun değil çünkü burada yeni bir bölüm başlatıyoruz.
Ama yine de bunu yapmanızı şiddetle tavsiye ederim çünkü aksi takdirde özgürlüğün sadece tek bir kısmını öğrenirsiniz.
Ve evet, Rita ile çalışmak ya da özgürlükten en iyi şekilde yararlanmak için üç yolu da zaten bilmemiz
gerekiyor.
Tamam, işte bu uygulamaya geri döndük ve com uygulaması içinde free to func'a gidiyoruz,
şimdi bu oyuncu nesnesine sahibiz, bu oyuncu sınıfı şurada.
Pekâlâ, bu oyuncu sınıfı.
Şimdi akıllı telefona geri dönelim.
İşte burada ve bu uygulamayı açalım.
İşte bu muhteşem simge burada.
Tamam.
İşte şimdi bu konuda daha iyi bir görüş elde etmek için elimizde.
Bunu kopyalayalım ve burada yeni bir dosya, yeni bir Visual Studio kod dosyası oluşturalım.
Buraya yapıştırıyoruz ve Java sözdizimini seçiyoruz.
Tamam.
Akıllı telefonu sağ tarafa koyalım ve ben de grafik tableti çıkarıp buna bir göz atayım.
Tamam.
Sol üstte oyuncu sınıfımız ve şurada da bu sınıfımız var.
Ve bu da bizim klas oyuncumuz.
Bu bizim planımız genellikle oyuncu ve bunun yaşamları, gücü ve bazı yöntemleri var.
Şimdi bir nesneden bahsediyorsanız, burada yeni bir oyuncu nesnesi oluşturmaktan bahsediyoruz.
Yani bu, aşağıdaki yeni oyuncu gibi görünecektir.
Şimdi burada yeni bir oyuncu nesnesi oluşturuyoruz.
Ve eğer bir örnekten bahsediyorsak, somut bir oyuncu nesnesinden bahsediyoruz demektir,
örneğin buradaki.
Oyuncu.
P'de. L. Bir.
Yani PL1 artık bizim oyuncu nesnemiz ve buradaki de bu.
Bu bizim örneğimiz ve bu da PL bir örneği.
Yeni bir tane oluşturmuş olsaydınız, örneğin, bunu yeşil renkte yapalım, o zaman şimdi
iki örneğimiz var ve bu birinci örnek ve bu da ikinci örnek, buradaki.
Yani PL ikisi buradaki oyunla bağlantılı olmayacaktı.
Bu oyuncu nesnesi orada olacaktır, ancak yalnızca bellekte olacaktır.
Bu, buradaki tüm uygulamada mevcut değildir.
Örneğin, şu şekilde görünecektir.
İşte burada PL ikimiz var.
Ama bu oyunla bağlantılı değil.
Dolayısıyla bu oyuncu nesnesi şu anda bizim için kesinlikle işe yaramaz.
Tamam.
Bunlar zaten bildiğimiz şeyler.
Şimdi, mevcut bir nesneyle nasıl çalışabileceğimize bir göz atalım, böylece buradaki gibi yeni bir
nesne oluşturmayız.
Şimdi buradaki mevcut örnekle çalışıyoruz.
Beş olduğu söylenen bu örneğin ömrünü örneğin 100'e çıkarmak istiyoruz.
Şimdi bunu özgürlük içinde nasıl yapabileceğimizi bulalım, tamam mı?
Özgürlük içinde yapmamız gerekenler şunlardır.
Bu örneği orada tanımlamak için uygulama belleğini taramamız gerekir.
Yani bu uygulama belleğine ve örneğin şuradaki belleğe sahipsek, bu artık tüm bu uygulamanın
belleğidir.
Sonra bu bellek içinde bu oyuncu örneğine sahip oluruz.
Bu nedenle, bu örnekte bunu bulana kadar bu belleği burada taramamız ve ardından ona erişmemiz
gerekir.
Dolayısıyla, bu değere erişerek, örneğin şurada yeni bir LTS değerine sahip olmayı seçebiliriz.
Bu nesnenin veya bu örneğin yaşam süresi beş olarak ayarlanmıştır ve şimdi bunu aşağıdaki şekilde yeniden yazabiliriz.
Bu örnekten yola çıkarak hayatları, değerleri değiştirmek ve 100 olmak istediğimizi söyleyebiliriz.
Ve bunu yaparak, buradaki bu nesnenin, bu oyuncu nesnesinin yaşam süresi 100 olarak güncellenecektir.
Bu, mevcut bir örneği tanımlamak ve ardından ona erişmek için kesinlikle karmaşık bir tarama ve bellek gibi geliyor.
Kesinlikle çılgınca, ama özgürlük içinde değil.
Frida bu görevi yerine getirmede kesinlikle harika ve tek yapmamız gereken yeni bir kalıba girmemiz.
Ancak bu da o kadar karmaşık değil.
Bu nedenle, doğrudan şuradaki ile başlayalım.
Tamam mı?
Şimdi bunu, bu seyahat kodunu kapatalım ve şimdi yeni bir dosya açalım ve bunu şimdi mevcut örnek
nokta izi olarak kaydedelim.
Pekala, bir kez daha Java kodu ile çalışmaya devam ediyoruz.
Ekrana bakacak olursanız, buradaki Java kodudur.
Bu nedenle, Frida'ya JVM'ye bağlanmasını söylememiz gerekir.
Bu durum şu anda değiştirilmemiştir.
Yani Java Dot gerçekleştirir.
Şimdi burada anonim fonksiyonumuzu sağlıyoruz ve bu da fonksiyonumuzun gövdesi.
Kodumuz şimdi mevcut bir örnekle ilgili bir uygulama belleğini nasıl tarayabiliriz?
Peki bu nasıl yapılıyor?
Ve eğer buna bir cevabınız yoksa, o zaman iyi bir başlangıç noktası dokümantasyondur.
Eğer buna bir göz atarsanız.
Burada köpeklerin içinde var.
Şimdi bu JavaScript'i şuradakinin içine yerleştirdik.
Buna tıklarsak, biraz aşağı kaydırabiliriz ve burada şimdi tüm şeyleri bulabiliriz.
Bizim için ilginç olan şey, enstrümantasyon.
Burada Java ile enstrümantasyondan bahsediyoruz.
Java kodu ile çalışmaya ilişkin tüm ücretsiz kodlar bu kadardır.
Eğer buradakine tıklarsak, şimdi tüm bu şeylere sahibiz, bir sürü başka şey var.
Örneğin, makine arasında Java'nın mevcut olup olmadığını, bir Android sürümünüz olup olmadığını veya Android sürümünün ne olduğunu
kontrol edebiliriz.
Özür dilerim.
Bu taraftan.
Elbette bir Android sürümümüz ve numaralandırılmış yüklü sınıflarımız ve bunun gibi şeylerimiz var.
Ancak şimdi sadece aşağıdakilerle ilgileniyoruz.
Bir bakalım.
Seçmek için şuradaki.
Ve açıklama da tam olarak yapmak istediğimiz şey.
Bu, sınıf adının yaşam örneğini numaralandırıyor.
İşte bu bizim ilk parametre sınıfımız.
Java yığınını callbacks'in bir örnek olduğu yerde tarayarak, şimdi eşleşme ve tamamlanma üzerine iki callback'e sahip olduğumuzu
belirtiyoruz.
Bunlar da burada uygulamamız gereken iki geri çağırma.
Merak etmeyin, bunu birlikte yapacağız.
Kulağa öyle gelse bile o kadar da karmaşık değil.
Ama bütün bu işleri Freida yapıyor.
Frieda, Java yığınını tarayarak bu sınıf referansını veya bu sınıf referansının mevcut örneklerini
arıyor.
Ve sonra Frieda tarafından bulunan ya da bulunmayan örneğe sahip olan match üzerindeki geri aramalara geri dönüyoruz.
Duruma göre değişir.
Mevcut bir örnek varsa ve bunu tamamladıysak, bu bize tüm örnekler numaralandırıldığında
çağrıldığını söyler.
Yani bu sadece tamam, şu anda buradakinde işim bitti, bu geri arama ve bu sihrin gerçekleştiği
yer.
Bu da mevcut örneğimizi, yani oyuncu nesnemizi bulacaktır.
Ve bu da şuradaki.
Ve sonra bununla çalışabiliriz.
Kesinlikle harika.
Değil mi?
Bunu gerçek koda nasıl uygulayabileceğimizi görelim.
Bunu kopyalayıp yapıştıralım.
Bunu kopyalıyoruz.
Sonra da buraya yapıştırıyoruz.
Tamam.
Yapmamız gereken ilk şey bir sınıf adı uygulamaktır.
Ve şu anda bu, sınıf referansı değil.
Bu sadece dizenin adı ve biçimidir.
Ticaret x kodumuza geri dönersek, belki bunu sağ tarafa koyabiliriz.
İşte burada.
Tek yapmamız gereken sınıf adını bir dize biçiminde almaktır ve sınıf adını buradaki
paket adını kullanarak alabiliriz.
Yani burada bu sınıf adını değil, oyuncu sınıfını sağlamamız gerekiyor.
Bu da tanımlamak istediğimiz nesne veya tanımlamak istediğimiz örnektir.
Tamam.
İlk bölüm tamamlandı.
İnanılmaz.
Şimdi, geri aramaları görelim.
Bu biraz daha karmaşık ama o kadar da değil.
Biraz pratik yaparsanız, bu giderek daha kolay hale gelecektir.
Tamam.
Geri aramaları uygulamak için önce bunları köşeli parantezler içine almamız gerekir.
O zaman şimdi enter tuşuna basıyorum.
Tamam.
Ve şimdi bu iki geri çağırmayı tanımlamamız gerekiyor.
İlki eşleşme üzerine.
Bir göz atalım.
Maçta mıydı?
Evet.
Maçta.
Ve biz bundan bir örnek sağlıyoruz ya da elde ediyoruz.
Böylece bir eşleşme elde ettik ve şimdi yeni bir anonim fonksiyon tanımlamamız gerekiyor.
Yani bu, bu örneği burada bulduğumuzda çağrılan işlevdir.
Şimdi bu bizim fonksiyonumuz ve bunun parametre olarak bir örneği var.
Bulunan örnek budur.
Tamam.
Bu da bizim eşsiz işlevimizdir.
Bundan sonra ikinci geri çağırmayı uygulamamız gerekiyor.
Evet.
Yani burada bir on complete var ve bu, tüm örnekler numaralandırıldığında çağrılıyor.
Tamam.
Bu yüzden buradakini kullanıyoruz ve her iki geri aramayı da buradaki virgülle ayırıyoruz.
Dolayısıyla, ilk geri aramayı yaptıktan sonra, şimdi ikinci geri aramamızı eşleşme üzerine yapıyoruz.
Bu da yine anonim bir fonksiyon ve işte karşınızda.
Bu artık bizim yeni yapımız.
Bellekteki bir örneği tanımlamak istiyorsanız, bu bizim için zor işi yapıyor, Frieda'ya söylememiz
gereken tek şey, burada bir örnek bulursan, şimdi bir geri arama uyguluyoruz.
Yani kod bu.
Bir örnek bulunursa ve burada Frieda'nın taramayı ne zaman bitirdiğini bilmek için kodumuz
var.
Bu da şu anda bizim tarafımızdan yapılmakta olan kısımdır.
Tamam.
Şimdi kodlamaya geri dönelim ve görelim.
Eşleşmeyen eşleşme geri çağrısı içinde bu örneği alıyoruz.
Şimdi bunu basitçe yazdıralım.
Haydi o zaman.
Çıktısını alalım.
Bir örnek bulundu.
Oyuncu sınıfının bir örneğinin bulunduğunu gönderir.
Ve sonra, örneğin, bu örneği sağlıyoruz.
Bunu biraz daha genişletmeme izin verin.
İşte bu kadar.
Tamam.
Şimdi, oyunumuzda bunu yazdırarak her bir örnek bulunduğunda.
Bunda mı?
Hayır, bu.
Sadece bir örneğimiz olmalı.
İşte bu.
Sadece bir oyuncu nesnesi oluşturuyoruz ve bu nedenle bir oyuncu örneğimiz var.
Eğer buna tıklarsanız ve bu da bazı hayatları kaybediyorsa.
İşte bu kadar.
Biraz bacağımı unuttum ama yine de hayattayız.
Tek bir hayatın var.
Şu anda oldukça yakındı.
İşte bu tarama görevini bitirdik ve bu sadece biraz tamam, işim bitti.
Ve bu nedenle sadece bir hata ayıklama ifadesi yazdırıyoruz.
Ve Friedmans oyuncu örnekleri için uygulama belleğini taramayı bitirdi ve bu artık bizim kodumuz.
Şimdi bunu hızlıca özetleyelim.
Ve önce Java kullanmamız gerekiyor.
Bu sefer seç.
Bu, Java nokta kullanımımızla ilgili olarak farklıdır.
Şimdi uygulama belleğini ve buradakini belirli bir sınıf için tarıyoruz.
Bu yüzden, bellekteki tüm bu örnekleri tanımlamak için oyuncuyu bulmak için com app hacking free için tarama yapıyoruz.
Demek istediğim, özgür teknolojinin bunu sadece bu çizgilerle yapabilmesi kesinlikle şaşırtıcı, değil mi?
Kesinlikle.
Daha sonra eşleşme üzerine iki geri çağırma tanımlamamız gerekir.
Bir örnek bulunduysa, kodumuzu bu örneğe uyguluyoruz ve bu henüz bu görev tamamlandıysa tamamlandı
ve hepsi bu, mevcut bir örnek için uygulama belleğini nasıl tarayabileceğimiz ve bununla
nasıl çalışabileceğimizdir.
Bu nedenle, ücretsiz sunucuyu başlatalım ve bunun gerçekten işe yarayıp yaramadığını görelim.
Bu yüzden akıllı telefona buradan bağlanıyoruz.
Kök ayrıcalıklarını kazanıyoruz ve ardından yerel on veriye giriyoruz ve sunucuyu serbest bırakmaya başlıyoruz.
Tamam.
Ve bu şimdi arka planda çalışıyor.
Şimdi açalım.
Yeni terminalimize gelin ve bu sürece ücretsiz bağlanın.
Şimdi bu sürece bağlandık ve ADB logcat için yeni bir terminal de çıkaralım.
Pekala, şimdi bu kodu alalım ve içine koyalım.
Burada bunu gerçekleştiriyoruz ve ardından arka planda sihir gerçekleşiyor.
İşte bu kadar.
Kesinlikle harika.
Bakalım.
Hadi şunu açalım.
Oyuncu sınıfının bir örneği bulundu ve burada şimdi bu nesneye bir referansımız var.
Şaşırtıcı ve daha sonra oyuncu örnekleri için bu uygulama belleğini taramayı bitirdi.
Tamam, bu harika.
Şimdi bu örneğin değerlerini nasıl değiştirebileceğimizi görelim.
Eğer bunu kapatırsak ve siz geri dönerseniz.
Yani burada bu oyuncunun artık doldurulmamış hayatları olduğunu görebiliriz.
Yani bu bizim örneğimiz.
Yaşam süresi beşe ayarlanmış sadece bir oyuncumuz olduğunu tespit ettik.
Artık sadece bir hayatımız var.
Ve bu da şuradaki.
Tamam.
Şu anda bu alana erişmek için tek yapmamız gereken, şu anda oyuncu örneğimizde sahip olduğumuz aşağıdakileri yapmaktır.
Ve bu alana aşağıdaki şekilde basitçe erişebilir, değiştirebilir ve üzerine yazabiliriz.
Instance, dot ve sonra bir bakalım, şuradaki lives, instance dot lives ve sonra dot value equals.
Ve şimdi örneğin 9004'e yeni bir değer uygulayabiliriz.
Şimdi uygulama belleğini tarıyoruz, örneğimizi tanımlıyoruz, şimdi bir olarak ayarlanmış
olan yaşayan örneğe erişiyoruz.
Ve bu da şuradaki.
Ve bu alanı 9004 olarak değiştiriyoruz.
İnanılmaz.
Değil mi?
Bakalım bu işe yarayacak mı?
Bu kodu kopyalıyoruz ve buraya ekliyoruz.
Tamam.
Çıktı harika görünüyor.
Yani, burayı görebiliyoruz ve bunu açalım.
Oyuncu sınıfının bir örneği bulundu vb.
Yani bu işe yaramalıydı, değil mi?
Şimdi soru şu: Neden hâlâ tek bir hayatımız var?
Bunun nedeni, kullanıcı arayüzünün henüz güncellenmemiş olmasıdır.
Dolayısıyla, bu değeri buraya yazdırıyorsak, bunu da yapabilir ve oyuncu yaşamlarını ara sıra gönderebiliriz.
Bunu da yazdıralım.
İşte buradayız, bu oyuncu örneğinin yaşamlarını yazdırıyoruz ve bu kodu kopyalayalım.
Buraya yerleştiriyoruz.
Ve şimdi görelim.
Oyuncu canları artık 9004.
Yani bu yaşamlar 9004 olarak değiştirilmeliydi ve değiştirildiler ve sadece kullanıcı arayüzü güncellenmedi.
Bunu basitçe oyuncu simgesine tıklayarak anlayabiliriz.
Bakalım, 3'e 1.
İşte bu kadar.
9003, 9002 ve benzeri.
İnanılmaz.
Şimdi buradaki oyuncu örneğinin hayatını değiştirdik.
Harika, değil mi?
Kesinlikle.
Yani mevcut örneklerle bu şekilde çalışabiliriz.
Kesinlikle.
Harika.
Tüm sürece daha da aşina olmak için slaytlar üzerinde hızlı bir özet yapalım.
Tamam.
İşte slaytlara geri döndük ve burada oyuncu örneği aldığımızı görebiliyoruz.
Bu oyuncu örneğinin bazı yaşamları ve ayrıca bazı yöntemleri vardır.
Yapmamız gereken şey, burada bu örneğin tüm oluşumları için belleği taramamız gerekiyor
ve bunu Java nokta seçimi ile yapabiliriz.
İlk parametre sadece sınıf adının dizesidir.
Bu örneklere sahip olmak istiyoruz.
Yani bu, mevcut tüm örnekleri bulmak istediğimiz sınıfımızdır ve daha sonra eşleşme üzerine ikinci parametre içindeki
geri aramalara başvurmamız gerekir.
Bu örnek bulunduysa ve tamamlandıysa, otomatik eşleşme içinde tarama işimizi bitirdiysek, bu örneği
parametre olarak alıyoruz ve yeni bir anonim işlev tanımlamamız ve kodumuzu buraya
uygulamamız gerekiyor.
Mevcut nesnelerle çalışmak için yapmamız gereken tek şey bu ve alan planlama uygulaması içinde de oyunlarla
oynamak istiyorsanız bu size çok yardımcı olacaktır.
Pekala.
Tamam.
Son bir şey daha.
Bir yöntemi nasıl çağırabileceğimizi bulalım.
Yani, bu şu anda açık olabilir, ama yine de bunu yapalım.
Ve sonra yeni örnekler oluşturmak için eski betiğimizi kullanıyoruz ve sonra gerçekten orada olup olmadıklarını görmek
için belleği bir kez daha tarıyoruz.
Tamam.
Şuna bir göz atalım.
Tamam.
İşte Ubuntu sanal makinemize geri döndük ve şimdi mevcut bir örnek üzerinde, örneğin buradaki örnek üzerinde
bir yöntemi nasıl aktif olarak tetikleyebileceğimize bir göz atalım.
Ve bunu yapmak için her şey önceden ayarlanmıştır.
Böylece kendi eşleştirme fonksiyonumuz içinde bu örnek referansını alır ve metodu çağırırız.
Bunda basitçe instance dot d yöntem adını kullanabiliriz.
Yani bunu örneğin Java'da çağırdığımız gibi tam olarak aynı.
Aşağıdaki şekilde yazarsanız, burada bu örneğe sahip oluyoruz.
Ve sonra eğer travel'da bir metot çağırıyorsanız, bu örnekte, bunu şu şekilde yazacağız
ve oyuncu noktasını ve ardından metot adını yazacağız.
Burada da durum tamamen aynı.
Yani burada örneğimiz var ve şimdi bunu yöntem adını çağırmak için kullanabiliriz.
Bu durumda, Shadi beni affetsin.
Örneğin, bu yönteme yaşamı artırma diyelim ve bunu kopyalayalım.
Ve şimdi buradaki örnek üzerinde bu yöntemi çağırıyoruz.
Yani hayatı artırmıyor, hepsi bu.
İşte örneklerle bu şekilde oynayabiliriz.
Demek istediğim, yaklaşım açısından biraz daha karmaşık, ama sonuçta, buna aşina
iseniz, artık o kadar da zor değil.
Tamam.
Bunu çalıştırmadan önce, belki bunu kaldıralım ve sonra bu kodu biraz yorumlayalım.
Ve işte tarıyoruz.
Fareyi sağa getirin.
Oyuncu sınıfının mevcut örnekleri için uygulama belleğini tarıyoruz.
Tamam.
Java dokümanının burada yaptığı şey budur.
Şu anda bir maç geri araması yapıyoruz.
Ve bu, bir örnek bulunduğunda çağrılır, aksi takdirde buradaki örnek yakalanmazdı.
Bu nedenle, bu on complete'a sahibiz çünkü burada biliyoruz ki, on complete geri çağrısını görelim ve burada uygulama belleğinin
ne zaman bittiğini biliyoruz.
Taranıyor ve belleğin taranması tamamlandı.
Evet.
Ve sonra bunu çıkarabiliriz.
Evet, tamam.
Şimdi de buradakini kullanalım.
Belki şimdi burada kullanırız.
Bu yüzden bunu alıyoruz ve serbest belirleyicimizin içine koyuyoruz.
AdBlock reklam çıktısını da gözlemliyoruz çünkü bir kez daha dışlamaya bakarsanız ve bu
bazı ifadeler yazdırıyorsa, bu imkansız, oyuncu ömrü artıyor ve bu da oyuncu ömrümüzü
artırıyor ve bu nedenle sahip olmalıyız.
Evet.
Ve sonrasında oyuncu ömrünü uzatır.
Bu nedenle, oyuncu yaşamlarını ve çok belirsiz değerden hemen önce ayarlayalım.
Bu yüzden sanırım bu satırı sildim, ama kesinlikle sorun değil.
Sonra biraz daha pratik yapacağız.
Yani örnek nokta yaşıyor, nokta değeri artık 9005.
Ve sonra bu yöntemi çağırıyoruz ve bu da bu yaşamları 9006'ya yükseltiyor.
Tamam, bu kodu kopyalayalım ve buraya yapıştıralım.
İşte bu kadar.
Tamam.
Üç, iki, bir.
İşte bu kadar.
Oyuncu canları, artan canlar şimdi 9006 olarak ayarlandı.
Bu da, burada daha da arttırdığımız anlamına geliyor.
Şunu geri alayım.
Ve oklar da doğrudan bunu işaret ediyor.
Yani bu imkansız.
Bu yöntem hiçbir yerde yakalanmaz.
Bu 1 numaralı nesnenin ömrünü 9006'ya çıkardık.
Süslü animasyon.
Biliyorum.
Ve sonra elimizde.
Evet, burada bir artırdık.
Ve bu da buradaki hata ayıklama çıktısı.
Yani bu metodu bu örnek üzerinde aktif olarak çağırdık.
Güzelmiş.
Bunu doğrulayalım.
Eğer buna tıklarsak, 9005 olması gerekir çünkü bir tane kaybediyoruz.
Bakalım.
İşte bu kadar.
9005.
Kimi?
Bunun işe yaramasına sevindim.
Tamam.
İnanılmaz.
İşte mevcut nesnelerle bu şekilde oynayabiliriz.
Şimdi, bu uygulamada sahte nesnelerimizi oluşturalım.
Şimdi son örnekteki senaryomuzu ele alalım.
Size ne demek istediğimi göstereceğim.
Dosya örneği açma yöntemi.
Öyle miydi?
Evet.
Şimdi bunu buraya alalım ve bu işlevi kaldıralım.
Aksi takdirde, onu aramak zorundayız.
İşte oldu.
Tamam, şimdi bunu burada çalıştıralım ve sonra orada bazı sahte oyuncu nesnelerimiz
olmalı.
Örneğin, bir kez çalıştırıyorsak ve bu görünmelidir.
İşte bu bizim sahte oyuncu nesnemiz.
Yani, bu gerçek bir oyuncu nesnesi, ancak buradaki uygulamaya bağlı değil, ancak
bellekte var.
Ve burada, örneğin, bir tane daha yaşıyoruz.
Tamam.
Hadi yapalım şunu.
Bunu kopyaladım ve hemen şimdi ekledim.
Şimdi burada sahte nesnemiz var.
Bir kez daha söylüyorum.
Burada başka bir sahte nesnemiz var ve onu birkaç kez çağırıyoruz.
Şimdi, bu uygulama biz göremesek bile oyuncu nesneleriyle dolu.
Yani, onlar da kullanılamaz.
Yani tamamen işe yaramazlar, ancak hafızada varlar.
Bunu buradaki senaryo ile öğrenebiliriz.
Yani burada artık onları göremiyoruz.
Ama burada yapabiliriz.
Script'i kullanalım ve bunu biraz daha büyütelim.
Tamam.
Ve şimdi bu örneklerin çıktısına ilişkin komut dosyasını yapıştırın ve görelim, işte elimizde.
Oyuncu nesnelerimiz gerçekten var.
Elimizde bir sürü hayalet nesne var, bakalım.
Yani çok sayıda oyuncu nesnemiz ve adresimiz var ve görebiliyoruz.
Yaşamlarla ilgili bir çıktı olmadığını görebilir miyiz?
Bunu kaçırdım mı?
Oh, evet.
Olabilir.
Bunu buraya ekleyelim ve örneği gönderelim.
Yaşam eşittir artı üzgünüm örneğidir, hayat değil.
Durdurma değeri.
Tamam.
Daha önce yanlışlıkla silmiş olmalıyım.
Bunun için çok üzgünüm ama.
Evet, yani, önemli değil.
Tamam.
Ayrıca bunları da kaldıralım ya da yorumlayalım, çünkü aksi takdirde bu değerle
tüm örneklerin üzerine yazmış ya da yazıyor ve bulunan tüm örneklerde bu yöntemi çağırmış oluruz.
Ve biraz fark olup olmadığını anlamak istiyoruz.
Dolayısıyla, bu miktarda cana sahip olan mevcut olanlarımızla ilgili olarak.
Bu ve tüm hayalet nesnelerimizle ilgili olarak, varsayılan ömür beş olarak ayarlanmalıdır.
Tamam.
Şimdi bunu kopyalayıp serbest komut satırımıza yapıştırabiliriz.
Tamam, bunu kopyalıyorum ve sonra akıllı telefonu ve ayrıca buradaki serbest terminali açalım.
Pekala, şimdi buraya yerleştiriyorum ve bakalım.
Evet, şimdi herhangi bir değerin üzerine yazmıyoruz, sadece onları yazdırıyoruz.
Bu tam da sahip olmak istediğimiz şey.
Ve 3'e 1 gidiyor.
Tamam.
Güzelmiş.
Şimdi görebiliyoruz.
Evet, aynen öyle.
Görebiliyoruz.
Elimizde bir sürü nesne var.
Bunlar bizim hayalet nesnelerimiz, hepsinin altı canı var.
Sanırım orada biraz daha yüksek seviyeli bir yöntem kullandık.
Boş ver.
Bunlar şimdi altı cana ayarlanıyor ve burada örneğimiz var.
Bu artık bizim gerçek oyuncu nesnemiz.
Tamam.
Bu video için şimdilik bu kadar.
Bir sonrakinde ise uzay pingi uygulamamızla ilgili biraz eğleneceğiz.
Yeni edindiğimiz bilgileri burada kullanıp bununla oynayacağız.
Örneğin, oyuncu canlarını, yüksek puanı ve bunun gibi şeyleri artırıyoruz.
Tamamdır.
Bu yüzden sizi orada görmek için sabırsızlanıyorum.