Jump to content

Recommended Posts

Posted

I have removed the lyrics but still gives the same error, only instead of saying (For imput string: "x") I get (For imput string: ""), also try putting coordinates and I get the same.

 

anyone know where to locate the source to remove the option of pack?

 

Problem solved. :D

  • 1 month later...
  • 2 weeks later...
Posted

How to remove this fvcking block Zealt & Frenzy in olympiad? :P

Change Project many reasons to do it ;/ also baggoc its baned as i know so he cant Help you

 

one Mode Lock to avoid more spam

  • 2 months later...
Posted

How to remove this fvcking block Zealt & Frenzy in olympiad? :P

 

Just found out yesterday how  fix this freaking block

 

Here's the fixed file 

Credits goes to Sweets for telling me how to fix it

Copy this in to AbstractOlympiadGame.java find it in L2J-Server\java\com\l2jserver\gameserver\model\olympiad

/*
* 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 <http://www.gnu.org/licenses/>.
*/
package com.l2jserver.gameserver.model.olympiad;

import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

import com.l2jserver.Config;
import com.l2jserver.gameserver.ai.CtrlIntention;
import com.l2jserver.gameserver.datatables.HeroSkillTable;
import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
import com.l2jserver.gameserver.instancemanager.CastleManager;
import com.l2jserver.gameserver.instancemanager.FortManager;
import com.l2jserver.gameserver.model.L2ItemInstance;
import com.l2jserver.gameserver.model.L2Party;
import com.l2jserver.gameserver.model.L2Skill;
import com.l2jserver.gameserver.model.Location;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
import com.l2jserver.gameserver.model.entity.TvTEvent;
import com.l2jserver.gameserver.model.zone.type.L2OlympiadStadiumZone;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ExOlympiadMode;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
import com.l2jserver.gameserver.network.serverpackets.SkillCoolTime;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;

/**
* 
* @author godson, GodKratos, Pere, DS
*
*/
public abstract class AbstractOlympiadGame
{
protected static final Logger _log = Logger.getLogger(AbstractOlympiadGame.class.getName());
protected static final Logger _logResults = Logger.getLogger("olympiad");

protected static final String POINTS = "olympiad_points";
protected static final String COMP_DONE = "competitions_done";
protected static final String COMP_WON = "competitions_won";
protected static final String COMP_LOST = "competitions_lost";
protected static final String COMP_DRAWN = "competitions_drawn";

protected long _startTime = 0;
protected boolean _aborted = false;
protected final int _stadiumID;

protected AbstractOlympiadGame(int id)
{
	_stadiumID = id;
}

public final boolean isAborted()
{
	return _aborted;
}

public final int getStadiumId()
{
	return _stadiumID;
}

protected boolean makeCompetitionStart()
{
	_startTime = System.currentTimeMillis();
	return !_aborted;
}

protected final void addPointsToParticipant(Participant par, int points)
{
	par.updateStat(POINTS, points);
	final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_GAINED_S2_OLYMPIAD_POINTS);
	sm.addString(par.name);
	sm.addNumber(points);
	broadcastPacket(sm);
}

protected final void removePointsFromParticipant(Participant par, int points)
{
	par.updateStat(POINTS, -points);
	final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_LOST_S2_OLYMPIAD_POINTS);
	sm.addString(par.name);
	sm.addNumber(points);
	broadcastPacket(sm);
}

/**
 * Function return null if player passed all checks
 * or SystemMessage with reason for broadcast to opponent(s).
 * @param player
 * @return
 */
