Paste #8173: Untitled Paste

Date: 2014/08/10 17:26:23 UTC-07:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


BodyGuardSpawnAssignmentnormal:
  type: assignment
  debug: true
  actions:
    on damaged:
    - if <context.damager> == <player> {
      - if <context.damager.flag[AttacksBodyGuard]> == true {
        - run s@Bodyguardattackplayerscript as:<context.damager>
        }
        }
        else if <context.damager> == <player> {
        - narrate "Hey! stop that or I<&sq>ll attack you!" "target:<context.damager>"
        - flag <context.damager> AttacksBodyGuard:true duration:10
        }
    on enter proximity:
    - if <player.name> == <npc.owner.name> {
      - walk <npc.location>
      }
    on exit proximity:
    - if <player> == <npc.owner> {
      - if <npc.flag[Guarding]> == false {
        - narrate ""
        }
        else {
        - execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
        - ^execute as_server "sentry guard <player.name>"
        }
      }
    on assignment:
    - execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
    - execute as_server "sentry follow 5"
    - trigger name:proximity state:true radius:5
    on click:
    - ^execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
    - execute as_server "sentry follow 5"
    - if <npc.owner> != <player> {
      - random {
        - chat "<yellow>I<&sq>m sorry <yellow><player.name><green> but I<&sq>m already guading <yellow><npc.owner.name>."
        - chat "<yellow>O, hey! <yellow><player.name><green> I<&sq>m with <yellow><npc.owner.name> on a journey so I<&sq>m afraid I cant help you."
        - chat "<yellow>Greetings <yellow><player.name><green> Do you know <yellow><npc.owner.name>? He<&sq>s a verry nice person."
        }
      }
      else if "<npc.flag[Guarding]>" == "true" {
      - ^execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
      - ^execute as_server "sentry guard"
      - ^flag <player.flag[BodyGuard]> "Guarding:false"
      - random {
        - ^chat "<yellow>Oh all right <player.name>, I<&sq>ll wait back here for you."
        - ^chat "<yellow>Don<&sq>t worry about me, I<&sq>ll stay back here. Please don<&sq>t forget about me."
        - ^chat "<yellow>I<&sq>ll wait around for you. but please don<&sq>t forget about me."
        - ^chat "<yellow>You want me to hang back? Ok, no problem."
        - ^chat "<yellow>Ok, I<&sq>ll guard this spot."
        - ^chat "<yellow>I<&sq>ll stand here and wait until you come get me again."
        }
      }
      else {
      - ^execute as_server "npc sel <player.flag[BodyGuard].replace[n@]>"
      - ^execute as_server "sentry guard <player.name>"
      - ^flag <player.flag[BodyGuard]> "Guarding:true"
      - random {
        - ^chat "<yellow>Ok, I<&sq>m following you."
        - ^chat "<yellow>Great <white><player.name><yellow>, I<&sq>m right behind you."
        - ^chat "<yellow>You lead the way boss."
        - ^chat "<yellow>Watching your back. Let<&sq>s go."
        - ^chat "<yellow>Great, let<&sq>s go for a walk."
        - ^chat "<yellow>Hope we're going to crush some zombie skulls. Let<&sq>s move."
        }
      } 


BodyguardStartScript:
    type: world
    debug: true
    events:
        on entity enters vehicle:
        - if <context.entity.is_player> {
          - if <context.vehicle> == <player.flag[BodyGuardMount]> {
            - determine CANCELLED
            }
          } 
        on player joins:
        - if <player.flag[FinishedSpawnTut]> == true {
          - run s@BodyguardPlayerJoinScript as:<player.name> delay:2s
          }
        on finishedspawntut command:
        - if <player.is_op> {
          - if <player.flag[FinishedSpawnTut]> == null {
            - flag FinishedSpawnTut:true
            - run s@BodyguardPlayerJoinScript as:<player.name> delay:2s
            }
          }
        - determine FULFILLED


BodyguardPlayerJoinScript:
    type: task
    debug: true
    script:
    - if <player.flag[BodyGuardSpawned]> == null {
      - flag BodyGuardSpawned:true
      - if <player.has_permission[denizen.archdukeguard]> {
        - run s@BodyguardSpawnArchduke as:<player.name>
        - run s@BodygguardCoversationArchdukeScript as:<player.name>
        }
        else if <player.has_permission[denizen.dawnguardguard]> {
        - run s@BodyguardSpawnDawnGuard as:<player.name>
        - run s@BodygguardCoversationDawnGuardScript as:<player.name>
        }
        else if <player.has_permission[denizen.legendguard]> {
        - run s@BodyguardSpawnLegend as:<player.name>
        - run s@BodygguardCoversationLegendScript as:<player.name>
        }
        else if <player.has_permission[denizen.moderatorguard]> {
        - run s@BodyguardSpawnModerator as:<player.name>
        }
        else {
        - run s@BodyguardSpawn as:<player.name>
        - run s@BodyGuardConversationScript as:<player.name>
        }
      }


#- run s@BodyGuardConversationScript




Bodyguardflagfalse:
    type: world
    debug: true
    events:
        on bodyguard command:
        - if <player.in_group[Leader]> {
          - flag BodyGuardSpawned:null
          - narrate "Bodyguard Flagg set to Null"
          }
        - determine FULFILLED
        on BCON command:
        - if <player.flag[BodyGuardConversation]> == null {
          - flag BodyGuardConversation:true
          - narrate " "
          - narrate "<red>Bodyguard Conversations<&co> <green><bold> OFF"
          - narrate " "
          }
          else if <player.flag[BodyGuardConversation]> == true {
          - flag BodyGuardConversation:null
          - narrate " "
          - narrate "<red>Bodyguard Conversations<&co> <green><bold> ON"
          - narrate " "
          }
        - determine FULFILLED


#    speed: 0

#   - ^execute as_server "npc create BodyGuard --at '<player.location.add[<1,0,0>]>.formatted.citizens>'"


BodyguardSpawn:
    type: task
    debug: true
    script:
    - create player BodyGuard <player.location> save:BodyGuard
    - flag player Bodyguard:<entry[BodyGuard].created_npc>
    - ^engage
    - ^execute as_server "npc select <player.flag[BodyGuard].replace[n@]>"
    - ^execute as_server "trait sentry"
    - ^execute as_server "sentry strength 5"
    - ^execute as_server "sentry armor 5"
    - ^execute as_server "sentry equip DIAMOND_SWORD"
    - ^execute as_server "sentry equip IRON_HELMET"
    - ^execute as_server "sentry equip IRON_CHESTPLATE"
    - ^execute as_server "sentry equip IRON_LEGGINGS"
    - ^execute as_server "sentry equip IRON_BOOTS"
    - ^execute as_server "sentry ignore add entity:player"
    - ^execute as_server "sentry healrate 10"
    - ^execute as_server "sentry killdrops false"
    - ^execute as_server "sentry health 20"
    - ^execute as_server "sentry drops false"
    - ^execute as_server "sentry invincible false"
    - ^execute as_server "sentry respawn 60"
    - ^execute as_server "sentry speed 1.2"
    - ^execute as_server "sentry follow 5"
    - ^execute as_server "npc owner <player.name>"
    - ^execute as_server "npc skin knight8"
    - ^execute as_server 'npc assign --set "BodyGuardSpawnAssignmentnormal"'
    - ^execute as_server "sentry guard <player.name>"
    - follow lead:5 target:<player.flag[BodyGuard]>
    - ^disengage