Jump to content

Compile Server - Set Up - Make Online - Add Java Codes - Client Modify 19/4/2016


Recommended Posts

316t73p.png

 

Welcome to my guide on "how to create a L2 server". Took me hours to record and i hope people can easily follow.
but i'll continue updating here.
 
All 3 videos are about 45 minutes and in the description programs such as 
(Mysql - Navicat(full) - SVN - Eclipse - File editor e.t.c) are included.
 
You can ask any question you have freely. Questions like "can you make me an npc?" will be ignored.
 
1) How to create a Lineage Server:
Part 1: Compile pack
Part 2: Set up - Installation
Part 3: Log in - Admin
 
2) Adding Java Code in Project (Eclipse):
How to add JAVA codes in eclipse part 1 (code by WYATT) MultiFunctionZone shared
Part 1: Adding Java code
 
### Eclipse Workspace Patch 1.0
#P Core_Freya
Index: java/com/l2jserver/gameserver/model/actor/L2Character.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/L2Character.java  (revision 5631)
+++ java/com/l2jserver/gameserver/model/actor/L2Character.java  (working copy)
@@ -205,8 +205,9 @@
        public static final byte ZONE_ALTERED = 19;
        public static final byte ZONE_NOBOOKMARK = 20;
        public static final byte ZONE_NOITEMDROP = 21;
+      public static final byte ZONE_MULTIFUNCTION = 22;
     
-      private final byte[] _zones = new byte[22];
+      private final byte[] _zones = new byte[23];
        protected byte _zoneValidateCounter = 4;
     
        private L2Character _debugger = null;
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java        (revision 5631)
+++ java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java        (working copy)
@@ -170,6 +170,7 @@
import com.l2jserver.gameserver.model.quest.QuestState;
import com.l2jserver.gameserver.model.quest.State;
import com.l2jserver.gameserver.model.zone.type.L2BossZone;
+import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
import com.l2jserver.gameserver.network.L2GameClient;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
@@ -5684,6 +5685,7 @@
                        // Add karma to attacker and increase its PK counter
                        setPvpKills(getPvpKills() + 1);
                     
+                      L2MultiFunctionZone.givereward(this);
                        // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
                        sendPacket(new UserInfo(this));
                        sendPacket(new ExBrExtraUserInfo(this));
Index: dist/game/config/MultiFunctionZone.properties
===================================================================
--- dist/game/config/MultiFunctionZone.properties      (revision 0)
+++ dist/game/config/MultiFunctionZone.properties      (revision 0)
@@ -0,0 +1,60 @@
+# ---------------------------------------------------------------------------
+# MultiFunctionZone - custom addon for your server
+# ---------------------------------------------------------------------------
+# This option will turn on PvP flag to all people when entering to the zone
+EnablePvP = True
+
+# If set to false, zone will be no-restart zone
+NoRestartZone = False
+
+# If set to false, zone will be no-logout zone
+NoLogoutZone = False
+
+# If set to false, zone will be no-store zone
+NoStoreZone = False
+
+# Give noblesse after revive?
+ReviveNoblesse = False
+
+# Heal after revive?
+ReviveHeal = False
+
+# Delay, in seconds, to wait before revive
+# 0 to disable
+ReviveDelay = 10
+
+# Set the spawn points where players will be teleported on revive, if enabled
+# example:150111,144740,-12248;143665,144418,-12022;144443,147685,-12139
+SpawnLoc = 150111,144740,-12248;143665,144418,-12022;144443,147685,-12139
+
+# Random respawn radius
+RespawnRadius = 500
+
+# If set to true, players will take noblesse blessing when entering
+GiveNoblesse = True
+
+# Remove buffs when entering to the zone
+RemoveBuffs = False
+
+# Remove pets when entering to the zone
+RemovePets = False
+
+# Special rewards when hunting inside this zone
+# example: 57,100000;14720,1
+Rewards = 57,100000;14720,1
+
+# List of Items(id's) that won't be usable inside this area and also will be unequiped when entering
+# (armor, weapons, scrolls, potions, etc), example: 728,7575, 6383, 1538
+Items = 728,7575,6383,1538
+
+# List of Grades that won't be usable inside this area and also will be unequiped when entering
+# example: D,C,B,A,S,S80,S84
+Grades = C,B,A
+
+# Items with this enchant or more won't be usable inside this area and also will be unequiped when entering
+# 0 to disable
+Enchant = 0
+
+# Players with one of that classes won't be able to enter to the zone
+# example: 93,85,12
+Classes = 92
\ No newline at end of file
Index: java/com/l2jserver/gameserver/network/clientpackets/UseItem.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/UseItem.java    (revision 5631)
+++ java/com/l2jserver/gameserver/network/clientpackets/UseItem.java    (working copy)
@@ -23,9 +23,11 @@
import com.l2jserver.gameserver.handler.ItemHandler;
import com.l2jserver.gameserver.instancemanager.FortSiegeManager;
import com.l2jserver.gameserver.model.L2ItemInstance;
+import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.base.Race;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
+import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
import com.l2jserver.gameserver.network.serverpackets.ItemList;
@@ -113,6 +115,12 @@
                if (item == null)
                        return;
             
+              if(getClient().getActiveChar().isInsideZone(L2Character.ZONE_MULTIFUNCTION) && !L2MultiFunctionZone.checkItem(item))
+              {
+                      getClient().getActiveChar().sendMessage("You cannot use "+item.getName()+" inside this zone.");
+                      return;
+              }
+             
                if (item.getItem().getType2() == L2Item.TYPE2_QUEST)
                {
                        SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.CANNOT_USE_QUEST_ITEMS);
Index: java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java    (revision 5631)
+++ java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java    (working copy)
@@ -17,12 +17,13 @@
import java.util.logging.Level;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
-
import com.l2jserver.Config;
import com.l2jserver.gameserver.SevenSignsFestival;
import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
import com.l2jserver.gameserver.model.L2Party;
+import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
import com.l2jserver.gameserver.network.L2GameClient;
import com.l2jserver.gameserver.network.L2GameClient.GameClientState;
import com.l2jserver.gameserver.network.SystemMessageId;
@@ -87,6 +88,13 @@
                        return;
                }
             
+              if(player.isInsideZone(L2Character.ZONE_MULTIFUNCTION) && !L2MultiFunctionZone.restart_zone)
+              {
+                      player.sendMessage("You cannot restart while inside a Multifunction zone.");
+                      sendPacket(RestartResponse.valueOf(false));
+                      return;
+              }
+             
                // Prevent player from restarting if they are a festival participant
                // and it is in progress, otherwise notify party members that the player
                // is not longer a participant.
Index: java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java
===================================================================
--- java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java        (revision 5631)
+++ java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java        (working copy)
@@ -43,7 +43,7 @@
{
        protected static final Logger _log = Logger.getLogger(ItemContainer.class.getName());
     
-      protected final List<L2ItemInstance> _items;
+      public final List<L2ItemInstance> _items;
     
        protected ItemContainer()
        {
Index: java/com/l2jserver/gameserver/model/zone/type/L2MultiFunctionZone.java
===================================================================
--- java/com/l2jserver/gameserver/model/zone/type/L2MultiFunctionZone.java      (revision 0)
+++ java/com/l2jserver/gameserver/model/zone/type/L2MultiFunctionZone.java      (revision 0)
@@ -0,0 +1,345 @@
+/*
+ * 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/>.
+ */
+/*
+ * 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.zone.type;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Properties;
+import javolution.util.FastList;
+import com.l2jserver.gameserver.ThreadPoolManager;
+import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.model.L2ItemInstance;
+import com.l2jserver.gameserver.model.L2Skill;
+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.itemcontainer.PcInventory;
+import com.l2jserver.gameserver.model.zone.L2SpawnZone;
+import com.l2jserver.util.Rnd;
+
+/**
+ *
+ * @author Wyatt
+ * @version 1.3
+ *
+ */
+
+public class L2MultiFunctionZone extends L2SpawnZone
+{
+     
+      public L2MultiFunctionZone(int id)
+      {
+              super(id);
+              loadConfigs();
+      }
+     
+      public static boolean pvp_enabled, restart_zone, store_zone, logout_zone, revive_noblesse, revive_heal, revive, remove_buffs, remove_pets, give_noblesse;
+      static int radius, enchant, revive_delay;
+      static int[][] spawn_loc;
+      L2Skill noblesse = SkillTable.getInstance().getInfo(1323, 1);
+      private static List<String> items = new FastList<String>();
+      private static List<String> grades = new FastList<String>(), classes = new FastList<String>();
+      public static List<int[]> rewards;
+      static String[] gradeNames = {"","D","C","B","A","S","S80","S84"};
+     
+      @Override
+      protected void onEnter(L2Character character)
+      {
+              character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, true);
+              character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, true);
+              if(!store_zone)
+                      character.setInsideZone(L2Character.ZONE_NOSTORE, true);
+             
+              if (character instanceof L2PcInstance)
+              {
+                      L2PcInstance activeChar = ((L2PcInstance) character);
+                      if(classes != null && classes.contains(""+activeChar.getClassId().getId()))
+                      {
+                              activeChar.teleToLocation(83597,147888,-3405);
+                              activeChar.sendMessage("Your class is not allowed in the MultiFunction zone.");
+                              return;
+                      }
+                     
+                      for(L2ItemInstance o : activeChar.getInventory()._items)
+                      {
+                              if(o.isEquipable() && o.isEquipped() && !checkItem(o))
+                              {
+                                      int slot = activeChar.getInventory().getSlotFromItem(o);
+                                      activeChar.getInventory().unEquipItemInBodySlot(slot);
+                                      activeChar.sendMessage(o.getName()+" unequiped because is not allowed inside this zone.");
+                              }
+                      }
+                      activeChar.sendMessage("You entered in a MultiFunction zone.");
+                      clear(activeChar);
+                      if(give_noblesse)
+                      noblesse.getEffects(activeChar, activeChar); 
+                      if(pvp_enabled && activeChar.getPvpFlag() == 0)
+                              activeChar.updatePvPFlag(1);                 
+              }
+      }
+     
+      @Override
+      protected void onExit(L2Character character)
+      {
+              character.setInsideZone(L2Character.ZONE_NOSUMMONFRIEND, false);
+              character.setInsideZone(L2Character.ZONE_MULTIFUNCTION, false);
+              if(!store_zone)
+                      character.setInsideZone(L2Character.ZONE_NOSTORE, false);
+             
+              if (character instanceof L2PcInstance)
+              {
+                      L2PcInstance activeChar = ((L2PcInstance) character);
+                      activeChar.sendMessage("You left from a MultiFunction zone.");
+                     
+                      if(pvp_enabled)
+                              activeChar.stopPvPFlag(); 
+              }
+      }
+     
+      @Override
+      public void onDieInside(final L2Character character)
+      {
+              if (character instanceof L2PcInstance)
+          {
+                      final L2PcInstance activeChar = ((L2PcInstance) character);
+                      if(revive)
+                      {
+                              ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+                              {
+                              @Override
+                                      public void run()
+                                      {
+                                      activeChar.doRevive();
+                                      heal(activeChar);
+                                      int[] loc = spawn_loc[Rnd.get(spawn_loc.length)];
+                                      activeChar.teleToLocation(loc[0]+Rnd.get(-radius,radius), loc[1]+Rnd.get(-radius,radius), loc[2]);
+                                      }
+                              },revive_delay*1000); 
+                      }
+          }
+      }
+
+      @Override
+      public void onReviveInside(L2Character character)
+      {     
+              if (character instanceof L2PcInstance)
+          {
+                      L2PcInstance activeChar = ((L2PcInstance) character);
+                      if(revive_noblesse)
+                              noblesse.getEffects(activeChar, activeChar); 
+                      if(revive_heal)
+                              heal(activeChar);
+          }
+      }
+     
+      private void clear (L2PcInstance player)
+      {
+              if(remove_buffs)
+              {
+                      player.stopAllEffectsExceptThoseThatLastThroughDeath();
+                      if(remove_pets)
+                      {
+                              L2Summon pet = player.getPet();
+                              if(pet!= null)
+                              {
+                                      pet.stopAllEffectsExceptThoseThatLastThroughDeath();
+                                      pet.unSummon(player); 
+                              }     
+                      }
+              }
+              else
+              {
+                      if(remove_pets)
+                      {
+                              L2Summon pet = player.getPet();
+                              if(pet!= null)
+                              {
+                                      pet.unSummon(player); 
+                              }     
+                      }
+              }
+      }
+     
+      static void heal(L2PcInstance activeChar)
+      {
+              activeChar.setCurrentHp(activeChar.getMaxHp());
+              activeChar.setCurrentCp(activeChar.getMaxCp());
+              activeChar.setCurrentMp(activeChar.getMaxMp());
+      }
+     
+      public static void givereward(L2PcInstance player)
+      {
+              if(player.isInsideZone(L2Character.ZONE_MULTIFUNCTION))
+              {
+                      for (int[] reward : rewards)
+                      {
+                              PcInventory inv = player.getInventory();
+                              inv.addItem("Custom Reward", reward[0], reward[1], player,  player); 
+                      }
+              }
+      }
+     
+      public static boolean checkItem (L2ItemInstance item)
+      {
+              int o = item.getItem().getCrystalType();
+              int e = item.getEnchantLevel();
+             
+              if(enchant != 0 && e >= enchant)
+              {
+                      return false;
+              }
+             
+              if(grades.contains(gradeNames[o]))
+                      return false;
+
+              if(items != null && items.contains(""+item.getItemId()))
+                      return false;
+              return true;
+      }
+     
+      private static void loadConfigs()
+      {
+              try
+              {
+                      Properties prop = new Properties();
+                      prop.load(new FileInputStream(new File("./config/MultiFunctionZone.properties")));
+                      pvp_enabled = Boolean.parseBoolean(prop.getProperty("EnablePvP", "False"));
+                      spawn_loc = parseItemsList(prop.getProperty("SpawnLoc", "150111,144740,-12248"));
+                      revive_delay = Integer.parseInt(prop.getProperty("ReviveDelay", "10"));
+                      if(revive_delay != 0)
+                      {
+                              revive = true;
+                      }
+                      give_noblesse = Boolean.parseBoolean(prop.getProperty("GiveNoblesse", "False"));
+                      String[] propertySplit = prop.getProperty("Items", "").split(",");
+                      if (propertySplit.length != 0)
+                      {
+                              for(String i : propertySplit)
+                              {
+                                      items.add(i);
+                              }
+                      }
+                      propertySplit = prop.getProperty("Grades", "").split(",");
+                      if (propertySplit.length != 0)
+                      {
+                              for(String i : propertySplit)
+                              {
+                                      if(i.equals("D") || i.equals("C") || i.equals("B") || i.equals("A") || i.equals("S") || i.equals("S80") || i.equals("S84"))
+                                              grades.add(i);
+                              }
+                      }
+                      propertySplit = prop.getProperty("Classes", "").split(",");
+                      if (propertySplit.length != 0)
+                      {
+                              for(String i : propertySplit)
+                              {
+                                      classes.add(i);
+                              }
+                      }
+                      radius =  Integer.parseInt(prop.getProperty("RespawnRadius", "500"));
+                      enchant =  Integer.parseInt(prop.getProperty("Enchant", "0"));
+                      remove_buffs = Boolean.parseBoolean(prop.getProperty("RemoveBuffs", "False"));
+                      remove_pets = Boolean.parseBoolean(prop.getProperty("RemovePets", "False"));
+                      restart_zone = Boolean.parseBoolean(prop.getProperty("NoRestartZone", "False"));
+                      store_zone = Boolean.parseBoolean(prop.getProperty("NoStoreZone", "False"));
+                      logout_zone = Boolean.parseBoolean(prop.getProperty("NoLogoutZone", "False"));
+                      revive_noblesse = Boolean.parseBoolean(prop.getProperty("ReviveNoblesse", "False"));
+                      revive_heal = Boolean.parseBoolean(prop.getProperty("ReviveHeal", "False"));
+                      rewards = new ArrayList<int[]>();
+                      propertySplit = prop.getProperty("Rewards", "57,100000").split(";");
+                      for (String reward : propertySplit)
+                      {
+                              String[] rewardSplit = reward.split(",");
+                              if (rewardSplit.length == 2)
+                              {
+                                      try
+                                      {
+                                              rewards.add(new int[]{Integer.parseInt(rewardSplit[0]), Integer.parseInt(rewardSplit[1])});
+                                      }
+                                      catch (NumberFormatException nfe)
+                                      {
+                                      }
+                              }
+                      }
+              }
+              catch(Exception e)
+              {
+                      e.printStackTrace();
+              }
+      }     
+     
+      private static int[][] parseItemsList(String line)
+      {
+              final String[] propertySplit = line.split(";");
+              if (propertySplit.length == 0)
+                      return null;
+
+              int i = 0;
+              String[] valueSplit;
+              final int[][] result = new int[propertySplit.length][];
+              for (String value : propertySplit)
+              {
+                      valueSplit = value.split(",");
+                      if (valueSplit.length != 3)
+                      {
+                              return null;
+                      }
+
+                      result[i] = new int[3];
+                      try
+                      {
+                              result[i][0] = Integer.parseInt(valueSplit[0]);
+                      }
+                      catch (NumberFormatException e)
+                      {
+                              return null;
+                      }
+                      try
+                      {
+                              result[i][1] = Integer.parseInt(valueSplit[1]);
+                      }
+                      catch (NumberFormatException e)
+                      {
+                              return null;
+                      }
+                      try
+                      {
+                              result[i][2] = Integer.parseInt(valueSplit[2]);
+                      }
+                      catch (NumberFormatException e)
+                      {
+                              return null;
+                      }
+                      i++;
+              }
+              return result;
+      }
+}
\ No newline at end of file
Index: java/com/l2jserver/gameserver/network/serverpackets/Die.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/Die.java        (revision 5631)
+++ java/com/l2jserver/gameserver/network/serverpackets/Die.java        (working copy)
@@ -27,6 +27,7 @@
import com.l2jserver.gameserver.model.entity.Castle;
import com.l2jserver.gameserver.model.entity.Fort;
import com.l2jserver.gameserver.model.entity.TvTEvent;
+import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;

