Last active
February 25, 2016 15:14
-
-
Save St3eT/5a1c955533368f6b83b8 to your computer and use it in GitHub Desktop.
Hero Confirm edited - original by Janiko
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
### Eclipse Workspace Patch 1.0 | |
#P L2J_Milenium_DataPack | |
Index: dist/game/data/html/olympiad/hero_already.htm | |
=================================================================== | |
--- dist/game/data/html/olympiad/hero_already.htm (revision 0) | |
+++ dist/game/data/html/olympiad/hero_already.htm (working copy) | |
@@ -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 already 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 | |
Index: dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java | |
=================================================================== | |
--- dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java (revision 250) | |
+++ dist/game/data/scripts/handlers/bypasshandlers/OlympiadManagerLink.java (working copy) | |
@@ -32,6 +32,7 @@ | |
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; | |
@@ -108,15 +109,11 @@ | |
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 | |
@@ -323,6 +320,22 @@ | |
case 4: // hero list | |
activeChar.sendPacket(new ExHeroList()); | |
break; | |
+ case 5: // HeroCertification | |
+ if (Hero.getInstance().isInactiveHero(activeChar.getObjectId())) | |
+ { | |
+ Hero.getInstance().activateHero(activeChar); | |
+ reply.setFile(activeChar.getHtmlPrefix(), Olympiad.OLYMPIAD_HTML_PATH + "hero_receive.htm"); | |
+ } | |
+ else if (activeChar.isHero()) | |
+ { | |
+ reply.setFile(activeChar.getHtmlPrefix(), Olympiad.OLYMPIAD_HTML_PATH + "hero_already.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; | |
Index: dist/game/data/html/olympiad/hero_main.htm | |
=================================================================== | |
--- dist/game/data/html/olympiad/hero_main.htm (revision 250) | |
+++ dist/game/data/html/olympiad/hero_main.htm (working copy) | |
@@ -11,6 +11,7 @@ | |
<tr><td height=10></td></tr> | |
<tr><td align=center>It offers several services with regard to heroes.</td></tr> | |
<tr><td height=34></td></tr> | |
+ <tr><td align=center><button action="bypass npc_%objectId%_Olympiad 5" value="Hero Certification" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> | |
<tr><td align=center><button action="bypass -h npc_%objectId%_Link olympiad/hero_main2.htm" value="Receive Reward" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Reward_Down" fore="L2UI_CT1.OlympiadWnd_DF_Reward"></td></tr> | |
<tr><td align=center><button action="bypass npc_%objectId%_Olympiad 4" value="Hero List" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_HeroConfirm_Down" fore="L2UI_CT1.OlympiadWnd_DF_HeroConfirm"></td></tr> | |
</table> | |
Index: dist/game/data/html/olympiad/noble_desc2a.htm | |
=================================================================== | |
--- dist/game/data/html/olympiad/noble_desc2a.htm (revision 250) | |
+++ dist/game/data/html/olympiad/noble_desc2a.htm (working copy) | |
@@ -9,7 +9,7 @@ | |
<table border=0 cellpadding=0 cellspacing=0> | |
<tr><td align=center>Select the match you desire.</td></tr> | |
<tr><td height=10></td></tr> | |
- <tr><td align=center><font color="bea27b">(%olympiad_round% period %olympiad_week% rounds currently %olympiad_participant% people participating)</font></td></tr> | |
+ <tr><td align=center><font color="bea27b">(%olympiad_period% period %olympiad_cycle% rounds currently %olympiad_opponent% people participating)</font></td></tr> | |
<tr><td height=19></td></tr> | |
<tr><td align=center><button action="bypass -h npc_%objectId%_OlympiadDesc 2c" msg="1482" value="1 vs 1 Class Match" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Apply_Down" fore="L2UI_CT1.OlympiadWnd_DF_Apply"></td></tr> | |
<tr><td align=center><button action="bypass -h npc_%objectId%_OlympiadDesc 2d" msg="1481" value="1 vs 1 Match" width=200 height=31 back="L2UI_CT1.OlympiadWnd_DF_Fight1None_Down" fore="L2UI_CT1.OlympiadWnd_DF_Fight1None"></td></tr> | |
Index: dist/game/data/html/olympiad/hero_notreceive.htm | |
=================================================================== | |
--- dist/game/data/html/olympiad/hero_notreceive.htm (revision 0) | |
+++ dist/game/data/html/olympiad/hero_notreceive.htm (working copy) | |
@@ -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 | |
Index: dist/game/data/html/olympiad/hero_receive.htm | |
=================================================================== | |
--- dist/game/data/html/olympiad/hero_receive.htm (revision 0) | |
+++ dist/game/data/html/olympiad/hero_receive.htm (working copy) | |
@@ -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 | |
Index: dist/sql/game/heroes.sql | |
=================================================================== | |
--- dist/sql/game/heroes.sql (revision 250) | |
+++ dist/sql/game/heroes.sql (working copy) | |
@@ -3,6 +3,7 @@ | |
`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, | |
+ `active` decimal(1,0) NOT NULL default 0, | |
`message` varchar(300) NOT NULL DEFAULT '', | |
PRIMARY KEY (`charId`) | |
) ENGINE=InnoDB DEFAULT CHARSET=utf8; | |
\ No newline at end of file | |
#P L2J_Milenium_Core | |
Index: java/com/l2jserver/gameserver/network/serverpackets/ExHeroList.java | |
=================================================================== | |
--- java/com/l2jserver/gameserver/network/serverpackets/ExHeroList.java (revision 250) | |
+++ java/com/l2jserver/gameserver/network/serverpackets/ExHeroList.java (working copy) | |
@@ -39,20 +39,32 @@ | |
@Override | |
protected void writeImpl() | |
{ | |
+ int count = 0; | |
+ for (int heroId : _heroList.keySet()) | |
+ { | |
+ if (Hero.getInstance().isHero(heroId)) | |
+ { | |
+ count++; | |
+ } | |
+ } | |
+ | |
writeC(0xFE); | |
writeH(0x79); | |
- writeD(_heroList.size()); | |
+ writeD(count); | |
for (Integer heroId : _heroList.keySet()) | |
{ | |
- StatsSet hero = _heroList.get(heroId); | |
- writeS(hero.getString(Olympiad.CHAR_NAME)); | |
- writeD(hero.getInt(Olympiad.CLASS_ID)); | |
- writeS(hero.getString(Hero.CLAN_NAME, "")); | |
- writeD(hero.getInt(Hero.CLAN_CREST, 0)); | |
- writeS(hero.getString(Hero.ALLY_NAME, "")); | |
- writeD(hero.getInt(Hero.ALLY_CREST, 0)); | |
- writeD(hero.getInt(Hero.COUNT)); | |
+ if (Hero.getInstance().isHero(heroId)) | |
+ { | |
+ StatsSet hero = _heroList.get(heroId); | |
+ writeS(hero.getString(Olympiad.CHAR_NAME)); | |
+ writeD(hero.getInt(Olympiad.CLASS_ID)); | |
+ writeS(hero.getString(Hero.CLAN_NAME, "")); | |
+ writeD(hero.getInt(Hero.CLAN_CREST, 0)); | |
+ writeS(hero.getString(Hero.ALLY_NAME, "")); | |
+ writeD(hero.getInt(Hero.ALLY_CREST, 0)); | |
+ writeD(hero.getInt(Hero.COUNT)); | |
+ } | |
} | |
} | |
} | |
\ No newline at end of file | |
Index: java/com/l2jserver/gameserver/model/olympiad/Olympiad.java | |
=================================================================== | |
--- java/com/l2jserver/gameserver/model/olympiad/Olympiad.java (revision 250) | |
+++ java/com/l2jserver/gameserver/model/olympiad/Olympiad.java (working copy) | |
@@ -693,6 +693,11 @@ | |
return _currentCycle; | |
} | |
+ public int getPeriod() | |
+ { | |
+ return _period; | |
+ } | |
+ | |
public boolean playerInStadia(L2PcInstance player) | |
{ | |
return (ZoneManager.getInstance().getOlympiadStadium(player) != null); | |
Index: java/com/l2jserver/gameserver/model/olympiad/OlympiadManager.java | |
=================================================================== | |
--- java/com/l2jserver/gameserver/model/olympiad/OlympiadManager.java (revision 250) | |
+++ java/com/l2jserver/gameserver/model/olympiad/OlympiadManager.java (working copy) | |
@@ -585,6 +585,11 @@ | |
} | |
} | |
+ public int getCountOpponents() | |
+ { | |
+ return _nonClassBasedRegisters.size() + _classBasedRegisters.size() + _teamsBasedRegisters.size(); | |
+ } | |
+ | |
private static class SingletonHolder | |
{ | |
protected static final OlympiadManager _instance = new OlympiadManager(); | |
Index: java/com/l2jserver/gameserver/model/entity/Hero.java | |
=================================================================== | |
--- java/com/l2jserver/gameserver/model/entity/Hero.java (revision 250) | |
+++ java/com/l2jserver/gameserver/model/entity/Hero.java (working copy) | |
@@ -56,6 +56,7 @@ | |
import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo; | |
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate; | |
import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage; | |
+import com.l2jserver.gameserver.network.serverpackets.SocialAction; | |
import com.l2jserver.gameserver.network.serverpackets.SystemMessage; | |
import com.l2jserver.gameserver.network.serverpackets.UserInfo; | |
import com.l2jserver.util.StringUtil; | |
@@ -67,13 +68,12 @@ | |
{ | |
private static final Logger _log = Logger.getLogger(Hero.class.getName()); | |
- private static final String GET_HEROES = "SELECT heroes.charId, characters.char_name, heroes.class_id, heroes.count, heroes.played FROM heroes, characters WHERE characters.charId = heroes.charId AND heroes.played = 1"; | |
- private static final String GET_ALL_HEROES = "SELECT heroes.charId, characters.char_name, heroes.class_id, heroes.count, heroes.played FROM heroes, characters WHERE characters.charId = heroes.charId"; | |
+ private static final String GET_HEROES = "SELECT heroes.charId, characters.char_name, heroes.class_id, heroes.count, heroes.played, heroes.active FROM heroes, characters WHERE characters.charId = heroes.charId AND heroes.played = 1"; | |
+ private static final String GET_ALL_HEROES = "SELECT heroes.charId, characters.char_name, heroes.class_id, heroes.count, heroes.played, heroes.active FROM heroes, characters WHERE characters.charId = heroes.charId"; | |
private static final String UPDATE_ALL = "UPDATE heroes SET played = 0"; | |
- private static final String INSERT_HERO = "INSERT INTO heroes (charId, class_id, count, played) VALUES (?,?,?,?)"; | |
- private static final String UPDATE_HERO = "UPDATE heroes SET count = ?, played = ? WHERE charId = ?"; | |
+ private static final String INSERT_HERO = "INSERT INTO heroes (charId, class_id, count, played, active) VALUES (?,?,?,?,?)"; | |
+ private static final String UPDATE_HERO = "UPDATE heroes SET count = ?, played = ?, active = ? WHERE charId = ?"; | |
private static final String GET_CLAN_ALLY = "SELECT characters.clanid AS clanid, coalesce(clan_data.ally_Id, 0) AS allyId FROM characters LEFT JOIN clan_data ON clan_data.clan_id = characters.clanid WHERE characters.charId = ?"; | |
- private static final String GET_CLAN_NAME = "SELECT clan_name FROM clan_data WHERE clan_id = (SELECT clanid FROM characters WHERE charId = ?)"; | |
// delete hero items | |
private static final String DELETE_ITEMS = "DELETE FROM items WHERE item_id IN (6842, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6619, 6620, 6621, 9388, 9389, 9390) AND owner_id NOT IN (SELECT charId FROM characters WHERE accesslevel > 0)"; | |
@@ -88,6 +88,7 @@ | |
public static final String COUNT = "count"; | |
public static final String PLAYED = "played"; | |
+ public static final String ACTIVE = "active"; | |
public static final String CLAN_NAME = "clan_name"; | |
public static final String CLAN_CREST = "clan_crest"; | |
public static final String ALLY_NAME = "ally_name"; | |
@@ -131,6 +132,7 @@ | |
hero.set(Olympiad.CLASS_ID, rset.getInt(Olympiad.CLASS_ID)); | |
hero.set(COUNT, rset.getInt(COUNT)); | |
hero.set(PLAYED, rset.getInt(PLAYED)); | |
+ hero.set(ACTIVE, rset.getInt(ACTIVE)); | |
loadFights(charId); | |
loadDiary(charId); | |
@@ -149,6 +151,7 @@ | |
hero.set(Olympiad.CLASS_ID, rset2.getInt(Olympiad.CLASS_ID)); | |
hero.set(COUNT, rset2.getInt(COUNT)); | |
hero.set(PLAYED, rset2.getInt(PLAYED)); | |
+ hero.set(ACTIVE, rset2.getInt(ACTIVE)); | |
processHeros(ps, charId, hero); | |
@@ -687,7 +690,7 @@ | |
int count = oldHero.getInt(COUNT); | |
oldHero.set(COUNT, count + 1); | |
oldHero.set(PLAYED, 1); | |
- | |
+ oldHero.set(ACTIVE, 0); | |
heroes.put(charId, oldHero); | |
} | |
else | |
@@ -697,7 +700,7 @@ | |
newHero.set(Olympiad.CLASS_ID, hero.getInt(Olympiad.CLASS_ID)); | |
newHero.set(COUNT, 1); | |
newHero.set(PLAYED, 1); | |
- | |
+ newHero.set(ACTIVE, 0); | |
heroes.put(charId, newHero); | |
} | |
} | |
@@ -710,71 +713,6 @@ | |
heroes.clear(); | |
updateHeroes(false); | |
- | |
- L2PcInstance player; | |
- for (Integer charId : _heroes.keySet()) | |
- { | |
- player = L2World.getInstance().getPlayer(charId); | |
- if (player != null) | |
- { | |
- player.setHero(true); | |
- L2Clan clan = player.getClan(); | |
- if (clan != null) | |
- { | |
- clan.addReputationScore(Config.HERO_POINTS, true); | |
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_C1_BECAME_HERO_AND_GAINED_S2_REPUTATION_POINTS); | |
- sm.addString(CharNameTable.getInstance().getNameById(charId)); | |
- sm.addInt(Config.HERO_POINTS); | |
- clan.broadcastToOnlineMembers(sm); | |
- } | |
- player.sendPacket(new UserInfo(player)); | |
- player.sendPacket(new ExBrExtraUserInfo(player)); | |
- player.broadcastUserInfo(); | |
- | |
- // Set Gained hero and reload data | |
- setHeroGained(player.getObjectId()); | |
- loadFights(player.getObjectId()); | |
- loadDiary(player.getObjectId()); | |
- _heroMessage.put(player.getObjectId(), ""); | |
- } | |
- else | |
- { | |
- // Set Gained hero and reload data | |
- setHeroGained(charId); | |
- loadFights(charId); | |
- loadDiary(charId); | |
- _heroMessage.put(charId, ""); | |
- | |
- try (Connection con = L2DatabaseFactory.getInstance().getConnection(); | |
- PreparedStatement statement = con.prepareStatement(GET_CLAN_NAME)) | |
- { | |
- statement.setInt(1, charId); | |
- try (ResultSet rset = statement.executeQuery()) | |
- { | |
- if (rset.next()) | |
- { | |
- String clanName = rset.getString("clan_name"); | |
- if (clanName != null) | |
- { | |
- L2Clan clan = ClanTable.getInstance().getClanByName(clanName); | |
- if (clan != null) | |
- { | |
- clan.addReputationScore(Config.HERO_POINTS, true); | |
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_C1_BECAME_HERO_AND_GAINED_S2_REPUTATION_POINTS); | |
- sm.addString(CharNameTable.getInstance().getNameById(charId)); | |
- sm.addInt(Config.HERO_POINTS); | |
- clan.broadcastToOnlineMembers(sm); | |
- } | |
- } | |
- } | |
- } | |
- } | |
- catch (Exception e) | |
- { | |
- _log.warning("could not get clan name of player with objectId:" + charId + ": " + e); | |
- } | |
- } | |
- } | |
} | |
public void updateHeroes(boolean setDefault) | |
@@ -804,6 +742,7 @@ | |
insert.setInt(2, hero.getInt(Olympiad.CLASS_ID)); | |
insert.setInt(3, hero.getInt(COUNT)); | |
insert.setInt(4, hero.getInt(PLAYED)); | |
+ insert.setInt(5, hero.getInt(ACTIVE)); | |
insert.execute(); | |
insert.close(); | |
} | |
@@ -853,7 +792,8 @@ | |
{ | |
statement.setInt(1, hero.getInt(COUNT)); | |
statement.setInt(2, hero.getInt(PLAYED)); | |
- statement.setInt(3, heroId); | |
+ statement.setInt(3, hero.getInt(ACTIVE)); | |
+ statement.setInt(4, heroId); | |
statement.execute(); | |
} | |
} | |
@@ -1000,9 +940,59 @@ | |
*/ | |
public boolean isHero(int objectId) | |
{ | |
- return _heroes.containsKey(objectId); | |
+ return _heroes.containsKey(objectId) && (_heroes.get(objectId).getInt(ACTIVE) == 1); | |
} | |
+ /** | |
+ * @param objectId the player's object Id to verify. | |
+ * @return | |
+ */ | |
+ public boolean isInactiveHero(int objectId) | |
+ { | |
+ if (_heroes.isEmpty()) | |
+ { | |
+ return false; | |
+ } | |
+ if (_heroes.containsKey(objectId) && (_heroes.get(objectId).getInt(ACTIVE) == 0)) | |
+ { | |
+ return true; | |
+ } | |
+ return false; | |
+ } | |
+ | |
+ /** | |
+ * @param player becomes hero | |
+ */ | |
+ public void activateHero(L2PcInstance player) | |
+ { | |
+ final StatsSet hero = _heroes.get(player.getObjectId()); | |
+ hero.set(ACTIVE, 1); | |
+ _heroes.put(player.getObjectId(), hero); | |
+ | |
+ L2Clan clan = player.getClan(); | |
+ if ((clan != null) && (clan.getLevel() >= 5)) | |
+ { | |
+ clan.addReputationScore(Config.HERO_POINTS, true); | |
+ SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.CLAN_MEMBER_C1_BECAME_HERO_AND_GAINED_S2_REPUTATION_POINTS); | |
+ sm.addString(CharNameTable.getInstance().getNameById(player.getObjectId())); | |
+ sm.addInt(Config.HERO_POINTS); | |
+ clan.broadcastToOnlineMembers(sm); | |
+ } | |
+ | |
+ player.setHero(true); | |
+ player.broadcastPacket(new SocialAction(player.getObjectId(), 20016)); // Hero Animation | |
+ player.sendPacket(new UserInfo(player)); | |
+ player.sendPacket(new ExBrExtraUserInfo(player)); | |
+ player.broadcastUserInfo(); | |
+ // Set Gained hero and reload data | |
+ setHeroGained(player.getObjectId()); | |
+ loadFights(player.getObjectId()); | |
+ loadDiary(player.getObjectId()); | |
+ _heroMessage.put(player.getObjectId(), ""); | |
+ | |
+ updateHeroes(false); | |
+ } | |
+ | |
private static class SingletonHolder | |
{ | |
protected static final Hero _instance = new Hero(); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment