# for Denizen 0.9 "Wanderer": type: assignment default constants: Searchwidth: 4 Searchlength: 10 Searchlengthmin: 5 Retries: 4 Pathmaterial: 'WOOL' actions: on spawn: - trigger name:click toggle:false - trigger name:chat toggle:false - trigger name:proximity toggle:false - ^flag npc "wander_spawned:true" - ^flag npc "wander_attention:false" - ^flag npc "wander_defaultx:" - ^flag npc "wander_defaultz:" - ^flag npc "wander_defaulty:" - ^flag npc "wander_currentdir:north" - ^flag npc "wander_triescounter:0" - ^inject "s@wander_choosedirection" on despawn: - ^flag npc "wander_spawned:false" on complete navigation: - ^if "" == "north" inject "s@wander_scannorth" else if "" == "east" inject "s@wander_scaneast" else if "" == "west" inject "s@wander_scanwest" else if "" == "south" inject "s@wander_scansouth" on begin navigation: "wander_choosedirection": type: task script: - ^flag npc "wander_triescounter:0" - ^flag npc "wander_defaultx:" - ^flag npc "wander_defaultz:" - ^flag npc "wander_defaulty:" - ^if "" == "false" inject "s@wander_despawn" else inject "s@wander_randomdir" "wander_randomdir": type: task script: - ^flag npc "wander_triescounter:0" - ^if == 'north' inject "s@wander_wasnorthsouth" else if == 'east' inject "s@wander_waseastwest" else if == 'west' inject "s@wander_waseastwest" else if == 'south' inject "s@wander_wasnorthsouth" "wander_wasnorthsouth": type: task script: - ^random 2 - ^inject "s@wander_scaneast" - ^inject "s@wander_scanwest" "wander_waseastwest": type: task script: - ^random 2 - ^inject "s@wander_scannorth" - ^inject "s@wander_scansouth" #North is -z "wander_scannorth": type: task script: - ^flag npc "wander_currentdir:north" - ^flag npc "wander_defaultx:" - ^flag npc "wander_defaultz:" - ^flag npc "wander_defaulty:" - ^flag npc "wander_randomxA:]>" - ^flag npc "wander_randomzA:].to[]>" - ^flag npc "wander_randomposxA:" - ^random 2 - ^flag npc "wander_randomposxA:-:" - ^flag npc "wander_randomposxA:+:" - ^flag npc "wander_randomposxA:" - ^flag npc "wander_randomposzA:" - ^flag npc "wander_randomposzA:-:" - ^flag npc "wander_randomposzA:" - ^flag npc "wander_blockchecky:" - ^flag npc "wander_blockchecky:-:1" - ^flag npc "wander_blockchecky:" - ^if ",,,].block.material.bukkit_enum>" == '' inject "s@wander_walknorth" else if "" >= inject "s@wander_choosedirection" else inject "s@wander_tryagainnorth" "wander_walknorth": type: task script: - ^walkto "location:,,," "wander_tryagainnorth": type: task script: - ^flag npc "wander_triescounter:+:1" - ^flag npc "wander_triescounter:" - ^inject "s@wander_scannorth" #East "wander_scaneast": type: task script: - ^flag npc "wander_currentdir:east" - ^flag npc "wander_defaultx:" - ^flag npc "wander_defaultz:" - ^flag npc "wander_defaulty:" - ^flag npc "wander_randomzA:]>" - ^flag npc "wander_randomxA:].to[]>" - ^flag npc "wander_randomposxA:" - ^flag npc "wander_randomposxA:+:" - ^flag npc "wander_randomposxA:" - ^flag npc "wander_randomposzA:" - ^random 2 - ^flag npc "wander_randomposzA:+:" - ^flag npc "wander_randomposzA:-:" - ^flag npc "wander_randomposzA:" - ^flag npc "wander_blockchecky:" - ^flag npc "wander_blockchecky:-:1" - ^flag npc "wander_blockchecky:" - ^if ",,,].block.material.bukkit_enum>" == '' inject "s@wander_walkeast" else if "" >= inject "s@wander_choosedirection" else inject "s@wander_tryagaineast" "wander_walkeast": type: task script: - ^walkto "location:,,," "wander_tryagaineast": type: task script: - ^flag npc "wander_triescounter:+:1" - ^flag npc "wander_triescounter:" - ^inject "s@wander_scaneast" #West "wander_scanwest": type: task script: - ^flag npc "wander_currentdir:west" - ^flag npc "wander_defaultx:" - ^flag npc "wander_defaultz:" - ^flag npc "wander_defaulty:" - ^flag npc "wander_randomzA:]>" - ^flag npc "wander_randomxA:].to[]>" - ^flag npc "wander_randomposxA:" - ^flag npc "wander_randomposxA:-:" - ^flag npc "wander_randomposxA:" - ^flag npc "wander_randomposzA:" - ^random 2 - ^flag npc "wander_randomposzA:-:" - ^flag npc "wander_randomposzA:+:" - ^flag npc "wander_randomposzA:" - ^flag npc "wander_blockchecky:" - ^flag npc "wander_blockchecky:-:1" - ^flag npc "wander_blockchecky:" - ^if ",,,].block.material.bukkit_enum>" == '' inject "s@wander_walkwest" else if "" >= inject "s@wander_choosedirection" else inject "s@wander_tryagainwest" "wander_walkwest": type: task script: - ^walkto "location:,,," "wander_tryagainwest": type: task script: - ^flag npc "wander_triescounter:+:1" - ^flag npc "wander_triescounter:" - ^inject "s@wander_scanwest" #South "wander_scansouth": type: task script: - ^flag npc "wander_currentdir:south" - ^flag npc "wander_defaultx:" - ^flag npc "wander_defaultz:" - ^flag npc "wander_defaulty:" - ^flag npc "wander_randomxA:]>" - ^flag npc "wander_randomzA:].to[]>" - ^flag npc "wander_randomposxA:" - ^random 2 - ^flag npc "wander_randomposxA:-:" - ^flag npc "wander_randomposxA:+:" - ^flag npc "wander_randomposxA:" - ^flag npc "wander_randomposzA:" - ^flag npc "wander_randomposzA:+:" - ^flag npc "wander_randomposzA:" - ^flag npc "wander_blockchecky:" - ^flag npc "wander_blockchecky:-:1" - ^flag npc "wander_blockchecky:" - ^if ",,,].block.material.bukkit_enum>" == '' inject "s@wander_walksouth" else if "" >= inject "s@wander_choosedirection" else inject "s@wander_tryagainsouth" "wander_walksouth": type: task script: - ^walkto "location:,,," "wander_tryagainsouth": type: task script: - ^flag npc "wander_triescounter:+:1" - ^flag npc "wander_triescounter:" - ^inject "s@wander_scansouth" #East is +x "wander_despawn": type: task script: - chat 'bye'