| 
		
	
	
	
		
	Сообщений: 4,393 
	Тем: 77 
	Зарегистрирован: Jul 2009
	
 Репутация: 
69,266 
	
	
	
		
	Сообщений: 456 
	Тем: 14 
	Зарегистрирован: Jan 2010
	
 Репутация: 
410 
	
	
		Ozzy Написал:![[Изображение: 74010_inogda.jpg]](http://forum.kbrnet.ru/gallery/files/2/7/3/6/74010_inogda.jpg) А интересно цены так же будут расти, как размеры ?)))
	 
	
	
	
		
	Сообщений: 4,393 
	Тем: 77 
	Зарегистрирован: Jul 2009
	
 Репутация: 
69,266 
	
	
		xamelion Написал:А интересно цены так же будут расти, как размеры ?))) 
Не только цены, но и бесполезность устройства   
	
	
	
		
	Сообщений: 4,393 
	Тем: 77 
	Зарегистрирован: Jul 2009
	
 Репутация: 
69,266 
	
	
		А это вот для тех, кто свято верит что Sun-Dev труЪ команда и вообще ничего ни у кого не копируют: Код: package ai;
 import l2p.gameserver.ai.CtrlEvent;
 import l2p.gameserver.ai.Fighter;
 import l2p.gameserver.model.L2Character;
 import l2p.gameserver.model.L2Spawn;
 import l2p.gameserver.model.instances.L2NpcInstance;
 import l2p.gameserver.tables.NpcTable;
 import l2p.util.Rnd;
 
 /**
 *
 * @author Ozzy
 *
 */
 public class ForgeOfGods extends Fighter
 {
 private static final int MOBS[] = {18799, 18800, 18801, 18802, 18803};
 
 public ForgeOfGods(L2Character actor)
 {
 super(actor);
 }
 
 @Override
 protected void onEvtDead(L2Character killer)
 {
 L2NpcInstance actor = getActor();
 if(actor == null)
 return;
 
 if(actor.isDead())
 {
 if(Rnd.chance(40))//Шанс стоит от балды, так как точной инфы нет.
 for(int i = 0; i < 1; i++)
 try
 {
 L2Spawn spawn = new L2Spawn(NpcTable.getTemplate(MOBS[Rnd.get(MOBS.length)]));
 spawn.setLoc(actor.getLoc());
 L2NpcInstance npc = spawn.doSpawn(true);
 npc.getAI().notifyEvent(CtrlEvent.EVT_AGGRESSION, killer, Rnd.get(1, 100));
 }
 catch(Exception e)
 {
 e.printStackTrace();
 }
 }
 super.onEvtDead(killer);
 }
 }
Код: package ai;
 import l2p.commons.random.Rnd;
 import l2p.gameserver.ai.CtrlEvent;
 import l2p.gameserver.ai.Fighter;
 import l2p.gameserver.model.L2Character;
 import l2p.gameserver.model.L2Spawn;
 import l2p.gameserver.model.instances.L2NpcInstance;
 import l2p.gameserver.tables.NpcTable;
 
 /**
 * @author ManageR
 */
 public class ForgeOfGods extends Fighter
 {
 private static final int MOBS[] = {18799, 18800, 18801, 18802, 18803};
 
 public ForgeOfGods(L2Character actor)
 {
 super(actor);
 }
 
 @Override
 protected void onEvtDead(L2Character killer)
 {
 L2NpcInstance actor = getActor();
 if(actor == null)
 return;
 
 if(actor.isDead())
 {
 if(Rnd.chance(40)) //TODO: Уточнить шанс
 for(int i = 0; i < 1; i++)
 try
 {
 L2Spawn spawn = new L2Spawn(NpcTable.getTemplate(MOBS[Rnd.get(MOBS.length)]));
 spawn.setLoc(actor.getLoc());
 L2NpcInstance npc = spawn.doSpawn(true);
 npc.getAI().notifyEvent(CtrlEvent.EVT_AGGRESSION, killer, Rnd.get(1, 100));
 }
 catch(Exception e)
 {
 e.printStackTrace();
 }
 }
 super.onEvtDead(killer);
 }
 }
