Paste #51116: Repo Script Random NPC Spawn

Date: 2018/12/14 08:41:33 UTC-08:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


#Script made by Rosstail

#SPAWN RANDOM NPCS
spawn_random_npcs:
  type: task
  debug: false
  script:
    #CHOOSE THE MINIUM AND MAXIMUM AMOUNT OF NPCS SPAWNED IN A ROW
    - flag global min_spawn:3
    - flag global max_spawn:7
    ###############################################"
    - flag global debug_spawn:off
    - flag global nb_spawn:<util.random.int[<global.flag[min_spawn]>].to[<global.flag[max_spawn]>]>
    - flag global nb_spawn_ds:<global.flag[nb_spawn]>
    - while <global.flag[nb_spawn].is[MORE].than[0]> {
      - run npc_name_choose instantly
      - flag global spawn_no%loop_index%:<global.flag[npc_name]>
      - execute as_server "npc spawn <global.flag[npc_name]>"
      - flag global nb_spawn:--
      }
#DELETE THE RANDOMLY SPAWNED NPCS 
delete_random_npcs:
  type: task
  debug: false
  script:
    - flag global debug_spawn:off
    - while <global.flag[nb_spawn_ds].is[MORE].than[0]> {
      - despawn <global.flag[spawn_no%loop_index%]>
      - flag global nb_spawn_ds:--      
      }
    - flag global nb_spawn:0

#PUT ALL THE NAMES YOU WANT
npc_name_choose:
  type: task
  debug: false
  script:
  - choose "<global.flag[debug_spawn]>":
    #WHEN THE DEBUG MODE IS OFF
    - case "off":
      - random:
        #REPEAT THESES FLAGS FOR EACH NPC YOU WANT
        - flag global npc_name:<name>
        - flag global npc_name:<name2>
    #WHEN THE DEBUG MODE IS ON
    - case "on":
        #REPEAT THESES FLAGS FOR EACH NPC YOU WANT
        - despawn <name>
        - despawn <name2>
        etc...

#DELETE CURRENT NPS AND SPAWN ANOTHER EACH HOURS
actions_npcs:
  type: world
  debug: false
  events:
    on system time hourly:
    - run delete_random_npcs instantly
    - wait 10s
    - run spawn_random_npcs instantly

#IF ONE DAY TOO MANY NPCS ARE SPAWNED IN THE SAME TIME
debug_npc:
  type: world
  debug: false
  events:
    on server start:
    #PUT IT "ON" TO DESPAWN ALL NPCS AFTER A SERVER RESTART
    - flag global debug_spawn:off
    - run npc_name_choose instantly
    #DON'T TOUCH THIS
    - flag global debug_spawn:off