Guest User

Oly sec

a guest
Apr 13th, 2010
657
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.58 KB | None | 0 0
  1. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/config/OlympiadFraud.properties
  2. ===================================================================
  3. --- E:/L2j Development/workspace/L2_GameServer-clean/java/config/OlympiadFraud.properties   (revision 0)
  4. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/config/OlympiadFraud.properties   (revision 0)
  5. @@ -0,0 +1,17 @@
  6. +# ======================================================================
  7. +# Cute Olympiad Anti Farm Method by Velvet for MaxCheaters.com
  8. +# ======================================================================
  9. +# The class id will also determin the race.
  10. +# For instance class id 108 is dark elven dagger.
  11. +ClassId = 108
  12. +# Random class chosing.
  13. +RndWeaponByClass = false
  14. +# Armor set id must be specified with the armor's set chest item Id.
  15. +# Ex: 7861 = Apella heavy Breast Plate, is the chest id for the armor set id 49
  16. +ArmorSetId = 7861
  17. +# Right hand weapon id
  18. +# 6367 - Angel Slayer
  19. +WpnRightId = 6367
  20. +# Left hand weapon id
  21. +# 6367 - Angel Slayer
  22. +WpnLeftId = 6367
  23. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java
  24. ===================================================================
  25. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java  (revision 4068)
  26. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java  (working copy)
  27. @@ -17,13 +17,16 @@
  28. import java.util.logging.Logger;
  29.  
  30. import com.l2jserver.Config;
  31. +import com.l2jserver.gameserver.datatables.CharTemplateTable;
  32. import com.l2jserver.gameserver.datatables.NpcTable;
  33. import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
  34. import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
  35. import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  36. +import com.l2jserver.gameserver.model.base.Race;
  37. import com.l2jserver.gameserver.model.itemcontainer.Inventory;
  38. import com.l2jserver.gameserver.skills.AbnormalEffect;
  39. import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
  40. +import com.l2jserver.gameserver.templates.chars.L2PcTemplate;
  41.  
  42.  
  43. /**
  44. @@ -58,6 +61,7 @@
  45.     private Inventory _inv;
  46.     private int _x, _y, _z, _heading;
  47.     private int _mAtkSpd, _pAtkSpd;
  48. +   private Race _race;
  49.    
  50.     /**
  51.      * Run speed, swimming run speed and flying run speed
  52. @@ -91,6 +95,9 @@
  53.         _invisible = cha.getAppearance().getInvisible();
  54.         _territoryId = TerritoryWarManager.getInstance().getRegisteredTerritoryId(cha);
  55.         _isDisguised = TerritoryWarManager.getInstance().isDisguised(cha.getObjectId());
  56. +      
  57. +       L2PcTemplate template = CharTemplateTable.getInstance().getTemplate(Config.CONFIG_CLASSID);
  58. +       _race = cha.isOlympiadInitiated() && template != null ? template.race : cha.getRace();
  59.     }
  60.  
  61.     @Override
  62. @@ -205,14 +212,19 @@
  63.             writeD(0x00);
  64.             writeD(_activeChar.getObjectId());
  65.             writeS(_activeChar.getAppearance().getVisibleName());
  66. -           writeD(_activeChar.getRace().ordinal());
  67. +           writeD(_race.ordinal());
  68.             writeD(_activeChar.getAppearance().getSex()? 1 : 0);
  69.  
  70. -           if (_activeChar.getClassIndex() == 0)
  71. -               writeD(_activeChar.getClassId().getId());
  72. +           if(_activeChar.isOlympiadInitiated())
  73. +           {
  74. +               if (_activeChar.getClassIndex() == 0)
  75. +                   writeD(_activeChar.getClassId().getId());
  76. +               else
  77. +                   writeD(_activeChar.getBaseClass());
  78. +           }
  79.             else
  80. -               writeD(_activeChar.getBaseClass());
  81. -
  82. +               writeD(Config.CONFIG_CLASSID);
  83. +          
  84.             writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_UNDER));
  85.             writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
  86.             writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
  87. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/ExOlympiadUserInfo.java
  88. ===================================================================
  89. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/ExOlympiadUserInfo.java    (revision 4068)
  90. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/network/serverpackets/ExOlympiadUserInfo.java    (working copy)
  91. @@ -50,7 +50,7 @@
  92.         writeH(0x7a);
  93.         writeC(_side);
  94.         writeD(_player.getObjectId());
  95. -       writeS(_player.getName());
  96. +       writeS(_player.getAppearance().getVisibleName());
  97.         writeD(_player.getClassId().getId());
  98.         writeD((int)_player.getCurrentHp());
  99.         writeD(_player.getMaxHp());
  100. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java
  101. ===================================================================
  102. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java (revision 4068)
  103. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/appearance/PcAppearance.java (working copy)
  104. @@ -76,6 +76,9 @@
  105.      */
  106.     public final String getVisibleName()
  107.     {
  108. +       if(_owner.isOlympiadInitiated())
  109. +           return "Player " + (_owner.getOlympiadSide() == 1 ? "One" : "Two");
  110. +          
  111.         if (_visibleName == null)
  112.         {
  113.             _visibleName = getOwner().getName();
  114. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  115. ===================================================================
  116. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java   (revision 4068)
  117. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java   (working copy)
  118. @@ -14682,4 +14682,16 @@
  119.  
  120.         return result;
  121.     }
  122. +  
  123. +   private boolean _onlympiadInitiated = false;
  124. +  
  125. +   public void setOlympiadInitiated(boolean value)
  126. +   {
  127. +       _onlympiadInitiated = value;
  128. +   }
  129. +  
  130. +   public boolean isOlympiadInitiated()
  131. +   {
  132. +       return _onlympiadInitiated;
  133. +   }
  134. }
  135. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/L2ArmorSet.java
  136. ===================================================================
  137. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/L2ArmorSet.java    (revision 4068)
  138. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/L2ArmorSet.java    (working copy)
  139. @@ -195,4 +195,45 @@
  140.  
  141.         return true;
  142.     }
  143. +  
  144. +   /**
  145. +    * @return the _chest
  146. +    */
  147. +   public int get_chest()
  148. +   {
  149. +       return _chest;
  150. +   }
  151. +
  152. +   /**
  153. +    * @return the _legs
  154. +    */
  155. +   public int get_legs()
  156. +   {
  157. +       return _legs;
  158. +   }
  159. +
  160. +   /**
  161. +    * @return the _head
  162. +    */
  163. +   public int get_head()
  164. +   {
  165. +       return _head;
  166. +   }
  167. +
  168. +   /**
  169. +    * @return the _gloves
  170. +    */
  171. +   public int get_gloves()
  172. +   {
  173. +       return _gloves;
  174. +   }
  175. +
  176. +   /**
  177. +    * @return the _feet
  178. +    */
  179. +   public int get_feet()
  180. +   {
  181. +       return _feet;
  182. +   }
  183. +
  184. }
  185. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java
  186. ===================================================================
  187. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java   (revision 4068)
  188. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java   (working copy)
  189. @@ -24,6 +24,7 @@
  190. import com.l2jserver.gameserver.datatables.ArmorSetsTable;
  191. import com.l2jserver.gameserver.datatables.ItemTable;
  192. import com.l2jserver.gameserver.datatables.SkillTable;
  193. +import com.l2jserver.gameserver.instancemanager.OlympiadAntiFraud;
  194. import com.l2jserver.gameserver.model.L2ArmorSet;
  195. import com.l2jserver.gameserver.model.L2ItemInstance;
  196. import com.l2jserver.gameserver.model.L2Object;
  197. @@ -980,6 +981,13 @@
  198.     public int getPaperdollItemId(int slot)
  199.     {
  200.         L2ItemInstance item = _paperdoll[slot];
  201. +
  202. +       if(getOwner().getActingPlayer() != null)
  203. +       {
  204. +           if(getOwner().getActingPlayer().isOlympiadInitiated())
  205. +               return OlympiadAntiFraud.getHiddenArmorAndWeapopnId(_paperdoll, slot);
  206. +       }
  207. +
  208.         if (item != null)
  209.             return item.getItemId();
  210.         else if (slot == PAPERDOLL_HAIR)
  211. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java
  212. ===================================================================
  213. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java (revision 4068)
  214. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/model/olympiad/OlympiadGame.java (working copy)
  215. @@ -25,6 +25,7 @@
  216. import com.l2jserver.gameserver.datatables.SpawnTable;
  217. import com.l2jserver.gameserver.instancemanager.CastleManager;
  218. import com.l2jserver.gameserver.instancemanager.FortManager;
  219. +import com.l2jserver.gameserver.instancemanager.OlympiadAntiFraud;
  220. import com.l2jserver.gameserver.model.L2ItemInstance;
  221. import com.l2jserver.gameserver.model.L2Party;
  222. import com.l2jserver.gameserver.model.L2Skill;
  223. @@ -53,7 +54,7 @@
  224.  *
  225.  * @author GodKratos
  226.  */
  227. -class OlympiadGame
  228. +public class OlympiadGame
  229. {
  230.     protected static final Logger _log = Logger.getLogger(OlympiadGame.class.getName());
  231.     protected static final Logger _logResults = Logger.getLogger("olympiad");
  232. @@ -93,6 +94,8 @@
  233.     private SystemMessage _sm2;
  234.     private SystemMessage _sm3;
  235.    
  236. +   private OlympiadAntiFraud _farmManager;
  237. +  
  238.     protected OlympiadGame(int id, COMP_TYPE type, L2FastList<L2PcInstance> list)
  239.     {
  240.         _aborted = false;
  241. @@ -108,7 +111,8 @@
  242.             _players = list;
  243.             _playerOne = list.get(0);
  244.             _playerTwo = list.get(1);
  245. -          
  246. +           _farmManager = new OlympiadAntiFraud(_playerOne, _playerTwo);
  247. +
  248.             try
  249.             {
  250.                 _playerOneName = _playerOne.getName();
  251. @@ -329,6 +333,7 @@
  252.             _playerOne.setInstanceId(0);
  253.             _playerOne.teleToLocation(_stadiumPort[0] + 1200, _stadiumPort[1], _stadiumPort[2], false);
  254.             _playerTwo.setInstanceId(0);
  255. +           _farmManager.startSequence(true);
  256.             _playerTwo.teleToLocation(_stadiumPort[0] - 1200, _stadiumPort[1], _stadiumPort[2], false);
  257.            
  258.             _playerOne.sendPacket(new ExOlympiadMode(2));
  259. @@ -412,7 +417,7 @@
  260.                 player.setOlympiadSide(-1);
  261.                 player.setOlympiadGameId(-1);
  262.                 player.sendPacket(new ExOlympiadMode(0));
  263. -              
  264. +
  265.                 // Add Clan Skills
  266.                 if (player.getClan() != null)
  267.                 {
  268. @@ -859,6 +864,8 @@
  269.             {
  270.             }
  271.         }
  272. +      
  273. +       _farmManager.startSequence(false);
  274.     }
  275.    
  276.     protected boolean makeCompetitionStart()
  277. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/instancemanager/OlympiadAntiFraud.java
  278. ===================================================================
  279. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/instancemanager/OlympiadAntiFraud.java   (revision 0)
  280. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/gameserver/instancemanager/OlympiadAntiFraud.java   (revision 0)
  281. @@ -0,0 +1,112 @@
  282. +/*
  283. + * This program is free software: you can redistribute it and/or modify it under
  284. + * the terms of the GNU General Public License as published by the Free Software
  285. + * Foundation, either version 3 of the License, or (at your option) any later
  286. + * version.
  287. + *
  288. + * This program is distributed in the hope that it will be useful, but WITHOUT
  289. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  290. + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  291. + * details.
  292. + *
  293. + * You should have received a copy of the GNU General Public License along with
  294. + * this program. If not, see <http://www.gnu.org/licenses/>.
  295. + */
  296. +package com.l2jserver.gameserver.instancemanager;
  297. +
  298. +import javolution.util.FastList;
  299. +
  300. +import com.l2jserver.Config;
  301. +import com.l2jserver.gameserver.datatables.ArmorSetsTable;
  302. +import com.l2jserver.gameserver.model.L2ArmorSet;
  303. +import com.l2jserver.gameserver.model.L2ItemInstance;
  304. +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  305. +import com.l2jserver.gameserver.model.base.ClassId;
  306. +import com.l2jserver.gameserver.model.itemcontainer.Inventory;
  307. +import com.l2jserver.util.L2Properties;
  308. +import com.l2jserver.util.Rnd;
  309. +
  310. +/**
  311. + * @author Velvet
  312. + *
  313. + */
  314. +@SuppressWarnings("serial")
  315. +public class OlympiadAntiFraud extends FastList<L2PcInstance>
  316. +{
  317. +   public OlympiadAntiFraud(L2PcInstance... players)
  318. +   {
  319. +       for(L2PcInstance player : players)
  320. +           add(player);
  321. +   }
  322. +  
  323. +   public void startSequence(boolean startOrEnd)
  324. +   {
  325. +       for(L2PcInstance player : this)
  326. +       {
  327. +           player.setOlympiadInitiated(startOrEnd);
  328. +           player.broadcastUserInfo();
  329. +       }
  330. +   }
  331. +  
  332. +   public static void loadConfig()
  333. +   {
  334. +       try
  335. +       {
  336. +           L2Properties prop = new L2Properties("./config/OlympiadFraud.properties");
  337. +
  338. +           Config.CONFIG_CLASSID = Integer.parseInt(prop.getProperty("ClassId", "108"));
  339. +           boolean rndClass = Boolean.parseBoolean(prop.getProperty("RndWeaponByClass", "false"));
  340. +           Config.CONFIG_ARMORSETID = Integer.parseInt(prop.getProperty("ArmorSetId", "7861"));
  341. +          
  342. +           Config.CONFIG_WEAPONID[0] = Integer.parseInt(prop.getProperty("WpnRightId", "6367"));
  343. +           Config.CONFIG_WEAPONID[1] = Integer.parseInt(prop.getProperty("WpnLeftId", "6367"));
  344. +          
  345. +           if(rndClass)
  346. +               Config.CONFIG_CLASSID = Rnd.get(57, 136);
  347. +       }
  348. +       catch(Exception e)
  349. +       {
  350. +           e.printStackTrace();
  351. +       }
  352. +   }
  353. +  
  354. +   public static int getHiddenArmorAndWeapopnId(L2ItemInstance[] dolls, int slot)
  355. +   {
  356. +       L2ArmorSet armorSet = ArmorSetsTable.getInstance().getSet(Config.CONFIG_ARMORSETID);
  357. +
  358. +       switch(slot)
  359. +       {
  360. +           case Inventory.PAPERDOLL_RHAND:
  361. +               return Config.CONFIG_WEAPONID[0];
  362. +           case Inventory.PAPERDOLL_LHAND:
  363. +               return Config.CONFIG_WEAPONID[1];
  364. +           case Inventory.PAPERDOLL_GLOVES:
  365. +               if(armorSet != null)
  366. +                   return armorSet.get_gloves();
  367. +               break;
  368. +           case Inventory.PAPERDOLL_CHEST:
  369. +               if(armorSet != null)
  370. +                   return armorSet.get_chest();
  371. +               break;
  372. +           case Inventory.PAPERDOLL_LEGS:
  373. +               if(armorSet != null)
  374. +                   return armorSet.get_legs();
  375. +               break;
  376. +           case Inventory.PAPERDOLL_FEET:
  377. +               if(armorSet != null)
  378. +                   return armorSet.get_feet();
  379. +               break;
  380. +           case Inventory.PAPERDOLL_LRHAND:
  381. +               return Config.CONFIG_WEAPONID[0];
  382. +       }
  383. +
  384. +       L2ItemInstance item = dolls[slot];
  385. +
  386. +       if (item != null)
  387. +           return item.getItemId();
  388. +      
  389. +       return 0;
  390. +   }
  391. +  
  392. +
  393. +}
  394. Index: E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/Config.java
  395. ===================================================================
  396. --- E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/Config.java (revision 4068)
  397. +++ E:/L2j Development/workspace/L2_GameServer-clean/java/com/l2jserver/Config.java (working copy)
  398. @@ -36,6 +36,7 @@
  399.  
  400. import javolution.util.FastList;
  401.  
  402. +import com.l2jserver.gameserver.instancemanager.OlympiadAntiFraud;
  403. import com.l2jserver.gameserver.util.FloodProtectorConfig;
  404. import com.l2jserver.util.L2Properties;
  405. import com.l2jserver.util.StringUtil;
  406. @@ -955,6 +956,10 @@
  407.     //chatfilter
  408.     public static ArrayList<String> FILTER_LIST;
  409.  
  410. +   public static int CONFIG_CLASSID;
  411. +   public static int CONFIG_ARMORSETID;
  412. +   public static int[] CONFIG_WEAPONID = new int[2];
  413. +  
  414.     /**
  415.      * This class initializes all global variables for configuration.<br>
  416.      * If the key doesn't appear in properties file, a default value is set by this class.
  417. @@ -990,6 +995,10 @@
  418.                 new FloodProtectorConfig("SendMailFloodProtector");
  419.            
  420.             _log.info("Loading GameServer Configuration Files...");
  421. +          
  422. +           // Configs
  423. +           OlympiadAntiFraud.loadConfig();
  424. +          
  425.             InputStream is = null;
  426.             try
  427.             {
Advertisement
Add Comment
Please, Sign In to add comment