[WB]Modül Sistem Platformu [Krallık ekleme dersi yenilendi!]

Users who are viewing this thread

aovaTR said:
valla 7/24 forumdayım burda olmak hoşuma gidiyor. konuları okudukça gaza geliyorum yavaş yavaş çözüyorum modüleyi.
hepinizin eline koluna sağlık. başarılarınızın devamını dilerim. gayet mükemmel :grin:

Sağolasın, bu aralar presentationlar ile ilgili bir ders yapmayı düşünüyorum.
 
HyperCharge said:
aovaTR said:
valla 7/24 forumdayım burda olmak hoşuma gidiyor. konuları okudukça gaza geliyorum yavaş yavaş çözüyorum modüleyi.
hepinizin eline koluna sağlık. başarılarınızın devamını dilerim. gayet mükemmel :grin:

Sağolasın, bu aralar presentationlar ile ilgili bir ders yapmayı düşünüyorum.

Beklemedeyiz :smile:
 
Yeni ders geldiii  :smile:



Presentations

Öncelikle tanımını yapalım, presentation, esneklikleri yüzünden karmaşık bir konudur. Aslında presentationlar bir ekran kontrol aracından fazla bir şey değil, yani overlay dediğimiz şeylerden ve triggerlardan öte değildir.

Overlay'lerin bir sürü tipleri vardır, her bir overlayın kendi davranış ve görünümü vardır. Presentation aktif olduğu sürece, gereken operasyonlarla onların pozisyonunu, durumunu ve görünümünü değiştirebilirsiniz.

Triggerlara değinecek olursak, presentationlar için sadece 5 trigger ayrılmıştır header_triggers'ta. Ancak şunu söyleyeyim, bunları ustaca kullanan biri, aklına gelen her şeyi yapabilir.

Şimdi bu triggerların adlarını ve kullanım şekillerini göreceğiz.

ti_on_presentation_load, presentation başladığı andan itibaren sadece 1 kez ateşlenir. Yani "presentation yüklendiği an" sadece 1 kez gerçekleşecek olaylar dizesi. Bu yer aslında overlaylerinizi yerleştireceğiniz yerdir. Pozisyonlarını ve durumlarını belirleyeceğiniz yer.

ti_on_presentation_event_state_change ise, muhtemelen en önemli ve en basit yerlerdendir. Bu trigger, herhangi bir overlayı bu triggerın içine koyduğunuzda, overlayın durumu her değiştiğinde ateşlenecek olaylar dizesidir. Yani bir buton yaptınız diyelim, ona tıkladığınız an neler olmasını istiyorsanız bu bölümde onu yazmalısınız.

ti_on_presentation_mouse_press, kullanıcı bir overlayın üzerine tıkladığı her an da ateşlenir. sağ tık ve farenin orta tuşu da buna dahildir.

ti_on_presentation_mouse_enter_leave, farenin bir overlay üzerinde olup olmadığını sorarak ona göre işlemler yapmanızı sağlar. Mesela bir buton yaptınız, onun üzerine fareyi getirdiğinizde sağda yazı çıkmasını istiyorsunuz, fareyi onun üzerinden çektiğinizde de yazının gitmesini istiyorsanız, bununla yapabilirsiniz.

ti_on_presentation_run, bu trigger ise, presentation aktif olduğu sürece her milisaniyede bir ateşlenir, sürekli olarak. Presentation içinde sürekli yaşanacak bir olay yapacaksanız bu trigger'ı kullanabilirsiniz.

Unutmayın. Bir presentation varken oyununuz genellikle durdurulur, presentation bitene kadar. Elbette, oyunu durdurmayacak bir presentation yazma gibi bir mümkünatınız da var. Örnek isterseniz, oyunda savaştayken backspace'e bastığınız an çıkan o strateji ekranıdır. Orada savaştaki askerlerinizin ve düşmanın yerini gösteren küçük bir harita ve ordunuza emir verebileceğiniz bir yazı sürüsü görürsünüz. Bunların hepsi tabii ki presentation ile yapılmıştır, ayrıca söyleyeyim, o savaş ekranının module_presentations'daki adı "battle" dır. Ayrıca, eğer multiplayerı oynadıysanız, bütün o ekipman seçme, esc ye bastığınızda çıkan menü, bütün o şeyler presentation ürünüdür.

