Сообщений: 4,393
Тем: 77
Зарегистрирован: Jul 2009
Репутация:
69,266
Сообщений: 456
Тем: 14
Зарегистрирован: Jan 2010
Репутация:
410
Ozzy Написал: А интересно цены так же будут расти, как размеры ?)))
Сообщений: 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,494
Тем: 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,494
Тем: 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, притом очень грамотно,загнулся на том, что "школоло" решило более страшие ревизии брать у тех и других,и соединять самим ну и выкладывать типа как новый пак от грини,естественно паки от "школоло" были не стабильны,ну грини и закрылся,со словами слишком много умников развелось.
Копи пастить тоже уметь надо а коли там всё настолько плохо как тут пишут,лес лес лееееес,больше нету слов
Лично мне манагер заявлял что у них переписан двиг тридов,фаловый кеш,работа с базой,интересно в каком месте?
|