diff --git a/scripts/lib/ball.dsc b/scripts/lib/ball.dsc index 79c5852..2e5aaf7 100644 --- a/scripts/lib/ball.dsc +++ b/scripts/lib/ball.dsc @@ -20,6 +20,13 @@ ball_create: - define size <[ball_collision].bounding_box.get[1].sub[<[ball_collision].location>].x.abs.add[0.01]> - spawn zombie[silent=true;has_ai=false;gravity=false;visible=false] <[location].with_pitch[0].with_yaw[0].below[<[size].add[1]>]> save:ball_display - define ball_display + - if <[ball_display].is_baby>: + - age <[ball_display]> adult lock + - if <[ball_display].is_inside_vehicle>: + # CHICKEN JOCKEEEEEEEEEEEEEEEEEEEEEEEEEY + - define chicken <[ball_display].vehicle> + - adjust <[chicken]> passengers: + - remove <[chicken]> - adjust <[ball_display]> equipment:]> - flag <[ball_collision]> ball:<[id]> - flag <[ball_collision]> ball_display:<[ball_display]> diff --git a/scripts/liteprofilesutils/liteprofilesutils_world.dsc b/scripts/liteprofilesutils/liteprofilesutils_world.dsc index bd2271e..eb060b5 100644 --- a/scripts/liteprofilesutils/liteprofilesutils_world.dsc +++ b/scripts/liteprofilesutils/liteprofilesutils_world.dsc @@ -66,6 +66,10 @@ liteprofilesutils_world: - narrate <[joinleavedata].get[join].parsed> targets:<[setting_enabled_players]> ## prevent /profile remove on command: + - if != player: + - stop + - if : + - stop - if == profile || == account || == pf: - if == remove: - determine cancelled passively diff --git a/scripts/storyboard/ch1/ch1_1_preassign.dsc b/scripts/storyboard/ch1/ch1_1_preassign.dsc index eaf6681..cd3d68c 100644 --- a/scripts/storyboard/ch1/ch1_1_preassign.dsc +++ b/scripts/storyboard/ch1/ch1_1_preassign.dsc @@ -2,9 +2,11 @@ ch1_1_preassign: debug: false type: world events: - on player joins: + after player joins: + - wait 1s - if |preassign]> == null: - - run storyboard_npc_memalloc "def:|marie|player||Marie Ayashibayomi|true|" + - if !|marie]>: + - run storyboard_npc_memalloc "def:|marie|player||Marie Ayashibayomi|true|" - run storyboard_npc_set_assignment def.player: def.name:marie def.assignment:ch1_1_marie_assign - run storyboard_player_state_set def.player: def.key:preassign def.value:true diff --git a/scripts/storyboard/tasks/storyboard_npc_tasks.dsc b/scripts/storyboard/tasks/storyboard_npc_tasks.dsc index a40c4eb..ec6bc3f 100644 --- a/scripts/storyboard/tasks/storyboard_npc_tasks.dsc +++ b/scripts/storyboard/tasks/storyboard_npc_tasks.dsc @@ -41,6 +41,7 @@ storyboard_npc_memalloc: - define npcs <[player].flag[storyboard_state].get[npcs].if_null[]> - create <[type]> <[npc_id]> <[at]> registry:<[registry]> save:npc - define npc + - playeffect at:<[npc].location.above[1]> offset:0.35,1,0.35 effect:SOUL_FIRE_FLAME quantity:20 - define npc_state - define assignment null - if <[npcs].contains[<[name]>]>: @@ -137,6 +138,14 @@ storyboard_npc_memdestroy: - define npc |<[name]>]> - remove <[npc]> +# Checks if an NPC exists for the given player. +storyboard_npc_exists: + debug: false + type: procedure + definitions: player|name + script: + - determine |<[name]>].if_null[null].equals[null].not> + # Flags the NPC by name, mapping the given key to the given value. storyboard_npc_state_set: debug: false @@ -215,6 +224,7 @@ storyboard_npc_internal_auto_memory_management: type: world events: after player joins: + - wait 1s - define npcs ]> - foreach <[npcs]> key:name as:data: - define allocated <[data].get[allocated].if_null[null]>