Şimdi operasyonlarına bir göz atalım:

Koşul operasyonu;
Code:
(is_presentation_active, <presentation_id),
"Presentation aktifse" diye soru sorar. yanına neg operasyonunu koyup "aktif değilse" diye de işlem yapabilirsiniz.

Genel presentation operasyonları
Code:
(start_presentation, <presentation_id>),
Bir presentation başlatır, module_game_menus, module_scripts veya module_mission_templates gibi işlem yapılan yerlerden çağrılır genelde.

Code:
(start_background_presentation, <presentation_id>),
Arkaplanda çalışacak şekilde bir presentation başlatır, oyunun işleyişine bir etki etmez.

Code:
(presentation_set_duration, <duration-in-1/100-seconds>),
Presentationun ömrünü belirler. Mutlaka presentation aktifken çağırılmalıdır. Eğer birkaç presentation daha aktifse, onlar için de aktif olma zamanı aynen geçerli olur.

Overlay yaratma;
Code:
(create_text_overlay, <destination>, <string_id>),
Vereceğiniz değişken adıyla ve belirteceğiniz string ile, bir yazı overlayı yaratmanızı sağlar.

Code:
(create_mesh_overlay, <destination>, <mesh_id>),
Vereceğiniz değişken adıyla ve belirteceğiniz mesh ile, bir resim overlayı yaratmanızı sağlar.

Code:
(create_mesh_overlay_with_item_id, <destination>, <item_id>),
Vereceğiniz değişken adıyla ve belirteceğiniz item ile, belirttiğiniz itemi gösteren bir overlay yapmanızı sağlar.

Code:
(create_mesh_overlay_with_tableau_material, <destination>, <mesh_id>, <tableau_material_id>, <value>),
Vereceğiniz değişken adıyla ve belirteceğiniz mesh ve tableau_materyal ile, belirttiğiniz mesh ve tableau ile heraldik bir overlay yapmanızı sağlar.

Code:
(create_button_overlay, <destination>, <string_id>),
Vereceğiniz değişken adıyla ve belirteceğiniz string ile tıklayabileceğiniz bir yazı overlayı yapmanızı sağlar.

Code:
(create_game_button_overlay, <destination>, <string_id>),
Vereceğiniz değişken adıyla ve belirteceğiniz string ile, oyun butonu içerisinde tıklanabilir bir yazı yapmanızı sağlar.

Code:
(create_in_game_button_overlay, <destination>, <string_id>),
Vereceğiniz değişken adıyla ve belirteceğiniz string ile, oyun-içi buton içerisinde tıklanabilir bir yazı yapmanızı sağlar. (yukarıdakiyle ne farkı var bilemiyorum, denemenizde fayda var.)

Code:
(create_image_button_overlay, <destination>, <mesh_id>, <mesh_id>),
vereceğiniz değişken adıyla ve sırayla, tıklanmamış ve tıklanmış hallerini belirterek ekleyeceğiniz meshlerle bir resim-butonu overlayı yapmanızı sağlar.

Code:
(create_image_button_overlay_with_tableau_material, <destination>, <mesh_id>, <tableau_material_id>, <value>),
Bir önceki operasyonun, heraldikliğin de denkleme katılmış hali.

Code:
(create_slider_overlay, <destination>, <min_value>, <max_value>),
Vereceğiniz değişken ile, minimum ve maksimum değerler arasında yatay olarak sıralanmak üzere bir kaydırıcı overlayı yapmanızı sağlar. overlay_set_val operasyonu ile değerini değiştirebilirsiniz.

Code:
(create_progress_overlay, <destination>, <min_value>, <max_value>),
vereceğiniz değişken ile bir ilerleme barı yapmanızı sağlar. Yine, overlay_set_val operasyonu ile değerini değiştirebilirsiniz.

Code:
(create_number_box_overlay, <destination>, <min_value>, <max_value>),
Vereceğiniz değişken ve değerler ile içi numerik sayılarla dolu küçük bir overlay yapmanızı sağlar.

Code:
(create_text_box_overlay, <destination>),
Muhtemelen inaktif edilmiş, Native de hiç bir yerde kullanılmıyor.

Code:
(create_simple_text_box_overlay, <destination>),
Nasıl çalıştığını bilmiyorum.

