Jump to content
  • 0

Help With Class Name In Olympiad List


Question

Posted

hello guys i want help with my file " ExOlympiadMatchList.java" im trying to add the class name of every participant in the olympiads participation list , but i can't do because im limited with java but i believe for some person with basic knowledge can tell me what to do here, thanks in advance.

 

the script ExOlympiadMatchList.java :

/*
 * 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.network.serverpackets;
 

import java.util.ArrayList;
import java.util.List;

import com.l2jserver.gameserver.model.olympiad.AbstractOlympiadGame;
import com.l2jserver.gameserver.model.olympiad.OlympiadGameClassed;
import com.l2jserver.gameserver.model.olympiad.OlympiadGameManager;
import com.l2jserver.gameserver.model.olympiad.OlympiadGameNonClassed;
import com.l2jserver.gameserver.model.olympiad.OlympiadGameTask;
import com.l2jserver.gameserver.model.olympiad.OlympiadGameTeams;

 
/**
 * Format: (chd) ddd[dddS]
 * d: number of matches
 * d: unknown (always 0)
 * [
 *  d: arena
 *  d: match type
 *  d: status
 *  S: player 1 name
 *  S: player 2 name
 * ]
 * 
 * @author mrTJO
 */
public class ExOlympiadMatchList extends L2GameServerPacket
{
	private static final String _S__FE_D4_OLYMPIADMATCHLIST = "[S] FE:D4 ExOlympiadMatchList";
	private final List<OlympiadGameTask> _games = new ArrayList<>();
	
	public ExOlympiadMatchList()
	{
		OlympiadGameTask task;
		for (int i = 0; i < OlympiadGameManager.getInstance().getNumberOfStadiums(); i++)
		{
			task = OlympiadGameManager.getInstance().getOlympiadTask(i);
			if (task != null)
			{
				if (!task.isGameStarted() || task.isBattleFinished())
				{
					continue; // initial or finished state not shown
				}
				_games.add(task);
			}
		}
	}
	
	@Override
	protected final void writeImpl()
	{

		writeC(0xFE);
		writeH(0xD4);
		writeD(0x00); // Type 0 = Match List, 1 = Match Result
		
		writeD(_games.size());
		writeD(0x00);
		
		for (OlympiadGameTask curGame : _games)
		{
			AbstractOlympiadGame game = curGame.getGame();
			if (game != null)
			{
				writeD(game.getStadiumId()); // Stadium Id (Arena 1 = 0)
				
				if (game instanceof OlympiadGameNonClassed)
				{
					writeD(1);
				}
				else if (game instanceof OlympiadGameClassed)
				{
					writeD(2);
				}
				else if (game instanceof OlympiadGameTeams)
				{
					writeD(-1);
				}
				else
				{
					writeD(0);
				}
				
				writeD(curGame.isRunning() ? 0x02 : 0x01); // (1 = Standby, 2 = Playing)
				writeS(game.getPlayerNames()[0]); // Player 1 Name
				writeS(game.getPlayerNames()[1]); // Player 2 Name
		}
		}
	}
	
	@Override
	public String getType()
	{
		return _S__FE_D4_OLYMPIADMATCHLIST;
	}
}

and this line is where i must modify the player name to the class name

 

                writeS(game.getPlayerNames()[0]); // Player 1 Name
                writeS(game.getPlayerNames()[1]); // Player 2 Name

 

to see the result here i tested with all and nothing work the only variable i get always there is 0  :-\ if you can help me thanks.:

 

post-72655-0-33340100-1416403018_thumb.png

3 answers to this question

Recommended Posts

  • 0
Posted

If you will revert your changes and make fields Player 1 and Player 2 show names of the players, then all you will have to do is:

- go to OlympiadGameNormal.java

- modify getPlayerNames()

- you can make each name like: _playerOne.getName() + " (" + playerOne.getClassId().getName() + ")"

 

I dont know the method for getting name of the class(playerOne.getClassId().getName() - that was example) in l2jserver, so you will have to find it by youself.

Guest
This topic is now closed to further replies.


×
×
  • Create New...