Paste #38314: Untitled Paste

Date: 2016/12/14 11:23:56 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


buy_coal_npc:
    type: assignment

    default constants:
        # kostnad per durabilitypoint
        repairdurability: 3
        # kostnad för lvl av enchant 
        repairenchant: 200

#1) Namnge NPC
#2) Byt ut "NPC_NAMN" till din npcs namn (replace)

    interact scripts:
    - 10 buycoalscript

    actions:
        on assignment:
        - trigger name:proximity toggle:true radius:5
        - trigger name:click toggle:true
        - trigger name:chat toggle:true

        on enter proximity:
        - if <player.flag[first_coal]> {
            - if <player.has_flag[kolstartcount].as_int> >= 20 {
                - zap step:kolend
                - queue clear
            }
            - if <player.has_flag[kolstart1]> {
                - zap step:kolmid
                - queue clear
            }
            - chat "Hej, du där!"
            - chat "behöver du jobb?"
            - narrate "<blue>Ja <red>Nej"
            - queue clear
        }
        - if <player.flag[kol2]> {
            - if <player.has_flag[kolstartcount2].as_int> >= 64 {
                - zap step:kol2end
                - queue clear
            }
            - if <player.has_flag[get64coal1]> {
                - zap step:kol2mid 
                - queue clear
            }
            - chat "<player.name>, kul att se dig igen!"
            - chat "Tack för hjälpen med kolet det räddade oss verkligen."
            - chat "Vi kan behöva raska fötter för en tillförlitlig leverans."
            - chat "Har du lust att hämta lite mera kol till oss?"
            - narrate "<blue>Ja <Red>Nej"
            - zap step:kol2start
            - queue clear
        }
        - if <player.has_flag[kolminare]> {
            - chat "Du verkar vara en tillförlitlig person!"
            - chat "Leta upp kolminaren och hälsa från mig!"
            - narrate "<&e><blue>Leta upp kolminaren!"
            - queue clear
        }
        - if <player.has_flag[laga]> {
            - narrate "Hur är det med dig <player.name>? Har du något jag kan laga?"
            - narrate "<yellow>---- Smed hjälp ----"
            - narrate "<yellow><green>Steg 1<yellow><&co> Håll föremålet du vill laga i din hand."
            - narrate "<yellow><green>Step 2<yellow><&co> Högerklicka  semeden för att  reda  kostnaden för att laga ditt föremål."
            - narrate "<yellow><green>Step 3<yellow><&co> Smeden kommer tala om för dig hur mycket det kommer kosta."
            - narrate "<yellow><green>Step 4<yellow><&co> För att laga ditt föremål svara semeden genom att skriva <red>Ja<yellow> i chaten."
            - zap step:default
        }

