 |
|

11.02.2016, 14:00
|
|
Постоянный
Регистрация: 14.06.2015
Сообщений: 910
С нами:
5744218
Репутация:
1488
|
|
Сообщение от Visor123
Речь вообще не о нем, он появился в теме после создания темы. К примеру пусть тебя назовет говнокодером и что он там еще писал, тебе может это нормально, я же не знаю как ты воспринимаешь тролинг и оскорбления.
Я же не виноват, что нет логов чара, кик бы написал, что не пишите в чат, там все равно что написано. Или "чат не модерируется"
Вы уходите от ответа, уважаемый, почему же речь не о нем? Говорили же что он оскорблял в чате и тд. и есть скрины, а теперь речь вообще не о нем?
Пока вы увиливаете от конкретных вопросов, думаю, не стоит дальше вести с вами дискуссию. Послежу за тридиком пока что. Удачи.
|
|
|

11.02.2016, 14:01
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от Mangol
Я прицепился с той причиной что ты в данной теме реально "обосрался" ты же такой парень, всех натягиваешь, а тут вдруг тебя натянули по полной. И пытаешься выехать на том что висел пол года, и тебе было побоку.
Я закрывал темы. Ты хотел этой темы продолжение, получи продолжение.
Да никто меня не натянул.
Что ты такое рассказываешь?
Никто не доказал что на java быстрее чем на ассемблере, никто не доказал даже что я сказал, что этот код хороший или имеет место быть. Я написал что? Что он оптимален для того, чтобы не выполняться, либо выполнится 1 раз в полгода.
Больше ничего не было написано - ты почитал сообщения троля, который написал не то что на самом деле и сделал вывод.
Натянул? Ты же не передергивай. То ты был модератором, участвовал в цирке, теперь ты не модератор и тоже участвуешь в цирке.
Тема про код не может быть темой про прямое оскорбление.
Прошу удалить первый пост, поскольку тему обсуждать в теме никто не хочет, зато создана дерьмотема на много страниц с целью оскорбить меня, и оскорбляющая меня, что в общем-то и написано.
|
|
|