/**
* sample
@@ -62,7 +63,7 @@
                     
                }
                _charObjId = cha.getObjectId();
-              _canTeleport = !((cha instanceof L2PcInstance && TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(_charObjId)) || cha.isPendingRevive());
+              _canTeleport = !((cha instanceof L2PcInstance && TvTEvent.isStarted() && TvTEvent.isPlayerParticipant(_charObjId)) || cha.isPendingRevive() || (cha.isInsideZone(L2Character.ZONE_MULTIFUNCTION) && L2MultiFunctionZone.revive));
                if (cha instanceof L2Attackable)
                        _sweepable = ((L2Attackable)cha).isSweepActive();
             
Index: java/com/l2jserver/gameserver/network/clientpackets/Logout.java
===================================================================
--- java/com/l2jserver/gameserver/network/clientpackets/Logout.java    (revision 5631)
+++ java/com/l2jserver/gameserver/network/clientpackets/Logout.java    (working copy)
@@ -21,7 +21,9 @@
import com.l2jserver.Config;
import com.l2jserver.gameserver.SevenSignsFestival;
import com.l2jserver.gameserver.model.L2Party;
+import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.model.zone.type.L2MultiFunctionZone;
import com.l2jserver.gameserver.network.SystemMessageId;
import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -83,6 +85,13 @@
                        return;
                }
             
+              if(player.isInsideZone(L2Character.ZONE_MULTIFUNCTION) && !L2MultiFunctionZone.logout_zone)
+              {
+                      player.sendMessage("You cannot logout while inside a Multifunction zone.");
+                      player.sendPacket(ActionFailed.STATIC_PACKET);
+                      return;
+              }
+             
                // Prevent player from logging out if they are a festival participant
                // and it is in progress, otherwise notify party members that the player
                // is not longer a participant.

### Eclipse Workspace Patch 1.0
#P L2J_DataPack
Index: dist/game/data/zones/peace_zones.xml
===================================================================
--- dist/game/data/zones/peace_zones.xml        (revision 9174)
+++ dist/game/data/zones/peace_zones.xml        (working copy)
@@ -978,4 +978,10 @@
                <node X="-113768" Y="-150965" />
                <node X="-115424" Y="-150965" />
        </zone>
+      <zone name="Custom" type="MultiFunctionZone" shape="NPoly" minZ="-15000" maxZ="-10000">
+              <node X="130000" Y="160000" />
+              <node X="130000" Y="130000" />
+              <node X="160000" Y="130000" />
+              <node X="160000" Y="160000" />
+      </zone>
</list>
\ No newline at end of file

(Ps code is adopted for L2J pack, any other pack might mislead the with the structure of this code).

 

Part 2: Adding Java code

https://www.youtube.com/watch?v=3-wS2DnoJ5M#!

 
 
Soon i'll update those tutorials for GIT and i'll add some more.
*Please do not re-share my tutorials as far as i saw in other forums from random people who no give credits.. (ElitePvPers e.t.c)
Edited by AccessDenied
  • Upvote 4
Link to comment
Share on other sites

Nice work. One suggestion is about Navicat. Navicat is not free and you need to pay or download illegal from torrent sites. Don't use it! Use HeidiSQL instead,it's free and opensource project!

Website: http://www.heidisql.com/

 

I highly recommended to add this alternative option in your main post.

 

Thank you!

Link to comment
Share on other sites

Nice work. One suggestion is about Navicat. Navicat is not free and you need to pay or download illegal from torrent sites. Don't use it! Use HeidiSQL instead,it's free and opensource project!

Website: http://www.heidisql.com/

 

I highly recommended to add this alternative option in your main post.

 

Thank you!

Thanks, well i'll replace those 3 videos with an update ill probably make this weekend using GIT and Gradle and i'll consider of switch to Heidi even tho

let's admit it.. there is not even 1 person who buy things or use open sources when he can download pirated software, wont bother him because is ilegal.

 

When i find time, i'll update with more tutorials and imma make a massive "how to" so people wont search in different forums or categories or youtube.

Client, server, quests, modify, add, npc's, everything in 1. 

Also imma solve - answer into small codes - problems ..

 

I had like 550-600+ people in 8 months added me for things like this.. my skype is full and i daily delete 

 

Ps. ill keep those videos alive cause as far people told me that they are the best tutorials ever made, short, easy, cover all poblems and simple (as youtube comments say).

 

 

Or you know...use mysql workbench which is pretty damn good.

Yes i saw that but i dont want introduce new things make it harder for them elfo Navicat is 2 click and easy interface for sql

Edited by AccessDenied
Link to comment
Share on other sites

Yes i saw that but i dont want introduce new things make it harder for them elfo Navicat is 2 click and easy interface for sql

And paid to use too.

Link to comment
Share on other sites

And paid to use too.

Paid is a term that tend to fade out in our days and you know that...

 

I'm gonna give you +1 for the effort. :lol:

Tnx honey, next weekend i'll add more tuts.

Link to comment
Share on other sites

1 Question.

 

I had check-out svn from acis free source, had some changes and i want to have trac like other project to know and remember what i changed. I created svn on www.projectlocker.com. created svn space.

 

now how to upload files on that site?

Link to comment
Share on other sites

1 Question.

 

I had check-out svn from acis free source, had some changes and i want to have trac like other project to know and remember what i changed. I created svn on www.projectlocker.com. created svn space.

 

now how to upload files on that site?

Just use https://github.com and follow informations..

Link to comment
Share on other sites

  • 2 weeks later...

ok followed this tutorial, and i'v downloaded this Eclips EE.. so i follow the steps i found this guys chose from Window in Eclips program (( Show window >> Other >> SVN )) 


I CAN"T FOUND SVN >_<  check the photo 


post-184768-0-90160200-1463163027_thumb.jpg

Edited by thelol
Link to comment
Share on other sites

 

ok followed this tutorial, and i'v downloaded this Eclips EE.. so i follow the steps i found this guys chose from Window in Eclips program (( Show window >> Other >> SVN )) 

I CAN"T FOUND SVN >_<  check the photo 

 

Before you post something why u no just read the description or the 50000 comments i added on the video where i explain how u get the SVN into eclipse?

Stop being lazy people... 5 bubbles + description + comments yet u post where the SVN is...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Posts

    • WTB Site Developer services.
    • @TZANEEN BUY UNIVERSAL SSD CHEMICAL SOLUTION  +27833928661 in South Africa, Gauteng, KwaZulu-Natal, Limpopo, Free State, Mpumalanga, North West, Western Cape, Eastern Cape, Northern Cape, Benoni, Boksburg, Brakpan, Carletonville, Germiston, Johannesburg, Krugersdorp, Mafikeng, Pretoria, Randburg, Randfontein, Roodepoort, Soweto, Springs, Vanderbijlpark, Vereeniging, Durban,  +27833928661Empangeni, Ladysmith, Newcastle, Pietermaritzburg, Pinetown, Ulundi, Umlazi, Bethlehem, Bloemfontein, Jagersfontein, Kroonstad, Odendaalsrus, Parys, Phuthaditjhaba, Sasolburg, Virginia, Welkom, Giyani, Lebowakgomo, Musina, Phalaborwa, Polokwane, Seshego, Sibasa, Emalahleni, Nelspruit, Secunda, Standerton, Klerksdorp, Mahikeng, Mmabatho, Potchefstroom, Rustenburg, Bellville, Cape Town, Constantia, George, Hopefield, Oudtshoorn, Paarl, Simon’s Town, Stellenbosch, Swellendam, Worcester, Alice, Butterworth, East London, Graaff-Reinet, Grahamstown, King William’s Town, Mthatha, Port Elizabeth, Queenstown, Uitenhage, Zwelitsha. +27833928661 Call For Ssd Chemical Solution for Cleaning All Notes +27833928661. Please inform us immediately on Email: Kennroger77@gmail.com Or Call: +27833928661. https://Kennroger7.Blogspot.com/website https://Kennroger7.Blogspot.com/techniciankenn https://Kennroger7.blogspot.com/   We Clean all types of Currencies call  +27833928661 Ssd Solution Chemical for Cleaning Black Money Notes Call +27833928661 Ssd Solution Used to Clean all type of Blackened +27833928661, Tainted and Defaced Bank Notes  +27833928661. We Sell Ssd Chemical Solution Used to Clean All type of Black Money and any Color Currency, Stain and Defaced Bank Notes with any others equipment being bad. Our technicians are highly qualified and are always ready to handle the cleaning perfectly. Our chemical is 100% Pure. Automatic Ssd Solution for Sale +27833928661 Rustenburg, Mafikeng, Polokwane Durban/east London, Pretoria, Johannesburg, Mpumalanga. Ssd chemical Solution for Sale in Johannesburg  +27833928661 in Zimbabwe, Mozambique, Angola, Namibia, Botswana, Lesotho and Swaziland Call and Buy Ssd Chemical Solution for Defaced Banknotes +27833928661 in Mozambique, South Africa, Lesotho, Swaziland, Namibia, Angola, Botswana, Mauritius, Zambia, Zimbabwe, Mauritania, Mauritius, Congo Call For 100% Pure Ssd Chemical Solution +27833928661 in Finland and USA.   Ssd Chemical Solution for all Defaced Bank Notes in Bloemfontein +27833928661 in Johannesburg, Cape town, Polokwane, Rustenburg, Kimberley, Durban, Pietermaritzburg, Klerksdorp, Mafikeng, Belgium, Honduras, Brazil, Argentina.  +27833928661 We are Specialized in Chemistry for anti-breeze Bank Notes. We also do Chemicals Melting and Recovering of all type of bad money from black to white Call +27833928661. We also sale chemicals like tourmaline,  +27833928661 Ssd Chemical solution and many other activation powder. About Ssd Solution for cleaning black money chemical and allied product incorporated is a major manufacturer of industrial and pharmaceutical products with key specialization in the production of ssd automatic solution used in the cleaning of black money and defaced money and stained bank notes with anti -breeze quality. The ssd solution in it's full range is the best chemical in the market for cleaning anti breeze bank notes, defaced currency and marked notes. Others for damaged notes. +27833928661 Please inform us immediately on Email: Kennroger77@gmail.com or Call: +27833928661. https://Kennroger7.Blogspot.com/website https://Kennroger7.Blogspot.com/techniciankenn https://Kennroger7.blogspot.com/
    • @ (3 IN 1, WORKING 100%) SSD CHEMICAL SOLUTIONS +27833928661 AND ACTIVATION POWDER FOR CLEANING OF BLACK NOTES @BUY SSD CHEMICAL SOLUTIONS ON GOOD PRICE +27833928661, +27833928661 @ CLEANING BLACK NOTES WITH SSD CHEMICALUTUTIONS @BEST SUPPLIERS OF SSD CHEMICAL SOLUTIONS +27833928661 IN Qatar, New York, Limpopo, London, Venezuela, Chile, Sweden, Denmark, Rwanda, Oman ,, Dubai, Poland New Castle, Namibia, Botswana, Mozambique, South Africa, Limpo¬po, JORDAN, Turkey, Belgium, Saudi Arabia, Australia, Malaysia, to Johannesbu Zambia, Swaziland, Madagascar, Zimbabwe, Lesotho, Uganda, rg, Lebanon, Berhrain USA, California, Dallas, England, German, Spain, Jamaica, Brazil, Germany, Austria, Vancouver, Denmark, Hong Kong, China ,, Pretoria, Durban, Australia, Wales, France, Cairo, Namibia, Botswana, China, Norway, Sweden, Capet own, Tanzania, Northern Cape, Canada ,, Soshanguve, Pietermaritzburg Pinetown, Vaal, Polokwane Pretoria Randburg Roodepoort Rustenburg Sebokeng Soweto Springbok Stellenbosch Thohoyandou Umlazi Upington Vanderbijlpark Vereeniging Welkom Tembisa Kempton Park Port Elizabeth Bellville Boksburg Benoni Bloemfontein Cape Town Centurion Durban East London George Empangeni Katlehong Germiston Johannesburg Port Elizabeth Khayelitsha Kimberley Klerksdorp Mamelodi Mitchells Plain Mthatha Nelspruit Newcastle Witbank Eastern cape, Free State Gauteng KwaZulu-Natal Limpopo Mpumalanga Do you have black currency in form of Dollars, Pounds or Euros or any other currency? I have the most powerful and Universal cleaning chemical you are looking for. I sell SSD automatic solution, Vetrol paste 0.2A and so many others. I also have a variety of Powders needed when doing the large cleanings such as Activation powder. We specialize in cleaning all types of defaced notes, black notes, anti-breeze bank notes, stamp coated and stained currency. We melt and re-activate frozen chemicals and offer 100% cleaning for bills like dollar, euro, pounds, RANDS and transferring of colors from used note to new white bills. We offer machines for large cleaning and also deliver products to any location desired by buyers. Laboratory staff are available to demonstrate to clients how the work is done. Are you looking for: — call+27833928661 SSD Chemical Solution Chemical Solution for Cleaning Black Money call+27833928661 SSD Chemical Company SSD Chemical Solution for Cleaning Black Money SSD Preserving Company SSD Chemical Solution for Cleaning Black Money Activation Powder SSD Chemical Solution for Cleaning Black notes Active Powder Activation Powder for Cleaning Black Notes Black Money Cleaning Clean Black Money Best SSD Solution Clean Black Notes Cleaning Black Notes Cleaning Black Money PLEASE NOTE: WE ONLY DEAL IN HIGH QUALITY SSD CHEMICALS SOLUTION FOR CLEANING BLACK MONEY We are manufacturers and sellers of all sort of chemicals like SUPER AUTOMATIC SSD SOLUTION ZWV8 MODEL ACTIVATION POWDER AND REACTIVATION POWDER, ANTI AIR POWDER, MERCURY POWDER, AUTOMATED MONEY DEVELOPER MACHINES CONGEAL CHEMICAL MELTING EQUIPMENT, TEMPERATURE CONTROLLERS AND AUTOMATIC CLEANING MACHINE. WE ARE SELLING SSD CHEMICAL SOLUTION FOR CLEANING BLACK MONEY AND POWDER CALL+27833928661 purchase Best SSD Solution Clean Black Notes Dollars WE ALSO SELL CHEMICALS LIKE SSD AUTOMATIC SOLUTION FORM CLEANING BLACK DOLLARS CURRENCIES We clean all black and green money and stamped money Infinity labs pty (since 2000) *: We can help you clean your money, (+27833928661) *, we supply a high quality of the ssd solution with machi * ne and it comes with a full package of instructions and accessories. It is the ultimate anti- * breeze solution used in cleaning defaced currency. It can be referred to as black dollar etc… *. or bank stained currency. PRODUCTS AVAILABLE: * SSD SOLUTION SSD Supreme Solution SSD universal solution SSD Tourmaline solution SSD SOLUTION PK 58 SSD Topix solution SSD Castro X Oxide solution D6 SSD universal Solution D7 SSD SOLUTION PK 58 SSD MECURY DIOSINE AUTOMATIC SOLUTION SSD NSERVATION, ACTIVATION AND RE-ACTIVATION, PARACIENT POWDER, VECTROL PASTE, ZUTA S4, CASTROX OXIDE AUTOMATED MONEY DEVELOPER MACHINES CONGEAL CHEMICAL MELTING EQUIPMENTS * TEMPERATURE CONTROLLERS Our agent will meet with you in any part of the world. CALL OR WATSUPP US @+27833928661 Email: Kennroger77@gmail.com
    • World’s Best Technician for Supplying Universal Ssd Chemical Solution in Limpopo,Sasolburg,Witbank,Standarton,Secunda,Middelburg,Vanderbijlpark,Johannesburg,Secunda,Cape Town,Burgersfort, Polokwane, Thohoyandou, phalaborwa, mokopane, bochum, +27833928661lebowakgomo, mankweng, Seshego, dendron, Giyani, Lephalale, musina,Alexandra +27833928661Johannesburg Lenasia Midrand Randburg+27833928661 Roodepoort Sandton Soweto Alberton Germiston Benoni Boksburg ,rakpan Daveyton,Duduza ,edenvale ,germiston Impumelelo Isando Katlehong Kempton Park KwaThema Nigel Reiger Park Springs Tembisa Thokoza Tsakane Vosloorus Wattville Atteridgaeville Centurion Hammanskraal Irene Mamelodi Pretoria Soshanguve Boipatong Bophelong Evaton Sebokeng Sharpeville, Vereeniging,Meyerton Heidelberg Ratanda Bronkhorstspruit Ekangala Kungwini Bronberg,Cullinan Refilwe,Zithobeni ,Carletonville,Khutsong Kagiso Kromdraai KrugersdorpMagaliesburg Muldersdrift Mohlaken,Randfontein Bekkersdal,testonaria Kimberley Upington Kuruman Sprinbok Kathu Ritchie Postmasburg,Bellville Bloemfontein.+27833928661 To purchase Best SSD Chemical Solution to Clean Black Notes Dollars.WE ALSO SALE +27833928661CHEMICALS LIKE SSD AUTOMATIC SOLUTION FORM CLEANING BLACK DOLLARS CURRENCIES. I hereby use this media to inform you, that our company can clean out black deface currency, (stained money) bank notes, We have all kinds of chemicals used for cleaning of black money or stained money in currencies such as U.S Dollars, Euro, Pound, and all local currencies, even if your defaced note is 25 years old. WE SALE CHEMICALS LIKE TOURMALINE, S.S.D. Chemical / Solution , CASTRO X OXIDE, A4 AND MANY Like ACTIVATION POWDER & SSD SOLUTION FOR CLEANING BLACK MONEY Chemical and Allied product incorporated is a major manufacturer of industrial and pharmaceutical products with key specialization in the production of S.S.D Automatic solution used in the cleaning of black money , defaced money and stained bank notes with anti-breeze quality. OTHERS FOR DAMAGED NOTES, BILLS LIKE USD,EURO, POUNDS, Contact Dr.Elvis+27833928661 OR Email Kennroger77@gmail.com for more Information…Chemical Solution in Limpopo,Sasolburg,Witbank,Standarton,Secunda,Middelburg,Vanderbijlpark,Johannesburg,Secunda,Cape Town,Burgersfort, Polokwane, Thohoyandou, phalaborwa, mokopane, bochum, lebowakgomo, mankweng, Seshego, dendron, Giyani, Lephalale, musina,Alexandra Johannesburg Lenasia Midrand Randburg Roodepoort Sandton Soweto Alberton Germiston Benoni Boksburg ,rakpan Daveyton,Duduza ,edenvale ,germiston Impumelelo Isando Katlehong Kempton Park KwaThema Nigel Reiger Park Springs Tembisa Thokoza Tsakane Vosloorus Wattville Atteridgaeville Centurion Hammanskraal Irene Mamelodi Pretoria Soshanguve Boipatong Bophelong Evaton Sebokeng Sharpeville, Vereeniging,Meyerton Heidelberg Ratanda Bronkhorstspruit Ekangala Kungwini Bronberg,Cullinan Refilwe,Zithobeni ,Carletonville,Khutsong Kagiso Kromdraai KrugersdorpMagaliesburg Muldersdrift Mohlaken,Randfontein Bekkersdal,testonaria Kimberley Upington Kuruman Sprinbok Kathu Ritchie Postmasburg,Bellville Bloemfontein. To purchase Best SSD Chemical Solution to Clean Black Notes Dollars.WE ALSO SALE CHEMICALS LIKE SSD AUTOMATIC SOLUTION FORM CLEANING BLACK DOLLARS CURRENCIES. I hereby use this media to inform you, that our company can clean out black deface currency, (stained money) bank notes, We have all kinds of chemicals used for cleaning of black money or stained money in currencies such as U.S Dollars, Euro, Pound, and all local currencies, even if your defaced note is 25 years old. WE SALE CHEMICALS LIKE TOURMALINE, S.S.D. Chemical / Solution , CASTRO X OXIDE, A4 AND MANY Like ACTIVATION POWDER & SSD SOLUTION FOR CLEANING BLACK MONEY Chemical and Allied product incorporated is a major manufacturer of industrial and pharmaceutical products with key specialization in the production of S.S.D Automatic solution used in the cleaning of black money , defaced money and stained bank notes with anti-breeze quality. OTHERS FOR DAMAGED NOTES, BILLS LIKE USD,EURO, POUNDS, Contact Dr.Elvis+27833928661 OR Email Kennroger77@gmail.com for more Information… in Limpopo,Sasolburg,Witbank,Standarton,Secunda,Middelburg,Vanderbijlpark,Johannesburg,Secunda,Cape Town,Burgersfort, Polokwane, Thohoyandou, phalaborwa, mokopane, bochum, lebowakgomo, mankweng, Seshego, dendron, Giyani, Lephalale, musina,Alexandra Johannesburg Lenasia Midrand Randburg Roodepoort Sandton Soweto Alberton Germiston Benoni Boksburg ,rakpan Daveyton,Duduza ,edenvale ,germiston Impumelelo Isando Katlehong Kempton Park KwaThema Nigel Reiger Park Springs Tembisa Thokoza Tsakane Vosloorus Wattville Atteridgaeville Centurion Hammanskraal Irene Mamelodi Pretoria Soshanguve Boipatong Bophelong Evaton Sebokeng Sharpeville, Vereeniging,Meyerton Heidelberg Ratanda Bronkhorstspruit Ekangala Kungwini Bronberg,Cullinan Refilwe,Zithobeni ,Carletonville,Khutsong Kagiso Kromdraai KrugersdorpMagaliesburg Muldersdrift Mohlaken,Randfontein +27833928661Bekkersdal,testonaria Kimberley Upington Kuruman Sprinbok Kathu Ritchie Postmasburg,Bellville Bloemfontein.+27833928661 To purchase Best SSD Chemical Solution to Clean Black Notes Dollars.WE ALSO SALE CHEMICALS LIKE SSD AUTOMATIC SOLUTION FORM CLEANING BLACK DOLLARS CURRENCIES. I hereby use this media to inform you, that our company can clean out black deface currency, +27833928661(stained money) bank notes, We have all kinds of chemicals used for cleaning of black money or stained money in currencies such as U.S Dollars, Euro, Pound, and all local currencies, even if your defaced note is 25 years old.+27833928661 WE SALE CHEMICALS LIKE TOURMALINE, S.S.D. Chemical / Solution , CASTRO X OXIDE, A4 AND MANY Like ACTIVATION POWDER & SSD SOLUTION FOR CLEANING BLACK MONEY Chemical and Allied product incorporated is a major manufacturer of industrial and pharmaceutical products with key specialization in the production of S.S.D Automatic solution used in the cleaning of black money , defaced money and stained bank notes with anti-breeze quality. OTHERS FOR DAMAGED NOTES, BILLS LIKE USD,EURO, POUNDS,+27833928661 Contact Dr.Elvis +27833928661 OR Email Kennroger77@gmail.com for more Information…
    • Cleaning black money +27833928661 with ssd chemical solution  +27 833928661  vanderbijlpark- nairobi, East London Tembisa ,Cape Town Durban Johannesburg Soweto Pretoria Port Elizabeth Pietermaritzburg Benoni Vereeniging Bloemfontein Boksburg Welkom Newcastle Krugersdorp Diepsloot Botshabelo Brakpan Witbank Richards Bay Vanderbijlpark Centurion Uitenhage Roodepoort Paarl Springs Carletonville Klerksdorp Midrand Westonaria Middelburg Vryheid Orkney Kimberley eMbalenhle Nigel Mpumalanga Bhisho Randfontein DR MBONYE has powerful lottery spells to help you win the lottery jackpot and make you rich beyond your wildest dreams I have used lottery spells and won in my personal capacity.Money Spells to eradicat Change your life For information CONTACTWhatsapp +27 833928661 EMAIL: kennrogger77@gmail.com cleaning black money with ssd chemical solution in Uganda,South sudan,Kemya,South Africa,Dubai,UAE,Kuwait,Tanzanai +27 833928661 Our vision to be the leading premier high-value and high security chemicals producer in the world and offering our services to everyone who knocks at our door step. SSD CHEMICAL SOLUTIONS LTD is uniquely positioned to consistently provide high-value solutions and world-changing chemicals and services to our clients. +27 833928661 WE ARE SPECIALIZED IN CHEMISTRY FOR ANTI-BREEZE BANK NOTES. WE ALSO DO CHEMICALS MELTING AND RECOVERING OF ALL TYPE OF BAD MONEY FROM BLACK TO WHITE AS YOU CAN SEE BELOW. Anti-freezing Preparations and Prepared De-icing Fluids, SSD Solution. Vectrol paste, Tebi-Manetic solution, Defaced currency, Cleaning chemical. Darkened currency, Black coated notes, Cleaning black money, super automatic SSD solution, anti-breeze bank notes. please contact Linda for more information on +27 833928661
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock