Sol Reklam
Sağ Reklam

Bulundu NPC'ye shift basınca oyuncuyu geriye uçurma

Durum
Mesaj gönderimine kapalı.

dimitris831

Demir Cevheri Gibiyim

Discord:

dimitris831#0001

Katılım
31 Ocak 2020
Mesajlar
195
Elmaslar
44
Puanlar
0
Yaş
23
Yer
İzmir, Selçuk
Minecraft
dimitris831
Facebook
ichbindimitris
Twitter
dimitrisabiniz
Selam, SonOyuncu'da gördüğüm gibi NPC'nin içine girince, üstüne zıplayınca veya shift basınca geriye doğru uçuruluyorsunuz, bunu nasıl yaparım? İnternette araştırdım ama hiçbir yerde bulamadım.

Herhangi bir NPC'ye olmayacak bu arada, "Kılıçlar" ve "Bloklar" isimli iki NPC'ye, oyuncu yaklaşınca veya üstüne zıplayınca oyuncuyu geri uçurmasını istiyorum, teşekkürler.
Gönderi otomatik olarak birleştirildi:

Selam, SonOyuncu'da gördüğüm gibi NPC'nin içine girince, üstüne zıplayınca veya shift basınca geriye doğru uçuruluyorsunuz, bunu nasıl yaparım? İnternette araştırdım ama hiçbir yerde bulamadım.

Herhangi bir NPC'ye olmayacak bu arada, "Kılıçlar" ve "Bloklar" isimli iki NPC'ye, oyuncu yaklaşınca veya üstüne zıplayınca oyuncuyu geri uçurmasını istiyorum, teşekkürler.

Eğer yapılabiliyorsa Skript daha iyi olur.
 

Buhari

Software Developer
Yönetici
Emektar
Onaylı Satıcı

Discord:

xBuhari

Katılım
6 Eylül 2017
Mesajlar
1.878
Elmaslar
1.008
Puanlar
18.150
Discord İzni
Minecraft
xBuhari
Kod:
on right click on a entity:
    name of entity is "Kılıçlar" or "Bloklar"
    push player backwards at speed 4

on any movement:
    set {_test} to player's location   
    loop entities in radius 5 of {_test}'s location:
        name of loop-entity is "Kılıçlar" or "Bloklar"
        push player backwards at speed 4

Lag yapabilir. SkQuery , Skrayfall gereklidir.
 

dimitris831

Demir Cevheri Gibiyim

Discord:

dimitris831#0001

Katılım
31 Ocak 2020
Mesajlar
195
Elmaslar
44
Puanlar
0
Yaş
23
Yer
İzmir, Selçuk
Minecraft
dimitris831
Facebook
ichbindimitris
Twitter
dimitrisabiniz
Kod:
on right click on a entity:
    name of entity is "Kılıçlar" or "Bloklar"
    push player backwards at speed 4

on any movement:
    set {_test} to player's location  
    loop entities in radius 5 of {_test}'s location:
        name of loop-entity is "Kılıçlar" or "Bloklar"
        push player backwards at speed 4

Lag yapabilir. SkQuery , Skrayfall gereklidir.

Beni sürekli fırlatıyor ve buga sokuyor, hareket edemiyorum.
 

Buhari

Software Developer
Yönetici
Emektar
Onaylı Satıcı

Discord:

xBuhari

Katılım
6 Eylül 2017
Mesajlar
1.878
Elmaslar
1.008
Puanlar
18.150
Discord İzni
Minecraft
xBuhari
Kod:
on right click on a entity:
    name of entity is "Kılıçlar" or "Bloklar"
    push player backwards at speed 4

on any movement:
    set {_test} to player's location   
    loop entities in radius 1 of {_test}'s location:
        name of loop-entity is "Kılıçlar" or "Bloklar"
        push player backwards at speed 0.7

Şimdi dener misin ayarları az kıstım.
 

AhmetDinc

Bir Kömür Göründü Kaptanım!

Discord:

AhmetDinc#0605

Katılım
18 Kasım 2017
Mesajlar
101
Elmaslar
74
Puanlar
8.975
Yaş
22
Minecraft
iKl0udy
Kod:
on right click on a entity:
    name of entity is "Kılıçlar" or "Bloklar"
    push player backwards at speed 4

on any movement:
    set {_test} to player's location  
    loop entities in radius 1 of {_test}'s location:
        name of loop-entity is "Kılıçlar" or "Bloklar"
        push player backwards at speed 0.7

Şimdi dener misin ayarları az kıstım.
? set {_entities::*} to all entities where [distance between input's location and player's location is less than 1]

Bunuda önermiyorum,

Bir region yaratın npcnin olduğu yerde


Kod:
on region enter:
    region's name is "npc1":
        push player backwards at 0.7
 

Buhari

Software Developer
Yönetici
Emektar
Onaylı Satıcı

Discord:

xBuhari