buycoalscript:
    type: interact

    steps:
        startkol*:
            chat trigger:
                1:
                    trigger: /Ja/, vad behöver du ha hjälp med? 
                    script:
                    - chat "Vi börjar  slut  kol till ugnen"
                    - chat "som vanligt är levernasnen av kol sen"
                    - chat "Kan du fixa fram 20 st kol till oss?"
                    - narrate "<blue>Ja <red>Nej"
                    - zap step:startkol2    
                2:
                    trigger: /Nej/, jag har inte tid nu!
                    script:
                    - chat "Vad synd! Kom tillbaka om du får tid."
                    - flag first_coal
                    - queue clear
        startkol2:
            chat trigger:
                1:
                    trigger: /ja/, jag har inget bättre för mig!
                    script:
                    - Chat "Vad bra. Kom tillbaka  fort du kan!"
                    - flag player kolstart
                    - flag kolstart1
                    - zap step:kolmid
                2: 
                    trigger: /Nej/, jag har inte tid just nu!
                    script:
                    - chat "Vad synd! Kom tillbaka om du får tid."
                    - queue clear
        kolmid:
            click trigger:
                script:
                - if <player.has_flag[kolstart]> {
                    - if <player.flag[kolstartcount].as_int> >= 20 {
                        - zap step:kolend
                    }
                }
                else {
                - chat "Vi får alltid vänta  kolminarens leveranser. Han kanske borde anställa fler för att gräva upp kolet...."
                - narrate "<&e>Du har hittat <player.flag[kolstartcount].as_int> av de efterfrågade 20 kolen."
                }
        kolend:
            click trigger:
                script:
                - if <player.flag[kolstartcount2].as_int> >= 20 {
                    - if <player.inventory.contains[coal].qty[20]> {
                        - chat "Ah, <player.name>! Vi slängde nyss in sista säcken kol i ugnen. Nu kan vi fortsätta jobba."
                        - take coal qty:20 
                        - narrate "<&e>Du fick 500 kronor som tack för hjälpen!" 
                        - give money qty:500
                        - flag player kol2
                        - flag player first_coal:!
                        - flag player kolstartcount:!
                        - flag player kolstart:!
                        - flag player kolstart1:!
                        - zap step:kol2start
                    }
                }
        kol2start:
            chat trigger:
                1:
                    trigger: /Ja/, Det är klart jag hjälper er!
                    script:
                    - chat "perfekt! Hämta 64 kol och kom tillbaka med dem till oss"
                    - narrate "<blue><&e>Du har accepterat att hämta 64 kol till <npc.name>."
                    - flag player 64coal
                    - flag player kol2start
                    - zap step:kol2mid
                2: 
                    trigger: /Nej/, jag har inte tid just nu!
                    script: 
                    - chat "Jag skulle kunna göra det värt din tid..."
                    - narrate "<&e><npc.name> visar 1000 kronor"
                    - flag player 1000kr
                    - narrate "<blue>jag har <red>ändrat <blue>mig"
                    - queue clear
        kol2start1:
            click trigger:
                script:
                    - if <player.has_flag[1000kr]> {
                        - chat "perfekt! Hämta 64 kol och kom tillbaka med dem till oss"
                        - narrate "<blue><&e>Du har accepterat att hämta 64 kol till NPC_NAMN."
                        - flag player 64coal
                        - flag player 64coal1
                        - zap step:kol2mid
                    }
        kol2mid:
            click trigger:
                script:
                    - if <player.has_flag[kol2start]> {
                        - if <player.flag[kolstartcount2].as_int> >= 64 {
                            - zap step:kol2end
                        }
                    }
                    else {
                    - chat "Vi får alltid vänta  kolminarens leveranser. Han kanske borde anställa fler för att gräva upp kolet...."
                    - narrate "<&e>Du har hittat <player.flag[kolstartcount2].as_int> av de efterfrågade 64 kolen."
                    }
        kol2end:
            click trigger:
                script:
                    - if <player.flag[kolstartcount2].as_int> >= 64 {
                        - if <player.inventory.contains[coal].qty[64]> {
                            - chat "Ah, <player.name>! Tack. Nu hoppas jag bara att kolminaren kommer snart"
                            - take coal qty:64
                            - narrate "<&e>Du fick 1000 kronor som tack för hjälpen!"
                            - give money qty:1000
                            - narrate "<blue>DU kan nu använda smedjan för att laga dina föremål."
                            - narrate "<green>Uppdrag upplåst, Hitta kolminaren."
                            - flag player laga
                            - flag player kolminare
                            - flag player kol2:!
                            - flag player kolstartcount2:!
                            - flag player get64coal1:!
                            - zap step:default
                        }
                    }
                    else {
                    - zap step:kol2mid
                    }
        default:
            click trigger:
                script:
                    - if <player.item_in_hand.repairable> == true {
                        - ^if <player.item_in_hand.durability> == 0 {
                        - narrate "Detta föremål behöver inte lagas."
                        - queue clear
                        }
                        - ^run determineRepairCost instantly
                        - ^if <player.flag:REPAIR_repaircost.as_int> == 0 {
                            - narrate "Hrm har du lagt föremålet någon annan stans? Du har det inte i handen i alla fall..."
                            - queue clear
                        }
                        - narrate "Det kommer att kosta <yellow><player.flag:REPAIR_repaircost.as_int><white> att laga."
                        - narrate "Vill du laga detta föremål för <player.flag:REPAIR_repaircost.as_int> kronor?"
                        - narrate "<blue>Ja"
                        - zap step:repair
                    }
                    else {
                    - narrate "Detta föremål kan inte lagas <player.name>."
                    }
        repair:
            chat trigger:
                'repairMe':
                    trigger: '/ja/, jag vill att du lagar detta.'
                    script:
                    - if <player.money> >= <flag.p:REPAIR_repaircost> {
                        - narrate "Vänligen vänta lite medans jag fixar ditt föremål..."
                        - playsound <player.location> sound:anvil_use
                        - take money qty:<player.flag:REPAIR_repaircost>
                        - adjust <player.item_in_hand> durability:0 save:repairitemtemp
                        - take iteminhand
                        - give <entry[repairitemtemp].result>
                        - narrate "Sådär<&cm>  gott som nytt<&cm> <player.name>!<&sq>"
                        - narrate "<yellow>Du har nu <player.money> kronor."
                        - zap default
                    }
                    else {
                        - narrate "<white>Tyvärr, du har inte råd att laga detta föremål."
                        - zap default
                    }

