Ver um Único Post
Antigo 01-09-2009, 07:58 PM   #1
AnthonyNichols~
É NoiZ x)
 
Avatar de AnthonyNichols~
 
Registrado em: Aug 2009
Posts: 540
Agradeceu: 194
Agradecido 672 Vezes em 205 Posts
Achei Ruim:
Acharam ruim Vezes em Posts
Rate Designer: Iniciante
Meu Estado:
Enviar mensagem via Windows Live Messenger para AnthonyNichols~
Nome Real: Anthony Nichols

Inventório de AnthonyNichols~

Padrão Java Core - Modificações

O que nós precisamos:

Eclipse Classic 3.4.2 (152MB) - [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]


Aplicando os patches:


• Em primeiro lugar, precisamos saber o que é um Patch. Um patch é arquivo de texto simples que contém dados sobre as diferenças entre duas versões do mesmo arquivo.

• Como aplicar o patch para o nosso código fonte?

- Abra seu Eclipse
- Vá para o marcador Project Explorer
- Se você não veja o mesmo , vá em: Window -> Show View -> Project Explorer
- Clique com botão direito em sua origem, clique em Equipe e depois aplly Patch
- Assim como nesta tela:

[Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]


- Em seguida, coloquea localização do patch e pressione Concluir

• Mas em algum momento nosso patch pode não corresponder à sua versão actual fonte. Então o que devemos fazer? Devemos adicioná-lo manualmente.

• Como ler as alterações do patch? É simples, aqui está o código de exemplo:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java
===================================================================
--- C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java	(revision 3148)
+++ C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java	(working copy)
@@ -507,8 +507,21 @@
- 	public static boolean CUSTOM_TELEPORT_TABLE;
-	public static boolean CUSTOM_DROPLIST_TABLE;
- 	public static boolean CUSTOM_MERCHANT_TABLES;

+	public static boolean CHARTITLESTART;
+	public static String CHARTITLE;
• E agora eu vou explicar isso:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
Index: C:/workspace/L2_GameServer/java/net/sf/l2j/Config.java

- Esta é a informação sobre qual arquivo foi modificado. Neste caso Config.java Assim, devemos abrir este arquivo.

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
(revision 3148)

- Revisão para que o patch foi criado

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
@@ -507,8 +507,21 @@
- Linhas que devem ser editadas

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
-	public static boolean CUSTOM_TELEPORT_TABLE;
-   public static boolean CUSTOM_DROPLIST_TABLE;
-	public static boolean CUSTOM_MERCHANT_TABLES;
- Menos significa que devemos excluir essas linhas.

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
+   public static boolean CHARTITLESTART;
+   public static String CHARTITLE;

- Mais significa que devemos adicionar estas linhas.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Principais Configurações


• Antes de tudo, antes de adicionar novas Propriedades do arquivo devemos saber como adicionar novas opções de configuração já existente. Arquivos de propriedades.

• Por exemplo, vamos criar uma nova opção de configuração permitirá (ou não) ir automaticamente para o level 75 todos os novos characters

- Em primeiro lugar, você deve abrir Config.java , arquivo situa-se em: (Java \ net \ sf \ l2j) pasta.

- Olhe onde a Class Config começa, você deve olhar que:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
public final class Config
{

		 protected static final Logger _log = Logger.getLogger(Config.class.getName());
 ...etc
- Nossa configuração permitirá ou não (True or False), de modo que deve registrar novo boolean

- Nós o chamamos: ALLOW_CREATE_LVL;

- Então você deve adicionar essa linha:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
 public static boolean ALLOW_CREATE_LVL;
- Vamos adicioná-lo no início desta classe. Assim deve ficar:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
public final class Config
{
	// Custom Starting Level
	public static boolean ALLOW_CREATE_LVL;
  
	protected static final Logger _log = Logger.getLogger(Config.class.getName());

	...etc
• É simples. Ok , o passo seguinte é:

- Agora vamos acrescentar esta configuração, por exemplo, em Other.properties assim Você deve encontrar isso:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
			// other
			try
			{
				Properties otherSettings	= new Properties();
				InputStream is			  = new FileInputStream(new File(OTHER_CONFIG_FILE));
				otherSettings.load(is);
				is.close();

				DEEPBLUE_DROP_RULES=Boolean.parseBoolean(otherSettings.getProperty("UseDeepBlueDropRules","True"));																				   
 ...etc

- Aqui podemos acrescentar coisas que pertencem à configuração (neste caso Other.properties)

- Agora você deve adicionar essa linha:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
ALLOW_CREATE_LVL = Boolean.parseBoolean(otherSettings.getProperty("CostumStartLvl", "False"));
- Você deve se lembrar de incluir o nome do arquivo de propriedades. Neste código foi marcado cor vermelha

- Deve ficar assim:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
		   // other
			try
			{
				Properties otherSettings	= new Properties();
				InputStream is			  = new FileInputStream(new File(OTHER_CONFIG_FILE));
				otherSettings.load(is);
				is.close();
			
			    ALLOW_CREATE_LVL = Boolean.parseBoolean(otherSettings.getProperty("CostumStartLvl", "False"));

				DEEPBLUE_DROP_RULES = Boolean.parseBoolean(otherSettings.getProperty("UseDeepBlueDropRules", "True"));

		   ... etc
Agora de uma olhada ( é uma parte desta linha ) :

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
("CostumStartLvl", "False"));
- Então, agora você tem que adicionar a opção de configuração em Other.properties e ele deve ter esta aparência:

CostumStartLvl = False

- Este é um exemplo. Você pode colocar como quiser. (Neste caso, False é o padrão)

- Agora você deve abrir CharacterCreate.java arquivo e adicionar algumas linhas de código:

- Encontre estas linhas:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	// cSdddddddddddd
	private String _name;
	private int _race;
	private byte _sex;
	private int _classId;
	private int _int;
	private int _str;
	private int _con;
	private int _men;
	private int _dex;
	private int _wit;
	private byte _hairStyle;
	private byte _hairColor;
	private byte _face;

- E adicionar uma nova entrada sobre a experiência

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
 private long _exp;

- Agora temos que definir _exp; (neste caso, quantidade de experiência para o nível 75)

- Encontre estas linhas:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	@Override
	protected void readImpl()
	{
		_name	  = readS();
		_race	  = readD();
		_sex	   = (byte)readD();
		_classId   = readD();
		_int	   = readD();
		_str	   = readD();
		_con	   = readD();
		_men	   = readD();
		_dex	   = readD();
		_wit	   = readD();
		_hairStyle = (byte)readD();
		_hairColor = (byte)readD();
		_face	  = (byte)readD();
- E adicionar isto:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	  _exp	  = 804219972;
   }
- 804219972 é a quantidade de experiencia nescessária para o level 75;

- Ok agora encontrar estas linhas:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
 		newChar.setXYZInvisible(template.spawnX, template.spawnY, template.spawnZ);
- E adicionar isto:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	  if(Config.ALLOW_CREATE_LVL)
	  {
		 newChar.removeExpAndSp(newChar.getExp(), 0);
		 newChar.addExpAndSp(_exp, 0);
	  }
- OK , agora vou explicar como funciona:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
f(Config.ALLOW_CREATE_LVL)

- Significa que irá se checar se a config vai permitir a criação de nível (deve ser apenas executado pelo código)

- Então, se a config permitir (TRUE) ele vai adicionar instant level 75 para cada novo personagem. É simples, certo?

----------------------------------------------------------------------------------------------------------------------------


Novo arquivo de configuração:

Ok, Você deve saber como adicionar a nova opção de configuração , propriedades de arquivos etc Então agora eu vou mostrar como criar novas propriedades do arquivo. Por exemplo: TryZ.properties


- Ok, em primeiro lugar, vamos criar novas propriedades chamado TryZ.java (este é o exemplo) em java / configfolder.

- Agora abra o arquivo Config.java. Ok, em primeiro lugar vamos registrar nossa nova config, encontre estas linhas:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
	//--------------------------------------------------
	// L2J Property File Definitions
	//--------------------------------------------------
	public static final String CHARACTER_CONFIG_FILE = "./config/Character.properties";
	public static final String EXTENSIONS_CONFIG_FILE = "./config/extensions.properties";
	public static final String FEATURE_CONFIG_FILE = "./config/Feature.properties";
	public static final String FORTSIEGE_CONFIGURATION_FILE = "./config/fortsiege.properties";
	public static final String GENERAL_CONFIG_FILE = "./config/General.properties";
	public static final String HEXID_FILE = "./config/hexid.txt";
	public static final String ID_CONFIG_FILE = "./config/idfactory.properties";
	public static final String SERVER_VERSION_FILE = "./config/l2j-version.properties";
	public static final String DATAPACK_VERSION_FILE = "./config/l2jdp-version.properties";
	public static final String L2JMOD_CONFIG_FILE = "./config/l2jmods.properties";
	public static final String LOGIN_CONFIGURATION_FILE = "./config/loginserver.properties";
	public static final String NPC_CONFIG_FILE = "./config/NPC.properties";
	public static final String PVP_CONFIG_FILE = "./config/pvp.properties";
	public static final String RATES_CONFIG_FILE = "./config/rates.properties";
	public static final String CONFIGURATION_FILE = "./config/server.properties";
	public static final String SIEGE_CONFIGURATION_FILE = "./config/siege.properties";
	public static final String TELNET_FILE = "./config/telnet.properties";
	public static final String FLOOD_PROTECTOR_FILE = "./config/floodprotector.properties";
	public static final String MMO_CONFIG_FILE = "./config/mmo.properties";
- E vamos adicionar isto:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
public static final String TryZ_CONFIG_FILE = "./config/TryZ.properties";

- Ok, nosso arquivo de configuração já está registrado agora. Agora devemos acrescentar algumas coisas na parte que inicializa todas as variáveis globais para a configuração.

- Encontre estas linhas:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
				}
				catch (Exception e)
				{
					e.printStackTrace();
					throw new Error("Failed to Load "+L2JMOD_CONFIG_FILE+" File.");
				}
e sobre eles cole isso:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
			// Load PvP Properties file (if exists)
			try
			{
			   Properties TryZSettings = new Properties();
			   is = new FileInputStream(new File(TryZ_CONFIG_FILE));
			   TryZSettings.load(is);

						   	/** Here You can put Your configs (look at "Your Own Config") This is sample:

								ALLOW_CREATE_LVL = Boolean.parseBoolean(TryZSettings.getProperty("CostumStartLvl", "False"));

								   */
							  

			}
			catch (Exception e)
			{
			   e.printStackTrace();
			   throw new Error("Failed to Load " + TryZ_CONFIGURATION_FILE + " File.");
			}
• Feito, agora seu arquivo personalizado de configuração foi criado! Mas as linhas marcadas em verde são apenas como exemplo!

---------------------------------------------------------------------------------------------------------------------

Inovando os enchants:

Geralmente, um enchant bem sucedido nos dá +1 nos itens. Como mudar isso? é otimo para servidores de PVP que tem um enchant max ALTO.

- Abra esta pasta: \ Java \ net sf \ \ l2j \ gameserver \ clientpackets

- Agora, localize o arquivo: RequestEnchantItem.java

- Encontre estas linhas:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
				else
				{
					sm = new SystemMessage(SystemMessageId.S1_S2_SUCCESSFULLY_ENCHANTED);
					sm.addNumber(item.getEnchantLevel());
					sm.addItemName(item.getItemId());
					activeChar.sendPacket(sm);
				}
				item.setEnchantLevel(item.getEnchantLevel()+1);
				item.updateDatabase();
			}
		}