Katılım
6 Eylül 2017
Mesajlar
1.878
Elmaslar
1.008
Puanlar
18.150
Discord İzni
Minecraft
xBuhari
? set {_entities::*} to all entities where [distance between input's location and player's location is less than 1]

Bunuda önermiyorum,

Bir region yaratın npcnin olduğu yerde


Kod:
on region enter:
    region's name is "npc1":
        push player backwards at 0.7
Java:
    final static void callEvent(final Region r, final PlayerMoveEvent me, final boolean enter) {
        final Player p = me.getPlayer();
        assert p != null;
        final RegionBorderEvent e = new RegionBorderEvent(r, p, enter);
        e.setCancelled(me.isCancelled());
        for (final Trigger t : triggers) {
            if (((EvtRegionBorder) t.getEvent()).applies(e))
                t.execute(e);
        }
        me.setCancelled(e.isCancelled());
    }

Skripttin o sınıfını incelediğimizde move eventinden yararlandığı gözüküyor. Yani birisinde sadece 1 block çevresindeki entityleri looplayacak birisinde de regionları. Yani pek değişen bir şey olmayacak. Ama yine de kullanılabilir.
 

AhmetDinc

Bir Kömür Göründü Kaptanım!

Discord:

AhmetDinc#0605

Katılım
18 Kasım 2017
Mesajlar
101
Elmaslar
74
Puanlar
8.975
Yaş
22
Minecraft
iKl0udy
Java:
    final static void callEvent(final Region r, final PlayerMoveEvent me, final boolean enter) {
        final Player p = me.getPlayer();
        assert p != null;
        final RegionBorderEvent e = new RegionBorderEvent(r, p, enter);
        e.setCancelled(me.isCancelled());
        for (final Trigger t : triggers) {
            if (((EvtRegionBorder) t.getEvent()).applies(e))
                t.execute(e);
        }
        me.setCancelled(e.isCancelled());
    }

Skripttin o sınıfını incelediğimizde move eventinden yararlandığı gözüküyor. Yani birisinde sadece 1 block çevresindeki entityleri looplayacak birisinde de regionları. Yani pek değişen bir şey olmayacak. Ama yine de kullanılabilir.
O zaman, on any move gibi sürekli kullanılan bir event yerine, every seconds kat kat daha iyidir.
Kod:
Every 3 Second:
    async:
        set {_loc} to x, y, z, at world "world"
        loop all players in radius 1 of {_loc}: // all entities where [input......] Şuanki kullandığım daha sağlıklı gibi geliyor.
            push loop-player backwards at speed 0.7
Async için mundo sk gerekiyordu sanırsam.
 

Buhari

Software Developer
Yönetici
Emektar
Onaylı Satıcı

Discord:

xBuhari

Katılım
6 Eylül 2017
Mesajlar
1.878
Elmaslar
1.008
Puanlar
18.150
Discord İzni
Minecraft
xBuhari
O zaman, on any move gibi sürekli kullanılan bir event yerine, every seconds kat kat daha iyidir.
Kod:
Every 3 Second:
    async:
        set {_loc} to x, y, z, at world "world"
        loop all players in radius 1 of {_loc}: // all entities where [input......] Şuanki kullandığım daha sağlıklı gibi geliyor.
            push loop-player backwards at speed 0.7
Adam 3. saniyenin bittiği zaman npcnin yanına gelirse 3 saniye bekleyecek. Bence 1 blok çevresindeki entityleri looplarken sıkıntı olmayacaktır. Zaten yakınında entity yoksa null döndürecek.
 

AhmetDinc

Bir Kömür Göründü Kaptanım!

Discord:

AhmetDinc#0605

Katılım
18 Kasım 2017
Mesajlar
101
Elmaslar
74
Puanlar
8.975
Yaş
22
Minecraft
iKl0udy
Adam 3. saniyenin bittiği zaman npcnin yanına gelirse 3 saniye bekleyecek. Bence 1 blok çevresindeki entityleri looplarken sıkıntı olmayacaktır. Zaten yakınında entity yoksa null döndürecek.
on any movement aşırı kullanılan bir event diye biliyorum. Sunucular çok oyuncu olduğu zaman ölecektir. Every 1 seconds da kullanılabilir.
 

Buhari

Software Developer
Yönetici
Emektar
Onaylı Satıcı

Discord:

xBuhari

Katılım
6 Eylül 2017
Mesajlar
1.878
Elmaslar
1.008
Puanlar
18.150
Discord İzni
Minecraft
xBuhari
on any movement aşırı kullanılan bir event diye biliyorum. Sunucular çok oyuncu olduğu zaman ölecektir. Every 1 seconds da kullanılabilir.

Bu seferde her saniye loop all players kullanacağız :D. Her türlü zarardayız ama zararın neresinden dönersek karda oluruz.
Gönderi otomatik olarak birleştirildi:

Sorun çözüldü mü ? Kilitleyelim mi ?
 
Son düzenleme:
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı