Jump to content

Recommended Posts

  • 1 month later...
Posted

@Ace excellent guide man! keep it up! way much better than eclipse!

 

@redbutcher

 

you edited the java files? and tryied to compile? it seems that you forgot to add some things to make the code runnable. take a closer look on them and if you still got the same problem send me the files and i ll try help you.

Posted

here is the patch what i use, what is wrong?

 

Light_Purple_Maned_Horse_core.patch

Index: config/other.properties

===================================================================

--- config/other.properties (revision 4832)

+++ config/other.properties (working copy)

@@ -8,6 +8,7 @@

FenrirSpeed = 80

SnowFenrirSpeed = 80

GreatSnowWolfSpeed = 80

+HorseSpeed = 80

 

# Level that enables mount of great wolf

GreatWolfMountLevel = 70

Index: src/main/java/com/l2jfree/Config.java

===================================================================

--- src/main/java/com/l2jfree/Config.java (revision 4832)

+++ src/main/java/com/l2jfree/Config.java (working copy)

@@ -773,6 +773,7 @@

public static int FENRIR_SPEED;

public static int GREAT_SNOW_WOLF_SPEED;

public static int SNOW_FENRIR_SPEED;

+ public static int HORSE_SPEED;

public static int GREAT_WOLF_MOUNT_LEVEL;

public static boolean ALLOW_WYVERN_UPGRADER;

public static boolean PETITIONING_ALLOWED;

@@ -857,6 +858,7 @@

STRIDER_SPEED = Integer.parseInt(otherSettings.getProperty("StriderSpeed", "80"));

FENRIR_SPEED = Integer.parseInt(otherSettings.getProperty("FenrirSpeed", "80"));

SNOW_FENRIR_SPEED = Integer.parseInt(otherSettings.getProperty("SnowFenrirSpeed", "80"));

+ HORSE_SPEED = Integer.parseInt(otherSettings.getProperty("HorseSpeed", "80"));

GREAT_SNOW_WOLF_SPEED = Integer.parseInt(otherSettings.getProperty("GreatSnowWolfSpeed", "80"));

 

GREAT_WOLF_MOUNT_LEVEL = Integer.parseInt(otherSettings.getProperty("GreatWolfMountLevel", "70"));

Index: src/main/java/com/l2jfree/gameserver/datatables/PetDataTable.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/datatables/PetDataTable.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/datatables/PetDataTable.java (working copy)

@@ -65,6 +65,8 @@

public final static int FENRIR_WOLF_ID = 16041;

public final static int WFENRIR_WOLF_ID = 16042;

 

+ public final static int HORSE_ID = 13130;

+

private static FastMap<Integer, FastMap<Integer, L2PetData>> petTable;

 

public static PetDataTable getInstance()

@@ -282,6 +284,11 @@

return npcId == SIN_EATER_ID;

}

 

+ public static boolean isHorse(int npcId)

+ {

+ return npcId == HORSE_ID;

+ }

+

/**

* This class describes basic pet info

* NPC template id, control item id, food item id and can be pet mounted

Index: src/main/java/com/l2jfree/gameserver/handler/SkillHandler.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/handler/SkillHandler.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/handler/SkillHandler.java (working copy)

@@ -84,7 +84,8 @@

registerSkillHandler(new TransformDispel());

registerSkillHandler(new Trap());

registerSkillHandler(new Unlock());

-

+ registerSkillHandler(new MountHorse());

+ registerSkillHandler(new Dismount());

_log.info("SkillHandler: Loaded " + _handlers.size() + " handlers.");

}

 

Index: src/main/java/com/l2jfree/gameserver/handler/skillhandlers/Dismount.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/handler/skillhandlers/Dismount.java (revision 0)

+++ src/main/java/com/l2jfree/gameserver/handler/skillhandlers/Dismount.java (revision 0)

@@ -0,0 +1,69 @@

+/*

+ * 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.l2jfree.gameserver.handler.skillhandlers;

+

+import com.l2jfree.gameserver.handler.ISkillHandler;

+import com.l2jfree.gameserver.model.L2Character;

+import com.l2jfree.gameserver.model.L2Object;

+import com.l2jfree.gameserver.model.L2Skill;

+import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;

+import com.l2jfree.gameserver.network.SystemMessageId;

+import com.l2jfree.gameserver.network.serverpackets.SystemMessage;

+import com.l2jfree.gameserver.model.L2Skill.SkillType;

+import com.l2jfree.gameserver.util.FloodProtector;

+

+/**

+ * @author theonn

+ *

+ */

+public class Dismount implements ISkillHandler

+{

+ private static final SkillType[] SKILL_IDS =

+ {

+ SkillType.DISMOUNT

+ };

+

+ /**

+ *

+ * @see com.l2jfree.gameserver.handler.ISkillHandler#useSkill(net.sf.l2j.gameserver.model.L2Character, net.sf.l2j.gameserver.model.L2Skill, net.sf.l2j.gameserver.model.L2Object[])

+ */

+ public void useSkill(L2Character playable, L2Skill skill, L2Object... targets)

+ {

+ if (!(playable instanceof L2PcInstance))

+ return;

+

+ L2PcInstance activeChar = (L2PcInstance) playable;

+

+ if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtector.PROTECTED_ITEMPETSUMMON))

+ return;

+

+ if (activeChar.isAttackingNow())

+ {

+ activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_SUMMON_IN_COMBAT));

+ return;

+ }

+

+ activeChar.dismount();

+ }

+

+ /**

+ *

+ * @see com.l2jfree.gameserver.handler.ISkillHandler#getSkillIds()

+ */

+ public SkillType[] getSkillIds()

+ {

+ return SKILL_IDS;

+ }

+}

\ No newline at end of file

Index: src/main/java/com/l2jfree/gameserver/handler/skillhandlers/MountHorse.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/handler/skillhandlers/MountHorse.java (revision 0)

+++ src/main/java/com/l2jfree/gameserver/handler/skillhandlers/MountHorse.java (revision 0)

@@ -0,0 +1,97 @@

+/*

+ * 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.l2jfree.gameserver.handler.skillhandlers;

+

+import com.l2jfree.gameserver.handler.ISkillHandler;

+import com.l2jfree.gameserver.model.L2Character;

+import com.l2jfree.gameserver.model.L2Object;

+import com.l2jfree.gameserver.model.L2Skill;

+import com.l2jfree.gameserver.model.actor.instance.L2PcInstance;

+import com.l2jfree.gameserver.network.SystemMessageId;

+import com.l2jfree.gameserver.network.serverpackets.SystemMessage;

+import com.l2jfree.gameserver.model.L2Skill.SkillType;

+import com.l2jfree.gameserver.util.FloodProtector;

+

+/**

+ * @author theonn

+ *

+ */

+public class MountHorse implements ISkillHandler

+{

+ private static final int Horse_Id = 13130;

+

+ private static final SkillType[] SKILL_IDS =

+ {

+ SkillType.MOUNT_HORSE

+ };

+

+ /**

+ *

+ * @see com.l2jfree.gameserver.handler.ISkillHandler#useSkill(net.sf.l2j.gameserver.model.L2Character, net.sf.l2j.gameserver.model.L2Skill, net.sf.l2j.gameserver.model.L2Object[])

+ */

+ public void useSkill(L2Character playable, L2Skill skill, L2Object... targets)

+ {

+ if (!(playable instanceof L2PcInstance))

+ return;

+

+ L2PcInstance activeChar = (L2PcInstance) playable;

+

+ if (!FloodProtector.getInstance().tryPerformAction(activeChar.getObjectId(), FloodProtector.PROTECTED_ITEMPETSUMMON))

+ return;

+

+ if (activeChar.isSitting())

+ {

+ activeChar.sendPacket(new SystemMessage(SystemMessageId.CANT_MOVE_SITTING));

+ return;

+ }

+

+ if (activeChar.inObserverMode())

+ return;

+

+ if (activeChar.isInOlympiadMode())

+ {

+ activeChar.sendPacket(new SystemMessage(SystemMessageId.THIS_ITEM_IS_NOT_AVAILABLE_FOR_THE_OLYMPIAD_EVENT));

+ return;

+ }

+

+ if ((activeChar.getPet() != null || activeChar.isMounted()))

+ {

+ activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ALREADY_HAVE_A_PET));

+ return;

+ }

+

+ if (activeChar.isAttackingNow())

+ {

+ activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_CANNOT_SUMMON_IN_COMBAT));

+ return;

+ }

+

+ if (activeChar.isCursedWeaponEquipped())

+ {

+ return;

+ }

+

+ activeChar.mount(Horse_Id, 0);

+ }

+

+ /**

+ *

+ * @see com.l2jfree.gameserver.handler.ISkillHandler#getSkillIds()

+ */

+ public SkillType[] getSkillIds()

+ {

+ return SKILL_IDS;

+ }

+}

\ No newline at end of file

Index: src/main/java/com/l2jfree/gameserver/model/actor/instance/L2PcInstance.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/model/actor/instance/L2PcInstance.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/model/actor/instance/L2PcInstance.java (working copy)

@@ -8851,6 +8851,7 @@

setIsRidingWFenrirWolf(false);

setIsRidingGreatSnowWolf(false);

setIsRidingStrider(false);

+ setIsRidingHorse(false);

setIsFlying(false);

isFalling(false, 0); // Initialize the fall just incase dismount was made while in-air

break; //Dismounted

@@ -8869,6 +8870,9 @@

setIsRidingFenrirWolf(true);

setIsRidingWFenrirWolf(true);

setIsRidingGreatSnowWolf(true);

+ break;

+ case 4:

+ setIsRidingHorse(true);

break;

}

 

Index: src/main/java/com/l2jfree/gameserver/model/actor/stat/CharStat.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/model/actor/stat/CharStat.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/model/actor/stat/CharStat.java (working copy)

@@ -679,7 +679,12 @@

val += Config.GREAT_SNOW_WOLF_SPEED;

return val;

}

-

+ if (_activeChar.isRidingHorse())

+ {

+ val += Config.HORSE_SPEED;

+ return val;

+ }

+

// TODO: check if sharks/fish should be affected ;)

if (_activeChar.isInsideZone(L2Zone.FLAG_WATER))

val /= 2;

Index: src/main/java/com/l2jfree/gameserver/model/L2Character.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/model/L2Character.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/model/L2Character.java (working copy)

@@ -158,6 +158,7 @@

private boolean _isRidingWFenrirWolf = false;

private boolean _isRidingGreatSnowWolf = false;

private boolean _isRidingStrider = false;

+ private boolean _isRidingHorse = false;

private boolean _isPendingRevive = false;

private boolean _isRooted = false; // Cannot move until root timed out

private boolean _isRunning = true;

@@ -2672,6 +2673,11 @@

return _isRidingStrider;

}

 

+ public final boolean isRidingHorse()

+ {

+ return _isRidingHorse;

+ }

+

/** Set the L2Character riding mode to True. */

public final void setIsRidingFenrirWolf(boolean mode)

{

@@ -2693,6 +2699,11 @@

_isRidingStrider = mode;

}

 

+ public final void setIsRidingHorse(boolean mode)

+ {

+ _isRidingHorse = mode;

+ }

+

public final boolean isRooted()

{

return _isRooted;

Index: src/main/java/com/l2jfree/gameserver/model/L2Skill.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/model/L2Skill.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/model/L2Skill.java (working copy)

@@ -252,6 +252,8 @@

REMOVE_TRAP,

SHIFT_TARGET,

INSTANT_JUMP,

+ MOUNT_HORSE,

+ DISMOUNT,

 

AGATHION(L2SkillAgathion.class),

CHANGEWEAPON(L2SkillChangeWeapon.class),

Index: src/main/java/com/l2jfree/gameserver/network/serverpackets/Ride.java

===================================================================

--- src/main/java/com/l2jfree/gameserver/network/serverpackets/Ride.java (revision 4832)

+++ src/main/java/com/l2jfree/gameserver/network/serverpackets/Ride.java (working copy)

@@ -50,6 +50,8 @@

            _rideType = 2;

        else if (PetDataTable.isWGreatWolf(npcId) || PetDataTable.isFenrirWolf(npcId) || PetDataTable.isWFenrirWolf(npcId))

            _rideType = 3;

+ else if (PetDataTable.isHorse(npcId))

+     _rideType = 4;

        else

            _rideType = 0;

    }

 

Posted

Ok All this sis very good i am thank you i compiled easy.i use eclipce faster and easier.

 

But pls someone can say me where u fint them svn of l2 packs like this one

 

svn://l2jfree.com/repo/l2j-free/trunk

this

http://svn.assembla.com/svn/l2jarchid

and this

http://tools.assembla.com/svn/L2Emuproject

 

where i can find more ?

  • 5 weeks later...
Posted

I want to complite my server, but it is interlude, rev 2741. I update the SVN to revision 2741 and it created folders for IL and CT1. I use only the IL folders? I have also l2j-mmocore, l2j-commons and l2j-test-tools folders expect datapacks, gameservers and loginservers. I can't find folder l2jfree-core!I can't move on Part5! What I have to do? I can edit the .java files with notepad/notepad + before I complete it?

Posted

I want to complite my server, but it is interlude, rev 2741. I update the SVN to revision 2741 and it created folders for IL and CT1. I use only the IL folders? I have also l2j-mmocore, l2j-commons and l2j-test-tools folders expect datapacks, gameservers and loginservers. I can't find folder l2jfree-core!I can't move on Part5! What I have to do? I can edit the .java files with notepad/notepad + before I complete it?

if u want to edit IL client the l2jfree-core is the IL_GameServer ;P

Posted

Very nice guide with nice photo...the only thing i wanna ask is:

When u mean,do the same to login server,you mean i should use CMD command: cd C:\l2jfree\l2jfree-login

and use the same command like core?

Posted

I use windows-64 and my default folder of installation for TortoiseSVN is program files x86 ???

And so when i left click it doesn't work, dunno why.

some help? ???

 

::Fixxed in my vista don't post ^^::

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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.


×
×
  • Create New...