- Agora apenas modifique esta linha:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
item.setEnchantLevel(item.getEnchantLevel()+1);

- Salve este arquivo e é isso! Agora compile seu servidor. E Pronto.

---------------------------------------------------------------------------------------------------------------------

Novos Comandos:

• Primeiro você tem que saber alguma coisa sobre comandos em L2J:

Mas você tem que saber os seus contras (Você tem que editar osystem) Assim a melhor maneira é criar um comando como. Comando

• Você pode criar esses comandos, as básicas são:

- Voicedcommandhandlers (Comandos para todos)
- Admincommandhandlers (Comandos para Admins / Gm 's)

• Se você quer criar novo comando (por exemplo voicedcommand, Você tem que criar novos arquivos java chamado como seu comando. Por exemplo, se o comando for: Online, o seu novo arquivo java deve ser chamado online.java)

• Então você tem que registrar o seu novo comando. Mas lembre-se que nas versões mais recentes dos emuladores L2J foi transferido para DataPack, então você tem que adicioná-los em data / scripts / handlers / e registrá-los em arquivo MasterHandlers . Mas se você estiver usando por exemplo client Interlude, Você tem que adicioná-los no core (e, em seguida, compilação) e também registrá-los no core.

---------------------------------------------------------------------------------------------------------------------

Códigos de documentação

• Ok, acho que você tem que saber algumas coisas sobre o código de documentação

• E agora pouco uma explicação sobre os comentários (distingue dois tipos de comentários)

- Em primeiro lugar, estendendo-se para uma linha:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
// Custom Starting Level



- Em segundo lugar, estendendo-se sobre uma linha:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
/** Custom
Starting
Level */

• Outra coisa ESSENCIAL:

- Você tem que saber sobre uma ferramenta útil chamado javadoc. Esta ferramenta ler os comentários do código, resultado do programa é um arquivo no formato HTML

- Também você pode colocar em seu arquivo html java (para javadoc) Seu html para javadoc deve ser contido assim:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
/**
 * <ol>
 * <li>Something
 * <li>Again
 * <li>Once Again
 * </ol>
 */
• Agora vamos dar uma olhada para "documentario tags" Por exemplo:

@ version - Informações sobre a versão
@ autor - informações sobre o autor
@ param - parâmetro desctription

• Provavelmente você já viu quando alguém usa algo parecido com isso no início do código:

Código: [Somente Usuários Registrados Podem Visualizar os Links Desta PáginaClique aqui para se Registrar]
/**
 *
 * @author TryZ
 *
 */


@Créditos: Matim [Tutorial]
Tryz [Tradução e post]


obs: Nao vi nenhum tutorial em relação a isso aqui no forum , caso ja tenha , perdão .

Por favor agradece ai se o tutorial serviu de alguma coisa pra vocês :D

AnthonyNichols~ está offline  
Os Seguintes 27 Usuários disseram Obrigado(a) para AnthonyNichols~ por gostarem deste post :
Mostrar/Ocultar lista dos que agradeceram

Links Patrocinados