Yardım Minecraft Oyuncudan Sandık Düşürme Skripti

RigbGT

Ağaç Yumruklayıcı
En iyi cevaplar
1
Oyun Sürümü
1.12.2
Kod:
on death:
    if attacker is a player:
        if victim is a zombie:
            set {_drops::*} to drops
            set {_victimdeadloc} to victim's location
            set {öldüren.%player%} to name of attacker
            clear drops
            drop 1 chest named "&6Sandık &e(%{öldüren.%player%}%)" at {_victimdeadloc}
                   
on pickup of chest:
    if player is sneaking:
        if name of event-item is "&eSandık &6(%{öldüren.%player%}%)":
            if {öldüren.%player%} = player:
                if event-location is {_victimdeadloc}:
                    cancel event
                    clear event-entity
                    loop {_drops::*}:
                        send message "Sandık toplanıyor..." to player
                        add loop-value to player's inventory
                        delete {_drops::*}
                        stop
    else:
        cancel event
İstediğim şey zombie ölünce drop u kaydetmek yere düşenleri silmek ve yere öldüren kişiye ait bir sandık düşürmek.Eğer yerdeki sandık öldüren oyuncuya aitse düşen sandığın üzerine gelip eğildiğinde sandığı silecek ve zombiden düşen kaydettiğimiz loot u oyuncuya vermek.Yere sandık düşmesi ve oyuncunun eğilip almasına kadar okey ama eğilip aldığında direk sandığı veriyor.Sandığı silip kaydedilen loot u vermesini nasıl sağlarım.
 
Son düzenleme:

RigbGT

Ağaç Yumruklayıcı
En iyi cevaplar
1
Kod:
on death:
    if attacker is a player:
        if victim is a zombie:
            set {_drops::*} to drops
            set {_victimdeadloc} to victim's location
            set {öldüren.%player%} to name of attacker
            clear drops
            drop 1 chest named "&6Sandık &e(%{öldüren.%player%}%)" at {_victimdeadloc}
                  
on pickup of chest:
    if player is sneaking:
        if name of event-item is "&eSandık &6(%{öldüren.%player%}%)":
            if {öldüren.%player%} = player:
                if event-location is {_victimdeadloc}:
                    cancel event
                    clear event-entity
                    loop {_drops::*}:
                        send message "Sandık toplanıyor..." to player
                        add loop-value to player's inventory
                        delete {_drops::*}
                        stop
    else:
        cancel event
İstediğim şey zombie ölünce drop u kaydetmek yere düşenleri silmek ve yere öldüren kişiye ait bir sandık düşürmek.Eğer yerdeki sandık öldüren oyuncuya aitse düşen sandığın üzerine gelip eğildiğinde sandığı silecek ve zombiden düşen kaydettiğimiz loot u oyuncuya vermek.Yere sandık düşmesi ve oyuncunun eğilip almasına kadar okey ama eğilip aldığında direk sandığı veriyor.Sandığı silip kaydedilen loot u vermesini nasıl sağlarım.
Yardım edebilecek yok mu ?
 

mcvzr

Sudan Çıkmış
En iyi cevaplar
1
çalışmamasının birkaç mantıksal olarak hatası var;

1.
Kod:
set {_victimdeadloc} to victim's location
Kısmında Oluşturduğun Location İle
Kod:
if event-location is {_victimdeadloc}:
Bu kısımda denkliğini kontrol ettiğin evet-location denkleşmez. Az da olsa hata payı var buda eşlenmemesi için yeterlidir.

deee.png


Aradaki fark az olsa da sonuç false döner eşitlikten.

2. sebep ise zaten senin
Kod:
if event-location is {_victimdeadloc}:
kısmında event-location değeri dönmüyor sebebini tam olarak bilmiyorum fakat kontrol edersen
Kod:
if name of event-item is "&eSandık &6(%{öldüren.%player%}%)":
Kısmından sonra event-location kısmını elde edemiyorsun.

3.sebep ise

Kod:
{_drops::*}
Değişkenini geçiçi değişken olarak yapmışsın ve chest pickup kısmında doğrudan erişmek istemişsindir bu tür değişkenlere doğrudan başka eventlerde erişim sağlanılmıyor mlsf.
 

na2000

Altın Madencisi
En iyi cevaplar
54
Kod:
on death:
    add 1 to {holo::%attacker%}
    attacker is a player
    victim is a zombie
    clear drops
    set {_locationvic} to victim's location
    drop 1 chest named "&6Loot Sandık &8[&e%attacker%&8]" at {_locationvic}
    create holo object "&6Loot Sandık &8[&e%attacker%&8]" with id "%{holo::%attacker%}%" at location 1.5 meters above victim
on pickup of chest:
    if name of event-item is "&6Loot Sandık &8[&e%player%&8]":
        cancel event
        clear event-entity
        loop 10 times:
            chance of 10%:
                give 1 rotten flesh to player
        delete holo object "%{holo::%player%}%"
        add -1 to {holo::%player%} 
on first join:
    set {holo::%player%} to 1
Buyur bu çalışıyor. Sadece dropları kaydetmek yerine %10 şansla çürük et veriyor. (10 defalık loopun içinde yani aşırı şansız değilsen en az 1 en fazla 10 adet çürük et gelir.) Ayrıca sandığı eğilerek değil direk üstüne geldiğinde alıyor. Herhangi bir sıkıntı varsa söylersin. Umarım yardımcı olabilmişimdir ^^
 
Son düzenleme:
Üst