Jump to content

r2r2

Members
  • Posts

    20
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

About r2r2

Profile Information

  • Gender
    Male
  • Country
    France

Recent Profile Visitors

576 profile views

r2r2's Achievements

Newbie

Newbie (1/16)

  • Dedicated Rare
  • First Post Rare
  • Collaborator Rare
  • Week One Done Rare
  • One Month Later Rare

Recent Badges

0

Reputation

  1. Hello! In these files, I did not find how to put enchanted Weapons to the NPCs, (EnableRandomEnchantEffect) maybe the code should be added if so how can I do it please? Thanks a lot for your help! Have a good day.
  2. Someone knows how to change the welcome window logo (I have not found in the images folder) and also change the logo of the Npc? Thank you very much.
  3. Logos or images are not displayed. Do you know how to fix it please? Thanks.
  4. Thank you for your explanations Akar0 ;)
  5. Nice files thanks ;) It's better than => Fandc/ro-Team H5-L2Ava Files Sources ?
  6. How do you remove the AVA Lineage 2 logo please when launching the game please? And client crash when create new character: General protection fault! History: FDepthOfField::GetFocus <- UDOFEffect::PostRender <- FPlayerSceneNode::Render <- ViewportLock1 <- Precaching <- UGameEngine::Draw <- UWindowsViewport::Repaint <- UWindowsClient::Tick <- ClientTick <- UGameEngine::Tick <- UpdateWorld <- MainLoop Why please?
  7. Hello, first of all thank you very much for this pack. Very Nice!!! Do we have the right to open a public server and modify the sources? Thank you.
  8. Melron thank you very much my friend, it works now!
  9. Here is the code FightClubArena.java: package events.FightClub; import l2r.commons.threading.RunnableImpl; import l2r.commons.util.Rnd; import l2r.gameserver.Config; import l2r.gameserver.ThreadPoolManager; import l2r.gameserver.data.xml.holder.InstantZoneHolder; import l2r.gameserver.listener.actor.OnDeathListener; import l2r.gameserver.listener.actor.player.OnPlayerExitListener; import l2r.gameserver.model.Creature; import l2r.gameserver.model.Player; import l2r.gameserver.model.actor.listener.CharListenerList; import l2r.gameserver.model.base.TeamType; import l2r.gameserver.model.entity.Reflection; import l2r.gameserver.model.instances.DoorInstance; import l2r.gameserver.templates.InstantZone; import l2r.gameserver.utils.ItemFunctions; import java.util.concurrent.ScheduledFuture; public class FightClubArena extends FightClubManager implements OnDeathListener, OnPlayerExitListener { protected static final String CLASS_NAME = "events.FightClub.FightClubManager"; private ScheduledFuture<?> _endTask; public static ScheduledFuture<?> _startTask; private boolean _isEnded = false; private Player _player1; private Player _player2; private static int _itemId; private static int _itemCount; private static Reflection _reflection; private InstantZone _instantZone = InstantZoneHolder.getInstance().getInstantZone(Rnd.get(609, 612)); public FightClubArena(Player player1, Player player2, int itemId, int itemCount, Reflection reflection) { //Подключаем листенеры персонажа CharListenerList.addGlobal(this); //Инициализируем переменные класса _player1 = player1; _player2 = player2; _itemId = itemId; _itemCount = itemCount; _reflection = reflection; _reflection.init(_instantZone); //Инициализируем сражение initBattle(); } /** * Вызывается при выходе игрока */ @Override public void onPlayerExit(Player player) { if((player.getStoredId() == _player1.getStoredId() || player.getStoredId() == _player2.getStoredId()) && !_isEnded) { stopEndTask(); setLoose((Player) player); } } /** * Вызывается при смерти игрока */ @Override public void onDeath(Creature actor, Creature killer) { if((actor.getStoredId() == _player1.getStoredId() || actor.getStoredId() == _player2.getStoredId()) && !_isEnded) { stopEndTask(); setLoose((Player) actor); } } private void stopEndTask() { _endTask.cancel(false); _endTask = ThreadPoolManager.getInstance().schedule(new EndTask(), 3000); } /** * Запускает таймеры боя */ private void initBattle() { final Object[] args = { _player1, _player2, _reflection }; _startTask = ThreadPoolManager.getInstance().scheduleAtFixedDelay(new StartTask(_player1, _player2), Config.ARENA_TELEPORT_DELAY * 1000, 1000); _endTask = ThreadPoolManager.getInstance().schedule(new EndTask(), ((Config.ARENA_TELEPORT_DELAY + Config.FIGHT_TIME)) * 1000); sayToPlayers("scripts.events.fightclub.TeleportThrough", Config.ARENA_TELEPORT_DELAY, false, _player1, _player2); executeTask(CLASS_NAME, "resurrectPlayers", args, Config.ARENA_TELEPORT_DELAY * 1000 - 600); executeTask(CLASS_NAME, "healPlayers", args, Config.ARENA_TELEPORT_DELAY * 1000 - 500); executeTask(CLASS_NAME, "teleportPlayersToColliseum", args, Config.ARENA_TELEPORT_DELAY * 1000); } /** * Удаляет ауру у игроков */ private void removeAura() { _player1.setTeam(TeamType.NONE); _player2.setTeam(TeamType.NONE); } /** * Выдаёт награду */ private void giveReward(Player player) { final String name = ItemFunctions.createItem(_itemId).getTemplate().getName(); sayToPlayer(player, "scripts.events.fightclub.YouWin", false, _itemCount * 2, name); addItem(player, _itemId, _itemCount * 2); } private static String getItemName() { final String name = ItemFunctions.createItem(_itemId).getTemplate().getName(); return name; } private static int getItemCount() { return _itemCount; } /** * Выводит скорбящее сообщение проигравшему ;) * @param player */ private void setLoose(Player player) { if(player.getStoredId() == _player1.getStoredId()) giveReward(_player2); else if(player.getStoredId() == _player2.getStoredId()) giveReward(_player1); _player1.unsetVar("FightClubRate"); _player2.unsetVar("FightClubRate"); _isEnded = true; sayToPlayer(player, "scripts.events.fightclub.YouLoose", false, new Object[0]); } /** * Метод, вызываемый при ничьей. Рассчитывает победителя или объявлет ничью. */ private void draw() { if(!Config.ALLOW_DRAW && _player1.getCurrentCp() != _player1.getMaxCp() || _player2.getCurrentCp() != _player2.getMaxCp() || _player1.getCurrentHp() != _player1.getMaxHp() || _player2.getCurrentHp() != _player2.getMaxHp()) { if(_player1.getCurrentHp() != _player1.getMaxHp() || _player2.getCurrentHp() != _player2.getMaxHp()) { if(_player1.getMaxHp() / _player1.getCurrentHp() > _player2.getMaxHp() / _player2.getCurrentHp()) { giveReward(_player1); setLoose(_player2); return; } else { giveReward(_player2); setLoose(_player1); return; } } else { if(_player1.getMaxCp() / _player1.getCurrentCp() > _player2.getMaxCp() / _player2.getCurrentCp()) { giveReward(_player1); setLoose(_player2); return; } else { giveReward(_player2); setLoose(_player1); return; } } } sayToPlayers("scripts.events.fightclub.Draw", true, _player1, _player2); addItem(_player1, _itemId, _itemCount); addItem(_player2, _itemId, _itemCount); } /** * Возващает ссылку на первого игрока * @return - ссылка на игрока */ protected Player getPlayer1() { return _player1; } /** * Возващает ссылку на второго игрока * @return - ссылка на игрока */ protected Player getPlayer2() { return _player2; } /** * Возвращает отражение * @return - reflection */ protected Reflection getReflection() { return _reflection; } /** * Вызывает метод суперкласса, удаляющий рефлекшен * @param arena - ссылка на арену */ private void delete(long delay) { final FightClubArena[] arg = { this }; executeTask(CLASS_NAME, "deleteArena", arg, delay); } protected static class StartTask extends RunnableImpl { private Player _player1; private Player _player2; private int _second; public StartTask(Player player1, Player player2) { _player1 = player1; _player2 = player2; _second = Config.TIME_TO_PREPARATION; } @Override public void runImpl() throws Exception { addBuffers(); switch(_second) { case 60: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 30: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 20: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 10: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 5: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 3: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 2: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 1: sayToPlayers("scripts.events.fightclub.TimeToStart", _second, false, _player1, _player2); break; case 0: openDoors(); deleteBuffers(); startBattle(_player1, _player2); _startTask.cancel(true); _startTask = null; if(Config.FIGHT_CLUB_ANNOUNCE_START_TO_SCREEN) sayStartToAllPlayers("scripts.events.fightclub.AnnounceStartBatle", _player1, _player2, getItemName(), getItemCount(), false); } _second -= 1; } } private static String getBufferSpawnGroup(int instancedZoneId) { String bufferGroup = null; switch(instancedZoneId) { case 147: bufferGroup = "olympiad_147_buffers"; break; case 148: bufferGroup = "olympiad_148_buffers"; break; case 149: bufferGroup = "olympiad_149_buffers"; break; case 150: bufferGroup = "olympiad_150_buffers"; break; } return bufferGroup; } private static void addBuffers() { if(getBufferSpawnGroup(_reflection.getInstancedZoneId()) != null) _reflection.spawnByGroup(getBufferSpawnGroup(_reflection.getInstancedZoneId())); } private static void deleteBuffers() { _reflection.despawnByGroup(getBufferSpawnGroup(_reflection.getInstancedZoneId())); } private class EndTask extends RunnableImpl { private final Object[] args = { _player1, _player2, new Object[0] }; @Override public void runImpl() throws Exception { removeAura(); if(!_isEnded) { draw(); _isEnded = true; stopEndTask(); } sayToPlayers("scripts.events.fightclub.TeleportBack", Config.TIME_TELEPORT_BACK, false, _player1, _player2); executeTask(CLASS_NAME, "resurrectPlayers", args, Config.TIME_TELEPORT_BACK * 1000 - 300); executeTask(CLASS_NAME, "healPlayers", args, Config.TIME_TELEPORT_BACK * 1000 - 200); executeTask(CLASS_NAME, "teleportPlayersBack", args, Config.TIME_TELEPORT_BACK * 1000); delete((Config.TIME_TELEPORT_BACK + 10) * 1000); } } public static void openDoors() { for(DoorInstance door : _reflection.getDoors()) door.openMe(); } public FightClubArena() {} @Override public void onLoad() {} @Override public void onReload() {} @Override public void onShutdown() {} } Thanks.
×
×
  • Create New...