Код: package ai;
 import l2p.gameserver.ai.DefaultAI;
 import l2p.gameserver.model.L2Player;
 import l2p.gameserver.model.L2Effect;
 import l2p.gameserver.model.L2Skill;
 import l2p.gameserver.model.L2World;
 import l2p.gameserver.model.instances.L2NpcInstance;
 import l2p.gameserver.serverpackets.MagicSkillUse;
 import l2p.gameserver.tables.SkillTable;
 import l2p.util.GArray;
 import l2p.util.Rnd;
 
 /**
 *
 * @author Ozzy
 *
 */
 public class TarBeetle extends DefaultAI
 {
 private long _spawnTime = 0;
 private boolean _spawned = false;
 private static final int DESPAWN_TIME = 300000;
 
 public TarBeetle(L2NpcInstance actor)
 {
 super(actor);
 AI_TASK_DELAY = 1000;
 AI_TASK_ACTIVE_DELAY = 1000;
 }
 
 @Override
 protected boolean thinkActive()
 {
 L2NpcInstance actor = getActor();
 if(actor == null)
 return true;
 
 for(L2Player player : L2World.getAroundPlayers(actor, 300, 200))
 {
 if(Rnd.chance(5))
 addEffect(actor, player);
 }
 
 if(_def_think)
 {
 doTask();
 _spawned = false;
 return true;
 }
 
 if(!_spawned)
 {
 _spawned = true;
 _spawnTime = System.currentTimeMillis() + DESPAWN_TIME;
 }
 
 if(_spawnTime != 0 && _spawned && _spawnTime < System.currentTimeMillis())
 {
 actor.onDecay();
 return true;
 }
 return true;
 }
 private void addEffect(L2NpcInstance actor, L2Player player)
 {
 GArray<L2Effect> effect = player.getEffectList().getEffectsBySkillId(6142);
 if(effect != null)
 {
 int level = effect.get(0).getSkill().getLevel();
 if(level < 3)
 {
 effect.get(0).exit();
 L2Skill skill = SkillTable.getInstance().getInfo(6142, level + 1);
 skill.getEffects(actor, player, false, false);
 actor.broadcastPacket(new MagicSkillUse(actor, player, skill.getId(), level, skill.getHitTime(), 0));
 }
 }
 else
 {
 L2Skill skill = SkillTable.getInstance().getInfo(6142, 1);
 if(skill != null)
 {
 skill.getEffects(actor, player, false, false);
 actor.broadcastPacket(new MagicSkillUse(actor, player, skill.getId(), 1, skill.getHitTime(), 0));
 }
 }
 }
 
 protected boolean randomWalk()
 {
 return false;
 }
 }
Код: package ai;
 import l2p.commons.collections.GArray;
 import l2p.commons.random.Rnd;
 import l2p.gameserver.ai.DefaultAI;
 import l2p.gameserver.model.L2Effect;
 import l2p.gameserver.model.L2Player;
 import l2p.gameserver.model.L2Skill;
 import l2p.gameserver.model.L2World;
 import l2p.gameserver.model.instances.L2NpcInstance;
 import l2p.gameserver.serverpackets.MagicSkillUse;
 import l2p.gameserver.tables.SkillTable;
 
 /**
 * @author ManageR
 */
 public class TarBeetle extends DefaultAI
 {
 private long _spawnTime = 0;
 private boolean _spawned = false;
 private static final int DESPAWN_TIME = 300000;
 
 public TarBeetle(L2NpcInstance actor)
 {
 super(actor);
 AI_TASK_DELAY = 1000;
 AI_TASK_ACTIVE_DELAY = 1000;
 }
 
 @Override
 protected boolean thinkActive()
 {
 L2NpcInstance actor = getActor();
 if(actor == null)
 return true;
 
 for(L2Player player : L2World.getAroundPlayers(actor, 300, 200))
 {
 if(Rnd.chance(5))
 addEffect(actor, player);
 }
 
 if(_def_think)
 {
 doTask();
 _spawned = false;
 return true;
 }
 
 if(!_spawned)
 {
 _spawned = true;
 _spawnTime = System.currentTimeMillis() + DESPAWN_TIME;
 }
 
 if(_spawnTime != 0 && _spawned && _spawnTime < System.currentTimeMillis())
 {
 actor.onDecay();
 return true;
 }
 return true;
 }
 private void addEffect(L2NpcInstance actor, L2Player player)
 {
 GArray<L2Effect> effect = player.getEffectList().getEffectsBySkillId(6142);
 if(effect != null)
 {
 int level = effect.get(0).getSkill().getLevel();
 if(level < 3)
 {
 effect.get(0).exit();
 L2Skill skill = SkillTable.getInstance().getInfo(6142, level + 1);
 skill.getEffects(actor, player, false, false);
 actor.broadcastPacket(new MagicSkillUse(actor, player, skill.getId(), level, skill.getHitTime(), 0));
 }
 }
 else
 {
 L2Skill skill = SkillTable.getInstance().getInfo(6142, 1);
 if(skill != null)
 {
 skill.getEffects(actor, player, false, false);
 actor.broadcastPacket(new MagicSkillUse(actor, player, skill.getId(), 1, skill.getHitTime(), 0));
 }
 }
 }
 
 @Override
 protected boolean randomWalk()
 {
 return false;
 }
 }
Найдите 10 отличий, помимо смены копирайтов. Так же глянув таймлайн команды заметил еще не один и не два и даже не десять коммитов со стертыми моими копирайтами:
 Код: package quests._119_LastImperialPrince;
 import l2p.extensions.scripts.ScriptFile;
 import l2p.gameserver.model.instances.L2NpcInstance;
 import l2p.gameserver.model.quest.Quest;
 import l2p.gameserver.model.quest.QuestState;
 
 /**
 * Квест 119 (Last Imperial Prince (Последний Принц Империи))
 *
 * @author Ozzy
 */
 public class _119_LastImperialPrince extends Quest implements ScriptFile
 {
 //NPC's
 private static final int SPIRIT = 31453;
 private static final int DEVORIN = 32009;
 
 //Items
 private static final int BROOCH = 7262;
 
 public CheckStatus LAST_CHECK_STATUS = CheckStatus.GRACIA_EPILOGUE;
 
 public void onLoad()
 {}
 
 public void onReload()
 {}
 
 public void onShutdown()
 {}
 
 public _119_LastImperialPrince()
 {
 super(false);
 addStartNpc(SPIRIT);
 addTalkId(DEVORIN);
 }
 
 @Override
 public String onEvent(String event, QuestState st, L2NpcInstance npc)
 {
 String htmltext = event;
 if(event.equalsIgnoreCase("31453-06.htm"))
 {
 st.set("cond", "1");
 st.setState(STARTED);
 st.playSound(SOUND_ACCEPT);
 }
 else if(event.equalsIgnoreCase("32009-02.htm"))
 {
 if(st.getQuestItemsCount(BROOCH) < 1)
 {
 htmltext = "32009-02a.htm";
 st.exitCurrentQuest(true);
 }
 }
 else if(event.equalsIgnoreCase("32009-03.htm"))
 {
 st.set("cond", "2");
 st.playSound(SOUND_MIDDLE);
 }
 else if(event.equalsIgnoreCase("31453-10.htm"))
 {
 st.giveItems(ADENA_ID, 150292, true);
 st.addExpAndSp(902439, 90067);
 st.playSound(SOUND_FINISH);
 st.setState(COMPLETED);
 st.exitCurrentQuest(false);
 }
 return htmltext;
 }
 
 @Override
 public String onTalk(L2NpcInstance npc, QuestState st)
 {
 String htmltext = "noquest";
 int npcId = npc.getNpcId();
 int cond = st.getInt("cond");
 
 if(npcId == SPIRIT)
 {
 if(st.getState() == CREATED)
 {
 if(st.getPlayer().getLevel() >= 74 && st.getQuestItemsCount(BROOCH) >= 1)
 htmltext = "31453-01.htm";
 else
 {
 htmltext = "31453-02.htm";
 st.exitCurrentQuest(true);
 }
 }
 else if(cond == 1)
 {
 if(st.getQuestItemsCount(BROOCH) >= 1)
 htmltext = "31453-07.htm";
 else
 {
 htmltext = "31453-07a.htm";
 st.exitCurrentQuest(true);
 }
 }
 else if(cond == 2)
 htmltext = "31453-08.htm";
 /*else if(st.getState() == COMPLETED)
 htmltext = "31453-03.htm"; //TODO: Придумать что-то с выводом HTML при стейте COMPLETED. Сейчас стоит вывод сообщения по умолчанию. */
 }
 else if(npcId == DEVORIN)
 {
 if(cond == 1)
 htmltext = "32009-01.htm";
 else if (cond == 2)
 htmltext = "32009-04.htm";
 }
 return htmltext;
 }
 }
Код: package quests._119_LastImperialPrince;
 import l2p.extensions.scripts.ScriptFile;
 import l2p.gameserver.model.instances.L2NpcInstance;
 import l2p.gameserver.model.quest.Quest;
 import l2p.gameserver.model.quest.QuestState;
 
 /**
 * @author ManageR
 */
 public class _119_LastImperialPrince extends Quest implements ScriptFile
 {
 //NPC's
 private static final int SPIRIT = 31453;
 private static final int DEVORIN = 32009;
 
 //Items
 private static final int BROOCH = 7262;
 
 public CheckStatus LAST_CHECK_STATUS = CheckStatus.GRACIA_EPILOGUE;
 
 @Override
 public void onLoad()
 {}
 
 @Override
 public void onReload()
 {}
 
 @Override
 public void onShutdown()
 {}
 
 public _119_LastImperialPrince()
 {
 super(false);
 addStartNpc(SPIRIT);
 addTalkId(DEVORIN);
 }
 
 @Override
 public String onEvent(String event, QuestState st, L2NpcInstance npc)
 {
 String htmltext = event;
 if(event.equalsIgnoreCase("31453-06.htm"))
 {
 st.set("cond", "1");
 st.setState(STARTED);
 st.playSound(SOUND_ACCEPT);
 }
 else if(event.equalsIgnoreCase("32009-02.htm"))
 {
 if(st.getQuestItemsCount(BROOCH) < 1)
 {
 htmltext = "32009-02a.htm";
 st.exitCurrentQuest(true);
 }
 }
 else if(event.equalsIgnoreCase("32009-03.htm"))
 {
 st.set("cond", "2");
 st.playSound(SOUND_MIDDLE);
 }
 else if(event.equalsIgnoreCase("31453-10.htm"))
 {
 st.giveItems(ADENA_ID, 150292, REWARD);
 st.addExpAndSp(902439, 90067);
 st.playSound(SOUND_FINISH);
 st.setState(COMPLETED);
 st.exitCurrentQuest(false);
 }
 return htmltext;
 }
 
 @Override
 public String onTalk(L2NpcInstance npc, QuestState st)
 {
 String htmltext = "noquest";
 int npcId = npc.getNpcId();
 int cond = st.getCond();
 
 if(npcId == SPIRIT)
 {
 if(st.getState() == CREATED)
 {
 if(st.getPlayer().getLevel() >= 74 && st.getQuestItemsCount(BROOCH) >= 1)
 htmltext = "31453-01.htm";
 else
 {
 htmltext = "31453-02.htm";
 st.exitCurrentQuest(true);
 }
 }
 else if(cond == 1)
 {
 if(st.getQuestItemsCount(BROOCH) >= 1)
 htmltext = "31453-07.htm";
 else
 {
 htmltext = "31453-07a.htm";
 st.exitCurrentQuest(true);
 }
 }
 else if(cond == 2)
 htmltext = "31453-08.htm";
 /*else if(st.getState() == COMPLETED)
 htmltext = "31453-03.htm"; //TODO: Придумать что-то с выводом HTML при стейте COMPLETED. Сейчас стоит вывод сообщения по умолчанию. */
 }
 else if(npcId == DEVORIN)
 {
 if(cond == 1)
 htmltext = "32009-01.htm";
 else if (cond == 2)
 htmltext = "32009-04.htm";
 }
 return htmltext;
 }
 }
