Çözüldü Sk Yardım

  • Konuyu Başlatan Konuyu Başlatan BuzTacı
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 543
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

BuzTacı

Demir Cevheri Gibiyim
Katılım
6 Eylül 2024
Mesajlar
187
Elmaslar
14
Puan
745
Yaş
15
Konum
Türkiye
Minecraft
texas41

Discord:

texas41_

Merhaba Forum Üyeleri

şimdi bizim bir menümüz var bu menude 3 çeşit dunya olcak
şuanlık Elysium var bu dunyaya gidince /mvtp dunya ismi ile gidince
dunyanın spawnına atıyor bu atmasın enson nerde kaldıysa ordan devam etsin

mesela 300x300 luk bir alana rastegele ışınlansın aşağı dussun y = 120 olcak mesela
Tüy düşüşü efecti vericek 20 saniyelik ozamana kadar adam iner zaten
adam oynıcak /spawn çekiçek sonra geri gelcek yine aynı konumda kalsın
spawnla oynancak dunya ayrı olcak

Sürüm 1.18.2
 
Merhaba Forum Üyeleri

şimdi bizim bir menümüz var bu menude 3 çeşit dunya olcak
şuanlık Elysium var bu dunyaya gidince /mvtp dunya ismi ile gidince
dunyanın spawnına atıyor bu atmasın enson nerde kaldıysa ordan devam etsin

mesela 300x300 luk bir alana rastegele ışınlansın aşağı dussun y = 120 olcak mesela
Tüy düşüşü efecti vericek 20 saniyelik ozamana kadar adam iner zaten
adam oynıcak /spawn çekiçek sonra geri gelcek yine aynı konumda kalsın
spawnla oynancak dunya ayrı olcak

Sürüm 1.18.2
Yarın 20:00 gibi kodu atarım. O zamana kadar mantığı biraz daha anlatabilir misin? Tam anlayamadım.
 
Yarın 20:00 gibi kodu atarım. O zamana kadar mantığı biraz daha anlatabilir misin? Tam anlayamadım.
son oyuncu veya craft rise oynadın mı hiç survival amatist ve survival titanyumdaki gibi mantık
 
