Yardım Kısa bir istek

RigbGT

Ağaç Yumruklayıcı
Mesajlar
39
En iyi cevaplar
1
Beğeniler
9
Puanları
200
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ı
Mesajlar
39
En iyi cevaplar
1
Beğeniler
9
Puanları
200
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 ?
 

BorakanT

ben kimim?
Mesajlar
1,753
En iyi cevaplar
7
Beğeniler
1,732
Puanları
4,850
Ruh hali
@Thanagor @KardasLand kod istemek yerine kendin de deneyebilirsin. Thanagor ve KardasLand yardım edecektir bu konuda.
 

mcvzr

Sudan Çıkmış
Mesajlar
5
En iyi cevaplar
1
Beğeniler
1
Puanları
20
ç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
Mesajlar
355
En iyi cevaplar
22
Beğeniler
129
Puanları
890
Ruh hali
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