New Race Track arena zone.

Contributed by Stayway.
This commit is contained in:
MobiusDev
2017-08-02 18:56:21 +00:00
parent fa50a656ef
commit 6e013fa0ad
19 changed files with 505 additions and 235 deletions

View File

@@ -0,0 +1,19 @@
<html><body><br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Back</Button><br>
In a monster race eight monsters race at the same time. If you guess which monster is expected to finish first and buy that monster's race ticket, based upon the odds to win you will receive an appropriate amount of Adena.<br>
<font color="LEVEL">How the Race Works</font>Monster races run every 20 minutes in real time.<br>
<font color="LEVEL">How to Participate</font><br>
You can purchase a monster race ticket through a race manager NPC. Only between 18 minutes before the start of a race until 3 minutes before the race begins can you buy a ticket for the applicable race. When you purchase a ticket through a race manager, you can find out the names of the participating monsters and their current statistics. Three minutes before a race starts, the race manager will stop ticket sales and announce the monsters' individual odds for the current race.<br>
<font color="LEVEL">Betting</font><br>
There are two types of race betting. The Win bet means that you back a particular monster to win 1st place. The Place bet means that you will have to guess the 1st and 2nd place monsters, regardless of who finishes first or second.<br>
<font color="00FFFF">Win</font><br1>
* Among the entire betting amount for Win betting, after subtracting the race track's own share of profit, the amount left will be your total winnings. Three minutes before the race, each monster's expected odds are announced. Each Win ticket's dividend amount is calculated by multiplying the odds by the price of a ticket. The odds are never less than 1.<br1>
* The prize money does not get transferred to the next race.<br>
<font color="00FFFF">Place</font><br1>
* Place betting is a way of betting when you correctly guess the two monsters who will finish first and second regardless of their order. The method of calculating the dividend amount is the same as Win betting.<br1>
* Currently place betting is not available.<br>
<font color="LEVEL">End of Race</font><br>
When a race is over, the race manager will shout the results of the race. You can trade your ticket for Adena by speaking to a race manager NPC. Check the Winning Information Data to find out the types of bets and total winnings for the race you bet on, as well as your win status and prize amount. If you won, you can receive your prize money thorough a race manager NPC. If you did not win, a race manager will buy back your ticket for a small amount of money.<br>
If a server goes down while tickets are being sold, or while a race is in progress, the race will be cancelled. You can receive a full refund for your ticket for a cancelled race through a race manager.<br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 0">Back</Button>
</body></html>

View File

