PDA

Просмотр полной версии : Да простит меня великий Visor....Не удержалсо


Страницы : [1] 2

GenCloud
23.09.2015, 16:28
Код:



/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}

@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);

if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")

|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")

|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);

try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}

return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");

showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}

protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}


С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени

Но с точки зрения написания - ***ец

Чет герычем попахивает, мдам.......

command.substring(getCommand().length()+5); еще меня особенно умиляет)

Берем строку, режем ее, вычленяем остаток - вуаля, команда!

WoWan-SM
23.09.2015, 16:40
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?

P.S. Скорее всего писал он на Java 6, где не было поддержки switch(String), которая появилась только в Java 7. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum

GenCloud
23.09.2015, 16:41
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?

P.S. Скорее всего писал он на Java 6, где не было поддержки switch(String), которая появилась только в Java 7. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum


А по вашему это в каком разделе?

L2CCCP
23.09.2015, 16:43
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?

Influence
23.09.2015, 16:50

Mifesto
23.09.2015, 18:04
P.S. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum



Потому что это команды для ивентов(если я не ошибаюсь), а у каждого ивента может быть своя команда.

П.С. Единственное что напрягает, это куча обрезания строк... Нельзя в начале обработки разделить строку по первому пробелу, и вышло бы 1 часть - команда, 2 часть - аргументы?

WoWan-SM
23.09.2015, 19:55
Потому что это команды для ивентов(если я не ошибаюсь), а у каждого ивента может быть своя команда.

П.С. Единственное что напрягает, это куча обрезания строк... Нельзя в начале обработки разделить строку по первому пробелу, и вышло бы 1 часть - команда, 2 часть - аргументы?


И что? Почему сразу переменную не объявить?

Со вторым пунктом согласен. С использованием StringTokenizer (https://www.google.com/search?biw=1716&bih=865&q=StringTokenizer&spell=1&sa=X&ved=0CBgQvwUoAGoVChMIjsvW7sGNyAIVyBUsCh24-Av9) было бы лучше переписать.

Visor123
23.09.2015, 21:08
Код:



/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}

@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);

if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")

|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")

|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);

try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}

return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");

showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}

protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}


С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......

command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!


Начнем с того, что ты кроме маршалинга тут, я так понимаю, ничего не понял?

Второй интересный вопрос, а ты вообще что-то написал, или ты воздух сам знаешь из чьей попы в попытке создать пук?

Когда ты ответишь на эти простые вопросы, то станет понятно и к чему этот цирк. И тогда мы поищем что там за говно ты написал, а то что оно у тебя говно - так не сомневайся, показывай свой код - мы поржем.



Код:



/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}

@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);

if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")

|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")

|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);

try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}

return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");

showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}

protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}


С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......

command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!


Я смотрю, ты ссыкнул показать свой говнокод. Вывод очевиден - человек ты воздух из попы единорога.

Вопросы? Видимо нет. Нет кода - нет вопросов.

Человек, ты обосрался, сочувствую.



Потому что это команды для ивентов(если я не ошибаюсь), а у каждого ивента может быть своя команда.

П.С. Единственное что напрягает, это куча обрезания строк... Нельзя в начале обработки разделить строку по первому пробелу, и вышло бы 1 часть - команда, 2 часть - аргументы?


Для оптимизации можно было бы ровнять строки, переделывать в енумы наборы команд - но это ничего не изменит в общем времени нагрузки процессора или работе сервера, но зато заберет мое время. Такое обычно поручают какому-то глуповатому программеру - чтобы при деле был. Поскольку все обычно хватают шары чьих-то команд и если там переписано что-то, кичатся этим, так было с фениксом, овером и лоствордом. Но чья это была заслуга? ТС? Нет конечно, и ни одного из бздо-писателей.

Я не посчитал нужным тратить время на реструктуризации кода и вывод маршалинга некритичных к времени секций. Ничего в этом нет страшного, зато я потратил время на то, что исправил Javolution - а никто этого сделать не смог почему-то, это же так просто.

У всех "просто" разное, кто-то ровняет маршалинг, а кто-то вообще ничего, зато трындит.

Причем ТС настолько тупой, что даже не понял для чего этот класс нужен. И используется ли он вообще в игре.

GenCloud
23.09.2015, 21:25
Начнем с того, что ты кроме маршалинга тут, я так понимаю, ничего не понял?
Второй интересный вопрос, а ты вообще что-то написал, или ты воздух сам знаешь из чьей попы в попытке создать пук?
Когда ты ответишь на эти простые вопросы, то станет понятно и к чему этот цирк. И тогда мы поищем что там за говно ты написал, а то что оно у тебя говно - так не сомневайся, показывай свой код - мы поржем.


1) Я не сторонник расшариваний своих наработок.

2) Может это ты все через жопу вывернул ммм? Чекаем команды: проверка "или" на все команды команд -> следующая такая же проверка команду, лол, пздц, я ору.

Сплит по пробелу, [0] - наша команда... самое клевое дальше ты делает этот сплит по пробелу что бы получить параметры String[] params = eventName.split(" ");

А свое пуканобомбение могешь засунуть себе в очко.

Visor123
23.09.2015, 21:28
1) Я не сторонник расшариваний своих наработок.
2) Может это ты все через жопу вывернул ммм? Чекаем команды: проверка "или" на все команды команд -> следующая такая же проверка команду, лол, пздц, я ору.
Сплит по пробелу, [0] - наша команда... самое клевое дальше ты делает этот сплит по пробелу что бы получить параметры String[] params = eventName.split(" ");
А свое пуканобомбение могешь засунуть себе в очко.


То есть ты ссыкнул свой говнокод показать. Что и требовалось показать.

О чем ты тогда вякаешь, если ты само ни о чем? То что ты тупой в программинге, это понятно по твоим сообщениям.

Я сочувствую тебе, что ты такой тупой. Можешь этим кичиться.

Это у тебя что-то с жопой, и твое говно изо рта это выдает. Может тебе порвали рот лопатой, когда кормили говном?

Очень неприятно, когда такие дегенераты есть среди нас. К сожалению таких много. Они обычно прячуться за спинами нормальных людей.

GenCloud
23.09.2015, 21:37
То есть ты ссыкнул свой говнокод показать. Что и требовалось показать.
О чем ты тогда вякаешь, если ты само ни о чем? То что ты тупой в программинге, это понятно по твоим сообщениям.
Я сочувствую тебе, что ты такой тупой. Можешь этим кичиться.
Это у тебя что-то с жопой, и твое говно изо рта это выдает. Может тебе порвали рот лопатой, когда кормили говном?

Очень неприятно, когда такие дегенераты есть среди нас. К сожалению таких много. Они обычно прячуться за спинами нормальных людей.


Может тебе ещё рожу вареньем намазать?

Че, прорвало чтоле?

Visor123
23.09.2015, 21:50
Может тебе ещё рожу вареньем намазать?
Че, прорвало чтоле?


Это у тебя говно во рту нашли, не нужно стрелки переводить. Не скули уже.

Ты сейчас еще раз обосрался, уж извини, я не виноват что у тебя что-то с головой.

Читатели, еще обратите внимание, этот клоун даже обозвал команду мебиоса, что они "спиздели" л2ж приват

таблица опыта (https://forum.antichat.xyz/threads/764302/)

Человек, я не знаю что ты потребляешь, но такой бред говняный как ты пишешь можешь рассказывать бешеным собакам - они тебя поймут обязательно

Influence
23.09.2015, 21:50

Visor123
23.09.2015, 21:51
Зератул к сожалению был очень легко затролен несколько раз подряд, он очень предсказуем и скучен.

mAnGoL
23.09.2015, 22:01
Это у тебя говно во рту нашли, не нужно стрелки переводить. Не скули уже.
Ты сейчас еще раз обосрался, уж извини, я не виноват что у тебя что-то с головой.

Читатели, еще обратите внимание, этот клоун даже обозвал команду мебиоса, что они "спиздели" л2ж приват
таблица опыта (https://forum.antichat.xyz/threads/764302/)

Человек, я не знаю что ты потребляешь, но такой бред говняный как ты пишешь можешь рассказывать бешеным собакам - они тебя поймут обязательно


По поводу l2j-действительно была, мб и есть некая приватная ветка l2j- мб она и по другому называется не суть.

Visor123
23.09.2015, 22:02
По поводу l2j-действительно была, мб и есть некая приватная ветка l2j- мб она и по другому называется не суть.


А ты знаешь что они именно "спиздили" ее, или этот клоун знает? Или он просто на людей наврал?

Да он именно так и написал "спиздили", матом.

GenCloud
23.09.2015, 22:04
Читатели, еще обратите внимание, этот клоун даже обозвал команду мебиоса, что они "спиздели" л2ж приват
таблица опыта (https://forum.antichat.xyz/threads/764302/)


Еще вопросы, иль ты и тут будешь в глаза долбиться???

Код:



[09.07.2015 14:37:55] chaospaladin: До словно вот так "После некоторых событий связанных с мобиусам, мы ни хотим работать с новыми людьми"
[17.05.2015 7:34:56] chaospaladin: А еще у нас мобиус слил
[17.05.2015 7:34:58] chaospaladin: наработки )
[24.06.2015 21:46:24] chaospaladin: А вообще мы в приват ушли после того, как нас мобиус начал сливать
[04.07.2015 21:18:22] chaospaladin: У нас и так проблемы с доверием после сливов мобиуса, даже не знаю

mAnGoL
23.09.2015, 22:05
А ты знаешь что они именно "спиздили" ее, или этот клоун знает? Или он просто на людей наврал?
Да он именно так и написал, матом.


Это может знать только мобиус и сами Nemesiss и остальные.

Но факт в том что, мобиус по сути правильно сделал т.к. оно того стоило. В плане перехода с овера на те исходники.

Visor123
23.09.2015, 22:06
Еще вопросы, иль ты и тут будешь в глаза долбиться???

Код:



[09.07.2015 14:37:55] chaospaladin: До словно вот так "После некоторых событий связанных с мобиусам, мы ни хотим работать с новыми людьми"
[17.05.2015 7:34:56] chaospaladin: А еще у нас мобиус слил
[17.05.2015 7:34:58] chaospaladin: наработки )
[24.06.2015 21:46:24] chaospaladin: А вообще мы в приват ушли после того, как нас мобиус начал сливать
[04.07.2015 21:18:22] chaospaladin: У нас и так проблемы с доверием после сливов мобиуса, даже не знаю



Тебе прямо докладывают? Какой большой человек. Мне тоже что ли написать какой-то нибудь чес в таком же стиле, и "Еще вопросы, иль ты и тут будешь в глаза долбиться???"?

Что тебя в жопу кто-то поимел, чего ты такой нервный? Разорванный рот не дает покоя?



Это может знать только мобиус и сами Nemesiss и остальные.
Но факт в том что, мобиус по сути правильно сделал т.к. оно того стоило. В плане перехода с овера на те исходники.


Просто интересно, как какой-то нонейм фраг вдруг вылазит на форуме и орет "они спиздели приват l2j" ааа, панико. Так часто делают люди, которых кто-то обидел в жизни - к примеру начальник поимел, или денег не дали - с простыми словами - "ну иди погуляй".

Так что там лучше разбираться человеку со своими проблемами, а не писать всякий бред тут на форуме.

GenCloud
23.09.2015, 22:09
А ты знаешь что они именно "спиздили" ее, или этот клоун знает? Или он просто на людей наврал?
Да он именно так и написал "спиздили", матом.


Божечки, человек со своим мирком в мозге, клоуном выступаешь здесь только ты, позоря JAVA-DEV сферу.

За тобой уже едут ->

mAnGoL
23.09.2015, 22:09
Просто интересно, как какой-то нонейм фраг вдруг вылазит на форуме и орет "они спиздели приват l2j" ааа, панико. Так часто делают люди, которых кто-то обидел в жизни - к примеру начальник поимел, или денег не дали - с простыми словами - "ну иди погуляй".
Так что там лучше разбираться человеку со своими проблемами, а не писать всякий бред тут на форуме.


По сути он тебе скинул лог, а в логе один из людей привата.

GenCloud
23.09.2015, 22:11
Тебе прямо докладывают? Какой большой человек. Мне тоже что ли написать какой-то нибудь чес в таком же стиле, и "Еще вопросы, иль ты и тут будешь в глаза долбиться???"?
Что тебя в жопу кто-то поимел, чего ты такой нервный? Разорванный рот не дает покоя?


Нет, ты что ты что, я специально для твоего крошечного мозга решил поднять переписку и отстоять свои слова. А так я хз, мб употреблять тебе меньше стоит?

Visor123
23.09.2015, 22:11
По сути он тебе скинул лог, а в логе один из людей привата.


Ну молодец какой, значить я важный человек и нагнул клоуна, что он прямо лог побежал искать, где кто-то кого-то обвиняет.

Ну обосрался человек GenCloud, что же тут поделать, сейчас будет пузырится, какой он важный.



Божечки, человек со своим мирком в мозге, клоуном выступаешь здесь только ты, позоря JAVA-DEV сферу.


Так что с тобой: порванная жопа или порванный рот?

Что же ты людям мозг пудришь? Ты же реально клоун, кода твоего нет, тебя нигде нет, работаешь на чужом коде. Где же ты нонейм?

GenCloud
23.09.2015, 22:13
Ну молодец какой, значить я важный человек и нагнул клоуна, что он прямо лог побежал искать, где кто-то кого-то обвиняет.
Ну обосрался человек, что же тут поделать, сейчас будет пузырится, какой он важный.


Нет погоди, ты че куришь то, поделись. Ты просишь логи, обзывая меня *****болом, но ты несешь ху***ю после этого! Не надо так, больница не поможет.

Visor123
23.09.2015, 22:14
Нет погоди, ты че куришь то, поделись. Ты просишь логи, обзывая меня *****болом, но ты несешь ху***ю после этого! Не надо так, больница не поможет.


Я код твой попросил, у тебя что глаза лопнули уже от говна? Пипец тупой пассажир вылез.

Или я еще виноват, что ты тупой?

GenCloud
23.09.2015, 22:16
Так что с тобой: порванная жопа или порванный рот?
Что же ты людям мозг пудришь? Ты же реально клоун, кода твоего нет, тебя нигде нет, работаешь на чужом коде. Где же ты нонейм?


1) Мозг не пудрю, только причесываю.

2) Кода нет - ну щито поделать, могу тебе только рожу говном намазать.

3) О_о чужой код, нет, я бы сказал форк чужого кода. А ты б заткнулся бы, ибо ты работаешь на сырках лыжи и впиливаешь свои копирайты везде.

4) Я тут, я на ЗГ, я в Рашке.

5) Что-то еще?

Visor123
23.09.2015, 22:23
1) Мозг не пудрю, только причесываю.
2) Кода нет - ну щито поделать, могу тебе только рожу говном намазать.
3) О_о чужой код, нет, я бы сказал форк чужого кода. А ты б заткнулся бы, ибо ты работаешь на сырках лыжи и впиливаешь свои копирайты везде.
4) Я тут, я на ЗГ, я в Рашке.
5) Что-то еще?


Не ну реально человек ты еще раз обосрался, скажите кто-то этому невменяемому, что этого класса в 1 посте в l2j нет.

"Где ты" - в плане разработки, а где лежит твоя грязная жопа - это меня мало интересует, пусть ее имеет твой начальник или тот, кому ты должен, ну или мама с папой.

А намазать ты говном можешь только свою рожу, потому что не особо развился еще от уровня приматов и измазываешься говном сам и людей рядом.

Напишу для справки - я этого человека знать не знаю, никогда не пересекался.

Вы видели какое дерьмо вдруг из пассажира хлынуло? Я тоже прикольнулся.

GenCloud - иди лечи свой пукан.

GenCloud
23.09.2015, 22:30
Не ну реально человек ты еще раз обосрался, скажите кто-то этому невменяемому, что этого класса в 1 посте в l2j нет.
"Где ты" - в плане разработки, а где лежит твоя грязная жопа - это меня мало интересует, пусть ее имеет твой начальник или тот, кому ты должен, ну или мама с папой.
А намазать ты говном можешь только свою рожу, потому что не особо развился еще от уровня приматов и измазываешься говном сам и людей рядом.

Напишу для справки - я этого человека знать не знаю, никогда не пересекался.

Вы видели какое дерьмо вдруг из пассажира хлынуло? Я тоже прикольнулся.

GenCloud - иди лечи свой пукан.


Не ну погоди, а ты заметил что здесь только ты сидишь и бомбишь? Тебя это не смутило?

Ах и да, код, окей держи:

Код:



package la2era.gameserver.datatables.xml;

import la2era.gameserver.config.Config;
import la2era.gameserver.config.FilePath;
import la2era.gameserver.engine.documentengine.XmlDocumen tParser;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.jdom2.Element;
import org.jdom2.JDOMException;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
* User: GenCloud
* Date: 06.07.2015
* Team: La2Era Team
*/

@Slf4j
public class BuffStackGroupData extends XmlDocumentParser
{
private static final Map locked_list = new HashMap<>();

@Getter(lazy = true)
private static final BuffStackGroupData instance = new BuffStackGroupData();

private BuffStackGroupData()
{
try {
load();
} catch (JDOMException | IOException e) {
e.printStackTrace();
}
}

@Override
public void load() throws JDOMException, IOException {
locked_list.clear();
parseFile(FilePath.BUFF_STACK_GROUP_DATA);
log.info(getClass().getSimpleName() + ": Loaded " + locked_list.size() + " group.");
}

@Override
public String getDTDFileName() {
return Config.DATAPACK_ROOT + "/data/dtd/BuffStackGroupData.dtd";
}

@Override
protected void parseDocument(Element rootElement)
{
String abnormal_type = null;
String[] loc_type = new String[0];
for (Element element : rootElement.getChildren())
{
if (element.getName().equalsIgnoreCase("abnormal_type"))
{
abnormal_type = element.getAttributeValue("type");

for (Element element1 : element.getChildren())
{
if (element1.getName().equalsIgnoreCase("locked_abnormals"))
{
loc_type = element1.getAttributeValue("type").split(",");
}
}
}
locked_list.put(abnormal_type, loc_type);
}
}

public String[] getLockedAbnormalsList(String locked_name)
{
return locked_list.get(locked_name);
}
}

0wn3d
23.09.2015, 22:33
:ПОПКОРН:

Visor123
23.09.2015, 22:38
Не ну погоди, а ты заметил что здесь только ты сидишь и бомбишь? Тебя это не смутило?
Ах и да, код, окей держи:

Код:



package la2era.gameserver.datatables.xml;

import la2era.gameserver.config.Config;
import la2era.gameserver.config.FilePath;
import la2era.gameserver.engine.documentengine.XmlDocumen tParser;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.jdom2.Element;
import org.jdom2.JDOMException;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
* User: GenCloud
* Date: 06.07.2015
* Team: La2Era Team
*/

@Slf4j
public class BuffStackGroupData extends XmlDocumentParser
{
private static final Map locked_list = new HashMap<>();

@Getter(lazy = true)
private static final BuffStackGroupData instance = new BuffStackGroupData();

private BuffStackGroupData()
{
try {
load();
} catch (JDOMException | IOException e) {
e.printStackTrace();
}
}

@Override
public void load() throws JDOMException, IOException {
locked_list.clear();
parseFile(FilePath.BUFF_STACK_GROUP_DATA);
log.info(getClass().getSimpleName() + ": Loaded " + locked_list.size() + " group.");
}

@Override
public String getDTDFileName() {
return Config.DATAPACK_ROOT + "/data/dtd/BuffStackGroupData.dtd";
}

@Override
protected void parseDocument(Element rootElement)
{
String abnormal_type = null;
String[] loc_type = new String[0];
for (Element element : rootElement.getChildren())
{
if (element.getName().equalsIgnoreCase("abnormal_type"))
{
abnormal_type = element.getAttributeValue("type");

for (Element element1 : element.getChildren())
{
if (element1.getName().equalsIgnoreCase("locked_abnormals"))
{
loc_type = element1.getAttributeValue("type").split(",");
}
}
}
locked_list.put(abnormal_type, loc_type);
}
}

public String[] getLockedAbnormalsList(String locked_name)
{
return locked_list.get(locked_name);
}
}



Я так понимаю команда La2Era Team сфейлилась? Или остался этот человек?

Человек ты кретин? Ты мне парсер показываешь - если бы ты еще в нем обосрался - это уже было бы эпично. Тем более кто знает твой ли это код или ты его украл у кого-то, что вполне вероятно, но в данном случае не доказуемо - бегать искать у кого ты мог украсть.

Что не твое сообщение - ты в очередной раз сфейлился.

GenCloud
23.09.2015, 22:42
Я так понимаю команда La2Era Team сфейлилась? Или остался этот человек?
Человек ты кретин? Ты мне парсер показываешь - если бы ты еще в нем обосрался - это уже было бы эпично. Тем более кто знает твой ли это код или ты его украл у кого-то, что вполне вероятно, но в данном случае не доказуемо - бегать искать у кого ты мог украть.
Что не твое сообщение - ты в очередной раз сфейлился.


Ну да мы все в твоих глазах обосрались, ты просил код, получи грамотно написанный код. Более с больным человеком не желаю вести дальнейший разговор.

Influence
23.09.2015, 22:46
lombok входит в моду)

GenCloud
23.09.2015, 22:47
А теперь проще будь, сынок



lombok входит в моду)


Прекрасная тулза, заменяющая уйму кода.

xDarkDelux
23.09.2015, 22:48
Ты бы показал код того же класса (если он конечно есть, я хз). А сравнивать коды разных классов - абсурд.

Visor123
23.09.2015, 22:50
Ну да мы все в твоих глазах обосрались, ты просил код, получи грамотно написанный код. Более с больным человеком не желаю вести дальнейший разговор.


Ты бы лучше не отмазывался, а рассказал нам, что с тобой случилось, что у тебя так пукан разорван? Кто его так порвал, что "брыжжет кровища" и ты вылез на форум гадости всякие людям писать?

Дорогие читатели, вы тоже заметили что человек себя на "мы" называет?

GenCloud - я не знаю кто тебе порвал пукан, что ты внезапно сагрился - ты не признаешься, но называть себя на "мы" это странно, если ты не знал. Ты конечно можешь скрывать свою болезнь, но "тут то все видны как на ладони".

GenCloud
23.09.2015, 22:50
Ты бы показал код того же класса (если он конечно есть, я хз). А сравнивать коды разных классов - абсурд.


Это чиста его разработке. Ну как бы он просил код, пожалуйста.

Visor123
23.09.2015, 22:51
Ты бы показал код того же класса (если он конечно есть, я хз). А сравнивать коды разных классов - абсурд.


Не один я это заметил.

Вообще, прежде чем накидываться на других людей в припадке агра ТС-у лучше было бы разобраться в причине агра, а не искать - на кого его выплеснуть.

Enmity
23.09.2015, 23:01
куплю попкорн с доставкой

Visor123
23.09.2015, 23:05
куплю попкорн с доставкой


Я бы тоже купил, если бы этот припадочный накинулся на кого-то другого. А то на меня кинулся, как бешеная собака, ни с того ни с сего, еще и себя "мы" называет.

WoWan-SM
23.09.2015, 23:06
Не ну погоди, а ты заметил что здесь только ты сидишь и бомбишь? Тебя это не смутило?
Ах и да, код, окей держи:

Код:



package la2era.gameserver.datatables.xml;

import la2era.gameserver.config.Config;
import la2era.gameserver.config.FilePath;
import la2era.gameserver.engine.documentengine.XmlDocumen tParser;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.jdom2.Element;
import org.jdom2.JDOMException;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
* User: GenCloud
* Date: 06.07.2015
* Team: La2Era Team
*/

@Slf4j
public class BuffStackGroupData extends XmlDocumentParser
{
private static final Map locked_list = new HashMap<>();

@Getter(lazy = true)
private static final BuffStackGroupData instance = new BuffStackGroupData();

private BuffStackGroupData()
{
try {
load();
} catch (JDOMException | IOException e) {
e.printStackTrace();
}
}

@Override
public void load() throws JDOMException, IOException {
locked_list.clear();
parseFile(FilePath.BUFF_STACK_GROUP_DATA);
log.info(getClass().getSimpleName() + ": Loaded " + locked_list.size() + " group.");
}

@Override
public String getDTDFileName() {
return Config.DATAPACK_ROOT + "/data/dtd/BuffStackGroupData.dtd";
}

@Override
protected void parseDocument(Element rootElement)
{
String abnormal_type = null;
String[] loc_type = new String[0];
for (Element element : rootElement.getChildren())
{
if (element.getName().equalsIgnoreCase("abnormal_type"))
{
abnormal_type = element.getAttributeValue("type");

for (Element element1 : element.getChildren())
{
if (element1.getName().equalsIgnoreCase("locked_abnormals"))
{
loc_type = element1.getAttributeValue("type").split(",");
}
}
}
locked_list.put(abnormal_type, loc_type);
}
}

public String[] getLockedAbnormalsList(String locked_name)
{
return locked_list.get(locked_name);
}
}



Lombok? Серьезно?

:wtf:

GenCloud
23.09.2015, 23:08
Lombok? Серьезно?
:wtf:


А что, это плохо по вашему мнению?

Visor123
23.09.2015, 23:15
Я тут, конечно, недавно, но почему на форуме нет раздела куда будут выкладывать говнокоды?

P.S. Скорее всего писал он на Java 6, где не было поддержки switch(String), которая появилась только в Java 7. Но даже так мне не понятно зачем везде вызываются getCommand и почему нельзя было красиво оформить код с использованием enum


Команда генерится по имени типа эвента, и да писалось это достаточно давно. Еще один момент - компилятор для java классов, я оставил как и был, компилит на старте java (основа не овер, а l2emu project формата 2007 года) работает быстро под 1.6, когда уже 1.7 грузит чуть ли не в 5 раз дольше (хотел обновить как-то). Поэтому и синтаксис я оставил под 1.6.

Код может и кажется несколько "тяжелым", но он прост, понятен и достаточно надежен.

ТС (агрессивный и тупой) критически не понял, что он видит и почему так - и вылез кинуть это в говнокод, но по факту не все так как кажется. Просто в его голове не укладывается, что можно писать в таком ООП-стиле.

Influence
23.09.2015, 23:20
Кто мы-то?! К кому ты обращаешься, [А по щам?]?! Я один здесь, на*уй! (с) Зелёный слоник



Lombok? Серьезно?
:wtf:


тоже интересно, что не так?

Tyrel
23.09.2015, 23:23
Мда народ нашли где мерятся письками, показывать хандлеры команд и парсеры хмл

Придумайте задачку на хорошую абстракцию + многопоточность, там и будет видно кто гавнокодер а кому даже до гавнокодера как до киева раком)))

Visor123
23.09.2015, 23:31
Мда народ нашли где мерятся письками, показывать хандлеры команд и парсеры хмл
Придумайте задачку на хорошую абстракцию + многопоточность, там и будет видно кто гавнокодер а кому даже до гавнокодера как до киева раком)))


Может он и хочет типа "школота унизить папку", но обосрался сам прямо со старта, что тут еще можно измерять? Да ничего, померяли уже этого GenCloud - так себе, пиписька еще не отросла.

Придумывать? Придумай и с ним посоревнуйся, если делать нечего.

GenCloud
23.09.2015, 23:34
Может он и хочет типа "школота унизить папку", но обосрался сам прямо со старта, что тут еще можно измерять? Да ничего, померяли уже этого GenCloud - так себе, пиписька еще не отросла.
Придумывать? Придумай и с ним посоревнуйся, если делать нечего.


"Я школьнег" - говорит наркоман, который пишет дерьмо и даже не в состоянии понять проблемы своего же кода, которые четко описаны в первом посте. Окей.

P.S> заметь, тебе не только я уже говорю "Иди лечись, или бабу найди, а то развлекаешься, шалун, как можешь".

WoWan-SM
23.09.2015, 23:38
Кто мы-то?! К кому ты обращаешься, [А по щам?]?! Я один здесь, на*уй! (с) Зелёный слоник

тоже интересно, что не так?


Главный недостаток - усложнение отладки. Геттеры и сеттеры не зря придумали, чтобы сразу было видно где переменная читается, а где записывается. А тут где ты будешь ставить? Конечно есть вариант поставить бряк на саму переменную, но это может на долгое время повесить процесс.

Visor123
23.09.2015, 23:41
"Я школьнег" - говорит наркоман, который пишет дерьмо и даже не в состоянии понять проблемы своего же кода, которые четко описаны в первом посте. Окей.


Твой диагноз уже неоднократно показан. Не нужно отмазываться, то что ты тупой стало понятно еще в первом посте - ты что невменяемый не понял, что getCommand() это не для статика? Наркоман говоришь? Ты посмотри дегенерат что ты вообще пишешь. Ты же с первого поста обосрался, и дальше по теме несколько раз.

Тебе лучше убить себя об стену или выпить яда, чем писать такой бред особенно про чужой код. Иди лучше обосри свой код, или какой-то класс из сборки где ты в команде - тебе все равно, а мы посмеемся.

Вы обратите внимание - этот пассажир годы уже, судя по всему, работает с ява-серверами Л2 и настолько тупой. Если кто-то думает что так не бывает - вот вам пример.

GenCloud
23.09.2015, 23:42
Главный недостаток - усложнение отладки. Геттеры и сеттеры не зря придумали, чтобы сразу было видно где переменная читается, а где записывается. А тут где ты будешь ставить? Конечно есть вариант поставить бряк на саму переменную, но это может на долгое время повесить процесс.


Собственно, кому как, если это единственная причина, по которой Вы не юзаете данную библиотеку. А так, еще раз повторюсь, заменяет уйму времени и кода.



Твой диагноз уже неоднократно показан. Не нужно отмазываться, то что ты тупой стало понятно еще в первом посте - ты что невменяемый не понял, что getCommand() это не для статика? Наркоман говоришь? Ты посмотри дегенерат что ты вообще пишешь. Ты же с первого поста обосрался, и дальше по теме несколько раз.
Тебе лучше убить себя об стену или выпить яда, чем писать такой бред особенно про чужой код. Иди лучше обосри свой код, или какой-то класс из сборки где ты в команде - тебе все равно, а мы посмеемся.

Вы обратите внимание - этот пассажир годы уже, судя по всему, работает с ява-серверами Л2 и настолько тупой. Если кто-то думает что так не бывает - вот вам пример.


Железная логика, вы получаете Медаль Дауна 3-й степени. Боже что за колхоз, что за оскорбления, тебя еще не попустило? Может аспиринчику или проблеваться на всякий?

WoWan-SM
23.09.2015, 23:47
Собственно, кому как, если это единственная причина, по которой Вы не юзаете, данную библиотеку. А так, еще раз повторюсь, заменяет уйму времени и кода.


Ну на счет кода единственное с чем соглашусь, да меньше. Но времени никак нет) Alt+Insert в Idea -> Getter & Setter

Да и вообще не нужно в сборках использовать библиотеки без которых вполне можно обойтись. Принцип Бритвы Оккамы никто не отменял

Visor123
23.09.2015, 23:50
Железная логика, вы получаете Медаль Дауна 3-й степени. Боже что за колхоз, что за оскорбления, тебя еще не попустило? Может аспиринчику или проблеваться на всякий?


Ой, не скули уже. Тебя насадили в честной схватке, точнее ты умудрился обосраться в первом же посте. А дальше конечно на кукан) Я же не виноват что ты тупой.

Ты лучше людям расскажи, почему ты себя на "мы" называешь. Это я думаю многим интересно.


Человек ни с того ни с сего на меня набросился в припадке агрессии, обосрался, был насажен на кукан и пишет теперь про колхоз и какую-то медаль.



Ну на счет кода единственное с чем соглашусь, да меньше. Но времени никак нет) Alt+Insert в Idea -> Getter & Setter
Да и вообще не нужно в сборках использовать библиотеки без которых вполне можно обойтись. Принцип Бритвы Оккамы никто не отменял


Он скорее всего не понимает насчет Бритвы Окаммы.

GenCloud
23.09.2015, 23:54
Логика визора поддается единственному не здравому выводу:

Ты с ним не говоришь - значит обосрался под гнетом аргументов с его стороны. Ты уделяешь ему слишком много времени - значит обосрался, потому что он настолько сильный противник, что заставил тебя шевелить булками, чтобы его "побидить".

Он самая натуральная баба по складу ума, и как каждая баба, он свято верит в то, что говорит.

Объективные факты и выводы для него ничего не значат, у него своё собственное, ебанутое восприятие реальности.Полное отсутствие какой либо этики в общении как таковой. В его мире видимо если человек прав, значит он всегда может хуесосить всех подряд, а в своем выдуманном мире сложно не быть всегда правым.

Ведет себя как ебаное опущенное ничтожество, которое научилось как обезъянка приносить к клетке камушек и получать за него вкусную конфетку, и по этой причине решившее, что оно уже выше других обезъянок в пищевой цепи.

Visor123
23.09.2015, 23:57
Логика визора поддается единственному не здравому выводу:

Код:



Ты с ним не говоришь - значит обосрался под гнетом аргументов с его стороны. Ты уделяешь ему слишком много времени - значит обосрался, потому что он настолько сильный противник, что заставил тебя шевелить булками, чтобы его "побидить". Он самая натуральная баба по складу ума, и как каждая баба, он свято верит в то, что говорит. Объективные факты и выводы для него ничего не значат, у него своё собственное, ебанутое восприятие реальности.



Процитирую себя