Kod:
on quit:
    if player is in world "Dünyaİsmi":
        set {location::%player's uuid%} to player's location

on join:
    teleport player to {location::%player's uuid%}

Bu skripti denermisin, oyuncu oyundan çıkmadan önceki konumunu kaydeder ve tekrar girdiğinde kaydedilen yerden başlar, kaydetme işlemi otomatiktir.
 
RTP Eklentilerine Göz Atabilirsin
Merhaba Forum Üyeleri

şimdi bizim bir menümüz var bu menude 3 çeşit dunya olcak
şuanlık Elysium var bu dunyaya gidince /mvtp dunya ismi ile gidince
dunyanın spawnına atıyor bu atmasın enson nerde kaldıysa ordan devam etsin

mesela 300x300 luk bir alana rastegele ışınlansın aşağı dussun y = 120 olcak mesela
Tüy düşüşü efecti vericek 20 saniyelik ozamana kadar adam iner zaten
adam oynıcak /spawn çekiçek sonra geri gelcek yine aynı konumda kalsın
spawnla oynancak dunya ayrı olcak

Sürüm 1.18.2
 
/dunyaısınlan yazdımı dunyada rastgele bir yere atsın oyuncuyu y 120 konumunda hasar almasın yere düşerken çık gir yaptımıda aynı dunyada kalsın bide mesela /spawn a gitti tekrar aynı komutu kullandı oldugu yerde kalsın
o sk yı kullanırım
Kod:
on quit:
    if player is in world "Dünyaİsmi":
        set {location::%player's uuid%} to player's location

on join:
    teleport player to {location::%player's uuid%}

Bu skripti denermisin, oyuncu oyundan çıkmadan önceki konumunu kaydeder ve tekrar girdiğinde kaydedilen yerden başlar, kaydetme işlemi otomatiktir.
 
Son düzenleme:
Python:
options:
    world: "world" # buraya dünya ismi gir, dünyaışınlan komutu girildiğinde bu dünyaya atacak.
    area: 300 # 300x300'lük bir alanda lokasyon bulacak.
    blacklistedUnderBlocks: lava or water or air # seçilen lokasyonun altında istenilmeyen bloklar.


command /dunyaisinlan:
    trigger:
        if world of player isn't {@world}:
            if {lastLocation::%player%} is set:
                teleport player to {lastLocation::%player%}
                stop


            set {_loc1} to spawn of world {@world}
            set {_loc2} to spawn of world {@world}

            set y-coord of {_loc1} to 0
            set y-coord of {_loc2} to 0


            add {@area} to {_loc1}'s x-coord
            add {@area} to {_loc1}'s z-coord

            remove {@area} from {_loc2}'s x-coord
            remove {@area} from {_loc2}'s z-coord


            set {_loc} to getRandomLocation({_loc1}, {_loc2})

            while isSafeToTeleport({_loc}) isn't true:
                add 1 to y-coord of {_loc}
                if y-coord of {_loc} > 200:
                    set {_loc} to getRandomLocation({_loc1}, {_loc2})



            teleport player to {_loc}



        else:
            send "&cBu dünyada bu komutu kullanamazsın." to player
            play sound "block.note_block.bass" at pitch 0.5 to player
            

on quit:
    if world of player is {@world}:
        set {lastLocation::%player%} to location of player

on teleport:
    if world of past event-location is {@world}:
        set {lastLocation::%player%} to past event-location


local function getRandomLocation(loc1: location, loc2: location) :: location:

    set {_randomX} to random number between x-coord of {_loc1} and x-coord of {_loc2}
    set {_randomZ} to random number between z-coord of {_loc1} and z-coord of {_loc2}

    set {_loc} to location(0,0,0, world of {_loc1})

    set x-coord of {_loc} to {_randomX}
    set y-coord of {_loc} to 0
    set z-coord of {_loc} to {_randomZ}


    return {_loc}




local function isSafeToTeleport(loc: location) :: boolean:

    set {_blockabove} to {_loc}
    add 1 to y-coord of {_blockabove}

    set {_block2above} to {_loc}
    add 2 to y-coord of {_block2above}

    if (block at {_loc}) or (block at {_blockabove}) or (block at {_block2above}) is solid:
        return false

    if block under {_loc} is {@blacklistedUnderBlocks}:
        return false

    if block under {_loc} isn't solid:
        return false

    return true

Şunu dener misin? Hiç test etmedim. Hata veya sorun varsa yollarsın. (options kısmını okumayı unutma.)
 
buna şey ekleyebilirmisiniz bunu Elysium dunyasında kullandımı zaten bu dunyasındasın diye hata versin
Python:
options:
    world: "world" # buraya dünya ismi gir, dünyaışınlan komutu girildiğinde bu dünyaya atacak.
    area: 300 # 300x300'lük bir alanda lokasyon bulacak.
    blacklistedUnderBlocks: lava or water or air # seçilen lokasyonun altında istenilmeyen bloklar.


command /dunyaisinlan:
    trigger:
        if world of player isn't {@world}:
            if {lastLocation::%player%} is set:
                teleport player to {lastLocation::%player%}
                stop


            set {_loc1} to spawn of world {@world}
            set {_loc2} to spawn of world {@world}

            set y-coord of {_loc1} to 0
            set y-coord of {_loc2} to 0


            add {@area} to {_loc1}'s x-coord
            add {@area} to {_loc1}'s z-coord

            remove {@area} from {_loc2}'s x-coord
            remove {@area} from {_loc2}'s z-coord


            set {_loc} to getRandomLocation({_loc1}, {_loc2})

            while isSafeToTeleport({_loc}) isn't true:
                add 1 to y-coord of {_loc}
                if y-coord of {_loc} > 200:
                    set {_loc} to getRandomLocation({_loc1}, {_loc2})



            teleport player to {_loc}



        else:
            send "&cBu dünyada bu komutu kullanamazsın." to player
            play sound "block.note_block.bass" at pitch 0.5 to player
           

on quit:
    if world of player is {@world}:
        set {lastLocation::%player%} to location of player

on teleport:
    if world of past event-location is {@world}:
        set {lastLocation::%player%} to past event-location


local function getRandomLocation(loc1: location, loc2: location) :: location:

    set {_randomX} to random number between x-coord of {_loc1} and x-coord of {_loc2}
    set {_randomZ} to random number between z-coord of {_loc1} and z-coord of {_loc2}

    set {_loc} to location(0,0,0, world of {_loc1})

    set x-coord of {_loc} to {_randomX}
    set y-coord of {_loc} to 0
    set z-coord of {_loc} to {_randomZ}


    return {_loc}




local function isSafeToTeleport(loc: location) :: boolean:

    set {_blockabove} to {_loc}
    add 1 to y-coord of {_blockabove}

    set {_block2above} to {_loc}
    add 2 to y-coord of {_block2above}

    if (block at {_loc}) or (block at {_blockabove}) or (block at {_block2above}) is solid:
        return false

    if block under {_loc} is {@blacklistedUnderBlocks}:
        return false

    if block under {_loc} isn't solid:
        return false

    return true

Şunu dener misin? Hiç test etmedim. Hata veya sorun varsa yollarsın. (options kısmını okumayı unutma.)
 
buna şey ekleyebilirmisiniz bunu Elysium dunyasında kullandımı zaten bu dunyasındasın diye hata versin
Zaten öyle yaptım. En yukardaki world kısmını Elysium olarak değiştirebilirsin.
 
Zaten öyle yaptım. En yukardaki world kısmını Elysium olarak değiştirebilirsin.
hata veriyor yazıncada peki bunu Elysium dunyasında kullandımı komutu /kaptan komutunu açsın yapabilirmisniz
 
Nasıl bir hata aldın?
[22:54:05 INFO]: bybuzs issued server command: /elysium
[22:54:05 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'elysium' in plugin Skript v2.9.1
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:159) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_18_R2.CraftServer.dispatchCommand(CraftServer.java:906) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleCommand(ServerGamePacketListenerImpl.java:2307) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleChat(ServerGamePacketListenerImpl.java:2118) ~[?:?]
at net.minecraft.server.network.ServerGamePacketListenerImpl.handleChat(ServerGamePacketListenerImpl.java:2099) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundChatPacket.handle(ServerboundChatPacket.java:46) ~[?:?]
at net.minecraft.network.protocol.game.ServerboundChatPacket.a(ServerboundChatPacket.java:6) ~[?:?]
at net.minecraft.network.protocol.PacketUtils.lambda$ensureRunningOnSameThread$1(PacketUtils.java:51) ~[?:?]
at net.minecraft.server.TickTask.run(TickTask.java:18) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1400) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:188) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1377) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1370) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1348) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1230) ~[paper-1.18.2.jar:git-Paper-388]
at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:316) ~[paper-1.18.2.jar:git-Paper-388]
at java.lang.Thread.run(Thread.java:842) ~[?:?]
Caused by: java.lang.NoSuchMethodError: 'void org.bukkit.entity.Player.playSound(org.bukkit.entity.Entity, java.lang.String, org.bukkit.SoundCategory, float, float)'
at ch.njol.skript.effects.EffPlaySound.execute(EffPlaySound.java:157) ~[?:?]
at ch.njol.skript.lang.Effect.run(Effect.java:49) ~[?:?]
at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:61) ~[?:?]
at ch.njol.skript.lang.TriggerItem.walk(TriggerItem.java:88) ~[?:?]
at ch.njol.skript.lang.Trigger.execute(Trigger.java:52) ~[?:?]
at ch.njol.skript.command.ScriptCommand.execute2(ScriptCommand.java:345) ~[?:?]
at ch.njol.skript.command.ScriptCommand.lambda$execute$0(ScriptCommand.java:304) ~[?:?]
at ch.njol.skript.command.ScriptCommand.execute(ScriptCommand.java:315) ~[?:?]
at ch.njol.skript.command.ScriptCommand.onCommand(ScriptCommand.java:250) ~[?:?]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[paper-api-1.18.2-R0.1-SNAPSHOT.jar:?]
... 21 more
 
Kodu değiştirdin mi? Değiştirdiysen son versiyonunu atar mısın? /elysium olarak kaydetmemiştim komutu.

Ayrıca kodu yükledikten sonra sunucunu yeniden başlatmayı unutma.
 
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