05-12-2011, 01:40 AM
Ders 1 - Advance Map ve Scriptler
Merhaba arkadaşlar, bir hack oyun yaparken kullanılan en göz alıcı olay yeni olaylar ve durumlar eklemektir. Bunu biz Scriptleri kullanarak yapıyoruz. Bu dersimizde nasıl script yazılır, bu scriptleri oyuna nasıl ekleriz ve bu scriptlerle neler yapabiliriz bunlara bakacağız.
Evet yapmamız gereken ilk şey şu programı indirmek;
Resmi açıklayalım önce...
ilk olarak bilmiyenler için pallet town' u nasıl açacağımızı da anlatayım. Yandaki kalsörlerde "From Header" yazanı seçin. 3. klasörün 1. haritasında "PALLET TOWN yazısını göreceksiniz onu seçin(tam kodu 3.0)"
1)İlk iş olarak üstteki taglardan Event' i tıkladığınıza emin olun, aksi halde harita üzerinde değişiklik yaparsınız ve scirptleri görmessiniz..
2)Buraya tıkladığınızda eğer scirptleri kişi, tablo, poke topu olarak görüyorsanız onları yazıya, eğer yazı olarak görüyorsanız onları resme çevirir..
3)Gelelim script harflerine;
"P" yazısı o scriptin, bir kişi scripti olduğunu söyler.(Bu arada cut ile kestiğimiz ağaçlar, bulduğumuz nesneler-şu poke topu şeklinde olan, pokemonlar ve hatta bazen gördüğümüz gazete, kitap ve gemiler birer kişi scriptidir.)
"S" ile görmüş olduklarınızın rengi turuncuysa Tabela scriptleridir. Yeşil ise "Script"-yani durum diyelim.
"W" olarak gördüklerinize "Wrap" denir. Bunlar kapı giriş ve çıkışlarında kullanılır.
"F" olarak gözükenlerde uçuş noktalarıdır. Fly kullandığınızda "F" işareti olan yere inersiniz.
4)Bu menüyü scriptlerden ziyade advance map için tanıtmak daha doğru ama yinede değinelim;
"Talking Level" bu karakterin size nerede iletişim geçeceği ile ilgilidir. Genelde "Height 2" seçilir bu.
"Movement" ise bu karakterin yapacağı hareketlerdir.(ileri-geri gidiş falan....)
"Unknown" adı üzerinde ne olduğu belirsiz...
"Trainer" Bu adam bir trainer ise "1" işaretlenir."
"View Radius" ise sizinle kaç birim uzaktan iletişime geçeceği ile alakalıdır.
5)Bu ise en önemli nokta script kodu(offset).İlerde yapacağımız herşeyin anahtarı burası işte. Burada yazan sayıları sakın sebepsiz yere silmeyin yada olduğu gibi kopyalamayın.
6)Buraya tıkladığımızda şu şekilde script programımızı açarız.
Ve Son olarak, OPEN SCRIPT yazan düğmenin altındaki grup "Amount of Events". Bu seçili haritada hangi tür eventten kaç tane olacağını belirler. Bir minik örnek yapalım. Mesela yeni bir karakter eventi ekleyelim. Bunun için, "Number of Person Event" sayısını bir arttırarak. "Change Event" düğmesine basın, haritanın 0,0 kordinatına(Yani en üst ve en sağ köşeye yeni personumuz geldi. Bunu istediğinizi yere sürüklemek size kalmış. )
Ders 2 - Bir Scripti Değiştirmek
Mevcut bir scripti değiştirmek ve yeni script eklemek arasında oldukça farklar var. Biz yavaş yavaş ve işi anlayarak gidelim. İlk olarak bir scripti nasıl değiştiririz onu anlayalım. Örnek oalrak ta şu adamla konuştuğumuzda çıkan yazıyı "Pokémon Turkiye" ile değiştirelim.
Evet yapmamız gereken belli bu adamı tıklayıp, open script diyoruz.(Advance Map' teki "Events" tagının seçili olduğundan emin olun.) ve sayfamızı açalım. Aynen böyle geldi.
Farkettiğiniz gibi, kodlarda yazan ilk satır #org ve sonrası ile, menüdeki offset numarası aynı.. Offsette yazan $0016582F, kodda 0x816582F şeklinde gözükür. Burda bir sıkıntı yok. şimdi Burada bize ne diyor ona bakalım.
Daha sonra kaydedip oyunumuza gelelim ve bakalım yaptıklarımız çalışmışmı bir bakalım.
Hemde mis gibi! Evet arkadaşlar ilk iki dersimiz bu kadar. Son olarak bir kaç öneri ve not yazarak bitiriyoruz.
İlk olarak bu şekilde scriptleri Türkçeleştirmek pek başarılı olmuyor. İlerki değişikliklerle birlikte metinler birbiriyle karışmaya başlıyor. Bu nedenle pek bunu kullanmayın. -Tabi şimdi soracaksınız madem kullanmayacağız neden gösterdin diye? Bunu temeli vermek için kullandım. İlerki derstte, kendi yazdığımız scriptleri oyuna ekleyeceğiz ve Offset kavramına daha deyaylı bir bakış yapacağız. O sırada bundan da bahsedeceğim.
Son olarak Çok uzun metinler, sorunlar çıkarıyor. Bu nedenle sık sık satır aşağı ve paragraf bırakmanız lazım bunuda metin içlerine kullanacağınız "Escape Sequence" denen karakterleri kullanarak yapıyoruz.
Satır aşağı Yazmak için \n
Paragraf için ise \p
Diğer dersler;
3. Ders: https://pokemonturkiye.com/forum/index.p...985.0.html
4. Ders: https://pokemonturkiye.com/forum/index.p...987.0.html
Merhaba arkadaşlar, bir hack oyun yaparken kullanılan en göz alıcı olay yeni olaylar ve durumlar eklemektir. Bunu biz Scriptleri kullanarak yapıyoruz. Bu dersimizde nasıl script yazılır, bu scriptleri oyuna nasıl ekleriz ve bu scriptlerle neler yapabiliriz bunlara bakacağız.
Evet yapmamız gereken ilk şey şu programı indirmek;
Alıntı:https://hotfile.com/dl/136729402/bc973a9...1.zip.htmlBu programı kurup yükledikten sonra yapacağımız şey, advance map' e girmek. Advance Map' te, ilk olarak Hack yapacağımız ROM' umuzu yüklüyoruz. Önemli Uyarı Mutlaka ROM' unuzun yedeğini alın. Daha sonra settings menüsünden -> choose script editor seçeneğini tıklıyoruz. buradan biraz önce yüklediğimiz programı seçiyoruz. daha sonra size bir evet/hayır sorusu yöneltecek buna hayır diyoruz.(bunu niye soruyor bende bilmiyorum ama hayır dememiz gerek.) Artık oyundaki kodlarla oynayabiliriz. İlk iş olarak Advance Map'teki script menülerine bir bakalım....
Resmi açıklayalım önce...
ilk olarak bilmiyenler için pallet town' u nasıl açacağımızı da anlatayım. Yandaki kalsörlerde "From Header" yazanı seçin. 3. klasörün 1. haritasında "PALLET TOWN yazısını göreceksiniz onu seçin(tam kodu 3.0)"
1)İlk iş olarak üstteki taglardan Event' i tıkladığınıza emin olun, aksi halde harita üzerinde değişiklik yaparsınız ve scirptleri görmessiniz..
2)Buraya tıkladığınızda eğer scirptleri kişi, tablo, poke topu olarak görüyorsanız onları yazıya, eğer yazı olarak görüyorsanız onları resme çevirir..
3)Gelelim script harflerine;
"P" yazısı o scriptin, bir kişi scripti olduğunu söyler.(Bu arada cut ile kestiğimiz ağaçlar, bulduğumuz nesneler-şu poke topu şeklinde olan, pokemonlar ve hatta bazen gördüğümüz gazete, kitap ve gemiler birer kişi scriptidir.)
"S" ile görmüş olduklarınızın rengi turuncuysa Tabela scriptleridir. Yeşil ise "Script"-yani durum diyelim.
"W" olarak gördüklerinize "Wrap" denir. Bunlar kapı giriş ve çıkışlarında kullanılır.
"F" olarak gözükenlerde uçuş noktalarıdır. Fly kullandığınızda "F" işareti olan yere inersiniz.
4)Bu menüyü scriptlerden ziyade advance map için tanıtmak daha doğru ama yinede değinelim;
"Talking Level" bu karakterin size nerede iletişim geçeceği ile ilgilidir. Genelde "Height 2" seçilir bu.
"Movement" ise bu karakterin yapacağı hareketlerdir.(ileri-geri gidiş falan....)
"Unknown" adı üzerinde ne olduğu belirsiz...
"Trainer" Bu adam bir trainer ise "1" işaretlenir."
"View Radius" ise sizinle kaç birim uzaktan iletişime geçeceği ile alakalıdır.
5)Bu ise en önemli nokta script kodu(offset).İlerde yapacağımız herşeyin anahtarı burası işte. Burada yazan sayıları sakın sebepsiz yere silmeyin yada olduğu gibi kopyalamayın.
6)Buraya tıkladığımızda şu şekilde script programımızı açarız.
Ve Son olarak, OPEN SCRIPT yazan düğmenin altındaki grup "Amount of Events". Bu seçili haritada hangi tür eventten kaç tane olacağını belirler. Bir minik örnek yapalım. Mesela yeni bir karakter eventi ekleyelim. Bunun için, "Number of Person Event" sayısını bir arttırarak. "Change Event" düğmesine basın, haritanın 0,0 kordinatına(Yani en üst ve en sağ köşeye yeni personumuz geldi. Bunu istediğinizi yere sürüklemek size kalmış. )
Ders 2 - Bir Scripti Değiştirmek
Mevcut bir scripti değiştirmek ve yeni script eklemek arasında oldukça farklar var. Biz yavaş yavaş ve işi anlayarak gidelim. İlk olarak bir scripti nasıl değiştiririz onu anlayalım. Örnek oalrak ta şu adamla konuştuğumuzda çıkan yazıyı "Pokémon Turkiye" ile değiştirelim.
Evet yapmamız gereken belli bu adamı tıklayıp, open script diyoruz.(Advance Map' teki "Events" tagının seçili olduğundan emin olun.) ve sayfamızı açalım. Aynen böyle geldi.
Farkettiğiniz gibi, kodlarda yazan ilk satır #org ve sonrası ile, menüdeki offset numarası aynı.. Offsette yazan $0016582F, kodda 0x816582F şeklinde gözükür. Burda bir sıkıntı yok. şimdi Burada bize ne diyor ona bakalım.
Alıntı:#org 0x816582F -Burada 0x816582F' numaralı offseti çağır diyor.
\"msgbox 0x817D80D ' Technology is incred...
callstd MSG_FACEPLAYER ' Builtin lock/faceplayer
end\"
bu kodun açıklaması ise,
msgbox tahmin ettiğiniz gibi, mesaj kutusunu göster demek daha sonrasındaki \"0x817D80D\" ise, bu metin kutusunda hangi offsetin içindeki yazının gösterileceğini belirtiyor. Burada ki yazan aynen şu \"0x817D80D numaları ofsette yazanı mesaj kutusunda göster.
callstd MSG_FACEPLAYER Bu kod adamın bize yüzünü çevirmesini söylüyor...
end ise bitir demek tahmin ettiğiniz gibi. Daha sonra gösterilecek mesajı yazmak için 0x817D80D numaralı offseti çağrıyoruz.
\"
#org 0x817D80D
= Technology is incredible!\pYou can now store and recall items\nand POK\eMON as data via PC.
\"
Biz \"=\" den sonraki kısmı \"Pok\emon Turkiye\" olarak değiştirelim. \"=\"' dan sonra bir harf boşluk bırakın yoksa çalışmaz kod. \"/e\" şeklinde yazdım dikkat ederseniz. Böylece tıkladığımızda ...emon diye değil émon diye gösterilecek ve ne yazıkki Türkçe karakter desteği yok.
Son olarak ta \"F9\" basıyoruz şöyle bir şey gelecek;
Burada yaptığınız işlemleri gösterir...
Daha sonra kaydedip oyunumuza gelelim ve bakalım yaptıklarımız çalışmışmı bir bakalım.
Hemde mis gibi! Evet arkadaşlar ilk iki dersimiz bu kadar. Son olarak bir kaç öneri ve not yazarak bitiriyoruz.
İlk olarak bu şekilde scriptleri Türkçeleştirmek pek başarılı olmuyor. İlerki değişikliklerle birlikte metinler birbiriyle karışmaya başlıyor. Bu nedenle pek bunu kullanmayın. -Tabi şimdi soracaksınız madem kullanmayacağız neden gösterdin diye? Bunu temeli vermek için kullandım. İlerki derstte, kendi yazdığımız scriptleri oyuna ekleyeceğiz ve Offset kavramına daha deyaylı bir bakış yapacağız. O sırada bundan da bahsedeceğim.
Son olarak Çok uzun metinler, sorunlar çıkarıyor. Bu nedenle sık sık satır aşağı ve paragraf bırakmanız lazım bunuda metin içlerine kullanacağınız "Escape Sequence" denen karakterleri kullanarak yapıyoruz.
Satır aşağı Yazmak için \n
Paragraf için ise \p
Alıntı:= Pok\emon\nTurkiye
yada;
= Pokemon\pTurkiye seklinde yazarak farki anlayabilirsiniz.
Diğer dersler;
3. Ders: https://pokemonturkiye.com/forum/index.p...985.0.html
4. Ders: https://pokemonturkiye.com/forum/index.p...987.0.html