Date: 2017/05/05 19:20:59 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
on player clicks in sp_buy_inv:
- if <context.raw_slot> <= 54 {
- determine passively cancelled
} else if <context.is_shift_click> {
- determine cancelled
}
- if <context.raw_slot> <= 9 || <context.item> == <i@sp_glass> {
- queue clear
}
- define worth "<context.item.lore.get[<context.item.lore.size>].after[: ]>"
- define currency "<yaml[sp].read[shops.<player.flag[shopinfo].get[1]>.currency]||default>"
- define money "<proc[emoney].context[<def[currency]>]>"
- define npcid "<player.flag[sp.talking_to].as_npc>"
#- define player_buypower "<proc[sp_buypower]>"
- define clicktype_factor "<tern[<context.is_shift_click>]:<el@val[8]>||<el@val[1]>>"
- if <proc[invspace].sub[<context.item.quantity.mul[<def[clicktype_factor]>].div[64].round_up>]> < 0 {
- narrate "<&4>Du hast kein Platz!"
- queue clear
}
- if <def[money]> < <def[worth].mul[<def[clicktype_factor]>]> {
- narrate "<&4>Du hast nicht genug Geld !"
- queue clear
}
- if <def[worth].mul[<def[clicktype_factor]>]> > 1 {
- define currency_name "<s@g_var.constant[m_<def[currency]>_pl]>"
} else {
- define currency_name "<s@g_var.constant[m_<def[currency]>_sg]>"
}
- narrate "<&6><def[worth].mul[<def[clicktype_factor]>]> <&f><def[currency_name]> entfernt."
- run s@emoney_take def:<def[currency]>|<def[worth].mul[<def[clicktype_factor]>]>
- inject sp_buypower_add
- adjust <context.item> "lore:<context.item.lore.remove[<context.item.lore.size>]>" save:item
- repeat <def[clicktype_factor]> {
- give <entry[item].result>
}
sp_buypower_take:
type: task
debug: true
speed: 0t
script:
- define player_buypower "<def[player_buypower]||<proc[sp_buypower]>>"
# sp.buypower.<region||default>.<e-id||npcid>
- define flag_destination "sp.buypower.<player.flag[erpg_region]||general>.<def[npcid].flag[e-id] || <def[npcid]> >"
# <destination> : <proc[buypower]> - ( ( wert * clicktype_factor||1 ) * 100 .as_int )||unbegrenzt
- if <def[player_buypower]> matches number {
- flag player "<def[flag_destination]>:<def[player_buypower].mul[100].sub[<def[worth].mul[<def[clicktype_factor]||1>].mul[100]>].as_int||unbegrenzt>"
}
sp_buypower_add:
type: task
debug: true
speed: 0t
script:
- define player_buypower "<def[player_buypower]||<proc[sp_buypower]>>"
- define flag_destination "sp.buypower.<player.flag[erpg_region]||general>.<def[npcid].flag[e-id] || <def[npcid]> >"
- if <def[player_buypower]> matches number {
- flag player "<def[flag_destination]>:<def[player_buypower].mul[100].add[<def[worth].mul[<def[clicktype_factor]||1>].mul[100]>].as_int||unbegrenzt>"
}
#Returns:
# players erpg buypower <FALLBACK> players general buypower <FALLBACK> npcs default buypower <FALLBACK> unbegrenzt
sp_buypower:
type: procedure
debug: true
script:
- define npcid <player.flag[sp.talking_to].as_npc>
- define flag_source "<player.flag[sp.buypower.<player.flag[erpg_region]||general>.<def[npcid].flag[e-id] || <def[npcid]> >] || <def[npcid].flag[sp.buypower].as_int||x> >"
- if <def[flag_source]> matches number {
- determine "<def[flag_source].div[100]>"
} else {
- determine unbegrenzt
}