Paste #3722: Corpse

Date: 2014/04/24 16:44:50 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


death:
    type: world
    events:
        on player dies:
        - foreach <n@<player.flag[body]>.inventory.list_contents> { - drop %value% <n@<player.flag[body]>.location> }
        - remove n@<player.flag[body]>
        - create player <player.name> <player.location> save:corpse
        - flag player body:<n@<player.name>.id>
        - assignment set script:corpse npc:<player.name>
        - trigger proximity state:true radius:8 npc:n@<n@<player.name>.id>
        - trigger damage state:true npc:n@<n@<player.name>.id>
        - inventory swap d:in@npc[n@<player.flag[body]>] o:in@player[p@<player.name>]
        - inventory clear d:in@player[p@<player.name>]
        - animate n@<player.flag[body]> a:sleep
        - run remove def:<entry[corpse].created_npc> delay:24h
cleancorpse:
    type: task
    script:
    - remove %1%
corpse:
    type: assignment
    interact scripts:
    - 10 body
body:
    type: interact
    Steps:
        'retrive':
            click trigger:
                script:
                - execute as_op "ex inventory open d:<npc.inventory>"
            damage trigger:
                script:
                - execute as_op "ex inventory open d:<npc.inventory>"
            proximity trigger:
                enter:
                    script:
                    - if <npc.inventory.qty> == 0 remove n@<npc.id>
                exit:
                    script:
                    - if <npc.inventory.qty> == 0 remove n@<npc.id>