Leqo
MineKnight MMORPG
- Mesajlar
- 139
- En iyi cevaplar
- 0
- Beğeniler
- 115
- Puanları
- 490
- Ruh hali
Merhaba arkadaşlar bugün size tabela kullanımı hakkında ufak ve basit bir bilgi vereceğim.Lafı fazla uzatmadan anlatıma geçeyim.
1) Tabelanın Otomatik Değiştirilmesi
Öncelikli olarak tekrar bir etkinlik oluşturalım ve if li bir method kullanarak tabelamızı oluşturalım.Burada önemli olan yer tabelanın ilk kısmına ne yazacağımızdır.Bunu kod da daha iyi bir şekilde anlayabilirsiniz.
Gördüğünüz kodda eğer tabelanın ilk satırında test yazıyorsa o yazıyı otomatik değiştirip setline metodundaki yazılan değerlere atar.Üstünde oynama yapıp renklendirebilrisiniz.
Görünümü ;
2) Tabelaya Tıklayınca Mesaj Göndermesi
Bu bölümde tabelaya tıklandığı an yapılacak olan etkinliği belirteceğiz.Öncelikli olarak kısaca koddan bahsedeyim.İlk olarak yapacağımız ilk şey
etkinliği belirtmek.
1) Oyuncu bloğa tıkladığı zaman,
2) Tıklanan blok tabela ise
3) Tabelayı s olarak tanımladık.
4) ilk satırda 1 yazıyor ise
5) Oyuncuya mesaj yollama işlemini tanımladık.
6) Oyuncuya "Deneme" mesajını gönder
Görünümü;
3)Tabela Güncelleme
Bu bölüm tabelalar için önemli bir bölümdür.Veri kaybı yaşanmaması için kullanılması önemlidir.Biz tabelayı "s" olarak tanımladığımız için bu tanım üzerinden devam ediyorum..
4) Minigames Tabelaları
Arkadaşlar bu bölümde yapacağımız şey aslında çok basit burada yapmamız gereken mesela oyunların tabelasında 0/20 böyle bir şey görürsünüz.Bizde bu teoriye dayanarak şöyle bir uygulama yapacağız.Tabelaya tıklayınca 1/8 olacak ve oyuncular bastıkça artacak bir uygulama yapacağız.Hemen başlayalım
Öncelikli olarak tabelanın ilk satırına "Minigame" yazınca otomatik değiştirilmesi etkinliğini yazalım..
Ardından bu işlemi uyguladıktan sonra oyuncu sayısı belirleyeceğimiz bir uygulama yazacağız.Ben oyuncu sayısını sayi olarak tanimladım ve int veri tipimde sayımı belirtiyorum.
Burada 0 yapmamızın sebebi ilk değerin 0 olmasıdır.3.satıra bu değeri atıyorum.Burada 3. satır dediğimden kastım 0,1,2 yani setLine(2, "") olandır.
Not : Sadece sayinizin gözükmesini istiyorsanız bu kodu deneyin.
Şimdi bu bölüme geldiğimizde bir oyuncu tabelaya tıklayınca 1/8 olmasını ayarlıyacağız.
Bu bölümü sıra sıra açıklayacağım.
1) Verimizin adını sayi ve değerini 0 olarak belirttik.
2) Sağ tıklama etkinliğini belirttik.
3) Bloğun bulunduğu noktayı belirttik.
4) Tabelamız s olarak tanımladık ve bulunduğu bölgeyi ise bs olarak tanımladık.
5) Tabelamızın ikinci satırı "Deneme" ise.(Bu bölümü anlamadıysanız bir üst koda bakınız.)
6) sayi değerimiz 9'dan küçük ise sayı değerini 1 arttır dedik ve tabelaya uygula dedik.
7) sayi değerimiz 8'e eşitlendiği zaman ise sayi değerini 0 la dedik.
8) Tekrardan tabelaya 0/8 yazdırmasını sağladık.0 olmasının nedeni sayi değerini sıfırlamamızdır.
9) Tabelayı yenile
10) Else alanında ise tabela 8'i geçerse ne yapılmasını gerektiğini istedik.Ancak böyle bir şey yapmanıza gerek yok çünkü tabela 8'i geçtiği an 0'lanmasını istemiştik.
Tam kodumuzun hali ise şu durumda..
Görünümü ;
Arkadaşlar umarım istediğiniz gibi olur bu kodlamalar sadece eklenti yapımları için basit olan kısımlarıdır.Ben sizin için daha detaylı veremem elimden bu kadar geliyor.Ancak daha iyi bir tabela tabi ki yapabilirsiniz herkes farklı farklı algoritmalar uygulayabilir ve bu çok daha iyi olacaktır.Umarım beğenirsiniz.İyi Forumlar..
1) Tabelanın Otomatik Değiştirilmesi
Öncelikli olarak tekrar bir etkinlik oluşturalım ve if li bir method kullanarak tabelamızı oluşturalım.Burada önemli olan yer tabelanın ilk kısmına ne yazacağımızdır.Bunu kod da daha iyi bir şekilde anlayabilirsiniz.
Kod:
@EventHandler
public void onSignChange(SignChangeEvent e)
{
if (e.getLine(0).equalsIgnoreCase("test")) {
e.setLine(0, "Merhaba");
e.setLine(1, "Bu");
e.setLine(2, "bir");
e.setLine(3, "denemedir.");
}
}
Görünümü ;
2) Tabelaya Tıklayınca Mesaj Göndermesi
Bu bölümde tabelaya tıklandığı an yapılacak olan etkinliği belirteceğiz.Öncelikli olarak kısaca koddan bahsedeyim.İlk olarak yapacağımız ilk şey
etkinliği belirtmek.
1) Oyuncu bloğa tıkladığı zaman,
2) Tıklanan blok tabela ise
3) Tabelayı s olarak tanımladık.
4) ilk satırda 1 yazıyor ise
5) Oyuncuya mesaj yollama işlemini tanımladık.
6) Oyuncuya "Deneme" mesajını gönder
Kod:
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e2){
Player p = e2.getPlayer();
if (e2.getAction() != Action.RIGHT_CLICK_BLOCK) return;
if ((e2.getClickedBlock().getState() instanceof Sign)) {
Sign s = (Sign)e2.getClickedBlock().getState();
if (s.getLine(0).equalsIgnoreCase("1")) {
p.getPlayer().sendMessage("Deneme");
}
}
}
3)Tabela Güncelleme
Bu bölüm tabelalar için önemli bir bölümdür.Veri kaybı yaşanmaması için kullanılması önemlidir.Biz tabelayı "s" olarak tanımladığımız için bu tanım üzerinden devam ediyorum..
Kod:
s.update();
Arkadaşlar bu bölümde yapacağımız şey aslında çok basit burada yapmamız gereken mesela oyunların tabelasında 0/20 böyle bir şey görürsünüz.Bizde bu teoriye dayanarak şöyle bir uygulama yapacağız.Tabelaya tıklayınca 1/8 olacak ve oyuncular bastıkça artacak bir uygulama yapacağız.Hemen başlayalım
Öncelikli olarak tabelanın ilk satırına "Minigame" yazınca otomatik değiştirilmesi etkinliğini yazalım..
Kod:
@EventHandler
public void onSignChange(SignChangeEvent e)
{
if (e.getLine(0).equalsIgnoreCase("Minigame")) {
e.setLine(0, "[Minigame]");
e.setLine(1, "Deneme");
}
}
Kod:
int sayi = 0;
Kod:
int number = 0;
@EventHandler
public void onSignChange(SignChangeEvent e)
{
if (e.getLine(0).equalsIgnoreCase("Minigame")) {
e.setLine(0, "[Minigame]");
e.setLine(1, "Deneme");
e.setLine(2, sayi + "/8");
}
}
Kod:
e.setLine(2, sayi + "");
Bu bölümü sıra sıra açıklayacağım.
1) Verimizin adını sayi ve değerini 0 olarak belirttik.
2) Sağ tıklama etkinliğini belirttik.
3) Bloğun bulunduğu noktayı belirttik.
4) Tabelamız s olarak tanımladık ve bulunduğu bölgeyi ise bs olarak tanımladık.
5) Tabelamızın ikinci satırı "Deneme" ise.(Bu bölümü anlamadıysanız bir üst koda bakınız.)
6) sayi değerimiz 9'dan küçük ise sayı değerini 1 arttır dedik ve tabelaya uygula dedik.
7) sayi değerimiz 8'e eşitlendiği zaman ise sayi değerini 0 la dedik.
8) Tekrardan tabelaya 0/8 yazdırmasını sağladık.0 olmasının nedeni sayi değerini sıfırlamamızdır.
9) Tabelayı yenile
10) Else alanında ise tabela 8'i geçerse ne yapılmasını gerektiğini istedik.Ancak böyle bir şey yapmanıza gerek yok çünkü tabela 8'i geçtiği an 0'lanmasını istemiştik.
Kod:
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
if ((e.getClickedBlock().getState() instanceof Sign)) {
BlockState bs = e.getClickedBlock().getState();
Sign s = (Sign) bs;
if (s.getLine(1).equalsIgnoreCase("Deneme")) {
if (sayi < 9) {
sayi = sayi + 1;
s.setLine(2, sayi + "/8");
s.update();
if (sayi == 8) {
sayi=0;
s.setLine(2, sayi + "/8");
s.update();
} else {
//BURAYA KOD YAZMANIZA GEREK YOKTUR
}
}
}
}
}
Kod:
int sayi = 0;
@EventHandler
public void onSignChange(SignChangeEvent e3)
{
if (e3.getLine(0).equalsIgnoreCase("Minigame")) {
e3.setLine(0, "[Minigame]");
e3.setLine(1, "Deneme");
e3.setLine(2, sayi + "/8");
}
}
@EventHandler
public void onPlayerInteract(PlayerInteractEvent e) {
if (e.getAction() != Action.RIGHT_CLICK_BLOCK) return;
if ((e.getClickedBlock().getState() instanceof Sign)) {
BlockState bs = e.getClickedBlock().getState();
Sign s = (Sign) bs;
if (s.getLine(1).equalsIgnoreCase("Deneme")) {
if (sayi < 9) {
sayi = sayi + 1;
s.setLine(2, sayi + "/8");
s.update();
if (sayi == 8) {
sayi=0;
s.setLine(2, sayi + "/8");
s.update();
} else {
//BURAYA KOD YAZMANIZA GEREK YOKTUR
}
}
}
}
}
Arkadaşlar umarım istediğiniz gibi olur bu kodlamalar sadece eklenti yapımları için basit olan kısımlarıdır.Ben sizin için daha detaylı veremem elimden bu kadar geliyor.Ancak daha iyi bir tabela tabi ki yapabilirsiniz herkes farklı farklı algoritmalar uygulayabilir ve bu çok daha iyi olacaktır.Umarım beğenirsiniz.İyi Forumlar..
Son düzenleme: