Сообщений: 310
Тем: 10
Зарегистрирован: Aug 2013
Сообщений: 115
Тем: 4
Зарегистрирован: Jan 2014
Сообщений: 896
Тем: 17
Зарегистрирован: Apr 2012
Репутация:
13,862
02-09-2014, 11:41 PM
(Сообщение последний раз редактировалось: 02-09-2014, 11:42 PM Quarrel.)
Добавлено через 1 минуту
Сообщений: 1,348
Тем: 100
Зарегистрирован: Dec 2011
Репутация:
13,805
Сообщений: 577
Тем: 41
Зарегистрирован: Nov 2012
Репутация:
1,886
Auri Написал: Если этот текст в ответ моему, то вы не поняли суть
Они с одного и того же сайта
Сообщений: 1,348
Тем: 100
Зарегистрирован: Dec 2011
Репутация:
13,805
Неее это просто поржать
надо прочесть все там что бы понять смысл)
Сообщений: 115
Тем: 4
Зарегистрирован: Jan 2014
для вообще слепых "накрутка"
Сообщений: 4,694
Тем: 85
Зарегистрирован: Mar 2009
Репутация:
23,364
Fortuna - non penis, in manus non recipe.
Сообщений: 896
Тем: 17
Зарегистрирован: Apr 2012
Репутация:
13,862
Сообщений: 2,455
Тем: 53
Зарегистрирован: Apr 2010
Репутация:
19,728
Мораль: проводите почаще ревизии кода
Цитата:[13:43:08] Pointer*Rage: прогнал эмуль через статик анализатор
[13:43:12] shegan_j: со стыдом вспоминаю времена, когда убеждал себя, мол это ненужная хуета
[13:43:13] shegan_j: блять
[13:43:14] Pointer*Rage: это пиздец
[13:43:17] shegan_j: и неужели он не сломался?
[13:43:23] shegan_j: не выжрал нахуй всю память и своп?
[13:43:29] shegan_j: там один L2Player
[13:43:29] Pointer*Rage: ну первый раз он у меня упал, сказал, что хип закончился
[13:43:44] Pointer*Rage: увеличил хип, поставил ограничение на сканинг
[13:47:12] shegan_j: а потом ДЖАВА МЕДЛЕННАЯ
[13:47:14] shegan_j: ДЖАВА УМИРАЕТ
[13:48:10] Pointer*Rage: мвахах)
[13:48:22] Pointer*Rage: ты еще не видел старых серверов л2)
[13:48:25] Pointer*Rage: это еще круче)
[13:48:33] shegan_j: ещё круче?
[13:48:36] shegan_j: куда блять уже круче
[13:51:04] Pointer*Rage: охуеть
[13:51:09] Pointer*Rage: как это говно вообще работает
[13:51:13] Pointer*Rage: AuctionManager.getInstance().getAuctions().remove(this);
[13:51:26] Pointer*Rage: getAuctions - возвращает List<Auction>
[13:51:49] Pointer*Rage: this - AuctionData (наследуется от обьекта, а не от аукциона)
[13:51:53] Pointer*Rage: я в ахуе
[13:51:54] Pointer*Rage:
[13:52:16] shegan_j: Дзен у того
[13:52:18] shegan_j: Кто это писал
[13:52:32] shegan_j: кстати
[13:52:33] shegan_j: в джаве
[13:52:39] shegan_j: можно создавать поля
[13:52:41] shegan_j: с именем
[13:52:43] shegan_j: $_
[13:52:49] shegan_j: так что жди коммитов
[13:52:59] Pointer*Rage: не-не-не
[13:53:13] Pointer*Rage: иди нахрен со своим перлом или что там
[13:53:19] shegan_j: ну а что
[13:53:27] shegan_j: Будет и под ЖВМ работать
[13:53:28] shegan_j: и под
[13:53:31] shegan_j: Perl start.pl
[13:53:35] shegan_j: : D
[13:53:39] Pointer*Rage: D:
[13:53:46] shegan_j: шучу -.-
[13:53:51] Pointer*Rage: if(!_waitingList.contains(player))
[13:53:53] Pointer*Rage: блять
[13:53:58] Pointer*Rage: одно охуеннее другово)
[13:54:04] Pointer*Rage: лист - Long
[13:54:09] Pointer*Rage: player - L2Player
[13:54:24] shegan_j: а че там нет метода toLong() ??)))))))))))))))))))))))))))))))))))))))))))))))))))))
[13:54:30] shegan_j: пиздец
[13:54:33] shegan_j: а как оно работает?
[13:54:37] Pointer*Rage: я хуй знает
[13:54:41] Pointer*Rage: скорее всего не работает
[13:55:37] Pointer*Rage: блять
[13:55:40] Pointer*Rage: тут таких косяков
[13:55:42] Pointer*Rage: дохуища
[13:55:57] Pointer*Rage: хря я через анализатор прогнал
[13:56:03] Pointer*Rage: это снизило мой боевой дух
[13:56:53] Pointer*Rage: в почте вообще утечка коннектов
[13:57:20] Pointer*Rage: if(player.isOnline() && player != null)
[13:57:25] Pointer*Rage: вот какой мудак это писал?
[13:57:38] shegan_j: А ЧЕ НУЛЛ НЕ ЧЕЛОВЕК
[13:57:41] shegan_j: ОН НЕ МОЖЕТ БЫТЬ ОНЛАЙН
[13:57:44] shegan_j: ТЫ НЕ ТОЛЕРАНТЕН
[13:57:48] shegan_j: ???
[13:57:52] Pointer*Rage: это просто пиздец
[13:58:00] shegan_j: мда уж
[13:58:07] shegan_j: идейка такое подсвечивает
[13:58:17] Pointer*Rage: ну у меня тоже подсвечивает
[13:58:22] shegan_j: у неё панелька подсвечивалок охуевает
[13:58:26] shegan_j: такая гирлянда блять
[13:58:27] Pointer*Rage: просто я только сейчас включил такой уровень инспекции
[14:07:11] Pointer*Rage: нихуя себе
[14:07:15] Pointer*Rage: нашел еще круче код
[14:07:29] Pointer*Rage: final L2Player activeChar = client.getActiveChar();
[14:07:42] Pointer*Rage: дальше около 300 строк кода, где юзается этот обьект
[14:07:56] Pointer*Rage: ближе к концу:
if(activeChar != null)
activeChar.setEnterWorldTime(); // запишем время когда чар уже полностью зашел в игру
[14:08:23] Pointer*Rage: при том, что в начале, после гета:
if(activeChar == null)
{
client.closeNow(false);
return;
}
[14:08:39] Pointer*Rage: вот у меня вопрос. они реально думали, что оно будет работать?
[14:08:56] shegan_j: эм
[14:09:07] shegan_j: ну, чисто по коду
[14:09:10] shegan_j: а почему не будет?
[14:09:14] Pointer*Rage: блять
[14:09:17] Pointer*Rage: это деадкод
[14:09:23] Pointer*Rage: if всегда true
[14:09:50] shegan_j: ну мало ли, может выкосили кусок перед этим
[14:10:07] shegan_j: хотя нахуя было заnullять activeChar в прошлом -- не понятно
[14:10:17] Pointer*Rage: он не зануляется
[14:10:25] shegan_j: ну и пиздец же
[14:10:31] shegan_j: НА ВСЯКИЙ СЛУЧАЙ
[14:10:32] shegan_j: сука
[14:10:36] shegan_j: самая ебейшая фраза
[14:10:38] Pointer*Rage: мвахах)
[14:10:41] shegan_j: в этом мире
[14:10:44] Pointer*Rage: еще кое-что из перлов
[14:10:47] Pointer*Rage: clan.getNotice() != ""
[14:11:01] Pointer*Rage: чуваки не знали, что строки у нас не примитивы
[14:11:24 | Изменены 14:11:30] shegan_j: Так там может в ЖВМ у String своя реализация hashCode и equals
[14:11:36] shegan_j: ну, посаны пропатчили)))))))))))))))))))))
[14:11:41] shegan_j: и у Clan Тоже
[14:11:44] shegan_j: ой
[14:11:47 | Изменены 14:11:57] Pointer*Rage: ога. свою жвм написали
[14:11:47] shegan_j: у getNotice
[14:11:51] shegan_j: а че
[14:11:55] shegan_j: НА ВСЯКИЙ СЛУЧАЙ
[14:12:01] Pointer*Rage: мвахах)
[14:12:02] shegan_j: лол)
[14:12:06] shegan_j: настроение +9000
[14:12:09] shegan_j: кидай ещё)
[14:13:21] Pointer*Rage: // Ущем этого Угрока в таблУце рейтУнга
HashMap<Integer, Integer> pointsTable = _points.get(ownerId);
// не нашлУ? добавляем
if(pointsTable == null)
{
pointsTable = new HashMap<>();
_points.put(ownerId, pointsTable);
}
своя реализация мультимапов
[14:13:32 | Изменены 14:13:40] Pointer*Rage: только не понятно почему через карту, а не лист)
[14:14:01] Pointer*Rage: и главное!
[14:14:07] Pointer*Rage: везде ownerId
[14:14:11] Pointer*Rage: круто ч0
[14:15:23] Pointer*Rage: знаешь, что меня еще радует?
[14:15:57] Pointer*Rage: в джаве есть офигительная вещь, как автобоксинг... настолько офигительная, что я накушался, когда много работал с рефлектионом)
но суть в другом
[14:17:10] Pointer*Rage: изначально значение int - примитив
[14:17:16] Pointer*Rage: его конвертят в Integer
[14:17:26] Pointer*Rage: и херачат в syncronized блок
[14:17:47 | Изменены 14:17:49] Pointer*Rage: и еще назвают: SEMAPHOR
[14:18:58 | Изменены 14:19:03] shegan_j: спасибо, что Integer не volatile ещё
[14:19:05] Pointer*Rage: ахах)
[14:19:11] Pointer*Rage: это было бы эпично
[14:19:23] Pointer*Rage: volatile AtomicInteger нах
[14:19:36] shegan_j: всмысле
[14:19:37] shegan_j: есть такое?
[14:19:59] Pointer*Rage: ты чего, я бы в гроб упал, если бы увидел такое, да еще и синхронизед блок к нему)
[14:20:06] Pointer*Rage: НА ВСЯКИЙ СЛУЧАЙ
[14:20:09] shegan_j: ахаха)
[14:20:11] shegan_j: блять)
[14:23:37] shegan_j: Прикинь блять
[14:23:42] shegan_j: Делаешь операцию на сердце сложнейшую
[14:23:46] shegan_j: Просто пиздец
[14:23:50] shegan_j: Младенцу
[14:23:53] shegan_j: часов 9 на ногах
[14:23:55] shegan_j: Вроде все ок
[14:24:12] shegan_j: "Э, блять, тащите дефибрилятор, поребутим ему сердце...НА ВСЯКИЙ СЛУЧАЙ"
[14:24:30] Pointer*Rage: ахахах)
[14:24:38] Pointer*Rage: ну а чо, а вдруг DD
[14:24:59] Pointer*Rage: сестра, 800 напряжение пожалуйста, НА ВСЯКИЙ СЛУЧАЙ
[14:25:12] shegan_j: int a;
if(a < 0){throw RuntimeException();}
[14:25:14] shegan_j: ахаха)
[14:25:26] Pointer*Rage: это ты где нашел? D
[14:25:29] shegan_j: ведь ВСЯКОЕ БЫВАЕТ
[14:25:31] shegan_j: сам написал
[14:25:34] shegan_j: ну и видел
[14:25:37] shegan_j: подобную хуету
[14:25:44] Pointer*Rage: ахах)
[14:25:53] Pointer*Rage: перешел с си, там жизнь суровая D
[14:26:04] shegan_j: ну, хотя, это ещё более-менее
[14:26:09] shegan_j: если чувак с Сей
[14:26:13] shegan_j: то можно простить
[14:26:19] shegan_j: но блять
[14:26:28] shegan_j: когда крестоносцы начинают finalize переопределять
[14:26:34] shegan_j: деструктор ёпта
[14:26:44] shegan_j: ну ты понял, на какой случай
[14:27:03] Pointer*Rage: DD
[14:27:22] Pointer*Rage: ты им покажи AutoCloseable или Closeable интерфейсы)
[14:30:47] shegan_j: охуеют же
[14:30:48] shegan_j: магия
[14:31:06] Pointer*Rage: ахах)
[14:31:12] Pointer*Rage: ты им скажи
[14:31:18] Pointer*Rage: что это деструкторы)
[14:31:26] Pointer*Rage: а финалайз - наебка)
[14:31:48] shegan_j: Эм о_О
[14:31:52] shegan_j: А почему наебка-то?
[14:32:04] Pointer*Rage: ну по сути
[14:32:11] Pointer*Rage: финалайз часто не вызывается)
[14:32:22] shegan_j: ну так сам вызывай
[14:32:29] Pointer*Rage: ага-ага)
[14:32:44] shegan_j: ...или
[14:32:58] shegan_j: ...напиши свой интерфейс Desctructable
[14:33:12] shegan_j: и хуярь все поля через рефлекшн в нем
[14:33:38] Pointer*Rage: и когда их хуярить? в какой момент?)
[14:34:03] Pointer*Rage: эвента о начале сборки мусора - нет
[14:35:58] Pointer*Rage: if(self == null)
return;
if(self.isPlayer() && _state != null && _state.getState() == State.ALIVE && _zone != null && _zone.checkIfInZone(self.getX(), self.getY()))
checkAnnihilated();
else if(self != null)
[14:36:02] Pointer*Rage: тоже эпик)
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
|