"Человек ни с того ни с сего на меня набросился в припадке агрессии, обосрался, был насажен на кукан и пишет теперь про колхоз и какую-то медаль."

Когда ты нам расскажешь, почему ты себя на "мы" называешь? С остальным в общем-то понятно.

Метки:


visor

больница рядом

вы все говно (visor)

говнокод в исполнении визора

школьнеги
Еще обращу внимание читателей на метки темы - можно заметить, что человек явно не в себе от переполняющей его злобы, агрессии и говна. Я еще удивлен, как у него от натуги не лопнули глаза.

Причем, где он видит прямо таки говнокод для условий реализации класса он так и не осилил объяснить из-за своей явной тупизны.

Tyrel
24.09.2015, 00:21
Как говорится найдите 10 отличий )))

Visor123
24.09.2015, 01:14
Он эпично рычал

zcxv
24.09.2015, 02:46
Главный недостаток - усложнение отладки. Геттеры и сеттеры не зря придумали, чтобы сразу было видно где переменная читается, а где записывается. А тут где ты будешь ставить? Конечно есть вариант поставить бряк на саму переменную, но это может на долгое время повесить процесс.


Рефакторинг и поддержку кода, как всегда мы не учитываем. Но лишь до первого такого случая Я гарантирую, что после нескольких таких, тянуть такой лапшекод изрядно надоест, как и его поддержка.

И да. Ставить бряк на геттер/сеттер почти тоже самое, что и поставить бряк на саму переменную. Не сильно будет отличатся эффект. Хотим фильтровать? Без проблем: ставь уже на конкретный вызов геттер или сеттера.

В любом случае, если проект не испытывает надобности в постоянном сопровождении и рефакторинге, то подключать к существующему проекту, ломбок - очень глупо и еще глупее будет переделывать сотни тысяч строк кода под него. Как говорится: все зависит от того, что нужно.

WoWan-SM
24.09.2015, 12:10
Рефакторинг и поддержку кода, как всегда мы не учитываем. Но лишь до первого такого случая Я гарантирую, что после нескольких таких, тянуть такой лапшекод изрядно надоест, как и его поддержка.
И да. Ставить бряк на геттер/сеттер почти тоже самое, что и поставить бряк на саму переменную. Не сильно будет отличатся эффект. Хотим фильтровать? Без проблем: ставь уже на конкретный вызов геттер или сеттера.

В любом случае, если проект не испытывает надобности в постоянном сопровождении и рефакторинге, то подключать к существующему проекту, ломбок - очень глупо и еще глупее будет переделывать сотни тысяч строк кода под него. Как говорится: все зависит от того, что нужно.


Все верно.

GenCloud
24.09.2015, 13:10
WTF?

0wn3d
24.09.2015, 13:11
WTF?

xDarkDelux
24.09.2015, 17:00
Может и мне написать "WTF?", может и мне репы подкинут?:clapping:

mAnGoL
25.09.2015, 21:07
Может и мне написать "WTF?", может и мне репы подкинут?:clapping:


То сообщение было отредактировано модератором.

xDarkDelux
25.09.2015, 21:18
Не заметил)

Visor123
22.01.2016, 22:45
Код:



/**
*
* @author Visor123
* L2Emu Enterprise Server
*/
public class L2ManagementEventGroupEngine extends L2EventGroupEngine
{
public L2ManagementEventGroupEngine(String name, String command)
{
super(name, command);
}

@Override
public boolean useAdminCommand(L2PcInstance player, String command)
{
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventGroupEngine "+getName()+" useAdminCommand player="+player.getName()+" command="+command);

if (command.equalsIgnoreCase(getCommand()))
{
showMainPage(player);
}
else if (command.startsWith(getCommand()+"_show")
|| command.startsWith(getCommand()+"_status")
|| command.startsWith(getCommand()+"_edit")
|| command.startsWith(getCommand()+"_save")
|| command.startsWith(getCommand()+"_load")
|| command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_totaliser")

|| command.startsWith(getCommand()+"_join")
|| command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_teleport")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_finish")

|| command.startsWith(getCommand()+"_auto")
|| command.startsWith(getCommand()+"_sit")
|| command.startsWith(getCommand()+"_stand")
|| command.startsWith(getCommand()+"_kick")
)
{
String eventName = command.substring(getCommand().length()+6);
if (command.startsWith(getCommand()+"_schedule")
|| command.startsWith(getCommand()+"_teleport"))
eventName = command.substring(getCommand().length()+10);
else if (command.startsWith(getCommand()+"_finish") || command.startsWith(getCommand()+"_status"))
eventName = command.substring(getCommand().length()+8);
else if (command.startsWith(getCommand()+"_start")
|| command.startsWith(getCommand()+"_abort")
|| command.startsWith(getCommand()+"_stand"))
eventName = command.substring(getCommand().length()+7);
else if (command.startsWith(getCommand()+"_sit"))
eventName = command.substring(getCommand().length()+5);
else if (command.startsWith(getCommand()+"_totaliser"))
eventName = command.substring(getCommand().length()+11);

try
{
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info("L2ManagementEventEngine "+getName()+" show/edit... eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]))
_eventInstances.get(params[0]).useAdminCommand(player, command, params);
else
{
player.sendMessage("Event instance with name="+params[0]+" not found");
showMainPage(player);
}

return true;
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
else if (command.startsWith(getCommand()+"_del"))
{
try
{
String eventName = command.substring(getCommand().length()+5);
String[] params = eventName.split(" ");
if (Config.ENT_TESTEVENTS)
_log.info(getName()+" eventName="+params[0]+" params.length="+params.length);
if (_eventInstances.containsKey(params[0]) && params.length > 1 && params[1].equalsIgnoreCase("y"))
{
L2EventGroupEngineInstance event = _eventInstances.remove(params[0]);
event.deleteData();
saveData();
player.sendMessage(getName()+" data saved to DB");
}
else if (params.length 0 && !eventName.contains(" ") && eventName.length() 16)
player.sendMessage("Name event need have 1-16 characters");

showMainPage(player);
}
catch (Exception e) {
_log.warn(e.getMessage());
}
}
return super.useAdminCommand(player, command);
}

protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}
}


С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......

command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!


Апну еще раз, чтобы человек не забывал об этом факте.

getCommand() возвращает различные строки, в зависимости от конкретной инстансы движка. Если ты этого не знал - то это твоя проблема.

Человек обосрался весьма эпично, хотел нагадить на других, а обгадился сам.

Давай, обсыкайся, попробуй переврать такой факт.

mAnGoL
22.01.2016, 22:58
Апну еще раз, чтобы человек не забывал об этом факте.
getCommand() возвращает различные строки, в зависимости от конкретной инстансы движка. Если ты этого не знал - то это твоя проблема.
Человек обосрался весьма эпично, хотел нагадить на других, а обгадился сам.

Давай, обсыкайся, попробуй переврать такой факт.



Посмотри в сторону thymeleaf, velocity на досуге.

Visor123
22.01.2016, 23:49
Посмотри в сторону thymeleaf, velocity на досуге.


Факт состоит в том, что неадекват GenCloud (https://forum.antichat.xyz/members/890165/)обосрался и эта тема это доказывает и подтверждает. Обоврать этот факт он не может.

А на досуге, то конечно спасибо за советы.

mAnGoL
23.01.2016, 00:04
Факт состоит в том, что неадекват GenCloud (https://forum.antichat.xyz/members/890165/)обосрался и эта тема это доказывает и подтверждает. Обоврать этот факт он не может.
А на досуге, то конечно спасибо за советы.


Я к теме не имею никакого отношения, я по поводу разных реплейсов и остального аппенда срингов. То что я назвал можно поюзать, хорошие фреймы.

Visor123
23.01.2016, 02:32
Я к теме не имею никакого отношения, я по поводу разных реплейсов и остального аппенда срингов. То что я назвал можно поюзать, хорошие фреймы.


Ты пишешь, что к теме не имеешь отношения, но влез в нее давать советы. Итак.

Я так понимаю, что ты не понял почему я не просто так написал, что дегенерат, который кидается на людей, обосрался и что этот факт нельзя изменить.

Что ты собрался аппендить в этом классе? Или где ты и как поюзаешь хорошие фреймы? И почему ты думаешь, что нужно соединять какие-то строки в этом конкретном классе? Проще говоря - в чем по твоему говнокод?

Но следует учесть оптимизацию времени создания объекта и учесть специфику времени выполнения. Или какая цель в аппенде строк и применении хороших фреймов?

Прямо пример.

zcxv
23.01.2016, 04:51
Что ты собрался аппендить в этом классе? Или где ты и как поюзаешь хорошие фреймы? И почему ты думаешь, что нужно соединять какие-то строки в этом конкретном классе? Проще говоря - в чем по твоему говнокод?
Но следует учесть оптимизацию времени создания объекта и учесть специфику времени выполнения. Или какая цель в аппенде строк и применении хороших фреймов?
Прямо пример.


Я не Мангол, но все таки форум и открытый дискас, поэтому напишу.

С помощью того же Apache Velocity можно будет полностью избавиться от таких методов, как "showMainPage" и похожих. Все таки уже давно не "лихие девяностые", чтобы держать куски html, в коде, а тем более делать конкацию строк, при возможности использования StringBuilder'а. Это все не критично, но все равно, не слишком красиво, как по мне.

Пример одной из моих html с использованием Velocity:

Код:



Get zones

#color("LEVEL" "Список текущих зон")

#color("cccc99" "ID")
#color("cccc99" "Name")
#color("cccc99" "Type")
#color("cccc99" "Flags")
#color("cccc99" "Danger type")

#set($flags = $ZoneFlags.values())
#set($zones = $target.getZones())
#foreach($zone in $zones)

$zone.getId()
$zone.getName()
$zone.getImplName()

#set($zoneFlags = $zone.getFlags())
#foreach($flag in $flags)
#if($flag.isFlag(zoneFlags))
$flag.name()
#end
#end


#set($dangerType = $zone.getDangerType())
$dangerType.name()


#end

#color("LEVEL" "Текущие флаги:")

#color("cccc99" "Name")
#color("cccc99" "Count")

#set($zoneCounters = $target.getZoneFlagCounters())
#set($i = 0)
#foreach($counter in $zoneCounters)
#set($color = "ffffff")
#if($counter == 0)
#set($color = "999999")
#end

$flags[$i].name()
$counter

#set($i = $i + 1)
#end

mAnGoL
23.01.2016, 09:39
Ты пишешь, что к теме не имеешь отношения, но влез в нее давать советы. Итак.
Я так понимаю, что ты не понял почему я не просто так написал, что дегенерат, который кидается на людей, обосрался и что этот факт нельзя изменить.

Что ты собрался аппендить в этом классе? Или где ты и как поюзаешь хорошие фреймы? И почему ты думаешь, что нужно соединять какие-то строки в этом конкретном классе? Проще говоря - в чем по твоему говнокод?
Но следует учесть оптимизацию времени создания объекта и учесть специфику времени выполнения. Или какая цель в аппенде строк и применении хороших фреймов?
Прямо пример.


Дока вело и тима есть в свободном доступе. Так же там есть примеры.

Код:



protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}


Так же такой код можно будет собирать куда лучшим способом

Но я понел что таким как ты лучше вообще ничего не советовать. Тебе лишь бы свою желчь вылить на ровном месте, и не важно несешь ты полную херню или нет, главное что ты всегда прав.

П.С. Хочу увидеть где я сказал говнокод. Данный случай это случай когда не совсем удобно работать с таким кодом, я бы даже сказал совсем не удобно с ним работать, когда есть фреймы которые могут облегчить жизнь и читаемость данного кода.

Visor123
23.01.2016, 13:23
Дока вело и тима есть в свободном доступе. Так же там есть примеры.

Код:



protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}


Так же такой код можно будет собирать куда лучшим способом
Но я понел что таким как ты лучше вообще ничего не советовать. Тебе лишь бы свою желчь вылить на ровном месте, и не важно несешь ты полную херню или нет, главное что ты всегда прав.
П.С. Хочу увидеть где я сказал говнокод. Данный случай это случай когда не совсем удобно работать с таким кодом, я бы даже сказал совсем не удобно с ним работать, когда есть фреймы которые могут облегчить жизнь и читаемость данного кода.


Какую желчь, ты видишь кто эту тему создал?

Ты не сказал "говнокод", но начал подпрягаться - советы давать начал мне. Это есть в паре сообщений выше.

А чего ты не стал давать советы неадеквату, который эту тему создал?

Там не просто желчь - там говнище хлещет и пердак уже сгорел.



С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......

command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!


Денегерат, ты настолько тупой, что взял неиспользуемый в гейм-сервере класс

Ты настолько эпично обосрался в этой теме, что этот шедевр уже эпохальный.



Дока вело и тима есть в свободном доступе. Так же там есть примеры.
Так же такой код можно будет собирать куда лучшим способом
Но я понел что таким как ты лучше вообще ничего не советовать. Тебе лишь бы свою желчь вылить на ровном месте, и не важно несешь ты полную херню или нет, главное что ты всегда прав.
П.С. Хочу увидеть где я сказал говнокод. Данный случай это случай когда не совсем удобно работать с таким кодом, я бы даже сказал совсем не удобно с ним работать, когда есть фреймы которые могут облегчить жизнь и читаемость данного кода.


Начнем с начала.

Ты парой сообщений выше вылез подпрягаться за неадеквата, которого ты не знаешь и не знаешь прав ли он вообще. Ты просто увидел код и слова дегенерата.

Ты видимо решил, что денегерат - это жертва, а я на него нападаю? Нет - дегенерат это не жертва, это гниль - которая из него лезет до сих пор, как только я тыкнул в него куканом. Я не пишу гадости нормальным людям, но получается, что ты себя ассоциировал с этим недоумком, который выложил неиспользованный гейм-сервером класс пытаясь нагадить мне.

Пример - вот вы накинулись на анциента, "выгнать его, выгнать", потому что что? Так анциент это просто мелкий жулик, обман которого лежит на "поверхности", а есть действительно неприятные псевдо-личности. Но групповой инстинкт сработал и ты причислил себя к группе с этим дегенератом GenCloud - это и есть твоя ошибка. Далее ты уже пытался всячески лезть ко мне с советами, пытаясь предметно так подгадить чистую насадку на кукан дегенерата, который это заслужил.

Выводы: не ассоциируйте себя в группу с людьми, которых вы не знаете. Чаще всего типа яркие знатоки могут оказаться весьма неприятными и крайне ненадежными. Первое, что сделают такие псевдо-личности - это будут использовать вас по мелочам.

Выродки не случайно так себя ведут, они этому учатся еще с детского сада, как манипулировать другими. Понимают интуитивно, насколько у других людей сильно чувство группы, желание быть частью сильной группы.

Если вы "чувствуете", что что-то "мутное", лучше дождаться, когда "муть" пройдет, а в данном случае денегерат будет раскрыт и насажен на кукан.

Проблема выродков в том, что я не пытаюсь искать группу, чтобы быть частью сильной группы, и поэтому быстро замечаю их. Возможность эта в том, что я не обременяю себя мыслями, что незнакомый мне человек может написать на форуме правду. И конечно достаточно большой жизненный опыт в офисных интригах. Выродки хорошо имитируют обычных людей, кривляются, умничают и т.д.

Смотрите критически на то, что вам говорят и пишут, не полагайтесь на псевдо-экспертов - часто это могут оказаться дегенераты, подсовывающие вам очередную порцию вранья.

Elastic Heart
23.01.2016, 17:44
Дока вело и тима есть в свободном доступе. Так же там есть примеры.

Код:



protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder replyMSG = new TextBuilder(""+getName()+"");

replyMSG.append("[ "+getName()+" ]"
+""
+"");
replyMSG.append("
Engine instances");
replyMSG.append("");
for (L2EventGroupEngineInstance event : _eventInstances.values())
{
replyMSG.append(""+event.getName()+""
+""
+""
+""
);
}
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");
replyMSG.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}


Так же такой код можно будет собирать куда лучшим способом
Но я понел что таким как ты лучше вообще ничего не советовать. Тебе лишь бы свою желчь вылить на ровном месте, и не важно несешь ты полную херню или нет, главное что ты всегда прав.
П.С. Хочу увидеть где я сказал говнокод. Данный случай это случай когда не совсем удобно работать с таким кодом, я бы даже сказал совсем не удобно с ним работать, когда есть фреймы которые могут облегчить жизнь и читаемость данного кода.


А чем отличается TextBuilder от StringBuilder ?

zcxv
23.01.2016, 17:52
А чем отличается TextBuilder от StringBuilder ?


Тем что TextBuilder можно положить в кеш через рекукл.

mAnGoL
23.01.2016, 20:25
А чем отличается TextBuilder от StringBuilder ?


Не имею дел с еволюшеном.

GenCloud
24.01.2016, 20:41
Начнем с начала.
Ты парой сообщений выше вылез подпрягаться за неадеквата, которого ты не знаешь и не знаешь прав ли он вообще. Ты просто увидел код и слова дегенерата.
Ты видимо решил, что денегерат - это жертва, а я на него нападаю? Нет - дегенерат это не жертва, это гниль - которая из него лезет до сих пор, как только я тыкнул в него куканом. Я не пишу гадости нормальным людям, но получается, что ты себя ассоциировал с этим недоумком, который выложил неиспользованный гейм-сервером класс пытаясь нагадить мне.

Пример - вот вы накинулись на анциента, "выгнать его, выгнать", потому что что? Так анциент это просто мелкий жулик, обман которого лежит на "поверхности", а есть действительно неприятные псевдо-личности. Но групповой инстинкт сработал и ты причислил себя к группе с этим дегенератом GenCloud - это и есть твоя ошибка. Далее ты уже пытался всячески лезть ко мне с советами, пытаясь предметно так подгадить чистую насадку на кукан дегенерата, который это заслужил.

Выводы: не ассоциируйте себя в группу с людьми, которых вы не знаете. Чаще всего типа яркие знатоки могут оказаться весьма неприятными и крайне ненадежными. Первое, что сделают такие псевдо-личности - это будут использовать вас по мелочам.
Выродки не случайно так себя ведут, они этому учатся еще с детского сада, как манипулировать другими. Понимают интуитивно, насколько у других людей сильно чувство группы, желание быть частью сильной группы.
Если вы "чувствуете", что что-то "мутное", лучше дождаться, когда "муть" пройдет, а в данном случае денегерат будет раскрыт и насажен на кукан.

Проблема выродков в том, что я не пытаюсь искать группу, чтобы быть частью сильной группы, и поэтому быстро замечаю их. Возможность эта в том, что я не обременяю себя мыслями, что незнакомый мне человек может написать на форуме правду. И конечно достаточно большой жизненный опыт в офисных интригах. Выродки хорошо имитируют обычных людей, кривляются, умничают и т.д.
Смотрите критически на то, что вам говорят и пишут, не полагайтесь на псевдо-экспертов - часто это могут оказаться дегенераты, подсовывающие вам очередную порцию вранья.



И да, питушок ты наш - завалился бы и дальше сидел бы с кокс нюхал, как обычно ты и делаешь.

P.S. тронешь говно, вонять будет -> тронешь визора.... нутыпонел

Visor123
24.01.2016, 21:27
И да, питушок ты наш - завалился бы и дальше сидел бы с кокс нюхал, как обычно ты и делаешь.
P.S. тронешь говно, вонять будет -> тронешь визора.... нутыпонел


Обосрался, так рот закрой и не воняй. Уже показано какое-ты гнилое.

GenCloud
24.01.2016, 23:49
Обосрался, так рот закрой и не воняй. Уже показано какое-ты гнилое.


Бозечьки, бозечьки. Воняет твоя немытая жопа после получасового дрыстания дерьма.

P.S. "какое-ты" это пишется без дефиса.

Visor123
25.01.2016, 01:34
Бозечьки, бозечьки. Воняет твоя немытая жопа после получасового дрыстания дерьма.
P.S. "какое-ты" это пишется без дефиса.


Да с твоей жопой явно что-то не так

Ты не осилил обоврать факт, что ты явный дебил?Расскажи людям, зачем ты дебил взял не используемый класс и написал его в первом посте?

Поскольку говнокода в коде не найдено, прошу администрацию переместить тему в разоблачения ... (https://forum.antichat.xyz/forums/%D0%98%D0%BD%D1%82%D1%80%D0%B8%D0%B3%D0%B8-%D1%80%D0%B0%D1%81%D1%81%D0%BB%D0%B5%D0%B4%D0%BE%D 0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%80%D0%B0%D0%B7%D0%BE%D0%B1%D0%BB%D0%B0%D1%87%D 0%B5%D0%BD%D0%B8%D1%8F.45)

В теме хорошо разоблачен выставляющий себя экспертом клоун GenCloud.

Для тех, кто хочет еще улыбнуться с потуг GenCloud - это история, как покемон за свой ненужный код придумал цену в 18к рублей и ничего не получил (https://forum.zone-game.info/showthread.php?t=39782).

echipachenko
03.02.2016, 19:26
На самом деле, там действительно говно код.

Доказательства:

1. Много конкатенаций и вызовов getCommand(). Результат вызова надо закэшировать. Да и в принципе лучше явно команду указать, а не конкатенировать.

2. Вместо этого: "getCommand().length()+6" намного лучше получить длину строки с ЯВНОЙ команды, а не с этого.

3. Вместо 3-х вызовов eventName.isEmpty() намного логичнее сделать 1 и закешировать.

4. Конкатенация в TextBuilder - е

Итого: код имеет излишнюю нагрузку и почти не читаемый. Вывод - это говнокод.

НО! Лучше иметь работающий говнокод чем ненаписанный идеал.

Visor123
03.02.2016, 20:31
На самом деле, там действительно говно код.
Доказательства:
1. Много конкатенаций и вызовов getCommand(). Результат вызова надо закэшировать. Да и в принципе лучше явно команду указать, а не конкатенировать.
2. Вместо этого: "getCommand().length()+6" намного лучше получить длину строки с ЯВНОЙ команды, а не с этого.
3. Вместо 3-х вызовов eventName.isEmpty() намного логичнее сделать 1 и закешировать.
4. Конкатенация в TextBuilder - е

Итого: код имеет излишнюю нагрузку и почти не читаемый. Вывод - это говнокод.
НО! Лучше иметь работающий говнокод чем ненаписанный идеал.


getCommand() - команда может быть разной, я писал выше. Ее нельзя явно указать, это класс модели. Напиши пример кеширования команды, которая неизвестна на момент времени написания. То есть минимум 2 пункта поста выше - это бред.

Второе - разве обращение к переменной через метод ведет к копированию объекта и его передаче? Нет - объект передается по ссылке.

Конкатенция строк может быть в какой-то версии ява оптимизирована, и тогда "вдруг" это станет работать оптимизировано. Но оно и до и после не говнокод и не может им являтся, использование стандартных функций java не является говнокодом, если java не является говнокодом вообще.

3. Закешировать eventName.isEmpty() ?

4. Конкатенация в TextBuilder - фреймворк не менаяет подходов, он может что-то ускорить, но при этом модель кода не поменяется.

Нельзя любой не оптимизированный для данной версии java код называть говноком.

Пример - программы написанные на с++ и скомпиленные под конкретную платформу работают быстрее чем java - значить любое java-приложение говнокод?

Вот такой вот факт, что на самом деле там нет никакого говнокода. Все твои пункты являются как минимум спорными, а так вообще некорректными, как доказательство.

Опровергни.

Еще опровергни теперь ты факт номер 2 - этот класс не используется в сервере. Автоматически любые рассуждения теряют смысл, как вырванные из контекста. И этот факт доказывает, что чувак GenCloud настолько тупой, что даже не мог взять рабочий класс.

Опровергни.

Я так понимаю этот echipachenko тоже был в команде с GenCloud - или это только предположение?

Если же это так, то это выпрыгивание тоже автоматически цирковое, а не типа "объективное".

Тут рассуждение покемона GenCloud - который обосрался и не смог доказать, что даже нашел типа говнокод. Слово "говнокод" не формализовано и не равно слову "оптимизированный" или "не оптимизированный". Вопрос говнокода не доказан и может быть субъективным. Это факт номер 3.

Жду опровержения очевидных фактов.

echipachenko
03.02.2016, 23:42
1. Я более чем уверен что пока выполняется код метода, команда точно непоменяется, а это значит что getCommand() вернёт одинаковый результат.

А даже если меняется - то это в корне не правильно.

Ибо вы при первом вызове к примеру сравниваете результат с "предполагаемым значением", а так как команда может поменяться, то у Вас есть случай непопадания не под один ИФ, потому что при первой проверке команда была одна, а при второй другая, но она могла подойти под первый иф, в следствии чего обработка не запустится.

3. Имеется ввиду сделать так: boolean isEmpty = eventName.isEmpty(); if (!isEmpty) {....}

4. Во первых это не фреймворк. Во вторых конкатенация во всех подобных случаях ведёт к неявному созданию StringBuilder-a, смысл тогда юзать текстбилдер пропадает. И что бы Вы понимали, в чём отличия фреймворка от библиотекы: фреймворк дает Вам Flow и LifeCycle, которому Вы должны подчинятся.

Согласитесь, этот код не идеален. А вот используется этот класс или не используется - это уже не моё дело.

Visor123
04.02.2016, 00:57
1. Я более чем уверен что пока выполняется код метода, команда точно непоменяется, а это значит что getCommand() вернёт одинаковый результат.
А даже если меняется - то это в корне не правильно.
Ибо вы при первом вызове к примеру сравниваете результат с "предполагаемым значением", а так как команда может поменяться, то у Вас есть случай непопадания не под один ИФ, потому что при первой проверке команда была одна, а при второй другая, но она могла подойти под первый иф, в следствии чего обработка не запустится.
3. Имеется ввиду сделать так: boolean isEmpty = eventName.isEmpty(); if (!isEmpty) {....}
4. Во первых это не фреймворк. Во вторых конкатенация во всех подобных случаях ведёт к неявному созданию StringBuilder-a, смысл тогда юзать текстбилдер пропадает. И что бы Вы понимали, в чём отличия фреймворка от библиотекы: фреймворк дает Вам Flow и LifeCycle, которому Вы должны подчинятся.

Согласитесь, этот код не идеален. А вот используется этот класс или не используется - это уже не моё дело.


по 1 - getCommand() всегда вернет ссылку на строку, которая во время рантайма не меняется. Это очевидно.

Каждый следующий вызов эквивалентен просто обращению к объекту String по ссылке, поэтому кол-во вызовов ничего не меняет. Это очевидно.

3 - пустая строка - с большой вероятностью это не сложно-вычисляемое значение (тики типа (length ==0) настолько некритичны в общем процессорном времени, что оптимизировать это кеширование в занимаемую память переменную не полезно) - кешировать его уже похоже на говнокод. Это тоже очевидно.

4 - под фреймворком я подразумеваю нативные или другие отдельные классы для работы со строками, по сути создание всех этих классов под каждое значение это не особо хороший стиль.

Код не идеален, но это никак не говнокод. Применение оптимизаций может привести как минимум к плохому стилю и усложнить понимание конструкции.

Таковы факты, которые ты так и не опроверг.

Кроме этого я больше чем уверен, что то что написал ты или GenCloud уж точно не идеально, и вообще неизвестно где, поскольку я пишу очевидные вещи - а в ответ какое-то мутное мычание словами, типа "согласись код не идеален" - "код не идеален" и "говнокод" - это разные вещи. В java априори в 90% случаев можно спорить над идеальностью кода, и еще больше, если рассмотреть его выполнение.

И это тоже факт, который ты не сможешь опровергнуть.

И последний факт - это именно GenCloud создал эту тему и именно чтобы попытаться нагадить мне.

Опровергни этот факт.

А теперь давайте узнаем немного о конкатенции строк оператором "+":

The Java language provides special support for the string concatenation operator ( + ), and for conversion of other objects to strings. String concatenation is implemented through the StringBuilder(or StringBuffer) class and its append method. String conversions are implemented through the method toString, defined by Object and inherited by all classes in Java. For additional information on string concatenation and conversion, see Gosling, Joy, and Steele, The Java Language Specification.

Источник (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html)

Кто опровергнет этот факт?

velafrys
04.02.2016, 16:30
А теперь давайте узнаем немного о конкатенции строк оператором "+":
The Java language provides special support for the string concatenation operator ( + ), and for conversion of other objects to strings. String concatenation is implemented through the StringBuilder(or StringBuffer) class and its append method. String conversions are implemented through the method toString, defined by Object and inherited by all classes in Java. For additional information on string concatenation and conversion, see Gosling, Joy, and Steele, The Java Language Specification.
Источник (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html)
Кто опровергнет этот факт?



Я не хочу показать, чью сторону я принимаю и принимаю ли я вообще в этом споре, сказать сложно, но раз уж такое дело, то вот Вам задачка.

Есть два куска кода :

Код:


[CODE]
String s = "";
for(int i = 0; i

Код:


[CODE]
StringBuilder sb = new StringBuilder("");
for(int i = 0; i

Какой из участков выполнится быстрее? И как время выполнение кода, если количество итераций в цикле увеличится в обоих случаях? Ведь это условная величина.

Не имеет значения, как Вы получите ответ - прогоните этот код, или из своего опыта сможете сказать, важно чтобы Вы поняли, зачем я задаю такой вопрос.

GenCloud
04.02.2016, 16:46
[QUOTE="velafrys"]

Я не хочу показать, чью сторону я принимаю и принимаю ли я вообще в этом споре, сказать сложно, но раз уж такое дело, то вот Вам задачка.
Есть два куска кода :

Код:


[CODE]
String s = "";
for(int i = 0; i

velafrys
04.02.2016, 16:51
2 вариант быстрей. Но при увеличении итерации сжирает больше ОЗУ


Как часто тебе говорят, что ты в каждой бочка затычка?

Вопрос был адресован Визору, а не мамкиным погромистам.

GenCloud
04.02.2016, 17:05
Как часто тебе говорят, что ты в каждой бочка затычка?
Вопрос был адресован Визору, а не мамкиным погромистам.


Рили? "Вам" это епт бля кому. Ну на счет мамкиным... кхем, а вы мсье нонейм откуда вылезли?

velafrys
04.02.2016, 17:56
Рили? "Вам" это епт бля кому. Ну на счет мамкиным... кхем, а вы мсье нонейм откуда вылезли?


Ты недавно там на ошибки указывал, да?

Если написано "Вам", а не "вам", то как думаешь - кому я написал?

Твой уровень репутации на зоне/здесь не поднимает твой уровень как разработчика.

Ровно как и жизненный опыт Визора не поднимает его уровень.

Visor123
05.02.2016, 16:16
Рили? "Вам" это епт бля кому. Ну на счет мамкиным... кхем, а вы мсье нонейм откуда вылезли?


Администрация, обратите внимания: выродок(точная типизация) оскорбил человека.

Это один из примеров в рассказе про "ужимки пидаров", который будет позже.

mAnGoL
05.02.2016, 16:28
Close без лишних вопросов.

Visor123
05.02.2016, 17:36
[QUOTE="velafrys"]

Я не хочу показать, чью сторону я принимаю и принимаю ли я вообще в этом споре, сказать сложно, но раз уж такое дело, то вот Вам задачка.
Есть два куска кода :

Код:


[CODE]
String s = "";
for(int i = 0; i

velafrys
05.02.2016, 18:20
Я не тестировал, но предположу что быстрее будет на ассемблере

Не получится перевести стрелку в обратную сторону, каждое мое утверждение либо можно подтвердить, либо опровергнуть, но только самостоятельно. Пока сообщение ничего не подтверждает и не опровергает.



Не нужно воспринимать сообщения, который Вас не поддерживает как поддержку GenCloud, ровно как и вопросы, на которые Вы не можете ответить.

GenCloud уже ответил на вопрос - второй участок кода выполнится быстрее.

К чему я его задавал?

Я просто хотел показать, что писать нормальнонужно сразу.Не нужно мне говорить, мол, "код не оптимизирован" и все такое. Это не тот случай, чтобы простые вещи оптимизировать когда-то там. Нужно использовать StringBuilder, а не рассказывать кулстори. В любом случае, Ваш код менее производителен, в плане этих конкатенаций в цикле.

И я даже не знаю, удивляться мне или нет тому, что Вы не смогли прямо ответить на вопрос, а задвигаете речи про ассемблер.

Здесь "оптимизация" не уровня ассемблерных ставок, а скорее хорошего тона, или просто знание базовых вещей.

Опровергнете это?

Visor123
05.02.2016, 18:47
Не нужно воспринимать сообщения, который Вас не поддерживает как поддержку GenCloud, ровно как и вопросы, на которые Вы не можете ответить.
GenCloud уже ответил на вопрос - второй участок кода выполнится быстрее.
К чему я его задавал?
Я просто хотел показать, что писать нормальнонужно сразу.Не нужно мне говорить, мол, "код не оптимизирован" и все такое. Это не тот случай, чтобы простые вещи оптимизировать когда-то там. Нужно использовать StringBuilder, а не рассказывать кулстори. В любом случае, Ваш код менее производителен, в плане этих конкатенаций в цикле.

И я даже не знаю, удивляться мне или нет тому, что Вы не смогли прямо ответить на вопрос, а задвигаете речи про ассемблер.
Здесь "оптимизация" не уровня ассемблерных ставок, а скорее хорошего тона, или просто знание базовых вещей.

Опровергнете это?


Дописать туда StringBuilder - это типа для чего?

Код не просто "не оптимизирован", а он не нуждается в такой "оптимизации" вообще.

Добавление StringBulder сделает из кода говнокод в этом конкретном случае. И абсолютно ничего не решит. Это достаточно очевидный факт. Я так понимаю, что ты этого не понимаешь.

Вот такое простое опровержение фактом. А буду еще факты.

Ты не опроверг еще ни одно утверждение, и особенно утверждение, что код пишется для выполнения - ты не согласен с этим фактом?

Я еще раз настаиваю на том факте, что код написанный на ассемблере для конкатенции строк будет работать быстрее чем пример на java.

Опровергни это, ты же рассуждаешь о примере - вот тебе пример.


Еще одно, с чего ты решил что ассемблер - это всегда вставка в java-коде?

И последнее утверждение, с чего ты решил, что все очерчено рамками примера?

Жду

GenCloud
05.02.2016, 18:49
Я не тестировал, но предположу что быстрее будет на ассемблере
Утверждение состоит в том, что есть такая информация по работе с конкатенцией строк - источник я тоже привел, кто хочет может проверить и сообщить результаты.
В данном случае речь идет не о 100000 конкатенций, а о том, что конкатенция строк не такая уж и медленная процедура сама по себе. Вырывание класса без контента целей его написания глупо само по себе и последовательно это будет понятно. И соответственно, что выродок дернул код не понимая, почему он так написан, думая что это говнокод, а так же будет доказано - что выродок - это не оскорбление человек - а именно выродок наглый и тупой.
Не получится перевести стрелку в обратную сторону, каждое мое утверждение либо можно подтвердить, либо опровергнуть, но только самостоятельно. Пока сообщение ничего не подтверждает и не опровергает.

В итоге последовательных рассуждений мы увидим, что это не только не говнокод, и даже что это не плохой код или как там писал "код не идеален", а оптимальное решения для своей задачи и сделанное именно вот так в таком вот классе.

Следующее утверждение такое: код пишется для того, чтобы выполняться. Классы пишутся, чтобы выполнять свою объектную задачу и цель их написания может быть формализована.
Кто опровергнет такое утверждение?

Visor123
05.02.2016, 18:52
Теперь обратите внимание как обосрался GenCloud - он не в состоянии опровергнуть тот факт, что конкатенция строк на ассемблере будет выполняться быстрее.

Жду опровержения, или GenCloud обычный клоун.

И обратите внимание как дегенерат GenCloud кривляется, видео выкладывает даже, типа такой шутник.

velafrys
05.02.2016, 18:59
Дописать туда StringBuilder - это типа для чего?
Код не просто "не оптимизирован", а он не нуждается в такой "оптимизации" вообще.
Добавление StringBulder сделает из кода говнокод в этом конкретном случае. И абсолютно ничего не решит. Это достаточно очевидный факт. Я так понимаю, что ты этого не понимаешь.
Вот такое простое опровержение фактом. А буду еще факты.
Ты не опроверг еще ни одно утверждение, и особенно утверждение, что код пишется для выполнения - ты не согласен с этим фактом?

Опровержение, не здесь, в вообще код написанный на ассемблере по конкатенции строк будет выполнятся быстрее чем твой конкретный пример на java.
Опровергни это, ты же рассуждаешь о "вообще"



StringBuilder - это типа для того, чтобы строку билдить.

Он придуман для этого, именно для этого.

И он работает быстрее, и в коде выглядит приятнее.

Я понять не могу, для Вас качество кода и эффективность работы это не аргумент?

"Код пишется для выполнения" - это по определению, тут доказывать ничего не надо.

Но если выбирать между понятным и эффективным кодом (который выполняется/работает) и просто кодом (который выполняется, фиг знает как, конечно, ведь все в конкатенациях, при этом мысль о том, что каждый раз в итерации цикла будет неявно создаваться экземпляр StringBuilder не дает покоя), то я выбираю первое.

Visor123
05.02.2016, 19:06
StringBuilder - это типа для того, чтобы строку билдить.
Он придуман для этого, именно для этого.
И он работает быстрее, и в коде выглядит приятнее.
Я понять не могу, для Вас качество кода и эффективность работы это не аргумент?

"Код пишется для выполнения" - это по определению, тут доказывать ничего не надо.
Но если выбирать между понятным и эффективным кодом (который выполняется/работает) и просто кодом (который выполняется, фиг знает как, конечно, ведь все в конкатенациях, при этом мысль о том, что каждый раз в итерации цикла будет неявно создаваться экземпляр StringBuilder не дает покоя), то я выбираю первое.


С чего ты решил, что все очерчено рамками твоего примера?

Это ключ, ответ на который даст тебе ответ на все остальные твои вопросы.

""Код пишется для выполнения" - это по определению, тут доказывать ничего не надо."

Конкретно для тебя это не очевидно судя из твоих речей, потому что ты не понял что это вообще за класс и какие он выполняет задачи. Когда выродок кинул класс без контекста приложения, это тоже самое что из 4 томов "Война и Мир" взять слово "Война" и сказать что это плохо.

А писать на каждую проверку по StringBuilder или что ты там подразумеваешь, это говнокод. Это очевидно, разве не так?

Ты уж определись, ты рассуждаешь о вообще или о конкретной реализации чего, ты знаешь чего?

Могу так же уверить вас, что на 99,999% выродок тоже не в курсе что он взял за класс.

GenCloud
05.02.2016, 19:25
Теперь обратите внимание как обосрался GenCloud - он не в состоянии опровергнуть тот факт, что конкатенция строк на ассемблере будет выполняться быстрее.
Жду опровержения, или GenCloud обычный клоун.

И обратите внимание как дегенерат GenCloud кривляется, видео выкладывает даже, типа такой шутник.

Шутка состоит в том, что выродка Gencloud поймали и он тут кривляется.


Да жди пока рак на горе свиснет, дискаса не будет с хохло выродками.

velafrys
05.02.2016, 19:28
потому что ты не понял что это вообще за класс и какие он выполняет задачи.



Я вижу кусок кода, где в цикле кишат конкатенации (которые медленнее и неудобнее, в плане поддержки кода), вместо использования .append.

Какая разница, что делает класс? Или если я вырвал из контекста, то я упустил возможность предположить заведомо неэффективную работу класса?



А писать на каждую проверку по StringBuilder или что ты там подразумеваешь, это говнокод. Это очевидно, разве не так?



Речь ведь о цикле идет. Про эти тонны if - я ничего не говорю.

У меня нет цели разводить ругань, и уж тем более поддерживать GenCloud.



Ты уж определись, ты рассуждаешь о вообще или о конкретной реализации чего, ты знаешь чего?


И то, и другое. Совместимые вещи в этом случае.

"Еще одно, с чего ты решил что ассемблер - это всегда вставка в java-коде?"

Я не сказал, что всегда. Речь была о конкатенации строк и StringBuilder, а Вы приплели ассемблер.

И вообще, что за игры в презумпцию виновности? Почему кто-то должен что-то опровергать и доказывать?

Я просто привожу факт: склеивание строк исключительнос помощью StringBuilder лучше, нежели с использованием "+".

В ответ же слышу рассказы о том, что GenCloud плохой(скорее всего может оно и так, но я не за этим сюда пришел), из контекста все вырвали, да вообще не знаем этот класс нужен. Да вот только все это не важно.

Плохойучасток кода в классе делает класс плохим.

В ответ на это слышу рассказы о том, что вырвали неиспользуемый класс.

Ну раз так, то пока он использовался там было все нормально, а как перестал использоваться - конкатенаций настрочили, да?

Visor123
05.02.2016, 19:44
Я вижу кусок кода, где в цикле кишат конкатенации (которые медленнее и неудобнее, в плане поддержки кода), вместо использования .append.


"В цикле кишат конкатенции"? Где там цикл конкатенций в моем классе?

Покажи конктерное место, где цикл конкатенций и как твой пример относится к моему классу.

То что в одном блоке if идут конкатенции в разные переменные - именно так и нужно для проверок, иначе эту задачу не решить не клонируя класс для множества типов. Или ты думаешь что ты решишь эту задачу?

Не смеши про append. пример приведи))))

Перед этим пример был некорректным для представленного класса.

velafrys
05.02.2016, 19:47
Код:



for (L2EventGroupEngineInstance event: _eventInstances.values()) {
replyMSG.append("" + event.getName() + "" + "" + "" + "");
}


Вот этот цикл.

Visor123
05.02.2016, 19:51
И то, и другое. Совместимые вещи в этом случае.

"Еще одно, с чего ты решил что ассемблер - это всегда вставка в java-коде?"
Я не сказал, что всегда. Речь была о конкатенации строк и StringBuilder, а Вы приплели ассемблер.

И вообще, что за игры в презумпцию виновности? Почему кто-то должен что-то опровергать и доказывать?
Я просто привожу факт: склеивание строк исключительнос помощью StringBuilder лучше, нежели с использованием "+".
В ответ же слышу рассказы о том, что GenCloud плохой(скорее всего может оно и так, но я не за этим сюда пришел), из контекста все вырвали, да вообще не знаем этот класс нужен. Да вот только все это не важно.

Плохойучасток кода в классе делает класс плохим.
В ответ на это слышу рассказы о том, что вырвали неиспользуемый класс.
Ну раз так, то пока он использовался там было все нормально, а как перестал использоваться - конкатенаций настрочили, да?


Нельзя совместить "то и другое", ты не тот пример взял - ты его глянь - он очевиден для случая конкатенции в 1 класс StringBuilder и в переменную с явным циклом.

Но для случая "1"+"2" так и со StringBuilder ответ не очевиден, скорее всего что время выполнения будет одинаковым.

В моем классе соединять все строки в 1 переменную StringBuilder - это вообще как тогда проверять что-то?

Почему ответ был, что конкатенция быстрее на ассемблере, потому что твой пример не включает варианты моего класса про цикл (из серии что быстрее, но оно не надо быстрее - нужно проверить варианты, а не соединить много строк), а вот реализация конкатенции вообще любыми методами включает мой класс - так что мой ответ правильный.

volond1
05.02.2016, 19:52
Я чет не понимаю, если не за хрен кусить так ник нафиг курочить

velafrys
05.02.2016, 19:55
В моем классе соединять все строки в 1 переменную StringBuilder - это вообще как тогда проверять что-то?


Что именно проверять, если в этом цикле нет проверок?

Сплошное склеивание строк.

Visor123
05.02.2016, 19:57
Код:



for (L2EventGroupEngineInstance event: _eventInstances.values()) {
replyMSG.append("" + event.getName() + "" + "" + "" + "");
}


Вот этот цикл.


Вообще-то GenCloud не об этом писал, но этот вариант тоже неплох.

Рассматривает 1 строку

replyMSG.append("" + event.getName() + "" + "" + "" + "");

есть высокая вероятность что оптимизатор не будет делать пример, когда каждое объединение будет выполняться с созданием нового StringBulder, было бы глупо так делать, а разработчики java судя по всему не так глупы. Это все может быть как раз переведено в код с 1 классом StringBuilder и append.

Это рассуждения конечно, но и решать сразу что оптимизатор пойдет по медленному пути не правильно.

velafrys
05.02.2016, 20:04
В случае с использованием "+" внутри .append() (как у Вас и сделано) код превратится вот в это :

Код:



replyMSG.append(new StringBuilder("").append(event.getName()).append("").append("").append("").append("").toString());


Т.е. каждую итерацию цикла будет создаваться новый экземпляр StringBuilder.

Зачем это, если Вы уже используете TextBuilder, и можете использовать .append(), вместо использования "+" ?

Visor123
05.02.2016, 20:06
Что именно проверять, если в этом цикле нет проверок?
Сплошное склеивание строк.


Да, именно и нужно "склеивание 2 строк" в верхнем блоке с проверками, а в нижнем передано на решение оптимизитора java.

Твои абстрактные рассуждения не помогут решить задачи, выполняемые классом.

Итак даю подсказку. Класс - общий класс иерархии групп-эвентов, содержит в себе решения общие для всех наследуемых его классах. Кол-во эвентов на момент разработки неизвестно, есть вероятность что их будет более 2х, может и 1, пока планируется один.

Ничего необычного в общем-то.

Вторая подсказка - методы данного класса используются только на момент настройки эвентов. Настройка эвентов происходит редко.

Вопрос - нужно ли оптимизацию скорости выполнения без конкатенций в проверках выносить ключевым?

Вопрос - нужно ли оптимизация строки генерирования странички html выносить ключевым?

Вопрос - нужно ли поставить ключевым вопрос ООП и экономии памяти из-за крайне редкого использования?



В случае с использованием "+" внутри .append() (как у Вас и сделано) код превратится вот в это :

Код:



replyMSG.append(new StringBuilder("").append(event.getName()).append("").append("").append("").append("").toString());


Т.е. каждую итерацию цикла будет создаваться новый экземпляр StringBuilder.
Зачем это, если Вы уже используете TextBuilder, и можете использовать .append(), вместо использования "+" ?


Можно было бы городить велосипед для 2-3 циклов с 1 экземпляром билдера, но для пары-тройки итераций код будет излишним, а вопрос скорости работы не решит. То есть создание 1 или 2 билдеров - это скажем так "оптимизация" весьма не очень полезная, выигрыш может и будет несколько наносекунд, но я считаю, что лаконичность кода в данном случае лучше.

А назвать этот конкретный цикл прямо говнокодом - это уже ни в какие ворота.

velafrys
05.02.2016, 20:17
А назвать этот конкретный цикл прямо говнокодом - это уже ни в какие ворота.


А если бы здесь было 9000 ивентов, то можно?

Суть в том, что условности рода "предполагается, количество ивентов не превысит 2-3" не дают права писать подобные конструкции.

Естественно, это Ваш проект, и Вам решать, как Вам удобнее работать и какие условности соблюдать.

Вот только этот код каким-то образом стал публичным, следовательно он подчиняется правилам общего использования.

Настоятельно прошу не пропускать мои сообщения через призму токсичного первого поста GenCloud.

Visor123
05.02.2016, 20:17
Мало того, когда 1 итерация цикла, получается что явное объявления билдера перед циклом выглядит громоздко и может претендовать на звание "говнокод".

Или ты (имеется ввиду velafrys) прямо сразу исключаешь такое граничное условие?

Дорогой - это мой проект, мои клиенты и мои потребности - за 8 лет я знаю что и сколько примерно будет. Не будет никаких 9000 эвентов. Их даже много придумать сложно, то есть предметная область в данном случае прогнозируема.

Я в данном случае выступаю и заказчиком.

То что код попал в шару - это же не конец света, но это не значить что какой-то выродок может вполне оптимальный для задач класс кидать и кричать - "это говнокод".

Чтобы рассуждать о говнокоде - мало видеть код, еще полезно проверить граничные условия, возможно что код и не требует излишних оптимизаций.

Если бы оптимизация была нужна, я бы это делал сразу.

velafrys
05.02.2016, 20:25
Тогда зачем доказывать, что в плане эффективности и производительности разницы нет? Ещё и о ассемблере речь.

Visor123
05.02.2016, 20:31
Тогда зачем доказывать, что в плане эффективности и производительности разницы нет? Ещё и о ассемблере речь.


Если речь идет об астрактной работе со строками и их объединением в памяти то реализация на ассемблере с большой вероятностью будет работать быстрее реализации на java.

Но в данном то конкретном случае мы имеем условия, близкие к граничным, когда цикл выполнится 1 раз, и может когда-нибудь 2 раза. Соответственно ответ уже будет другой, скорее всего что будет одинаково для 1 раза.

Итог - говнокод в коде не найден для имеющихся условий, или еще хочешь обсудить какой-то участок?

velafrys
05.02.2016, 20:41
Речь идет не о java vs assembler, а о StringBuilder vs "+" in StringBuilder.

Visor123
05.02.2016, 20:42
Да жди пока рак на горе свиснет, дискаса не будет с хохло выродками.


Выродок, ты как бы не выкручивался - факт твоей тупизны доказан и очевиден.

Администрация, прошу обратить внимание на оскорбление по национальному признаку.



Речь идет не о java vs assembler, а о StringBuilder vs "+" in StringBuilder.


Ты решил придумать границы, но в данном случае я расширил границы. То есть при максимальной оптимизации лучше взять именно ассемблер. И только потом можно работать с частными случаями, а в частных случаях при 1 итерации лучший вариант, который короче пишется, скорость то одинаковая.

То есть из частных случаев я выбрал наиболее оптимальный вариант.

А цикл там нужен на случай, если эвентов будет более одного, для корректной работы модели.

velafrys
05.02.2016, 20:50
А Вы способны реализовать оптимизацию в этом классе на ассемблере?

Visor123
05.02.2016, 20:57
А Вы способны реализовать оптимизацию в этом классе на ассемблере?


Если вопрос теоретический - могу ли я реализовать сборку html ответа на ассемблере в данном классе - думаю что смог бы, но в данном случае отвечу что "нет".



И вообще, что за игры в презумпцию виновности? Почему кто-то должен что-то опровергать и доказывать?
Я просто привожу факт: склеивание строк исключительнос помощью StringBuilder лучше, нежели с использованием "+".
В ответ же слышу рассказы о том, что GenCloud плохой(скорее всего может оно и так, но я не за этим сюда пришел), из контекста все вырвали, да вообще не знаем этот класс нужен. Да вот только все это не важно.

Плохойучасток кода в классе делает класс плохим.
В ответ на это слышу рассказы о том, что вырвали неиспользуемый класс.
Ну раз так, то пока он использовался там было все нормально, а как перестал использоваться - конкатенаций настрочили, да?


Говоришь, не важно как используется код?

Плохой участок кода говоришь?

Да только не нашел ты "плохой" участок кода.

Если ты хочешь обгадить другого человека, то да, тебе это нужно доказывать.

Еще есть интересный момент, поскольку это новый нонейм-аккаунт и кода твоего никто не видел то возникает ряд вопросов:

1. Чего это ты именно сейчас возник из ниоткуда жопу рвать за GenCloud - это тебя кто-то надоумил? С чего такая прыть?

2 Может еще и на ЗГ скажешь какой у тебя ник?

Может конечно все это совпадение и я зря такой подозрительный, но бывают разные "ужимки ...".

mAnGoL
06.02.2016, 04:15
Говоришь, не важно как используется код?
Плохой участок кода говоришь?
Да только не нашел ты "плохой" участок кода.

Если ты хочешь обгадить другого человека, то да, тебе это нужно доказывать.

Еще есть интересный момент, поскольку это новый нонейм-аккаунт и кода твоего никто не видел то возникает ряд вопросов:
1. Чего это ты именно сейчас возник из ниоткуда жопу рвать за GenCloud - это тебя кто-то надоумил? С чего такая прыть?
2 Может еще и на ЗГ скажешь какой у тебя ник?

Может конечно все это совпадение и я зря такой подозрительный, но бывают разные "ужимки ...".

Influence
06.02.2016, 04:41
Говоришь, не важно как используется код?
Плохой участок кода говоришь?
Да только не нашел ты "плохой" участок кода.

Если ты хочешь обгадить другого человека, то да, тебе это нужно доказывать.

Еще есть интересный момент, поскольку это новый нонейм-аккаунт и кода твоего никто не видел то возникает ряд вопросов:
1. Чего это ты именно сейчас возник из ниоткуда жопу рвать за GenCloud - это тебя кто-то надоумил? С чего такая прыть?
2 Может еще и на ЗГ скажешь какой у тебя ник?

Может конечно все это совпадение и я зря такой подозрительный, но бывают разные "ужимки ...".


я конечно не на что не претендую, но по первому пункту, мне показалось что человек явно дал понят что отношения у него ко всем одинаковое

velafrys
06.02.2016, 11:19
Говоришь, не важно как используется код?
Плохой участок кода говоришь?
Да только не нашел ты "плохой" участок кода.

Если ты хочешь обгадить другого человека, то да, тебе это нужно доказывать.

Еще есть интересный момент, поскольку это новый нонейм-аккаунт и кода твоего никто не видел то возникает ряд вопросов:
1. Чего это ты именно сейчас возник из ниоткуда жопу рвать за GenCloud - это тебя кто-то надоумил? С чего такая прыть?
2 Может еще и на ЗГ скажешь какой у тебя ник?

Может конечно все это совпадение и я зря такой подозрительный, но бывают разные "ужимки ...".



Не нужно судить по себе или по GenCloud, я не знаю по кому ещё.

Если уж речь идет про "обгадить", то целей таких не преследую. Мне кажется не очень-то похоже, что я в каких-то отношениях с GenCloud, будь то дружеские или партнерские, я же ноунейм, хех.

Старайтесь хладнокровно относиться ко всему, работа - есть работа, личные отношения - есть личные отношения. Вы рьяно начали защищать свой подход сломя голову, а я просто периодически захожу на этот форум, в режиме only-read, т.к. он выглядит приятнее, чем ЗГ. Когда-то в сентябре мне кинули ссылку на тред, а тут стало интересно, чего это профессионалы как дети уже 3 с лишним месяца обсуждают.

Кому я должен доказывать? Вам? А Вы беспристрастны и объективны? - Нет

Потому что речь идет о Вашемкоде, ошибок своих признавать Вы не умеете, хоть частично, пытаетесь навязать свои вкусы и подход (я на тему того, что конкатенация для Вас выглядит удобнее, нежели .append). Вам достаточно было ответить топик стартеру в подобном тоне и роде, и в этом случае тема была бы страниц на 6 меньше :



Мало того, когда 1 итерация цикла, получается что явное объявления билдера перед циклом выглядит громоздко и может претендовать на звание "говнокод".
Или ты (имеется ввиду velafrys) прямо сразу исключаешь такое граничное условие?

Дорогой - это мой проект, мои клиенты и мои потребности - за 8 лет я знаю что и сколько примерно будет. Не будет никаких 9000 эвентов. Их даже много придумать сложно, то есть предметная область в данном случае прогнозируема.

Я в данном случае выступаю и заказчиком.
То что код попал в шару - это же не конец света, но это не значить что какой-то выродок может вполне оптимальный для задач класс кидать и кричать - "это говнокод".
Чтобы рассуждать о говнокоде - мало видеть код, еще полезно проверить граничные условия, возможно что код и не требует излишних оптимизаций.
Если бы оптимизация была нужна, я бы это делал сразу.



Я все сказал, удачи Вам в поддержке Вашего проекта.

WoWan-SM
06.02.2016, 14:43
Я не хочу показать, чью сторону я принимаю и принимаю ли я вообще в этом споре, сказать сложно, но раз уж такое дело, то вот Вам задачка.
Есть два куска кода :

Код:



String s = "";
for(int i = 0; i " + event.getName() + "" + "" + "" + "");
}


Вот этот цикл.





Вопрос - нужно ли оптимизацию скорости выполнения без конкатенций в проверках выносить ключевым?


Нужно



Вопрос - нужно ли оптимизация строки генерирования странички html выносить ключевым?


Нужно



Вопрос - нужно ли поставить ключевым вопрос ООП и экономии памяти из-за крайне редкого использования?


Нужно

И да... getCommand(), если вы сами говорите может в процессе изменятся, то ведь пи***ц может начать твориться, код может в таких случаях либо не выполняться так как надо, либо вообще не выполнятся. Так что надо объявить её обязательно в начале.

gattsu
06.02.2016, 20:10
Код:



String a = "a";
String b = "b";
System.out.println((a + b));


Код:



0 ldc 16; /* "a" */
2 astore_1; /* a */
/* L7 */
3 ldc 18; /* "b" */
5 astore_2; /* b */
/* L8 */
6 getstatic 20; /* java.lang.System.out */
9 new 26;
12 dup;
13 aload_1; /* a */
14 invokestatic 28; /* java.lang.String java.lang.String.valueOf(java.lang.Object b) */
17 invokespecial 34; /* java.lang.StringBuilder(java.lang.String a) */
20 aload_2; /* b */
21 invokevirtual 37; /* java.lang.StringBuilder append(java.lang.String b) */
24 invokevirtual 41; /* java.lang.String toString() */
27 invokevirtual 45; /* void println(java.lang.String b) */


как показывает опыт, java и оптимизация вещи не совместимые. Легче плюнуть и пойти бухать

velafrys
06.02.2016, 21:09
как показывает опыт, java и оптимизация вещи не совместимые. Легче плюнуть и пойти бухать


В scala, как я понимаю, все иначе?

echipachenko
06.02.2016, 22:55
В итоге, WoWan-SM и gattsu, доказали то что я писал пару постов назад.

Так что, дорогой visor, Вы не только пишите не оптимизированный, и не читаемый код, но еще и как человек - немного неадекватны.

Вам сделали 100 прямых замечаний, в Вы ищете миллион отмазок.

Смотрите что бы корона с Вашей головы не упала Король Визор123)

Вы опозорились больше всех в этой теме. Вместо того что бы признать свои ошибки - всякую чушь несёте.

Удачи Вам!

Visor123
07.02.2016, 01:15
О чем вы тут пишете? В цикле или 0 или 1 итерация.

Так же можете померять время итерации "a"+"b"

То есть к чему цикл в 100000 итераций? Попытка перевести тему в другую сторону - так опять же я дал самый правильный ответ, что для достижения максимальной скорости выполнения нужно писать на ассемблере - и это никто пока не смог опровергнуть.

Корону тут натягивают как раз все кому не лень, посмотрите свои ответы.



Первый цикл ~52 секунды
Второй цикл ~ 4 милисекунды

Второй не сжирает, там нечему сжирать.
А вот первый сжирает овердохера с горочкой и если находиться в полной тишине, то можно услышать как скрипит GC

Ага, она не такая уж медленная, она п***ец какая медленная.

Как раз таки наоборот - сделает конфетку.

Не может, пару десятков или сотен мс.

Кто вам сказал про такой бред? Ни один хороший Java программист вам такого никогда не скажет.

Нужно

Нужно

Нужно

И да... getCommand(), если вы сами говорите может в процессе изменятся, то ведь пи***ц может начать твориться, код может в таких случаях либо не выполняться так как надо, либо вообще не выполнятся. Так что надо объявить её обязательно в начале.


Неправильный ответ ни для 0 ни для 1 итерации цикла, измерять нужно то что есть в задаче 1 поста, а не в выдуманном примере, который хочется измерять - там вообще-то все очевидно было еще до него.

getCommand() задается 1 раз при создании объекта.

Насчет добавить StringBuilder Для 0 итераций очень сильно ускорит и сделает конфетку?

Да и вообще у вас ответы противоречат - нельзя выбрать или быстрее или экономнее.

Самый экономный вариант памяти, который при создании объекта занимает минимальное кол-во памяти, другой вариант - это если переписать без конкатенций строк - этот вариант будет самый быстрый, быстрее чем любые StringBuilder. Это очевидно, странно что реальную оптимизацию не никто смог сделать - вы же писали столько слов .... и даже не смогли найти что оптимизировать ....

Почему никто не смог ничего придумать, кроме глупого цикла на 100000 итераций вместо 0-1 реальной итерации - померяйте что будет быстрее при 0-1 итерации предложенного примера - вы узнаете реальный ответ.



В итоге, WoWan-SM и gattsu, доказали то что я писал пару постов назад.
Так что, дорогой visor, Вы не только пишите не оптимизированный, и не читаемый код, но еще и как человек - немного неадекватны.
Вам сделали 100 прямых замечаний, в Вы ищете миллион отмазок.
Смотрите что бы корона с Вашей головы не упала Король Визор123)
Вы опозорились больше всех в этой теме. Вместо того что бы признать свои ошибки - всякую чушь несёте.
Удачи Вам!


Доказали что при 0-1 итерации что? Я что-то не вижу доказательств.

Признать ошибку, что вы меряете то что и так очевидно? Я признаю, что я вижу очевидные ответы и их называю.

Чушь - это придумывать какие-то фантазийные сценарии - код в 1 посту где там 100000 итераций?



Не нужно судить по себе или по GenCloud, я не знаю по кому ещё.
Если уж речь идет про "обгадить", то целей таких не преследую. Мне кажется не очень-то похоже, что я в каких-то отношениях с GenCloud, будь то дружеские или партнерские, я же ноунейм, хех.
Старайтесь хладнокровно относиться ко всему, работа - есть работа, личные отношения - есть личные отношения. Вы рьяно начали защищать свой подход сломя голову, а я просто периодически захожу на этот форум, в режиме only-read, т.к. он выглядит приятнее, чем ЗГ. Когда-то в сентябре мне кинули ссылку на тред, а тут стало интересно, чего это профессионалы как дети уже 3 с лишним месяца обсуждают.

Кому я должен доказывать? Вам? А Вы беспристрастны и объективны? - Нет
Потому что речь идет о Вашемкоде, ошибок своих признавать Вы не умеете, хоть частично, пытаетесь навязать свои вкусы и подход (я на тему того, что конкатенация для Вас выглядит удобнее, нежели .append). Вам достаточно было ответить топик стартеру в подобном тоне и роде, и в этом случае тема была бы страниц на 6 меньше :

Я все сказал, удачи Вам в поддержке Вашего проекта.


Вы написали пример, который не отражает предметную область вопроса, о чем может быть обсуждение - это же очевидно. Удачи в фантазийном мире оптимизаций.

gattsu
07.02.2016, 01:32
В scala, как я понимаю, все иначе?


Scala синтаксически мощнее язык. Но все же та же jvm.

Оптимизация дурное дело, просто как оптимизировать места которые ты не контролируешь, в этом и тупик.

Java(jvm) - как ракета с радиусом поражения. Стоит задача убить человека, Вам придется стрелять ракетой, убьете его, рядом стоящих, еще ближайшие строения в радиусе поражения, уничтожите. Хотя надо просто по тихому убрать.

Самая быстра программа возвращает сразу результат.

ПС я не пьющий человек.

Visor123
07.02.2016, 01:34
Получилось, один написал глупую тему, другие не смогли понять, что GenCloud не соображает ничего, потом еще один velafrys написал пример, не отражающий предмет вопроса, а потом все бросились отвечать на неправильный вопрос.

Что уж тут сказать, можете одеть короны.



Scala синтаксически мощнее язык. Но все же та же jvm.
Оптимизация дурное дело, просто как оптимизировать места которые ты не контролируешь, в этом и тупик.
Java(jvm) - как ракета с радиусом поражения. Стоит задача убить человека, Вам придется стрелять ракетой, убьете его, рядом стоящих, еще ближайшие строения в радиусе поражения, уничтожите. Хотя надо просто по тихому убрать.

Самая быстра программа возвращает сразу результат.
ПС я не пьющий человек.


Ты вроде не глупый, мог бы пояснить народу, что они вообще не о том говорят, что если нужно оптимизировать класс - нужно не StringBuilder добавить, а убрать конкатенции строк, насколько это возможно.

GenCloud
07.02.2016, 01:53
Получилось, один написал глупую тему, другие не смогли понять, что GenCloud не соображает ничего, потом еще один velafrys написал пример, не отражающий предмет вопроса, а потом все бросились отвечать на неправильный вопрос.
Что уж тут сказать, можете одеть короны.


Все поняли что ты необразованное существо, не умеющее... даже не так - не научившееся еще делать выводы и нюхать правильно кокс.

gattsu
07.02.2016, 02:18
Код:



package actor;

public class TextBuilder {
class Entry {
String value;

Entry next;

Entry(String value) {
this.value = value;
this.next = null;
}
}

int size = 0;

Entry head;

Entry tail;

public TextBuilder() { }

public TextBuilder append(Object value) {
return append(value.toString());
}

public TextBuilder append(String value) {
size += value.length();
if(head == null)
head = tail = new Entry(value);
else
tail = (tail.next = new Entry(value));
return this;
}

public String toString() {
char[] chars = new char[size];
int offset = 0;
for(Entry target = head ; target != null ; offset += target.value.length(), target = target.next)
for(int i = 0 ; i

Код:


[CODE]
protected void showMainPage(L2PcInstance player)
{
//NpcHtmlMessage adminReply = new NpcHtmlMessage(5);

TextBuilder reply = new TextBuilder();
reply
.append("")
.append(getName())
.append("")
.append("[ ")
.append(getName())
.append(" ]")
.append("")
.append("")
.append("
Engine instances")
.append("");

for (L2EventGroupEngineInstance event : _eventInstances.values())
reply.
append("").
append(event.getName()).
append("").
append("").
append("").
append("");

reply
.append("")
.append("")
.append("")
.append("")
.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}

Visor123
07.02.2016, 02:42
Все поняли что ты необразованное существо, не умеющее... даже не так - не научившееся еще делать выводы и нюхать правильно кокс.


Дегенерат, не нужно делать вывод за других людей. Если ты не понимаешь элементарных вещей - то не значить что все вокруг такие же или глупее тебя.



Код:



package actor;

public class TextBuilder {
class Entry {
String value;

Entry next;

Entry(String value) {
this.value = value;
this.next = null;
}
}

int size = 0;

Entry head;

Entry tail;

public TextBuilder() { }

public TextBuilder append(Object value) {
return append(value.toString());
}

public TextBuilder append(String value) {
size += value.length();
if(head == null)
head = tail = new Entry(value);
else
tail = (tail.next = new Entry(value));
return this;
}

public String toString() {
char[] chars = new char[size];
int offset = 0;
for(Entry target = head ; target != null ; offset += target.value.length(), target = target.next)
for(int i = 0 ; i ")
.append(getName())
.append("")
.append("[ ")
.append(getName())
.append(" ]")
.append("")
.append("")
.append("
Engine instances")
.append("");

for (L2EventGroupEngineInstance event : _eventInstances.values())
reply.
append("").
append(event.getName()).
append("").
append("").
append("").
append("");

reply
.append("")
.append("")
.append("")
.append("")
.append("");

adminReply.setHtml(replyMSG.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}



Неправильный ответ, правильный ответ решить вопрос в частном порядке убрав общее решение, это позволит переложить время выполнения на время клонирования решения в частных имплементациях.

То есть, чтобы было понятно: этот класс перестанет существовать, и время его выполнения при любых вариантах будет равен 0.

velafrys
07.02.2016, 02:51
Речь больше идет о Вашем подходе, а не о эффективности решения.

GenCloud ещё тот клоун, конечно, но вы друг друга стоите, господин Visor123, имхо.

gattsu
07.02.2016, 02:59
Неправильный ответ, правильный ответ решить вопрос в частном порядке убрав общее решение, это позволит переложить время выполнения на время клонирования решения в частных имплементациях.

То есть, чтобы было понятно: этот класс перестанет существовать, и время его выполнения при любых вариантах будет равен 0.


.................. (спасибо администрации за смайлики)

version 0.1

delete method append(Object);

add new method append(Object...)




Код:



public class TextBuilder {
class Entry {
String value;

Entry next;

Entry(String value) {
this.value = value;
this.next = null;
}
}

int size = 0;

Entry head;

Entry tail;

public TextBuilder() { }

public TextBuilder append(String value) {
size += value.length();
if(head == null)
head = tail = new Entry(value);
else
tail = (tail.next = new Entry(value));
return this;
}

public TextBuilder append(Object...value) {
int i = 0;
if(head == null && value.length > 0) {
String str = value[0].toString();
size += str.length();
head = tail = new Entry(str);
i++;
}
for(; i

Код:


[CODE]
protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
TextBuilder reply = new TextBuilder();
reply
.append(
"",
getName(),
"",
"[ ",
getName(),
" ]",
"",
"",
"
Engine instances",
""
);
for (L2EventGroupEngineInstance event : _eventInstances.values())
reply
.append(
"",
event.getName(),
"",
"",
"",
""
);
reply
.append(
"",
"",
"",
"",
""
);

adminReply.setHtml(reply.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}

Visor123
07.02.2016, 03:03
Я так понимаю, что вместо того, чтобы немножко подумать все решили, что класс не оптимизирован, потому что содержит конкатенции?

Начнем с того, что почему вы убрали за скобки задачу, стоимость выполнения, а так же стоимость вашего времени?

И второй немаловажный момент - не имплементация определяет задачу, а задача имплементацию.


Проблема всех умников, которые идут по пути оптимизации в том, что они не считают стоимость выполнения и стоимость своего времени. Так же не смотрят на задачу, а только на конечный вариант.

Простой пример - данный класс имеет общее решение задачи, но наиболее быстрым является частное решение задачи, но тогда в каждом частном решении будет клонирование решения этой общей задачи, но уже в более быстром варианте.

Посчитаем стоимость выполнения класса - класс управляет созданием, отображением странички, сохранением и редактированием движка групп-эвента.

Предположим что 2 метода каждый по 1 вызову займут макс 0,5мс. За полгода добавлять движок эвента может понадобится максимум раза 2, создать + написать имя, сохранить. Это пара операций, и больше отображений. Я считаю, что потеря 100мс выполнения за пол года не критично для сервера.

Класс не содержит рекурсий и блокировок и не может вызвать лаг сервера - значить время его выполнения можно считать чистым.

Теперь мое время - при имплементации задач в виде частных случаев общее решение этого класса будет клонировано на частные решения - что потянет мое время как минимум замены имен в частных строках команд, далее частные решения будут забирать время фокусировки внимания и понимания того, что решение не оптимально с позиции логики решения несколько раз одинаковых задач.

То есть стоимость в 100мс за пол года стоит общего решения задачи и экономит кучу моего времени. Логика решения общих вопросов отделена от частных случаев и оптимизирована для редкого использования и 0-1 итераций.

Вопрос решен.



Речь больше идет о Вашем подходе, а не о эффективности решения.

GenCloud ещё тот клоун, конечно, но вы друг друга стоите, господин Visor123, имхо.


Не нужно меня подсовывать к GenCloud - одно из отличительных свойств в том, что я не вру.

Всегда важно эффективность решения, а не подход.

Подход - это набор инструментов/скилов по сути, а эффективность работы - это результат - людям нужен результат.

Пока вы не поймете таких простых вещей, вы будете задавать неправильные вопросы и иметь неправильные ответы.



.................. (спасибо администрации за смайлики)

version 0.1
delete method append(Object);
add new method append(Object...)



Код:



public class TextBuilder {
class Entry {
String value;

Entry next;

Entry(String value) {
this.value = value;
this.next = null;
}
}

int size = 0;

Entry head;

Entry tail;

public TextBuilder() { }

public TextBuilder append(String value) {
size += value.length();
if(head == null)
head = tail = new Entry(value);
else
tail = (tail.next = new Entry(value));
return this;
}

public TextBuilder append(Object...value) {
int i = 0;
if(head == null && value.length > 0) {
String str = value[0].toString();
size += str.length();
head = tail = new Entry(str);
i++;
}
for(; i

Код:


[CODE]
protected void showMainPage(L2PcInstance player)
{
NpcHtmlMessage adminReply = new NpcHtmlMessage(5);
TextBuilder reply = new TextBuilder();
reply
.append(
"",
getName(),
"",
"[ ",
getName(),
" ]",
"",
"",
"
Engine instances",
""
);
for (L2EventGroupEngineInstance event : _eventInstances.values())
reply
.append(
"",
event.getName(),
"",
"",
"",
""
);
reply
.append(
"",
"",
"",
"",
""
);

adminReply.setHtml(reply.toString());
player.sendPacket(adminReply);
// Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet
player.sendPacket(ActionFailed.STATIC_PACKET);
}






Решение не должно содержать цикла, тогда оно будет максимально быстрым из простых. То есть ты просто не в том уровне ищешь решение.

velafrys
07.02.2016, 03:14
Жизни меня учить не нужно, хорошо?

Вы моей работы не видели, а я Вашу видел.

Visor123
07.02.2016, 03:18
Жизни меня учить не нужно, хорошо?
Вы моей работы не видели, а я Вашу видел.


Вообще-то можешь узнать у любого заказчика, что ему важно. Для этого я не нужен.

То что ты не считаешь эффективность решения фактором в решении задачи - то это не значит, что я учу тебя жизни - жизнь сама тебя научит.

Я тут никого не обманул - я сразу дал правильные ответы, и сейчас после долгих намеков дал готовые решения. Не нужно на меня за это обижаться, потому что ты не был готов к реальной оптимизации, но не в 1 плоскости, а в объеме вопроса с большим кол-вом факторов и с учетом собственно самой задачи.

gattsu
07.02.2016, 03:22
Решение не должно содержать цикла, тогда оно будет максимально быстрым из простых. То есть ты просто не в том уровне ищешь решение.


"Программа не должна содержать кода"

Я тут с вами не играю в абстрактный код.

Потом давайте не уходить в гипотетические условности, типа: ассемблер, код, быстрее. Набор слов и только.

Вы с начало свой код в соответствие своим словам приведите, а то диссонанс возникает, говорите одно, а на деле другое. Уровень студента, второго курса, лабораторная работа по программирование. В продакшн такой код не пустят, по рукам бить будут нормальные люди.

ПС я тут просто развлекаюсь

velafrys
07.02.2016, 03:25
Вообще-то можешь узнать у любого заказчика, что ему важно. Для этого я не нужен.
То что ты не считаешь эффективность решения фактором в решении задачи - то это не значит, что я учу тебя жизни - жизнь сама тебя научит.

Я тут никого не обманул - я сразу дал правильные ответы, и сейчас после долгих намеков дал готовые решения. Не нужно на меня за это обижаться, потому что ты не был готов к реальной оптимизации, но не в 1 плоскости, а в объеме вопроса с большим кол-вом факторов и с учетом собственно самой задачи.



Для Вас все Ваши ответы - правильные. Таковы правила всех самовлюбленных людей, вне зависимости от их рода деятельности.

Мое правило простое - видишь не инлайновую конкатенацию? Это говнокод.

Почитайте на досуге, кстати, того же Макконнелла, как минимум.

Visor123
07.02.2016, 03:27
"Программа не должна содержать кода"
Я тут с вами не играю в абстрактный код.
Потом давайте не уходить в гипотетические условности, типа: ассемблер, код, быстрее. Набор слов и только.
Вы с начало свой код в соответствие своим словам приведите, а то диссонанс возникает, говорите одно, а на деле другое. Уровень студента, второго курса, лабораторная работа по программирование. В продакшн такой код не пустят, по рукам бить будут нормальные люди.

ПС я тут просто развлекаюсь


Так я и не ухожу, в случае частного решения задачи этого класса не будет вообще, а задача будет решена без цикла и без конкатенций в методе с командами.

Но поскольку основная задача значительно больше, то общее решение за 100мс в полугодие оптимально.

Код и так приведен в соответствие, посчитай сколько будет стоимость 0 итераций конкатенций.

В продакшн? Посмотри на масс-эвенты свои - насколько они похожи на продакшн ...

Ты разве не понял, что при частном решении конкатенции не будет?



Для Вас все Ваши ответы - правильные. Таковы правила всех самовлюбленных людей, вне зависимости от их рода деятельности.
Мое правило простое - видишь не инлайновую конкатенацию? Это говнокод.
Почитайте на досуге, кстати, того же Макконнелла, как минимум.


Опять неправильный вопрос и неправильный ответ. Правильное решение зависит не от твоей точки зрения, а от эффективности решения задачи.

То есть можно заглядывать в середину - но когда я говорю что кол-во итераций цикла 0 - то почему-то ты пытаешься говорить что ты там что-то оптимизировал.

При 0 времени выполнения ничего ты не оптимизировал, и с большой вероятностью с 1 итерацией тоже.

Я могу переписать так, что этого класса не будет, но это не оптимальное решение задачи, и значить говнокод. То есть любое другое решение задачи приведет к излишнему коду и не оптимизирует стоимость времени разработки и стоимость времени выполнения, потому что сколько 0 не умножай, время все равно будет 0. Просто расход времени переместится в другое место.

Я понимаю, что ты не понимаешь что я пишу, и чем отличается частное решение задачи от общего, но простые вещи всегда сложно понять. Проще говоря, код уже оптимизирован до 0-1 итерации. И то что ты не в состоянии этого понять не делает его говнокодом.

Вся проблема в том, что вы себе изначально неправильно сформулировали задачу, и соответственно любой ответ является не оптимальным. Вы даже после стольких страниц не поняли, что в цикле будет 0-1 итерация и не нужно городить велосипед. И что при оптимизации задачи(не кода) не будет ни конкатенций ни цикла. То есть вы даже не поняли - что оптимизация задачи, это не пристраивание еще одного билдера в код, а решение задачи по другому.

Есть книги, где авторы обращают внимание на реальную стоимость выполнения, на стоимость(время) разработки - но так делают не все, и бывает, что студенты такие вещи пропускают.

Вот когда вы напишете кучу частных случаев решения однотипных задач, вы поймете о чем я написал.

Я даже помогу понять, тем кто сможет задать правильные вопросы.

Не нужно меня винить, в том, что вы задали себе неправильные вопросы и получили неправильные ответы.

Факт так и остался в том, что задача решена эффективно и оптимально.

velafrys
07.02.2016, 03:51
Не нужно меня винить, в том, что вы задали себе неправильные вопросы и получили неправильные ответы.


Повторюсь - неправильные с Вашей точки зрения.

gattsu
07.02.2016, 03:56
здесь был smeli и отсыпал травки.

Только что подумал, если бы ваш код пихнули в книгу "совершенный код", начал ржать как гиена, в слух. Эталон...

Visor123
07.02.2016, 03:56
С точки зрения ява-машины - ничего страшного, но нужно было оставить вторую проверку - выполнение кода не пошло бы хоть так, хоть эдак, никаких потерь по времени
Но с точки зрения написания - ***ец
Чет герычем попахивает, мдам.......

command.substring(getCommand().length()+5); еще меня особенно умиляет)
Берем строку, режем ее, вычленяем остаток - вуаля, команда!


Вы почитайте лучше вот этот бред, нашелся литературный критик "Но с точки зрения написания" - это он про код так пишет. GenCloud ты с точки зрения буквы смотришь или их жопы? Где твоя точка зрения?

mAnGoL
07.02.2016, 04:01
Вангую пора вмешаться.

Visor123
07.02.2016, 04:01
Повторюсь - неправильные с Вашей точки зрения.


Что ты несешь - посмотри, что конкретно ты привел в примере - цикл с 100000 итерациями - я у тебя что спросил - где ты нашел в коде цикл где может быть 100000 итераций? Ты что написал - единственный цикл - но там не с моей точки зрения, а объективно 0-1 итераций может быть. То есть фантасты не смогут этого типа эвента значительно больше пары-тройки для л2 придумать.

Объясняю - это не твт или цтф, это интеграторы типа - Турнир.

Какое это только мое мнение? Придумай штук 10 хотя бы.

gattsu
07.02.2016, 04:02
Вангую пора вмешаться.


ноууууууууу, что мне читать тогда

Visor123
07.02.2016, 04:04
здесь был smeli и отсыпал травки.

Только что подумал, если бы ваш код пихнули в книгу "совершенный код", начал ржать как гиена, в слух. Эталон...


Для кода на скорость любой java-код не эталон - и твой в том числе. Не веришь? Можешь написать свои рассуждения о конкатенции строк на форуме сишников - я посмеюсь вместе с ними.

Когда же я обращаю внимание на конкретное решение задачи в 1 посте, то почему-то задача уже не считается?

Ты уже определись для себя, либо общие решения скорости выполнения, либо решение конкретной задачи.

velafrys
07.02.2016, 04:09
Для кода на скорость любой java-код не эталон - и твой в том числе. Не веришь? Можешь написать свои рассуждения о конкатенции строк на форуме сишников - я посмеюсь вместе с ними.


Вот только речь у нас тут а джава коде, а не о Си и ассемблере.

И да, я уже намекал о том, что Вы не способны реализовать это на ассемблере внутри Вашего злополучного класса, поэтому хватит оперировать этим.

Мы говорим о двух случаях - с конкатенацией и без.

Visor123
07.02.2016, 04:11
То есть когда я говорю о конкретном коде в 1 посте, мне пишут про 100000 итераций, когда я пишу о 100000 итераций, что быстрее когда их нет - то сразу съезд на код в 1 посте.

Определитесь господа, о чем конкретно вы пишете, и где 100000 итераций конкатенции, которые вы оптимизируете.



Вот только речь у нас тут а джава коде, а не о Си и ассемблере.
И да, я уже намекал о том, что Вы не способны реализовать это на ассемблере внутри Вашего злополучного класса, поэтому хватит оперировать этим.
Мы говорим о двух случаях - с конкатенацией и без.


Речь у нас либо о частном решении, то есть мы имеем в цикле 0-1 итерацию - расскажи, что ты в ней будешь оптимизирвоать, или ты будет оптимизировать конкатенцию строк в каждой строке отдельно?

Ассемблер не в этой классе, класс тут вообще не при чем, если рассуждать о том, что быстрее вообще. А когда в частном случае 1 поста и 0 итераций - то все твои велосипеды ни к чему вообще.

И есть еще случай, когда конкатенции не будет вообще, даже горизонтальной - можно просто поднять файл и реплейснуть там участки ключевых слов. И что ты там тогда писал про конкатенцию которой нет...

velafrys
07.02.2016, 04:13
Мы говорим о плохом подходе решения задачи.

"Конкатенация В ТОМ ВИДЕ В КОТОРОМ ОНА ЕСТЬ СЕЙЧАС У КЛАССА STRING В ЦИКЛЕ, КАКИМ БЫ ОН НИ БЫЛ,хуже, чем использование StreamBuilder", вот и все. Любой человек, который работает в команде согласится со мной, т.к. он уважает других разработчиков.

Visor123
07.02.2016, 04:20
Мы говорим о плохом подходе решения задачи.
"Конкатенация В ТОМ ВИДЕ В КОТОРОМ ОНА ЕСТЬ СЕЙЧАС У КЛАССА STRING В ЦИКЛЕ, КАКИМ БЫ ОН НИ БЫЛ,хуже, чем использование StreamBuilder", вот и все. Любой человек, который работает в команде согласится со мной, т.к. он уважает других разработчиков.


Любой человек согласится со мной, что то что ты написал, это очевидно.

Но твой пример не подходит к решению в 1 посте, там в цикле будет от 0 до 1. Перепиши свой цикл так, чтобы поменять там число 100000 0, потом на 1 и расскажи нужно ли там придумывать велосипед или нет.

Любой человек тут согласится со мной, что если цикл конкатенции будет от 0 до 0, то в примере что билдер, что стринг будут работать с одинаковой скоростью. Или это не очевидно?

Я же предлагаю решение, когда не будет вообще цикла и конкатенции - это самый быстрый вариант, которого у тебя нет в примере, но для решения задачи он может вполне быть. И это тоже очевидно.

И как ты вообще можешь говорить о задаче, если ты ее не знаешь?

velafrys
07.02.2016, 04:25
Когда говорю о подходе и качестве кода, Вы переводите стрелки на эффективность)

Меня крайне утомило это действо. Вы даже не можете закончить диалог, не оставив за собой слово.

Настоятельно рекомендую прочесть и изучить достойную литературу, а-ля банда четырех и того же Макконнелла, может быть это ещё не поздно в Вашем случае.

Visor123
07.02.2016, 04:30
Когда говорю о подходе и качестве кода, Вы переводите стрелки на эффективность)
Меня крайне утомило это действо. Вы даже не можете закончить диалог, не оставив за собой слово.
Настоятельно рекомендую прочесть и изучить достойную литературу, а-ля банда четырех и того же Макконнелла, может быть это ещё не поздно в Вашем случае.


Я не перевожу стрелки на эффективность, чел же выкинул в 1 посте конкретный код, а не абстракцию, в которой может быть много итераций цикла, если бы там было много итераций цикла, я бы сразу поставил еще один билдер. Это очевидно. Я не пойму, почему ты не хочешь понять простые вещи, а упираешься в какие-то циклы с 100000 итераций конкатенции - нет там такого и быть не может в предметной области.

Для того, чтобы увидеть конкретный код в 1 посте тебе, мне не нужно читать литературу. Там прямо в коде возможны варианты либо 0 либо 1, стоит там городить велосипед для выигрывания пары наносекунд? Городи, я считаю что для решения задачи этого не нужно.

Почитай литературу сам, там люди же не глупые пишут, что полезно делать, а что не очень.

Когда я говорю про абстракции, ты съезжаешь на код в 1 посте. Так ты определись о чем ты пишешь о своем примере или о решении в 1 посте - именно решении, а не абстракции. Клоун его взял не абстрактно, а из конкретного проекта, и класс сделан именно для решения конкретной задачи, а не оптимизирован под решение множества задач.

gattsu
07.02.2016, 04:31
Любой человек согласится со мной, что то что ты написал, это очевидно.

Но твой пример не подходит к решению в 1 посте, там в цикле будет от 0 до 1. Перепиши свой цикл так, чтобы поменять там число 100000 0, потом на 1 и расскажи нужно ли там придумывать велосипед или нет.

Любой человек тут согласится со мной, что если цикл конкатенции будет от 0 до 0, то в примере что билдер, что стринг будут работать с одинаковой скоростью. Или это не очевидно?


Мертвый код это просто супер.... Ваше ПО нельзя детерминировать, нарушается машина Тьюринга. У Вас квантовый компьютер?

Visor123
07.02.2016, 04:36
Мертвый код это просто супер.... Ваше ПО нельзя детерминировать, нарушается машина Тьюринга. У Вас квантовый компьютер?


Если класс не использовался в 2012 году в том паке, откуда клоун взял код, то это не значить что он не используется на конкретных инстансах серверов. Если эвент подключен - то он используется, а нет, то не используется - это очевидно.

Мое ПО не хуже других ПО, сервер имеет модульность, что-то подключено, а что-то нет. В любом сервере л2 в комплекте идут эвенты, но это не значить что все они используются. Это очевидно и это тут может любой подтвердить.

Но в том паке нет эвентов этого типа.



Мертвый код это просто супер.... Ваше ПО нельзя детерминировать, нарушается машина Тьюринга. У Вас квантовый компьютер?


Я и пытаюсь достучаться, что конкретно этот класс, что приведен в 1 посте "заточен" под конкретный тип задач с крайне малым количеством вызовов.

Конечно можно кричать, что это говнокод в общем исполнении при большом кол-ве итераций цикла, но класс написан решить частный случай, где кол-во выполнения цикла настолько мало и настолько редко выполняется - что оптимизация его дело конечно благородное, но это никому не нужный велосипед для этой конкретной имплементации.

А теперь, как я и обещал - я показываю вам эту тему.

Вас очень легко сагрил обычный выродок, скурпулезно создав о себе мнение эксперта, на совершенно незнакомого человека вкинув типичную задачку, которую вы уже проходили. Правда в книге по шаблонам программирования вам не написали, как вам уберечься от манипулирования.

Человек, который не может сформулировать свою мысль ("с точки зрения написания") вдруг вкидывает ни с того ни с сего агро-кусок на кого-то. Естественно мои намеки никак не подействовали - вы попали в "типичную колею" и додумали остальное сами, а чувак просто сидит и улыбается, ведь ему ничего не пришлось делать - вы сами, создав поток глупости, ринулись в атаку.

Можете полюбоваться на название темы и на свою реакцию в ней. Были еще и те, кто понимает код и ситуацию и не написал ничего - я вас тоже поздравляю - хорошая выдержка. Были те, кто интуитивно ничего не написал, ощущая чувство манипуляции. И были те кто ничего не понял и не написал.

Вот конструкция, которая позволяет легко агрить тру-программеров на других людей. Я ее привожу для тех, кто не вникал в подробности.

Код:



String b = "b";
StringBuilder sb = new StringBuilder();
sb.append("a"+b);


Она при компиляции преобразуется в конструкцию

Код:



String b = "b";
StringBuilder sb = new StringBuilder();
sb.append((new StringBuilder()).append("a").append(b).toString());


Я хотел сразу разложить все по полочкам, но готовый ответ сразу был бы не очевиден - нужен конкретный пример.

Эта тема - это и есть пример: вы были участниками типичного использования умных людей на простом шаблоне программирования.

Оказалось, что сделать это проще, чем многие думают и это работает.

Запомните этот навык и это чувство, когда вас втянули в ненужную для вас ситуацию.

Вывод: есть люди умнее или такие-же как вы, есть люди глупее вас, а есть люди, которые будут вас использовать.

Я ничего не придумал, просто показал это все в "объеме" с нетипичной для вас точки зрения и постарался "разложить по полочкам" общий сценарий.

Администрацию прошу закрыть тему, чтобы ключевое пояснение примера не закидали сообщениями и мое время не пропало зря. Спасибо за внимание.

gattsu
07.02.2016, 14:29
Код:



String b = "b";
StringBuilder sb = new StringBuilder();
sb.append("a"+b);



серьезно, вместео sb.append("a").append(b) делать sb.append("a" + b) зачем

У Вас, что код как пророк Мохамед, его никто не должен читать, святой.

Тот код который в первом посте, является грязным, и в продакшн такое пускать нельзя.

velafrys
07.02.2016, 14:50
А теперь, как я и обещал - я показываю вам эту тему.
Вас очень легко сагрил обычный выродок, скурпулезно создав о себе мнение эксперта, на совершенно незнакомого человека вкинув типичную задачку, которую вы уже проходили. Правда в книге по шаблонам программирования вам не написали, как вам уберечься от манипулирования.

Человек, который не может сформулировать свою мысль ("с точки зрения написания") вдруг вкидывает ни с того ни с сего агро-кусок на кого-то. Естественно мои намеки никак не подействовали - вы попали в "типичную колею" и додумали остальное сами, а чувак просто сидит и улыбается, ведь ему ничего не пришлось делать - вы сами, создав поток глупости, ринулись в атаку.
Можете полюбоваться на название темы и на свою реакцию в ней. Были еще и те, кто понимает код и ситуацию и не написал ничего - я вас тоже поздравляю - хорошая выдержка. Были те, кто интуитивно ничего не написал, ощущая чувство манипуляции. И были те кто ничего не понял и не написал.

Вот конструкция, которая позволяет легко агрить тру-программеров на других людей. Я ее привожу для тех, кто не вникал в подробности.

Код:



String b = "b";
StringBuilder sb = new StringBuilder();
sb.append("a"+b);


Она при компиляции преобразуется в конструкцию

Код:



String b = "b";
StringBuilder sb = new StringBuilder();
sb.append((new StringBuilder()).append("a").append(b).toString());


Я хотел сразу разложить все по полочкам, но готовый ответ сразу был бы не очевиден - нужен конкретный пример.

Эта тема - это и есть пример: вы были участниками типичного использования умных людей на простом шаблоне программирования.
Оказалось, что сделать это проще, чем многие думают и это работает.
Запомните этот навык и это чувство, когда вас втянули в ненужную для вас ситуацию.

Вывод: есть люди умнее или такие-же как вы, есть люди глупее вас, а есть люди, которые будут вас использовать.

Я ничего не придумал, просто показал это все в "объеме"

и постарался "разложить по полочкам" общий сценарий.

Администрацию прошу закрыть тему, чтобы ключевое пояснение примера не закидали сообщениями и мое время не пропало зря. Спасибо за внимание.


О каких манипуляциях идет речь?

Зачем Вы кидаете эти куски кода, если я уже делал это? Пробегитесь по теме, я уже приводил пример и говорил, во что превратится подобный код, конкретно Ваш.



Я хотел сразу разложить все по полочкам, но готовый ответ сразу был бы не очевиден - нужен конкретный пример.


9 страниц хотелось ответить, да никак не получалось?



с нетипичной для вас точки зрения


У Анциента тоже своя точка зрения, давайте будем все точки зрения обсуждать, даже те, которые противоречат всем правилам и канонам?



мое время не пропало зря


Вы не похожи на серьезного человека, который ценит своё время, и я не один так думаю, мне кажется.

И самое ужасное, что когда Вас снова прижали к стенке с неэффективностью кода при определенных нагрузках, Вы снова начнете говорить - "не надо теорий, есть реальная задача, в этом случае эта проблема роли не играет, т.к. в цикле будет не так много итераций". И в принципе будете правы.

Но тогда зачем приводить какие-то куски кода, которые показывают по что превратится конкатенация при компиляции? Вы сами запутались в этом, и это не удивительно.

И не надо видеть нас, по крайней мере меня, как тварей податливых, овечек стадных, которые повелись на заголовок и манипуляции GenCloud.

Уважать его причин у меня нет, ровно как и наоборот.

Может он и заслуживает бана, ещё чего-то, но он не доказывал какой-он правильный, его единственный подход верный и вообще все идиоты, один он хороший. Ничего не напоминает? Это если уж речь о топик-стартере.

Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь.

В Вашем проекте - может быть и имеет, на то он и Ваш проект, но в нормальном мире разработчиков, где есть свои устои, где идет развитие, где создаются и поддерживаются продукты, где используются большие технологии - здесь Ваш код не имеет права на жизнь.

Кроме Вашего проекте у Вас есть ещё проекты?

gattsu
07.02.2016, 15:09
И не надо видеть нас, по крайней мере меня, как тварей податливых, овечек стадных, которые повелись на заголовок и манипуляции GenCloud.
Уважать его причин у меня нет, ровно как и наоборот.
Может он и заслуживает бана, ещё чего-то, но он не доказывал какой-он правильный, его единственный подход верный и вообще все идиоты, один он хороший. Ничего не напоминает? Это если уж речь о топик-стартере.

Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь.
В Вашем проекте - может быть и имеет, на то он и Ваш проект, но в нормальном мире разработчиков, где есть свои устои, где идет развитие, где создаются и поддерживаются продукты, где используются большие технологии - здесь Ваш код не имеет права на жизнь.
Кроме Вашего проекте у Вас есть ещё проекты?


Вопрос задан не конкретно. Кроме разработки l2j серверов, чем-то занимались, реальной работой в it индустрии? так думаю лучше

GenCloud
07.02.2016, 15:21
И не надо видеть нас, по крайней мере меня, как тварей податливых, овечек стадных, которые повелись на заголовок и манипуляции GenCloud.
Уважать его причин у меня нет, ровно как и наоборот.
Может он и заслуживает бана, ещё чего-то, но он не доказывал какой-он правильный, его единственный подход верный и вообще все идиоты, один он хороший. Ничего не напоминает? Это если уж речь о топик-стартере.

Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь.
В Вашем проекте - может быть и имеет, на то он и Ваш проект, но в нормальном мире разработчиков, где есть свои устои, где идет развитие, где создаются и поддерживаются продукты, где используются большие технологии - здесь Ваш код не имеет права на жизнь.
Кроме Вашего проекте у Вас есть ещё проекты?


Мсье, я так даже не считаю, не мой подход. С товарищем Визором по другому разговаривать нет смысла даже

Gaikotsu
07.02.2016, 15:50
Ппц... 10 страниц срача по сути ни о чем...

Ну уперся Визор что "не говнокодю я, оно само так получилось" и не хочет менять свое мнение, что бы вы не писали, ну и плюньте - оно вам так надо?

или синдром "в интернете кто-то не прав" мешает?

просто поставьте себе галочку "проверять перед использованием" при необходимости использовать его код и все, т.к. судя по процессу срача в теме - вы его все равно не уговорите сменить точку зрения, прав он или нет.

Visor123
07.02.2016, 16:12
Ппц... 10 страниц срача по сути ни о чем...

Ну уперся Визор что "не говнокодю я, оно само так получилось" и не хочет менять свое мнение, что бы вы не писали, ну и плюньте - оно вам так надо?
или синдром "в интернете кто-то не прав" мешает?

просто поставьте себе галочку "проверять перед использованием" при необходимости использовать его код и все, т.к. судя по процессу срача в теме - вы его все равно не уговорите сменить точку зрения, прав он или нет.


Так "ниочем", потому что почитай название темы, почитай теги.

О каком коде ты рассуждать собрался?

Можешь написать тему в посте и еще раз прочитать, пока не дойдет.



И не надо видеть нас, по крайней мере меня, как тварей податливых, овечек стадных, которые повелись на заголовок и манипуляции GenCloud.
Уважать его причин у меня нет, ровно как и наоборот.
Может он и заслуживает бана, ещё чего-то, но он не доказывал какой-он правильный, его единственный подход верный и вообще все идиоты, один он хороший. Ничего не напоминает? Это если уж речь о топик-стартере.

Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь.
В Вашем проекте - может быть и имеет, на то он и Ваш проект, но в нормальном мире разработчиков, где есть свои устои, где идет развитие, где создаются и поддерживаются продукты, где используются большие технологии - здесь Ваш код не имеет права на жизнь.
Кроме Вашего проекте у Вас есть ещё проекты?


Человек ты опять на меня агришься? За то что я попросил тебя прочитать тему и посмотреть что ты в ней написал?

Я же не виноват, что ты не почитал название и начал про код рассуждать, что быстрее - я тебе сказал быстрее кода код на ассемблере - не веришь книжки почитай. Это роли для конкретно этой темы никакой не играет, код вкинут по причине тематичности форума и известных сложностях работы java. Тут чего вообще обсуждать было.

Я уже пальцем показал на пидараса, объяснил все - ты мычишь что я тебе виноват и в нормальном мире разработчиков не лошат так - открой глаза - такое сплошь и рядом.

Где большие проекты думаешь нет пидарасов? Они как раз туда все и лезут - потому что там много людей, которых легко лошить и можно спокойно себе зарабатывать деньги. Ты что думаешь пидар бы стал жопу рвать на форуме, где он не лезет своей харей, чтобы найти знаешь что? Заказчиков, чтобы потом им придумывать за свой говнокод по 18к рублей долга. А всяких идиалистов можно держать в тонусе - перекидывая их агр на новичков или тех, кто понимает кто есть кто.

Выродок же не написал - вот какой-то говнокод, или кривой класс или даже кривая сборка - выродок написал что плохой я и кинул код. Это еще как понятнее то можно объяснить если ты не читаешь ничего.

Формально видно название темы, а не твои рассуждения о коде - ну как бы куда уже очевиднее тебе нужно показать, чтобы ты понял, что то что у тебя прямо перед глазами это и есть правда ...


Ты вообще хоть примерно понимаешь почему вдруг выродок сделал эту тему - что я ему плохой? Ты же умный - узнай.

Он сейчас начнет обсыкаться и писать всякую чушь, рвать свой ебач - главное, чтобы обгадить меня - потому что я ему враг, а не код плохой.



Мсье, я так даже не считаю, не мой подход. С товарищем Визором по другому разговаривать нет смысла даже


*, ты же понимаешь я понимаю кто ты - ты можешь конечно наагривать людей, кривляться и строить из себя "целку", и что ты "не такая, а ждешь травмая" - но со мной все это не проходит.

И люди постепенно начнут понимать, что они вот так глупо попали в вопрос на приманку кода. И соответственно кто это сделал и я постепенно объясню почему ты обсыкаешься из последних сил чтобы нагадить мне.

GenCloud
07.02.2016, 16:26
Выродок, ты же понимаешь я понимаю кто ты - ты можешь конечно наагривать людей, кривляться и строить из себя "целку", и что ты "не такая, а ждешь травмая" - но со мной все это не проходит.
И люди постепенно начнут понимать, что они вот так глупо попали в вопрос на приманку кода. И соответственно кто это сделал и я постепенно объясню почему ты обсыкаешься из последних сил чтобы нагадить мне.


Да вы сударь, параноик и ***ло в придачу:Christ:

Visor123
07.02.2016, 16:28
Да вы сударь, параноик и ***ло в придачу:Christ:


Вот, что я выше уже озвучил, оно лезет кривляться как угодно

Что про код оно пишет?

Тю поудаляли, там выродок кривляться начал, о коде он слыхом не слыхивал.

Для тех кто не смог прочитать тему - цитирую

"Да простит меня великий Визорко....Не удержалсо"

а теперь каждый посмотрите что вы в ней написали, про код? Выродку все равно на код - цель сагрить программеров типовым шаблоном.

Где вы видите, что плохой код, или плохой класс или плохая сборка? Нет - выродку плохой я.

Проблема в том, что выродок понимает, что я знаю кто он и он будет обсыкаться, кривляться, картинки постить, код всякий вкидывать, главное чтобы я не писал правду о нем. Чтобы я не показывал людям, что с дегенератом лучше не иметь вообще никаких отношений.

Я не виноват что многие этого не понимают - это же крайне очевидно.

Вы на форуме посмотрите - там тема эта видна, она про какой-то код? Нет. Насколько еще очевидно должно это быть, чтобы вы прочитали то у вас перед глазами написано я даже не знаю.

Я же не продаю тут ничего, и на ЗГ не продаю - то есть если вы думаете что я якобы конкурент денегерату - то нет, я этого кривляющегося чела GenCloud знать не знаю - оно как видите само на меня сагрилось и пытается других людей агрить - только уже с помощью обычной "пидарской ужимки". Я сначала намекал - смотрю не понимаете, уже написал напрямую - опять какой-то тупняк.



О каких манипуляциях идет речь?
Зачем Вы кидаете эти куски кода, если я уже делал это? Пробегитесь по теме, я уже приводил пример и говорил, во что превратится подобный код, конкретно Ваш.

9 страниц хотелось ответить, да никак не получалось?

У Анциента тоже своя точка зрения, давайте будем все точки зрения обсуждать, даже те, которые противоречат всем правилам и канонам?

Вы не похожи на серьезного человека, который ценит своё время, и я не один так думаю, мне кажется.

И самое ужасное, что когда Вас снова прижали к стенке с неэффективностью кода при определенных нагрузках, Вы снова начнете говорить - "не надо теорий, есть реальная задача, в этом случае эта проблема роли не играет, т.к. в цикле будет не так много итераций". И в принципе будете правы.
Но тогда зачем приводить какие-то куски кода, которые показывают по что превратится конкатенация при компиляции? Вы сами запутались в этом, и это не удивительно.


Так и я не знаю, зачем ты начал приводить какие-то примеры, я уже намекал намекал - что ты же прочитай что написано.

Это даже не манипуляции - написано одно, а ты паришь другое - я тебе намекаю, что тебя использовали - ты обижаешься. Прочитай тему, чего ты на меня то обижаешься - если ты пришел подпрягаться в тему выродка, который кинул код, но написал что плохой я.

Код какой быстрее? Я тебе написал на ассемблере быстрее - признай это, если не веришь - книжки почитай, у сишников пойди спроси если не веришь.

Не ну тебе конечно неприятно, что ты пришел написать тут про код, но это не играет никакой роли и вообще все что ты пишешь, потому что это так и надо было.

Лошат вот именно так, просто и весело - а ты думаешь что ты сражаешься на "стороне добра" за какой-то код.

То есть чего ты вообще лезешь ко мне спорить? Ты понимаешь это?

velafrys
07.02.2016, 16:53
Вопрос задан не конкретно. Кроме разработки l2j серверов, чем-то занимались, реальной работой в it индустрии? так думаю лучше


Вы на вопрос ответить можете?

Visor123
07.02.2016, 16:57
И не надо видеть нас, по крайней мере меня, как тварей податливых, овечек стадных, которые повелись на заголовок и манипуляции GenCloud.
Уважать его причин у меня нет, ровно как и наоборот.
Может он и заслуживает бана, ещё чего-то, но он не доказывал какой-он правильный, его единственный подход верный и вообще все идиоты, один он хороший. Ничего не напоминает? Это если уж речь о топик-стартере.

Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь.
В Вашем проекте - может быть и имеет, на то он и Ваш проект, но в нормальном мире разработчиков, где есть свои устои, где идет развитие, где создаются и поддерживаются продукты, где используются большие технологии - здесь Ваш код не имеет права на жизнь.
Кроме Вашего проекте у Вас есть ещё проекты?


Вот тебе пример (как ты выскочил агриться на меня ни с чего) того, что ты лезешь именно ко мне, что я тебе типа рассказываю. Еще скажи, что это я тему написал, чтобы тебя на себя сагрить.

В мире разработчиков масса интриганов и всяких выродков - ты можешь думать конечно иначе, но такими "пидарскими ужимками" тебя будет не только это чел наагривать вообще на левых людей, а чем крупнее компания - тем больше там таких "случайностей" будет. Его задача - чтобы влезть в тему разработки и зарабатывать на этом деньги, а идеалистов тру-кодеров - "ну борись вон с визором - ты же не понимаешь, зачем ты с ним борешься".

velafrys
07.02.2016, 17:06
Вот тебе пример (как ты выскочил агриться на меня ни с чего) того, что ты лезешь именно ко мне, что я тебе типа рассказываю. Еще скажи, что это я тему написал, чтобы тебя на себя сагрить.
В мире разработчиков масса интриганов и всяких выродков - ты можешь думать конечно иначе, но такими "пидарскими ужимками" тебя будет не только это чел наагривать вообще на левых людей, а чем крупнее компания - тем больше там таких "случайностей" будет. Его задача - чтобы влезть в тему разработки и зарабатывать на этом деньги, а идеалистов тру-кодеров - "ну борись вон с визором - ты же не понимаешь, зачем ты с ним борешься".



"Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь."

Могу ещё раз повторить, если непонятно. Не нужно смешивать профессиональную деятельность и общественную.

Мне плевать на GenCloud, повторюсь ещё раз.

Visor123
07.02.2016, 17:22
"Причиной моего поста был не заголовок темы, не теги даже, а господин Visor123, который рассказывает истории о том, что этот код имеет право на жизнь."
Могу ещё раз повторить, если непонятно. Не нужно смешивать профессиональную деятельность и общественную.
Мне плевать на GenCloud, повторюсь ещё раз.


Так в этом и был смысл вброса, чтобы ты прицепился ко мне. Говорил очевидные вещи про код, который выродок кинул. Ты же не сказал ничего нового или интересного.

Так и не смешивай - открой глаза и почитай, я же не виноват что ты влез тут ко мне прицепляться.

Про код я тебе написал уже что быстрее будет.

То есть сейчас ты рассказываешь про какую-то причину - я тебе показываю кто тебя, как тебя и где тебя ... но можешь конечно себе придумать причину, что ты "борешься за код", или за что ты там борешься еще ...

А чего причиной твоего поста не стал говнокод, за который GenCloud хотел 18т.р. и обломался? Ну и я конечно помог слегка.

Или спроси у GenCloud по чем его сборка.

velafrys
07.02.2016, 17:38
А чего причиной твоего поста не стал говнокод, за который GenCloud хотел 18т.р. и обломался? Ну и я конечно помог слегка.
Или спроси у GenCloud по чем его сборка.


Я общаюсь с Вами.Не имеет значения по какой причине я это делаю.

В общем ясно. Как java-разработчик Вы не обладаете авторитетным мнением, максимум lineage-visor-project-разработчик.

Стыдно за Вас, вот и все. С меня достаточно, удачи Вам в Вашем говноподходе к написанию кода, тешите дальше своё самолюбие.

И продолжайте видеть во всех Ваших неудачах происки GenCloud.

Visor123
07.02.2016, 17:47
Я общаюсь с Вами.Не имеет значения по какой причине я это делаю.
В общем ясно. Как java-разработчик Вы не обладаете авторитетным мнением, максимум lineage-visor-project-разработчик.
Стыдно за Вас, вот и все. С меня достаточно, удачи Вам в Вашем говноподходе к написанию кода, тешите дальше своё самолюбие.
И продолжайте видеть во всех Ваших неудачах происки GenCloud.


Как-то криво ты съехал, уже тебе виноват я, потому что мне виноват GenCloud - но на деле же все написано в теме, и твои нападки на какой-то код, который в общем-то роли никакой не играет, но очень хорошо сработал как приманка.

Мне не виноват GenCloud, да и какие могут быть неудачи на форуме, если я не продаю тут ничего, не ищу заказчиков.... а вот GenCloud строит из себя гуру, правда у него нет ничего, код его никто не видел - но зато оно из себя строит и ищет заказчиков. Один из вариантов - это вот эта тема.

Ты говоришь тут про профессионализм - но тебя легко налошил чел, которому все равно код, и который глупее тебя и которого ты даже не знаешь, зато ты придумал себе причину "борца за код", хотя тема не про код - написано же русскими словами в названии темы, в тегах, в пояснении.

Ну что ты "поборол код"?

Цирк какой-то да и только, как человек выходит из ситуации, куда сам влез непонятно почему. И пишет что это я ему виноват в этом.

Я тут вообще не собирался бороться за какой-то код, написал пару утверждений для ввода ситуации - мне то понятно это было еще до темы - но нужно было, чтобы люди клюнули на приманку - а то как иначе объяснить лучше, чем на реальном примере.

velafrys
07.02.2016, 17:52
Как-то криво ты съехал, уже тебе виноват я, потому что мне виноват GenCloud - но на деле же все написано в теме, и твои нападки на какой-то код, который в общем-то роли никакой не играет, но очень хорошо сработал как приманка.

Мне не виноват GenCloud, да и какие могут быть неудачи на форуме, если я не продаю тут ничего, не ищу заказчиков.... а вот GenCloud строит из себя гуру, правда у него нет ничего, код его никто не видел - но зато оно из себя строит и ищет заказчиков. Один из вариантов - это вот эта тема.
Ты говоришь тут про профессионализм - но тебя легко налошил чел, которому все равно код, и который глупее тебя и которого ты даже не знаешь, зато ты придумал себе причину "борца за код", хотя тема не про код - написано же русскими словами в названии темы, в тегах, в пояснении.
Ну что ты "поборол код"?

Цирк какой-то да и только, как человек выходит из ситуации, куда сам влез непонятно почему. И пишет что это я ему виноват в этом.

Я тут вообще не собирался бороться за какой-то код, написал пару утверждений для ввода ситуации - мне то понятно это было еще до темы - но нужно было, чтобы люди клюнули на приманку - а то как иначе объяснить лучше, чем на реальном примере.



Повторюсь, я не вижу смысла общаться с человеком, который не имеет достаточно опыта работы и знаний.

Visor123
07.02.2016, 17:57
Повторюсь, я не вижу смысла общаться с человеком, который не имеет достаточно опыта работы.


Так эта тема не для общения с человеком, ты же почитай - чел кинул код, зная на что клюют тру "борцы за код" - но тема то написана не про код, теги не про код и его сообщения - в общем-то глупости.

Но сработало же - смотри сколько народу повелось писать гадости мне - хотя кого не спроси - все нормальные, не выродки никакие.

Я не пишу нормальным людям гадости - и перед тем как указать где сидит выродок - я несколько раз перечитаю, перепроверю - чтобы не дай бог нормального человека не обидеть.

Я даже тебе стараюсь не писать гадости, потому что ты не виноват что ты "борешься за код", но я не хочу, чтобы ты лез бороться со мной. "Борись за код" еще с кем-то.

velafrys
07.02.2016, 17:58
Так эта тема не для общения с человеком, ты же почитай - чел кинул код, зная на что клюют тру "борцы за код" - но тема то написана не про код, теги не про код и его сообщения - в общем-то глупости.
Но сработало же - смотри сколько народу повелось писать гадости - хотя кого не спроси - все нормальные, не выродки никакие.
Я не пишу нормальным людям гадости - и перед тем как указать где сидит выродок - я несколько раз перечитаю, перепроверю - чтобы не дай бог нормального человека не обидеть.
Я даже тебе стараюсь не писать гадости, потому что ты не виноват что ты "борешься за код", но я не хочу, чтобы ты лез бороться со мной. "Борись за код" еще с кем-то.


Переповторюсь с дополнением - я не хочу общаться с самовлюбленным непрофессионалом, у которого только свое мнение правильное.

И гадостей Вы написали достаточно в мою сторону, поэтому я стараюсь вежливо прекратить диалог.

Однако Ваша мания величия(беспочвенная, кстати) и безграничная самовлюбленность не дает Вам не оставить последнее сообщение не за собой.

Influence
07.02.2016, 18:11
Вангую пора вмешаться.


do it! тема на 99% состоит из бреда сивой кобылы и наркоманских вбросов

Visor123
07.02.2016, 18:17
Переповторюсь с дополнением - я не хочу общаться с самовлюбленным непрофессионалом, у которого только свое мнение правильное.


От чудак человек. Если я тебе непрофессионал, а ты профессионал и "борец за код", так не пиши просто в теме.

Факт остается фактом - тема с одним названием, ты пришел "бороццо за код" и сам первый написал, я даже чтобы не скучно было слегка с тобой поспорил - показав где и что быстрее и даже пояснил, как нужно быстрее.

Потом пояснил - что название темы не соответствует ее содержанию, зачем она, почему и на что конкретно ты "клюнул" с еще парой тройкой "борцов за код - профессионалов" - ты же в итоге обиделся на меня, назвал непрофессионалом - а налошил то тебя писать в теме "про визора" не я.

Только чистые факты. Профессионал должен принять факты, какие они есть, а не обижаться на того, кто ему их показал.



do it! тема на 99% состоит из бреда сивой кобылы и наркоманских вбросов


Ну а ты тему видел? Ты же был один из первых "борцов за код", даже картинку добавил.

Первый наркоманский вброс и есть первый пост. Я даже скопировал тему выше - чтобы большими буквами, если кто не увидел сразу.

Я конечно маленя поприкалывался с самого начала, но не обижайся и ты - я же как всегда в конце "раскрыл карты". "Тема про код" -

mAnGoL
07.02.2016, 18:41
Расслабились на недельку, один и второй. Причины я описал уже. Неоднократные нарушения правил, в том числе оскорбления личности, что у одного что у второго.

WoWan-SM
07.02.2016, 21:35
как показывает опыт, java и оптимизация вещи не совместимые. Легче плюнуть и пойти бухать


Ничего подобного. Весь бекенд ok.ru написан на яве. Ну если пилой гвозди забивать, то ясен красен что ничего хорошего таким образом не построишь.



Неправильный ответ ни для 0 ни для 1 итерации цикла, измерять нужно то что есть в задаче 1 поста, а не в выдуманном примере, который хочется измерять - там вообще-то все очевидно было еще до него.
getCommand() задается 1 раз при создании объекта.
Насчет добавить StringBuilder Для 0 итераций очень сильно ускорит и сделает конфетку?
Да и вообще у вас ответы противоречат - нельзя выбрать или быстрее или экономнее.
Самый экономный вариант памяти, который при создании объекта занимает минимальное кол-во памяти, другой вариант - это если переписать без конкатенций строк - этот вариант будет самый быстрый, быстрее чем любые StringBuilder. Это очевидно, странно что реальную оптимизацию не никто смог сделать - вы же писали столько слов .... и даже не смогли найти что оптимизировать ....

Почему никто не смог ничего придумать, кроме глупого цикла на 100000 итераций вместо 0-1 реальной итерации - померяйте что будет быстрее при 0-1 итерации предложенного примера - вы узнаете реальный ответ.


Увы не имею возможности сделать такую проверку. Если бы была обязательно сделал бы.

Так вы уж определитесь в процессе выполнения метода где вызывается getCommand() он может измениться или все таки нет?

Ни на сколько не ускорит, согласен. Но все таки лучше и правильнее было сделать с использованием StringBuilder, мало ли вы решите расширить функционал и будет н 0-1 итерации , а больше.

Мои ответы как раз таки не противоречат, конкретно в данном случае можно сделать, чтобы и быстрее и экономнее работало.

Просто еще раз посмотрите на это:



0 ldc 16; /* "a" */
2 astore_1; /* a */
/* L7 */
3 ldc 18; /* "b" */
5 astore_2; /* b */
/* L8 */
6 getstatic 20; /* java.lang.System.out */
9 new 26;
12 dup;
13 aload_1; /* a */
14 invokestatic 28; /* java.lang.String java.lang.String.valueOf(java.lang.Object b) */
17 invokespecial 34; /* java.lang.StringBuilder(java.lang.String a) */
20 aload_2; /* b */
21 invokevirtual 37; /* java.lang.StringBuilder append(java.lang.String b) */
24 invokevirtual 41; /* java.lang.String toString() */
27 invokevirtual 45; /* void println(java.lang.String b) */


Что мы тут видим? При каждом сложении происходит создании объекта StringBuilder и в нем уже происходит уже аппенд строк.

Конкретно у вас в цикле происходит 15 операций конкатенаций. Создается 15 объектов StringBuilder.

Да эти 15 объектов успешно удалит GC, но блин зачем лишний раз нагружать и его еще?



Всегда важно эффективность решения, а не подход.

Подход - это набор инструментов/скилов по сути, а эффективность работы - это результат - людям нужен результат.

Пока вы не поймете таких простых вещей, вы будете задавать неправильные вопросы и иметь неправильные ответы.


Сразу вспоминаю про это книгу... надеюсь с юмором отнесетесь к этому

Visor123
10.02.2016, 17:17
Вы на вопрос ответить можете?


Кто читал в чате понимает, что это троль, котрый тут кривляется, что он типа не при чем и т.д.

И что он просто пришел бороться за код, потому что его обидели.

Ну что - жду оскорблений теперь от этого друга генклода. От генклода тема-оскорбления написана в теме и тегах и прочая чухня дальше уже просто раскрутка.

velafrys
10.02.2016, 20:11
Кто читал в чате понимает, что это троль, котрый тут кривляется, что он типа не при чем и т.д.
И что он просто пришел бороться за код, потому что его обидели.

Ну что - жду оскорблений теперь от этого друга генклода. От генклода тема-оскорбления написана в теме и тегах и прочая чухня дальше уже просто раскрутка.


Я пришел "бороться за код" потому что могу, а не потому что меня обидели. Глаз не выносит людей с таким подходом.

Visor123
10.02.2016, 20:31
Тема очень познавательная, тема-оскорбление, замазанное Манголом, кроме одного троля, который ее начал и в общем-то в истерике тут уже писал всякую чушь появился его друг, типа бороццо за код.

Для тех кто не читал чат - этот тип velafrys (https://forum.antichat.xyz/members/891367/) не ответил на вопрос ни кто он, ни что хочет. Но зато написал кучу оскорблений лично. Кто не заметил, этот тип появился в теме сам и начал писать что его оскорбили и прочую ересь, и то что он не знает генклода и т.д..

Но пока этот velafrys в теме боится оскорбления писать. Что же подождем, оно же должен пукан рвануть. Суперумный план уже раскрыт.

И в чате пока kick естественно этот герой-борец не пишет оскорбления уже - это же только можно делать когда нет никого из администрации. Такой вот "случайный" борец НИИ Бацо.

Вот такое вот кино. Получается что правила применяются однобоко - доказательство: существование этой темы-оскорбления. На этом тему можно и завершить - по ней все ясно - я достаточно точно все показал и объяснил. Тема была еще ловушкой для "друзей" генклода, потому что самостоятельно он не в состоянии ходить и хамить по форумам, а тут заодно и оскорблять.

Жалобу с доказательствами в черном списке то ли удалили, то ли скрыта.

velafrys
10.02.2016, 21:04
А как я тебя оскорбил? Сказал, что ты великовозрастный занудливый нытик, который пишет сомнительный код? Или что ты не можешь в пунктуацию? Или что твоё высокомерие не имеет под собой никакой почвы? Я не отказываюсь своих слов, и пишу их в треде.

Я даже не буду комментировать твои лживые высказывания, хех.

Вот только повторюсь - я не знаком лично ни с Генклаудом, ни с Манголом.

И зачем вот эти выделения болдом? Чтобы администрация увидела твои призывы на публику?)

GoGLiKK
10.02.2016, 22:11
А как я тебя оскорбил? Сказал, что ты великовозрастный занудливый нытик, который пишет сомнительный код? Или что ты не можешь в пунктуацию? Или что твоё высокомерие не имеет под собой никакой почвы? Я не отказываюсь своих слов, и пишу их в треде.
Я даже не буду комментировать твои лживые высказывания, хех.

Вот только повторюсь - я не знаком лично ни с Генклаудом, ни с Манголом.

И зачем вот эти выделения болдом? Чтобы администрация увидела твои призывы на публику?)


ТЫ СКАЗАЛ ЧТО ОН НЕ ПРАВ ТЫ ЕГО ОСКОРБИЛ!!!!! ИЗВИНИСь xDD

velafrys
10.02.2016, 22:20
О, ещё один жополиз Генки прибежал!

Visor123
11.02.2016, 02:41
О, ещё один жополиз Генки прибежал!


Это может быть цирк одного "актера", кто-то проверял регистрацию аккаунтов с разных (ip+разный браузер)?

С топ браузера не получилось, забанены подсети.

Как вариант нужно пробовать осваивать накрутку - по папочкам ип+куки.

В общем поэкспериментирую по свободе, напишу.

Если работает, то получится что один и тот же гена-максим или непонятно кто с ником GenCloud устроил тут тему-оскорбление и раскручивает толпу людей писать гадости (и частично даже раскрутил, не ЗГ).

Откуда я взял максим? Вот пруф (https://forum.zone-game.info/showthread.php?t=39782), один из "максимов" в переписке это этот

Psycho
11.02.2016, 02:59
Ребят, закройте уже эту помойку нытиков.

Visor123
11.02.2016, 03:04
Ребят, закройте уже эту помойку нытиков.


Я уже просил выше, ничего подобного - ни удалить эту дерьмотему ни закрыть не получилось пока.

Influence
11.02.2016, 03:29
Это может быть цирк одного "актера", кто-то проверял регистрацию аккаунтов с разных (ip+разный браузер)?
С топ браузера не получилось, забанены подсети.
Как вариант нужно пробовать осваивать накрутку - по папочкам ип+куки.
В общем поэкспериментирую по свободе, напишу.

Если работает, то получится что один и тот же гена-максим или непонятно кто с ником GenCloud устроил тут тему-оскорбление и раскручивает толпу людей писать гадости (и частично даже раскрутил, не ЗГ).
Откуда я взял максим? Вот пруф (https://forum.zone-game.info/showthread.php?t=39782), один из "максимов" в переписке это этот


Для кого-то был секрет что GenCloud - Макс?

Чутка зная его, не думаю что он таким бы занимался, скорее всего отписавшимся здесь надоело видеть эту тему в топе, вот как то так и получается.

Хотя, разбирайтесь между собой сами. И уточню, что это просто мое мнение.(дабы избежать выливания на меня кучи помоев кем либо из этой выгребной ямы)

gattsu
11.02.2016, 06:09
Научились бы сперва на прямые вопросы отвечать.

Я утверждаю, что Вы программировать не умеете. Не реализуете элементарные алгоритмы по структурам данных.

Ваш уровень копировать вставить, на больше Вы не подыметесь. Я понимаю, что люди тут прошли javarush и подумали, что все они программисты.

Timus Online Judge (http://acm.timus.ru/) решите на моих глазах 200 задач, уровнем сложности выше 1000, буду уважать, а так все пустые слова, закрепленные вашим гонором "великого кодера", и криво написанным кодом, который я так понимаю Вы продавали..

Строите какие-то теории, что тут заговор. Ну не нравитесь Вы человеку. Ну он такой. Если Вы такой умный, такой гениальный, что светитесь лучами благодати, то никто бы на него не обратил внимания.

Ваше панибратское тыканье, показывает глубокий уровень вашего интеллектуального развития. Вы с автором, друг друга стоите, что один кидает г..нов, а другой отвечает. Признать ошибку кода, Вы не решились, а типа универсальное отговорка "ну там одна итерация". Для одной итерации цикл не используют, если у вас на это логики не хватает, то и программировать не стоит. Разбираться в вашем говно коде никто не будет, если он написан криво и никто его понять не может. Это не значит, что вы гениальны, может означать обратное.

ПС Мне за этот пост заплатили денег

kick
11.02.2016, 09:44
Ребят, закройте уже эту помойку нытиков.


Мангол уже закрывал, но визор кричал о том, что бы открыли

velafrys
11.02.2016, 10:00
Научились бы сперва на прямые вопросы отвечать.
Я утверждаю, что Вы программировать не умеете. Не реализуете элементарные алгоритмы по структурам данных.
Ваш уровень копировать вставить, на больше Вы не подыметесь. Я понимаю, что люди тут прошли javarush и подумали, что все они программисты.
Timus Online Judge (http://acm.timus.ru/) решите на моих глазах 200 задач, уровнем сложности выше 1000, буду уважать, а так все пустые слова, закрепленные вашим гонором "великого кодера", и криво написанным кодом, который я так понимаю Вы продавали..
Строите какие-то теории, что тут заговор. Ну не нравитесь Вы человеку. Ну он такой. Если Вы такой умный, такой гениальный, что светитесь лучами благодати, то никто бы на него не обратил внимания.
Ваше панибратское тыканье, показывает глубокий уровень вашего интеллектуального развития. Вы с автором, друг друга стоите, что один кидает г..нов, а другой отвечает. Признать ошибку кода, Вы не решились, а типа универсальное отговорка "ну там одна итерация". Для одной итерации цикл не используют, если у вас на это логики не хватает, то и программировать не стоит. Разбираться в вашем говно коде никто не будет, если он написан криво и никто его понять не может. Это не значит, что вы гениальны, может означать обратное.

ПС Мне за этот пост заплатили денег


Так у него новая отмазочка - уровень программирования у него вырос с 2012 года, т.е. теперь он пишет чистейший джава код.

Вот только он не понимает, что дело в голове, а не в джаве.

И вообще, хватит писать оскорбления в сторону Визора!!!

Иди лизать жопу Генке дальше.

Visor123
11.02.2016, 11:48
Мангол уже закрывал, но визор кричал о том, что бы открыли


Он закрыл эту дерьмотему-оскорбление "ДО" того как я пояснил где оскорбление (в жалобе, могу повторить, удалена была вчера), как проходила раскрутка #177

Но не удалил эту тему-оскорбление все предыдущие полгода!

Я предполагаю, что не обращали внимания.

Модераторы у меня не спрашивали, удалять ли мои сообщения, потому что они нарушают правила - но эта дерьмотема-оскорбления оказалась, что не видна и нужно жаловаться. И я получал карточки и баны лишь за то, что я отвечал в ответ!

Я жаловался вчера - и что? Я привел факты, где и что - удалили дерьмотему? Нет. Вот вам факт в 1 сообщении оскорбление (тема по сути это первой сообщение: заголовок, теги, текст)

Кто-то получил нарушение за дерьмотему-оскорбление? Нет, удалили сообщение? Нет.

Мало того, вчера это GenCloud в тупую в чате матом оскорбил volond1-а, и что был забанен? Судя по всему с такой же скоростью и разбанен. То есть он может писать оскорбления и так и эдак.

И вот этот velafrys (https://forum.antichat.xyz/members/891367/) - с цирковым выступлением в чате, все это видели, но куча народа из группы администрации по совпадению исчезли. Может логи попробовать включить чата?

Уважаемый кик - вот тебе факты, они никуда не девались - о каких правилах на оскорбления и наказания ты говоришь? Оскорбляют меня, наказание за это получаю я. Моя жалоба на дерьмотему-оскорбление удалена, хотя там все от начала и до конца правда и не содержит оскорблений.

Отвечаю на вопросы администрации - почему я не пожаловался раньше (оказывается это одна из причин почему вас могут оскорблять) - оскорбление очевидно, и мои сообщения ПОТОМ (тема была первой, а не сообщения в ней) удалялись абсолютно без жалоб на каждое сообщение.

Второй вопрос от администрации - почему я писал в теме (тоже причина не удалять дерьмотему-оскорбление) - в правилах не написано, что в теме с оскорблениями нельзя писать.

Дорогие модераторы и кик приведите мне пожалуйста раздел правил, где указано что можно писать оскорбления в теме?

И вообще описывающие все эти странные слова-отмазки, главное чтобы не удалить вот эту дерьмотему-оскорбление - где все четко и понятно.

Факты "по правилам":

1) за дерьмотему-оскорбление GenCloud вообще не получил наказание, мои же сообщения потерты (уточняю: которые я писал потом) и я получил за эту тему перманентный бан.

2) дерьмотема-оскорбление не удалена, но в ней Mangol вырезал на его взгляд оскорбления, причем которые он не видел полгода. То есть человек не видит и вырезает. При этом в сообщениях он не "вырезал" оскорбления, а просто их удалял.

3) GenCloud не получил наказание даже когда оскорбил администратора в чате! Наверное потому что "великий"

4) velafrys - не получил никакого наказания, за то что писал оскорбления в чате мне (такой себе кривляющийся тут человек, что типа он про код пишет - читайте чат)! Он даже боится тут оскорбления писать - то есть можете оценить уровень геройства.

5) Писать жалобы и просить соблюдения правил у администрации тоже без результатов - проходили это пару дней назад, результаты? Нет результатов.

Зачем вообще эта дерьмотема- чтобы вы знали, что если вы не дай бог не понравитесь GenCloud-у или другому великому - то на вас напишут такую-же дерьмотему-оскорбление и вы за нее получите бан, так же вас вполне безнаказанно будут оскорблять вот с этого ника velafrys в чате.

Все это правда, вы получите незабываемый цирк, где вам еще расскажут, что это все "по правилам"!

Как я и обещал - вот вам правда, читайте. Из любого из вас могут сделать "терпилу", если вы конечно не такой.

Influence
11.02.2016, 12:31
Visor123, а где делась твоя подпись-оскорбление про "существо натянутое на кукан"?

Visor123
11.02.2016, 12:35
Visor123, а где делась твоя подпись-оскорбление про "существо натянутое на кукан"?


Она появилась ПОСЛЕ создания дерьмотемы-оскорбления, или может это вранье и я написал ее ДО того, как была создана тема?

Не нужно передергивать факты - факты идут ИМЕННО в той последовательности как они написаны. Это тоже самое что кик спросил, а зачем ты писал в ответ - да потому что я не "терпила", что меня неизвестно кто оскорбляет, а я должен при этом сидеть тихо. Хочешь сидеть тихо когда тебя оскорбляют? Сиди.

На ЗГ этот чел же никого не оскорбляет, хамит только потихоньку. Легко быть героем, и рассказывать другим когда на форуме порядок.

Что ты думаешь, что он бы не стал там оскорблять людей?Да легко, но просто там он знает, что его поставят на место туда откуда он вылез за то то что он будет оскорблять людей.

Или ты ишешь оправдания? По факту получается что так.

mAnGoL
11.02.2016, 12:40
Он закрыл эту дерьмотему-оскорбление "ДО" того как я пояснил где оскорбление, как проходила раскрутка #177

Но не удалил эту тему-оскорбление все предыдущие полгода!

Модераторы у меня не спрашивали, удалять ли мои сообщения, потому что они нарушают правила - но эта дерьмотема-оскорбления оказывается теперь что не видна и нужно жаловаться. И я получал карточки и баны лишь за то, что видители я тоже что-то писал по теме.
Я жаловался вчера - и что? Я привел факты, где и что - удалили дерьмотему? Нет. Вот вам факт в 1 сообщении оскорбление (тема по сути это первой сообщение: заголовок, теги, текст)
Кто-то получил нарушение за дерьмотему-оскорбление? Нет, удалили сообщение? Нет.
Мало того, вчера это GenCloud в тупую в чате матом оскорбил volond1-а, и что был забанен? Судя по всему с такой же скоростью и разбанен. То есть он может писать оскорбления и так и эдак.
И вот этот velafrys (https://forum.antichat.xyz/members/891367/) - с цирковым выступлением в чате, все это видели, но куча народа из группы администрации по совпадению исчезли. Может логи попробовать включить чата?

Уважаемый кик - вот тебе факты, они никуда не девались - о каких правилах на оскорбления и наказания ты говоришь? Оскорбляют меня, наказание за это получаю я. Моя жалоба на дерьмотему-оскорбление удалена, хотя там все от начала и до конца правда и не содержит оскорблений.

Отвечаю на вопросы администрации - почему я не пожаловался раньше (оказывается это одна из причин почему вас могут оскорблять) - оскорбление очевидно, и мои сообщения ПОТОМ (тема была первой, а не сообщения в ней) удалялись абсолютно без жалоб на каждое сообщение.
Второй вопрос от администрации - почему я писал в теме (тоже причина не удалять дерьмотему-оскорбление) - в правилах не написано, что в теме с оскорблениями нельзя писать.

Дорогие модераторы и кик приведите мне пожалуйста раздел правил, где указано что можно писать оскорбления в теме?
И вообще описывающие все эти странные слова-отмазки, главное чтобы не удалить вот эту дерьмотему-оскорбление - где все четко и понятно.

Факты "по правилам":

1) за дерьмотему-оскорбление GenCloud вообще не получил наказание, мои же сообщения потерты (уточняю: которые я писал потом) и я получил за эту тему перманентный бан.

2) дерьмотема-оскорбление не удалена, но в ней Mangol вырезал на его взгляд оскорбления, причем которые он не видел полгода. То есть человек не видит и вырезает. При этом в сообщениях он не "вырезал" оскорбления, а просто их удалял.

3) GenCloud не получил наказание даже когда оскорбил администратора в чате! Наверное потому что "великий"

4) velafrys - не получил никакого наказания, за то что писал оскорбления в чате мне (такой себе кривляющийся тут человек, что типа он про код пишет - читайте чат)! Он даже боится тут оскорбления писать - то есть можете оценить уровень геройства.

5) Писать жалобы и просить соблюдения правил у администрации тоже без результатов - проходили это пару дней назад, результаты? Нет результатов.

Зачем вообще эта дерьмотема- чтобы вы знали, что если вы не дай бог не понравитесь GenCloud-у или другому великому - то на вас напишут такую-же дерьмотему-оскорбление и вы за нее получите бан, так же вас вполне безнаказанно будут оскорблять вот с этого ника velafrys в чате.
Все это правда, вы получите незабываемый цирк, где вам еще расскажут, что это все "по правилам"!

Как я и обещал - вот вам правда, читайте.



Если честно я ждал данного момента очень долго т.к. я не мог позволить себе высказать все на посту Администратора, но теперь я скинул с себя эти полномочия.

В данном триде все шло хорошо, ты уделывал генку и всех неугодных, но @velafrys (https://forum.antichat.xyz/members/891367/) , @gattsu (https://forum.antichat.xyz/members/891010/) тебя опустили жопой как ты любишь выражаться "на кукан" - "обосрался иными словами". После этого ты понимаешь что ты жёстко "обосрался" ты делаешь из себя "целку" которую ломанули, ноешь что мир к тебе жесток, это они, а я не причем, я оскарблял просто так, ты должен понять меня. И типа не "видя" тему очень много месяцев после того как тебя все таки насадили на "кукан" ты пытаешься съехать на то, что тебя оскорбили и требуешь удаления темы. Сам же просил открыть трид. В данный момент ты пишешь что я поудалял кучу сообщений, но в 1 из тем тебе сделали скрин что я не удалил не одного сообщения, тем самым опять "обосрался" пытаясь съехать на чьем то горбу.

Ты очень двуличный человек, сейчас ты пишешь что "защита говно я брать ее не буду", но через пол года пишешь Рою со словами продай защиту мне она нужна.Но до этого ты поливал его что все так плохо. Данный трид пример твоего высшего идиотизма, да да, я знаю что я получу кучу карт, и даже настаиваю на получение карт.

Visor123
11.02.2016, 12:48
Если честно я ждал данного момента очень долго т.к. я не мог позволить себе высказать все на посту Администратора, но теперь я скинул с себя эти полномочия.
В данном триде все шло хорошо, ты уделывал генку и всех неугодных, но @velafrys (https://forum.antichat.xyz/members/891367/) , @gattsu (https://forum.antichat.xyz/members/891010/) тебя опустили жопой как ты любишь выражаться "на кукан" - "обосрался иными словами". После этого ты понимаешь что ты жёстко "обосрался" ты делаешь из себя "целку" которую ломанули, ноешь что мир к тебе жесток, это они, а я не причем, я оскарблял просто так, ты должен понять меня. И типа не "видя" тему очень много месяцев после того как тебя все таки насадили на "кукан" ты пытаешься съехать на то, что тебя оскорбили и требуешь удаления темы. Сам же просил открыть трид. В данный момент ты пишешь что я поудалял кучу сообщений, но в 1 из тем тебе сделали скрин что я не удалил не одного сообщения, тем самым опять "обосрался" пытаясь съехать на чьем то горбу.
Ты очень двуличный человек, сейчас ты пишешь что "защита говно я брать ее не буду", но через пол года пишешь Рою со словами продай защиту мне она нужна.Но до этого ты поливал его что все так плохо. Данный трид пример твоего высшего идиотизма, да да, я знаю что я получу кучу карт, и даже настаиваю на получение карт.


Модератор не должен как минимум участвовать в цирке-оскорблении, а желательно, чтобы и пресекал оскорбления в соответствии с правилами форума.

Ты уж определись - ты участвуешь в цирке, или ты соблюдаешь правила и заставляешь их соблюдать и других - на ЗГ такое дерьмо вообще не возможно, там этот GenCloud максимум может хамить потихоньку. А знаешь почему? Потому что там смотрят не на цирк, типа давайте придумаем кто плохой и не будем применять правила, а потом применим и потом это дерьмо объясним. А мочат тролей и шваль всякую СРАЗУ и по ФАКТУ, а не смотрят как они кривляются.

@velafrys (https://forum.antichat.xyz/members/891367/) - вот этот это же троль или сам GenCloud или он и прилез тут оскорбить меня. Ты Mangol видимо не совсем понимаешь, что когда приходят оскорбить другого, то это ты думаешь о правилах - он же в чате все четко и понятно написал, и еще оскорбил меня много раз, а тут он просто кривляется, а ты этим кривляниям веришь или делаешь вид.

Что же делаешь ты - ты пишешь оправдания, вот факты.

Ты же участвовал в этом дерьмо-цирке - потому что тебе не казалось, что это не оскорбление да? Но ты же не написал - вот блин и правда - это же чистый троллинг-оскорбление, где еще народ втянули в это дерьмо.

Нет - ты начал городить всякие "объяснения" и "давайте мы тему перепишем, и теги потрем"

"Из песни слов не выкинешь" - я обещал, что будет правда - я ее выложил - она абсолютна и подтверждена фактами и оценена с позиции правил форума. А сделать это должен был ты, а не я.

mAnGoL
11.02.2016, 12:55
Модератор не должен как минимум участвовать в цирке-оскорблении, а желательно, чтобы и пресекать оскорбления.
Ты уж определись - ты участвуешь в цирке, или ты соблюдаешь правила и заставляешь их соблюдать и других - на ЗГ такое дерьмо вообще не возможно, там этот GenCloud максимум может хамить потихоньку. А знаешь почему? Потому что там смотрят не на цирк, типа давайте придумаем кто плохой и не будем применять правила, а потом применим и т.д. А мочат тролей и шваль всякую.

Что же делаешь ты - ты пишешь оправдания, фот факты.
Ты даже участвовал в цирке - потому что тебе не казалось, что это не оскорбление да? Но ты же не написал - вот блин и правда - это же чистый троллинг-оскорбление, где еще народ втянули в это дерьмо.
Нет - ты начал городить всякие "объяснения" и "давайте мы тему перепишем, и теги потрем"
Из песни слов не выкинешь - я обещал, что будет правда - я ее выложил - она абсолютна и подтверждена фактами и оценена с позиции правил форума. А сделать это должен был ты, а не я.


Я высказал свое мнение что я тут увидел, то что Ген сделал чуть не правильно, и тему нужно было оформить в другом формате, а не в штыки ее оформлять.

+ Ко всему почему ты свои претензии не предъявил к своему другу волонду ?

Visor123
11.02.2016, 12:58
Я высказал свое мнение что я тут увидел, то что Ген сделал чуть не правильно, и тему нужно было оформить в другом формате, а не в штыки ее оформлять.
+ Ко всему почему ты свои претензии не предъявил к своему другу волонду ?


Странно ты рассуждаешь - я пишу факты, ты пишешь мнение. Нельзя писать что факт другой, потому что у тебя другое мнение - или все это матрица и тут каждый придумывает свои правила?

Просто ты должен определиться, а троли либо залезут тебе на шею и будут дальше кривляться, либо не залезут.

Волонд мне настолько же друг, как и ты. Но ты почему-то придумал себе и пишешь, что типа именно он друг.

За тебя нельзя написать хорошее, потому что ты сам не даешь это сделать своими поступками и рассуждениями, что тему-цирк с кривляем тролей можно воспринимать как настоящую где надо быть за "хорошего", и давать оскорблять "плохого". Это все субьективные понятия - когда я показал где "хорошее", а где "плохое" то все перевернулось, поэтому и нельзя было закрывать тему раньше времени - тогда все это кривляние легализуется вместе с оскорблениями.

mAnGoL
11.02.2016, 13:03
Странно ты рассуждаешь - я пишу факты, ты пишешь мнение. Нельзя писать что факт другой, потому что у тебя другое мнение - или все это матрица и тут каждый придумывает свои правила?
Просто ты должен определиться, а троли либо залезут тебе на шею и будут дальше кривляться, либо не залезут.

Волонд мне настолько же друг, как и ты. Но ты почему-то придумал себе и пишешь, что типа именно он друг.


Иногда проще признать, чем получить статус клоуна.

Visor123
11.02.2016, 13:05
Иногда проще признать, чем получить статус клоуна.


Ну ты же на посту модератора участвовал вот в этом цирке - факт же есть - там на какой-то странице твое сообщение - где ты делаешь вид будто ты считаешь что эта тема-кривляния серьезно о чем-то другом.

Так что пишешь это сообщение скорее всего ты себе, я писал в ответ оскорбления всю тему, так что свалить на меня то, что я не заметил все эти кривляния ты не сможешь.

mAnGoL
11.02.2016, 13:06
Ну ты же на посту модератора участвовал вот в этом цирке - факт же есть - там на какой-то странице твое сообщение - где ты делаешь вид будто ты считаешь что эта тема-кривляния серьезно о чем-то другом.
Так что пишешь это сообщение скорее всего ты себе, я писал в ответ оскорбления всю тему, так что свалить на меня то, что я не заметил все эти кривляния ты не сможешь.


Покажи где я участвовал.

Visor123
11.02.2016, 13:09
#82, #100, #129 - это так бегло. То есть ты даже не по теме писал - дерьмотема четко определена в названии тегах и первом посте - четко видно что это дерьмотема-оскорбление не больше и не меньше. Правда ты ее исковеркал недавно.

Кроме того ты поудалял кучу моих сообщений, чтобы меня забанить - это тоже участие в цирке тоже - просто ты выбрал сторону, но выбор стороны не отменяет участие в цирке.

mAnGoL
11.02.2016, 13:12
Данными постами тебя обидели ? Поздравляю тебя с комплексом не полноценности.

Ты читаешь между строк, тебе кидали скрины с тем кто удалял твои сообщения, и не только твои, а еще и гена, в чем проблема?

velafrys
11.02.2016, 13:14
А как я тебя оскорбил? Сказал, что ты великовозрастный занудливый нытик, который пишет сомнительный код? Или что ты не можешь в пунктуацию? Или что твоё высокомерие не имеет под собой никакой почвы? Я не отказываюсь своих слов, и пишу их в треде.





4) velafrys - не получил никакого наказания, за то что писал оскорбления в чате мне (такой себе кривляющийся тут человек, что типа он про код пишет - читайте чат)! Он даже боится тут оскорбления писать - то есть можете оценить уровень геройства.



Визор настолько ослеплен своим самомнением, повторюсь, беспочвенным, что аж перестал сообщения читать

Visor123
11.02.2016, 13:15
Mangol, ты этими сообщениями легализовал эту дерьмотему, ты принял цирк с кривляением всерьез. Нужно было не оценивать стороны по "хорошести", а удалить оскорбление - то есть первый пост и наказать того, кто нарушил правила.

Все же очень просто, а из-за того, что правила проигнорированы, ты был в это время за "хорошего" выросла цирковая дерьмотема.



Визор настолько ослеплен своим самомнением, повторюсь, беспочвенным, что аж перестал сообщения читать


Человек кривляется дальше.

Человек что же ты не пишешь оскорбления как вчера в чате, ты такой герой и ссыкнул? Кик не видел - но люди то видели.

mAnGoL
11.02.2016, 13:17
Да, ты этими сообщениями легализовал эту дерьмотему, ты принял цирк с кривляением всерьез, а должен был не оценивать стороны по "хорошести", а удалить оскорбление - то есть первый пост и наказать того, кто нарушил правила.


Я не всегда был обязан что-то удалять, на это есть другие модераторы, ведь ты не знал моих обязанностей верно ? Зачем утверждать?

Visor123
11.02.2016, 13:21
Я не всегда был обязан что-то удалять, на это есть другие модераторы, ведь ты не знал моих обязанностей верно ? Зачем утверждать?


Я же писал выше, если ты не заметил и другие, когда были за "хорошего" в цирке, то я написал уже тебе в скайп где оскорбления - по пунктикам все разложил. Ты разве удалил оскорбление? Нет - зато ты пишешь теперь кучу слов, а дерьмотема, вот она, так и осталась на месте.

Ты защищаешь тролей, потому что тебя втянули в цирк, и ты его легализовал - это и есть причина.

Но признать оскорбление оскорбление даже сейчас на зазорно - зато ты будешь иметь не только неоценимый опыт, а еще и поступишь по правилам и ты будешь "хорошим", а так ты получился как получился.

mAnGoL
11.02.2016, 13:24
Я же писал выше, если ты не заметил и другие, когда были за "хорошего" в цирке, то я написал уже тебе в скайп где оскорбления - по пунктикам все разложил. Ты разве удалил оскорбление? Нет - зато ты пишешь теперь кучу слов, а дерьмотема, вот она, так и осталась на месте.

Ты защищаешь тролей, потому что тебя втянули в цирк, и ты его легализовал - это и есть причина.


Если бы я защищал троллей генка бы в бане не сидел как минимум. Но я перечитал все от А до Я. И я высказал то что я увидел в данной теме. Генка еще тот ушлый тип.

Influence
11.02.2016, 13:25
Она появилась ПОСЛЕ создания дерьмотемы-оскорбления, или может это вранье и я написал ее ДО того, как была создана тема?
Не нужно передергивать факты - факты идут ИМЕННО в той последовательности как они написаны. Это тоже самое что кик спросил, а зачем ты писал в ответ - да потому что я не "терпила", что меня неизвестно кто оскорбляет, а я должен при этом сидеть тихо. Хочешь сидеть тихо когда тебя оскорбляют? Сиди.
На ЗГ этот чел же никого не оскорбляет, хамит только потихоньку. Легко быть героем, и рассказывать другим когда на форуме порядок.
Что ты думаешь, что он бы не стал там оскорблять людей?Да легко, но просто там он знает, что его поставят на место туда откуда он вылез за то то что он будет оскорблять людей.

Или ты ишешь оправдания? По факту получается что так.


Ты каким то образом прочитал больше чем я написал, а мне то всего было интересны причины исчезновения твоей подписи. После чего она появилась я знаю, а пропала почему?

velafrys
11.02.2016, 13:28
Визор настолько ослеплен своим самомнением, повторюсь, беспочвенным, что аж перестал сообщения читать





Человек кривляется дальше.
Человек что же ты не пишешь оскорбления как вчера в чате, ты такой герой и ссыкнул? Кик не видел - но люди то видели.



Ещё раз прочти, хех.

Ты тут кичишься, мол, ФАКТЫ постишь? Ну так ты же вчера скринил чатик, когда я тебя, якобы, оскорблял?

В студию скриншоты.

Visor123
11.02.2016, 13:28
Если бы я защищал троллей генка бы в бане не сидел как минимум. Но я перечитал все от А до Я. И я высказал то что я увидел в данной теме. Генка еще тот ушлый тип.


Да но он не сидит в бане, но написал тему-оскорбление и с другого аккаунта или второй раскручивают этот цирк дальше.

Генка-максимка может и ушлый тип, но на ЗГ таким дают карточки и удаляют их сообщения с оскорблениями ПО ПРАВИЛАМ - я же показывал, что высший его пилотаж там - это хамить новичкам.

Не нужно меня то винить в том, что генка или кто там ушлый - троли они естественно ушлые, но на то и берут модераторов, чтобы они их держали в пределах правил, а не подыгрывали им: легализовывали оскорбления и цирк.

mAnGoL
11.02.2016, 13:32
Да но он не сидит в бане, но написал тему-оскорбление и с другого аккаунта или второй раскручивают этот цирк дальше.
Генка-максимка может и ушлый тип, но на ЗГ таким дают карточки и удаляют их сообщения с оскорблениями ПО ПРАВИЛАМ - я же показывал, что высший его пилотаж там - это хамить новичкам.

Не нужно меня то винить в том, что генка или кто там ушлый - троли они естественно ушлые, но на то и берут модераторов, чтобы они их держали в пределах правил, а не подыгрывали им: легализовывали оскорбления и цирк.


Тогда хочу спросить, почему ты не в бане ?

Правильно ты же хотел снять бан. С тебя сняли бан вместе с генкой, чем он лучше? Он оскорблял, ты поддался тоже оскорблял. Тебя не заставляли оскорблять. Есть такие чудо кнопки как ПОЖАЛОВАТЬСЯ.

Visor123
11.02.2016, 13:33
Ты каким то образом прочитал больше чем я написал, а мне то всего было интересны причины исчезновения твоей подписи. После чего она появилась я знаю, а пропала почему?


Просто так, ты же не спросил почему чел написал оскорбление и втянул тебя в этот цирк. Но тебя интересует почему подпись. Потому что цирк, поскольку у меня появилось чуток времени и я этот цирк-гнойник с тролями вскрыл - то удалил - ведь в это нет больше нужны - раз до этого никто не замечал этого цирка, то наличие подписи не поможет этому аж никак.

А ты думал почему? Что я ссылкнул как и троль, который оскорблял меня в чате вчера, а тут сегодня ссыт тут писать теже оскорбления. Нет, я не ссылкнул и обратил внимания на очевидный цирк.

velafrys
11.02.2016, 13:34
Ещё раз прочти, хех.

Ты тут кичишься, мол, ФАКТЫ постишь? Ну так ты же вчера скринил чатик, когда я тебя, якобы, оскорблял?
В студию скриншоты.





Что я ссылкнул как и троль, который оскорблял меня в чате вчера, а тут сегодня ссыт тут писать теже оскорбления.



Я буду цитировать до тех пор, пока ты не ответишь за слова.

Visor123
11.02.2016, 13:37
Тогда хочу спросить, почему ты не в бане ?
Правильно ты же хотел снять бан. С тебя сняли бан вместе с генкой, чем он лучше? Он оскорблял, ты поддался тоже оскорблял. Тебя не заставляли оскорблять. Есть такие чудо кнопки как ПОЖАЛОВАТЬСЯ.


Я не в бане потому что он закончился.

С меня не сняли бан - было написано бан до 9 февраля 2016 года.

И посмотри, ты опять путаешь причину со следствием - причина эта дерьмотема, а не бан, который ты насунул удаляя мои сообщения.

У генки или как ты там его ласкательноназываешь не было бана за эту тему, ты дал ему за какое-то другое сообщение, почему? да потому что нужно удалить сообщение - а оскорбление - это первое сообщение вместе с заголовком и тегами. Оно на месте, только исковеркано чуток, чтобы типа этот цирк был еще более легален.

Насчет кнопки пожаловаться - я что-то не заметил, чтобы ты или второй модератор удаляли мои сообщения по кнопке - их удаляли сразу, без кнопки.



Я буду цитировать до тех пор, пока ты не ответишь за слова.


Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.

Поэтому я и обращаю внимание администрации, что нужно либо эту дерьмотему удалить по правилам форума, либо ничего не делать, легализуя любые оскорбления тролей.

mAnGoL
11.02.2016, 13:42
Я не в бане потому что он закончился.
С меня не сняли бан - было написано бан до 9 февраля 2016 года.

И посмотри, ты опять путаешь причину со следствием - причина эта дерьмотема, а не бан, который ты насунул удаляя мои сообщения.
У генки или как ты там его ласкательноназываешь не было бана за эту тему, ты дал ему за какое-то другое сообщение, почему? да потому что нужно удалить сообщение - а оскорбление - это первое сообщение вместе с заголовком и тегами. Оно на месте, только исковеркано чуток, чтобы типа этот цирк был еще более легален.

Насчет кнопки пожаловаться - я что-то не заметил, чтобы ты или второй модератор удаляли мои сообщения по кнопке - их удаляли сразу, без кнопки.


Начнем с того что бан у тебя был до 14 числа до 19 55. То что вы с волондам там сделали я не знаю. И ты не мог видеть до какого числа у тебя бан.

Волонда сняли с администратора.

Visor123
11.02.2016, 13:42
Начнем с того что бан у тебя был до 14 числа до 19 55. То что вы с волондам там сделали я не знаю. И ты не мог видеть до какого числа у тебя бан.
Волонда сняли с администратора.


Да ну да, попроси тебя забанить и посмотришь - там пишется до когда бан. Что-то ты либо путаешь, либо пытаешься выдать желаемое за действительно опять.

Ты просто пытаешь скрыть тот факт, что и ты натупил в том числе, участвуя в этом дерьмо-цирке забанив меня, вместо того, чтобы как ты говоришь поступить "по правилам".

Нельзя поступить "по правилам" не поступив по правилам - то есть ты сам себе противоречишь словами и действиями. Делаешь одно, а потом говоришь что это "по правилам".

mAnGoL
11.02.2016, 13:44
Да ну да, попроси тебя забанить и посмотришь - там пишется до когда бан. Что-то ты либо путаешь, либо пытаешься выдать желаемое за действительно опять.


Бан был до 14 числа 19 55. Лично проверял в тот день когда с тебя волонд снял бан.

velafrys
11.02.2016, 13:48
Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.

Поэтому я и обращаю внимание администрации, что нужно либо эту дерьмотему удалить по правилам форума, либо ничего не делать, легализуя любые оскорбления тролей.



Призываю рассмотреть возможность бана Visor123 за клевету и оскорбления.

Visor123
11.02.2016, 13:48
Бан был до 14 числа 19 55. Лично проверял в тот день когда с тебя волонд снял бан.


Я не знаю снял ли Волонд или нет, я обратил внимания его что было написано до 9 февраля, а потом без даты, не ошибка ли это.

То есть ты сейчас просто раздуваешь цирк дальше, уже про бан.

Почему ты не забанил чела, который написал оскорбление в 1 посту? Пост еще на месте, но правда ты стер почему-то более плохие слова. Это же цирк называется, и уже ты выкручиваешься, расскажи, почему ты занил меня за то что я написал оскорбление на оскорбление? Причем я дал возможность висеть оскорблению полгода - то есть это было не сразу, что типа "обое" плохие.

Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.

velafrys
11.02.2016, 13:49
Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.


Вот только проблема в том, что тебя никто не оскорбляет.

И не поддерживает тоже, кстати.

Influence
11.02.2016, 13:50
Ты будешь кривляться и дальше. То есть легализация таких вот цирковых выступлений - это собственно легализация и всего этого дерьма.

Поэтому я и обращаю внимание администрации, что нужно либо эту дерьмотему удалить по правилам форума, либо ничего не делать, легализуя любые оскорбления тролей.


Извини конечно, но надо лукавить, я вчера как раз читал тот чат, и не видел чтобы конкретно velafrys тебя оскорблял. Ты же соответственно в чате писал что делаешь скрины и ждешь администрация(которая куда-то пропала) чтобы показать их, так можно, пожалуйста, эти скрины?

Visor123
11.02.2016, 13:53
Извини конечно, но надо лукавить, я вчера как раз читал тот чат, и не видел чтобы конкретно velafrys тебя оскорблял. Ты же соответственно в чате писал что делаешь скрины и ждешь администрация(которая куда-то пропала) чтобы показать их, так можно, пожалуйста, эти скрины?


Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.

Я же не виноват, что нет логов чара, кик бы написал, что не пишите в чат, там все равно что написано. Или "чат не модерируется"

mAnGoL
11.02.2016, 13:53
Я не знаю снял ли Волонд или нет, я обратил внимания его что было написано до 9 февраля, а потом без даты, не ошибка ли это.

То есть ты сейчас просто раздуваешь цирк дальше, уже про бан.
Почему ты не забанил чела, который написал оскорбление в 1 посту? Пост еще на месте, но правда ты стер почему-то более плохие слова. Это же цирк называется, и уже ты выкручиваешься, расскажи, почему ты занил меня за то что я написал оскорбление на оскорбление? Причем я дал возможность висеть оскорблению полгода - то есть это было не сразу, что типа "обое" плохие.
Нет - ты прицепился ко мне и сейчас тоже, прицепись к тем кто оскорбляет меня.


Я прицепился с той причиной что ты в данной теме реально "обосрался" ты же такой парень, всех натягиваешь, а тут вдруг тебя натянули по полной. И пытаешься выехать на том что висел пол года, и тебе было побоку.

Я закрывал темы. Ты хотел этой темы продолжение, получи продолжение.

velafrys
11.02.2016, 13:53
Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.


Тебя уже второй раз просят представить пруфы оскорблений, говнокодер.

Пруфы будут?

Уходи с форума, уходи с форума или не позиционируй себя как разработчик, раз не можешь терпеть критики. Я не называл тебя говнокодером с первого поста, а вполне вежливо с тобой общался, т.к. причин не было общаться с тобой иначе. А потом ты сам доказал, кто ты такой.

Такие дела.

Visor123
11.02.2016, 13:54
Тебя уже второй раз просят представить пруфы оскорблений, говнокодер.
Пруфы будут?


Вот оскорбление - прошу принять меры.

velafrys
11.02.2016, 13:57
Вот оскорбление - прошу принять меры.


Это не оскорбление, а нарицательное слово. Грубое, конечно, но часто применимое, если "разработчик" этого заслуживает.

У меня нет причин называть кого-то другого в этом треде говнокодером, но если и будут - бьюсь об заклад, кто угодно докажет обратное, и мне станет стыдно.

А вот ты не можешь доказать.

Опровергни тот факт, что ты не говнокодер.

mAnGoL
11.02.2016, 13:58
Это не оскорбление, а нарицательное слово. Грубое, конечно, но часто применимое, если "разработчик" этого заслуживает.
У меня нет причин называть кого-то другого в этом треде говнокодером, но если и будут - бьюсь об заклад, кто угодно докажет обратное, и мне станет стыдно.
А вот ты не можешь доказать.

Опровергни тот факт, что ты не говнокодер.



Код:



/*
* 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 .
*/
package instances.IceQueenCastle2;

import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;

import ai.group_template.L2AttackableAIScript;

import net.l2emuproject.gameserver.ThreadPoolManager;
import net.l2emuproject.gameserver.ai.CtrlIntention;
import net.l2emuproject.gameserver.datatables.NpcTable;
import net.l2emuproject.gameserver.datatables.SkillTable;
import net.l2emuproject.gameserver.instancemanager.Instan ceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneMa nager;
import net.l2emuproject.gameserver.instancemanager.Instan ceManager.InstanceWorld;
import net.l2emuproject.gameserver.model.L2Effect;
import net.l2emuproject.gameserver.model.L2Party;
import net.l2emuproject.gameserver.model.L2Skill;
import net.l2emuproject.gameserver.model.L2Spawn;
import net.l2emuproject.gameserver.model.actor.L2Characte r;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L 2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L 2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L 2PcInstance;
import net.l2emuproject.gameserver.model.entity.Instance;
import net.l2emuproject.gameserver.model.quest.QuestState ;
import net.l2emuproject.gameserver.model.quest.State;
import net.l2emuproject.gameserver.model.zone.L2BossZone;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.SystemMessageI d;
import net.l2emuproject.gameserver.network.serverpackets. ExShowScreenMessage;
import net.l2emuproject.gameserver.network.serverpackets. SystemMessage;
import net.l2emuproject.gameserver.skills.Formulas;
import net.l2emuproject.gameserver.templates.chars.L2NpcT emplate;
import net.l2emuproject.geoserver.model.Location;
import net.l2emuproject.tools.random.Rnd;

/**
*
* @author Visor123
* L2Emu Enterprise Server
*
*/

public class IceQueenCastle2 extends L2AttackableAIScript
{
private static final boolean debug = false;
private static final int INSTANCEID = 139;
private static final String qn = "IceQueenCastle2";
private static final String qnPrev = "10286_ReunionWithSirra";
private static final int PLAYERS_MIN = 10;
private static final int PLAYERS_MAX = 27;

private static int _zoneScriptId = 200010; //script zone for start
private static int _zoneBossId = 12015;
private static L2BossZone _Zone;
private static final Location _enterLoc = new Location(114025, -112300, -11200);
private static final Location _centerLoc = new Location(114722, -114797, -11200);

private static final int[][] _iceKnightLoc = {{113845,-116091,-11168,8264}
,{113381,-115622,-11168,8264}
,{113380,-113978,-11168,-8224}
,{113845,-113518,-11168,-8224}
,{115591,-113516,-11168,-24504}
,{116053,-113981,-11168,-24504}
,{116061,-115611,-11168,24804}
,{115597,-116080,-11168,24804}
,{112942,-115480,-10960,52}
,{112940,-115146,-10960,52}
,{112945,-114453,-10960,52}
,{112945,-114123,-10960,52}
,{116497,-114117,-10960,32724}
,{116499,-114454,-10960,32724}
,{116501,-115145,-10960,32724}
,{116502,-115473,-10960,32724}};
private static final int _maxIceKnigth = 20; //OFF 160
private static final int[][] _iceKnightLocThrone = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int[] _maxIceKnigthThrone = {12,12,30};//first, second, third
private static final int[][] _iceIceBreathLoc = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int _maxIceBreath = 10;
private static final int _maxIceStone = 6;

private static final int FreyaOnThrone = 29177;
private static final int Freya = 29179;
private static final int[][] Freya_Skills = {{6274,1},{6275,1},{6276,1},{6277,1},{6278,1},{627 9,1},{6280,1},{6282,1},{6283,1},{6284,1},{6285,1}} ;
private static final int Glacier = 18853;
private static final int Glakias = 25699;
private static final int ArcheryKnight = 18855;
private static final int ArchersBreath = 18854;
/*private static final int FreyaController = 18930;
private static final Location FreyaControllerLoc = new Location(114707,-114793,-11199,0);
private static final int IceElementalController = 18931;
private static final Location IceElementalControllerLoc = new Location(114707,-114795,-11199,0);
private static final int IceCastleController = 18932;
private static final Location IceCastleControllerLoc = new Location(114707,-114797,-11199,0);*/
private static final int[] _zoneSkill = {6437,7};

private static final int Kegor = 18851;
private static final int Jinia = 18850;
private static final int JINIA2 = 32781;

static class Timer implements Runnable
{
@Override
public void run()
{
if (time > 10)
{
world.BossZone.broadcastPacket(new ExShowScreenMessage("00 : "+time, 1500), world.instanceId); //need check
ThreadPoolManager.scheduleGeneral(new Timer(time - 1, world), 1000L);
}
}

private int time;
private FreyaWorld world;

public Timer(int _time, FreyaWorld _world)
{
time = _time;
world = _world;
}
}

private static class FreyaWorld extends InstanceWorld
{
L2AttackableAIScript _quest;
L2Npc Npc_Freya;
L2Npc Npc_Kegor;
L2Npc Npc_Jinia;
L2Npc Npc_Glakias;
L2BossZone BossZone;
int stage = 0;
ScheduledFuture knigthController = null;
int countKnigth = 0;
ScheduledFuture knigthThroneController = null;
int countKnigthThrone = 0;
ScheduledFuture breathController = null;
ScheduledFuture stoneController = null;
int countIceBreath = 0;
int countIceStone = 0;
ScheduledFuture zoneSkillController = null;
ScheduledFuture helpMoveController = null;

public FreyaWorld(Instance inst, L2AttackableAIScript quest)
{
super(inst);
_quest = quest;
}

@Override
public void decayMe()
{
stopHelpMoveController();
stopBreathController();
stopKnigthController();
stopKnigthThroneController();
stopStoneController();
stopZoneSkillController();
super.decayMe();
}

synchronized void decCountKnigth()
{ countKnigth --; }
synchronized void decCountKnigthThrone()
{ countKnigthThrone --; }
synchronized void decCountIceBreath()
{ countIceBreath --; }
synchronized void decCountIceStone()
{ countIceStone --; }
synchronized void incCountKnigth()
{ countKnigth ++; }
synchronized void incCountKnigthThrone()
{ countKnigthThrone ++; }
synchronized void incCountIceBreath()
{ countIceBreath ++; }
synchronized void incCountIceStone()
{ countIceStone ++; }

synchronized void startStoneController()
{
if (stoneController != null)
stoneController.cancel(false);

stoneController = ThreadPoolManager.scheduleGeneralAtFixedRate(new iceStoneController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopStoneController()
{
if (stoneController != null)
stoneController.cancel(false);
stoneController = null;
}
synchronized void startBreathController()
{
if (breathController != null)
breathController.cancel(false);

breathController = ThreadPoolManager.scheduleGeneralAtFixedRate(new breathController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopBreathController()
{
if (breathController != null)
breathController.cancel(false);
breathController = null;
}
synchronized void startZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);

zoneSkillController = ThreadPoolManager.scheduleGeneralAtFixedRate(new zoneSkillController(_quest, this), 1000L, 10000L);
}
synchronized void stopZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);
zoneSkillController = null;
for (L2PcInstance player : getPlayers())
{
L2Effect effects[] = player.getAllEffects();
for (int j = 0; j = 3)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(2104));
return false;
}

}
if (party.getCommandChannel().getMembers().size() PLAYERS_MAX)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(2764));
return false;
}
for (L2PcInstance plr : party.getCommandChannel().getMembers())
{
if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOT HER_INSTANCE_CANT_ENTER));
return false;
}
if (plr.getLevel() Calendar.WEDNESDAY)
result.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY) ;
else
{
if (result.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY)
{
if (result.get(Calendar.HOUR_OF_DAY) 0))
{
//_log.info("onEnterZone: "+ zone.getId() + " Zone Name: "+ zone.getName());
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(character.g etInstanceId());
//_log.info("freya2 onEnterZone tmpworld="+tmpworld.getClass().getCanonicalName());
if (tmpworld != null && tmpworld.templateId == INSTANCEID)
{
//_log.info("onEnterZone tmpworld.templateId="+tmpworld.templateId+" INSTANCEID="+INSTANCEID);
final FreyaWorld world = (FreyaWorld) tmpworld;
//_log.info("zone.getId(): " + zone.getId() + " world.status: " + world.status);
if (zone.getId() == _zoneScriptId && world.status 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (tmpworld instanceof FreyaWorld)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == FreyaOnThrone && world.status == 1)
{
endStage(world);
world.setStatus(2);
world.stage = 2;
startStage(world);
}
else if (npc.getNpcId() == ArcheryKnight)
{
if (npc.getTag() != null && (Integer)npc.getTag() == 1)
world.decCountKnigthThrone();
else
world.decCountKnigth();

if (world.status >= 2 && world.status = 12)
{
allowBossZone(world);
world.BossZone.broadcastMovie(23, world.instanceId);
stopAll(world);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.Npc_Glakias = IceQueenCastle2.spawn(Glakias, 114722, -114797, -11200, 16384, world);
startAll(world);
}
}, 7000L);
}
}
}
else if (npc.getNpcId() == ArchersBreath)
{
world.decCountIceBreath();
}
else if (npc.getNpcId() == Glakias && world.status == 12)
{
world.Npc_Glakias = null;
world.setStatus(world.status + 1);
endStage(world);
ThreadPoolManager.scheduleGeneral(new Timer(60, world), 100L);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.stage = 3;
IceQueenCastle2.startStage(world);
}
}, 60100L);
}
else if (npc.getNpcId() == Freya/* && world.status == 15*/)
{
world.setStatus(16/*world.status + 1*/);
endStage(world);
//complete quest 10286_ReunionWithSirra
for (L2PcInstance player1 : world.getPlayers())
{
if (player1 != null)
{
QuestState qs = player1.getQuestState(qnPrev);
if (qs != null && !qs.isCompleted() && qs.getInt("progress") == 2 && qs.getInt("cond") == 6)
{
qs.set("progress", "3");
qs.set("cond", "7");
qs.playSound("ItemSound.quest_middle");
}
}
}
allowBossZone(world);
world.BossZone.broadcastMovie(19, world.instanceId);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.setStatus(world.status + 1);
}
}, 16000L);
world.getSelfInstance().setDuration(5); //duration 5 min
}
else if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(3);
world.decCountIceStone();
addSpawn(ArchersBreath, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, 0, false, world.instanceId);
world.incCountIceBreath();
}
}
}
return null;
}

private static void setInstanceReenterTime(InstanceWorld world)
{
if (world != null)
{
try
{
long nextUpdate = generateUpdateTime();

// set instance reenter time for all allowed players
for (L2PcInstance player : world.getPlayers())
{
if (player != null)
InstanceManager.getInstance().setInstanceTime(play er.getObjectId(), INSTANCEID, nextUpdate);
}
}
catch (Exception e) {
// TODO: handle exception
}
}
}

@Override
public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isPet)
{
if (npc.getInstanceId() > 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (tmpworld instanceof FreyaWorld && tmpworld.templateId == INSTANCEID)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == Freya && npc.getCurrentHp() = _maxIceBreath) return;

int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];

_quest.addSpawn(ArchersBreath, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceBreath();
}
}
}
}

static class iceStoneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public iceStoneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countIceStone = _maxIceStone) return;

int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];

_quest.addSpawn(Glacier, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceStone();
}
count = 1;
}
}
}

static class zoneSkillController implements Runnable
{
//private L2AttackableAIScript _quest;
private FreyaWorld ww;
public zoneSkillController(L2AttackableAIScript quest, FreyaWorld world)
{
//_quest = quest;
ww = world;
}

@Override
public void run()
{
if (ww != null && ww.countIceStone > 0)
{
int skillLvl = Rnd.get(1, _zoneSkill[1]);
L2Skill skill = SkillTable.getInstance().getInfo(_zoneSkill[0], skillLvl);
for (L2PcInstance player : ww.getPlayers())
{
if (Formulas.calcSkillSuccess(player, player, skill, (byte)0, false, false, false))
skill.getEffects(player, player);
}
}

}
}

static class knigthController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countKnigth = _maxIceKnigth) return;

int[] loc = _iceKnightLoc[Rnd.get(0, _iceKnightLoc.length - 1)];

L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
ww.incCountKnigth();
knight.setIsImmobilized(true);
knight.setDisplayEffect(1);
_quest.startQuestTimer("startAggro", 20000L, knight, null);
}
}
}
}
}

static class knigthThroneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthThroneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countKnigthThrone = _maxIceKnigthThrone[ww.stage - 1]) return;

int[] loc = _iceKnightLocThrone[Rnd.get(0, _iceKnightLocThrone.length - 1)];

L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
knight.setTag((Integer)1);
ww.incCountKnigthThrone();
}
}
}
}
}

static class helpMoveController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
public helpMoveController(L2AttackableAIScript quest, FreyaWorld world)
{
_quest = quest;
ww = world;
}

@Override
public void run()
{
if (ww != null)
{
for (L2Npc npc : ww.getNpcs())
{
if (npc != null && npc != ww.Npc_Freya && npc != ww.Npc_Glakias && npc != ww.Npc_Jinia && npc != ww.Npc_Kegor && !npc.isImmobilized() && !npc.isInCombat())
_quest.startQuestTimer("moveTo", Rnd.get(200, 800), npc, null);
}
}
}
}

private static void moveTo(L2Npc npc, Location loc)
{
if (npc != null)
{
npc.setRunning();
npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_MOVE_TO, new Location(loc.getX(), loc.getY(), loc.getZ()), true);
if (npc.getSpawn() != null)
{
npc.getSpawn().setLocx(loc.getX());
npc.getSpawn().setLocy(loc.getY());
npc.getSpawn().setLocz(loc.getZ());
}
}
}

@Override
public final String onSpawn(L2Npc npc)
{
if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(1);
npc.setIsImmobilized(true);
startQuestTimer("changeEffect", 1900L, npc, null);
}
npc.setIsNoAnimation(true);
return null;
}

@Override
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (npc != null && npc.getInstanceId() > 0 && InstanceManager.getInstance().getWorld(npc.getInst anceId()) != null && InstanceManager.getInstance().getWorld(npc.getInst anceId()).templateId == INSTANCEID)
{
FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (event.equalsIgnoreCase("changeEffect"))
{
//npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("startAggro"))
{
npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("moveTo"))
{
if (!npc.isImmobilized() && !npc.isInCombat())
{
if (Rnd.chance100(50) && !world.getPlayers().isEmpty())
{
try
{
L2PcInstance target = world.getSelfInstance().getRandomPlayer();
if (target != null)
{
npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_ATTACK, target);
return null;
}

}
catch (Exception e) {
// TODO: handle exception
startQuestTimer("moveTo", 3000L, npc, null);
}
}
Location toLoc = _centerLoc;
if (world.Npc_Glakias != null)
toLoc = world.Npc_Glakias.getLocation();
else if (world.Npc_Freya != null && world.stage != 2)
toLoc = world.Npc_Freya.getLocation();
if (!npc.isInsideRadius(toLoc.getX(), toLoc.getY(), toLoc.getZ(), 500))
moveTo(npc, toLoc);
}
}
}
return null;
}

