dLottery:
type: world
events:
on player clicks in inventory:
- if <context.inventory.replace[<player.name>].is[!=].to[in@dLottery]> queue clear
- if <context.item.replace[i@].split[_].get[1].is[=].to[dLottery]> {
- run s@dLottery_clerk 'p:<c.item.split[_].get[2]>' 'npc:<player.flag[dLotteryclerk].as_npc>'
- flag player 'dLotteryclerk:!'
- inventory close 'd:in@<player.name>dLottery'
- note remove 'as:<player.name>dLottery'
}
- if <context.item.material.name.replace[i@].is[=].to[<player.flag[block]>]> {
- if <c.item.qty> == 9 {
- inventory remove 'd:in@<player.name>dLottery' 'o:i@<c.item.material.name>[display_name=<&e>Number_<&6><c.slot>;lore=<&e>click to add;quantity=8]'
- Determine CANCELLED
- queue clear
}
- inventory add 'd:in@<player.name>dLottery' 'o:i@<c.item.material.name>[display_name=<&e>Number_<&6><c.slot>;lore=<&e>click to add]' 'slot:<context.slot>'
}
- if <c.item.replace[i@].is[=].to[sel_book]> {
- if <player.flag[pick].is[=].to[3]> {
- define number '<c.inventory.slot[1].qty>-<c.inventory.slot[2].qty>-<c.inventory.slot[3].qty>'
- inventory close 'd:in@<player.name>dLottery'
- give "i@dLottery_Pick3_Ticket[display_name=<&e>D<&6>lottery<&e>T<&6>icket<&e>_%number%_date-bought_<util.date.time.day>/<util.date.time.month>/<util.date.time.year>]"
- narrate format:GenericNPCFormat "come back tommorow to see if you won!"
}
- if <player.flag[pick].is[=].to[4]> {
- define number '<c.inventory.slot[1].qty>-<c.inventory.slot[2].qty>-<c.inventory.slot[3].qty>-<c.inventory.slot[4].qty>'
- inventory close 'd:in@<player.name>dLottery'
- give "i@dLottery_Pick4_Ticket[display_name=<&e>D<&6>lottery<&e>T<&6>icket<&e>_%number%_date-bought_<util.date.time.day>/<util.date.time.month>/<util.date.time.year>]"
- narrate format:GenericNPCFormat "come back tommorow to see if you won!"
}
}
- Determine CANCELLED
on player closes inventory:
- if <c.inventory.is[==].to[in@<player.name>dLottery]||false> {
- note remove 'as:<player.name>dLottery'
- flag player 'dLotteryclerk:!'
}
datecheck:
type: procedure
script:
- - define date1 <player.item_in_hand.split[_].get[4]>
+ - define date1 <player.item_in_hand.display.split[_].get[4]>
- define day_bought <def[date1].split[/].get[1]>
- define month_bought <def[date1].split[/].get[2]>
- define year_bought <def[date1].split[/].get[3]>
- define day <util.date.time.day.sub[1]>
- define month <util.date.time.month>
- define year <util.date.time.year>
- - if <def[day_bought].is[==].to[<def[day]>]> && <def[year_bought].is[==].to[<def[year]>]> && <def[month_bought].is[==].to[<def[month]>]> || <def[day].is[==].to[0]> && <li@9|4|6|11.contains[<def[month_bought]>]> && <def[day_bought].is[==].to[30]> || <def[day].is[==].to[0]> && <li@1|3|5|7|8|10|12.contains[<def[month_bought]>]> && <def[day_bought].is[==].to[31]> || <def[day].is[==].to[0]> && <def[month_bought].is[==].to[2]> && <def[day_bought].is[==].to[28]> && !<def[y].div[4].is[matches].to[integer]> || <def[day].is[==].to[0]> && <def[month_bought].is[==].to[2]> && <def[day_bought].is[==].to[29]> && <def[y].div[4].is[matches].to[integer]> {
+ #still broken
+ - if (<def[day_bought].is[==].to[<def[day]>]> && <def[year_bought].is[==].to[<def[year]>]> && <def[month_bought].is[==].to[<def[month]>]>) || (<def[day].is[==].to[0]> && <li@9|4|6|11.contains[<def[month_bought]>]> && <def[day_bought].is[==].to[30]>) || (<def[day].is[==].to[0]> && <li@1|3|5|7|8|10|12.contains[<def[month_bought]>]> && <def[day_bought].is[==].to[31]>) || (<def[day].is[==].to[0]> && <def[month_bought].is[==].to[2]> && <def[day_bought].is[==].to[28]> && !<def[year].div[4].is[matches].to[integer]>) || (<def[day].is[==].to[0]> && <def[month_bought].is[==].to[2]> && <def[day_bought].is[==].to[29]> && <def[year].div[4].is[matches].to[integer]>) {
- determine true
+ }
+ else {
+ - determine false
}
dLottery_clerk:
type: assignment
actions:
on assignment:
- trigger name:chat toggle:true
- trigger name:click toggle:true
on click:
- if !<npc.has_flag[timer]> {
- inject locally timer
}
- if <player.item_in_hand.split[_].get[1].is[==].to[i@DLOTTERY]> {
- if <proc[datecheck]> {
- inject locally winning
- if <player.has_flag[reward]> {
- narrate format:GenericNPCFormat "wow, you won!!"
- narrate format:GenericNPCFormat "here is <player.flag[reward]> as a reward"
+ - give money qty:<player.flag[reward]>
- flag player reward:!
+ - take <player.item_in_hand>
}
else {
- narrate format:GenericNPCFormat "sorry, mabey next time!"
+ - take <player.item_in_hand>
}
}
else {
- narrate format:GenericNPCFormat "sorry, the im not checking these tickets today"
}
}
else {
+ - if <player.money.is[LESS].to[10]> {
+ - narrate format:GenericNPCFormat "you don't have enough money to buy a ticket"
+ - queue clear
+ }
- narrate format:GenericNPCFormat "pick a ticket"
- define GUI <player.name>dLottery
- note in@generic[title=<&c>d<&9>Lottery<&sp><&c>T<&9>ickets;size=9] 'as:%GUI%'
- inventory add 'd:in@%GUI%' 'o:i@dLottery_Pick3' 'slot:1'
- inventory add 'd:in@%GUI%' 'o:i@dLottery_Pick4' 'slot:2'
- flag player 'dLotteryclerk:<npc>'
- wait 10t
- inventory open 'd:in@%GUI%'
}
dLottery_draw:
- define num1 <util.random.int[1].to[9]>
- define num2 <util.random.int[1].to[9]>
- define num3 <util.random.int[1].to[9]>
- define nump3 %num1%_%num2%_%num3%
- sign "winning number Pick3|%nump3%" <npc.location>
- flag npc dlotpick3:%nump3%
- define num1 <util.random.int[1].to[9]>
- define num2 <util.random.int[1].to[9]>
- define num3 <util.random.int[1].to[9]>
- define num4 <util.random.int[1].to[9]>
- define nump4 %num1%_%num2%_%num3%_%num4%
- sign "winning number Pick3|%nump4%" <npc.location>
- flag npc dlotpick4:%nump4%
winning:
- define picktype <player.item_in_hand.split[_].get[2]>
- if <def[picktype].is[==].to[Pick4]> {
- flag player pick4
}
- define numraw <player.item_in_hand.display.split[_].get[2]>
- - define num1 <player.numraw.display.split[.].get[1]>
- - define num2 <player.numraw.display.split[.].get[2]>
- - define num3 <player.numraw.display.split[.].get[3]>
+ - define num1 <def[numraw].split[-].get[1]>
+ - define num2 <def[numraw].split[-].get[2]>
+ - define num3 <def[numraw].split[-].get[3]>
- define num %num1%%num2%%num3%
- if <player.has_flag[pick4]> {
- - define num4 <player.numraw.display.split[.].get[4]>
+ - define num4 <def[numraw].split[-].get[4]>
- define num %num1%%num2%%num3%%num4%
}
- define drawnum1 <npc.flag[dlotpick3].split[_].get[1]>
- define drawnum2 <npc.flag[dlotpick3].split[_].get[2]>
- define drawnum3 <npc.flag[dlotpick3].split[_].get[3]>
- define drawnum %drawnum1%%drawnum2%%drawnum3%
- if <player.has_flag[pick4]> {
- - define drawnum4 <player.item_in_hand.display.split[_].get[4]>
+ - define drawnum1 <npc.flag[dlotpick4].split[_].get[1]>
+ - define drawnum2 <npc.flag[dlotpick4].split[_].get[2]>
+ - define drawnum3 <npc.flag[dlotpick4].split[_].get[3]>
+ - define drawnum4 <npc.flag[dlotpick4].split[_].get[4]>
- define drawnum %drawnum1%%drawnum2%%drawnum3%%drawnum4%
}
- - if <def[num].is[==].to[drawnum]> {
+ - if <def[num].is[==].to[%drawnum%]> {
- if <player.has_flag[pick4]> {
- flag player reward:5000
}
- - else {
+ else {
- flag player reward:1000
}
}
- if <li@%num1%|%num2%|%num3%.contains[li@%drawnum1%|%drawnum2%|%drawnum3%]> {
- - if <player.has_flag[pick4]> {
- - flag player reward:2000
+ - if !<player.has_flag[reward]> {
+ - if <player.has_flag[pick4]> {
+ - flag player reward:2000
+ }
+ else {
+ - flag player reward:350
+ }
+ }
}
- - else {
- - flag player reward:350
+ - if !<player.has_flag[reward]> {
+ - if <player.has_flag[pick4]> {
+ - if <def[num].is[MORE].to[<def[drawnum].sub[16]>]> && <def[num].is[LESS].to[<def[drawnum].add[16]>]> {
+ - flag player reward:1000
+ }
}
- }
- - if <def[num].is[MORE].to[def[drawnum].sub[5]]> && <def[num].is[LESS].to[def[drawnum].add[5]]> && !<def[num].is[==].to[drawnum]> {
- - if <player.has_flag[pick4]> {
- - flag player reward:1000
- }
+ else {
+ - if <def[num].is[MORE].to[<def[drawnum].sub[6]>]> && <def[num].is[LESS].to[<def[drawnum].add[6]>]> {
+ - flag player reward:250
+ }
+ }
- - else {
- - flag player reward:250
}
- }
- flag player pick4:!
timer:
- flag npc timer
- define hour <util.date.time.hour>
- wait 1h
- if <def[hour].is[==].to[24]> {
- run locally dLottery_draw
}
else {
- inject locally timer
}
Pick3:
+ - take money qty:10
- define num <player.name>dLottery
- - if <player.money.is[<].to[10]> {
- - narrate format:GenericNPCFormat "you dont have enough money"
- - queue clear
- }
- flag player pick:3
- flag player block:lime_clay
- note in@generic[title=<&c>d<&9>Lottery<&sp><&c>T<&9>ickets;size=18] 'as:%num%'
- foreach li@1|2|3 {
- ^inventory add 'd:in@%num%' 'o:i@<player.flag[block]>[display_name=<&e>Number_<&6>%loop_index%;lore=<&e>click to add]' 'slot:%loop_index%'
}
- inventory add 'd:in@%num%' 'o:i@sel_book' 'slot:18'
+ - narrate format:GenericNPCFormat "let me just get a pen..."
- wait 10t
- inventory open 'd:in@%num%'
Pick4:
- - define num <player.name>dLottery
- - if <player.money.is[<].to[25]> {
- - narrate format:GenericNPCFormat "you dont have enough money"
+ - if <player.money.is[LESS].to[25]> {
+ - narrate format:GenericNPCFormat "you don't have enough for this ticket, but you can buy a Pick3 ticket..."
+ - narrate format:GenericNPCFormat "click on me again and choose the Pick3 if you want a Pick3 ticket"
- queue clear
}
+ - take money qty:25
+ - define num <player.name>dLottery
- flag player pick:4
- flag player block:red_clay
- note in@generic[title=<&c>d<&9>Lottery<&sp><&c>T<&9>ickets;size=18] 'as:%num%'
- foreach li@1|2|3|4 {
- inventory add 'd:in@%num%' 'o:<player.flag[block]>[display_name=<&e>Number_<&6>%loop_index%;lore=<&e>click to add]' 'slot:%loop_index%'
}
- - inventory add 'd:in@%num%' 'o:i@sel_book' 'slot:18'
+ - inventory add 'd:in@%num%' 'o:i@sel_book' 'slot:18'
+ - narrate format:GenericNPCFormat "let me just get a pen..."
- wait 10t
- inventory open 'd:in@%num%'
dLottery_Pick3:
type: item
material: 339
display name: "<&e>M<&6>ine<&e>C<&6>onomy <&e>D<&6>lottery"
lore:
- "<&5><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&a>P<&2>ick <&a>3"
- "<&5>-------------------------"
- "<&5>"
- "<&5><&f><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&a>C<&2>ost <&f>$10"
- "<&5><&f><&sp>Pick 3 numbers and see if you win"
- "<&5>"
- "<&5><&sp><&sp><&sp><&a><&n>W<&2><&n>inings"
- "<&5>"
- "<&a><&sp>E<&2>xact <&a>N<&2>umber➛<&sp><&f>$1000"
- "<&a><&sp>S<&2>ame <&a>N<&2>umbers➛<&sp><&f>$350"
- "<&a><&sp>W<&2>ithin <&a>5➛<&sp><&f>$250"
- "<&5>"
dLottery_Pick4:
type: item
material: 339
display name: "<&e>M<&6>ine<&e>C<&6>onomy <&e>D<&6>lottery"
lore:
- "<&5><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&c>P<&4>ick <&c>4"
- "<&5>-------------------------"
- "<&5>"
- "<&5><&f><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&c>C<&4>ost <&f>$25"
- "<&5><&f><&sp>Pick 4 numbers and see if you win"
- "<&5>"
- "<&5><&sp><&sp><&sp><&c><&n>W<&4><&n>inings"
- "<&5>"
- "<&c><&sp>E<&4>xact <&c>N<&4>umber➛<&sp><&f>$5000"
- "<&c><&sp>S<&4>ame <&c>N<&4>umbers➛<&sp><&f>$2000"
- "<&c><&sp>W<&4>ithin <&c>15➛<&sp><&f>$1000"
- "<&5>"
sel_book:
type: item
material: book
display name: "<&e>click when done"
dLottery_Pick3_Ticket:
type: item
material: 339
display name: "<&e>M<&6>ine<&e>C<&6>onomy <&e>D<&6>lottery"
lore:
- "<&5><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&a>P<&2>ick <&a>3"
- "<&5>-------------------------"
- "<&5>"
- "<&5><&f><&sp>Hand this to the clerk tomorrow"
- "<&5><&f><&sp>to see if you won!"
dLottery_Pick4_Ticket:
type: item
material: 339
display name: "<&e>M<&6>ine<&e>C<&6>onomy <&e>D<&6>lottery"
lore:
- "<&5><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&c>P<&4>ick <&c>4"
- "<&5>-------------------------"
- "<&5>"
- "<&5><&f><&sp>Hand this to the clerk tomorrow"
- "<&5><&f><&sp>to see if you won!"
-