Date: 2020/06/14 08:53:47 UTC-07:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
hideAndSeekCommand:
type: command
name: escondite
usage: /escondite [join|leave|start]
description: Juega al escondite.
script:
# Comprobamos si tiene permiso
- if !<player.has_permission[mcers.hideandseek]>:
- narrate "<&c>No tienes permisos para utilizar este comando."
- stop
# Comprobamos qué ha escrito el usuario
- define size <context.args.size>
- choose <[size]>:
- case 1:
- define arg1 <context.args.get[1]>
- choose <[arg1]>:
- case join:
- teleport <player> <server.flag[hideAndSeek_loc]>
# Comprobamos que no haya una partida en marcha
- if <server.has_flag[hideAndSeek_Running]>:
- narrate "<&c>Ya hay una partida en marcha. Acaba en <server.flag[hideAndSeek_Running].expiration.formatted>."
- stop
# Se une a la partida
- flag player hideAndSeek
- flag server hideAndSeek:->:<player>
- narrate "<&e>Te has unido a la partida. Cuando estéis todos, escribe <&a>/escondite start<&e>. No podrá unirse nadie más."
# Cargamos la schematica de aire
- if <server.flag[hideAndSeek].size> < 2:
- ~schematic load name:hideAndSeek_schemAir
- case leave:
- if !<server.has_flag[hideAndSeek_Running]>:
- schematic unload name:hideAndSeek_schemAir
# Sale de la partida
- narrate "<&e>Has salido de la partida."
- inject hideAndSeek_Leave
- teleport <player> <server.flag[hideAndSeek_lobbyLoc]>
# Comprobamos cómo va la partida
- if <server.flag[hideAndSeek_Seeker].size> >= <server.flag[hideAndSeek].size>:
- foreach <server.flag[hideAndSeek]>:
- narrate "<&e>No quedan ocultos en la partida. ¡Ganan los buscadores!" targets:<[value]>
- inject hideAndSeek_GlobalEnd
# Comprobamos si quedan ocultos
- else if !<server.has_flag[hideAndSeek_Seeker]>:
- foreach <server.flag[hideAndSeek]>:
- narrate "<&e>No quedan buscadores en la partida. ¡Ganan los ocultos!" targets:<[value]>
- inject hideAndSeek_GlobalEnd
- case start:
- if <server.has_flag[hideAndSeek_Running]>:
- narrate "<&c>La partida ya ha empezado."
- stop
- if <server.flag[hideAndSeek].size> < 2:
- narrate "<&c>No se puede empezar la partida con solo un jugador."
- stop
# Empieza la partida
- foreach <server.flag[hideAndSeek]>:
- narrate "<&a><player.name> <&e>empieza la partida. Hay <server.flag[hideAndSeek].size> jugadores." targets:<[value]>
# 1 buscador aleatorio
- define seeker <server.flag[hideAndSeek].random>
# Le aplicamos parámetros en delay antes de que pueda buscar
- run hideAndSeek_EffectSeeker def:<[seeker]>
# Con un contador de 30 segundos
- run hideAndSeek_TimerSeeker def:<[seeker]>
# Parámetro para los ocultos
- foreach <server.flag[hideAndSeek].exclude[<[seeker]>]>:
- team name:hideAndSeek add:<[value].name>
- team name:hideAndSeek option:name_tag_visibility status:never
- adjust <[value]> food_level:20
- narrate "<&c>¡Eres un oculto! Tienes 30 segundos para esconderte." targets:<[value]>
# Temporizador
- run hideAndSeek_TimerGlobal
- flag server hideAndSeek_Running duration:10m
# Ponemos el schematic sin bloques cortando el paso
- schematic paste name:hideAndSeek_schemAir <server.flag[hideAndSeek_loc]> noair
- schematic unload name:hideAndSeek_schemAir
- ~schematic load name:hideAndSeek_schemBlock
- default:
- narrate "<&c>Comando incorrecto. Prueba:"
- narrate "<&c>/escondite [join|leave|start]"
- stop
- default:
- narrate <empty>
- narrate "<&e>----- Comando del escondite -----"
- narrate "<&6>/escondite join<&r> - Te unes a la partida si no está empezada."
- narrate "<&6>/escondite leave<&r> - Te sales de la partida."
- narrate "<&6>/escondite start<&r> - Empieza la partida con los jugadores que estén unidos."
- stop