@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
int npcId = npc.getNpcId();
if (npcId == JINIA2)
{
enterInstance(npc, player);
}
return "";
}

public IceQueenCastle2(int id, String name, String descr)
{
super(id, name, descr);
addEnterZoneId(_zoneScriptId);
addStartNpc(JINIA2);
addTalkId(JINIA2);
addKillId(FreyaOnThrone);
addKillId(ArcheryKnight);
addSpawnId(ArcheryKnight);
addKillId(ArchersBreath);
addSpawnId(ArchersBreath);
addKillId(Glakias);
addKillId(Freya);
addKillId(Glacier);
addAttackId(Freya);
addAttackId(ArcheryKnight);
addSpawnId(Glacier);
registerSkillsForNpc(Freya, Freya_Skills);

_Zone = (L2BossZone)ZoneManager.getInstance().getZoneById( _zoneBossId);;
}

public static void main(String args[])
{
new IceQueenCastle2(-1, qn, "instances");
}
}


Нет, не говнокодер.

Influence
11.02.2016, 14:00
Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.

Я же не виноват, что нет логов чара, кик бы написал, что не пишите в чат, там все равно что написано. Или "чат не модерируется"


Вы уходите от ответа, уважаемый, почему же речь не о нем? Говорили же что он оскорблял в чате и тд. и есть скрины, а теперь речь вообще не о нем?

Пока вы увиливаете от конкретных вопросов, думаю, не стоит дальше вести с вами дискуссию. Послежу за тридиком пока что. Удачи.

Visor123
11.02.2016, 14:01
Я прицепился с той причиной что ты в данной теме реально "обосрался" ты же такой парень, всех натягиваешь, а тут вдруг тебя натянули по полной. И пытаешься выехать на том что висел пол года, и тебе было побоку.
Я закрывал темы. Ты хотел этой темы продолжение, получи продолжение.


Да никто меня не натянул.

Что ты такое рассказываешь?

Никто не доказал что на java быстрее чем на ассемблере, никто не доказал даже что я сказал, что этот код хороший или имеет место быть. Я написал что? Что он оптимален для того, чтобы не выполняться, либо выполнится 1 раз в полгода.

Больше ничего не было написано - ты почитал сообщения троля, который написал не то что на самом деле и сделал вывод.

Натянул? Ты же не передергивай. То ты был модератором, участвовал в цирке, теперь ты не модератор и тоже участвуешь в цирке.

Тема про код не может быть темой про прямое оскорбление.

Прошу удалить первый пост, поскольку тему обсуждать в теме никто не хочет, зато создана дерьмотема на много страниц с целью оскорбить меня, и оскорбляющая меня, что в общем-то и написано.

velafrys
11.02.2016, 14:02
Код:



/*
* 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 .
*/
package instances.IceQueenCastle2;

import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;

import ai.group_template.L2AttackableAIScript;

import net.l2emuproject.gameserver.ThreadPoolManager;
import net.l2emuproject.gameserver.ai.CtrlIntention;
import net.l2emuproject.gameserver.datatables.NpcTable;
import net.l2emuproject.gameserver.datatables.SkillTable;
import net.l2emuproject.gameserver.instancemanager.Instan ceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneMa nager;
import net.l2emuproject.gameserver.instancemanager.Instan ceManager.InstanceWorld;
import net.l2emuproject.gameserver.model.L2Effect;
import net.l2emuproject.gameserver.model.L2Party;
import net.l2emuproject.gameserver.model.L2Skill;
import net.l2emuproject.gameserver.model.L2Spawn;
import net.l2emuproject.gameserver.model.actor.L2Characte r;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L 2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L 2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L 2PcInstance;
import net.l2emuproject.gameserver.model.entity.Instance;
import net.l2emuproject.gameserver.model.quest.QuestState ;
import net.l2emuproject.gameserver.model.quest.State;
import net.l2emuproject.gameserver.model.zone.L2BossZone;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.SystemMessageI d;
import net.l2emuproject.gameserver.network.serverpackets. ExShowScreenMessage;
import net.l2emuproject.gameserver.network.serverpackets. SystemMessage;
import net.l2emuproject.gameserver.skills.Formulas;
import net.l2emuproject.gameserver.templates.chars.L2NpcT emplate;
import net.l2emuproject.geoserver.model.Location;
import net.l2emuproject.tools.random.Rnd;

/**
*
* @author Visor123
* L2Emu Enterprise Server
*
*/

public class IceQueenCastle2 extends L2AttackableAIScript
{
private static final boolean debug = false;
private static final int INSTANCEID = 139;
private static final String qn = "IceQueenCastle2";
private static final String qnPrev = "10286_ReunionWithSirra";
private static final int PLAYERS_MIN = 10;
private static final int PLAYERS_MAX = 27;

private static int _zoneScriptId = 200010; //script zone for start
private static int _zoneBossId = 12015;
private static L2BossZone _Zone;
private static final Location _enterLoc = new Location(114025, -112300, -11200);
private static final Location _centerLoc = new Location(114722, -114797, -11200);

private static final int[][] _iceKnightLoc = {{113845,-116091,-11168,8264}
,{113381,-115622,-11168,8264}
,{113380,-113978,-11168,-8224}
,{113845,-113518,-11168,-8224}
,{115591,-113516,-11168,-24504}
,{116053,-113981,-11168,-24504}
,{116061,-115611,-11168,24804}
,{115597,-116080,-11168,24804}
,{112942,-115480,-10960,52}
,{112940,-115146,-10960,52}
,{112945,-114453,-10960,52}
,{112945,-114123,-10960,52}
,{116497,-114117,-10960,32724}
,{116499,-114454,-10960,32724}
,{116501,-115145,-10960,32724}
,{116502,-115473,-10960,32724}};
private static final int _maxIceKnigth = 20; //OFF 160
private static final int[][] _iceKnightLocThrone = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int[] _maxIceKnigthThrone = {12,12,30};//first, second, third
private static final int[][] _iceIceBreathLoc = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int _maxIceBreath = 10;
private static final int _maxIceStone = 6;

private static final int FreyaOnThrone = 29177;
private static final int Freya = 29179;
private static final int[][] Freya_Skills = {{6274,1},{6275,1},{6276,1},{6277,1},{6278,1},{627 9,1},{6280,1},{6282,1},{6283,1},{6284,1},{6285,1}} ;
private static final int Glacier = 18853;
private static final int Glakias = 25699;
private static final int ArcheryKnight = 18855;
private static final int ArchersBreath = 18854;
/*private static final int FreyaController = 18930;
private static final Location FreyaControllerLoc = new Location(114707,-114793,-11199,0);
private static final int IceElementalController = 18931;
private static final Location IceElementalControllerLoc = new Location(114707,-114795,-11199,0);
private static final int IceCastleController = 18932;
private static final Location IceCastleControllerLoc = new Location(114707,-114797,-11199,0);*/
private static final int[] _zoneSkill = {6437,7};

private static final int Kegor = 18851;
private static final int Jinia = 18850;
private static final int JINIA2 = 32781;

static class Timer implements Runnable
{
@Override
public void run()
{
if (time > 10)
{
world.BossZone.broadcastPacket(new ExShowScreenMessage("00 : "+time, 1500), world.instanceId); //need check
ThreadPoolManager.scheduleGeneral(new Timer(time - 1, world), 1000L);
}
}

private int time;
private FreyaWorld world;

public Timer(int _time, FreyaWorld _world)
{
time = _time;
world = _world;
}
}

private static class FreyaWorld extends InstanceWorld
{
L2AttackableAIScript _quest;
L2Npc Npc_Freya;
L2Npc Npc_Kegor;
L2Npc Npc_Jinia;
L2Npc Npc_Glakias;
L2BossZone BossZone;
int stage = 0;
ScheduledFuture knigthController = null;
int countKnigth = 0;
ScheduledFuture knigthThroneController = null;
int countKnigthThrone = 0;
ScheduledFuture breathController = null;
ScheduledFuture stoneController = null;
int countIceBreath = 0;
int countIceStone = 0;
ScheduledFuture zoneSkillController = null;
ScheduledFuture helpMoveController = null;

public FreyaWorld(Instance inst, L2AttackableAIScript quest)
{
super(inst);
_quest = quest;
}

@Override
public void decayMe()
{
stopHelpMoveController();
stopBreathController();
stopKnigthController();
stopKnigthThroneController();
stopStoneController();
stopZoneSkillController();
super.decayMe();
}

synchronized void decCountKnigth()
{ countKnigth --; }
synchronized void decCountKnigthThrone()
{ countKnigthThrone --; }
synchronized void decCountIceBreath()
{ countIceBreath --; }
synchronized void decCountIceStone()
{ countIceStone --; }
synchronized void incCountKnigth()
{ countKnigth ++; }
synchronized void incCountKnigthThrone()
{ countKnigthThrone ++; }
synchronized void incCountIceBreath()
{ countIceBreath ++; }
synchronized void incCountIceStone()
{ countIceStone ++; }

synchronized void startStoneController()
{
if (stoneController != null)
stoneController.cancel(false);

stoneController = ThreadPoolManager.scheduleGeneralAtFixedRate(new iceStoneController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopStoneController()
{
if (stoneController != null)
stoneController.cancel(false);
stoneController = null;
}
synchronized void startBreathController()
{
if (breathController != null)
breathController.cancel(false);

breathController = ThreadPoolManager.scheduleGeneralAtFixedRate(new breathController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopBreathController()
{
if (breathController != null)
breathController.cancel(false);
breathController = null;
}
synchronized void startZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);

zoneSkillController = ThreadPoolManager.scheduleGeneralAtFixedRate(new zoneSkillController(_quest, this), 1000L, 10000L);
}
synchronized void stopZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);
zoneSkillController = null;
for (L2PcInstance player : getPlayers())
{
L2Effect effects[] = player.getAllEffects();
for (int j = 0; j = 3)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(2104));
return false;
}

}
if (party.getCommandChannel().getMembers().size() PLAYERS_MAX)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(2764));
return false;
}
for (L2PcInstance plr : party.getCommandChannel().getMembers())
{
if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOT HER_INSTANCE_CANT_ENTER));
return false;
}
if (plr.getLevel() Calendar.WEDNESDAY)
result.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY) ;
else
{
if (result.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY)
{
if (result.get(Calendar.HOUR_OF_DAY) 0))
{
//_log.info("onEnterZone: "+ zone.getId() + " Zone Name: "+ zone.getName());
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(character.g etInstanceId());
//_log.info("freya2 onEnterZone tmpworld="+tmpworld.getClass().getCanonicalName());
if (tmpworld != null && tmpworld.templateId == INSTANCEID)
{
//_log.info("onEnterZone tmpworld.templateId="+tmpworld.templateId+" INSTANCEID="+INSTANCEID);
final FreyaWorld world = (FreyaWorld) tmpworld;
//_log.info("zone.getId(): " + zone.getId() + " world.status: " + world.status);
if (zone.getId() == _zoneScriptId && world.status 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (tmpworld instanceof FreyaWorld)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == FreyaOnThrone && world.status == 1)
{
endStage(world);
world.setStatus(2);
world.stage = 2;
startStage(world);
}
else if (npc.getNpcId() == ArcheryKnight)
{
if (npc.getTag() != null && (Integer)npc.getTag() == 1)
world.decCountKnigthThrone();
else
world.decCountKnigth();

if (world.status >= 2 && world.status = 12)
{
allowBossZone(world);
world.BossZone.broadcastMovie(23, world.instanceId);
stopAll(world);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.Npc_Glakias = IceQueenCastle2.spawn(Glakias, 114722, -114797, -11200, 16384, world);
startAll(world);
}
}, 7000L);
}
}
}
else if (npc.getNpcId() == ArchersBreath)
{
world.decCountIceBreath();
}
else if (npc.getNpcId() == Glakias && world.status == 12)
{
world.Npc_Glakias = null;
world.setStatus(world.status + 1);
endStage(world);
ThreadPoolManager.scheduleGeneral(new Timer(60, world), 100L);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.stage = 3;
IceQueenCastle2.startStage(world);
}
}, 60100L);
}
else if (npc.getNpcId() == Freya/* && world.status == 15*/)
{
world.setStatus(16/*world.status + 1*/);
endStage(world);
//complete quest 10286_ReunionWithSirra
for (L2PcInstance player1 : world.getPlayers())
{
if (player1 != null)
{
QuestState qs = player1.getQuestState(qnPrev);
if (qs != null && !qs.isCompleted() && qs.getInt("progress") == 2 && qs.getInt("cond") == 6)
{
qs.set("progress", "3");
qs.set("cond", "7");
qs.playSound("ItemSound.quest_middle");
}
}
}
allowBossZone(world);
world.BossZone.broadcastMovie(19, world.instanceId);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.setStatus(world.status + 1);
}
}, 16000L);
world.getSelfInstance().setDuration(5); //duration 5 min
}
else if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(3);
world.decCountIceStone();
addSpawn(ArchersBreath, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, 0, false, world.instanceId);
world.incCountIceBreath();
}
}
}
return null;
}

private static void setInstanceReenterTime(InstanceWorld world)
{
if (world != null)
{
try
{
long nextUpdate = generateUpdateTime();

// set instance reenter time for all allowed players
for (L2PcInstance player : world.getPlayers())
{
if (player != null)
InstanceManager.getInstance().setInstanceTime(play er.getObjectId(), INSTANCEID, nextUpdate);
}
}
catch (Exception e) {
// TODO: handle exception
}
}
}

@Override
public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isPet)
{
if (npc.getInstanceId() > 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (tmpworld instanceof FreyaWorld && tmpworld.templateId == INSTANCEID)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == Freya && npc.getCurrentHp() = _maxIceBreath) return;

int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];

_quest.addSpawn(ArchersBreath, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceBreath();
}
}
}
}

static class iceStoneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public iceStoneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countIceStone = _maxIceStone) return;

int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];

_quest.addSpawn(Glacier, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceStone();
}
count = 1;
}
}
}

static class zoneSkillController implements Runnable
{
//private L2AttackableAIScript _quest;
private FreyaWorld ww;
public zoneSkillController(L2AttackableAIScript quest, FreyaWorld world)
{
//_quest = quest;
ww = world;
}

@Override
public void run()
{
if (ww != null && ww.countIceStone > 0)
{
int skillLvl = Rnd.get(1, _zoneSkill[1]);
L2Skill skill = SkillTable.getInstance().getInfo(_zoneSkill[0], skillLvl);
for (L2PcInstance player : ww.getPlayers())
{
if (Formulas.calcSkillSuccess(player, player, skill, (byte)0, false, false, false))
skill.getEffects(player, player);
}
}

}
}

static class knigthController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countKnigth = _maxIceKnigth) return;

int[] loc = _iceKnightLoc[Rnd.get(0, _iceKnightLoc.length - 1)];

L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
ww.incCountKnigth();
knight.setIsImmobilized(true);
knight.setDisplayEffect(1);
_quest.startQuestTimer("startAggro", 20000L, knight, null);
}
}
}
}
}

static class knigthThroneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthThroneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countKnigthThrone = _maxIceKnigthThrone[ww.stage - 1]) return;

int[] loc = _iceKnightLocThrone[Rnd.get(0, _iceKnightLocThrone.length - 1)];

L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
knight.setTag((Integer)1);
ww.incCountKnigthThrone();
}
}
}
}
}

static class helpMoveController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
public helpMoveController(L2AttackableAIScript quest, FreyaWorld world)
{
_quest = quest;
ww = world;
}

@Override
public void run()
{
if (ww != null)
{
for (L2Npc npc : ww.getNpcs())
{
if (npc != null && npc != ww.Npc_Freya && npc != ww.Npc_Glakias && npc != ww.Npc_Jinia && npc != ww.Npc_Kegor && !npc.isImmobilized() && !npc.isInCombat())
_quest.startQuestTimer("moveTo", Rnd.get(200, 800), npc, null);
}
}
}
}

private static void moveTo(L2Npc npc, Location loc)
{
if (npc != null)
{
npc.setRunning();
npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_MOVE_TO, new Location(loc.getX(), loc.getY(), loc.getZ()), true);
if (npc.getSpawn() != null)
{
npc.getSpawn().setLocx(loc.getX());
npc.getSpawn().setLocy(loc.getY());
npc.getSpawn().setLocz(loc.getZ());
}
}
}

@Override
public final String onSpawn(L2Npc npc)
{
if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(1);
npc.setIsImmobilized(true);
startQuestTimer("changeEffect", 1900L, npc, null);
}
npc.setIsNoAnimation(true);
return null;
}

@Override
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (npc != null && npc.getInstanceId() > 0 && InstanceManager.getInstance().getWorld(npc.getInst anceId()) != null && InstanceManager.getInstance().getWorld(npc.getInst anceId()).templateId == INSTANCEID)
{
FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (event.equalsIgnoreCase("changeEffect"))
{
//npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("startAggro"))
{
npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("moveTo"))
{
if (!npc.isImmobilized() && !npc.isInCombat())
{
if (Rnd.chance100(50) && !world.getPlayers().isEmpty())
{
try
{
L2PcInstance target = world.getSelfInstance().getRandomPlayer();
if (target != null)
{
npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_ATTACK, target);
return null;
}

}
catch (Exception e) {
// TODO: handle exception
startQuestTimer("moveTo", 3000L, npc, null);
}
}
Location toLoc = _centerLoc;
if (world.Npc_Glakias != null)
toLoc = world.Npc_Glakias.getLocation();
else if (world.Npc_Freya != null && world.stage != 2)
toLoc = world.Npc_Freya.getLocation();
if (!npc.isInsideRadius(toLoc.getX(), toLoc.getY(), toLoc.getZ(), 500))
moveTo(npc, toLoc);
}
}
}
return null;
}

@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
int npcId = npc.getNpcId();
if (npcId == JINIA2)
{
enterInstance(npc, player);
}
return "";
}

public IceQueenCastle2(int id, String name, String descr)
{
super(id, name, descr);
addEnterZoneId(_zoneScriptId);
addStartNpc(JINIA2);
addTalkId(JINIA2);
addKillId(FreyaOnThrone);
addKillId(ArcheryKnight);
addSpawnId(ArcheryKnight);
addKillId(ArchersBreath);
addSpawnId(ArchersBreath);
addKillId(Glakias);
addKillId(Freya);
addKillId(Glacier);
addAttackId(Freya);
addAttackId(ArcheryKnight);
addSpawnId(Glacier);
registerSkillsForNpc(Freya, Freya_Skills);

_Zone = (L2BossZone)ZoneManager.getInstance().getZoneById( _zoneBossId);;
}

public static void main(String args[])
{
new IceQueenCastle2(-1, qn, "instances");
}
}


Нет, не говнокодер.



Вангую возможные ответы :


Этот код не Визора.

Этот код старый, и Визор уже не пишет такой код.

Синхронизация действительно нужна везде. Если ты не понимаешь зачем, то ты тролль и оскорблятор.

Опровергни тот факт, что тут не нужна синхронизация.

Ты - генкин жополиз.

Итерация в цикле будет не больше 1-2 раз.

Этот код не используется.

Этот код уже переписан.

Ты - второй аккаунт Генки.

Ты - повелся на манипуляции Генки, и тема вообще не о коде.

На ассемблере этот код работает быстрее.

Кто ты и чего хочешь.

Visor123
11.02.2016, 14:03
Код:



/*
* 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 .
*/
package instances.IceQueenCastle2;

import java.util.Calendar;
import java.util.concurrent.ScheduledFuture;

import ai.group_template.L2AttackableAIScript;

import net.l2emuproject.gameserver.ThreadPoolManager;
import net.l2emuproject.gameserver.ai.CtrlIntention;
import net.l2emuproject.gameserver.datatables.NpcTable;
import net.l2emuproject.gameserver.datatables.SkillTable;
import net.l2emuproject.gameserver.instancemanager.Instan ceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneMa nager;
import net.l2emuproject.gameserver.instancemanager.Instan ceManager.InstanceWorld;
import net.l2emuproject.gameserver.model.L2Effect;
import net.l2emuproject.gameserver.model.L2Party;
import net.l2emuproject.gameserver.model.L2Skill;
import net.l2emuproject.gameserver.model.L2Spawn;
import net.l2emuproject.gameserver.model.actor.L2Characte r;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L 2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L 2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L 2PcInstance;
import net.l2emuproject.gameserver.model.entity.Instance;
import net.l2emuproject.gameserver.model.quest.QuestState ;
import net.l2emuproject.gameserver.model.quest.State;
import net.l2emuproject.gameserver.model.zone.L2BossZone;
import net.l2emuproject.gameserver.model.zone.L2Zone;
import net.l2emuproject.gameserver.network.SystemMessageI d;
import net.l2emuproject.gameserver.network.serverpackets. ExShowScreenMessage;
import net.l2emuproject.gameserver.network.serverpackets. SystemMessage;
import net.l2emuproject.gameserver.skills.Formulas;
import net.l2emuproject.gameserver.templates.chars.L2NpcT emplate;
import net.l2emuproject.geoserver.model.Location;
import net.l2emuproject.tools.random.Rnd;

/**
*
* @author Visor123
* L2Emu Enterprise Server
*
*/

public class IceQueenCastle2 extends L2AttackableAIScript
{
private static final boolean debug = false;
private static final int INSTANCEID = 139;
private static final String qn = "IceQueenCastle2";
private static final String qnPrev = "10286_ReunionWithSirra";
private static final int PLAYERS_MIN = 10;
private static final int PLAYERS_MAX = 27;

private static int _zoneScriptId = 200010; //script zone for start
private static int _zoneBossId = 12015;
private static L2BossZone _Zone;
private static final Location _enterLoc = new Location(114025, -112300, -11200);
private static final Location _centerLoc = new Location(114722, -114797, -11200);

private static final int[][] _iceKnightLoc = {{113845,-116091,-11168,8264}
,{113381,-115622,-11168,8264}
,{113380,-113978,-11168,-8224}
,{113845,-113518,-11168,-8224}
,{115591,-113516,-11168,-24504}
,{116053,-113981,-11168,-24504}
,{116061,-115611,-11168,24804}
,{115597,-116080,-11168,24804}
,{112942,-115480,-10960,52}
,{112940,-115146,-10960,52}
,{112945,-114453,-10960,52}
,{112945,-114123,-10960,52}
,{116497,-114117,-10960,32724}
,{116499,-114454,-10960,32724}
,{116501,-115145,-10960,32724}
,{116502,-115473,-10960,32724}};
private static final int _maxIceKnigth = 20; //OFF 160
private static final int[][] _iceKnightLocThrone = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int[] _maxIceKnigthThrone = {12,12,30};//first, second, third
private static final int[][] _iceIceBreathLoc = {{114713,-115109,-11202,16456}
,{114008,-115080,-11202,3568}
,{114422,-115508,-11202,12400}
,{115023,-115508,-11202,20016}
,{115459,-115079,-11202,27936}};
private static final int _maxIceBreath = 10;
private static final int _maxIceStone = 6;

private static final int FreyaOnThrone = 29177;
private static final int Freya = 29179;
private static final int[][] Freya_Skills = {{6274,1},{6275,1},{6276,1},{6277,1},{6278,1},{627 9,1},{6280,1},{6282,1},{6283,1},{6284,1},{6285,1}} ;
private static final int Glacier = 18853;
private static final int Glakias = 25699;
private static final int ArcheryKnight = 18855;
private static final int ArchersBreath = 18854;
/*private static final int FreyaController = 18930;
private static final Location FreyaControllerLoc = new Location(114707,-114793,-11199,0);
private static final int IceElementalController = 18931;
private static final Location IceElementalControllerLoc = new Location(114707,-114795,-11199,0);
private static final int IceCastleController = 18932;
private static final Location IceCastleControllerLoc = new Location(114707,-114797,-11199,0);*/
private static final int[] _zoneSkill = {6437,7};

private static final int Kegor = 18851;
private static final int Jinia = 18850;
private static final int JINIA2 = 32781;

static class Timer implements Runnable
{
@Override
public void run()
{
if (time > 10)
{
world.BossZone.broadcastPacket(new ExShowScreenMessage("00 : "+time, 1500), world.instanceId); //need check
ThreadPoolManager.scheduleGeneral(new Timer(time - 1, world), 1000L);
}
}

private int time;
private FreyaWorld world;

public Timer(int _time, FreyaWorld _world)
{
time = _time;
world = _world;
}
}

private static class FreyaWorld extends InstanceWorld
{
L2AttackableAIScript _quest;
L2Npc Npc_Freya;
L2Npc Npc_Kegor;
L2Npc Npc_Jinia;
L2Npc Npc_Glakias;
L2BossZone BossZone;
int stage = 0;
ScheduledFuture knigthController = null;
int countKnigth = 0;
ScheduledFuture knigthThroneController = null;
int countKnigthThrone = 0;
ScheduledFuture breathController = null;
ScheduledFuture stoneController = null;
int countIceBreath = 0;
int countIceStone = 0;
ScheduledFuture zoneSkillController = null;
ScheduledFuture helpMoveController = null;

public FreyaWorld(Instance inst, L2AttackableAIScript quest)
{
super(inst);
_quest = quest;
}

@Override
public void decayMe()
{
stopHelpMoveController();
stopBreathController();
stopKnigthController();
stopKnigthThroneController();
stopStoneController();
stopZoneSkillController();
super.decayMe();
}

synchronized void decCountKnigth()
{ countKnigth --; }
synchronized void decCountKnigthThrone()
{ countKnigthThrone --; }
synchronized void decCountIceBreath()
{ countIceBreath --; }
synchronized void decCountIceStone()
{ countIceStone --; }
synchronized void incCountKnigth()
{ countKnigth ++; }
synchronized void incCountKnigthThrone()
{ countKnigthThrone ++; }
synchronized void incCountIceBreath()
{ countIceBreath ++; }
synchronized void incCountIceStone()
{ countIceStone ++; }

synchronized void startStoneController()
{
if (stoneController != null)
stoneController.cancel(false);

stoneController = ThreadPoolManager.scheduleGeneralAtFixedRate(new iceStoneController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopStoneController()
{
if (stoneController != null)
stoneController.cancel(false);
stoneController = null;
}
synchronized void startBreathController()
{
if (breathController != null)
breathController.cancel(false);

breathController = ThreadPoolManager.scheduleGeneralAtFixedRate(new breathController(_quest, this, 3), 1000L, 30000L);
}
synchronized void stopBreathController()
{
if (breathController != null)
breathController.cancel(false);
breathController = null;
}
synchronized void startZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);

zoneSkillController = ThreadPoolManager.scheduleGeneralAtFixedRate(new zoneSkillController(_quest, this), 1000L, 10000L);
}
synchronized void stopZoneSkillController()
{
if (zoneSkillController != null)
zoneSkillController.cancel(false);
zoneSkillController = null;
for (L2PcInstance player : getPlayers())
{
L2Effect effects[] = player.getAllEffects();
for (int j = 0; j = 3)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(2104));
return false;
}

}
if (party.getCommandChannel().getMembers().size() PLAYERS_MAX)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(2764));
return false;
}
for (L2PcInstance plr : party.getCommandChannel().getMembers())
{
if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
{
party.getCommandChannel().broadcastToChannelMember s(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOT HER_INSTANCE_CANT_ENTER));
return false;
}
if (plr.getLevel() Calendar.WEDNESDAY)
result.set(Calendar.DAY_OF_WEEK,Calendar.SATURDAY) ;
else
{
if (result.get(Calendar.DAY_OF_WEEK) == Calendar.WEDNESDAY)
{
if (result.get(Calendar.HOUR_OF_DAY) 0))
{
//_log.info("onEnterZone: "+ zone.getId() + " Zone Name: "+ zone.getName());
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(character.g etInstanceId());
//_log.info("freya2 onEnterZone tmpworld="+tmpworld.getClass().getCanonicalName());
if (tmpworld != null && tmpworld.templateId == INSTANCEID)
{
//_log.info("onEnterZone tmpworld.templateId="+tmpworld.templateId+" INSTANCEID="+INSTANCEID);
final FreyaWorld world = (FreyaWorld) tmpworld;
//_log.info("zone.getId(): " + zone.getId() + " world.status: " + world.status);
if (zone.getId() == _zoneScriptId && world.status 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (tmpworld instanceof FreyaWorld)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == FreyaOnThrone && world.status == 1)
{
endStage(world);
world.setStatus(2);
world.stage = 2;
startStage(world);
}
else if (npc.getNpcId() == ArcheryKnight)
{
if (npc.getTag() != null && (Integer)npc.getTag() == 1)
world.decCountKnigthThrone();
else
world.decCountKnigth();

if (world.status >= 2 && world.status = 12)
{
allowBossZone(world);
world.BossZone.broadcastMovie(23, world.instanceId);
stopAll(world);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.Npc_Glakias = IceQueenCastle2.spawn(Glakias, 114722, -114797, -11200, 16384, world);
startAll(world);
}
}, 7000L);
}
}
}
else if (npc.getNpcId() == ArchersBreath)
{
world.decCountIceBreath();
}
else if (npc.getNpcId() == Glakias && world.status == 12)
{
world.Npc_Glakias = null;
world.setStatus(world.status + 1);
endStage(world);
ThreadPoolManager.scheduleGeneral(new Timer(60, world), 100L);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.stage = 3;
IceQueenCastle2.startStage(world);
}
}, 60100L);
}
else if (npc.getNpcId() == Freya/* && world.status == 15*/)
{
world.setStatus(16/*world.status + 1*/);
endStage(world);
//complete quest 10286_ReunionWithSirra
for (L2PcInstance player1 : world.getPlayers())
{
if (player1 != null)
{
QuestState qs = player1.getQuestState(qnPrev);
if (qs != null && !qs.isCompleted() && qs.getInt("progress") == 2 && qs.getInt("cond") == 6)
{
qs.set("progress", "3");
qs.set("cond", "7");
qs.playSound("ItemSound.quest_middle");
}
}
}
allowBossZone(world);
world.BossZone.broadcastMovie(19, world.instanceId);
ThreadPoolManager.scheduleGeneral(new Runnable()
{
@Override
public void run()
{
world.setStatus(world.status + 1);
}
}, 16000L);
world.getSelfInstance().setDuration(5); //duration 5 min
}
else if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(3);
world.decCountIceStone();
addSpawn(ArchersBreath, npc.getX(), npc.getY(), npc.getZ(), npc.getHeading(), true, 0, false, world.instanceId);
world.incCountIceBreath();
}
}
}
return null;
}

