Paste #35237: Diff note for paste #35236

Date: 2016/08/06 03:16:00 UTC-07:00
Type: Diff Report

View Raw Paste Download This Paste
Copy Link


-util_progress_bar_version:
-  type: version
-  name: util progress bar
-  id: 96
-  description: make progress bars in chat!
-  version: 2
-util_progress_bar:
+DUL_hidden_spawn_locations:
+  type: procedure
+  debug: false
+  definitions: location|radius
+  DUL:
+    author: 
+    - BlackCoyote
+    description: 
+    - Finds spawn locations within range that are out of line of sight.
+    - If no locations out of line of sight are found, it will return valid spawn locations within line of sight.
+    usage:
+    - <proc[DUL_hidden_spawn_locations].context[<l@location>|<radius>]>
+    example:
+    - <proc[DUL_hidden_spawn_locations].context[<player.location>|15]>
+  script:
+  - if <def[location]||null> !matches location {
+    - debug error "DUL - No valid location specified!"
+    - determine null
+    }
+  - if <def[radius]||null> !matches number {
+    - debug error "DUL - No valid radius specified!"
+    - determine null
+    }
+  - define radius <def[radius].as_int>
+  - determine <def[location].find.surface_blocks.within[<def[radius]>].filter[y.sub[<def[location].y>].abs.is[less].than[3]].filter[above.above.above.material.name.is[==].to[air]].filter[above.above.above.above.material.name.is[==].to[air]].filter[above.above.above.above.above.material.name.is[==].to[air]].filter[material.is_occluding].parse[above].filter[above.center.line_of_sight[<def[location].add[0,1.5,0].center>].not]||<def[location].find.surface_blocks.within[<def[radius]>]||li@<def[location]>>>DUL_random_surface_block:
+  type: procedure
+  definitions: location|radius
+  debug: false
+  DUL:
+    author: 
+    - BlackCoyote
+    description: 
+    - Finds a random surface block within the provided radius more efficiently than conventional denizen tags.
+    usage:
+    - <proc[DUL_random_surface_block].context[<l@location>|<radius>]>
+    example:
+    - <proc[DUL_random_surface_block].context[<player.location>|5000]>
+  script:
+  - if <def[location]||null> !matches location {
+    - debug error "DUL - No valid location specified!"
+    - determine null
+    }
+  - if <def[radius]||null> !matches number {
+    - debug error "DUL - No valid radius specified!"
+    - determine null
+    }
+  - while true:
+    - define newloc <def[location].add[<util.random.int[<def[radius].mul[-1]>].to[<def[radius]>]>,0,<util.random.int[<def[radius].mul[-1]>].to[<def[radius]>]>].highest.find.surface_blocks.within[5].get[1]||null>
+    - if <def[newloc]> != null && <def[newloc].material.is_occluding> {
+      - determine <def[newloc].above>
+      } else if <def[loop_index]> >= 10 {
+      - determine null
+      }
+DUL_script_tracker:
+  type: world
+  debug: false
+  events:
+    on system time hourly:
+    - webget "http://morphanone.space/webizen.aspx/tracker?script=96&version=<s@DUL_version_script.yaml_key[version]>"
+# DUL_MyScriptHere:
+  # type: procedure
+  # DUL:
+    # author: 
+    # - author
+    # description: 
+    # - description here
+    # usage:
+    # - usage here
+    # example:
+    # - example here
+  # debug: false
+  # script:
+  # - script here
+DUL_text_progress_bar:
   type: procedure
   debug: false
+  DUL:
+    author: 
+    - BlackCoyote
+    description: 
+    - Makes a text based progress bar based on the percentage you provide.
+    usage:
+    - <proc[DUL_text_progress_bar].context[<percentage>(|<size>|<character>|<color1>|<color2>)]>
+    example:
+    - <proc[DUL_text_progress_bar].context[<player.health.percentage>]>
   script:
   - define percentage <def[1]||0>
   - if <def[percentage].as_int||none> == none {
     - define percentage 0
     }
   - if <def[2].exists> {
     - define max <def[2]>
     }
   - if <def[max].as_int||none> == none {
     - define max 10
     }
   - if <def[3].exists> {
     - define char <def[3].substring[1,1]||=>
     } else {
     - define char =
     }
   - if <def[4].exists> {
     - define col1 <def[4]>
     } else {
     - define col1 &a
     }
   - if <def[5].exists> {
     - define col2 <def[5]>
     } else {
     - define col2 &7
     }
   - define string <el@.pad_right[<def[max]>].with[<def[char]>]>
   - define split <def[max].div[100].mul[<def[percentage]>].as_int>
-  - flag server util_progress_bar_usage:++
   - determine "<def[col1].parse_colors><def[string].substring[1,<def[split]>]><def[col2].parse_colors><def[string].substring[<def[split].add[1].as_int>,<def[max]>]>"
-util_progress_bar_tracker:
-  type: world
+DUL_unique_queue_id_prefixed:
+  type: procedure
+  debug: false
+  DUL:
+    author: 
+    - BlackCoyote
+    description: 
+    - Gives a unique queue ID for you to use, with a specified prefix.
+    usage:
+    - <proc[DUL_unique_queue_id_prefixed].context[<prefix>]>
+    example:
+    - <proc[DUL_unique_queue_id_prefixed].context[DUL_<player>]>
+  script:
+  - define prefix <def[1]||>
+  - define id <def[prefix]><util.random.duuid>
+  - while <queue.list.parse[id].contains[<def[id]>]>:
+    - define id <def[prefix]><util.random.duuid>
+  - determine <def[id]>
+DUL_version_script:
+  type: version
+  name: dUtilLib
+  id: 96
+  description: A collection of dscript functions and utilities written by BlackCoyote and Anthony.
+  version: 3
+DUL_WRCG:
+  type: procedure
   debug: false
-  events:
-    on system time hourly:
-    - webget "http://morphanone.space/webizen.aspx/tracker?script=96&version=<s@util_progress_bar_version.yaml_key[version]>&times_used=<server.flag[util_progress_bar_usage].as_int||0>"
-    - flag server util_progress_bar_usage:!
-
+  DUL:
+    author:
+    - Anthony
+    name:
+    - Weighted Random Choice Generator
+    description:
+    - Supply a list of weight/return values and have one of the values returned to you randomly based on weight.
+    usage:
+    - <proc[DUL_WRCG].context[weight/return|...]>
+    example:
+    - give <proc[DUL_WRCG].context[10/i@apple|1/i@gold_ingot|20/i@stone]>
+  script:
+    - define l 'li@'
+    - foreach '<queue.definitions.exclude[l]>':
+      - define l '<def[l].include[<def[%value%]>]>'
+    - define w '0'
+    - foreach '<def[l].parse[before[/]]>':
+      - define w '<def[w].add[%value%]>'
+    - define number '<util.random.int[1].to[%w%]>'
+    - define hv '0'
+    - foreach '%l%':
+      - define ov '%hv%'
+      - define lv '<def[ov].add[1]>'
+      - define hv '<def[ov].add[<def[value].before[/]>]>'
+      - if %number% >= %lv% && %number% <= %hv% {
+        - determine '<def[value].after[/]>'
+        }