@@ -0,0 +1,94 @@
<html><body>
<center>Monster Race Betting <font color="00ffff">To Win</font> (Race #<font color="LEVEL"> 1race</font>)<br1>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
</center>
<table width=270 border=0 bgcolor="111111">
<tr>
<td fixwidth=60>Lane Selection</td>
<td fixwidth=140 align=center>Name of Racer</td>
<td fixwidth=40 align=center>Rating</td>
<td fixwidth=30 align=right>Odds</td>
</tr>
</table>
<table width=270 border=0>
<tr>
<td fixwidth=13><button action="bypass -h npc_%objectId%_BuyTicket 1" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td fixwidth=30>1</td>
<td fixwidth=152><font color="LEVEL">Mob1</font></td>
<td fixwidth=50 align=center>&$745;</td>
<td fixwidth=30 align=right><font color="00ffff">13%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 2" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>2</td>
<td><font color="LEVEL">Mob2</font></td>
<td align=center>&$745;</td>
<td align=right><font color="00ffff">6%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 3" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>3</td>
<td><font color="LEVEL">Mob3</font></td>
<td align=center>&$747;</td>
<td align=right><font color="00ffff">4%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 4" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>4</td>
<td><font color="LEVEL">Mob4</font></td>
<td align=center>&$745;</td>
<td align=right><font color="00ffff">12%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 5" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>5</td>
<td><font color="LEVEL">Mob5</font></td>
<td align=center>&$745;</td>
<td align=right><font color="00ffff">14%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 6" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>6</td>
<td><font color="LEVEL">Mob6</font></td>
<td align=center>&$745;</td>
<td align=right><font color="00ffff">13%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 7" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>7</td>
<td><font color="LEVEL">Mob7</font></td>
<td align=center>&$745;</td>
<td align=right><font color="00ffff">13%</font></td>
</tr>
<tr>
<td><button action="bypass -h npc_%objectId%_BuyTicket 8" back="L2UI.rightBtn2" fore="L2UI.rightBtn1" width=14 height=13></td>
<td>8</td>
<td><font color="LEVEL">Mob8</font></td>
<td align=center>&$746;</td>
<td align=right><font color="00ffff">14%</font></td>
</tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=70 height=20><button value="Back" action="bypass -h npc_%objectId%_Chat 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=130 align=center>Select Lane :<font color="LEVEL"> No1</font></td>
<td width=70 align=right><button value="Quantity" action="bypass -h npc_%objectId%_BuyTicket 10" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
</tr>
</table>
</body></html>

View File

@@ -0,0 +1,42 @@
<html><body>
<center>Monster Race Betting <font color="00ffff">To Win</font> (Race #<font color="LEVEL"> 1race</font>)<br1>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
</center>
<table width=270 border=0 bgcolor="111111">
<tr>
<td fixwidth=60>Lane Selection</td>
<td fixwidth=140 align=center>Racer's Name </td>
<td fixwidth=40 align=center>Rating</td>
<td fixwidth=30 align=right>Odds</td>
</tr>
</table>
<table width=270 border=0>
<tr>
<td fixwidth=13><img src="L2UI.rightBtn2" width=14 height=13></td>
<td fixwidth=30>0place</td>
<td fixwidth=152><font color="LEVEL">Mob1</font></td>
<td fixwidth=50 align=center>&$745;</td>
<td fixwidth=30 align=right><font color="00ffff">13%</font></td>
</tr>
</table>
<table width=270 border=0>
<tr><td width=100>Select Bet Amount</td>
<td width=170>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 11" >100 Adena</Button> , <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 12" >500 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 13" >1,000 Adena</Button> , <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 14" >5,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 15" >10,000 Adena</Button> , <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 16" >20,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 17" >50,000 Adena</Button> , <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 18" >100,000 Adena</Button>
</td></tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=70 height=20><button value="Select Lane" action="bypass -h npc_%objectId%_BuyTicket 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=130 align=center>Purchase Price :<font color="LEVEL"> 0adena</font></td>
<td width=70 align=right><button value="Confirm" action="bypass -h npc_%objectId%_BuyTicket 20" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
</tr>
</table>
</body></html>

View File

@@ -0,0 +1,52 @@
<html><body>
<center>Monster Race <font color="00ffff">Single</font> Ticket Purchase (Race #<font color="LEVEL"> 1race</font>)<br1>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
</center>
<table width=270 border=0 bgcolor="111111">
<tr>
<td fixwidth=60>Lane Selection</td>
<td fixwidth=140 align=center>Racer's Name</td>
<td fixwidth=40 align=center>Rating</td>
<td fixwidth=30 align=right>Odds</td>
</tr>
</table>
<table width=270 border=0>
<tr>
<td fixwidth=13><img src="L2UI.rightBtn2" width=14 height=13></td>
<td fixwidth=30>0place</td>
<td fixwidth=152><font color="LEVEL">Mob1</font></td>
<td fixwidth=50 align=center>&$745;</td>
<td fixwidth=30 align=right><font color="00ffff">13%</font></td>
</tr>
</table>
<table width=270 border=0 bgcolor=111111>
<tr>
<td fixwidth=60>Bet Amount </td>
<td fixwidth=200></td>
</tr>
<tr>
<td>Bet Amount </td>
<td><font color="LEVEL">0adena</font> Adena</td>
</tr>
<tr>
<td>Tax </td>
<td><font color="LEVEL">0tax</font> Adena</td>
</tr>
<tr>
<td>Total </td>
<td><font color="LEVEL">0total</font> Adena</td>
</tr>
</table><br>
<center>If the information is correct, please click Confirm.</center><br>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=70 height=20><button value=&$141; action="bypass -h npc_%objectId%_Chat 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=130 align=center><button value="Select Lane" action="bypass -h npc_%objectId%_BuyTicket 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=70 align=right><button value=&$140; action="bypass -h npc_%objectId%_BuyTicket 21" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
</tr>
</table>
</body></html>

View File

@@ -0,0 +1,74 @@
<html><body>
<center>Monster Race Betting <font color="00ffff">To Win</font> View Odds (Race #<font color="LEVEL"> 1race</font> )<br1>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
</center>
<table width=270 border=0 bgcolor=111111>
<tr>
<td fixwidth=40 align=left>Lane</td>
<td fixwidth=130 align=center>Racer's Name</td>
<td fixwidth=100 align=right>Odds</td>
</tr>
</table>
<table width=270 border=0>
<tr>
<td fixwidth=40>No.1</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob1</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.2</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob2</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.3</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob3</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.4</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob4</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.5</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob5</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.6</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob6</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.7</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob7</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
<tr>
<td fixwidth=40>No.8</td>
<td fixwidth=130 align=left><font color="LEVEL">Mob8</font></td>
<td fixwidth=100 align=right><font color="00ffff">&$804;</font> </td>
</tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=90 height=20><button value="Back" action="bypass -h npc_%objectId%_Chat 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=90></td>
<td width=90 align=right><button value="Racer Info" action="bypass -h npc_%objectId%_ShowInfo" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
</tr>
</table>
</body></html>

View File

@@ -0,0 +1,80 @@
<html><body>
<center>Participating Monsters<br1>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
</center>
<table width=270 border=0 bgcolor=111111>
<tr>
<td fixwidth=40 align=left>Lane</td>
<td fixwidth=140 align=center>Racer's Name</td>
<td fixwidth=50 align=center>Rating</td>
<td fixwidth=40 align=right>Odds</td>
</tr>
</table>
<table width=270 border=0>
<tr>
<td fixwidth=40>1</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob1</font></td>
<td fixwidth=50 align=center>&$747;</td>
<td fixwidth=40 align=right><font color="00ffff">12%</font></td>
</tr>
<tr>
<td fixwidth=40>2</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob2</font></td>
<td fixwidth=50 align=center>&$745;</td>
<td fixwidth=40 align=right><font color="00ffff">6%</font></td>
</tr>
<tr>
<td fixwidth=40>3</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob3</font></td>
<td fixwidth=50 align=center>&$746;</td>
<td fixwidth=40 align=right><font color="00ffff">3%</font></td>
</tr>
<tr>
<td fixwidth=40>4</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob4</font></td>
<td fixwidth=50 align=center>&$747;</td>
<td fixwidth=40 align=right><font color="00ffff">7%</font></td>
</tr>
<tr>
<td fixwidth=40>5</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob5</font></td>
<td fixwidth=50 align=center>&$747;</td>
<td fixwidth=40 align=right><font color="00ffff">4%</font></td>
</tr>
<tr>
<td fixwidth=40>6</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob6</font></td>
<td fixwidth=50 align=center>&$747;</td>
<td fixwidth=40 align=right><font color="00ffff">14%</font></td>
</tr>
<tr>
<td fixwidth=40>7</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob7</font></td>
<td fixwidth=50 align=center>&$747;</td>
<td fixwidth=40 align=right><font color="00ffff">26%</font></td>
</tr>
<tr>
<td fixwidth=40>8</td>
<td fixwidth=140 align=left><font color="LEVEL">Mob8</font></td>
<td fixwidth=50 align=center>&$745;</td>
<td fixwidth=40 align=right><font color="00ffff">5%</font></td>
</tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0><tr>
<td width=90 height=20><button value="Back" action="bypass -h npc_%objectId%_Chat 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=90></td>
<td width=90></td>
</tr></table></body></html>

View File

@@ -0,0 +1,29 @@
<html><body>
<center>Confirm Monster Race Bet / Calculate Winnings</center>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
<table width=270 border=0 bgcolor=111111>
<tr><td fixwidth=60>Winnings for a Race.</td><td fixwidth=60 align=right>Lane</td><td fixwidth=160 align=right>Bet Amount</td></tr>
<tr><td fixwidth=60 fixheight=1></td><td fixwidth=60></td><td fixwidth=160></td></tr>
</table>
<table width=270 border=0>
<tr>
<td><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 8">1 Race Number</Button></td>
<td align=right><font color="LEVEL">1</font> Number</td>
<td align=right><font color="LEVEL">100</font> Adena</td>
</tr>
</table>
<img src="L2UI.SquareWhite" width=270 height=1>
<table width=270 border=0>
<tr><td width=90><Button ALIGN=LEFT ICON="NORMAL" action="bypass _mrsl01_1">Previous List</Button></td><td width=90 align=center>1 Page </td><td width=90 align=right><Button ALIGN=LEFT ICON="NORMAL" action="bypass _mrsl01_2"> Next List</Button></td></tr>
</table>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=90 height=20><button value="Back" action="bypass -h npc_%objectId%_Chat 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=90></td>
<td width=90></td>
</tr></table></body></html>

View File

@@ -0,0 +1,25 @@
<html><body>
<center>Confirm Monster Race Bet / Calculate Winnings</center>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
<table width=270 border=0>
<tr>
<td width=230>Race #19090<br>
Lane 1<br>
Bet: 100 adena<br>
1st place: Lane [4]<br>
Odds:[0.01]
</td>
</tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=90 height=20><button value="Previous" action="bypass -h npc_%objectId%_Chat 7" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=90></td>
<td width=90 align=right><button value="Calculate" action="bypass _mrsl03_30635184" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
</tr></table>
</body></html>

View File

@@ -0,0 +1,56 @@
<html><body>
<center>View Monster Race Results</center>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=1 height=3>
<table width=270 border=0 bgcolor=111111>
<tr><td fixwidth=60>Race Number</td><td fixwidth=70 align=center>1st Finish</td><td fixwidth=70 align=center>2nd Finish</td><td fixwidth=70 align=right>Odds Rate for Win Bet</td></tr>
</table>
<table width=270 border=0>
<tr><td fixwidth=60 fixheight=1></td><td fixwidth=70></td><td fixwidth=70></td><td fixwidth=70></td></tr>
<tr>
<td><font color="LEVEL">7</font> th</td>
<td><font color="LEVEL">8</font> Lane </td><td><font color="LEVEL">1</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
<tr>
<td><font color="LEVEL">6</font> th</td>
<td><font color="LEVEL">4</font> Lane </td><td><font color="LEVEL">8</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
<tr>
<td><font color="LEVEL">5</font> th</td>
<td><font color="LEVEL">7</font> Lane </td><td><font color="LEVEL">2</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
<tr>
<td><font color="LEVEL">4</font> th</td>
<td><font color="LEVEL">6</font> Lane </td><td><font color="LEVEL">8</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
<tr>
<td><font color="LEVEL">3</font> th</td>
<td><font color="LEVEL">4</font> Lane </td><td><font color="LEVEL">1</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
<tr>
<td><font color="LEVEL">2</font> th</td>
<td><font color="LEVEL">1</font> Lane </td><td><font color="LEVEL">8</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
<tr>
<td><font color="LEVEL">1</font> th</td>
<td><font color="LEVEL">7</font> Lane </td><td><font color="LEVEL">6</font> Lane</td>
<td align=right><font color="00ffff">0.00</font> Times</td>
</tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10>
<img src="L2UI.SquareWhite" width=270 height=1>
<img src="L2UI.SquareBlank" width=270 height=5>
<table width=270 border=0 cellpadding=0 cellspacing=0>
<tr>
<td width=90 height=20><button value="Back" action="bypass -h npc_%objectId%_Chat 0" back="L2UI.DefaultButton_click" fore="L2UI.DefaultButton" width=67 height=19></td>
<td width=90></td>
<td width=90></td>
</tr>
</table>
</body></html>

View File

@@ -0,0 +1,15 @@
<html>
<body>
<center>Monster Race Manager</center>
<img src="L2UI.SquareWhite" width=270 height=1> <img src="L2UI.SquareBlank" width=1 height=3>
<table width=270 border=0>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">Monster Race Help</Button></td></tr>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_ShowOdds">View Odds</Button></td></tr>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_ShowInfo">View Monster Information</Button></td></tr>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_BuyTicket 0">Purchase Ticket</Button></td></tr>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 7">Calculate Winnings</Button></td></tr>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 9"">View Past Results</Button></td></tr>
<tr><td width=270><Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Quest TeleportToRaceTrack" msg="1298;Monster Race Track">Exit the Monster Race Track</Button></td></tr>
</table>
<img src="L2UI.SquareBlank" width=270 height=10> <img src="L2UI.SquareWhite" width=270 height=1> <img src="L2UI.SquareBlank" width=270 height=5>
</body></html>

View File

@@ -2,11 +2,11 @@
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 1">&$612;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 2">&$613;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 3">&$614;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">&$615;</Button>
<!-- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 4">&$615;</Button> Not used in classic Saviors -->
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 5">&$616;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 6">&$617;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 7">&$1243;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 8">&$1420;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 9">&$1423;</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 10">&$619;</Button>
<!-- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 7">&$1243;</Button> Not used in classic Saviors -->
<!-- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 8">&$1420;</Button> Not used in classic Saviors -->
<!-- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 9">&$1423;</Button> Not used in classic Saviors -->
<!-- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_Chat 10">&$619;</Button> Not used in classic Saviors -->
</body></html>

View File

@@ -1,10 +0,0 @@
<html><body>Arena Manager:<br>
Way to go! Hooray! Hooray!!!<br>
(Be careful! CP/HP will not get recovered inside the fence.)<br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager CPrecovery">CP Recovery: 1,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager HPrecovery">HP Recovery: 1,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager Buff">Buff for Battle Ground: 2,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_DepositP">Private Warehouse: Deposit an item.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_WithdrawP">Private Warehouse: Withdraw an item.</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -1,10 +0,0 @@
<html><body>Arena Director:<br>
Play the game according to the rules! The loser should be silent!<br>
What? Unfair? Then, why don't you hold your tongue and give it another try!<br><br>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager CPrecovery">CP Recovery: 1,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager HPrecovery">HP Recovery: 1,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest ArenaManager Buff">Buff for Arena: 2,000 Adena</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_DepositP">Private Warehouse: Deposit an item.</Button>
<Button ALIGN=LEFT ICON="NORMAL" action="bypass -h npc_%objectId%_WithdrawP">Private Warehouse: Withdraw an item.</Button>
<Button ALIGN=LEFT ICON="QUEST" action="bypass -h npc_%objectId%_Quest">Quest</Button>
</body></html>

View File

@@ -1,139 +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 ai.others.ArenaManager;
import com.l2jmobius.gameserver.model.StatsSet;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.SkillHolder;
import com.l2jmobius.gameserver.model.itemcontainer.Inventory;
import com.l2jmobius.gameserver.model.zone.ZoneId;
import com.l2jmobius.gameserver.network.SystemMessageId;
import ai.AbstractNpcAI;
/**
* Arena Manager AI.
* @author St3eT
*/
public final class ArenaManager extends AbstractNpcAI
{
// NPCs
private static final int[] ARENA_MANAGER =
{
31226, // Arena Director (MDT)
31225, // Arena Manager (Coliseum)
};
// Skills
private static final SkillHolder[] BUFFS =
{
new SkillHolder(6805, 1), // Arena Empower
new SkillHolder(6806, 1), // Arena Acumen
new SkillHolder(6807, 1), // Arena Concentration
new SkillHolder(6808, 1), // Arena Might
new SkillHolder(6804, 1), // Arena Wind Walk
new SkillHolder(6812, 1), // Arena Berserker Spirit
};
private static final SkillHolder CP_RECOVERY = new SkillHolder(4380, 1); // Arena: CP Recovery
private static final SkillHolder HP_RECOVERY = new SkillHolder(6817, 1); // Arena HP Recovery
// Misc
private static final int CP_COST = 1000;
private static final int HP_COST = 1000;
private static final int BUFF_COST = 2000;
private ArenaManager()
{
addStartNpc(ARENA_MANAGER);
addTalkId(ARENA_MANAGER);
addFirstTalkId(ARENA_MANAGER);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
switch (event)
{
case "CPrecovery":
{
if (player.getAdena() >= CP_COST)
{
takeItems(player, Inventory.ADENA_ID, CP_COST);
getTimers().addTimer("CPrecovery_delay", 2000, npc, player);
}
else
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
}
break;
}
case "HPrecovery":
{
if (player.getAdena() >= HP_COST)
{
takeItems(player, Inventory.ADENA_ID, HP_COST);
getTimers().addTimer("HPrecovery_delay", 2000, npc, player);
}
else
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
}
break;
}
case "Buff":
{
if (player.getAdena() >= BUFF_COST)
{
takeItems(player, Inventory.ADENA_ID, BUFF_COST);
npc.setTarget(player);
for (SkillHolder skill : BUFFS)
{
npc.doCast(skill.getSkill());
}
}
else
{
player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_ENOUGH_ADENA);
}
break;
}
}
return super.onAdvEvent(event, npc, player);
}
@Override
public void onTimerEvent(String event, StatsSet params, L2Npc npc, L2PcInstance player)
{
if ((player != null) && !player.isInsideZone(ZoneId.PVP))
{
if (event.equals("CPrecovery_delay"))
{
npc.setTarget(player);
npc.doCast(CP_RECOVERY.getSkill());
}
else if (event.equals("HPrecovery_delay"))
{
npc.setTarget(player);
npc.doCast(HP_RECOVERY.getSkill());
}
}
}
public static void main(String[] args)
{
new ArenaManager();
}
}

View File

@@ -95,7 +95,6 @@
<npc id="30636" x="23471" y="188092" z="-3604" heading="16384" respawnTime="60sec"/>
<npc id="30981" x="15520" y="174572" z="-3637" heading="57344" respawnTime="60sec"/>
<npc id="31210" x="12882" y="181053" z="-3560" heading="49152" respawnTime="60sec"/>
<npc id="31225" x="11970" y="183588" z="-3560" heading="0" respawnTime="60sec"/>
<npc id="30995" x="12964" y="181600" z="-3567" heading="12703" respawnTime="60sec"/>
<npc id="31031" x="17264" y="170160" z="-3509" heading="16384" respawnTime="5sec"/>
<npc id="31031" x="13168" y="182594" z="-3500" heading="16384" respawnTime="5sec"/>

View File

@@ -28,15 +28,6 @@
<node X="-113990" Y="-177851" />
<node X="-115606" Y="-177858" />
</zone>
<zone name="no_boormark_monster_derby_track" type="ConditionZone" shape="NPoly" minZ="-3668" maxZ="-3168">
<stat name="NoBookmark" val="true" />
<node X="14566" Y="182997" />
<node X="13257" Y="182976" />
<node X="13250" Y="184333" />
<node X="11629" Y="184316" />
<node X="11621" Y="181298" />
<node X="14486" Y="181302" />
</zone>
<zone name="no_boormark_gm_prison" type="ConditionZone" shape="NPoly" minZ="-2992" maxZ="-2792">
<stat name="NoBookmark" val="true" />
<node X="-116390" Y="-251581" />

View File

@@ -18,14 +18,6 @@
<node X="-113990" Y="-177851" />
<node X="-115606" Y="-177858" />
</zone>
<zone name="monster_derby_track" type="NoSummonFriendZone" shape="NPoly" minZ="-3668" maxZ="-3168">
<node X="14566" Y="182997" />
<node X="13257" Y="182976" />
<node X="13250" Y="184333" />
<node X="11629" Y="184316" />
<node X="11621" Y="181298" />
<node X="14486" Y="181302" />
</zone>
<zone name="gm_prison" type="NoSummonFriendZone" shape="NPoly" minZ="-2992" maxZ="-2792">
<node X="-116390" Y="-251581" />
<node X="-112756" Y="-251617" />

View File

@@ -1,55 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<list enabled="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/zones.xsd">
<!-- Monster Race Track -->
<zone name="dion_monster_race1" type="DerbyTrackZone" shape="NPoly" minZ="-3652" maxZ="-3452"> <!-- [20_23] -->
<node X="11714" Y="181568" />
<node X="14406" Y="181571" />
<node X="14405" Y="182673" />
<node X="11714" Y="182673" />
<zone name="dion_monster_pvp" type="ArenaZone" shape="NPoly" minZ="-3718" maxZ="-3714">
<node X="17171" Y="183277" />
<node X="11991" Y="183060" />
<node X="13086" Y="183060" />
<node X="13302" Y="183275" />
<node X="13305" Y="184091" />
<node X="13382" Y="184311" />
<node X="11989" Y="184310" />
<node X="11774" Y="184092" />
</zone>
<zone name="dion_monster_race2" type="DerbyTrackZone" shape="NPoly" minZ="-3610" maxZ="-3410"> <!-- [20_23] -->
<node X="13309" Y="181324" />
<node X="14061" Y="181324" />
<node X="14061" Y="181610" />
<node X="13309" Y="181610" />
</zone>
<zone name="dion_monster_race3" type="DerbyTrackZone" shape="NPoly" minZ="-3608" maxZ="-3408"> <!-- [20_23] -->
<node X="13559" Y="182641" />
<node X="14073" Y="182640" />
<node X="14073" Y="182919" />
<node X="13560" Y="182918" />
</zone>
<zone name="dion_monster_race4" type="DerbyTrackZone" shape="NPoly" minZ="-3612" maxZ="-3412"> <!-- [20_23] -->
<node X="12196" Y="182662" />
<node X="12447" Y="182663" />
<node X="12447" Y="182766" />
<node X="12197" Y="182766" />
</zone>
<zone name="dion_monster_race5" type="DerbyTrackZone" shape="NPoly" minZ="-3624" maxZ="-3424"> <!-- [20_23] -->
<node X="11706" Y="182774" />
<node X="13194" Y="182769" />
<node X="13194" Y="183006" />
<node X="11701" Y="183017" />
</zone>
<zone name="dion_monster_race6" type="DerbyTrackZone" shape="NPoly" minZ="-3616" maxZ="-3416"> <!-- [20_23] -->
<node X="11701" Y="184017" />
<node X="13188" Y="184011" />
<node X="13194" Y="184265" />
<node X="11701" Y="184260" />
</zone>
<zone name="dion_monster_race7" type="DerbyTrackZone" shape="NPoly" minZ="-3620" maxZ="-3420"> <!-- [20_23] -->
<node X="11697" Y="183013" />
<node X="11945" Y="183019" />
<node X="11940" Y="184015" />
<node X="11697" Y="184015" />
</zone>
<zone name="dion_monster_race8" type="DerbyTrackZone" shape="NPoly" minZ="-3624" maxZ="-3424"> <!-- [20_23] -->
<node X="12945" Y="183013" />
<node X="13193" Y="183008" />
<node X="13193" Y="184009" />
<node X="12945" Y="184009" />
</zone>
<zone name="Seed of Annihilation 1" id="60006" type="EffectZone" shape="NPoly" minZ="-10700" maxZ="-10100">
<stat name="maxDynamicSkillCount" val="1" />
<stat name="showDangerIcon" val="false" />

View File

@@ -19,7 +19,7 @@ What is done
-Parsed NPC droplists from L2Wiki
-Further manual NPC corrections from L2Wiki
-Basic Tutorial quest
-Added 153 quest scripts
-Added 156 quest scripts
-Village Master AI scripts
-Fixed skill levels to match retail
-Added new class mounts
@@ -30,11 +30,13 @@ What is done
-Dimensional Merchant updates
-Retail gatekeeper teleports
-Admin menu teleport and shop cleanups
-Blacksmith NPC updates
-New Race Track arena zone
Custom work
-Newbie Helper NPC location info
-Newbie Helper buff support until 40 level
-ClassMaster (Test Server Helper) NPCs
-Test Server Helper NPCs
TODO list
-Parse retail monster spawns by zone
@@ -42,8 +44,6 @@ TODO list
-Retail NPC buylists
-Test quests and update rewards
-Giran Luxury Shop updates
-New Race Track arena
-Blacksmith NPC updates
-Floran Agricultural Area clan halls
-Test Castle Sieges and Merc stats
-Test castle sieges
-Whisper of Dreams quests