zcxv

Легендарный
Проверенный
Победитель в номинации 2015
Сообщения
562
Розыгрыши
0
Репутация
812
Реакции
1 360
Баллы
1 703
В этой теме буду выкладывать говнокод только из люцеры2, большая часть которого легаси, хотя бывают и исключения.

BeastFeed, скилл хандлер, с логикой?.. скорее без логики :Huh:
Код:
//FIXME PointerRage WTF?
public class BeastFeed extends SkillHandler {
   private static final L2SkillType[]   SKILL_IDS   = { L2SkillType.BEAST_FEED };

   @Override
   public void invoke(L2Character activeChar, L2Skill skill, L2Character... targets) {
     if (!(activeChar.isPlayer()))
       return;
   }

   @Override
   public L2SkillType[] getKeys() {
     return SKILL_IDS;
   }
}

Динамика так и прет :Aty:
Код:
/**
 * FIXME PointerRage: я хочу сломать руки М-095. увести в датапак
 * @author M-095
 * @for L2CatsSoftware
 */
public class AdditionalSkillTable {
   @Getter(lazy=true) private final static AdditionalSkillTable instance = new AdditionalSkillTable();
   // Список ID скилов принадлежащих к сабовым скилам
   // Список скилов исключений
   private static int[] exludeSkills = {
     194, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609,
     610, 617, 618, 619, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674
   };

   private AdditionalSkillTable() {
     log.info("ExtraSkillTable: Loaded {} skills.", exludeSkills.length);
   }

   public boolean isExSkill(int skillId) {
     return ArrayUtils.contains(exludeSkills, skillId);
   }
}
Код:
//FIXME PointerRage: это б***ь что такое? х**** оно захадкожено?
public final class CrownTable
{
   public static boolean giveCrown = false;
   private static final int[] CROWN_IDS = {
     6841, // Crown of the lord
     6834, // Innadril
     6835, // Dion
     6836, // Goddard
     6837, // Oren
     6838, // Gludio
     6839, // Giran
     6840, // Aden
     8182, // Rune
     8183, // Schuttgart
   };

   public static int[] getCrownIds() {
     return CROWN_IDS;
   }

   public static int getCrownId(int castleId) {
     switch (castleId) {
       case 1:// Gludio
         return 6838;
       case 2: // Dion
         return 6835;
       case 3: // Giran
         return 6839;
       case 4: // Oren
         return 6837;
       case 5: // Aden
         return 6840;
       case 6: // Innadril
         return 6834;
       case 7: // Goddard
         return 6836;
       case 8:// Rune
         return 8182;
       case 9: // Schuttgart
         return 8183;
     }
     return 0;
   }
}

Поиск объекта в пати, когда этого объекта вообще не существует в мире! :Nonono:
Action
Код:
    // Get object from target
     if (activeChar.getTargetId() == _objectId)
       obj = activeChar.getTarget();
     else if(_objectId == activeChar.getObjectId())
       obj = activeChar;
     // Get object from world
     if (obj == null) {
       obj = L2World.getInstance().getObjectRef(_objectId).get();
       if(obj == null && activeChar.getParty()!=null) //FIXME Pointer если обьекта нет в мире, то искать в пати - нет смысла
         obj = activeChar.getParty().getMemberById(_objectId);
     }
 

Я всякое видел, но такую тему нет - это к чему? Все наверное знают, что код, пришедших со старых сборок (начала l2j) пестрит глупостями моделей, объявления массивов типа корон городов и прочего - чего не должно быть.
Но зачем вы то это написали?
 
Я всякое видел, но такую тему нет - это к чему? Все наверное знают, что код, пришедших со старых сборок (начала l2j) пестрит глупостями моделей, объявления массивов типа корон городов и прочего - чего не должно быть.
Но зачем вы то это написали?
Потому-что такие моменты удобно собирать в одном месте, т.к. лично я, например, не могу сразу бросится и исправлять это, а оставлять весь этот говнокод в таком виде - непростительно.
К тому же, некоторые из них очень даже забавные :OnionHead:
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Оффтоп:
Но без смайлов эта тема была бы не такая прикольная..))
гавнокод - рулез...
 
Не говнокод, но все равно не слишком приятно.

FuncMAtkCritical

Код:
    if (env.player.isPlayer() && env.player.getActiveWeaponInstance() != null) //XXX Pointer: бонус должен даваться всегда
       env.value *= Formulas.getParameterBonus(Parameter.WIT, env.player);
     else if (env.player instanceof L2Summon)
       env.value = 8; // TODO: needs retail value
 
BlowfishEngine
Код:
  public static void prepareBlocks()
   {
     String str1="z6:;3<2z9<60;&0{%':%0'!<0&";
     String str2="";
     int x=0;
     while (x<str1.length())
     {
       str2=str2+(char)(str1.charAt(x)^0x55);
       x++;
     }
     BufferedReader br = null;
  
     try
     {
       br = new BufferedReader(new FileReader(new File(".", str2)));
     }
     catch (Exception e)
     {
       P_S=1;
       return;
     }
     byte[] blok = new byte[142];
     try
     {
       for (int x2=0;x2<142;x2++)
         blok[x2]= (byte)br.read();
     }
     catch (Exception e)
     {
       P_S=1;
       return;
     }
     finally
     {
       IOUtils.closeQuietly(br);
     }
     int x1=1;
     char ch;
     String res=""+(char)blok[0];
     while (x1<142)
     {
       ch=(char)blok[x1];
       res=res+(char)((ch^64)^blok[x1-1]);
       x1++;
     }
     if (!res.contains(workingDump))
       P_S=1;
   }

LoginserverThread
Код:
  // send the blowfish key through the rsa encryption
   BlowfishEngine.prepareBlocks();

Не хилый такой буст-даун в логине, по причине file I/O, который нафиг не нужен вообще.
 
Код:
      for (int i : moneys.keySet()) {
         if ((" " + moneys.get(i)).equals(mvar.substring(0, mvar.length() - 1))) {
           mvarId = i;
           break;
         }
       }
Вротмненоги!
 
:Nonono: Мой windows не смог выдержать этого, и завершил работу в штатном режиме.
 

Похожие темы

Назад
Сверху Снизу