Date: 2016/09/17 18:49:08 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
Ony_Marchands_PNJ:
type: assignment
actions:
on spawn:
- trigger name:click state:true
on click:
- if !<npc.name.contains[Marchand]> {
- queue clear
}
- choose "<npc.name>":
- case "Marchand de Potions":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
- case "Marchand de Parchemins":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
- case "Marchand de Ressources":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
- case "Marchand de Nourriture":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
- case "Marchand d<&sq>Armes":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
- case "Marchand de Familiers":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
- case "Marchand d<&sq>Armures":
- run s@Ony_Marchands_Event p:Ony_Marchands_Potions instantly
on chat:
- if <pl.flag[marchandReponse].is[==].to[attente].not> {
- queue clear
}
- if <c.message> !matches number {
- narrate "<&c><c.message> n'est pas une quantité valide. Veuillez réessayer."
}
Ony_Marchands_Event:
type: world
events:
on server start:
- queue clear
on player clicks in inventory:
- if <c.inventory.notable_name.split[_].get[1].is[==].to[OnyMarchands].not> {
- queue clear
}
- inject locally Ony_Marchands_ClickHandler
Ony_Marchands_ClickHandler:
- define inv <c.inventory.notable_name.split[_].get[2]||null>
- define page <c.inventory.notable_name.split[_].get[4]||null>
- define mode <c.inventory.notable_name.split[_].get[3]||null>
- choose %mode%:
- case Achat:
- inject locally Ony_Marchands_ClickHandler_Achat instantly
- case Vente:
- inject locally Ony_Marchands_ClickHandler_Vente instantly
- case null:
- determine cancelled
Ony_Marchands_ClickHandler_Vente:
- define i <c.cursor_item.display>
- define qty <player.inventory.quantity[<c.cursor_item>]>
- inventory close
- narrate "<&a>[Marchand de %inv%] Quelle quantité de l'objet %i% désirez-vous mettre en vente? Vous en avez %qty%."
- flag player marchandReponse:attente
- while <player.flag[marchandReponse]> == attente {
- wait 5t
}
-
Ony_Marchands_ClickHandler_Achat:
Ony_Marchands_Potions:
- define p <proc[perso].context[<player>]>
- define a <yaml[%p%].read[money]>
- define inv OnyMarchands_Potions_Achat_p1_<pl>
- note "in@generic[title=Marchand de Potions;size=54]" "as:%inv%"
- foreach <server.list_files[/marchands/potions].as_list.get[1].to[45]||li@> {
- define i <yaml[%value%].read[material]>
- define dn <yaml[%value%].read[name]>
- define p <yaml[%value%].read[price]>
- inventory add d:in@%inv% "o:i@%i%[display_name=%dn%;lore=%p%|Sera retiré de la vente le $date$|%d%]" slot:<def[loop_index].add[9]>
}
- inventory add "d:in@%inv%" "o:i@388[display_name=<&a>%a%<&sp>$]" "slot:1"
- inventory open d:in@%inv%