determineRepairCost:
    type: task
    script:
        - if <player.item_in_hand.enchantments> != null {
            - ^flag player REPAIR_enchantlvl:0
            - ^foreach <player.item_in_hand.enchantments.levels> {
                - ^flag player REPAIR_enchantlvl:++:%value%
            }
        }
        else {
            - flag player REPAIR_enchantlvl:0
        }
        - flag player REPAIR_duralvl:<player.item_in_hand.durability>

        - flag player REPAIR_enchantcost:<player.flag:REPAIR_enchantlvl>
        - flag player REPAIR_enchantcost:**:<cons:repairenchant>

        - flag player REPAIR_duracost:<player.flag:REPAIR_duralvl>
        - flag player REPAIR_duracost:**:<cons:repairdurability>

        - flag player REPAIR_repaircost:<player.flag:REPAIR_enchantcost>

        - flag player REPAIR_repaircost:++:<player.flag:REPAIR_duracost>

get20coal:
    type: world
    events:
        on player picks up coal:
        - if <player.has_flag[kolstart]> {
            - flag player kolstartcount:++
            - narrate "<&e><player.flag[kolstartcount].as_int> / 20"
            - if <player.flag[kolstartcount].as_int> >= 20 {
                - narrate "<&e>Du har tillräkligt med kol för ditt uppdrag!"
                - narrate "<&e> tillbaka till NPC_NAMN"
                - zap step:kolend
            }
        }

get64coal:
    type: world
    events:
        on player picks up coal:
        - if <player.has_flag[kol2]> {
            - flag player kolstartcount2:++
            - narrate "<&e><player.flag[kolstartcount2].as_int> /64"
            - if <player.flag[kolstartcount2].as_int> >= 64 {
                - narrate "<&e>Du har tillräkligt med kol för ditt uppdrag!"
                - narrate "<&e> tillbaka till NPC_NAMN"
                - zap step:kol2end
            }
        }
Join:
    type: world
    events:
        on player join:
        - wait 4
        - if <player.has_flag[kolstart]> {
            - narrate "<&e><player.has_flag[kolstartcount].as_int> antal kol hittade av de 20 efterfrågade"
        }
        - if <player.has_flag[kol2]> {
            - narrate "<&e><player.has_flag[kolstartcount2].as_int> antal kol hittade av de 64 efterfrågade"
        }
        - if <player.has_flag[kolminare]> {
            - narrate "<&e> Hitta kolminaren"
        }
        - queue clear