protected static SystemMessage checkDefaulted(L2PcInstance player)
{
	if (player == null || !player.isOnline())
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_ENDS_THE_GAME);

	if (player.getClient() == null || player.getClient().isDetached())
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_ENDS_THE_GAME);

	// safety precautions
	if (player.inObserverMode() || TvTEvent.isPlayerParticipant(player.getObjectId()))
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_DOES_NOT_MEET_THE_REQUIREMENTS_FOR_JOINING_THE_GAME);

	SystemMessage sm;
	if (player.isDead())
	{
		sm = SystemMessage.getSystemMessage(SystemMessageId.C1_CANNOT_PARTICIPATE_OLYMPIAD_WHILE_DEAD);
		sm.addPcName(player);
		player.sendPacket(sm);
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_DOES_NOT_MEET_THE_REQUIREMENTS_FOR_JOINING_THE_GAME);
	}
	if (player.isSubClassActive())
	{
		sm = SystemMessage.getSystemMessage(SystemMessageId.C1_CANNOT_PARTICIPATE_IN_OLYMPIAD_WHILE_CHANGED_TO_SUB_CLASS);
		sm.addPcName(player);
		player.sendPacket(sm);
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_DOES_NOT_MEET_THE_REQUIREMENTS_FOR_JOINING_THE_GAME);
	}
	if (player.isCursedWeaponEquipped())
	{
		sm = SystemMessage.getSystemMessage(SystemMessageId.C1_CANNOT_JOIN_OLYMPIAD_POSSESSING_S2);
		sm.addPcName(player);
		sm.addItemName(player.getCursedWeaponEquippedId());
		player.sendPacket(sm);
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_DOES_NOT_MEET_THE_REQUIREMENTS_FOR_JOINING_THE_GAME);
	}
	if (!player.isInventoryUnder80(true))
	{
		sm = SystemMessage.getSystemMessage(SystemMessageId.C1_CANNOT_PARTICIPATE_IN_OLYMPIAD_INVENTORY_SLOT_EXCEEDS_80_PERCENT);
		sm.addPcName(player);
		player.sendPacket(sm);
		return SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_HAS_BEEN_CANCELLED_BECAUSE_THE_OTHER_PARTY_DOES_NOT_MEET_THE_REQUIREMENTS_FOR_JOINING_THE_GAME);
	}

	return null;
}

protected static final boolean portPlayerToArena(Participant par, Location loc, int id)
{
	final L2PcInstance player = par.player;
	if (player == null || !player.isOnline())
		return false;

	try
	{
		player.setLastCords(player.getX(), player.getY(), player.getZ());
		if (player.isSitting())
			player.standUp();
		player.setTarget(null);

		player.setOlympiadGameId(id);
		player.setIsInOlympiadMode(true);
		player.setIsOlympiadStart(false);
		player.setOlympiadSide(par.side);
		player.olyBuff = 5;
		player.setInstanceId(0);
		player.teleToLocation(loc, false);
		player.sendPacket(new ExOlympiadMode(2));
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, e.getMessage(), e);
		return false;
	}
	return true;
}

protected static final void removals(L2PcInstance player, boolean removeParty)
{
	try
	{
		if (player == null)
			return;

		// Remove Buffs
		player.stopAllEffectsExceptThoseThatLastThroughDeath();

		// Abort casting if player casting
		player.abortAttack();
		player.abortCast();

		// Force the character to be visible
		player.getAppearance().setVisible();

		// Remove Hero Skills
		if (player.isHero())
		{
			for (L2Skill skill : HeroSkillTable.getHeroSkills())
				player.removeSkill(skill, false);
		}


		// Heal Player fully
		player.setCurrentCp(player.getMaxCp());
		player.setCurrentHp(player.getMaxHp());
		player.setCurrentMp(player.getMaxMp());

		// Remove Summon's Buffs
		final L2Summon summon = player.getPet();
		if (summon != null)
		{
			summon.stopAllEffectsExceptThoseThatLastThroughDeath();
			summon.abortAttack();
			summon.abortCast();

			if (summon instanceof L2PetInstance)
				summon.unSummon(player);
		}

		// stop any cubic that has been given by other player.
		player.stopCubicsByOthers();

		// Remove player from his party
		if (removeParty)
		{
			final L2Party party = player.getParty();
			if (party != null)
				party.removePartyMember(player);
		}
		// Remove Agathion
		if (player.getAgathionId() > 0)
		{
			player.setAgathionId(0);
			player.broadcastUserInfo();
		}

		player.checkItemRestriction();

		// Remove shot automation
		player.disableAutoShotsAll();

		// Discharge any active shots
		if (player.getActiveWeaponInstance() != null)
		{
			player.getActiveWeaponInstance().setChargedSoulshot(L2ItemInstance.CHARGED_NONE);
			player.getActiveWeaponInstance().setChargedSpiritshot(L2ItemInstance.CHARGED_NONE);
		}

		// enable skills with cool time <= 15 minutes
		for (L2Skill skill : player.getAllSkills())
		{
			if (skill.getReuseDelay() <= 900000)
				player.enableSkill(skill);
		}

		player.sendSkillList();
		player.sendPacket(new SkillCoolTime(player));
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, e.getMessage(), e);
	}
}

protected static final void cleanEffects(L2PcInstance player)
{
	try
	{
		// prevent players kill each other
		player.setIsOlympiadStart(false);
		player.setTarget(null);
		player.abortAttack();
		player.abortCast();
		player.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);

		if (player.isDead())
			player.setIsDead(false);

		player.stopAllEffectsExceptThoseThatLastThroughDeath();
		player.clearSouls();
		player.clearCharges();
		if (player.getAgathionId() > 0)
			player.setAgathionId(0);
		final L2Summon summon = player.getPet();
		if (summon != null && !summon.isDead())
		{
			summon.setTarget(null);
			summon.abortAttack();
			summon.abortCast();
			summon.getAI().setIntention(CtrlIntention.AI_INTENTION_IDLE);
			summon.stopAllEffectsExceptThoseThatLastThroughDeath();
		}

		player.setCurrentCp(player.getMaxCp());
		player.setCurrentHp(player.getMaxHp());
		player.setCurrentMp(player.getMaxMp());
		player.getStatus().startHpMpRegeneration();
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, e.getMessage(), e);
	}
}

