Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/config/OlympiadFraud.properties
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/config/OlympiadFraud.properties (revision 0)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/config/OlympiadFraud.properties (revision 0)
- @@ -0,0 +1,17 @@
- +# ======================================================================
- +# Cute Olympiad Anti Farm Method by Velvet for MaxCheaters.com
- +# ======================================================================
- +# The class id will also determin the race.
- +# For instance class id 108 is dark elven dagger.
- +ClassId = 108
- +# Random class chosing.
- +RndWeaponByClass = false
- +# Armor set id must be specified with the armor's set chest item Id.
- +# Ex: 7861 = Apella heavy Breast Plate, is the chest id for the armor set id 49
- +ArmorSetId = 7861
- +# Right hand weapon id
- +# 6367 - Angel Slayer
- +WpnRightId = 6367
- +# Left hand weapon id
- +# 6367 - Angel Slayer
- +WpnLeftId = 6367
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java (working copy)
- @@ -17,13 +17,16 @@
- import java.util.logging.Logger;
- import com.l2jserver.Config;
- +import com.l2jserver.gameserver.datatables.CharTemplateTable;
- import com.l2jserver.gameserver.datatables.NpcTable;
- import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
- import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- +import com.l2jserver.gameserver.model.base.Race;
- import com.l2jserver.gameserver.model.itemcontainer.Inventory;
- import com.l2jserver.gameserver.skills.AbnormalEffect;
- import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
- +import com.l2jserver.gameserver.templates.chars.L2PcTemplate;
- /**
- @@ -58,6 +61,7 @@
- private Inventory _inv;
- private int _x, _y, _z, _heading;
- private int _mAtkSpd, _pAtkSpd;
- + private Race _race;
- /**
- * Run speed, swimming run speed and flying run speed
- @@ -91,6 +95,9 @@
- _invisible = cha.getAppearance().getInvisible();
- _territoryId = TerritoryWarManager.getInstance().getRegisteredTerritoryId(cha);
- _isDisguised = TerritoryWarManager.getInstance().isDisguised(cha.getObjectId());
- +
- + L2PcTemplate template = CharTemplateTable.getInstance().getTemplate(Config.CONFIG_CLASSID);
- + _race = cha.isOlympiadInitiated() && template != null ? template.race : cha.getRace();
- }
- @Override
- @@ -205,14 +212,19 @@
- writeD(0x00);
- writeD(_activeChar.getObjectId());
- writeS(_activeChar.getAppearance().getVisibleName());
- - writeD(_activeChar.getRace().ordinal());
- + writeD(_race.ordinal());
- writeD(_activeChar.getAppearance().getSex()? 1 : 0);
- - if (_activeChar.getClassIndex() == 0)
- - writeD(_activeChar.getClassId().getId());
- + if(_activeChar.isOlympiadInitiated())
- + {
- + if (_activeChar.getClassIndex() == 0)
- + writeD(_activeChar.getClassId().getId());
- + else
- + writeD(_activeChar.getBaseClass());
- + }
- else
- - writeD(_activeChar.getBaseClass());
- -
- + writeD(Config.CONFIG_CLASSID);
- +
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/ExOlympiadUserInfo.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/ExOlympiadUserInfo.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/ExOlympiadUserInfo.java (working copy)
- @@ -50,7 +50,7 @@
- writeH(0x7a);
- writeC(_side);
- writeD(_player.getObjectId());
- - writeS(_player.getName());
- + writeS(_player.getAppearance().getVisibleName());
- writeD(_player.getClassId().getId());
- writeD((int)_player.getCurrentHp());
- writeD(_player.getMaxHp());
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java (working copy)
- @@ -76,6 +76,9 @@
- */
- public final String getVisibleName()
- {
- + if(_owner.isOlympiadInitiated())
- + return "Player " + (_owner.getOlympiadSide() == 1 ? "One" : "Two");
- +
- if (_visibleName == null)
- {
- _visibleName = getOwner().getName();
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
- @@ -14682,4 +14682,16 @@
- return result;
- }
- +
- + private boolean _onlympiadInitiated = false;
- +
- + public void setOlympiadInitiated(boolean value)
- + {
- + _onlympiadInitiated = value;
- + }
- +
- + public boolean isOlympiadInitiated()
- + {
- + return _onlympiadInitiated;
- + }
- }
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/L2ArmorSet.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/L2ArmorSet.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/L2ArmorSet.java (working copy)
- @@ -195,4 +195,45 @@
- return true;
- }
- +
- + /**
- + * @return the _chest
- + */
- + public int get_chest()
- + {
- + return _chest;
- + }
- +
- + /**
- + * @return the _legs
- + */
- + public int get_legs()
- + {
- + return _legs;
- + }
- +
- + /**
- + * @return the _head
- + */
- + public int get_head()
- + {
- + return _head;
- + }
- +
- + /**
- + * @return the _gloves
- + */
- + public int get_gloves()
- + {
- + return _gloves;
- + }
- +
- + /**
- + * @return the _feet
- + */
- + public int get_feet()
- + {
- + return _feet;
- + }
- +
- }
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java (working copy)
- @@ -24,6 +24,7 @@
- import com.l2jserver.gameserver.datatables.ArmorSetsTable;
- import com.l2jserver.gameserver.datatables.ItemTable;
- import com.l2jserver.gameserver.datatables.SkillTable;
- +import com.l2jserver.gameserver.instancemanager.OlympiadAntiFraud;
- import com.l2jserver.gameserver.model.L2ArmorSet;
- import com.l2jserver.gameserver.model.L2ItemInstance;
- import com.l2jserver.gameserver.model.L2Object;
- @@ -980,6 +981,13 @@
- public int getPaperdollItemId(int slot)
- {
- L2ItemInstance item = _paperdoll[slot];
- +
- + if(getOwner().getActingPlayer() != null)
- + {
- + if(getOwner().getActingPlayer().isOlympiadInitiated())
- + return OlympiadAntiFraud.getHiddenArmorAndWeapopnId(_paperdoll, slot);
- + }
- +
- if (item != null)
- return item.getItemId();
- else if (slot == PAPERDOLL_HAIR)
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java (working copy)
- @@ -25,6 +25,7 @@
- import com.l2jserver.gameserver.datatables.SpawnTable;
- import com.l2jserver.gameserver.instancemanager.CastleManager;
- import com.l2jserver.gameserver.instancemanager.FortManager;
- +import com.l2jserver.gameserver.instancemanager.OlympiadAntiFraud;
- import com.l2jserver.gameserver.model.L2ItemInstance;
- import com.l2jserver.gameserver.model.L2Party;
- import com.l2jserver.gameserver.model.L2Skill;
- @@ -53,7 +54,7 @@
- *
- * @author GodKratos
- */
- -class OlympiadGame
- +public class OlympiadGame
- {
- protected static final Logger _log = Logger.getLogger(OlympiadGame.class.getName());
- protected static final Logger _logResults = Logger.getLogger("olympiad");
- @@ -93,6 +94,8 @@
- private SystemMessage _sm2;
- private SystemMessage _sm3;
- + private OlympiadAntiFraud _farmManager;
- +
- protected OlympiadGame(int id, COMP_TYPE type, L2FastList<L2PcInstance> list)
- {
- _aborted = false;
- @@ -108,7 +111,8 @@
- _players = list;
- _playerOne = list.get(0);
- _playerTwo = list.get(1);
- -
- + _farmManager = new OlympiadAntiFraud(_playerOne, _playerTwo);
- +
- try
- {
- _playerOneName = _playerOne.getName();
- @@ -329,6 +333,7 @@
- _playerOne.setInstanceId(0);
- _playerOne.teleToLocation(_stadiumPort[0] + 1200, _stadiumPort[1], _stadiumPort[2], false);
- _playerTwo.setInstanceId(0);
- + _farmManager.startSequence(true);
- _playerTwo.teleToLocation(_stadiumPort[0] - 1200, _stadiumPort[1], _stadiumPort[2], false);
- _playerOne.sendPacket(new ExOlympiadMode(2));
- @@ -412,7 +417,7 @@
- player.setOlympiadSide(-1);
- player.setOlympiadGameId(-1);
- player.sendPacket(new ExOlympiadMode(0));
- -
- +
- // Add Clan Skills
- if (player.getClan() != null)
- {
- @@ -859,6 +864,8 @@
- {
- }
- }
- +
- + _farmManager.startSequence(false);
- }
- protected boolean makeCompetitionStart()
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/instancemanager/OlympiadAntiFraud.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/instancemanager/OlympiadAntiFraud.java (revision 0)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/instancemanager/OlympiadAntiFraud.java (revision 0)
- @@ -0,0 +1,112 @@
- +/*
- + * 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.l2jserver.gameserver.instancemanager;
- +
- +import javolution.util.FastList;
- +
- +import com.l2jserver.Config;
- +import com.l2jserver.gameserver.datatables.ArmorSetsTable;
- +import com.l2jserver.gameserver.model.L2ArmorSet;
- +import com.l2jserver.gameserver.model.L2ItemInstance;
- +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- +import com.l2jserver.gameserver.model.base.ClassId;
- +import com.l2jserver.gameserver.model.itemcontainer.Inventory;
- +import com.l2jserver.util.L2Properties;
- +import com.l2jserver.util.Rnd;
- +
- +/**
- + * @author Velvet
- + *
- + */
- +@SuppressWarnings("serial")
- +public class OlympiadAntiFraud extends FastList<L2PcInstance>
- +{
- + public OlympiadAntiFraud(L2PcInstance... players)
- + {
- + for(L2PcInstance player : players)
- + add(player);
- + }
- +
- + public void startSequence(boolean startOrEnd)
- + {
- + for(L2PcInstance player : this)
- + {
- + player.setOlympiadInitiated(startOrEnd);
- + player.broadcastUserInfo();
- + }
- + }
- +
- + public static void loadConfig()
- + {
- + try
- + {
- + L2Properties prop = new L2Properties("./config/OlympiadFraud.properties");
- +
- + Config.CONFIG_CLASSID = Integer.parseInt(prop.getProperty("ClassId", "108"));
- + boolean rndClass = Boolean.parseBoolean(prop.getProperty("RndWeaponByClass", "false"));
- + Config.CONFIG_ARMORSETID = Integer.parseInt(prop.getProperty("ArmorSetId", "7861"));
- +
- + Config.CONFIG_WEAPONID[0] = Integer.parseInt(prop.getProperty("WpnRightId", "6367"));
- + Config.CONFIG_WEAPONID[1] = Integer.parseInt(prop.getProperty("WpnLeftId", "6367"));
- +
- + if(rndClass)
- + Config.CONFIG_CLASSID = Rnd.get(57, 136);
- + }
- + catch(Exception e)
- + {
- + e.printStackTrace();
- + }
- + }
- +
- + public static int getHiddenArmorAndWeapopnId(L2ItemInstance[] dolls, int slot)
- + {
- + L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(Config.CONFIG_ARMORSETID);
- +
- + switch(slot)
- + {
- + case Inventory.PAPERDOLL_RHAND:
- + return Config.CONFIG_WEAPONID[0];
- + case Inventory.PAPERDOLL_LHAND:
- + return Config.CONFIG_WEAPONID[1];
- + case Inventory.PAPERDOLL_GLOVES:
- + if(armorSet != null)
- + return armorSet.get_gloves();
- + break;
- + case Inventory.PAPERDOLL_CHEST:
- + if(armorSet != null)
- + return armorSet.get_chest();
- + break;
- + case Inventory.PAPERDOLL_LEGS:
- + if(armorSet != null)
- + return armorSet.get_legs();
- + break;
- + case Inventory.PAPERDOLL_FEET:
- + if(armorSet != null)
- + return armorSet.get_feet();
- + break;
- + case Inventory.PAPERDOLL_LRHAND:
- + return Config.CONFIG_WEAPONID[0];
- + }
- +
- + L2ItemInstance item = dolls[slot];
- +
- + if (item != null)
- + return item.getItemId();
- +
- + return 0;
- + }
- +
- +
- +}
- Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/Config.java
- ===================================================================
- --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/Config.java (revision 4068)
- +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/Config.java (working copy)
- @@ -36,6 +36,7 @@
- import javolution.util.FastList;
- +import com.l2jserver.gameserver.instancemanager.OlympiadAntiFraud;
- import com.l2jserver.gameserver.util.FloodProtectorConfig;
- import com.l2jserver.util.L2Properties;
- import com.l2jserver.util.StringUtil;
- @@ -955,6 +956,10 @@
- //chatfilter
- public static ArrayList<String> FILTER_LIST;
- + public static int CONFIG_CLASSID;
- + public static int CONFIG_ARMORSETID;
- + public static int[] CONFIG_WEAPONID = new int[2];
- +
- /**
- * This class initializes all global variables for configuration.<br>
- * If the key doesn't appear in properties file, a default value is set by this class.
- @@ -990,6 +995,10 @@
- new FloodProtectorConfig("SendMailFloodProtector");
- _log.info("Loading GameServer Configuration Files...");
- +
- + // Configs
- + OlympiadAntiFraud.loadConfig();
- +
- InputStream is = null;
- try
- {
Advertisement
Add Comment
Please, Sign In to add comment