[SK] Görev

MeeRach

Vi3e
En iyi cevaplar
0
Merhaba arkadaşlar, uzun zamandır skript kodlamıyordum,
Sunucum için bir görev skripti kodlamıştım,
Sizinle paylaşayım dedim.

Hatam varsa,önceden yapıldıysa kusura bakmayın.
İyi Forumlar

Görevler;
Zombi.
Kırıktaş.
Demir.

Komutlar;
NPC oluşturmak için, /gorev npc
Görevi iptal etmek için, /gorev iptal

Bilgi;
NPC'e sağ tıklayınca bir menü açılır,
Menüde 3 görev olacaktır,
Biri demir cevheri, biri kırıktaş, biri de zombi kafası.
Eğer oyuncu bunlardan birine tıklarsa görev başlar.
Bir görev birden fazla yapılabilir.
Görev yapılırken başka bir görev yapılmaz.

Çalışma şekli;
16 zombi öldürünce "16 zombi öldürdün" yazısı gelir.
Envanterde 32 tane kırık taş olmasıyla görev bitmez,
32 tane kırık taş kırılınca görev biter, kırık taşlar gitmez.
Envanterde 120 tane demir olmasıyla görev bitmez,
120 tane demir cevheri kırılınca görev biter, demirler gitmez.

Kod;
Kod:
command /gorev [<text>] [<text>]:
    trigger:
        arg 1 is not set:
            send "&7/gorev &3&o<iptal> <gorev>"
        arg 1 is "npc":
            player is op:
                spawn villager at player
                set spawned villager's display name to "&a&lGörev"
                apply slowness 99999 to spawned villager for 999 days
                apply jump -100 to spawned villager for 999 days
        arg 1 is "iptal":
            send "&c&lGorevler; &a&lzombi,demir,kiriktas"
            arg 2 is "zombi":
                {gorev.%player%.zombi} is 0:
                    send "&aZombi görevi iptal edildi."
                    delete {gorev.%player%.zombi}
                    delete {goreve.basladi.%player%}
                    delete {zombi.oldurdu.%player%}
                else:
                    send "&aBu görevi almadın."
            arg 2 is "demir":
                {gorev.%player%.demir} is 0:
                    send "&aDemir görevi iptal edildi."
                    delete {gorev.%player%.demir}
                    delete {goreve.basladi.%player%}
                    delete {demir.topladi.%player%}
                else:
                    send "&aBu görevi almadın."
            arg 2 is "kiriktas":
                {gorev.%player%.kiriktas} is 0:
                    send "&aKiriktas görevi iptal edildi."
                    delete {gorev.%player%.kiriktas}
                    delete {goreve.basladi.%player%}
                    delete {kiriktas.topladi.%player%}
                else:
                    send "&aBu görevi almadın."
on rightclick on a villager:
    villager's name is "&a&lGörev":
        cancel event
        open chest with 1 row named "" to player
        wait 3 tick
        {goreve.basladi.%player%} is not set:
            format slot 0 of player with cobblestone named "&7Kiriktas" with lore "&c32 kiriktas --> &9150 RP" to close then run "gorevbaslat %player% kiriktas"
            format slot 1 of player with iron ore named "&7Demir" with lore "&c120 demir cevheri --> &b16 elmas + &a300 RP" to close then run "gorevbaslat %player% demir"
            format slot 2 of player with zombie head named "&7Zombi" with lore "&c16 zombi --> &a350 RP + &c1 elmas" to close then run "gorevbaslat %player% zombi"
        else:
            format slot 0 of player with nether star named "&7Kiriktas-Bitir" to close then run "gorevbitir %player% kiriktas"
            format slot 1 of player with nether star named "&7Demir-Bitir" to close then run "gorevbitir %player% demir"
            format slot 2 of player with nether star named "&7Zombi-Bitir" to close then run "gorevbitir %player% zombi"
command /gorevbaslat [<player>] [<text>]:
    executable by: console
    trigger:
        arg 2 is "zombi":
            arg 1 is set:
                set {goreve.basladi.%arg-1%} to true
                set {gorev.%arg-1%.zombi} to 0
                set {zombi.oldurdu.%arg 1%} to 0
                send "&cZombi görevine basladin, 16 zombi öldür ve gel." to arg-1
        arg 2 is "kiriktas":
            arg 1 is set:
                set {goreve.basladi.%arg-1%} to true
                set {gorev.%arg-1%.kiriktas} to 0
                set {kiriktas.topladi.%arg 1%} to 0
                send "&cKırıktaş görevine basladin, 32 kırıktaş topla ve gel." to arg-1               
        arg 2 is "demir":
            arg 1 is set:
                set {goreve.basladi.%arg-1%} to true
                set {gorev.%arg-1%.demir} to 0
                set {demir.topladi.%arg 1%} to 0
                send "&cDemir görevine basladin, 120 demir cevheri topla ve gel." to arg-1
command /gorevbitir [<player>] [<text>]:
    executable by: console
    trigger:
        arg 2 is "zombi":
            arg 1 is set:
                {gorev.%arg 1%.zombi} is 0:
                    if {zombi.oldurdu.%arg 1%} is greater than 16:
                        delete {gorev.%arg-1%.zombi}
                        delete {zombi.oldurdu.%arg 1%}
                        delete {goreve.basladi.%arg 1%}
                        send "&cZombi görevini basari ile bitirdin." to arg-1
                        send "&a+350 TL &c+ &a1 elmas" to arg-1
                        add 350 to player's balance
                        give 1 diamond to arg-1
                    else:
                        send "&4Henüz 16 zombi öldürmedin, senin öldürdüğün --> &a%{zombi.oldurdu.%arg 1%}%" to arg-1
                        send "&aEğer 16 ise ve görev bitmiyorsa 1 tane daha öldür." to arg-1
                else:
                    send "&4Bu göreve baslamadin!" to arg-1                       
        arg 2 is "kiriktas":
            arg 1 is set:
                {gorev.%arg 1%.kiriktas} is 0:
                    if {kiriktas.topladi.%arg 1%} is greater than 31:
                        delete {gorev.%arg-1%.kiriktas}
                        delete {kiriktas.topladi.%arg 1%}
                        delete {goreve.basladi.%arg 1%}
                        send "&cKiriktas görevini basari ile bitirdin." to arg-1
                        send "&a+150 TL" to arg-1
                        add 150 to player's balance
                    else:
                        send "&4Henüz 32 kiriktas toplamadin, senin topladigin --> &a%{kiriktas.topladi.%arg 1%}%" to arg-1
                        send "&aEğer 32 ise bir tane daha topla" to arg-1
                else:
                    send "&4Bu göreve baslamadin!" to arg-1
        arg 2 is "demir":
            arg 1 is set:
                {gorev.%arg 1%.demir} is 0:
                    if {demir.topladi.%arg 1%} is greater than 119:
                        delete {gorev.%arg-1%.demir}
                        delete {demir.topladi.%arg 1%}
                        delete {goreve.basladi.%arg 1%}
                        send "&cDemir görevini basari ile bitirdin." to arg-1
                        send "&a16 elmas" to arg-1
                        give 16 diamond to arg-1
                        execute console command "/eco give %arg 1% 300"
                    else:
                        send "&4Henüz 120 demir cevheri toplamadin, senin topladigin --> &a%{demir.topladi.%arg 1%}%" to arg-1
                        send "&aEğer 120 ise bir tane daha topla" to arg-1
                else:
                    send "&4Bu göreve baslamadin!" to arg-1                       
on break:
    block is iron ore:
        {gorev.%player%.demir} is 0:
            add 1 to {demir.topladi.%player%}
            if {demir.topladi.%player%} is greater than 119:
                send "&6[&8Gorev&6] &a120 demir cevheri topladin." to player
    block is cobblestone or stone:
        {gorev.%player%.kiriktas} is 0:
            add 1 to {kiriktas.topladi.%player%}
            if {kiriktas.topladi.%player%} is greater than 31:
                send "&6[&8Gorev&6] &a32 kiriktas topladin." to player
on death of zombie:
    {gorev.%attacker%.zombi} is 0:
        add 1 to {zombi.oldurdu.%attacker%}
        if {zombi.oldurdu.%attacker%} is greater than 15:
            send "&6[&8Gorev&6] &a16 zombi öldürdün." to attacker
on damage:
    victim's display name is "&a&lGörev":
        cancel event
on rightclick on villager:
    villager's name is "&a&lGörev":
        if player is sneaking:
            player is op:
                kill targeted entity
 
Son düzenleme:

iZeckGH

Obsidyen Madencisi
En iyi cevaplar
0
Bi ara yapmaya başlamıştım yarıda üşendim bıraktım :)
-Güzel Olmuş
 

korkugunu

Kızıltaş Madencisi
En iyi cevaplar
0
Herşeyin otomatik olarak yapılanını yapıyordum bundan 3 ay önce üşendim bıraktık otomatik derken bütün görev çeşitleri admin tarafından belirleniyordu tabii üşendim öyle bir şey yapabilirsen güzel olabilir.
 

MeeRach

Vi3e
En iyi cevaplar
0
Herşeyin otomatik olarak yapılanını yapıyordum bundan 3 ay önce üşendim bıraktık otomatik derken bütün görev çeşitleri admin tarafından belirleniyordu tabii üşendim öyle bir şey yapabilirsen güzel olabilir.
Loopları iyice kavradıktan sonra yapacağım ilk iş olacak.
Teşekkür ederim.
Bi ara yapmaya başlamıştım yarıda üşendim bıraktım :)
-Güzel Olmuş
Bende canım sıkıldıkça yazıyorum işte :D
-Teşekkürler.
 
Üst