protected static final void playerStatusBack(L2PcInstance player)
{
	try
	{
		if(player.isTransformed())
			player.untransform();

		player.setIsInOlympiadMode(false);
		player.setIsOlympiadStart(false);
		player.setOlympiadSide(-1);
		player.setOlympiadGameId(-1);
		player.sendPacket(new ExOlympiadMode(0));

		// Add Clan Skills
		if (player.getClan() != null)
		{
			player.getClan().addSkillEffects(player);
			if (player.getClan().getHasCastle() > 0)
				CastleManager.getInstance().getCastleByOwner(player.getClan()).giveResidentialSkills(player);
			if (player.getClan().getHasFort() > 0)
				FortManager.getInstance().getFortByOwner(player.getClan()).giveResidentialSkills(player);
		}

		// Add Hero Skills
		if (player.isHero())
		{
			for (L2Skill skill : HeroSkillTable.getHeroSkills())
				player.addSkill(skill, false);
		}
		player.sendSkillList();

		// heal again after adding clan skills
		player.setCurrentCp(player.getMaxCp());
		player.setCurrentHp(player.getMaxHp());
		player.setCurrentMp(player.getMaxMp());
		player.getStatus().startHpMpRegeneration();

		if (Config.L2JMOD_DUALBOX_CHECK_MAX_OLYMPIAD_PARTICIPANTS_PER_IP > 0)
			AntiFeedManager.getInstance().removePlayer(AntiFeedManager.OLYMPIAD_ID, player);
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, "portPlayersToArena()", e);
	}
}

protected static final void portPlayerBack(L2PcInstance player)
{
	if (player == null)
		return;

	if (player.getLastX() == 0 && player.getLastY() == 0)
		return;

	player.teleToLocation(player.getLastX(), player.getLastY(), player.getLastZ());
	player.setLastCords(0, 0, 0);
}

public static final void rewardParticipant(L2PcInstance player, int[][] reward)
{
	if (player == null || !player.isOnline() || reward == null)
		return;

	try
	{
		SystemMessage sm;
		L2ItemInstance item;
		final InventoryUpdate iu = new InventoryUpdate();
		for (int[] it : reward)
		{
			if (it == null || it.length != 2)
				continue;

			item = player.getInventory().addItem("Olympiad", it[0], it[1], player, null);
			if (item == null)
				continue;

			iu.addModifiedItem(item);
			sm = SystemMessage.getSystemMessage(SystemMessageId.EARNED_S2_S1_S);
			sm.addItemName(it[0]);
			sm.addNumber(it[1]);
			player.sendPacket(sm);
		}
		player.sendPacket(iu);			
	}
	catch (Exception e)
	{
		_log.log(Level.WARNING, e.getMessage(), e);
	}
}

public abstract CompetitionType getType();

public abstract String[] getPlayerNames();

public abstract boolean containsParticipant(int playerId);

public abstract void sendOlympiadInfo(L2Character player);

public abstract void broadcastOlympiadInfo(L2OlympiadStadiumZone stadium);

protected abstract void broadcastPacket(L2GameServerPacket packet);

protected abstract boolean needBuffers();

protected abstract boolean checkDefaulted();

protected abstract void removals();

protected abstract boolean portPlayersToArena(List<Location> spawns);

protected abstract void cleanEffects();

protected abstract void portPlayersBack();

protected abstract void playersStatusBack();

protected abstract void clearPlayers();

protected abstract void handleDisconnect(L2PcInstance player);

protected abstract void resetDamage();

protected abstract void addDamage(L2PcInstance player, int damage);

protected abstract boolean checkBattleStatus();

protected abstract boolean haveWinner();

protected abstract void validateWinner(L2OlympiadStadiumZone stadium);

protected abstract int getDivider();

protected abstract int[][] getReward();
}

