-Reworked Raid Points system (ranking system deleted in Valiance update).

-Raidpoints moved to characters.sql
-Fixed calls to unexistent skill levels.

Contributed by NviX.
This commit is contained in:
MobiusDev
2015-07-01 18:50:01 +00:00
parent 167efe6abf
commit 190a0e1c95
22 changed files with 171 additions and 502 deletions

View File

@ -19,7 +19,6 @@
package com.l2jserver.gameserver.model.actor.instance;
import com.l2jserver.gameserver.enums.InstanceType;
import com.l2jserver.gameserver.instancemanager.RaidBossPointsManager;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
@ -87,7 +86,7 @@ public final class L2GrandBossInstance extends L2MonsterInstance
{
for (L2PcInstance member : player.getParty().getMembers())
{
RaidBossPointsManager.getInstance().addPoints(member, getId(), (getLevel() / 2) + Rnd.get(-5, 5));
member.setRaidPoints(member.getRaidPoints() + ((getLevel() / 2) + Rnd.get(-5, 5)));
if (member.isNoble())
{
Hero.getInstance().setRBkilled(member.getObjectId(), getId());
@ -96,7 +95,7 @@ public final class L2GrandBossInstance extends L2MonsterInstance
}
else
{
RaidBossPointsManager.getInstance().addPoints(player, getId(), (getLevel() / 2) + Rnd.get(-5, 5));
player.setRaidPoints(player.getRaidPoints() + ((getLevel() / 2) + Rnd.get(-5, 5)));
if (player.isNoble())
{
Hero.getInstance().setRBkilled(player.getObjectId(), getId());

View File

@ -209,6 +209,7 @@ import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerPKCha
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerPvPChanged;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerPvPKill;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerRaidPointsChanged;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerSubChange;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerTransform;
import com.l2jserver.gameserver.model.events.impl.character.player.mentoring.OnPlayerMenteeStatus;
@ -366,8 +367,8 @@ public final class L2PcInstance extends L2Playable
private static final String DELETE_ITEM_REUSE_SAVE = "DELETE FROM character_item_reuse_save WHERE charId=?";
// Character Character SQL String Definitions:
private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,reputation,fame,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,clan_privs,wantspeace,base_class,nobless,power_grade,createDate) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,reputation=?,fame=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,pccafe_points=?,language=?,faction=? WHERE charId=?";
private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,reputation,fame,raidpoints,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,clan_privs,wantspeace,base_class,nobless,power_grade,createDate) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,reputation=?,fame=?,raidpoints=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,pccafe_points=?,language=?,faction=? WHERE charId=?";
private static final String RESTORE_CHARACTER = "SELECT * FROM characters WHERE charId=?";
// Character Premium System String Definitions:
@ -467,6 +468,9 @@ public final class L2PcInstance extends L2Playable
private int _fame;
private ScheduledFuture<?> _fameTask;
/** The Raid Points of this L2PcInstance */
private int _raidPoints;
private volatile ScheduledFuture<?> _teleportWatchdog;
/** The Siege state of the L2PcInstance */
@ -2302,7 +2306,7 @@ public final class L2PcInstance extends L2Playable
}
/**
* Set the Fame of this L2PcInstane
* Set the Fame of this L2PcInstance
* @param fame
*/
public void setFame(int fame)
@ -2311,6 +2315,24 @@ public final class L2PcInstance extends L2Playable
_fame = (fame > Config.MAX_PERSONAL_FAME_POINTS) ? Config.MAX_PERSONAL_FAME_POINTS : fame;
}
/**
* @return the Raid Points of this L2PcInstance
*/
public int getRaidPoints()
{
return _raidPoints;
}
/**
* Set the Raid Points of this L2PcInstance
* @param raidPoints
*/
public void setRaidPoints(int raidPoints)
{
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerRaidPointsChanged(this, _raidPoints, raidPoints), this);
_raidPoints = raidPoints;
}
/**
* @return the ClassId object of the L2PcInstance contained in L2PcTemplate.
*/
@ -6947,23 +6969,24 @@ public final class L2PcInstance extends L2Playable
statement.setInt(17, getKarma());
statement.setInt(18, getReputation());
statement.setInt(19, getFame());
statement.setInt(20, getPvpKills());
statement.setInt(21, getPkKills());
statement.setInt(22, getClanId());
statement.setInt(23, getRace().ordinal());
statement.setInt(24, getClassId().getId());
statement.setLong(25, getDeleteTimer());
statement.setInt(26, hasDwarvenCraft() ? 1 : 0);
statement.setString(27, getTitle());
statement.setInt(28, getAppearance().getTitleColor());
statement.setInt(29, getAccessLevel().getLevel());
statement.setInt(30, isOnlineInt());
statement.setInt(31, getClanPrivileges().getBitmask());
statement.setInt(32, getWantsPeace());
statement.setInt(33, getBaseClass());
statement.setInt(34, isNoble() ? 1 : 0);
statement.setLong(35, 0);
statement.setDate(36, new Date(getCreateDate().getTimeInMillis()));
statement.setInt(20, getRaidPoints());
statement.setInt(21, getPvpKills());
statement.setInt(22, getPkKills());
statement.setInt(23, getClanId());
statement.setInt(24, getRace().ordinal());
statement.setInt(25, getClassId().getId());
statement.setLong(26, getDeleteTimer());
statement.setInt(27, hasDwarvenCraft() ? 1 : 0);
statement.setString(28, getTitle());
statement.setInt(29, getAppearance().getTitleColor());
statement.setInt(30, getAccessLevel().getLevel());
statement.setInt(31, isOnlineInt());
statement.setInt(32, getClanPrivileges().getBitmask());
statement.setInt(33, getWantsPeace());
statement.setInt(34, getBaseClass());
statement.setInt(35, isNoble() ? 1 : 0);
statement.setLong(36, 0);
statement.setDate(37, new Date(getCreateDate().getTimeInMillis()));
statement.executeUpdate();
}
catch (Exception e)
@ -7017,6 +7040,7 @@ public final class L2PcInstance extends L2Playable
player.setKarma(rset.getInt("karma"));
player.setReputation(rset.getInt("reputation"));
player.setFame(rset.getInt("fame"));
player.setRaidPoints(rset.getInt("raidpoints"));
player.setPvpKills(rset.getInt("pvpkills"));
player.setPkKills(rset.getInt("pkkills"));
player.setOnlineTime(rset.getLong("onlinetime"));
@ -7579,19 +7603,20 @@ public final class L2PcInstance extends L2Playable
statement.setInt(19, getKarma());
statement.setInt(20, getReputation());
statement.setInt(21, getFame());
statement.setInt(22, getPvpKills());
statement.setInt(23, getPkKills());
statement.setInt(24, getClanId());
statement.setInt(25, getRace().ordinal());
statement.setInt(26, getClassId().getId());
statement.setLong(27, getDeleteTimer());
statement.setString(28, getTitle());
statement.setInt(29, getAppearance().getTitleColor());
statement.setInt(30, getAccessLevel().getLevel());
statement.setInt(31, isOnlineInt());
statement.setInt(32, getClanPrivileges().getBitmask());
statement.setInt(33, getWantsPeace());
statement.setInt(34, getBaseClass());
statement.setInt(22, getRaidPoints());
statement.setInt(23, getPvpKills());
statement.setInt(24, getPkKills());
statement.setInt(25, getClanId());
statement.setInt(26, getRace().ordinal());
statement.setInt(27, getClassId().getId());
statement.setLong(28, getDeleteTimer());
statement.setString(29, getTitle());
statement.setInt(30, getAppearance().getTitleColor());
statement.setInt(31, getAccessLevel().getLevel());
statement.setInt(32, isOnlineInt());
statement.setInt(33, getClanPrivileges().getBitmask());
statement.setInt(34, getWantsPeace());
statement.setInt(35, getBaseClass());
long totalOnlineTime = _onlineTime;
if (_onlineBeginTime > 0)
@ -7599,21 +7624,21 @@ public final class L2PcInstance extends L2Playable
totalOnlineTime += (System.currentTimeMillis() - _onlineBeginTime) / 1000;
}
statement.setLong(35, totalOnlineTime);
statement.setInt(36, isNoble() ? 1 : 0);
statement.setInt(37, getPowerGrade());
statement.setInt(38, getPledgeType());
statement.setInt(39, getLvlJoinedAcademy());
statement.setLong(40, getApprentice());
statement.setLong(41, getSponsor());
statement.setLong(42, getClanJoinExpiryTime());
statement.setLong(43, getClanCreateExpiryTime());
statement.setString(44, getName());
statement.setLong(45, 0); // unset
statement.setInt(46, getBookMarkSlot());
statement.setInt(47, _vitalityPoints); // unset
statement.setInt(48, getPcBangPoints());
statement.setString(49, getLang());
statement.setLong(36, totalOnlineTime);
statement.setInt(37, isNoble() ? 1 : 0);
statement.setInt(38, getPowerGrade());
statement.setInt(39, getPledgeType());
statement.setInt(40, getLvlJoinedAcademy());
statement.setLong(41, getApprentice());
statement.setLong(42, getSponsor());
statement.setLong(43, getClanJoinExpiryTime());
statement.setLong(44, getClanCreateExpiryTime());
statement.setString(45, getName());
statement.setLong(46, 0); // unset
statement.setInt(47, getBookMarkSlot());
statement.setInt(48, _vitalityPoints); // unset
statement.setInt(49, getPcBangPoints());
statement.setString(50, getLang());
int factionId = 0;
if (isGood())
@ -7624,9 +7649,9 @@ public final class L2PcInstance extends L2Playable
{
factionId = 2;
}
statement.setInt(50, factionId);
statement.setInt(51, factionId);
statement.setInt(51, getObjectId());
statement.setInt(52, getObjectId());
statement.execute();
}
catch (Exception e)
@ -11709,7 +11734,7 @@ public final class L2PcInstance extends L2Playable
catch (Exception e)
{
_log.log(Level.SEVERE, "deleteMe()", e);
}// returns pet to control item
} // returns pet to control item
}
if (getClan() != null)