11.02.2016, 14:02
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Mangol
Код:
Код:
/*
* 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.InstanceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneManager;
import net.l2emuproject.gameserver.instancemanager.InstanceManager.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.L2Character;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
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.SystemMessageId;
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.L2NpcTemplate;
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},{6279,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().broadcastToChannelMembers(new SystemMessage(2104));
return false;
}
}
if (party.getCommandChannel().getMembers().size() PLAYERS_MAX)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(2764));
return false;
}
for (L2PcInstance plr : party.getCommandChannel().getMembers())
{
if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOTHER_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.getInstanceId());
//_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.getInstanceId());
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(player.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.getInstanceId());
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_INTENTION_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.getInstanceId()) != null && InstanceManager.getInstance().getWorld(npc.getInstanceId()).templateId == INSTANCEID)
{
FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInstanceId());
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_INTENTION_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 раз.
- Этот код не используется.
- Этот код уже переписан.
- Ты - второй аккаунт Генки.
- Ты - повелся на манипуляции Генки, и тема вообще не о коде.
- На ассемблере этот код работает быстрее.
- Кто ты и чего хочешь.
|
|
|

11.02.2016, 14:03
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от Mangol
Код:
Код:
/*
* 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.InstanceManager;
import net.l2emuproject.gameserver.instancemanager.ZoneManager;
import net.l2emuproject.gameserver.instancemanager.InstanceManager.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.L2Character;
import net.l2emuproject.gameserver.model.actor.L2Npc;
import net.l2emuproject.gameserver.model.actor.instance.L2DoorInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2MonsterInstance;
import net.l2emuproject.gameserver.model.actor.instance.L2PcInstance;
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.SystemMessageId;
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.L2NpcTemplate;
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},{6279,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().broadcastToChannelMembers(new SystemMessage(2104));
return false;
}
}
if (party.getCommandChannel().getMembers().size() PLAYERS_MAX)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(2764));
return false;
}
for (L2PcInstance plr : party.getCommandChannel().getMembers())
{
if (InstanceManager.getInstance().getPlayerWorld(plr) != null)
{
party.getCommandChannel().broadcastToChannelMembers(new SystemMessage(SystemMessageId.ALREADY_ENTERED_ANOTHER_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.getInstanceId());
//_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.getInstanceId());
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(player.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.getInstanceId());
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_INTENTION_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.getInstanceId()) != null && InstanceManager.getInstance().getWorld(npc.getInstanceId()).templateId == INSTANCEID)
{
FreyaWorld world = (FreyaWorld) InstanceManager.getInstance().getWorld(npc.getInstanceId());
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_INTENTION_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");
}
}
Нет, не говнокодер.
Погоди - ты разве в овере написал что вистал говнокодер, или во всех сборках где в коде хоть что-то найдено не оптимальное? Почему ты не пошел и не оскорбил других людей? Нет - ты оскорбил меня.
То есть ты сейчас кинул какой-то код и оскорбил лично меня, ты же не написал, что вот тут не оптимально ява выполняет, или тут. Нет? Нет вот тебе факт оскорбления.
Открой раздел говнокода и оскорби там всех людей, которые писали тот код.
Сообщение от velafrys
Вангую возможные ответы :
Этот код не Визора.
Этот код старый, и Визор уже не пишет такой код.
Синхронизация действительно нужна везде. Если ты не понимаешь зачем, то ты тролль и оскорблятор.
Опровергни тот факт, что тут не нужна синхронизация.
Ты - генкин жополиз.
Итерация в цикле будет не больше 1-2 раз.
Этот код не используется.
Этот код уже переписан.
Ты - второй аккаунт Генки.
Ты - повелся на манипуляции Генки, и тема вообще не о коде.
На ассемблере этот код работает быстрее.
Кто ты и чего хочешь.
Обычный тролизм, показываю для тех кто не в курсе как идет "завод" публики
|
|
|

11.02.2016, 14:05
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Погоди - ты разве в овере написал что вистал говнокодер, или во всех сборках где в коде хоть что-то найдено не оптимальное? Почему ты не пошел и не оскорбил других людей? Нет - ты оскорбил меня.
То есть ты сейчас кинул какой-то код и оскорбил лично меня, ты же не написал, что вот тут не оптимально ява выполняет, или тут. Нет? нет вот тебе факт
Как он тебя оскорбил? Ну как? Ты зачем авторство ставил? Чтобы гордиться своим творчеством, чтобы люди знали, чье это добро? Ну так сам себе яму вырыл.
Это как зарезать человека, оставить отпечатки на ноже, но бегать и кричать, мол, полиция коррумпирована, жополизы Генклаудовские!
Сообщение от Visor123
Обычный тролизм, показываю для тех кто не в курсе как идет "завод" публики
В отличии от тебя, я не обращаюсь к публике в каждом, почти, посте.
Ну так пруфы оскорблений будут, говнокодер?
|
|
|

11.02.2016, 14:07
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от velafrys
В отличии от тебя, я не обращаюсь к публике в каждом, почти, посте.
Ну так пруфы оскорблений будут, говнокодер?
Оскорбление номер 2.
Говнокодер относится ко мне лично, и это оскорбление. Где же теперь правила?
|
|
|

11.02.2016, 14:08
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Оскорбление номер 2.
Говнокодер относится ко мне лично, и это оскорбление. Где же теперь правила?
Проблема в том, что ты лично можешь считать это оскорблением, а другие не считают, допускаешь такое?
Так пруфы где, пустослов?
|
|
|

11.02.2016, 14:10
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
Сообщение от velafrys
Проблема в том, что ты лично можешь считать это оскорблением, а другие не считают, допускаешь такое?
Так пруфы где, пустослов?
Что-то как-то ты слабо, очень слабо. Давай еще.
|
|
|

11.02.2016, 14:12
|
|
Участник форума
Регистрация: 03.02.2016
Сообщений: 148
С нами:
5407316
Репутация:
0
|
|
Сообщение от Visor123
Что-то как-то ты слабо, очень слабо. Давай еще.
Что именно слабо? Ты действительно считаешь себя НЕ говнокодером и НЕ пустословом?
|
|
|

11.02.2016, 14:13
|
|
Постоянный
Регистрация: 22.06.2015
Сообщений: 766
С нами:
5732336
Репутация:
0
|
|
@Mangol - так где твои оскорбления всех разработчиков в теме говнокод, где есть их код? Или это оскорбление, или это не оскорбление. Ты как считаешь, что тут можно оскорблять, а там нельзя? Или код не так "пахнет" там?
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|