Date: 2016/05/22 19:55:42 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
OnyCore_Events:
type: world
events:
#########################
## Connexion du joueur ##
#########################
on player joins:
- foreach <player.flag[pliste].as_list> {
- yaml load:%value%.yml id:%value%
}
- inject locally OnyCore_PersonnageSelection
###################################
## Quand le joueur se déconnecte ##
###################################
on player quits:
- inject locally instantly OnyCore_Deconnexion
on player clicks in inventory:
- if "<c.inventory.notable_name.split[_].get[1].is[==].to[OnyCore]>" {
- if "<c.slot_type>" == "OUTSIDE" || "<context.item> == i@air" {
- determine passively cancelled
} else {
- inject locally OnyCore_ClickHandler
}
} else queue clear
on player chats:
- if <player.has_flag[create]> {
- define perso <context.message>
- if <server.has_file[/personnages/%perso%.yml].not> {
- inject locally OnyCore_CreationPersonnage def:%perso%
} else {
- narrate "<&4>Ce nom est déjà pris! Veuillez en choisir un autre."
}
} else queue clear
OnyCore_PersonnageSelection:
- define nom <player.name>
- define inv "OnyCore_PersonnageSelection_%nom%"
- note "in@generic[title=<&d>Choisissez&spvotre&sppersonnage;size=18]" "as:%inv%"
- define nbrPersos "<player.flag[pliste].as_list.size||0>"
- choose %nbrPersos%:
- case "0":
- inject locally OnyCore_PersonnageCreate
- case "1":
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<proc[pname].context[1]>;lore=<proc[pclasse].context[1]>&spNiv&dot&sp<proc[pniveau].context[1]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@skull[display_name=<&d>Créer&spun&sppersonnage...]" "slot:5"
- inventory add "d:in@%inv%" "o:i@skull[display_name=<&d>Créer&spun&sppersonnage...]" "slot:6"
- inventory add "d:in@%inv%" "o:i@anvil[display_name=<&d>Créer&spun&spnouveau&sppersonnage;lore=Vous&spavez&sp1&sppersonnages&spsur&sp3&spde&spcréés&dot]" "slot:17"
- case "2":
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<proc[pname].context[1]>;lore=<proc[pclasse].context[1]>&spNiv&dot&sp<proc[pniveau].context[1]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[2]>[display_name=<proc[pname].context[2]>;lore=<proc[pclasse].context[2]>&spNiv&dot&sp<proc[pniveau].context[2]>]" "slot:5"
- inventory add "d:in@%inv%" "o:i@skull[display_name=<&d>Créer&spun&sppersonnage&dot&dot&dot]" "slot:6"
- inventory add "d:in@%inv%" "o:i@anvil[display_name=<&d>Créer&spun&spnouveau&sppersonnage;lore=Vous&spavez&sp2&sppersonnages&spsur&sp3&spde&spcréés.]" "slot:17"
- case "3":
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[1]>[display_name=<proc[pname].context[1]>;lore=<proc[pclasse].context[1]>&spNiv&dot&sp<proc[pniveau].context[1]>]" "slot:4"
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[2]>[display_name=<proc[pname].context[2]>;lore=<proc[pclasse].context[2]>&spNiv&dot&sp<proc[pniveau].context[2]>]" "slot:5"
- inventory add "d:in@%inv%" "o:i@<proc[pitem].context[3]>[display_name=<proc[pname].context[3]>;lore=<proc[pclasse].context[3]>&spNiv&dot&sp<proc[pniveau].context[3]>]" "slot:6"
- inventory add "d:in@%inv%" "o:i@anvil[display_name=<&4>Vous&spavez&spatteint&sple&spnombre&spde&sppersonnages&spmaximal!;lore=<&7>Pour&spcréer&spun&spnouveau&sppersonnage&nlvous&spdevez&spd&sqen&spsupprimer&spun&dot]" "slot:17"
- if <player.has_permission[builder]||false> {
- inventory add "d:in@%inv%" "o:i@workbench[display_name=<&c>Mode&spConstruction]" "slot:16"
}
- inventory add "d:in@%inv%" "o:i@barrier[display_name=<&c>Supprimer&spun&sppersonnage]"
- inventory open d:in@%inv%
############################
## Création du personnage ##
############################
OnyCore_PersonnageCreate:
- define nom <player.name>
- define inv "OnyCore_PersonnageCreate_%nom%"
- note "in@generic[title=<&d>Créer&spun&sppersonnage;size=9" "as:%inv%"
- inventory add "d:in@%inv%" "o:i@bow[display_name=<&d>Créer un <&b><&l>Archer]" "slot:4"
- inventory add "d:in@%inv%" "o:i@iron_sword[display_name=<&d>Créer un <&b><&l>Guerrier]" "slot:5"
- inventory add "d:in@%inv%" "o:i@stick[display_name=<&d>Créer un <&b><&l>Mage]" "slot:6"
- if <player.flag[pliste].as_list.size> >= 1 {
- inventory add "d:in@%inv%" "o:i@barrier[display_name=<&c>Annuler" "slot:9"
}
- inventory open d:in@%inv%
#############################
## Supprimer un personnage ##
#############################
OnyCore_PersonnageSupprimer:
- define jNom <player.name>
- define nbrPersos "<player.flag[pliste].as_list>"
- define inv "OnyCore_PersonnageSupprimer_%jNom%"
- note "in@generic[title=<&d>Supprimer un personnage;size=9" "as:%inv%"
- foreach %nbrPersos% {
- inventory add "d:in@%inv%" "o:i@pinfo" "slot:%loop_index%"
}
- inventory add "d:in@%inv% "o:i@slime_ball[display_name=Annuler]" "slot:9"
- inventory open d:in@%inv%
OnyCore_ClickHandler:
- define nom <player.name>
- define slot "<context.slot>"
- if "<c.inventory.notable_name.split[_].get[2].is[==].to[PersonnageSelection]>" {
- note remove "as:OnyCore_PersonnageSelection_%nom%"
- choose %slot%:
- case "4":
- inject locally OnyCore_JouerPersonnage def:1
- case "5":
- inject locally OnyCore_JouerPersonnage def:2
- case "6":
- inject locally OnyCore_JouerPersonnage def:3
- case "16":
- inject locally OnyCore_JouerBuilder
- case "17":
- inject locally OnyCore_PersonnageCreate
- case "18":
- inject locally OnyCore_PersonnageSupprimer
} else if "<c.inventory.notable_name.split[_].get[2].is[==].to[PersonnageCreate]>" {
- note remove "as:OnyCore_PersonnageCreate_%nom%"
- choose %slot%:
- case "4":
- flag player create:Archer
- narrate "<&c>Écrivez dans le chat le nom de votre personnage."
- case "5":
- flag player create:Guerrier
- narrate "<&c>Écrivez dans le chat le nom de votre personnage."
- case "6":
- flag player create:Mage
- narrate "<&c>Écrivez dans le chat le nom de votre personnage."
- case "9":
- inject locally OnyCore_PersonnageSelection
} else if "<c.inventory.notable_name.split[_].get[2].is[==].to[PersonnageSupprimer]>" {
- note remove "as:OnyCore_PersonnageSupprimer_%nom%"
- choose %slot%:
- case "4":
- inject locally OnyCore_SupprPersonnage def:1
- case "5":
- inject locally OnyCore_SupprPersonnage def:2
- case "6":
- inject locally OnyCore_SupprPersonnage def:3
- case "9":
- inject locally OnyCore_PersonnageSelection
} else if "<c.inventory.notable_name.split[_].get[2].is[==].to[SupprPersonnage]>"
- note remove "as:OnyCore_SupprPersonnage_%nom%"
- choose %slot%:
- case "4":
- inject locally OnyCore_SupprPersonnage_Oui
- case "5":
- inject locally OnyCore_PersonnageSelection
OnyCore_JouerPersonnage:
type: task
definitions: slot
script:
- deifne perso <player.flag[pliste].get[%slot%]>
- define lastPos <yaml[%perso%].get[lastpos]>
- define inv <yaml[%perso%].get[lastinv]>
- define vie <yaml[%perso%].read[vitalité]>
- flag player enjeu:%slot%
- adjust <player> scale_health:true
- health <player> %vie%
- heal <player.name>
- teleport <player> %lastPos%
- inventory set d:<player> o:%inv%
- narrate "<&a><&l>Bienvenue sur OnyCraft, <player.name>!"
- narrate "<&e><&l>Votre personnage : %perso%"
- narrate "<&c><&l>OnyCraft est présentement en Alpha Dev. Merci de participer à son développement!"
OnyCore_CreationPersonnage:
type: task
definitions: perso
script:
- define classe <player.flag[create]>
- flag player pliste:->:%perso%
- ^yaml create id:%perso%
- ^yaml id:%perso% set joueur:<player.name>
- ^yaml id:%perso% set uuid:<player.uuid>
- ^yaml id:%perso% set creation:<util.date.time.year>/<util.date.time.month>/<util.date.time.day>|<util.date.time.twentyfour_hour>
- ^yaml id:%perso% set classe:%classe%
- ^yaml id:%perso% set niveau:1
- ^yaml id:%perso% set intelligence:0
- ^yaml id:%perso% set agilité:0
- ^yaml id:%perso% set chance:0
- ^yaml id:%perso% set force:0
- ^yaml id:%perso% set sagesse:0
- ^yaml id:%perso% set vitalité:50
- ^yaml id:%perso% set carac_pts:0
- ^yaml id:%perso% set sort_pts:0
- ^yaml id:%perso% set energie:10
- ^yaml "savefile:/personnages/%perso%.yml" id:%perso%
- flag player create:!
- inject locally OnyCore_NouveauPersonnage
- flag player enjeu:<player.flag[pliste].as_list.size>
OnyCore_Deconnexion:
type: task
script:
- ^define perso <proc[p_name]>
- ^flag player enjeu:!
- ^yaml id:%perso% set lastpos:<player.location>
- ^yaml id:%perso% set lastinv:<player.inventory.list_contents>
- ^inventory d:<player> clear
- yaml "savefile:/personnages/%perso%.yml" id:%perso%
- yaml unload id:%perso%
OnyCore_SupprPersonnage:
type: task
definitions: %slot%
script:
- define perso <player.flag[pliste].get[%slot%]>
- define nom <player.name>
- define inv "OnyCore_SupprPersonnage_%nom%"
- flag player suppr:%slot%
- note "in@generic[title=<&d>Confirmation de suppression;size=9]" "as:%inv%"
- inventory add "d:in@%inv%" "o:i@slime_ball[display_name=Oui, je veux vraiment supprimer %perso%.;lore=<&4>ATTENTION!&nl<&4>Toute votre progression sera perdue.&nlVous ne pourrez pas récupérer votre personnage.]" "slot:4"
- inventory add "d:in@%inv%" "o:i@redstone_block[display_name=Non, je ne veux pas supprimer %perso%˙lore=<&d>Retourner au menu précédent&dot]" "slot:5"
- inventory open d:in@%inv%
OnyCore_SupprPersonnage_Oui:
type: task
script:
- define nom <player.name>
- define slot <player.flag[suppr]>
- define perso <player.flag[pliste].get[%slot%]>
- adjust server delete_file:/personnages/%perso%.yml
- flag player pliste:<-:%perso%
- inject locally OnyCore_PersonnageSelection
OnyCore_NouveauPersonnage:
type: task
script:
- run initiate_instance def:temple|<player>
- wait 5t
- define world <proc[instance].context[<player>].split[@].get[2]>
- teleport <player> -21,230,24,%world%
- create player Prisonnier -23,230,24,%world% save:npc1
#- adjust <entry[npc1].created_npc> skin:
- assignment set "script:Bandit_Quete_Assignment" npc:<entry[npc1].created_npc>