View File

@ -21,7 +21,6 @@ package com.l2jserver.gameserver.model.actor.instance;
import com.l2jserver.Config;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.enums.InstanceType;
import com.l2jserver.gameserver.instancemanager.RaidBossPointsManager;
import com.l2jserver.gameserver.instancemanager.RaidBossSpawnManager;
import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.actor.L2Character;
@ -83,7 +82,7 @@ public class L2RaidBossInstance extends L2MonsterInstance
{
for (L2PcInstance member : player.getParty().getMembers())
{
RaidBossPointsManager.getInstance().addPoints(member, getId(), (getLevel() / 2) + Rnd.get(-5, 5));
member.setRaidPoints(member.getRaidPoints() + ((getLevel() / 2) + Rnd.get(-5, 5)));
if (member.isNoble())
{
Hero.getInstance().setRBkilled(member.getObjectId(), getId());
@ -92,7 +91,7 @@ public class L2RaidBossInstance extends L2MonsterInstance
}
else
{
RaidBossPointsManager.getInstance().addPoints(player, getId(), (getLevel() / 2) + Rnd.get(-5, 5));
player.setRaidPoints(player.getRaidPoints() + ((getLevel() / 2) + Rnd.get(-5, 5)));
if (player.isNoble())
{
Hero.getInstance().setRBkilled(player.getObjectId(), getId());

View File

@ -302,17 +302,13 @@ public final class L2TeleporterInstance extends L2Npc
switch (itemId)
{
case MultisellData.PC_BANG_POINTS:
{
return "Player Commendation Points";
}
case MultisellData.CLAN_REPUTATION:
{
return "Clan Reputation Points";
}
case MultisellData.FAME:
{
return "Fame";
}
case MultisellData.RAID_POINTS:
return "Raid Points";
}
return "Unknown item: " + itemId;
}

View File

@ -67,6 +67,7 @@ import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerPKCha
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerProfessionChange;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerPvPChanged;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerPvPKill;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerRaidPointsChanged;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerRestore;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerSelect;
import com.l2jserver.gameserver.model.events.impl.character.player.OnPlayerSkillLearn;
@ -198,6 +199,7 @@ public enum EventType
ON_PLAYER_DLG_ANSWER(OnPlayerDlgAnswer.class, void.class, TerminateReturn.class),
ON_PLAYER_EQUIP_ITEM(OnPlayerEquipItem.class, void.class),
ON_PLAYER_FAME_CHANGED(OnPlayerFameChanged.class, void.class),
ON_PLAYER_RAID_POINTS_CHANGED(OnPlayerRaidPointsChanged.class, void.class),
// Henna events
ON_PLAYER_HENNA_ADD(OnPlayerHennaAdd.class, void.class),
ON_PLAYER_HENNA_REMOVE(OnPlayerHennaRemove.class, void.class),

View File

@ -0,0 +1,62 @@
/*
* Copyright (C) 2004-2015 L2J Server
*
* This file is part of L2J Server.
*
* L2J Server 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.
*
* L2J Server 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.l2jserver.gameserver.model.events.impl.character.player;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.events.EventType;
import com.l2jserver.gameserver.model.events.impl.IBaseEvent;
/**
* @author NviX
*/
public class OnPlayerRaidPointsChanged implements IBaseEvent
{
private final L2PcInstance _activeChar;
private final int _oldRaidPoints;
private final int _newRaidPoints;
public OnPlayerRaidPointsChanged(L2PcInstance activeChar, int oldRaidPoints, int newRaidPoints)
{
_activeChar = activeChar;
_oldRaidPoints = oldRaidPoints;
_newRaidPoints = newRaidPoints;
}
public L2PcInstance getActiveChar()
{
return _activeChar;
}
public int getOldRaidPoints()
{
return _oldRaidPoints;
}
public int getNewRaidPoints()
{
return _newRaidPoints;
}
@Override
public EventType getType()
{
return EventType.ON_PLAYER_RAID_POINTS_CHANGED;
}
}