Code:
(create_check_box_overlay, <destination>, <checkbox_off_mesh>, <checkbox_on_mesh>),
Nasıl çalıştığını bilmiyorum.

Code:
(create_list_box_overlay, <destination>, <string>, <value>),
Nasıl çalıştığını bilmiyorum.

Code:
(create_combo_label_overlay, <destination>),
Nasıl çalıştığını bilmiyorum.

Code:
(create_combo_button_overlay, <destination>),
Nasıl çalıştığını bilmiyorum.

Code:
(overlay_add_item, <overlay_id>, <string_id>),
belirlediğiniz overlay'a +1 string veriyor. Böylece kombo kutusu veya liste kutusu yapabiliyorsunuz sanırım.

Overlay hiyerarşisi
Code:
(set_container_overlay, <overlay_id>),
Bir konteynır overlayı yapmanızı sağlıyor, sonradan oluşturulacak overlayler de bu konteynır overlayının içine konuyor.

Code:
(overlay_set_container_overlay, <overlay_id>, <container_overlay_id>),
Bu ise, üsttekine benzer olarak, sadece belirlediğiniz bir overlayı konteynır olan bir overlayın içine koyabilirsiniz.

Overlay manipülasyonu
Code:
(overlay_get_position, <position>, <overlay_id>)
overlayın pozisyonunu vereceğiniz pos registerına atıyor.

Code:
(overlay_set_val, <overlay_id>, <value>),
Numerik sayısı olacak olan bir overlaya gereken numerik sayıyı vermenizi sağlıyor.

Code:
(overlay_set_text, <overlay_id>, <string_id>),
Var olan bir overlaya bir string veriyor.

Code:
(overlay_set_boundaries, <overlay_id>, <min_value>, <max_value>),
Nasıl çalıştığını bilmiyorum.

Code:
(overlay_set_position, <overlay_id>, <position>),
Overlayın pozisyonunu vereceğiniz pozisyona götürüyor.

Code:
(overlay_set_size, <overlay_id>, <position>),
Overlayın büyüklüğünü x ve y açılarıyla ayarlıyor, ayrıca belirteyim, wb nin ekran büyüklük değeri 1.00 veya 0.75 şeklinde ayarlanıyor, dolayısıyla set_fixed_point_multiplier'i kullanmanız gerekiyor bu operasyonu kullanmadan önce.

Code:
(overlay_set_area_size, <overlay_id>, <position>),
Nasıl çalıştığını bilmiyorum.

Code:
(overlay_set_additional_render_height, <overlay_id>, <height_adder>),
Nasıl çalıştığını bilmiyorum.

Code:
(overlay_animate_to_position, <overlay_id>, <duration-in-1/1000-seconds>, <position>),
Overlayı belirli bir zaman içerisinde vereceğiniz pozisyona götürür.

Code:
(overlay_animate_to_size, <overlay_id>, <duration-in-1/1000-seconds>, <position>),
Overlayı belirli bir zaman içerisinde vereceğiniz pozisyona doğru büyütür.

Code:
(overlay_set_mesh_rotation, <overlay_id>, <position>),
Pozisyonu ayarlanmış herhangi bir overlayı döndürmenize yarıyor. Z açısını ayarlayıp bir registera verirseniz yapabilirsiniz. Oyuncuya göre saat yönünde veya onun tersine göre dönecektir.

Code:
(overlay_set_material, <overlay_id>, <string_no>),
bir overlayı renderlamak için @ ile belirteceğiniz materyal adını veriyorsunuz, 1.161 ile gelmiş sanırım.

Code:
(overlay_set_color, <overlay_id>, <color>),
Overlayın rengini belirtiyorsunuz, hex kodlarıyla. Bazı overlayler ile düzgün çalışmayabilir.

Code:
(overlay_set_alpha, <overlay_id>, <alpha>),
Overlayın alphasını değiştiriyorsunuz, 0x00 ile 0xFF arasında bir değer atayın.

Code:
(overlay_set_hilight_color, <overlay_id>, <color>),
Nasıl kullanıldığını bilmiyorum.

Code:
(overlay_set_hilight_alpha, <overlay_id>, <alpha>),
Nasıl kullanıldığını bilmiyorum.

Code:
(overlay_animate_to_color, <overlay_id>, <duration-in-1/1000-seconds>, <color>)
Overlayı belirlediğiniz zaman içerisinde belirlediğiniz renge kaydırıyor.

Code:
(overlay_animate_to_alpha, <overlay_id>, <duration-in-1/1000-seconds>, <color>),
overlayı belirlediğiniz zaman içinde 0x00 ile 0xFF arasında bir değer vererek alphasını kaydırıyor.

Code:
(overlay_animate_to_highlight_color, <overlay_id>, <duration-in-1/1000-seconds>, <color>),
Nasıl kullanıldığını bilmiyorum.

Code:
(overlay_animate_to_highlight_alpha, <overlay_id>, <duration-in-1/1000-seconds>, <color>),
Nasıl kullanıldığını bilmiyorum.

Code:
(overlay_set_display, <overlay_id>, <value>),
Vereceğiniz değer ile overlayı gizleyebilir veya görünür yapabilirsiniz.

Code:
(overlay_obtain_focus, <overlay_id>),
Nasıl kullanıldığını bilmiyorum.

Code:
(overlay_set_tooltip, <overlay_id>, <string_id>),
Nasıl kullanıldığını bilmiyorum.


Açılır pencereler ile ilgili ve bazı özel operasyonlar
Code:
(show_item_details, <item_id>, <position>, <price_multiplier_percentile>),
Bir kutu yaratarak verdiğiniz item adını, pozisyonu ve opsiyonel olarak, itemin istediği değeri belirtebilirsiniz. Kısaca, itemin üzerine geldiğinizde çıkan kutudan yaratıyor.  :smile:

Code:
(show_item_details_with_modifier, <item_id>, <item_modifier>, <position>, <price_multiplier_percentile>),
Yukarıdakinin item modifierini belirterek kutuyu yaratma hali.

Code:
(close_item_details)
O oluşturduğunuz kutuyu kapatıyor.

Code:
(show_troop_details, <troop_id>, <position>, <troop_price>)
Vereceğiniz asker adının, askerin pozisyonu ile beraber bir kutu yapabiliyorsunuz, Açık kaynak olan troop tree koduna bakarsanız anlarsınız.


Şimdi, bir presentation nasıl yazılır onu göstereceğim;

Code:
("ornek_presentation",prsntf_manual_end_only,mesh_load_window,[ # burdaki prsntf_ uzantili flagler, header_presentations'da var, oraya bakin. mesh_load_window ise yukleme ekrani, mesh_ on ekiyle istediginiz meshi buraya yazabilirsiniz, presentation aktif oldugu surece bu koydugumuz goruntu bizim ekrani kaplayacak.
	(ti_on_presentation_load,
	[
            (presentation_set_duration, 999999), # presentationun suresini belirtiyoruz, genelde boyle yapilir.
              (set_fixed_point_multiplier, 1000), # bunu yaptiginiz her presentationa mutlaka koyun, pozisyonlarinizda hata olmasin.

    (create_button_overlay, "$g_presentation_obj_1",        # ornek buton yazili, tiklanabilir bir yazi overlayi yarat.
    "@ornek buton",tf_center_justify),
        (position_set_x, pos1, 850),
        (position_set_y, pos1, 640),
        (overlay_set_position, "$g_presentation_obj_1", pos1), # overlayin pozisyonunu x ve y sini belirttigim sekilde ayarla.
          ]),

(ti_on_presentation_event_state_change,
	[
	(store_trigger_param_1, ":object"), 
      (eq, ":object", "$g_presentation_obj_1"), # eger secilen obje presentation_obj_1 ise
		    (jump_to_menu, "mnu_town"), # sehir menusune git
			(presentation_set_duration, 0), # ve presentationu durdur.
    ]),

]),

Buradan sonra iş pratiğe düşüyor, sürekli pratik yaparsanız alışırsınız.

Buradan örnek alarak kendi presentationunuzu yapabilirsiniz, lakin ben pozisyonu attım kafadan, yazımız sağ yukarıda bir yerde çıkabilir  :iamamoron:

Ayrıca, ben sahne-menü sistemimi buna benzer bir şey ile yazmıştım, bir görüntü  :smile:;

J4AagQ.jpg

Son olarak, pozisyonları nasıl anlayacağız diye sorarsanız, şu linkten yararlanabilirsiniz;

http://forums.taleworlds.com/index.php/topic,131907.0.html

Veyahut CWE'nin modül sistemi paylaşıldı, onun içinde de var burdakinin benzeri.

Okuduğunuz içün teşekkürler, bir sonraki derste görüşmek üzere...  :smile:
 
Presentaiton ilk bakışta "Hiç bir şey anlamadım ileride tekrar bakarım"dır.
İkinci bakışında "Amanin boo"dur.
Üçüncü bakışında "Şu trigger mi? Ha evet. Ne biçim trigger la o!"dur.
Dördüncü bakışında "Pos1 şuraya gitrmiş. Hmm sonra şuraya gitmiş. Şurada da bir pos1 var. Şurada da. Her taraf pos1 la bu ne!"dir.
Beşinci bakışında "Şu 99999'u sıfır yapayım. Şu sıfırı 999 yapayım. Builed.exe, oyun açıldı. Niye çalışmıyor bu?"dur.
Altıncı bakışında "Bu sefer olacak. Şunu kopyala, şuraya yapıştır. Builed.exe, oyun açıldı. Çat ekran kilit!"tir.

Sanırım artık devam edemeyeceim. :grin:

Yirmisekizinci bakışında "Bu işi çözdüm artık. Uğraştıracak ama çok farklı bir mod olacak"tır.
 
Atlı Okçu said:
Eklediğim krallığın askerlerinin farklı olmasını nasıl sağlarım? HyperCharge'ın dersindeki farklı gelmiyor anladığım kadarıyla.

module_troops tan yeni kopyaladığın askerlerin adlarını, kıyafetlerini değiştir. Ben örnek gösterdim orada.
 
Tüfekçi Başı said:
Presentaiton ilk bakışta "Hiç bir şey anlamadım ileride tekrar bakarım"dır.
İkinci bakışında "Amanin boo"dur.
Üçüncü bakışında "Şu trigger mi? Ha evet. Ne biçim trigger la o!"dur.
Dördüncü bakışında "Pos1 şuraya gitrmiş. Hmm sonra şuraya gitmiş. Şurada da bir pos1 var. Şurada da. Her taraf pos1 la bu ne!"dir.
Beşinci bakışında "Şu 99999'u sıfır yapayım. Şu sıfırı 999 yapayım. Builed.exe, oyun açıldı. Niye çalışmıyor bu?"dur.
Altıncı bakışında "Bu sefer olacak. Şunu kopyala, şuraya yapıştır. Builed.exe, oyun açıldı. Çat ekran kilit!"tir.

Sanırım artık devam edemeyeceim. :grin:

Yirmisekizinci bakışında "Bu işi çözdüm artık. Uğraştıracak ama çok farklı bir mod olacak"tır.

ben birinciyi aşabileceğimi sanmıyorum  :mrgreen:

#hypercharge pek anlamasam da ders için teşekkürler :smile:
 
HyperCharge said:
Şimdi.Bu derste modül sistem ile müzik eklemeyi öğreneceğiz.

Yeni ders

Müzik ekleme;
Verdiğim linkte ki müziği indirin ve modunuzun music dosyasına atın;

http://www.mediafire.com/download/w6exblv0789627t/dovus_4.ogg      (Medieval II Total War alınmıştır.Beğendiğim bir müziktir.)

Şimdi,module_music'i açın ve alttakini arayıverin;

Code:
("fight_3", "fight_3.ogg", mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed, 0),




Bunun altına şunu yapıştırın;

Code:
("fight_4", "dovus_4.ogg", mtf_sit_fight|mtf_sit_multiplayer_fight|mtf_sit_ambushed|mtf_module_track, 0),


Bunu sonuna mtf_module_track ekleyin diyor Sevgili module_music arkadaşımız.Bizde yukarıdaki gibi yapıyoruz.

Burdan anlıyacağınız;

"fight_3" müziğin modül sistem de ki adı.

"dovus_4.ogg" ise eklediğimiz müziğin bizim modumuzun music dosyasında ki ismidir.Önceki derslerde de dediğim gibi,türkçe harf kullanmayın.Ve orada sadece ".ogg" uzantılı olması gerekmiyor dosyanın.buradan değiştirebilirsiniz uzantısını.Mesela "fight_3" adlı müzik,.ogg uzantılı.Onu bir çeviriciden mp3'e çevirip,sonradan buradan uzantısını değiştirebiliriz.Fakat modül sistem kullanmadan yapanlara tavsiyem,bu yöntem ile müzik eklemek daha kolay(bana göre).

"mtf_module_track" ise sonuna koymamız gereken trigger(ateşleyici-tetikleyici).sanırım,bunu koymamızın sebebi,normal oyunun ki ile karışmaması istenmesi olabilir.Yani,oyunun music dosyası ayrı,bizim modumuzunki ayrı...



Ve müzik eklerken flagların ne işe yaradığını söyleyeceğim size;;

"mtf_sit_main_title" bu,ana menüde çalacak olan müziğe konulur.

"mtf_start_immediately" bu,Bu çalacak olan müziğin zorla veya derhal başlatılmasını sağlayan trigger.

"mtf_sit_ambushed" bu,kampta iken düşmana yakalanırsanız ve o savaşa girerseniz bunun olduğu müzik çalacaktır.

"mtf_sit_siege" bu,adı üzerinde kuşatmada ike çalmasını sağlayacak olan trigger.

"mtf_sit_fight" bu,herhangi bir savaşta çalmasını sağlayan şey.

"mtf_sit_multiplayer_fight" bu,multiplayer da herhangi bir savaşta çalmasını sağlar müziğin.

"mtf_culture_X" bu,o müziği özel kılıyor bence.Çünkü hangi kültürde ise orada çalıyor.Mesela "mtf_culture_1" diyelim.Bir svadya köyüne geldiğimizde veya kalesine veya şehrine,bu müzik çalacaktır.Fakat orada yazdığım x,şunu ifade eder;

Ne kadar kültür varsa o kadar yazabilirsiniz.Yani,7 kültür varsa 7.yi yazabilirsiniz.8 varsa 8 yazabilirsiniz.Sadece o kültürün olduğu yerlerde çalar o müzik.

"mtf_culture_all" bu,O müziğin bütün kültürlerde çalmasını sağlar.

"mtf_sit_arena" bu,o müziğin arenada çalmasını sağlayan flag.

"mtf_sit_travel" bu,siz haritada dolaşırken çalmasını sağlayan şey sanırım.

"mtf_sit_town" bu,herhangi bir şehirde iken çalmasını sağlar.

"mtf_sit_tavern" bu,herhangi bir han da çalmasını sağlar o müziğin.

"mtf_sit_killed" bu,siz herhangi bir savaşta yenildiğinizde çalmasını sağlayan trigger.

"mtf_persist_until_finished" bunun ne olduğunu bilmiyorum.Fakat işe yarar birşey sanırım.Fakat bir tahminim var.;

Sanırım,bir iş bittiğinde oyuncular sıkılmasın diye o müziği çaldıran bir trigger.

"mtf_sit_encounter_hostile"bu,galiba herhangi bir kalenin-şehrin şatosuna veya direkman kuşatılırken çalmasını sağlayan şey.

"mtf_sit_town_infiltrate" bu, bir şehire veya kaleye sızarken çalmasını sağlayan trigger.

"mtf_sit_night" bu,gece de çalan bir müzik.

"mtf_sit_feast" bu,herhangi bir kutlama veya zafer kazanırsanız trigger bunu ateşler.Fakat belki de şöyle olabilir;

Biliyorsunuz ki veya öğreniyoruz ki bu feast lar Tavern müziğinde var.belki de şölen zamanı çalarlar.Mesela kalelerde ki ziyafet zamanında.

"mtf_sit_victorious"bu,herhangi bir muharebeyi(kale kuşatması dahil) kazandığınızda o müziğin çalmasını sağlayan trigger.

Hatırlatayım.Bunları bir müziğe eklerken aralarına "|" koyun.Ayrıca bunlar bir müziğe birden fazla kez eklenebilir;

mesela, bir müzik eklediniz,bunu hem svadya kültüründe hemde bir savaşı yendiğinizde hemde ziyafet zamanında çaldırabilirsiniz bu müziği demek oluyor bu.
Hata veriyorsa buradan yazın.Gerekirse resim ile anlatırım.
Module_bats'ı çalıştırın.Hata vermiyorsa,Tebrikler! oyuna müzik eklediniz.

Hocam bu kadar uğraşmak istemeyenler müziğin adını fight_3 yapıp dosya uzantısı ogg yapıp music klasörüne atıp değiştirebilir çalışıyor denedim ancak sanırım sadece native çalıyor
 
Back
Top Bottom