Date: 2016/04/09 10:30:49 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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
ClassSelection_onjoin:
type: world
debug: false
events:
#Joueurs existants
on player join:
- teleport <player> <l@lobby>
- wait 5t
- inventory open d:in@ClassSelection_menu_existingplayer
- flag player character_menu
#Nouveaux joueurs
on player first login:
- teleport <player> <l@lobby>
- wait 5t
- inventory open d:in@ClassSelection_menu_newplayer
- flag player character_menu
#Annuler le mouvement quand le joueur est encore dans le menu/création de personnage
on player walks in flat_city:
- if <player.has_flag[character_menu]> {
- determine cancelled
} else queue clear
#Le menu pour les nouveaux joueurs
on player quits:
- if <pl.has_flag[Playing:Character1]> {
- yaml id:<player.flag[character_list].get[1]> set lastPos.[<player.location>]
- yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
- yaml unload id:<player.flag[character_list].get[1]>
- flag player Playing:!
} else if <pl.has_flag[Playing:Character2]> {
- yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
- yaml "savefile:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
- yaml unload id:<player.flag[character_list].get[2]>
- flag player Playing:!
} else if <pl.has_flag[Playing:Character3]> {
- yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
- yaml "savefile:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
- yaml unload id:<player.flag[character_list].get[3]>
- flag player Playing:!
}
on system time hourly:
- foreach <server.list_online_players>:
- if <pl.has_flag[Playing:Character1]> {
- yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
} else if <pl.has_flag[Playing:Character2]> {
- yaml "savefile:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
} else if <pl.has_flag[Playing:Character3]> {
- yaml "savefile:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
}
on shutdown:
- foreach <server.list_online_players>:
- if <pl.has_flag[Playing:Character1]> {
- yaml id:<player.flag[character_list].get[1]> set lastPos.[<player.location>]
- yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
- yaml unload id:<player.flag[character_list].get[1]>
- flag player Playing:!
} else if <pl.has_flag[Playing:Character2]> {
- yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
- yaml "savefile:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
- yaml unload id:<player.flag[character_list].get[2]>
- flag player Playing:!
} else if <pl.has_flag[Playing:Character3]> {
- yaml id:<player.flag[character_list].get[3]> set lastPos.[<player.location>]
- yaml "savefile:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
- yaml unload id:<player.flag[character_list].get[3]>
- flag player Playing:!
}
ClassSelection_menu_newplayer:
type: inventory
debug: false
title: Créer un nouveau personnage
size: 9
slots:
- "[i@Newplayer_menu_archer] [i@Newplayer_menu_guerrier] [i@Newplayer_menu_mage]"
#Case de menu pour créer un archer
Newplayer_menu_archer:
debug: false
type: item
material: bow
display name: Créer un Archer
#Case de menu pour créer un Guerrier
Newplayer_menu_guerrier:
debug: false
type: item
material: diamond_sword
display name: Créer un Guerrier
#Case de menu pour créer un Mage
Newplayer_menu_mage:
debug: false
type: item
material: stick
display name: Créer un Mage
#les actions qui ont rapports aux deux menus
Newplayer_menu_handler:
type: world
debug: false
events:
#Annuler le clic dans le menu de création de perso
on player clicks in ClassSelection_menu_newplayer:
- determine cancelled
#Annuler le "drag" dans le menu de création de perso
on player drags in ClassSelection_menu_newplayer:
- determine cancelled
#Annuler le clic dans le menu de joueur existant
on player clicks in ClassSelection_menu_existingplayer:
- determine cancelled
#Annuler le "drag" dans le menu de joueur existant
on player drags in ClassSelection_menu_existingplayer:
- determine cancelled
#Quand le joueur clic la case pour créer un archer
on player clicks Newplayer_menu_archer in ClassSelection_menu_newplayer:
- flag player newcharacter_archer
- narrate "Entrez le nom de votre nouvel Archer"
- inventory close
#Quand le joueur clic la case pour créer un guerrier
on player clicks Newplayer_menu_guerrier in ClassSelection_menu_newplayer:
- flag player newcharacter_guerrier
- narrate "Entrez le nom de votre nouveau Guerrier"
- inventory close
#Quand le joueur clic la case pour créer un mage
on player clicks Newplayer_menu_mage in ClassSelection_menu_newplayer:
- flag player newcharacter_mage
- narrate "Entrez le nom de votre nouveau Mage"
- inventory close
#Quand le joueur sélectionne la case pour jouer son personnage #1
on player clicks Player_menu_character1 in ClassSelection_menu_existingplayer:
- if <server.has_file[/personnages/<player.flag[character_list].get[1]>.yml> {
- yaml "load:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>
- inventory close
- teleport <player> <yaml[<player.flag[character_list].get[1]>].read[lastPos.<player.location>]>
- flag player Playing:Character1
- narrate "Bon jeu sur OnyCraft!"
} else if !<server.has_file[/personnages/<player.flag[character_list].get[1]>.yml]> {
- inventory close
- inventory open d:ClassSelection_menu_newplayer
}
#Quand le joueur sélectionne la case pour jouer son personnage #2
on player clicks Player_menu_character2 in ClassSelection_menu_existingplayer:
- if <server.has_file[/personnages/<player.flag[character_list].get[2]>.yml> {
- yaml "load:/personnages/<player.flag[character_list].get[2]>.yml" id:<player.flag[character_list].get[2]>
- inventory close
- teleport <player> <yaml[<player.flag[character_list].get[2]>].read[lastPos.<player.location>]>
- flag player Playing:Character2
- narrate "Bon jeu sur OnyCraft!"
} else if !<server.has_file[/personnages/<player.flag[character_list].get[2]>.yml]> {
- inventory close
- inventory open d:ClassSelection_menu_newplayer
}
#Quand le joueur sélectionne la case pour jouer son personnage #3
on player clicks Player_menu_character3 in ClassSelection_menu_existingplayer:
- if <server.has_file[/personnages/<player.flag[character_list].get[3]>.yml> {
- yaml "load:/personnages/<player.flag[character_list].get[3]>.yml" id:<player.flag[character_list].get[3]>
- inventory close
- teleport <player> <yaml[<player.flag[character_list].get[3]>].read[lastPos.<player.location>]>
- flag player Playing:Character3
- narrate "Bon jeu sur OnyCraft!"
} else if !<server.has_file[/personnages/<player.flag[character_list].get[3]>.yml]> {
- inventory close
- inventory open d:ClassSelection_menu_newplayer
}
#Quand le joueur entre le nom de son personnage
Newplayer_menu_charactername:
type: world
debug: false
events:
on player chats in flat_city:
- if <pl.has_flag[newcharacter_archer]> {
#- recipients <player.name>
- define name <context.message>
- if !<server.has_file[/personnages/%name%.yml]> {
- flag player character_list:->:%name%
- flag player character_type:->:Archer
- run create_character
- flag player newcharacter_archer:!
} else if <server.has_file[/personnages/%name%.yml]> {
- narrate "Ce nom est déjà pris! Veuillez en choisir un autre."
}
} else if <pl.has_flag[newcharacter_guerrier]> {
#- recipients <player.name>
- define name <context.message>
- if !<server.has_file[/personnages/%name%.yml]> {
- flag player character_list:->:%name%
- flag player character_type:->:Guerrier
- run create_character
- flag player newcharacter_guerrier:!
} else if <server.has_file[/personnages/%name%.yml]> {
- narrate "Ce nom est déjà pris! Veuillez en chosiir un autre."
}
} else if <pl.has_flag[newcharacter_mage>]> {
#- recipients <player.name>
- define name <context.message>
- if !<server.has_file[/personnages/%name%.yml]> {
- flag player character_list:->:%name%
- flag player character_type:->:Mage
- run create_character
- flag player newcharacter_mage:!
} else if <server.has_file[/personnages/%name%]> {
- narrate "Ce nom est déjà pris! Veuillez en choisir un autre!"
}
}
#Script qui est chargé quand le joueur a choisi le nom de son personnage
create_character:
type: task
debug: false
script:
- yaml create id:<player.flag[character_list].get[1]>.yml
- yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>.yml
- yaml id:<player.flag[character_list].get[1]>.yml set classe:<player.flag[character_type].get[1]>
- yaml "savefile:/personnages/<player.flag[character_list].get[1]>.yml" id:<player.flag[character_list].get[1]>.yml
- flag player character_menu:!
- teleport <player> l@newplayer_spawn
- narrate "Bienvenue sur OnyCraft <player.name> !"
- narrate "blablabla à continuer"
#Le menu pour les joueurs existants
ClassSelection_menu_existingplayer:
type: inventory
debug: true
title: Choisir un personnage
size: 9
slots:
- "[Player_menu_character1] [Player_menu_character2] [Player_menu_character3] [Player_menu_createnew]"
#Case de menu pour jouer son personnage #1
Player_menu_character1:
debug: false
type: item
material: skull_item
display_name: Sélectionner votre personnage #1
#lore: Classe : <player.flag[character_type].get[1]||Emplacement disponible> - Niveau : <player.flag[character_level].get[1]||Emplacement disponible>
#Case de menu pour jouer son personnage #2
Player_menu_character2:
debug: false
type: item
material: skull_item
display_name: Sélectionner votre personnage #2
lore: Classe : <player.flag[character_type].get[1]||Emplacement disponible> - Niveau : <player.flag[character_level].get[1]||Emplacement disponible>
#Case de menu pour jouer son personnage #3
Player_menu_character3:
debug: false
type: item
material: skull_item
display_name: Sélectionner votre personnage #3
#lore: Classe : <player.flag[character_type].get[1]||Emplacement disponible> - Niveau : <player.flag[character_level].get[1]||Emplacement disponible>
#Case de menu pour créer un nouveau personnage
Player_menu_createnew:
debug: false
type: item
material: skull_item
display_name: Créer un nouveau personnage