Removed Lottery.
This commit is contained in:
parent
e2bfda977f
commit
ffb4b42633
@ -539,39 +539,6 @@ AltManorSaveAllActions = False
|
||||
AltManorSavePeriodRate = 2
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Lottery
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
# Default: True
|
||||
# Crashes the client (packet problem?)
|
||||
AllowLottery = False
|
||||
|
||||
# Initial Lottery prize.
|
||||
# Default: 50000
|
||||
AltLotteryPrize = 50000
|
||||
|
||||
# Lottery Ticket Price
|
||||
# Default: 2000
|
||||
AltLotteryTicketPrice = 2000
|
||||
|
||||
# What part of jackpot amount should receive characters who pick 5 wining numbers
|
||||
# Default: 0.6
|
||||
AltLottery5NumberRate = 0.6
|
||||
|
||||
# What part of jackpot amount should receive characters who pick 4 wining numbers
|
||||
# Default: 0.2
|
||||
AltLottery4NumberRate = 0.2
|
||||
|
||||
# What part of jackpot amount should receive characters who pick 3 wining numbers
|
||||
# Default: 0.2
|
||||
AltLottery3NumberRate = 0.2
|
||||
|
||||
# How much Adena receive characters who pick two or less of the winning number
|
||||
# Default: 200
|
||||
AltLottery2and1NumberPrize = 200
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Item Auction
|
||||
# ---------------------------------------------------------------------------
|
||||
|
@ -1,9 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Welcome! Want a lottery ticket?<br>
|
||||
One costs 2,000 Adena.<br>
|
||||
Wanna buy? Then choose to proceed!<br>
|
||||
If you don't know the game rules, refer to the instructions!<br>
|
||||
<center><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 21">"I want to proceed."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 25">"Okay, I'll take a look at the instructions."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">"I want to quit."</Button></center>
|
||||
</body></html>
|
@ -1,14 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Here is how to play the lottery:<br>
|
||||
Select five numbers between 1 and 20. Your prize is determined by how many winning numbers you match.<br>
|
||||
First place goes to those who pick all five winning numbers. First place prize amount is 60% of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Second place goes to those who pick four out of the five winning numbers. Second place prize amount is 20% of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Third place goes to those who pick three out of the five winning numbers. Third place prize amount is 20% of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Those who pick two or less of the winning number may receive 200 Adena.<br>
|
||||
The prize money for each category will be divided equally amongst winners. If there are no winners in any category, those winnings are transferred to the next jackpot.<br>
|
||||
Lottery Tickets are sold on a weekly basis, starting at 7:10 pm every Saturday until 6:50 pm the following Saturday.<br>
|
||||
The winning numbers are announced at 7:00 pm every Saturday. All times are subject to change.<br>
|
||||
I wish you luck! Enjoy the lottery.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">"Can I buy a lottery ticket?"</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Welcome to the Aden Lottery owned and operated by the Innadril Merchants Association!<br>
|
||||
May I have your attention please!<br>
|
||||
The total jackpot amount so far for the Round 160 Lottery is %adena% Adena.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
%result%
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</body></html>
|
@ -1,55 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
This is Round %race% of Lottery. Choose five numbers:<br>
|
||||
<center>
|
||||
<table width=240 height=120 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottotl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottotc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottotr" width=20 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottoml" width=20 height=80></td>
|
||||
<td align=center valign=top>
|
||||
<table width=200 height=80 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 1" fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 2" fore="L2UI.lottoNum02" back="L2UI.lottoNum02a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 3" fore="L2UI.lottoNum03" back="L2UI.lottoNum03a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 4" fore="L2UI.lottoNum04" back="L2UI.lottoNum04a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 5" fore="L2UI.lottoNum05" back="L2UI.lottoNum05a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 6" fore="L2UI.lottoNum06" back="L2UI.lottoNum06a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 7" fore="L2UI.lottoNum07" back="L2UI.lottoNum07a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 8" fore="L2UI.lottoNum08" back="L2UI.lottoNum08a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 9" fore="L2UI.lottoNum09" back="L2UI.lottoNum09a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 10" fore="L2UI.lottoNum10" back="L2UI.lottoNum10a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 11" fore="L2UI.lottoNum11" back="L2UI.lottoNum11a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 12" fore="L2UI.lottoNum12" back="L2UI.lottoNum12a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 13" fore="L2UI.lottoNum13" back="L2UI.lottoNum13a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 14" fore="L2UI.lottoNum14" back="L2UI.lottoNum14a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 15" fore="L2UI.lottoNum15" back="L2UI.lottoNum15a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 16" fore="L2UI.lottoNum16" back="L2UI.lottoNum16a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 17" fore="L2UI.lottoNum17" back="L2UI.lottoNum17a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 18" fore="L2UI.lottoNum18" back="L2UI.lottoNum18a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 19" fore="L2UI.lottoNum19" back="L2UI.lottoNum19a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 20" fore="L2UI.lottoNum20" back="L2UI.lottoNum20a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td><img src="L2UI.lottomr" width=20 height=80></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottobl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottobc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottobr" width=20 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Return</Button>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
The winners will be announced at 7:00 pm on Saturday<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Hello! Welcome to the Aden Lottery owned and operated by the Innadril Merchants Association!<br>
|
||||
Every ticket is a potential winner! Step right up!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">"Let me buy a lottery ticket."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 23">"How big is the jackpot?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 24">"What were the previous winning ticket numbers?"</Button>
|
||||
</body></html>
|
@ -1,10 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
One lottery Ticket costs %ticket_price% Adena.<br>
|
||||
If you wish to play the lottery, press the button.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 21">Continue</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 25">Lottery instructions</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Quit</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,14 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Here is how to play the lottery:<br>
|
||||
Select five numbers between 1 and 20. Your prize is determined by how many winning numbers you match.<br>
|
||||
First place goes to those who pick all five winning numbers. First place prize amount is %prize5% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Second place goes to those who pick four out of the five winning numbers. Second place prize amount is %prize4% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Third place goes to those who pick three out of the five winning numbers. Third place prize amount is %prize3% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Those who pick two or less of the winning number may receive %prize2% Adena.<br>
|
||||
The prize money for each category will be divided equally amongst winners. If there are no winners in any category, those winnings are transferred to the next jackpot.<br>
|
||||
Lottery Tickets are sold on a weekly basis, starting at 7:10 pm every Saturday until 6:50 pm the following Saturday.<br>
|
||||
The winning numbers are announced at 7:00 pm every Saturday. All times are subject to change.<br>
|
||||
I wish you luck! Enjoy the lottery.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Buy a Lottery Ticket.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
May I have your attention please!<br>
|
||||
The total jackpot amount so far for the Round %race% Lottery is %adena% Adena.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
%result%
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</body></html>
|
@ -1,54 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
This is Round %race% of Lottery. Choose five numbers:<br>
|
||||
<center>
|
||||
<table width=240 height=120 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottotl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottotc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottotr" width=20 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottoml" width=20 height=80></td>
|
||||
<td align=center valign=top>
|
||||
<table width=200 height=80 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 1" fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 2" fore="L2UI.lottoNum02" back="L2UI.lottoNum02a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 3" fore="L2UI.lottoNum03" back="L2UI.lottoNum03a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 4" fore="L2UI.lottoNum04" back="L2UI.lottoNum04a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 5" fore="L2UI.lottoNum05" back="L2UI.lottoNum05a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 6" fore="L2UI.lottoNum06" back="L2UI.lottoNum06a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 7" fore="L2UI.lottoNum07" back="L2UI.lottoNum07a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 8" fore="L2UI.lottoNum08" back="L2UI.lottoNum08a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 9" fore="L2UI.lottoNum09" back="L2UI.lottoNum09a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 10" fore="L2UI.lottoNum10" back="L2UI.lottoNum10a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 11" fore="L2UI.lottoNum11" back="L2UI.lottoNum11a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 12" fore="L2UI.lottoNum12" back="L2UI.lottoNum12a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 13" fore="L2UI.lottoNum13" back="L2UI.lottoNum13a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 14" fore="L2UI.lottoNum14" back="L2UI.lottoNum14a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 15" fore="L2UI.lottoNum15" back="L2UI.lottoNum15a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 16" fore="L2UI.lottoNum16" back="L2UI.lottoNum16a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 17" fore="L2UI.lottoNum17" back="L2UI.lottoNum17a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 18" fore="L2UI.lottoNum18" back="L2UI.lottoNum18a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 19" fore="L2UI.lottoNum19" back="L2UI.lottoNum19a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 20" fore="L2UI.lottoNum20" back="L2UI.lottoNum20a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td><img src="L2UI.lottomr" width=20 height=80></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottobl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottobc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottobr" width=20 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Return</Button>
|
||||
</body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
The winners will be announced at 7:00 pm on Saturday<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
Every ticket is a potential winner! Step right up!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Purchase Lottery Ticket</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 23">Current lottery jackpot</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 24">Previous winning numbers/Prize claim</Button>
|
||||
</body></html>
|
@ -1,9 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Welcome! Want a lottery ticket?<br>
|
||||
One costs %ticket_price% Adena.<br>
|
||||
Wanna buy? Then choose to proceed!<br>
|
||||
If you don't know the game rules, refer to the instructions!<br>
|
||||
<center><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 21">"I want to proceed."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 25">"Okay, I'll take a look at the instructions."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">"I want to quit."</Button></center>
|
||||
</body></html>
|
@ -1,14 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Here is how to play the lottery:<br>
|
||||
Select five numbers between 1 and 20. Your prize is determined by how many winning numbers you match.<br>
|
||||
First place goes to those who pick all five winning numbers. First place prize amount is %prize5%% of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Second place goes to those who pick four out of the five winning numbers. Second place prize amount is %prize4%% of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Third place goes to those who pick three out of the five winning numbers. Third place prize amount is %prize3%% of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Those who pick two or less of the winning number may receive %prize2% Adena.<br>
|
||||
The prize money for each category will be divided equally amongst winners. If there are no winners in any category, those winnings are transferred to the next jackpot.<br>
|
||||
Lottery Tickets are sold on a weekly basis, starting at 7:10 pm every Saturday until 6:50 pm the following Saturday.<br>
|
||||
The winning numbers are announced at 7:00 pm every Saturday. All times are subject to change.<br>
|
||||
I wish you luck! Enjoy the lottery.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">"Can I buy a lottery ticket?"</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</body></html>
|
@ -1,9 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Welcome to the Aden Lottery owned and operated by the Innadril Merchants Association!<br>
|
||||
May I have your attention please!<br>
|
||||
The total jackpot amount so far for the Round %race% Lottery is %adena% Adena.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</center>
|
||||
|
||||
</body></html>
|
@ -1,5 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
%result%
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</body></html>
|
@ -1,54 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
This is Round %race% of Lottery. Choose five numbers:<br>
|
||||
<center>
|
||||
<table width=240 height=120 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottotl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottotc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottotr" width=20 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottoml" width=20 height=80></td>
|
||||
<td align=center valign=top>
|
||||
<table width=200 height=80 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 1" fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 2" fore="L2UI.lottoNum02" back="L2UI.lottoNum02a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 3" fore="L2UI.lottoNum03" back="L2UI.lottoNum03a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 4" fore="L2UI.lottoNum04" back="L2UI.lottoNum04a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 5" fore="L2UI.lottoNum05" back="L2UI.lottoNum05a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 6" fore="L2UI.lottoNum06" back="L2UI.lottoNum06a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 7" fore="L2UI.lottoNum07" back="L2UI.lottoNum07a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 8" fore="L2UI.lottoNum08" back="L2UI.lottoNum08a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 9" fore="L2UI.lottoNum09" back="L2UI.lottoNum09a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 10" fore="L2UI.lottoNum10" back="L2UI.lottoNum10a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 11" fore="L2UI.lottoNum11" back="L2UI.lottoNum11a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 12" fore="L2UI.lottoNum12" back="L2UI.lottoNum12a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 13" fore="L2UI.lottoNum13" back="L2UI.lottoNum13a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 14" fore="L2UI.lottoNum14" back="L2UI.lottoNum14a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 15" fore="L2UI.lottoNum15" back="L2UI.lottoNum15a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 16" fore="L2UI.lottoNum16" back="L2UI.lottoNum16a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 17" fore="L2UI.lottoNum17" back="L2UI.lottoNum17a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 18" fore="L2UI.lottoNum18" back="L2UI.lottoNum18a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 19" fore="L2UI.lottoNum19" back="L2UI.lottoNum19a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 20" fore="L2UI.lottoNum20" back="L2UI.lottoNum20a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td><img src="L2UI.lottomr" width=20 height=80></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottobl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottobc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottobr" width=20 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Return</Button>
|
||||
</body></html>
|
@ -1,8 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
The winners will be announced at 7:00 pm on Saturday<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Hello! Welcome to the Aden Lottery owned and operated by the Innadril Merchants Association!<br>
|
||||
Every ticket is a potential winner! Step right up!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">"Let me buy a lottery ticket."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 23">"How big is the jackpot?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 24">"What were the previous winning ticket numbers?"</Button>
|
||||
</body></html>
|
@ -1,11 +0,0 @@
|
||||
<html><body>
|
||||
Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
One lottery Ticket costs %ticket_price% Adena.<br>
|
||||
If you wish to play the lottery, press the button.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 21">Continue</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 25">Lottery instructions</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Quit</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,14 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Here is how to play the lottery:<br>
|
||||
Select five numbers between 1 and 20. Your prize is determined by how many winning numbers you match.<br>
|
||||
First place goes to those who pick all five winning numbers. First place prize amount is %prize5% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Second place goes to those who pick four out of the five winning numbers. Second place prize amount is %prize4% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Third place goes to those who pick three out of the five winning numbers. Third place prize amount is %prize3% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Those who pick two or less of the winning number may receive %prize2% Adena.<br>
|
||||
The prize money for each category will be divided equally amongst winners. If there are no winners in any category, those winnings are transferred to the next jackpot.<br>
|
||||
Lottery Tickets are sold on a weekly basis, starting at 7:10 pm every Saturday until 6:50 pm the following Saturday.<br>
|
||||
The winning numbers are announced at 7:00 pm every Saturday. All times are subject to change.<br>
|
||||
I wish you luck! Enjoy the lottery.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Buy a Lottery Ticket.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
May I have your attention please!<br>
|
||||
The total jackpot amount so far for the Round %race% Lottery is %adena% Adena.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
%result%
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</body></html>
|
@ -1,54 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
This is Round %race% of Lottery. Choose five numbers:<br>
|
||||
<center>
|
||||
<table width=240 height=120 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottotl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottotc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottotr" width=20 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottoml" width=20 height=80></td>
|
||||
<td align=center valign=top>
|
||||
<table width=200 height=80 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 1" fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 2" fore="L2UI.lottoNum02" back="L2UI.lottoNum02a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 3" fore="L2UI.lottoNum03" back="L2UI.lottoNum03a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 4" fore="L2UI.lottoNum04" back="L2UI.lottoNum04a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 5" fore="L2UI.lottoNum05" back="L2UI.lottoNum05a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 6" fore="L2UI.lottoNum06" back="L2UI.lottoNum06a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 7" fore="L2UI.lottoNum07" back="L2UI.lottoNum07a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 8" fore="L2UI.lottoNum08" back="L2UI.lottoNum08a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 9" fore="L2UI.lottoNum09" back="L2UI.lottoNum09a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 10" fore="L2UI.lottoNum10" back="L2UI.lottoNum10a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 11" fore="L2UI.lottoNum11" back="L2UI.lottoNum11a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 12" fore="L2UI.lottoNum12" back="L2UI.lottoNum12a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 13" fore="L2UI.lottoNum13" back="L2UI.lottoNum13a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 14" fore="L2UI.lottoNum14" back="L2UI.lottoNum14a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 15" fore="L2UI.lottoNum15" back="L2UI.lottoNum15a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 16" fore="L2UI.lottoNum16" back="L2UI.lottoNum16a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 17" fore="L2UI.lottoNum17" back="L2UI.lottoNum17a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 18" fore="L2UI.lottoNum18" back="L2UI.lottoNum18a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 19" fore="L2UI.lottoNum19" back="L2UI.lottoNum19a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 20" fore="L2UI.lottoNum20" back="L2UI.lottoNum20a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td><img src="L2UI.lottomr" width=20 height=80></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottobl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottobc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottobr" width=20 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Return</Button>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
The winners will be announced at 7:00 pm on Saturday<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Return</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Hello! Welcome to the Aden Lottery owned and operated by the Innadril Merchants Association!<br>
|
||||
Every ticket is a potential winner! Step right up!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">"Let me buy a lottery ticket."</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 23">"How big is the jackpot?"</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 24">"What were the previous winning ticket numbers?"</Button>
|
||||
</body></html>
|
@ -1,10 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
One lottery Ticket costs %ticket_price% Adena.<br>
|
||||
If you wish to play the lottery, press the button.<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 21">Continue</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 25">Lottery instructions</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Quit</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,14 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Here is how to play the lottery:<br>
|
||||
Select five numbers between 1 and 20. Your prize is determined by how many winning numbers you match.<br>
|
||||
First place goes to those who pick all five winning numbers. First place prize amount is %prize5% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Second place goes to those who pick four out of the five winning numbers. Second place prize amount is %prize4% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Third place goes to those who pick three out of the five winning numbers. Third place prize amount is %prize3% % of the total jackpot amount, minus the fourth place prize.<br>
|
||||
Those who pick two or less of the winning number may receive %prize2% Adena.<br>
|
||||
The prize money for each category will be divided equally amongst winners. If there are no winners in any category, those winnings are transferred to the next jackpot.<br>
|
||||
Lottery Tickets are sold on a weekly basis, starting at 7:10 pm every Saturday until 6:50 pm the following Saturday.<br>
|
||||
The winning numbers are announced at 7:00 pm every Saturday. All times are subject to change.<br>
|
||||
I wish you luck! Enjoy the lottery.<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Buy a Lottery Ticket.</Button>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
May I have your attention please!<br>
|
||||
The total jackpot amount so far for the Round %race% Lottery is %adena% Adena.<br><br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,4 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
%result%
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</body></html>
|
@ -1,54 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
This is Round %race% of Lottery. Choose five numbers:<br>
|
||||
<center>
|
||||
<table width=240 height=120 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottotl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottotc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottotr" width=20 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottoml" width=20 height=80></td>
|
||||
<td align=center valign=top>
|
||||
<table width=200 height=80 border=0 cellspacing=0 cellpadding=0>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 1" fore="L2UI.lottoNum01" back="L2UI.lottoNum01a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 2" fore="L2UI.lottoNum02" back="L2UI.lottoNum02a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 3" fore="L2UI.lottoNum03" back="L2UI.lottoNum03a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 4" fore="L2UI.lottoNum04" back="L2UI.lottoNum04a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 5" fore="L2UI.lottoNum05" back="L2UI.lottoNum05a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 6" fore="L2UI.lottoNum06" back="L2UI.lottoNum06a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 7" fore="L2UI.lottoNum07" back="L2UI.lottoNum07a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 8" fore="L2UI.lottoNum08" back="L2UI.lottoNum08a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 9" fore="L2UI.lottoNum09" back="L2UI.lottoNum09a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 10" fore="L2UI.lottoNum10" back="L2UI.lottoNum10a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 11" fore="L2UI.lottoNum11" back="L2UI.lottoNum11a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 12" fore="L2UI.lottoNum12" back="L2UI.lottoNum12a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 13" fore="L2UI.lottoNum13" back="L2UI.lottoNum13a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 14" fore="L2UI.lottoNum14" back="L2UI.lottoNum14a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 15" fore="L2UI.lottoNum15" back="L2UI.lottoNum15a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 16" fore="L2UI.lottoNum16" back="L2UI.lottoNum16a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 17" fore="L2UI.lottoNum17" back="L2UI.lottoNum17a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 18" fore="L2UI.lottoNum18" back="L2UI.lottoNum18a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 19" fore="L2UI.lottoNum19" back="L2UI.lottoNum19a_check" width=40 height=20></td>
|
||||
<td><button value="" action="bypass -h npc_%objectId%_Loto 20" fore="L2UI.lottoNum20" back="L2UI.lottoNum20a_check" width=40 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td><img src="L2UI.lottomr" width=20 height=80></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img src="L2UI.lottobl" width=20 height=20></td>
|
||||
<td><img src="L2UI.lottobc" width=200 height=22></td>
|
||||
<td><img src="L2UI.lottobr" width=20 height=20></td>
|
||||
</tr>
|
||||
</table>
|
||||
</center><br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Return</Button>
|
||||
</body></html>
|
@ -1,7 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Thank you for playing the lottery.<br>
|
||||
The winners will be announced at 7:00 pm on Saturday<br>
|
||||
<center>
|
||||
<Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
|
||||
</center>
|
||||
</body></html>
|
@ -1,6 +0,0 @@
|
||||
<html><body>Lottery Ticket Seller:<br>
|
||||
Every ticket is a potential winner! Step right up!<br>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 0">Purchase Lottery Ticket</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 23">Current lottery jackpot</Button>
|
||||
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Loto 24">Previous winning numbers/Prize claim</Button>
|
||||
</body></html>
|
@ -142,7 +142,6 @@ import handlers.bypasshandlers.EventEngine;
|
||||
import handlers.bypasshandlers.Freight;
|
||||
import handlers.bypasshandlers.ItemAuctionLink;
|
||||
import handlers.bypasshandlers.Link;
|
||||
import handlers.bypasshandlers.Loto;
|
||||
import handlers.bypasshandlers.Multisell;
|
||||
import handlers.bypasshandlers.NpcViewMod;
|
||||
import handlers.bypasshandlers.Observation;
|
||||
@ -447,7 +446,6 @@ public class MasterHandler
|
||||
Freight.class,
|
||||
ItemAuctionLink.class,
|
||||
Link.class,
|
||||
Loto.class,
|
||||
Multisell.class,
|
||||
NpcViewMod.class,
|
||||
Observation.class,
|
||||
|
@ -1,348 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package handlers.bypasshandlers;
|
||||
|
||||
import java.text.DateFormat;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.gameserver.handler.IBypassHandler;
|
||||
import com.l2jmobius.gameserver.idfactory.IdFactory;
|
||||
import com.l2jmobius.gameserver.instancemanager.games.Lottery;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Character;
|
||||
import com.l2jmobius.gameserver.model.actor.L2Npc;
|
||||
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||
|
||||
public class Loto implements IBypassHandler
|
||||
{
|
||||
private static final String[] COMMANDS =
|
||||
{
|
||||
"Loto"
|
||||
};
|
||||
|
||||
@Override
|
||||
public boolean useBypass(String command, L2PcInstance activeChar, L2Character target)
|
||||
{
|
||||
if (!target.isNpc())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
int val = 0;
|
||||
try
|
||||
{
|
||||
val = Integer.parseInt(command.substring(5));
|
||||
}
|
||||
catch (IndexOutOfBoundsException ioobe)
|
||||
{
|
||||
}
|
||||
catch (NumberFormatException nfe)
|
||||
{
|
||||
}
|
||||
if (val == 0)
|
||||
{
|
||||
// new loto ticket
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
activeChar.setLoto(i, 0);
|
||||
}
|
||||
}
|
||||
showLotoWindow(activeChar, (L2Npc) target, val);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Open a Loto window on client with the text of the L2NpcInstance.<BR>
|
||||
* <BR>
|
||||
* <B><U> Actions</U> :</B><BR>
|
||||
* <BR>
|
||||
* <li>Get the text of the selected HTML file in function of the npcId and of the page number</li>
|
||||
* <li>Send a Server->Client NpcHtmlMessage containing the text of the L2NpcInstance to the L2PcInstance</li>
|
||||
* <li>Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet</li><BR>
|
||||
* @param player The L2PcInstance that talk with the L2NpcInstance
|
||||
* @param npc L2Npc loto instance
|
||||
* @param val The number of the page of the L2NpcInstance to display
|
||||
*/
|
||||
// 0 - first buy lottery ticket window
|
||||
// 1-20 - buttons
|
||||
// 21 - second buy lottery ticket window
|
||||
// 22 - selected ticket with 5 numbers
|
||||
// 23 - current lottery jackpot
|
||||
// 24 - Previous winning numbers/Prize claim
|
||||
// >24 - check lottery ticket by item object id
|
||||
public static final void showLotoWindow(L2PcInstance player, L2Npc npc, int val)
|
||||
{
|
||||
final int npcId = npc.getTemplate().getId();
|
||||
String filename;
|
||||
SystemMessage sm;
|
||||
final NpcHtmlMessage html = new NpcHtmlMessage(npc.getObjectId());
|
||||
|
||||
if (val == 0) // 0 - first buy lottery ticket window
|
||||
{
|
||||
filename = (npc.getHtmlPath(npcId, 1));
|
||||
html.setFile(player.getHtmlPrefix(), filename);
|
||||
}
|
||||
else if ((val >= 1) && (val <= 21)) // 1-20 - buttons, 21 - second buy lottery ticket window
|
||||
{
|
||||
if (!Lottery.getInstance().isStarted())
|
||||
{
|
||||
// tickets can't be sold
|
||||
player.sendPacket(SystemMessageId.LOTTERY_TICKETS_ARE_NOT_CURRENTLY_BEING_SOLD);
|
||||
return;
|
||||
}
|
||||
if (!Lottery.getInstance().isSellableTickets())
|
||||
{
|
||||
// tickets can't be sold
|
||||
player.sendPacket(SystemMessageId.TICKETS_FOR_THE_CURRENT_LOTTERY_ARE_NO_LONGER_AVAILABLE);
|
||||
return;
|
||||
}
|
||||
|
||||
filename = (npc.getHtmlPath(npcId, 5));
|
||||
html.setFile(player.getHtmlPrefix(), filename);
|
||||
|
||||
int count = 0;
|
||||
int found = 0;
|
||||
// counting buttons and unsetting button if found
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (player.getLoto(i) == val)
|
||||
{
|
||||
// unsetting button
|
||||
player.setLoto(i, 0);
|
||||
found = 1;
|
||||
}
|
||||
else if (player.getLoto(i) > 0)
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
|
||||
// if not rearched limit 5 and not unseted value
|
||||
if ((count < 5) && (found == 0) && (val <= 20))
|
||||
{
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (player.getLoto(i) == 0)
|
||||
{
|
||||
player.setLoto(i, val);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// setting pusshed buttons
|
||||
count = 0;
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (player.getLoto(i) > 0)
|
||||
{
|
||||
count++;
|
||||
String button = String.valueOf(player.getLoto(i));
|
||||
if (player.getLoto(i) < 10)
|
||||
{
|
||||
button = "0" + button;
|
||||
}
|
||||
final String search = "fore=\"L2UI.lottoNum" + button + "\" back=\"L2UI.lottoNum" + button + "a_check\"";
|
||||
final String replace = "fore=\"L2UI.lottoNum" + button + "a_check\" back=\"L2UI.lottoNum" + button + "\"";
|
||||
html.replace(search, replace);
|
||||
}
|
||||
}
|
||||
|
||||
if (count == 5)
|
||||
{
|
||||
final String search = "0\">Return";
|
||||
final String replace = "22\">Your lucky numbers have been selected above.";
|
||||
html.replace(search, replace);
|
||||
}
|
||||
}
|
||||
else if (val == 22) // 22 - selected ticket with 5 numbers
|
||||
{
|
||||
if (!Lottery.getInstance().isStarted())
|
||||
{
|
||||
// tickets can't be sold
|
||||
player.sendPacket(SystemMessageId.LOTTERY_TICKETS_ARE_NOT_CURRENTLY_BEING_SOLD);
|
||||
return;
|
||||
}
|
||||
if (!Lottery.getInstance().isSellableTickets())
|
||||
{
|
||||
// tickets can't be sold
|
||||
player.sendPacket(SystemMessageId.TICKETS_FOR_THE_CURRENT_LOTTERY_ARE_NO_LONGER_AVAILABLE);
|
||||
return;
|
||||
}
|
||||
|
||||
final long price = Config.ALT_LOTTERY_TICKET_PRICE;
|
||||
final int lotonumber = Lottery.getInstance().getId();
|
||||
int enchant = 0;
|
||||
int type2 = 0;
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (player.getLoto(i) == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (player.getLoto(i) < 17)
|
||||
{
|
||||
enchant += Math.pow(2, player.getLoto(i) - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
type2 += Math.pow(2, player.getLoto(i) - 17);
|
||||
}
|
||||
}
|
||||
if (player.getAdena() < price)
|
||||
{
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
|
||||
player.sendPacket(sm);
|
||||
return;
|
||||
}
|
||||
if (!player.reduceAdena("Loto", price, npc, true))
|
||||
{
|
||||
return;
|
||||
}
|
||||
Lottery.getInstance().increasePrize(price);
|
||||
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_EARNED_S1);
|
||||
sm.addItemName(4442);
|
||||
player.sendPacket(sm);
|
||||
|
||||
final L2ItemInstance item = new L2ItemInstance(IdFactory.getInstance().getNextId(), 4442);
|
||||
item.setCount(1);
|
||||
item.setCustomType1(lotonumber);
|
||||
item.setEnchantLevel(enchant);
|
||||
item.setCustomType2(type2);
|
||||
player.getInventory().addItem("Loto", item, player, npc);
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
iu.addItem(item);
|
||||
final L2ItemInstance adenaupdate = player.getInventory().getAdenaInstance();
|
||||
iu.addModifiedItem(adenaupdate);
|
||||
player.sendInventoryUpdate(iu);
|
||||
|
||||
filename = (npc.getHtmlPath(npcId, 6));
|
||||
html.setFile(player.getHtmlPrefix(), filename);
|
||||
}
|
||||
else if (val == 23) // 23 - current lottery jackpot
|
||||
{
|
||||
filename = (npc.getHtmlPath(npcId, 3));
|
||||
html.setFile(player.getHtmlPrefix(), filename);
|
||||
}
|
||||
else if (val == 24) // 24 - Previous winning numbers/Prize claim
|
||||
{
|
||||
filename = (npc.getHtmlPath(npcId, 4));
|
||||
html.setFile(player.getHtmlPrefix(), filename);
|
||||
|
||||
final int lotonumber = Lottery.getInstance().getId();
|
||||
String message = "";
|
||||
for (L2ItemInstance item : player.getInventory().getItems())
|
||||
{
|
||||
if (item == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
if ((item.getId() == 4442) && (item.getCustomType1() < lotonumber))
|
||||
{
|
||||
message = message + "<a action=\"bypass -h npc_%objectId%_Loto " + item.getObjectId() + "\">" + item.getCustomType1() + " Event Number ";
|
||||
final int[] numbers = Lottery.getInstance().decodeNumbers(item.getEnchantLevel(), item.getCustomType2());
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
message += numbers[i] + " ";
|
||||
}
|
||||
final long[] check = Lottery.getInstance().checkTicket(item);
|
||||
if (check[0] > 0)
|
||||
{
|
||||
switch ((int) check[0])
|
||||
{
|
||||
case 1:
|
||||
message += "- 1st Prize";
|
||||
break;
|
||||
case 2:
|
||||
message += "- 2nd Prize";
|
||||
break;
|
||||
case 3:
|
||||
message += "- 3th Prize";
|
||||
break;
|
||||
case 4:
|
||||
message += "- 4th Prize";
|
||||
break;
|
||||
}
|
||||
message += " " + check[1] + "a.";
|
||||
}
|
||||
message += "</a><br>";
|
||||
}
|
||||
}
|
||||
if (message.isEmpty())
|
||||
{
|
||||
message += "There has been no winning lottery ticket.<br>";
|
||||
}
|
||||
html.replace("%result%", message);
|
||||
}
|
||||
else if (val == 25) // 25 - lottery instructions
|
||||
{
|
||||
filename = (npc.getHtmlPath(npcId, 2));
|
||||
html.setFile(player.getHtmlPrefix(), filename);
|
||||
}
|
||||
else if (val > 25) // >25 - check lottery ticket by item object id
|
||||
{
|
||||
final int lotonumber = Lottery.getInstance().getId();
|
||||
final L2ItemInstance item = player.getInventory().getItemByObjectId(val);
|
||||
if ((item == null) || (item.getId() != 4442) || (item.getCustomType1() >= lotonumber))
|
||||
{
|
||||
return;
|
||||
}
|
||||
final long[] check = Lottery.getInstance().checkTicket(item);
|
||||
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.S1_DISAPPEARED);
|
||||
sm.addItemName(4442);
|
||||
player.sendPacket(sm);
|
||||
|
||||
final long adena = check[1];
|
||||
if (adena > 0)
|
||||
{
|
||||
player.addAdena("Loto", adena, npc, true);
|
||||
}
|
||||
player.destroyItem("Loto", item, npc, false);
|
||||
return;
|
||||
}
|
||||
html.replace("%objectId%", String.valueOf(npc.getObjectId()));
|
||||
html.replace("%race%", "" + Lottery.getInstance().getId());
|
||||
html.replace("%adena%", "" + Lottery.getInstance().getPrize());
|
||||
html.replace("%ticket_price%", "" + Config.ALT_LOTTERY_TICKET_PRICE);
|
||||
html.replace("%prize5%", "" + (Config.ALT_LOTTERY_5_NUMBER_RATE * 100));
|
||||
html.replace("%prize4%", "" + (Config.ALT_LOTTERY_4_NUMBER_RATE * 100));
|
||||
html.replace("%prize3%", "" + (Config.ALT_LOTTERY_3_NUMBER_RATE * 100));
|
||||
html.replace("%prize2%", "" + Config.ALT_LOTTERY_2_AND_1_NUMBER_PRIZE);
|
||||
html.replace("%enddate%", "" + DateFormat.getDateInstance().format(Lottery.getInstance().getEndDate()));
|
||||
player.sendPacket(html);
|
||||
|
||||
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
|
||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getBypassList()
|
||||
{
|
||||
return COMMANDS;
|
||||
}
|
||||
}
|
@ -47,7 +47,7 @@
|
||||
<npc id="30875" x="142592" y="26564" z="-2392" heading="32768" respawnTime="60sec" /> <!-- Carlton -->
|
||||
<npc id="30876" x="152007" y="24856" z="-2136" respawnTime="60sec" /> <!-- Eastan -->
|
||||
<npc id="30877" x="152004" y="25352" z="-2128" respawnTime="60sec" /> <!-- Grayson -->
|
||||
<npc id="30990" x="146738" y="25756" z="-2008" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="146738" y="25756" z="-2008" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31001" x="148700" y="16834" z="-1560" respawnTime="60sec" /> <!-- Claudia Athebaldt -->
|
||||
<npc id="31031" x="144056" y="22996" z="-2136" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31053" x="149044" y="29160" z="-2248" heading="36864" respawnTime="60sec" /> <!-- Kidder -->
|
||||
|
@ -58,7 +58,7 @@
|
||||
<npc id="30959" x="20175" y="145480" z="-3112" heading="16384" respawnTime="60sec" /> <!-- Barbado -->
|
||||
<npc id="30960" x="21025" y="144931" z="-3064" heading="40960" respawnTime="60sec" /> <!-- Beer Chest -->
|
||||
<npc id="30961" x="19490" y="145930" z="-3064" respawnTime="60sec" /> <!-- Clothes Chest -->
|
||||
<npc id="30990" x="15693" y="142886" z="-2696" heading="16000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="15693" y="142886" z="-2696" heading="16000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="20368" y="144912" z="-3088" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31043" x="19034" y="146249" z="-3064" heading="55264" respawnTime="60sec" /> <!-- Octavia -->
|
||||
<npc id="31048" x="19505" y="146220" z="-3064" heading="42568" respawnTime="60sec" /> <!-- McDermott -->
|
||||
|
@ -12,7 +12,7 @@
|
||||
<npc id="19546" x="-82411" y="249927" z="-3360" respawnTime="8sec" /> <!-- Dummy -->
|
||||
<npc id="19546" x="-82400" y="250031" z="-3360" respawnTime="8sec" /> <!-- Dummy -->
|
||||
<npc id="19546" x="-82137" y="250187" z="-3360" respawnTime="8sec" /> <!-- Dummy -->
|
||||
<npc id="30990" x="-84143" y="244637" z="-3728" heading="41000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="-84143" y="244637" z="-3728" heading="41000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="32327" x="-81153" y="247947" z="-3464" respawnTime="60sec" /> <!-- Adventurers' Guide -->
|
||||
<npc id="32478" x="-80771" y="248215" z="-3480" heading="61100" respawnTime="60sec" /> <!-- Dimensional Merchant -->
|
||||
<npc id="33587" x="-81190" y="247995" z="-3464" respawnTime="60sec" /> <!-- Mentor Guide -->
|
||||
|
@ -70,7 +70,7 @@
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="30829" x="81100" y="145840" z="-3528" heading="32768" respawnTime="60sec" /> <!-- Cooper -->
|
||||
<npc id="30990" x="83331" y="147905" z="-3400" heading="16700" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="83331" y="147905" z="-3400" heading="16700" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="82272" y="147072" z="-3528" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31049" x="83264" y="150176" z="-3512" heading="24576" respawnTime="60sec" /> <!-- Pepper -->
|
||||
<npc id="31092" x="81360" y="150016" z="-3528" heading="3950" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
|
@ -50,7 +50,7 @@
|
||||
<param name="fnAgitMap" value="gludin"/>
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="30990" x="-80785" y="149735" z="-3040" heading="23000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="-80785" y="149735" z="-3040" heading="23000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="-81280" y="154369" z="-3168" heading="16384" respawnTime="5sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31046" x="-81520" y="152256" z="-3120" heading="49376" respawnTime="60sec" /> <!-- Marsden -->
|
||||
<npc id="31092" x="-84745" y="151732" z="-3128" heading="50000" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
|
@ -48,7 +48,7 @@
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="30827" x="-14797" y="123283" z="-3112" heading="800" respawnTime="60sec" /> <!-- Lundy -->
|
||||
<npc id="30990" x="-12676" y="122821" z="-3112" heading="48000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="-12676" y="122821" z="-3112" heading="48000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31047" x="-14708" y="124160" z="-3112" heading="15972" respawnTime="60sec" /> <!-- Kell -->
|
||||
<npc id="31092" x="-12345" y="121695" z="-2984" heading="12452" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
<npc id="31203" x="-14767" y="123313" z="-3112" respawnTime="60sec" /> <!-- Moon Dancer -->
|
||||
|
@ -7,7 +7,7 @@
|
||||
<param name="fnAgitMap" value="godard"/>
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="30990" x="147908" y="-55221" z="-2728" heading="48000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="147908" y="-55221" z="-2728" heading="48000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31092" x="144400" y="-54048" z="-2976" heading="49000" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
<npc id="31256" x="148832" y="-58960" z="-2960" heading="22000" respawnTime="60sec" /> <!-- Leon -->
|
||||
<npc id="31257" x="148975" y="-58919" z="-2960" heading="22000" respawnTime="60sec" /> <!-- Veronica -->
|
||||
|
@ -45,7 +45,7 @@
|
||||
<npc id="30746" x="116085" y="74728" z="-2584" heading="10000" respawnTime="60sec" /> <!-- Cybellin -->
|
||||
<npc id="30764" x="117380" y="75616" z="-2664" heading="26000" respawnTime="60sec" /> <!-- Balthazar -->
|
||||
<npc id="30831" x="117432" y="76044" z="-2720" heading="15000" respawnTime="60sec" /> <!-- Nelson -->
|
||||
<npc id="30990" x="117148" y="76865" z="-2688" heading="34000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="117148" y="76865" z="-2688" heading="34000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="116036" y="76319" z="-2720" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31051" x="116320" y="74688" z="-2584" heading="16300" respawnTime="60sec" /> <!-- Keach -->
|
||||
<npc id="31092" x="120493" y="76520" z="-2136" heading="35500" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
|
@ -43,7 +43,7 @@
|
||||
<npc id="30969" x="109707" y="220044" z="-3512" heading="7656" respawnTime="60sec" /> <!-- Iason Heine -->
|
||||
<npc id="30970" x="114939" y="223293" z="-3720" heading="38248" respawnTime="60sec" /> <!-- Dorothy -->
|
||||
<npc id="30973" x="115531" y="220194" z="-3624" heading="54144" respawnTime="60sec" /> <!-- Medium Jar -->
|
||||
<npc id="30990" x="111417" y="219422" z="-3520" heading="48000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="111417" y="219422" z="-3520" heading="48000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="109825" y="219399" z="-3472" heading="16384" respawnTime="5sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31042" x="106955" y="216987" z="-3592" respawnTime="60sec" /> <!-- Kantabilon -->
|
||||
<npc id="31050" x="107253" y="217252" z="-3592" heading="39408" respawnTime="60sec" /> <!-- Thora -->
|
||||
|
@ -40,7 +40,7 @@
|
||||
<npc id="30760" x="80036" y="56568" z="-1552" heading="57344" respawnTime="60sec" /> <!-- Sir Gustav Athebaldt -->
|
||||
<npc id="30830" x="81992" y="54048" z="-1488" respawnTime="60sec" /> <!-- Joey -->
|
||||
<npc id="30929" x="79769" y="55048" z="-1544" heading="48500" respawnTime="60sec" /> <!-- Patrin -->
|
||||
<npc id="30990" x="83001" y="53224" z="-1488" heading="31000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="83001" y="53224" z="-1488" heading="31000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="79998" y="55455" z="-1552" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31052" x="80071" y="55068" z="-1544" heading="40064" respawnTime="60sec" /> <!-- Heid -->
|
||||
<npc id="31092" x="80129" y="56947" z="-1552" heading="32500" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
|
@ -17,7 +17,7 @@
|
||||
<param name="fnAgitMap" value="rune"/>
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="30990" x="43664" y="-47664" z="-792" heading="50000" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30990" x="43664" y="-47664" z="-792" heading="50000" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="43259" y="-50167" z="-792" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31092" x="42918" y="-41412" z="-2184" heading="20000" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
<npc id="31300" x="44692" y="-47312" z="-792" respawnTime="60sec" /> <!-- Drumond -->
|
||||
|
@ -11,7 +11,7 @@
|
||||
<param name="fnAgitMap" value="schuttgart"/>
|
||||
</parameters>
|
||||
</npc>
|
||||
<npc id="30994" x="87096" y="-143472" z="-1288" heading="16500" respawnTime="60sec" /> <!-- Lottery Ticket Seller -->
|
||||
<!-- <npc id="30994" x="87096" y="-143472" z="-1288" heading="16500" respawnTime="60sec" /> --> <!-- Lottery Ticket Seller -->
|
||||
<npc id="31031" x="87983" y="-140658" z="-1528" respawnTime="60sec" /> <!-- Broadcasting Tower -->
|
||||
<npc id="31092" x="89856" y="-143760" z="-1528" respawnTime="60sec" /> <!-- Black Marketeer of Mammon -->
|
||||
<npc id="31673" x="92080" y="-139696" z="-2296" heading="5000" respawnTime="60sec" /> <!-- Patrol -->
|
||||
|
@ -455,7 +455,6 @@ public final class Config
|
||||
public static int INSTANCE_FINISH_TIME;
|
||||
public static boolean RESTORE_PLAYER_INSTANCE;
|
||||
public static int EJECT_DEAD_PLAYER_TIME;
|
||||
public static boolean ALLOW_LOTTERY;
|
||||
public static boolean ALLOW_RACE;
|
||||
public static boolean ALLOW_WATER;
|
||||
public static boolean ALLOW_RENTPET;
|
||||
@ -517,12 +516,6 @@ public final class Config
|
||||
public static int ALT_MANOR_MAINTENANCE_MIN;
|
||||
public static boolean ALT_MANOR_SAVE_ALL_ACTIONS;
|
||||
public static int ALT_MANOR_SAVE_PERIOD_RATE;
|
||||
public static long ALT_LOTTERY_PRIZE;
|
||||
public static long ALT_LOTTERY_TICKET_PRICE;
|
||||
public static float ALT_LOTTERY_5_NUMBER_RATE;
|
||||
public static float ALT_LOTTERY_4_NUMBER_RATE;
|
||||
public static float ALT_LOTTERY_3_NUMBER_RATE;
|
||||
public static long ALT_LOTTERY_2_AND_1_NUMBER_PRIZE;
|
||||
public static boolean ALT_ITEM_AUCTION_ENABLED;
|
||||
public static int ALT_ITEM_AUCTION_EXPIRED_AFTER;
|
||||
public static long ALT_ITEM_AUCTION_TIME_EXTENDS_ON_BID;
|
||||
@ -1682,7 +1675,6 @@ public final class Config
|
||||
INSTANCE_FINISH_TIME = General.getInt("DefaultFinishTime", 5);
|
||||
RESTORE_PLAYER_INSTANCE = General.getBoolean("RestorePlayerInstance", false);
|
||||
EJECT_DEAD_PLAYER_TIME = General.getInt("EjectDeadPlayerTime", 1);
|
||||
ALLOW_LOTTERY = General.getBoolean("AllowLottery", true);
|
||||
ALLOW_RACE = General.getBoolean("AllowRace", true);
|
||||
ALLOW_WATER = General.getBoolean("AllowWater", true);
|
||||
ALLOW_RENTPET = General.getBoolean("AllowRentPet", false);
|
||||
@ -1719,12 +1711,6 @@ public final class Config
|
||||
ALT_MANOR_MAINTENANCE_MIN = General.getInt("AltManorMaintenanceMin", 6);
|
||||
ALT_MANOR_SAVE_ALL_ACTIONS = General.getBoolean("AltManorSaveAllActions", false);
|
||||
ALT_MANOR_SAVE_PERIOD_RATE = General.getInt("AltManorSavePeriodRate", 2);
|
||||
ALT_LOTTERY_PRIZE = General.getLong("AltLotteryPrize", 50000);
|
||||
ALT_LOTTERY_TICKET_PRICE = General.getLong("AltLotteryTicketPrice", 2000);
|
||||
ALT_LOTTERY_5_NUMBER_RATE = General.getFloat("AltLottery5NumberRate", 0.6f);
|
||||
ALT_LOTTERY_4_NUMBER_RATE = General.getFloat("AltLottery4NumberRate", 0.2f);
|
||||
ALT_LOTTERY_3_NUMBER_RATE = General.getFloat("AltLottery3NumberRate", 0.2f);
|
||||
ALT_LOTTERY_2_AND_1_NUMBER_PRIZE = General.getLong("AltLottery2and1NumberPrize", 200);
|
||||
ALT_ITEM_AUCTION_ENABLED = General.getBoolean("AltItemAuctionEnabled", true);
|
||||
ALT_ITEM_AUCTION_EXPIRED_AFTER = General.getInt("AltItemAuctionExpiredAfter", 14);
|
||||
ALT_ITEM_AUCTION_TIME_EXTENDS_ON_BID = General.getInt("AltItemAuctionTimeExtendsOnBid", 0) * 1000;
|
||||
|
@ -1,574 +0,0 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package com.l2jmobius.gameserver.instancemanager.games;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.Calendar;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.l2jmobius.Config;
|
||||
import com.l2jmobius.commons.database.DatabaseFactory;
|
||||
import com.l2jmobius.commons.util.Rnd;
|
||||
import com.l2jmobius.gameserver.ThreadPoolManager;
|
||||
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
|
||||
import com.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||
import com.l2jmobius.gameserver.util.Broadcast;
|
||||
|
||||
public class Lottery
|
||||
{
|
||||
public static final long SECOND = 1000;
|
||||
public static final long MINUTE = 60000;
|
||||
|
||||
protected static final Logger _log = Logger.getLogger(Lottery.class.getName());
|
||||
|
||||
private static final String INSERT_LOTTERY = "INSERT INTO games(id, idnr, enddate, prize, newprize) VALUES (?, ?, ?, ?, ?)";
|
||||
private static final String UPDATE_PRICE = "UPDATE games SET prize=?, newprize=? WHERE id = 1 AND idnr = ?";
|
||||
private static final String UPDATE_LOTTERY = "UPDATE games SET finished=1, prize=?, newprize=?, number1=?, number2=?, prize1=?, prize2=?, prize3=? WHERE id=1 AND idnr=?";
|
||||
private static final String SELECT_LAST_LOTTERY = "SELECT idnr, prize, newprize, enddate, finished FROM games WHERE id = 1 ORDER BY idnr DESC LIMIT 1";
|
||||
private static final String SELECT_LOTTERY_ITEM = "SELECT enchant_level, custom_type2 FROM items WHERE item_id = 4442 AND custom_type1 = ?";
|
||||
private static final String SELECT_LOTTERY_TICKET = "SELECT number1, number2, prize1, prize2, prize3 FROM games WHERE id = 1 and idnr = ?";
|
||||
|
||||
protected int _number;
|
||||
protected long _prize;
|
||||
protected boolean _isSellingTickets;
|
||||
protected boolean _isStarted;
|
||||
protected long _enddate;
|
||||
|
||||
protected Lottery()
|
||||
{
|
||||
_number = 1;
|
||||
_prize = Config.ALT_LOTTERY_PRIZE;
|
||||
_isSellingTickets = false;
|
||||
_isStarted = false;
|
||||
_enddate = System.currentTimeMillis();
|
||||
|
||||
if (Config.ALLOW_LOTTERY)
|
||||
{
|
||||
(new startLottery()).run();
|
||||
}
|
||||
}
|
||||
|
||||
public static Lottery getInstance()
|
||||
{
|
||||
return SingletonHolder._instance;
|
||||
}
|
||||
|
||||
public int getId()
|
||||
{
|
||||
return _number;
|
||||
}
|
||||
|
||||
public long getPrize()
|
||||
{
|
||||
return _prize;
|
||||
}
|
||||
|
||||
public long getEndDate()
|
||||
{
|
||||
return _enddate;
|
||||
}
|
||||
|
||||
public void increasePrize(long count)
|
||||
{
|
||||
_prize += count;
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement(UPDATE_PRICE))
|
||||
{
|
||||
ps.setLong(1, getPrize());
|
||||
ps.setLong(2, getPrize());
|
||||
ps.setInt(3, getId());
|
||||
ps.execute();
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
_log.log(Level.WARNING, "Lottery: Could not increase current lottery prize: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isSellableTickets()
|
||||
{
|
||||
return _isSellingTickets;
|
||||
}
|
||||
|
||||
public boolean isStarted()
|
||||
{
|
||||
return _isStarted;
|
||||
}
|
||||
|
||||
private class startLottery implements Runnable
|
||||
{
|
||||
protected startLottery()
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
Statement statement = con.createStatement();
|
||||
ResultSet rset = statement.executeQuery(SELECT_LAST_LOTTERY))
|
||||
{
|
||||
if (rset.next())
|
||||
{
|
||||
_number = rset.getInt("idnr");
|
||||
|
||||
if (rset.getInt("finished") == 1)
|
||||
{
|
||||
_number++;
|
||||
_prize = rset.getLong("newprize");
|
||||
}
|
||||
else
|
||||
{
|
||||
_prize = rset.getLong("prize");
|
||||
_enddate = rset.getLong("enddate");
|
||||
|
||||
if (_enddate <= (System.currentTimeMillis() + (2 * MINUTE)))
|
||||
{
|
||||
(new finishLottery()).run();
|
||||
return;
|
||||
}
|
||||
|
||||
if (_enddate > System.currentTimeMillis())
|
||||
{
|
||||
_isStarted = true;
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new finishLottery(), _enddate - System.currentTimeMillis());
|
||||
|
||||
if (_enddate > (System.currentTimeMillis() + (12 * MINUTE)))
|
||||
{
|
||||
_isSellingTickets = true;
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new stopSellingTickets(), _enddate - System.currentTimeMillis() - (10 * MINUTE));
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
_log.log(Level.WARNING, "Lottery: Could not restore lottery data: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: Starting ticket sell for lottery #" + getId() + ".");
|
||||
}
|
||||
_isSellingTickets = true;
|
||||
_isStarted = true;
|
||||
|
||||
Broadcast.toAllOnlinePlayers("Lottery tickets are now available for Lucky Lottery #" + getId() + ".");
|
||||
final Calendar finishtime = Calendar.getInstance();
|
||||
finishtime.setTimeInMillis(_enddate);
|
||||
finishtime.set(Calendar.MINUTE, 0);
|
||||
finishtime.set(Calendar.SECOND, 0);
|
||||
|
||||
if (finishtime.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
|
||||
{
|
||||
finishtime.set(Calendar.HOUR_OF_DAY, 19);
|
||||
_enddate = finishtime.getTimeInMillis();
|
||||
_enddate += 604800000;
|
||||
}
|
||||
else
|
||||
{
|
||||
finishtime.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
|
||||
finishtime.set(Calendar.HOUR_OF_DAY, 19);
|
||||
_enddate = finishtime.getTimeInMillis();
|
||||
}
|
||||
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new stopSellingTickets(), _enddate - System.currentTimeMillis() - (10 * MINUTE));
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new finishLottery(), _enddate - System.currentTimeMillis());
|
||||
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement(INSERT_LOTTERY))
|
||||
{
|
||||
ps.setInt(1, 1);
|
||||
ps.setInt(2, getId());
|
||||
ps.setLong(3, getEndDate());
|
||||
ps.setLong(4, getPrize());
|
||||
ps.setLong(5, getPrize());
|
||||
ps.execute();
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
_log.log(Level.WARNING, "Lottery: Could not store new lottery data: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class stopSellingTickets implements Runnable
|
||||
{
|
||||
protected stopSellingTickets()
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: Stopping ticket sell for lottery #" + getId() + ".");
|
||||
}
|
||||
_isSellingTickets = false;
|
||||
|
||||
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.LOTTERY_TICKET_SALES_HAVE_BEEN_TEMPORARILY_SUSPENDED));
|
||||
}
|
||||
}
|
||||
|
||||
private class finishLottery implements Runnable
|
||||
{
|
||||
protected finishLottery()
|
||||
{
|
||||
// Do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: Ending lottery #" + getId() + ".");
|
||||
}
|
||||
|
||||
final int[] luckynums = new int[5];
|
||||
int luckynum = 0;
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
boolean found = true;
|
||||
|
||||
while (found)
|
||||
{
|
||||
luckynum = Rnd.get(20) + 1;
|
||||
found = false;
|
||||
|
||||
for (int j = 0; j < i; j++)
|
||||
{
|
||||
if (luckynums[j] == luckynum)
|
||||
{
|
||||
found = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
luckynums[i] = luckynum;
|
||||
}
|
||||
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: The lucky numbers are " + luckynums[0] + ", " + luckynums[1] + ", " + luckynums[2] + ", " + luckynums[3] + ", " + luckynums[4] + ".");
|
||||
}
|
||||
|
||||
int enchant = 0;
|
||||
int type2 = 0;
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
{
|
||||
if (luckynums[i] < 17)
|
||||
{
|
||||
enchant += Math.pow(2, luckynums[i] - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
type2 += Math.pow(2, luckynums[i] - 17);
|
||||
}
|
||||
}
|
||||
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: Encoded lucky numbers are " + enchant + ", " + type2);
|
||||
}
|
||||
|
||||
int count1 = 0;
|
||||
int count2 = 0;
|
||||
int count3 = 0;
|
||||
int count4 = 0;
|
||||
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement(SELECT_LOTTERY_ITEM))
|
||||
{
|
||||
ps.setInt(1, getId());
|
||||
try (ResultSet rset = ps.executeQuery())
|
||||
{
|
||||
while (rset.next())
|
||||
{
|
||||
int curenchant = rset.getInt("enchant_level") & enchant;
|
||||
int curtype2 = rset.getInt("custom_type2") & type2;
|
||||
|
||||
if ((curenchant == 0) && (curtype2 == 0))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (int i = 1; i <= 16; i++)
|
||||
{
|
||||
final int val = curenchant / 2;
|
||||
|
||||
if (val != Math.round((double) curenchant / 2))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
||||
final int val2 = curtype2 / 2;
|
||||
|
||||
if (val2 != ((double) curtype2 / 2))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
|
||||
curenchant = val;
|
||||
curtype2 = val2;
|
||||
}
|
||||
|
||||
if (count == 5)
|
||||
{
|
||||
count1++;
|
||||
}
|
||||
else if (count == 4)
|
||||
{
|
||||
count2++;
|
||||
}
|
||||
else if (count == 3)
|
||||
{
|
||||
count3++;
|
||||
}
|
||||
else if (count > 0)
|
||||
{
|
||||
count4++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
_log.log(Level.WARNING, "Lottery: Could restore lottery data: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
final long prize4 = count4 * Config.ALT_LOTTERY_2_AND_1_NUMBER_PRIZE;
|
||||
long prize1 = 0;
|
||||
long prize2 = 0;
|
||||
long prize3 = 0;
|
||||
|
||||
if (count1 > 0)
|
||||
{
|
||||
prize1 = (long) (((getPrize() - prize4) * Config.ALT_LOTTERY_5_NUMBER_RATE) / count1);
|
||||
}
|
||||
|
||||
if (count2 > 0)
|
||||
{
|
||||
prize2 = (long) (((getPrize() - prize4) * Config.ALT_LOTTERY_4_NUMBER_RATE) / count2);
|
||||
}
|
||||
|
||||
if (count3 > 0)
|
||||
{
|
||||
prize3 = (long) (((getPrize() - prize4) * Config.ALT_LOTTERY_3_NUMBER_RATE) / count3);
|
||||
}
|
||||
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: " + count1 + " players with all FIVE numbers each win " + prize1 + ".");
|
||||
_log.info("Lottery: " + count2 + " players with FOUR numbers each win " + prize2 + ".");
|
||||
_log.info("Lottery: " + count3 + " players with THREE numbers each win " + prize3 + ".");
|
||||
_log.info("Lottery: " + count4 + " players with ONE or TWO numbers each win " + prize4 + ".");
|
||||
}
|
||||
|
||||
final long newprize = getPrize() - (prize1 + prize2 + prize3 + prize4);
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.info("Lottery: Jackpot for next lottery is " + newprize + ".");
|
||||
}
|
||||
|
||||
SystemMessage sm;
|
||||
if (count1 > 0)
|
||||
{
|
||||
// There are winners.
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_PRIZE_AMOUNT_FOR_THE_WINNER_OF_LOTTERY_S1_IS_S2_ADENA_WE_HAVE_S3_FIRST_PRIZE_WINNERS);
|
||||
sm.addInt(getId());
|
||||
sm.addLong(getPrize());
|
||||
sm.addLong(count1);
|
||||
}
|
||||
else
|
||||
{
|
||||
// There are no winners.
|
||||
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_PRIZE_AMOUNT_FOR_LUCKY_LOTTERY_S1_IS_S2_ADENA_THERE_WAS_NO_FIRST_PRIZE_WINNER_IN_THIS_DRAWING_THEREFORE_THE_JACKPOT_WILL_BE_ADDED_TO_THE_NEXT_DRAWING);
|
||||
sm.addInt(getId());
|
||||
sm.addLong(getPrize());
|
||||
}
|
||||
Broadcast.toAllOnlinePlayers(sm);
|
||||
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement(UPDATE_LOTTERY))
|
||||
{
|
||||
ps.setLong(1, getPrize());
|
||||
ps.setLong(2, newprize);
|
||||
ps.setInt(3, enchant);
|
||||
ps.setInt(4, type2);
|
||||
ps.setLong(5, prize1);
|
||||
ps.setLong(6, prize2);
|
||||
ps.setLong(7, prize3);
|
||||
ps.setInt(8, getId());
|
||||
ps.execute();
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
_log.log(Level.WARNING, "Lottery: Could not store finished lottery data: " + e.getMessage(), e);
|
||||
}
|
||||
|
||||
ThreadPoolManager.getInstance().scheduleGeneral(new startLottery(), MINUTE);
|
||||
_number++;
|
||||
|
||||
_isStarted = false;
|
||||
}
|
||||
}
|
||||
|
||||
public int[] decodeNumbers(int enchant, int type2)
|
||||
{
|
||||
final int res[] = new int[5];
|
||||
int id = 0;
|
||||
int nr = 1;
|
||||
|
||||
while (enchant > 0)
|
||||
{
|
||||
final int val = enchant / 2;
|
||||
if (val != Math.round((double) enchant / 2))
|
||||
{
|
||||
res[id++] = nr;
|
||||
}
|
||||
enchant /= 2;
|
||||
nr++;
|
||||
}
|
||||
|
||||
nr = 17;
|
||||
|
||||
while (type2 > 0)
|
||||
{
|
||||
final int val = type2 / 2;
|
||||
if (val != ((double) type2 / 2))
|
||||
{
|
||||
res[id++] = nr;
|
||||
}
|
||||
type2 /= 2;
|
||||
nr++;
|
||||
}
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
public long[] checkTicket(L2ItemInstance item)
|
||||
{
|
||||
return checkTicket(item.getCustomType1(), item.getEnchantLevel(), item.getCustomType2());
|
||||
}
|
||||
|
||||
public long[] checkTicket(int id, int enchant, int type2)
|
||||
{
|
||||
final long res[] =
|
||||
{
|
||||
0,
|
||||
0
|
||||
};
|
||||
try (Connection con = DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement(SELECT_LOTTERY_TICKET))
|
||||
{
|
||||
ps.setInt(1, id);
|
||||
try (ResultSet rs = ps.executeQuery())
|
||||
{
|
||||
if (rs.next())
|
||||
{
|
||||
int curenchant = rs.getInt("number1") & enchant;
|
||||
int curtype2 = rs.getInt("number2") & type2;
|
||||
|
||||
if ((curenchant == 0) && (curtype2 == 0))
|
||||
{
|
||||
return res;
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
|
||||
for (int i = 1; i <= 16; i++)
|
||||
{
|
||||
final int val = curenchant / 2;
|
||||
if (val != Math.round((double) curenchant / 2))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
final int val2 = curtype2 / 2;
|
||||
if (val2 != ((double) curtype2 / 2))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
curenchant = val;
|
||||
curtype2 = val2;
|
||||
}
|
||||
|
||||
switch (count)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
res[0] = 1;
|
||||
res[1] = rs.getLong("prize1");
|
||||
break;
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
res[0] = 2;
|
||||
res[1] = rs.getLong("prize2");
|
||||
break;
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
res[0] = 3;
|
||||
res[1] = rs.getLong("prize3");
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
res[0] = 4;
|
||||
res[1] = 200;
|
||||
}
|
||||
}
|
||||
|
||||
if (Config.DEBUG)
|
||||
{
|
||||
_log.warning("count: " + count + ", id: " + id + ", enchant: " + enchant + ", type2: " + type2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (SQLException e)
|
||||
{
|
||||
_log.log(Level.WARNING, "Lottery: Could not check lottery ticket #" + id + ": " + e.getMessage(), e);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
private static class SingletonHolder
|
||||
{
|
||||
protected static final Lottery _instance = new Lottery();
|
||||
}
|
||||
}
|
@ -719,9 +719,6 @@ public final class L2PcInstance extends L2Playable
|
||||
|
||||
private byte _handysBlockCheckerEventArena = -1;
|
||||
|
||||
/** new loto ticket **/
|
||||
private final int _loto[] = new int[5];
|
||||
// public static int _loto_nums[] = {0,1,2,3,4,5,6,7,8,9,};
|
||||
/** new race ticket **/
|
||||
private final int _race[] = new int[2];
|
||||
|
||||
@ -8947,16 +8944,6 @@ public final class L2PcInstance extends L2Playable
|
||||
_teleportType = type;
|
||||
}
|
||||
|
||||
public void setLoto(int i, int val)
|
||||
{
|
||||
_loto[i] = val;
|
||||
}
|
||||
|
||||
public int getLoto(int i)
|
||||
{
|
||||
return _loto[i];
|
||||
}
|
||||
|
||||
public void setRace(int i, int val)
|
||||
{
|
||||
_race[i] = val;
|
||||
|
Loading…
Reference in New Issue
Block a user