private static void setInstanceReenterTime(InstanceWorld world)
{
if (world != null)
{
try
{
long nextUpdate = generateUpdateTime();

// set instance reenter time for all allowed players
for (L2PcInstance player : world.getPlayers())
{
if (player != null)
InstanceManager.getInstance().setInstanceTime(play er.getObjectId(), INSTANCEID, nextUpdate);
}
}
catch (Exception e) {
// TODO: handle exception
}
}
}

@Override
public String onAttack(L2Npc npc, L2PcInstance player, int damage, boolean isPet)
{
if (npc.getInstanceId() > 0)
{
InstanceWorld tmpworld = InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (tmpworld instanceof FreyaWorld && tmpworld.templateId == INSTANCEID)
{
final FreyaWorld world = (FreyaWorld) tmpworld;
if (npc.getNpcId() == Freya && npc.getCurrentHp() = _maxIceBreath) return;

int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];

_quest.addSpawn(ArchersBreath, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceBreath();
}
}
}
}

static class iceStoneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public iceStoneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countIceStone = _maxIceStone) return;

int[] loc = _iceIceBreathLoc[Rnd.get(0, _iceIceBreathLoc.length - 1)];

_quest.addSpawn(Glacier, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
ww.incCountIceStone();
}
count = 1;
}
}
}

static class zoneSkillController implements Runnable
{
//private L2AttackableAIScript _quest;
private FreyaWorld ww;
public zoneSkillController(L2AttackableAIScript quest, FreyaWorld world)
{
//_quest = quest;
ww = world;
}

@Override
public void run()
{
if (ww != null && ww.countIceStone > 0)
{
int skillLvl = Rnd.get(1, _zoneSkill[1]);
L2Skill skill = SkillTable.getInstance().getInfo(_zoneSkill[0], skillLvl);
for (L2PcInstance player : ww.getPlayers())
{
if (Formulas.calcSkillSuccess(player, player, skill, (byte)0, false, false, false))
skill.getEffects(player, player);
}
}

}
}

static class knigthController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countKnigth = _maxIceKnigth) return;

int[] loc = _iceKnightLoc[Rnd.get(0, _iceKnightLoc.length - 1)];

L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
ww.incCountKnigth();
knight.setIsImmobilized(true);
knight.setDisplayEffect(1);
_quest.startQuestTimer("startAggro", 20000L, knight, null);
}
}
}
}
}

static class knigthThroneController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
private int count;
public knigthThroneController(L2AttackableAIScript quest, FreyaWorld world, int startCount)
{
_quest = quest;
ww = world;
count = startCount;
}

@Override
public void run()
{
if (ww != null && ww.countKnigthThrone = _maxIceKnigthThrone[ww.stage - 1]) return;

int[] loc = _iceKnightLocThrone[Rnd.get(0, _iceKnightLocThrone.length - 1)];

L2Npc knight = _quest.addSpawn(ArcheryKnight, loc[0], loc[1], loc[2], loc[3], true, 0, false, ww.instanceId);
if (knight != null)
{
knight.setTag((Integer)1);
ww.incCountKnigthThrone();
}
}
}
}
}

static class helpMoveController implements Runnable
{
private L2AttackableAIScript _quest;
private FreyaWorld ww;
public helpMoveController(L2AttackableAIScript quest, FreyaWorld world)
{
_quest = quest;
ww = world;
}

@Override
public void run()
{
if (ww != null)
{
for (L2Npc npc : ww.getNpcs())
{
if (npc != null && npc != ww.Npc_Freya && npc != ww.Npc_Glakias && npc != ww.Npc_Jinia && npc != ww.Npc_Kegor && !npc.isImmobilized() && !npc.isInCombat())
_quest.startQuestTimer("moveTo", Rnd.get(200, 800), npc, null);
}
}
}
}

private static void moveTo(L2Npc npc, Location loc)
{
if (npc != null)
{
npc.setRunning();
npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_MOVE_TO, new Location(loc.getX(), loc.getY(), loc.getZ()), true);
if (npc.getSpawn() != null)
{
npc.getSpawn().setLocx(loc.getX());
npc.getSpawn().setLocy(loc.getY());
npc.getSpawn().setLocz(loc.getZ());
}
}
}

@Override
public final String onSpawn(L2Npc npc)
{
if (npc.getNpcId() == Glacier)
{
npc.setDisplayEffect(1);
npc.setIsImmobilized(true);
startQuestTimer("changeEffect", 1900L, npc, null);
}
npc.setIsNoAnimation(true);
return null;
}

@Override
public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
if (npc != null && npc.getInstanceId() > 0 && InstanceManager.getInstance().getWorld(npc.getInst anceId()) != null && InstanceManager.getInstance().getWorld(npc.getInst anceId()).templateId == INSTANCEID)
{
FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInst anceId());
if (event.equalsIgnoreCase("changeEffect"))
{
//npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("startAggro"))
{
npc.setIsImmobilized(false);
npc.setDisplayEffect(2);
npc.broadcastFullInfo();
}
else if (event.equalsIgnoreCase("moveTo"))
{
if (!npc.isImmobilized() && !npc.isInCombat())
{
if (Rnd.chance100(50) && !world.getPlayers().isEmpty())
{
try
{
L2PcInstance target = world.getSelfInstance().getRandomPlayer();
if (target != null)
{
npc.getAI().setIntention(CtrlIntention.AI_INTENTIO N_ATTACK, target);
return null;
}

}
catch (Exception e) {
// TODO: handle exception
startQuestTimer("moveTo", 3000L, npc, null);
}
}
Location toLoc = _centerLoc;
if (world.Npc_Glakias != null)
toLoc = world.Npc_Glakias.getLocation();
else if (world.Npc_Freya != null && world.stage != 2)
toLoc = world.Npc_Freya.getLocation();
if (!npc.isInsideRadius(toLoc.getX(), toLoc.getY(), toLoc.getZ(), 500))
moveTo(npc, toLoc);
}
}
}
return null;
}

@Override
public String onTalk(L2Npc npc, L2PcInstance player)
{
int npcId = npc.getNpcId();
if (npcId == JINIA2)
{
enterInstance(npc, player);
}
return "";
}

public IceQueenCastle2(int id, String name, String descr)
{
super(id, name, descr);
addEnterZoneId(_zoneScriptId);
addStartNpc(JINIA2);
addTalkId(JINIA2);
addKillId(FreyaOnThrone);
addKillId(ArcheryKnight);
addSpawnId(ArcheryKnight);
addKillId(ArchersBreath);
addSpawnId(ArchersBreath);
addKillId(Glakias);
addKillId(Freya);
addKillId(Glacier);
addAttackId(Freya);
addAttackId(ArcheryKnight);
addSpawnId(Glacier);
registerSkillsForNpc(Freya, Freya_Skills);

_Zone = (L2BossZone)ZoneManager.getInstance().getZoneById( _zoneBossId);;
}

public static void main(String args[])
{
new IceQueenCastle2(-1, qn, "instances");
}
}


Нет, не говнокодер.


Погоди - ты разве в овере написал что вистал говнокодер, или во всех сборках где в коде хоть что-то найдено не оптимальное? Почему ты не пошел и не оскорбил других людей? Нет - ты оскорбил меня.

То есть ты сейчас кинул какой-то код и оскорбил лично меня, ты же не написал, что вот тут не оптимально ява выполняет, или тут. Нет? Нет вот тебе факт оскорбления.

Открой раздел говнокода и оскорби там всех людей, которые писали тот код.



Вангую возможные ответы :



Этот код не Визора.

Этот код старый, и Визор уже не пишет такой код.

Синхронизация действительно нужна везде. Если ты не понимаешь зачем, то ты тролль и оскорблятор.

Опровергни тот факт, что тут не нужна синхронизация.

Ты - генкин жополиз.

Итерация в цикле будет не больше 1-2 раз.

Этот код не используется.

Этот код уже переписан.

Ты - второй аккаунт Генки.

Ты - повелся на манипуляции Генки, и тема вообще не о коде.

На ассемблере этот код работает быстрее.

Кто ты и чего хочешь.



Обычный тролизм, показываю для тех кто не в курсе как идет "завод" публики

velafrys
11.02.2016, 14:05
Погоди - ты разве в овере написал что вистал говнокодер, или во всех сборках где в коде хоть что-то найдено не оптимальное? Почему ты не пошел и не оскорбил других людей? Нет - ты оскорбил меня.

То есть ты сейчас кинул какой-то код и оскорбил лично меня, ты же не написал, что вот тут не оптимально ява выполняет, или тут. Нет? нет вот тебе факт


Как он тебя оскорбил? Ну как? Ты зачем авторство ставил? Чтобы гордиться своим творчеством, чтобы люди знали, чье это добро? Ну так сам себе яму вырыл.

Это как зарезать человека, оставить отпечатки на ноже, но бегать и кричать, мол, полиция коррумпирована, жополизы Генклаудовские!



Обычный тролизм, показываю для тех кто не в курсе как идет "завод" публики


В отличии от тебя, я не обращаюсь к публике в каждом, почти, посте.

Ну так пруфы оскорблений будут, говнокодер?

Visor123
11.02.2016, 14:07
В отличии от тебя, я не обращаюсь к публике в каждом, почти, посте.
Ну так пруфы оскорблений будут, говнокодер?


Оскорбление номер 2.

Говнокодер относится ко мне лично, и это оскорбление. Где же теперь правила?

velafrys
11.02.2016, 14:08
Оскорбление номер 2.
Говнокодер относится ко мне лично, и это оскорбление. Где же теперь правила?


Проблема в том, что ты лично можешь считать это оскорблением, а другие не считают, допускаешь такое?

Так пруфы где, пустослов?

Visor123
11.02.2016, 14:10
Проблема в том, что ты лично можешь считать это оскорблением, а другие не считают, допускаешь такое?

Так пруфы где, пустослов?


Что-то как-то ты слабо, очень слабо. Давай еще.

velafrys
11.02.2016, 14:12
Что-то как-то ты слабо, очень слабо. Давай еще.


Что именно слабо? Ты действительно считаешь себя НЕ говнокодером и НЕ пустословом?

Visor123
11.02.2016, 14:13
@Mangol (https://forum.antichat.xyz/members/890260/) - так где твои оскорбления всех разработчиков в теме говнокод, где есть их код? Или это оскорбление, или это не оскорбление. Ты как считаешь, что тут можно оскорблять, а там нельзя? Или код не так "пахнет" там?

mAnGoL
11.02.2016, 14:14
Погоди - ты разве в овере написал что вистал говнокодер, или во всех сборках где в коде хоть что-то найдено не оптимальное? Почему ты не пошел и не оскорбил других людей? Нет - ты оскорбил меня.

То есть ты сейчас кинул какой-то код и оскорбил лично меня, ты же не написал, что вот тут не оптимально ява выполняет, или тут. Нет? Нет вот тебе факт оскорбления.

Открой раздел говнокода и оскорби там всех людей, которые писали тот код.


Я написал что тут оптимальный код явы, я так кожу каждый раз.

velafrys
11.02.2016, 14:15
Mangol - так где твои оскорбления всех разработчиков в теме говнокод, где есть их код? Или это оскорбление, или это не оскорбление. Ты как считаешь, что тут можно оскорблять, а там нельзя? Или код не так "пахнет" там?


Все имеют свободу действия, хотят - отписываются в теме, и наоборот.

Visor123
11.02.2016, 14:15
Я написал что тут оптимальный код явы, я так кожу каждый раз.


Ты кинул какой-то класс и написал говнокодер, это оскорбление я так понимаю меня.

Не нравится класс - можешь поговорить про класс, но ты почему-то кидаешь класс и оскорбляешь меня.

Странное у тебя отношение, там плохой код, а тут плохой я. Ты уж определись, если для тебя плохой я то не нужно устраивать цирк про код - напиши, ты оскорбляешь людей - это плохо. Ты так написал? Нет - ты цирк про код делаешь и легализуешь оскорбления.

Enmity
11.02.2016, 14:16
Сам себя назову говнокодером, ибо мой код говно.

Визор, знаешь почему мне никто не говорит что мой код говно, а я говнокодер и мудак? Потому что я не выёбываюсь. Из-за этого мне не говорят что я мудак и не насажмвают на вертел перед всей аудиторией.

Мой код - говно. Я сам способен это признать.

Тебе скинули код с твоим авторством - ты не способен признать что в нём есть откровенные куски дерьма. Тупо не хочешь, ты правильнее всех, а мы не шарим в ассемблере. Зато петишки жмакаешь по твоим же словам когда в чём-то подобном твоему или моему коду топят (читай: в говне).

Был о тебе несколько более уважительного мнения, честно.

mAnGoL
11.02.2016, 14:16
Mangol - так где твои оскорбления всех разработчиков в теме говнокод, где есть их код? Или это оскорбление, или это не оскорбление. Ты как считаешь, что тут можно оскорблять, а там нельзя? Или код не так "пахнет" там?


Я про говнокод не написал, но ты сам сказал что там описан говнокод, кому верить ?

Visor123
11.02.2016, 14:27
Сам себя назову говнокодером, ибо мой код говно.

Визор, знаешь почему мне никто не говорит что мой код говно, а я говнокодер и мудак? Потому что я не выёбываюсь. Из-за этого мне не говорят что я мудак и не насажмвают на вертел перед всей аудиторией.

Мой код - говно. Я сам способен это признать.
Тебе скинули код с твоим авторством - ты не способен признать что в нём есть откровенные куски дерьма. Тупо не хочешь, ты правильнее всех, а мы не шарим в ассемблере. Зато петишки жмакаешь по твоим же словам когда в чём-то подобном твоему или моему коду топят (читай: в говне).

Был о тебе несколько более уважительного мнения, честно.


Когда сам себя называешь - то это твои проблемы насколько я понимаю. Но когда неизвестно кто тебя оскорбляет, то это уже подпадает под правила, где за оскорбления должны применяться наказания.

Я кстати нигде не писал что кто-то плохой, потому что у него плохой код.

Не нужно передергивать факты.

Вообще нет тем про код, где кидают код и пишут человек плохой и оскорбляют его всякими оскорбительными словами и наречиями. Почему? да потому что за это наказывают по правилам!

Я не собираюсь что-то признавать или не признавать в дерьмотеме цирковой, которая начинается с оскорбления меня лично. Что-то тут признавать - это автоматически легализовать все это дерьмо, которое и ты хочешь пропхнуть. Но оно не пропихивается. Оскорбление есть оскорбление, независимо от слов "почему". Мои оскорбления удалили? Удалили. Наказали? Наказали.

Но ты почему-то это пишешь мне, что я должен что-то признать? С какого перепуга я должен что-то признавать?

Я показал где оскорбления. Это тема-оскорбление, и что это дерьмотема - это факты какие есть, но легализовать это дерьмо я не буду.

Но где удаление оскорблений меня и наказание тех кто это сделал?

velafrys
11.02.2016, 14:29
Пишешь Визору про код, он не отвечает, т.к. тема про оскорбление бедного его величества.

Когда оскорбляешь Визора, он начинает рассказывать кулстори про ассемблер.

И пруфов на оскорбления не кидает.

Волшебник, что сказать!

Visor123
11.02.2016, 14:44
Вы же понимаете, что тема эта не про код, просто есть люди, которые сагрили часть людей на меня и получилась эта дерьмотема начинающаяся с оскорбления и вообще являющаяся оскорблением. В общем дерьмотема.

Но поскольку я ее не легализую и ее не удаляют - то просто идет дальнейшее прояснение ситуации, как так получилось что тут висит публичное оскорбление, но его никто "не заметил по правилам" .

Это не единичный случай - к сожалению иначе не вытянуть нехороших людей на свет, они ходят кривляются типа "боряццо за других людей" или еще за что-то "боряццо" - но на самом деле просто оскорбляют других.

Как видите даже Мангол - ничего не писал, но оказывается он меня чуть ли не ненавидел, а знаете почему? потому что я оскорбил людей. Мангол - я могу слегка съязвить, но людей я не оскорбляю без причины. Это очень глупо делать.

Но есть люди, которые оскорбляют не без причины, а делая это типа по другой причине. К примеру этот фокус - пишешь оскорбление в теме, тегах кидаешь код и агрить всех - пишите что это говнокодер. Хотя это уже оскорбление.

Я поэтому вам и показываю где грани оскорбления, а где нет. Где тролизм и цирк, а где пишут по-настоящему в теме. То есть это один из элементов обучения. Я же в каждом конкретном случае пишу вам факты либо правду - но это делает очень больно видимо.

На ЗГ почему-то так не делают же сейчас - это не потому что там нет людей, а потому что там удаляют оскорбления и наказывают нарушителей. Но раньше был бесконечный цирк, где были "плохие" и "хорошие".


Да никто из вас не может оценить хороший я или плохой, и тем более писать оскорбления на основе куска какого-то кода. Вы можете это спросить у любого юриста. К сожалению модераторы поддались игре в хорошего и плохого и забыли, что правила либо должны работать, либо не работать.

А то что народ подогревают еще и агрят на меня - то это толлинг называется. А потом получается что вместо того, чтобы удалить оскорбление насыпалась куча дерьма-оскорблений.

Enmity
11.02.2016, 14:44
Когда сам себя называешь - то это твои проблемы насколько я понимаю. Но когда неизвестно кто тебя оскорбляет, то это уже подпадает под правила, где за оскорбления должны применяться наказания.

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

Я не собираюсь что-то признавать или не признавать в дерьмотеме цирковой, которая начинается с оскорбления меня лично. Что-то тут признавать - это автоматически легализовать все это дерьмо, которое и ты хочешь пропхнуть. Но оно не пропихивается. Оскорбление есть оскорбление, независимо от слов "почему". Мои оскорбления удалили? Удалили. Наказали? Наказали.
Но ты почему-то это пишешь мне, что я должен что-то признать? С какого перепуга я должен что-то признавать?
Я показал где оскорбления. Это тема-оскорбление, и что это дерьмотема - это факты какие есть, но легализовать это дерьмо я не буду.

Но где удаление оскорблений меня и наказание тех кто это сделал?



Я ничего не пропихиваю, мне это не нужно. Я тебе давным давно говорил - будь проще и никто не будет тебя оскорблять. Но как-то видимо это был не ассемблер.

velafrys
11.02.2016, 14:49
Вы же понимаете, что тема эта не про код, просто есть люди, которые сагрили часть людей на меня и получилась эта дерьмотема начинающаяся с оскорбления и вообще являющаяся оскорблением. В общем дерьмотема.
Но поскольку я ее не легализую и ее не удаляют - то просто идет дальнейшее прояснение ситуации, как так получилось что тут висит публичное оскорбление, но его никто "не заметил по правилам" .
Это не единичный случай - к сожалению иначе не вытянуть нехороших людей на свет, они ходят кривляются типа "боряццо за других людей" или еще за что-то "боряццо" - но на самом деле просто оскорбляют других.

Как видите даже Мангол - ничего не писал, но оказывается он меня чуть ли не ненавидел, а знаете почему? потому что я оскорбил людей. Мангол - я могу слегка съязвить, но людей я не оскорбляю без причины. Это очень глупо делать.

Но есть люди, которые оскорбляют не без причины, а делая это типа по другой причине. К примеру этот фокус - пишешь оскорбление в теме, тегах кидаешь код и агрить всех - пишите что это говнокодер. Хотя это уже оскорбление.

Я поэтому вам и показываю где грани оскорбления, а где нет. Где тролизм и цирк, а где пишут по-настоящему в теме. То есть это один из элементов обучения. Я же в каждом конкретном случае пишу вам факты либо правду - но это делает очень больно видимо.

На ЗГ почему-то так не делают же сейчас - это не потому что там нет людей, а потому что там удаляют оскорбления и наказывают нарушителей. Но раньше был бесконечный цирк, где были "плохие" и "хорошие".

Да никто из вас не может оценить хороший я или плохой, и тем более писать оскорбления на основе куска какого-то кода. Вы можете это спросить у любого юриста. К сожалению модераторы поддались игре в хорошего и плохого и забыли, что правила либо должны работать, либо не работать.

А то что народ подогревают еще и агрят на меня - то это толлинг называется. А потом получается что вместо того, чтобы удалить оскорбление насыпалась куча дерьма-оскорблений.





Да никто из вас не может оценить хороший я или плохой, и тем более писать оскорбления на основе куска какого-то кода. Вы можете это спросить у любого юриста.



Я вижу ты там уже не в себе. Юриста? Серьезно?

Юрист решает, как мне оценить профессиональный уровень человека по их труду, который является непосредственным показателем этого самого профессионального уровня?

Ты написал плохой код? Ещё и авторство оставил? Получил вердикт. И не от меня одного.

В этой теме нет людей, которые бы вступились за тебя или твой код, как ты думаешь, к чему это?

И да, пруфы будут оскорблений из чатика? Ты если даешь слово, то держи его, иначе ты пустослов.

И ты сам себя агришь. Мы не ведомые овцы, а если и "ведемся"/"агримся", так это на твое поведение. Поведение великовозрастного программиста говнокодера.

Enmity
11.02.2016, 14:50
В общем - хватит сраться.

Смысла в этом нет.

Визор, выёбывайся меньше, не будут подъёбывать.

Ген, подъёбывай эквивалентно выебонам.

Мир, дружба, ассемблер, гайз. А я пошёл спать.

Visor123
11.02.2016, 14:54
Я ничего не пропихиваю, мне это не нужно. Я тебе давным давно говорил - будь проще и никто не будет тебя оскорблять. Но как-то видимо это был не ассемблер.


И я о том же хотел тебе сказать - будь проще, тогда все будет понятнее - и не втягивайся в такое цирковое дерьмо на пустом месте.

У меня как видишь всегда все просто, у меня нет такого, что здесь при одних и тех же условиях хорошо, а потом плохо и наоборот. Если какой-то цирковой сует "дичь" - я говорю "это дичь"

Просто цирковым это не нравится, и ситуация постепенно подогревается - эта тема квинтессенция дерьма, которое тут бурлило и таким образом прорвало через кучу вранья и оскорблений "по правилам". Я так понимаю, что обычно виноват тот кто показал на кучу дерьма - к сожалению это так.

Потом уже выискивается почему я "плохой", подтасовываются факты, типа сначала была ссылка на тему, а потом тема или оскорбления в теме были раньше темы и потом выясняется что Мангол сидел и считал что я плохой и поэтому меня еще и забанил по правилам - да по правилам - но получилось что по правилам было только то.

Вы должны понимать простые вещи - что вас может "по правилам" загонять в жизни не тот, кто умнее вас, и не тот кто вас профессиональнее - а тот кто понимает правила и как их обходить. Проще говоря качество вашего кода никак не поможет вам избежать такого цирка на этом форуме, если троли заходят вас оскорбить и забанить. И это именно на этом форуме, на ЗГ после смены состава это невозможно сделать. Ни наагрить толпу на человека, ни оскорблять его публично по течении полугода.

velafrys
11.02.2016, 15:00
И я о том же хотел тебе сказать - будь проще, тогда все будет понятнее - и не втягивайся в такое цирковое дерьмо на пустом месте.
У меня как видишь всегда все просто, у меня нет такого, что здесь при одних и тех же условиях хорошо, а потом плохо и наоборот. Если какой-то цирковой сует "дичь" - я говорю "это дичь"

Просто цирковым это не нравится, и ситуация постепенно подогревается - эта тема квинтессенция дерьма, которое тут бурлило и таким образом прорвало через кучу вранья и оскорблений "по правилам". Я так понимаю, что обычно виноват тот кто показал на кучу дерьма - к сожалению это так.
Потом уже выискивается почему я "плохой", подтасовываются факты, типа сначала была ссылка на тему, а потом тема или оскорбления в теме были раньше темы и потом выясняется что Мангол сидел и считал что я плохой и поэтому меня еще и забанил по правилам - да по правилам - но получилось что по правилам было только то.

Вы должны понимать простые вещи - что вас может "по правилам" загонять в жизни не тот, кто умнее вас, и не тот кто вас профессиональнее - а тот кто понимает правила и как их обходить. Проще говоря качество вашего кода никак не поможет вам избежать такого цирка на этом форуме, если троли заходят вас оскорбить и забанить. И это именно на этом форуме, на ЗГ после смены состава это невозможно сделать. Ни наагрить толпу на человека, ни оскорблять его публично по течении полугода.


Ты должен понимать простые вещи, что твоя правда - она только для тебя "правда". С твоим мнением никто не считается и никто его не уважает здесь. Ты сам все сделал, сам, понимаешь?

Ты твердишь о фактах, о каких-то оскорблениях, да вот только пруфов нет. И ты не пустослов?

Visor123
11.02.2016, 15:01
Выводы для администрации:

Скорее всего на форуме и дальше будет падать онлайн, останутся те, "кого не трогают" или те "кто не трогает".

Вы можете это изменить, а может не менять. К сожалению я не имею столько времени постоянно показывать, где кто и как врет или пытается показать желаемое за действительное, перекручивает факты и прочее. Обычно цели этого очень мелкие.

Да именно, в этой цирковой теме тоже есть цель, но убрать меня не потому что я "плохой", "плохим" меня пытаются "нарисовать", а потому что как только создается ресурс - все хотят лычки - но лички не номинальные - как на ЗГ, а с более серьезными правами.

Да, результат вы можете видеть, сравнивая как получается на ЗГ и ТУТ - люди одни и те же, правила есть - а результат разный.

gattsu
11.02.2016, 15:02
Когда правда, стала оскорблением? Если человек безногий и ты ему скажешь "ей чувак у тебя ног нету". Вам уже сказали, что код у Вас плохой, что у Вас плохо с программирование. Указали фактурой. Возьмите почитайте книги.

Я лично писал за ваш код, мне в барабан на автора темы.

Вы строите теорию пятой колоны. Все сговорились против Вас.

velafrys
11.02.2016, 15:03
Перед союзами "а" и "но" никогда не ставится тире(черточка) или что-то там ещё, а всегда ставится запятая. За исключением случая начала предложения с этих союзов.



Когда правда, стала оскорблением? Если человек безногий и ты ему скажешь "ей чувак у тебя ног нету". Вам уже сказали, что код у Вас плохой, что у Вас плохо с программирование. Указали фактурой. Возьмите почитайте книги.
Я лично писал за ваш код, мне в барабан на автора темы.
Вы строите теорию пятой колоны. Все сговорились против Вас.


В общем, на самом деле ты - ведомая овца. Ты просто пришел оскорблять Визора, возможно ты даже жополиз Генклауда. Ведь качество кода не характеризует его автора. Вот только непонятно что характеризует программиста как программиста, если думать как Визор.

В 42 года поймешь, что нужны не книжки совсем.

Visor123
11.02.2016, 15:33
Как видите дальше пошел уже обычный троллинг. Да и ТС уже боится оскорблять - значить результат то есть.

Так что не верьте на слово, требуйте предоставлять пруфы. На этом форуме мне достаточно будет обучить, какие ужимки-приемы могут применяться для обхода правил и формирования цирка с "плохим" и "хорошим", когда факты подменяются словами.

Пример L2CCCP писал вам примеры кода, я же вам даю примеры, как выстраивается троллинг, оскорбления, как втягиваются люди в цирковое дерьмо и это легализуется.

К сожалению мои уроки несколько болезненные, поэтому никто мне плюсиков не накидал в карму. Хотя я сделаю весьма непростое и опасное дело - потому что вытягивать на счет гнилых людей чревато тем, что дерьмом забрызгает всех ....

Для форума и администрации это просто стресс-тест, как работают правила, где и как их можно обойти.

Для людей - вы можете кроме приемов видеть свое отношение к ситуации, к примеру Мангол - он же прямо с ненавистью пишет, хотя я никак не оскорблял его или народ, а только вытягивал отдельных личностей.

gattsu
11.02.2016, 15:38
Уловить мысль в ваших сообщениях не возможно.

velafrys
11.02.2016, 15:39
Как видите дальше пошел уже обычный троллинг. Да и ТС уже боится оскорблять - значить результат то есть.

Так что не верьте на слово, требуйте предоставлять пруфы.


Какой троллинг? Ты бросаешься словами, а отвечать за них не хочешь.

Visor123
11.02.2016, 15:41
Как видите дальше пошел уже обычный троллинг. Да и ТС уже боится оскорблять - значить результат то есть.

Так что не верьте на слово, требуйте предоставлять пруфы. На этом форуме мне достаточно будет обучить, какие ужимки-приемы могут применяться для обхода правил и формирования цирка с "плохим" и "хорошим", когда факты подменяются словами.

Пример L2CCCP писал вам примеры кода, я же вам даю примеры, как выстраивается троллинг, оскорбления, как втягиваются люди в цирковое дерьмо и это легализуется.

К сожалению мои уроки несколько болезненные, поэтому никто мне плюсиков не накидал в карму. Хотя я делаю весьма непростое и опасное дело - потому что вытягивать на счет гнилых людей чревато тем, что дерьмом забрызгает всех ....

Для форума и администрации это просто стресс-тест, как работают правила, где и как их можно обойти.

Для людей - вы можете кроме приемов видеть свое отношение к ситуации, к примеру Мангол - он же прямо с ненавистью пишет, хотя я никак не оскорблял его или народ, а только вытягивал отдельных личностей.