diff --git a/build.ant.properties b/build.ant.properties index ed556285df..b2c07e95aa 100644 --- a/build.ant.properties +++ b/build.ant.properties @@ -76,7 +76,7 @@ version_server = http://arianne.sourceforge.net/stendhal.version # current version of stendhal version.old = 0.81 -version = 0.81.5 +version = 0.82 # javac options javac.deprecation = true diff --git a/data/conf/zones/kirdneh.xml b/data/conf/zones/kirdneh.xml index 51e278b694..cff8987b72 100644 --- a/data/conf/zones/kirdneh.xml +++ b/data/conf/zones/kirdneh.xml @@ -49,7 +49,7 @@ Whut I be buyin: cod 10 char 30 trout 45 -roach 30 +roach 10 perch 22 mackerel 20 clownfish 30 diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 36aed1a549..ea46e8ae5d 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -3,13 +3,13 @@ Changelog 0.82 *features - single click movement -- easter bunny -- pied piper quest +- Easter Bunny +- Pied Piper quest - open manual on key F1 - added /volume support for sound - asynchronous database access -- kalavan orb -- sad scientist quest +- Kalavan orb +- Sad Scientist quest *admins* - new /script AdminPortal.class @@ -24,7 +24,10 @@ Changelog - Carmen only asks for her quest if the player is at least level 2. - improved stability of the client in uncommon situations - stat changes that occurred during zone change (like losing xp on death) did not update the stats window. -- click walking is now a lot smother +- click walking is now a lot smoother +- fixed Harold telling players about expiring earnings every minute + + 0.81.3 - prevent crash on "No line matching interface" (fixes #2970406) diff --git a/runserver.bat b/runserver.bat index 29aca7e507..96b217b9ba 100644 --- a/runserver.bat +++ b/runserver.bat @@ -1,3 +1,3 @@ -set STENDHAL_VERSION=0.81.5 +set STENDHAL_VERSION=0.82 set LOCALCLASSPATH=.;data\script;data\conf;stendhal-server-%STENDHAL_VERSION%.jar;marauroa.jar;mysql-connector.jar;log4j.jar;commons-lang.jar;h2.jar java -Xmx400m -cp "%LOCALCLASSPATH%" marauroa.server.marauroad -c server.ini -l diff --git a/runserver.sh b/runserver.sh index 8322a4b628..dab6b1a21d 100644 --- a/runserver.sh +++ b/runserver.sh @@ -1,5 +1,5 @@ #!/bin/sh -STENDHAL_VERSION="0.81.5" +STENDHAL_VERSION="0.82" LOCALCLASSPATH=.:data/script/:data/conf/:stendhal-server-$STENDHAL_VERSION.jar:marauroa.jar:mysql-connector.jar:log4j.jar:commons-lang.jar:h2.jar diff --git a/src/games/stendhal/client/actions/HelpAction.java b/src/games/stendhal/client/actions/HelpAction.java index 554718975e..fec5c08bf1 100644 --- a/src/games/stendhal/client/actions/HelpAction.java +++ b/src/games/stendhal/client/actions/HelpAction.java @@ -49,9 +49,8 @@ class HelpAction implements SlashAction { "* Misc: ", "- /info \t\tFind out what the current server time is", "- /mute\t\tMute or unmute the sounds", - "- /volume show\t\tShow the current volume of sounds and music", - "- /volume \t\tSets the volume for the specified group" - }; + "- /volume\t\tLists or sets the volume for sound and music" + }; for (final String line : lines) { ClientSingletonRepository.getUserInterface().addEventLine(new HeaderLessEventLine(line, NotificationType.CLIENT)); diff --git a/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java b/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java index 293aa52700..142132e920 100644 --- a/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java +++ b/src/games/stendhal/client/gui/j2d/entity/Portal2DView.java @@ -73,4 +73,10 @@ class Portal2DView extends InvisibleEntity2DView { break; } } + + @Override + public boolean isInteractive() { + return false; + } + } diff --git a/src/games/stendhal/client/gui/wt/GroundContainer.java b/src/games/stendhal/client/gui/wt/GroundContainer.java index b0bffa9c7b..ac402cc81a 100644 --- a/src/games/stendhal/client/gui/wt/GroundContainer.java +++ b/src/games/stendhal/client/gui/wt/GroundContainer.java @@ -26,6 +26,7 @@ import games.stendhal.client.gui.wt.core.WtDraggable; import games.stendhal.client.gui.wt.core.WtDropTarget; import java.awt.Cursor; +import java.awt.KeyboardFocusManager; import java.awt.Point; import java.awt.event.InputEvent; import java.awt.event.MouseEvent; @@ -46,6 +47,8 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, /** the game client. */ private final StendhalClient client; + private boolean windowWasActiveOnMousePressed = true; + /** * The UI. */ @@ -93,6 +96,15 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, return null; } + /** + * remembers whether the client was active on last mouse down + */ + @Override + public synchronized void mousePressed(MouseEvent e) { + windowWasActiveOnMousePressed = (KeyboardFocusManager.getCurrentKeyboardFocusManager().getActiveWindow() != null); + super.mousePressed(e); + } + /** * * @@ -105,6 +117,7 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, // yes, click already processed return true; } + // get clicked entity final Point2D point = screen.convertScreenViewToWorld(p); @@ -127,7 +140,9 @@ public class GroundContainer extends WtBaseframe implements WtDropTarget, return true; } } else if (getWtPanelAt(p) == null) { - createAndSendMoveToAction(point); + if (windowWasActiveOnMousePressed) { + createAndSendMoveToAction(point); + } return true; } diff --git a/src/games/stendhal/client/update/Version.java b/src/games/stendhal/client/update/Version.java index 0570658d44..113c8ec564 100644 --- a/src/games/stendhal/client/update/Version.java +++ b/src/games/stendhal/client/update/Version.java @@ -10,7 +10,7 @@ package games.stendhal.client.update; public class Version { /** Version Number. */ - public static final String VERSION = "0.81.5"; + public static final String VERSION = "0.82"; /** * Extract the specified number of parts from a version-string. diff --git a/src/games/stendhal/common/Debug.java b/src/games/stendhal/common/Debug.java index f34aa74bdb..3dced790db 100644 --- a/src/games/stendhal/common/Debug.java +++ b/src/games/stendhal/common/Debug.java @@ -25,7 +25,7 @@ public interface Debug { /** server version. */ // Note: This line is updated by build.xml using a regexp so be sure to adjust it in case you modify this line. - String VERSION = "0.81.5"; + String VERSION = "0.82"; /** diff --git a/src/games/stendhal/server/core/engine/GenerateINI.java b/src/games/stendhal/server/core/engine/GenerateINI.java index 815639af54..fd761758ed 100644 --- a/src/games/stendhal/server/core/engine/GenerateINI.java +++ b/src/games/stendhal/server/core/engine/GenerateINI.java @@ -233,7 +233,7 @@ public class GenerateINI { out.println(); out.println("server_typeGame=" + gameName); out.println("server_name=" + gameName + " Marauroa server"); - out.println("server_version=0.81.5"); + out.println("server_version=0.82"); out.println("server_contact=https://sourceforge.net/tracker/?atid=514826&group_id=66537&func=browse"); out.println(); out.println("# Extensions configured on the server. Enable at will."); diff --git a/src/games/stendhal/server/core/events/TutorialEventType.java b/src/games/stendhal/server/core/events/TutorialEventType.java index af803bea87..241582e2a0 100644 --- a/src/games/stendhal/server/core/events/TutorialEventType.java +++ b/src/games/stendhal/server/core/events/TutorialEventType.java @@ -16,7 +16,7 @@ public enum TutorialEventType { VISIT_SEMOS_CITY( "You can get a map of Semos from Monogenes. Start by saying \"hi\". Or you can go down the steps to the dungeons and fight some creatures."), VISIT_SEMOS_DUNGEON( - "You can attack creatures by right clicking on them and choosing \"Attack\""), + "You can attack creatures by right clicking on them and choosing \"Attack\". Alternatively you can use double click."), VISIT_SEMOS_DUNGEON_2( "Be careful. If you walk deeper and deeper, the creatures will get more powerful."), VISIT_SEMOS_TAVERN( @@ -34,7 +34,7 @@ public enum TutorialEventType { FIRST_DEATH( "Oh, you have just died. But fortunately death is not permanent in this world."), TIMED_HELP( - "There is a manual with many pictures on the first screen before you login."), + "Press F1 to read the manual with many pictures."), TIMED_NAKED( "Oh, aren't you feeling cold? Right click on yourself and choose \"Set Outfit\" to get dressed."), TIMED_PASSWORD( diff --git a/src/games/stendhal/server/core/pathfinder/Pathfinder.java b/src/games/stendhal/server/core/pathfinder/Pathfinder.java index 13263e63e8..a38218b489 100644 --- a/src/games/stendhal/server/core/pathfinder/Pathfinder.java +++ b/src/games/stendhal/server/core/pathfinder/Pathfinder.java @@ -24,7 +24,10 @@ package games.stendhal.server.core.pathfinder; import games.stendhal.common.CollisionDetection; import games.stendhal.server.core.engine.StendhalRPZone; import games.stendhal.server.entity.Entity; +import games.stendhal.server.entity.mapstuff.portal.Portal; +import games.stendhal.server.entity.player.Player; +import java.awt.Point; import java.awt.geom.Rectangle2D; import java.util.Comparator; import java.util.HashMap; @@ -264,6 +267,7 @@ class Pathfinder { * have stopped */ private void createEntityCollisionMap() { + Point targetPoint = new Point(nodeGoal.getX(), nodeGoal.getY()); collisionMap = new CollisionDetection(); collisionMap.init(zone.getWidth(), zone.getHeight()); for (final RPObject obj : zone) { @@ -275,6 +279,11 @@ class Pathfinder { final Rectangle2D area = otherEntity.getArea(otherEntity.getX(), otherEntity.getY()); + + // Hack: Allow players to move onto portals as destination + if ((entity instanceof Player) && (otherEntity instanceof Portal) && area.contains(targetPoint)) { + continue; + } collisionMap.setCollide(area, true); } } diff --git a/src/games/stendhal/server/entity/player/Player.java b/src/games/stendhal/server/entity/player/Player.java index dbf6ebc15c..9390fa645d 100644 --- a/src/games/stendhal/server/entity/player/Player.java +++ b/src/games/stendhal/server/entity/player/Player.java @@ -1817,7 +1817,15 @@ public class Player extends RPEntity { } @Override protected void handleObjectCollision() { - clearPath(); + if (hasPath()) { + /* + * Stop a player only if he is following a path. + * Otherwise running behind archers becomes almost + * impossible. + */ + stop(); + clearPath(); + } } diff --git a/src/games/stendhal/server/maps/quests/MeetBunny.java b/src/games/stendhal/server/maps/quests/MeetBunny.java index 2867d43a3e..c3cae843de 100644 --- a/src/games/stendhal/server/maps/quests/MeetBunny.java +++ b/src/games/stendhal/server/maps/quests/MeetBunny.java @@ -81,7 +81,6 @@ public class MeetBunny extends AbstractQuest { addGoodbye("Don't eat too much this Easter! Bye!"); } }; - npcs.add(bunny); bunny.setEntityClass("easterbunnynpc"); bunny.initHP(100); // times out twice as fast as normal NPCs diff --git a/src/games/stendhal/server/maps/quests/ThePiedPiper.java b/src/games/stendhal/server/maps/quests/ThePiedPiper.java index 45790ce0a2..09129acbea 100644 --- a/src/games/stendhal/server/maps/quests/ThePiedPiper.java +++ b/src/games/stendhal/server/maps/quests/ThePiedPiper.java @@ -469,7 +469,7 @@ import org.apache.log4j.Logger; */ private void tellAllAboutNoRatsInCity() { final String text = "Mayor Chalmers shouts: No #rats in Ados survived, "+ - "excluded those who always lived in the "+ + "only those who always lived in the "+ "haunted house. "+ "Rat hunters are welcome to get their #reward."; SingletonRepository.getRuleProcessor().tellAllPlayers(text); diff --git a/stendhal.jnlp b/stendhal.jnlp index 472a2e0291..55ae6d012c 100644 --- a/stendhal.jnlp +++ b/stendhal.jnlp @@ -22,7 +22,7 @@ Some of these people are NPC, they will give you tasks to accomplish and hints t - +