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

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

dimitris831

Demir Cevheri Gibiyim
Katılım
31 Ocak 2020
Mesajlar
194
Elmaslar
43
Puan
0
Yaş
25
Konum
İzmir, Selçuk
Minecraft
dimitris831
Facebook
ichbindimitris
X
dimitrisabiniz

Discord:

dimitris831#0001

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.
 
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.
 
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.
 
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.
 
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
 
? 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.
 
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.
 
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.
 
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.
 
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
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst