diff --git a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml index 845ae929d2ae4e3a530ca50025aaf76da9d6db5d..070ed03992bc7dd50518b5dbeb256f817636f4ff 100644 --- a/L2J_DataPack_BETA/dist/game/config/adminCommands.xml +++ b/L2J_DataPack_BETA/dist/game/config/adminCommands.xml @@ -21,8 +21,8 @@ <admin command="admin_set" accessLevel="7" /> <admin command="admin_set_mod" accessLevel="7" /> <admin command="admin_saveolymp" accessLevel="7" /> - <admin command="admin_manualhero" accessLevel="7" confirmDlg="true" /> <admin command="admin_sethero" accessLevel="7" /> + <admin command="admin_givehero" accessLevel="7" confirmDlg="true" /> <admin command="admin_endolympiad" accessLevel="7" confirmDlg="true" /> <admin command="admin_setconfig" accessLevel="7" /> <admin command="admin_config_server" accessLevel="7" /> diff --git a/L2J_DataPack_BETA/dist/game/data/html/admin/game_menu.htm b/L2J_DataPack_BETA/dist/game/data/html/admin/game_menu.htm index fc1c7a8d0f6b5ec310a8641406c6f39eca73f995..26c1c4b2ba4affacfca971b045397f971e07a72c 100644 --- a/L2J_DataPack_BETA/dist/game/data/html/admin/game_menu.htm +++ b/L2J_DataPack_BETA/dist/game/data/html/admin/game_menu.htm @@ -49,7 +49,7 @@ Cursed Weapons:<br1> </table> <br> Seven Signs:<br1> -<table width=240> +<table width="240"> <tr> <td><button value="Blacksmith" action="bypass -h admin_mammon_find 1" width=82 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> <td><button value="Merchant" action="bypass -h admin_mammon_find 2" width=82 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> @@ -58,38 +58,45 @@ Seven Signs:<br1> </table> <br> Manor:<br1> -<table width=125> +<table width="125"> <tr> -<td><button value="Manor info" action="bypass -h admin_manor" width=125 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td><button value="Manor info" action="bypass -h admin_manor" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table> <br> Gracia Seeds:<br1> -<table width=125> +<table width="125"> <tr> -<td><button value="Gracia info" action="bypass -h admin_gracia_seeds" width=125 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td><button value="Gracia info" action="bypass -h admin_gracia_seeds" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table> <br> Hellbound Continent:<br1> -<table width=125> +<table width="125"> <tr> -<td><button value="Hellbound Info" action="bypass -h admin_hellbound" width=125 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td><button value="Hellbound Info" action="bypass -h admin_hellbound" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table> <br> -GrandBoss:<br1> -<table width=125> +Grand Boss:<br1> +<table width="125"> <tr> -<td><button value="GrandBoss Info" action="bypass -h admin_grandboss" width=125 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td><button value="Grand Boss Info" action="bypass -h admin_grandboss" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table> <br> Olympiad:<br1> -<table width=250> +<table width="125"> +<tr> +<td><button value="Save Olympiad" action="bypass -h admin_saveolymp" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +</tr> +</table> +<br> +Heroes:<br1> +<table width="250"> <tr> -<td><button value="Save Olympiad" action="bypass -h admin_saveolymp" width=125 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> -<td><button value="Manual Hero" action="bypass -h admin_manualhero" width=125 height=20 back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td><button value="Set Hero" action="bypass -h admin_sethero" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> +<td><button value="Set Hero" action="bypass -h admin_givehero" width="125" height="20" back="L2UI_CT1.Button_DF_Down" fore="L2UI_CT1.Button_DF"></td> </tr> </table> <br> diff --git a/L2J_DataPack_BETA/dist/game/data/html/olympiad/hero_notreceive.htm b/L2J_DataPack_BETA/dist/game/data/html/olympiad/hero_notreceive.htm new file mode 100644 index 0000000000000000000000000000000000000000..77fd23df6cc016bfd07b3f455cbc02ee6014dddc --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/html/olympiad/hero_notreceive.htm @@ -0,0 +1,11 @@ +<html><head><body scroll="no"> +<table border=0 cellpadding=0 cellspacing=0 width=292 height=358 background="L2UI_CH3.refinewnd_back_Pattern"> + <tr><td height=34></td></tr> + <tr><td align=center>You are not qualified to become a hero.</td></tr> + <tr><td height=10></td></tr> + <tr><td align=center></td></tr> + <tr><td height=34></td></tr> + <tr><td align=center><button action="bypass -h npc_%objectId%_Chat 0" value="Back" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Back_Down" fore="L2UI_CT1.OlympiadWnd_DF_Back"></td></tr> + <tr><td height=200></td></tr> +</table> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/html/olympiad/hero_receive.htm b/L2J_DataPack_BETA/dist/game/data/html/olympiad/hero_receive.htm new file mode 100644 index 0000000000000000000000000000000000000000..b66a3492796dddf65c5ff18565fcba99f6be9cc8 --- /dev/null +++ b/L2J_DataPack_BETA/dist/game/data/html/olympiad/hero_receive.htm @@ -0,0 +1,11 @@ +<html><head><body scroll="no"> +<table border=0 cellpadding=0 cellspacing=0 width=292 height=358 background="L2UI_CH3.refinewnd_back_Pattern"> + <tr><td height=34></td></tr> + <tr><td align=center>Congratulations! You are a Hero now.</td></tr> + <tr><td height=10></td></tr> + <tr><td align=center></td></tr> + <tr><td height=34></td></tr> + <tr><td align=center><button action="bypass -h npc_%objectId%_Chat 0" value="Back" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Back_Down" fore="L2UI_CT1.OlympiadWnd_DF_Back"></td></tr> + <tr><td height=200></td></tr> +</table> +</body></html> \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java index 5371199bc6e47e4e366c7734bd047ba3aef325fd..4aac400c4a7ffba921923eecbe0390b89a1da1a9 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminAdmin.java @@ -27,6 +27,7 @@ import com.l2jserver.Config; import com.l2jserver.gameserver.datatables.AdminTable; import com.l2jserver.gameserver.handler.IAdminCommandHandler; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.entity.Hero; import com.l2jserver.gameserver.model.olympiad.Olympiad; import com.l2jserver.gameserver.network.SystemMessageId; import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; @@ -58,8 +59,8 @@ public class AdminAdmin implements IAdminCommandHandler "admin_set", "admin_set_mod", "admin_saveolymp", - "admin_manualhero", "admin_sethero", + "admin_givehero", "admin_endolympiad", "admin_setconfig", "admin_config_server", @@ -120,7 +121,7 @@ public class AdminAdmin implements IAdminCommandHandler } activeChar.sendMessage("Heroes formed."); } - else if (command.startsWith("admin_manualhero") || command.startsWith("admin_sethero")) + else if (command.startsWith("admin_sethero")) { if (activeChar.getTarget() == null) { @@ -132,6 +133,22 @@ public class AdminAdmin implements IAdminCommandHandler target.setHero(!target.isHero()); target.broadcastUserInfo(); } + else if (command.startsWith("admin_givehero")) + { + if (activeChar.getTarget() == null) + { + activeChar.sendPacket(SystemMessageId.INCORRECT_TARGET); + return false; + } + + final L2PcInstance target = activeChar.getTarget().isPlayer() ? activeChar.getTarget().getActingPlayer() : activeChar; + if (Hero.getInstance().isClaimed(target.getObjectId())) + { + activeChar.sendMessage("This player has already claimed the hero status."); + return false; + } + Hero.getInstance().claimHero(target); + } else if (command.startsWith("admin_diet")) { try diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java index 8ccb3919f424b4f260917c643a2d3496398d9d05..a3203514965f778880629861a078c5cb8e4bbc16 100644 --- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java +++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java @@ -32,6 +32,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc; import com.l2jserver.gameserver.model.actor.L2Summon; import com.l2jserver.gameserver.model.actor.instance.L2OlympiadManagerInstance; import com.l2jserver.gameserver.model.actor.instance.L2PcInstance; +import com.l2jserver.gameserver.model.entity.Hero; import com.l2jserver.gameserver.model.items.instance.L2ItemInstance; import com.l2jserver.gameserver.model.olympiad.CompetitionType; import com.l2jserver.gameserver.model.olympiad.Olympiad; @@ -123,15 +124,11 @@ public class OlympiadManagerLink implements IBypassHandler case 0: // H5 match selection if (!OlympiadManager.getInstance().isRegistered(activeChar)) { - final int olympiad_round = 0; // TODO : implement me - final int olympiad_week = 0; // TODO: implement me - final int olympiad_participant = 0; // TODO: implement me - html.setFile(activeChar.getHtmlPrefix(), Olympiad.OLYMPIAD_HTML_PATH + "noble_desc2a.htm"); html.replace("%objectId%", String.valueOf(target.getObjectId())); - html.replace("%olympiad_round%", String.valueOf(olympiad_round)); - html.replace("%olympiad_week%", String.valueOf(olympiad_week)); - html.replace("%olympiad_participant%", String.valueOf(olympiad_participant)); + html.replace("%olympiad_period%", String.valueOf(Olympiad.getInstance().getPeriod())); + html.replace("%olympiad_cycle%", String.valueOf(Olympiad.getInstance().getCurrentCycle())); + html.replace("%olympiad_opponent%", String.valueOf(OlympiadManager.getInstance().getCountOpponents())); activeChar.sendPacket(html); } else @@ -345,6 +342,18 @@ public class OlympiadManagerLink implements IBypassHandler case 4: // hero list activeChar.sendPacket(new ExHeroList()); break; + case 5: // Hero Certification + if (!Hero.getInstance().isClaimed(activeChar.getObjectId())) + { + Hero.getInstance().claimHero(activeChar); + reply.setFile(activeChar.getHtmlPrefix(), Olympiad.OLYMPIAD_HTML_PATH + "hero_receive.htm"); + } + else + { + reply.setFile(activeChar.getHtmlPrefix(), Olympiad.OLYMPIAD_HTML_PATH + "hero_notreceive.htm"); + } + activeChar.sendPacket(reply); + break; default: _log.warning("Olympiad System: Couldnt send packet for request " + val); break; diff --git a/L2J_DataPack_BETA/dist/sql/game/heroes.sql b/L2J_DataPack_BETA/dist/sql/game/heroes.sql index bc1ba2c80a57bf14067f918773bee3a89cb343d2..09054d0b09984a879651fa82f71a6b05c979ad77 100644 --- a/L2J_DataPack_BETA/dist/sql/game/heroes.sql +++ b/L2J_DataPack_BETA/dist/sql/game/heroes.sql @@ -3,6 +3,7 @@ CREATE TABLE IF NOT EXISTS `heroes` ( `class_id` decimal(3,0) NOT NULL DEFAULT 0, `count` decimal(3,0) NOT NULL DEFAULT 0, `played` decimal(1,0) NOT NULL DEFAULT 0, + `claimed` ENUM('true','false') NOT NULL DEFAULT 'false', `message` varchar(300) NOT NULL DEFAULT '', PRIMARY KEY (`charId`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; \ No newline at end of file diff --git a/L2J_DataPack_BETA/dist/sql/game/updates/20140817update.sql b/L2J_DataPack_BETA/dist/sql/game/updates/20140817update.sql new file mode 100644 index 0000000000000000000000000000000000000000..08a60950e30e8c9539a68e1cab9fb5b416c9f376 --- /dev/null +++ b/L2J_DataPack_BETA/dist/sql/game/updates/20140817update.sql @@ -0,0 +1 @@ +ALTER TABLE `heroes` ADD COLUMN `claimed` ENUM('true','false') NOT NULL DEFAULT 'false' AFTER `played`; \ No newline at end of file