Так же повеселили коммиты и не только по квестам/аи, которые магическим образом перекочевали с моей сборки в Sun-Dev, при этом таким же магическим образом мои копирайты сменились копирайтами Sun-Dev. Кстати, еще хотелось бы обратиться к одному человеку (а может и не одному, но один из них точно связан с той же конторкой Sun-Dev), который очень классно поливал меня дерьмом, только видимо у него не хватило смелости сказать мне это в лицо, мне, человеку, которого он закидывал какашками, зная обо мне чуть меньше чем ничего, и заявлял о моей продажности. Оказывается я не могу продавать свою работу, которую я выполнял для кого-то (только из-за сложной обстановки в семье), а затем только заливал к себе на SVN. Бог вам судья.
	 
	
	
	
		
	Сообщений: 3,491 
	Тем: 52 
	Зарегистрирован: Jun 2010
	
 Репутация: 
12,167 
	
	
		Посмотрев на их СВН ..... Могу сказать одно , данная команда копипастеры - более менее что то пытался делать Javamen.Ни какой оптимизации ядра я вообще не видел и не потому что я слепой , а потому что кору никто не оптимизил  Все 600 комитов OPS OPS , фиксы батников и sh ников   
В сборке поправлено только next target (через жопу), Сои (хз как я даже не смотрел), гео разрезана по плоскостям, чуток петов помуслолили. 
Все остальное тупое месилово откатов скилов , батников ,sh ников и копипасты.
bloodshed  я говорил что оценочная цифра оптимизации вашей сборки 4% и ты со мной спорил - да я согласен , я был не прав - она ровна НУЛЮ круглому и дырявому как бублик ! :_smile_:
	 
	
	
	
		
	Сообщений: 4,393 
	Тем: 77 
	Зарегистрирован: Jul 2009
	
 Репутация: 
69,266 
	
	
		Deazer Написал:Посмотрев на их СВН ..... Могу сказать одно , данная команда копипастеры - более менее что то пытался делать Javamen.Ни какой оптимизации ядра я вообще не видел и не потому что я слепой , а потому что кору никто не потимизил Все 600 комитов OPS OPS , фиксы батников и sh ников .
 В сборке поправлено только next target (через жопу), Сои (хз как я даже не смотрел), гео разрезана по плоскостям.
 Все остальное тупое месилово откатов скилов , батников ,sh ников и копипасты.
 
А мне чел утверждал что я у них КУПИЛ фикс NextTarget (за помощь в исправлении спасибо izen), т.к. у меня он позже появился:banan:
	 
	
	
	
		
	Сообщений: 3,491 
	Тем: 52 
	Зарегистрирован: Jun 2010
	
 Репутация: 
12,167 
	
	
		epic fail, l2j-copypaste, manager нуб, omglol, sun-dev ололо, аугментированный варниш, геодата бункера, гопники, квадротигры, летающий напильник, микрофоны фирмы гуандон, оптимизация батников, почта россии ололо, пыщь, саркисян лох, сделано в китае, эякуляция
 XD
 
	
	
	
		
	Сообщений: 1,832 
	Тем: 26 
	Зарегистрирован: Jan 2010
	
 Репутация: 
3,766 
	
	
		Deazer Главное метки пополняются.:_smile_:
	 
	
	
	
		
	Сообщений: 4,393 
	Тем: 77 
	Зарегистрирован: Jul 2009
	
 Репутация: 
69,266 
	
	
		ALeKsIuS Написал:Deazer Главное метки пополняются.:_smile_: 
Стараемся:banan:
	 
	
	
	
		
	Сообщений: 32 
	Тем: 2 
	Зарегистрирован: Oct 2010
	
 Репутация: 
50 
	
	
		а ещё они чего то говорили про нас,мол типа мы их тупо как конкуренты обсираем   
ой лоло,сразу всё было понятно,был на моей памяти один хороший копипастер, GreenHope звали,объединял С3 балансера с С3 SF, притом очень грамотно,загнулся на том, что "школоло" решило более страшие ревизии брать у тех и других,и соединять самим ну и выкладывать типа как новый пак от грини,естественно паки от "школоло" были не стабильны,ну грини и закрылся,со словами слишком много умников развелось.
 
Копи пастить тоже уметь надо а коли там всё настолько плохо как тут пишут,лес лес лееееес,больше нету слов
 
Лично мне манагер заявлял что у них переписан двиг тридов,фаловый кеш,работа с базой,интересно в каком месте?
	 |