Guest
This topic is now closed to further replies.



  • Posts

    • 🔥 HF Rework Multi-Proff x10 is coming! ⚔️ New Samurai Crow Client ⚔️ Reworked Systems & Progression ⚔️ Updated Instances ⚔️ Classic Multeria Atmosphere 🧪 Pre-OBT is already live! 📅 Official OBT: June 29 🚀 Launch: July 3 🐞 Report bugs during testing and earn valuable rewards at launch! See you on the battlefield! https://rework.multeria.world/
    • PlayCMS - это удобная система управления веб-сайтом, разработанная специально для игровых проектов Lineage 2. CMS позволяет быстро запустить полнофункциональный серверный сайт с регистрацией игроков, личным кабинетом, новостями, рейтингами, магазином, модулями и гибкой панелью администратора. Система ориентирована на владельцев серверов Lineage 2, которым нужен красивый, функциональный и понятный сайт без лишних сложностей.  PlayCMS уже предоставляет базовые функции для управления проектами, такие как публикация новостей, настройка страниц, работа с пользователями, подключение шаблонов, а также установка модулей и плагинов. Ключевые особенности PlayCMS: — удобная административная панель; — регистрация и авторизация игроков; — учетная запись пользователя; — новостные и информационные страницы; — рейтинги игроков и кланов; — поддержка шаблонов дизайна; — установка модулей и плагинов через административную панель; — магазин цифровых продуктов; — категории продуктов; — возможность добавить фавикон; — защита лицензии для административной панели; — адаптация для игровых проектов Lineage 2; — возможность расширения функционала в соответствии с потребностями сервера. PlayCMS подходит как для новых игровых проектов, так и для существующих серверов, которым нужен удобный сайт с современным дизайном и интуитивно понятным управлением. Система проста в настройке и поддерживает индивидуальные шаблоны, дополнительные плагины и модули, что позволяет вам развивать свой сайт параллельно с развитием сервера. PlayCMS — это готовое решение для владельцев серверов Lineage 2, которым нужен красивый, быстрый и функциональный сайт. Демоверсия —  https://demo.playcms.ru/ Я разработчик этого чуда. Я готов выслушать конструктивную критику, а также ваши предложения по улучшению движка. Кроме того, я пишу модули любой сложности для этой CMS. Свяжитесь со мной: Telegram — @playcms       EN   PlayCMS is a user-friendly website management system designed specifically for Lineage 2 gaming projects. The CMS allows you to quickly launch a fully functional server website with player registration, personal account, news, ratings, a store, modules, and a flexible admin panel. The system is focused on Lineage 2 server owners who need a beautiful, functional, and clear website without unnecessary complexity. PlayCMS already provides basic features for project management, such as publishing news, customizing pages, working with users, connecting templates, and installing modules and plugins. Key Features of PlayCMS: — a convenient administrative panel; — player registration and authorization; — user account; — news and information pages; — player and clan ratings; — support for design templates; — installation of modules and plugins through the admin panel; — digital product store; — product categories; — ability to add a favicon; — license protection for the admin panel; — adaptation for Lineage 2 game projects; — the ability to expand functionality to meet the needs of the server. PlayCMS is suitable for both new gaming projects and existing servers that require a user-friendly website with a modern appearance and intuitive management. The system is easy to configure and supports individual templates, additional plugins, and modules, allowing you to develop your website alongside your server. PlayCMS is a ready-made solution for Lineage 2 server owners who need a beautiful, fast, and functional website. Demo - https://demo.playcms.ru/ I am the developer of this miracle. I am ready to listen to constructive criticism, as well as your suggestions for improving the engine. I also write modules of any complexity for this cms. Contact me: Telegram - @playcms   Скачать\Download : https://drive.google.com/file/d/15Az9WVDD4SQNyOPAsXMU4-mGHOiA_U_d/view     Added a new module "Wheel of Fortune" to the demo version.  PlayCMS Fortune Wheel - module "Wheel of Fortune" for Play CMS Purpose: - adds a Lineage 2-style wheel of fortune to the user's personal account; - displays in the personal account on top of the balance and warehouse block; - supports prizes: Adena, Coin of Luck, premium account, common items, empty slots; - before submitting the form, shows the animation of the wheel spinning; - if there are no attempts, it displays the "No attempts" modal window; - the won gift is automatically added to the user's inventory; - adds a separate "Wheel of Fortune" section to the admin panel; - in the admin panel, you can edit slots, Item ID, quantity, drop chance, attempts, and the price of purchasing attempts using your balance.
    • To increase visibility and make sure your offer reaches the right audience, I'd recommend exploring the tools at CS2WH. They have a Deals Bot that might help you track market prices and adjust your strategy on the fly. I'm finding their resources super helpful for keeping tabs on the trading scene. Plus, they emphasize safety and provide insights on legal skin trading, which is crucial for maintaining credibility.
    • I'm also trying to contact them, and I only have their Telegram contact, probably the same one as yours, and I haven't received a response in months.
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..