From 50ec5c49f04c249d516fd60beb9dc9fd05187fa6 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 4 Oct 2010 20:40:44 +0000 Subject: [PATCH 01/25] set version to 0.75.6 --- build.ant.properties | 2 +- runserver.bat | 2 +- runserver.sh | 2 +- src/games/stendhal/client/update/Version.java | 2 +- src/games/stendhal/common/Debug.java | 2 +- src/games/stendhal/server/core/engine/GenerateINI.java | 2 +- stendhal.jnlp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.ant.properties b/build.ant.properties index 560f723e42..884c13aaa2 100644 --- a/build.ant.properties +++ b/build.ant.properties @@ -73,7 +73,7 @@ version_server = http://arianne.sourceforge.net/stendhal.version # current version of stendhal version.old = 0.87 -version = 0.87.5 +version = 0.87.6 # javac options javac.deprecation = true diff --git a/runserver.bat b/runserver.bat index 50ed39d09a..463eae3b1f 100644 --- a/runserver.bat +++ b/runserver.bat @@ -1,3 +1,3 @@ -set STENDHAL_VERSION=0.87.5 +set STENDHAL_VERSION=0.87.6 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 5b440e85bb..044fe69de6 100644 --- a/runserver.sh +++ b/runserver.sh @@ -1,5 +1,5 @@ #!/bin/sh -STENDHAL_VERSION="0.87.5" +STENDHAL_VERSION="0.87.6" 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/update/Version.java b/src/games/stendhal/client/update/Version.java index 9c2b17506d..096fb9e899 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. */ - private static final String VERSION = "0.87.5"; + private static final String VERSION = "0.87.6"; /** * 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 0cf63fba36..b31788d5fa 100644 --- a/src/games/stendhal/common/Debug.java +++ b/src/games/stendhal/common/Debug.java @@ -26,7 +26,7 @@ public class Debug { /** version. */ // Note: This line is updated by build.xml using a regexp so be sure to adjust it in case you modify this line. - public static final String VERSION = "0.87.5"; + public static final String VERSION = "0.87.6"; public static final String PRE_RELEASE_VERSION = null; diff --git a/src/games/stendhal/server/core/engine/GenerateINI.java b/src/games/stendhal/server/core/engine/GenerateINI.java index 93f3c08605..8c923d9ae4 100644 --- a/src/games/stendhal/server/core/engine/GenerateINI.java +++ b/src/games/stendhal/server/core/engine/GenerateINI.java @@ -246,7 +246,7 @@ public class GenerateINI { out.println(); out.println("server_typeGame=" + gameName); out.println("server_name=" + gameName + " Marauroa server"); - out.println("server_version=0.87.5"); + out.println("server_version=0.87.6"); 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/stendhal.jnlp b/stendhal.jnlp index 24bdb6867a..fee5d55594 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 - + From 9b3fef666de492cbaf2dc8362de656fe64317c5b Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 4 Oct 2010 20:44:35 +0000 Subject: [PATCH 02/25] deactivated MixtureForOrtiv --- src/games/stendhal/server/core/rp/StendhalQuestSystem.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/games/stendhal/server/core/rp/StendhalQuestSystem.java b/src/games/stendhal/server/core/rp/StendhalQuestSystem.java index a6ed5b5664..967f911083 100644 --- a/src/games/stendhal/server/core/rp/StendhalQuestSystem.java +++ b/src/games/stendhal/server/core/rp/StendhalQuestSystem.java @@ -75,7 +75,6 @@ import games.stendhal.server.maps.quests.MeetMonogenes; import games.stendhal.server.maps.quests.MeetSanta; import games.stendhal.server.maps.quests.MeetZynn; import games.stendhal.server.maps.quests.MithrilCloak; -import games.stendhal.server.maps.quests.MixtureForOrtiv; import games.stendhal.server.maps.quests.NewsFromHackim; import games.stendhal.server.maps.quests.ObsidianKnife; import games.stendhal.server.maps.quests.PaperChase; @@ -202,7 +201,7 @@ public class StendhalQuestSystem { loadQuest(new MeetSanta()); loadQuest(new MeetZynn()); loadQuest(new MithrilCloak()); - loadQuest(new MixtureForOrtiv()); +// loadQuest(new MixtureForOrtiv()); loadQuest(new NewsFromHackim()); loadQuest(new ObsidianKnife()); loadQuest(new PizzaDelivery()); From a88f96af7e7d5d7ba0917a6cfc21402ec9b266a4 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 4 Oct 2010 20:50:03 +0000 Subject: [PATCH 03/25] removed Ortiv Milquetoast's quest --- doc/CHANGES.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 806c82f271..1a17dbe153 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -15,7 +15,6 @@ Changelog - new NPC Ortiv Milquetoast in Kirdneh River House - new fish soup maker on Ados market (Florence Boullabaisse) - added new quest on Ados market to Haunchy Meatoch -- added new quest in the Kirdneh River House to Ortiv Milquetoast - added more quest histories - rest of the Wt replaced with swing - corpse and chest windows raise themselves if one with an already open window is inspected From 2314dbbec8d22eaf9a3dc134bde5ad82c875bc01 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 4 Oct 2010 21:32:41 +0000 Subject: [PATCH 04/25] don --- src/games/stendhal/server/core/engine/db/StendhalBuddyDAO.java | 3 ++- .../stendhal/server/core/engine/db/StendhalCharacterDAO.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/games/stendhal/server/core/engine/db/StendhalBuddyDAO.java b/src/games/stendhal/server/core/engine/db/StendhalBuddyDAO.java index 540f7829f9..1f0e9865f2 100644 --- a/src/games/stendhal/server/core/engine/db/StendhalBuddyDAO.java +++ b/src/games/stendhal/server/core/engine/db/StendhalBuddyDAO.java @@ -50,12 +50,13 @@ public class StendhalBuddyDAO { /** * saves the buddy list for the specified charname * + * @param transaction DBTransaction * @param charname name of char * @param buddies buddy list * @throws SQLException * @throws SQLException in case of an database error */ - private void saveBuddyList(DBTransaction transaction, String charname, Set buddies) throws SQLException { + public void saveBuddyList(DBTransaction transaction, String charname, Set buddies) throws SQLException { Set oldList = loadBuddyList(transaction, charname); Set newList = buddies; newList.add(charname); diff --git a/src/games/stendhal/server/core/engine/db/StendhalCharacterDAO.java b/src/games/stendhal/server/core/engine/db/StendhalCharacterDAO.java index dc5fadb842..fedc43f51b 100644 --- a/src/games/stendhal/server/core/engine/db/StendhalCharacterDAO.java +++ b/src/games/stendhal/server/core/engine/db/StendhalCharacterDAO.java @@ -41,7 +41,7 @@ public class StendhalCharacterDAO extends CharacterDAO { if (player instanceof Player) { final Player instance = (Player) player; DAORegister.get().get(StendhalWebsiteDAO.class).insertIntoCharStats(transaction, instance); - DAORegister.get().get(StendhalBuddyDAO.class).saveBuddyList(character, instance.getBuddies()); + DAORegister.get().get(StendhalBuddyDAO.class).saveBuddyList(transaction, character, instance.getBuddies()); } } catch (final SQLException sqle) { logger.warn("error storing character", sqle); From 276936f3f4519c6e034284e4c189bb296bddec44 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Wed, 6 Oct 2010 21:47:59 +0000 Subject: [PATCH 05/25] backported splitting dialog by bluelads --- .../server/maps/ados/market/OldFishermanNPC.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java b/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java index d2fa3da7d1..00da6bd6e8 100644 --- a/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java +++ b/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java @@ -63,11 +63,14 @@ public class OldFishermanNPC implements ZoneConfigurator { @Override protected void createDialog() { addGreeting("Ahoy!"); - addHelp("Harr my friend, my whole life long I was sitting in a boat, trying to catch some fish... The feeling you have when fishies hang on your rod is awesome! Did you ever try to catch some by yourself? You can ask my friend Santiago for help, he lives in a fisherhut somewhere in the city!"); - + addHelp("Harr my friend, my #whole #life long I was sitting in a boat, trying to catch some fish..."); + addReply("whole life","The feeling you have when fishies hang on your rod is awesome! Did you ever try to catch some by #yourself?"); + addReply("yourself", "You can ask my friend Santiago for help, he lives in a fisherhut somewhere in the city!"); addQuest("Ahoy Matey! I don't have any tasks for you but others do!"); - addJob("I am a fisherman. For many, many years I went fishing every day. There have been dangerous storms I had to get over and some reeeeeally big fish which almost drown my ship, but of course I always was able to catch them! Hehe! I hope that I will be able to deliver some fish to the market one time..."); - addOffer("My fishing places on the sea are catched by some ugly storm I can't drive out at the moment. Sorry matey, I can't offer you anything at the moment..."); + addJob("I am a fisherman. For many, many years I went fishing every day. There have been dangerous storms I had to get over and some reeeeeally big fish which almost drown my ship, but of course I always was able to #catch them!"); + addReply("catch","Hehe! I hope that I will be able to deliver some fish to the market one time..."); + addOffer("My fishing places on the sea are catched by some ugly #storm I can't drive out at the moment."); + addReply("storm", "The huge storm halfway destroyed my boat! Sorry matey, I can't offer you anything at the moment..."); addGoodbye("See you, matey! And be careful there on this slippy ground!"); } From 60fc31f7088c104c5f56dd79885e74cbb2377623 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Thu, 7 Oct 2010 19:54:11 +0000 Subject: [PATCH 06/25] updated marauroa for better error messages in case of null content --- libs/marauroa.jar | Bin 316785 -> 317016 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/libs/marauroa.jar b/libs/marauroa.jar index f62ef751c7957e0c7c0a771db49048c294a22d6e..c88d2d1b98635b7978bcb97e99a18314c2177fd6 100644 GIT binary patch delta 20583 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 Date: Thu, 7 Oct 2010 20:08:47 +0000 Subject: [PATCH 07/25] fixed sentence "This is a pre release test client client" --- src/games/stendhal/client/gui/j2DClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/client/gui/j2DClient.java b/src/games/stendhal/client/gui/j2DClient.java index 84426764bb..31b5051247 100644 --- a/src/games/stendhal/client/gui/j2DClient.java +++ b/src/games/stendhal/client/gui/j2DClient.java @@ -290,7 +290,7 @@ public class j2DClient implements UserInterface { // Display a hint if this is a debug client if (Debug.PRE_RELEASE_VERSION != null) { - addEventLine(new HeaderLessEventLine("This is a pre release test client client: " + Debug.VERSION + " - " + Debug.PRE_RELEASE_VERSION, NotificationType.CLIENT)); + addEventLine(new HeaderLessEventLine("This is a pre release test client: " + Debug.VERSION + " - " + Debug.PRE_RELEASE_VERSION, NotificationType.CLIENT)); } // set some default window positions From b08c83fd4a297a4be406fb4d8ecbcccd43cea615 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 18:50:08 +0000 Subject: [PATCH 08/25] backported amount fix by bluelads --- .../stendhal/server/maps/quests/CoalForHaunchy.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/games/stendhal/server/maps/quests/CoalForHaunchy.java b/src/games/stendhal/server/maps/quests/CoalForHaunchy.java index 2618bc0b0a..fa0361bf99 100644 --- a/src/games/stendhal/server/maps/quests/CoalForHaunchy.java +++ b/src/games/stendhal/server/maps/quests/CoalForHaunchy.java @@ -144,7 +144,7 @@ public class CoalForHaunchy extends AbstractQuest { npc.add( ConversationStates.ATTENDING, triggers, - new AndCondition(new QuestInStateCondition(QUEST_SLOT, "start"), new PlayerHasItemWithHimCondition("coal",10)), + new AndCondition(new QuestInStateCondition(QUEST_SLOT, "start"), new PlayerHasItemWithHimCondition("coal",25)), ConversationStates.ATTENDING, null, new MultipleActions( @@ -167,7 +167,7 @@ public class CoalForHaunchy extends AbstractQuest { npc.add( ConversationStates.ATTENDING, triggers, - new AndCondition(new QuestInStateCondition(QUEST_SLOT, "start"), new NotCondition(new PlayerHasItemWithHimCondition("coal",10))), + new AndCondition(new QuestInStateCondition(QUEST_SLOT, "start"), new NotCondition(new PlayerHasItemWithHimCondition("coal",25))), ConversationStates.ATTENDING, "You don't have the coal amount which I need yet. Go and pick some more pieces up, please.", null); @@ -204,10 +204,10 @@ public class CoalForHaunchy extends AbstractQuest { res.add("He asked me to fetch him some pieces of coal but I don't have time to collect some."); } if (player.isQuestInState(QUEST_SLOT, "start") || isCompleted(player)) { - res.add("The BBQ grill-heat is low and I promised Haunchy to help him out with 10 pieces of coal."); + res.add("The BBQ grill-heat is low and I promised Haunchy to help him out with 25 pieces of coal."); } - if (("start".equals(questState) && player.isEquipped("coal",10)) || isCompleted(player)) { - res.add("I found 10 pieces of coal for the Haunchy and think he will be happy."); + if (("start".equals(questState) && player.isEquipped("coal",25)) || isCompleted(player)) { + res.add("I found 25 pieces of coal for the Haunchy and think he will be happy."); } if (isCompleted(player)) { if (isRepeatable(player)) { From d407a34c314d6d651f9e51b57b6eb43cbb4ee615 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:48:13 +0000 Subject: [PATCH 09/25] fixed respawn time --- .../stendhal/server/entity/mapstuff/useable/CoalSource.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/games/stendhal/server/entity/mapstuff/useable/CoalSource.java b/src/games/stendhal/server/entity/mapstuff/useable/CoalSource.java index 369e7bb334..394ee47623 100644 --- a/src/games/stendhal/server/entity/mapstuff/useable/CoalSource.java +++ b/src/games/stendhal/server/entity/mapstuff/useable/CoalSource.java @@ -155,8 +155,8 @@ public class CoalSource extends PlayerActivityEntity { private void handleRespawn() { if (getState() == 0) { final int time = Rand.randExponential(6000); - int turn = Math.max(time, 200); - TurnNotifier.get().notifyInSeconds(turn, new Refiller()); + int turn = Math.max(time, 6000); + TurnNotifier.get().notifyInTurns(turn, new Refiller()); } } From ad7aa20e43eb80cede12b4769f697c6d767b037d Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:48:56 +0000 Subject: [PATCH 10/25] Fixed "hi"-message and changed it into a normal sentence without a possible yes or no answer by bluelads99 (ID: 3085447) --- src/games/stendhal/server/maps/quests/FishSoup.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/games/stendhal/server/maps/quests/FishSoup.java b/src/games/stendhal/server/maps/quests/FishSoup.java index c93d280d48..6516cc658d 100644 --- a/src/games/stendhal/server/maps/quests/FishSoup.java +++ b/src/games/stendhal/server/maps/quests/FishSoup.java @@ -129,7 +129,7 @@ public class FishSoup extends AbstractQuest { ConversationPhrases.GREETING_MESSAGES, new QuestNotStartedCondition(QUEST_SLOT), ConversationStates.INFORMATION_1, - "Hello and welcome on Ados market! Are you intersted in something #tasty?", + "Hello and welcome on Ados market! I have something really tasty and know what would #revive you.", null); // player returns after finishing the quest (it is repeatable) after the @@ -152,9 +152,9 @@ public class FishSoup extends AbstractQuest { new SayTimeRemainingAction(QUEST_SLOT, 1, REQUIRED_MINUTES , "Oh I am sorry, I have to wash my cooking pots first before making more soup for you. Please come back in") ); - // player responds to word 'tasty' + // player responds to word 'revive' npc.add(ConversationStates.INFORMATION_1, - "tasty", + "revive", new QuestNotStartedCondition(QUEST_SLOT), ConversationStates.QUEST_OFFERED, null, From 8d860e1836a0fb8a23ec0cb31dcd05b226d15dfa Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:49:22 +0000 Subject: [PATCH 11/25] Fixed help sentence from Florence Boullabaisse by bluelads99 (ID: 3085448) --- .../stendhal/server/maps/ados/market/FishSoupMakerNPC.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/server/maps/ados/market/FishSoupMakerNPC.java b/src/games/stendhal/server/maps/ados/market/FishSoupMakerNPC.java index 5d983ea2fb..9f9d379785 100644 --- a/src/games/stendhal/server/maps/ados/market/FishSoupMakerNPC.java +++ b/src/games/stendhal/server/maps/ados/market/FishSoupMakerNPC.java @@ -56,7 +56,7 @@ public class FishSoupMakerNPC implements ZoneConfigurator { @Override protected void createDialog() { //addGreeting(); - addHelp("I can cook a really tasty fish soup for you but if you are not into fish, I can suggest a good friend of mine to you, Old Mother Helena in Fado. She makes the best vegetable soups in whole Faiumoni!"); + addHelp("I can cook a really tasty fish soup for you but if you are not into fish, I can suggest a good friend of mine to you, Old Mother Helena in Fado. She makes the best vegetable soup in the whole of Faiumoni!"); addQuest("I don't have any quests for you, but I can offer you some fresh made fish soup for your travels."); addJob("I am a trained cook but specialized into soups. My most favourite soup is a fish soup but I also like normal ones..."); From a961a2deb2b26b5ac5771ec47f8acb4005af8954 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:49:53 +0000 Subject: [PATCH 12/25] Fix #3085439 and a few spelling errors (prolly is no word) by kymara --- .../stendhal/server/maps/ados/market/BBQGrillmasterNPC.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/games/stendhal/server/maps/ados/market/BBQGrillmasterNPC.java b/src/games/stendhal/server/maps/ados/market/BBQGrillmasterNPC.java index 340316119a..d94db9e13a 100644 --- a/src/games/stendhal/server/maps/ados/market/BBQGrillmasterNPC.java +++ b/src/games/stendhal/server/maps/ados/market/BBQGrillmasterNPC.java @@ -60,9 +60,9 @@ public class BBQGrillmasterNPC implements ZoneConfigurator { @Override protected void createDialog() { - addGreeting("Hey! Isn't it a nice day for having a BBQ?"); - addHelp("Unfortunetly the steaks aren't ready yet... If you are hungry and can't wait, you could check some offers in the near out like the Blacksheep offers near the fisherhuts in Ados or you can take a ferry to Athor for getting some nice snacks..."); - addJob("I am a grillmaster as you can prolly see. I love the smell of fresh grilled meat!"); + addGreeting("Hey! Nice day for a BBQ!"); + addHelp("Unfortunately the steaks aren't ready yet... If you are hungry and can't wait, you could check some offers in the near out like the Blacksheep offers near the fisherhuts in Ados or you can take a ferry to Athor for getting some nice snacks..."); + addJob("I am a grillmaster as you can probably see. I love the smell of fresh grilled meat!"); addOffer("I hope that my steaks will be ready soon. Please be a bit patient or have some other snacks first."); addGoodbye("A nice day to you! Always keep your fire burning!"); From d86204d817a267108016c953215e296026b2d5ec Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:50:16 +0000 Subject: [PATCH 13/25] after rejecting BBQ quest, cannot start it by kymara ID: 3085441 --- .../server/maps/quests/CoalForHaunchy.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/games/stendhal/server/maps/quests/CoalForHaunchy.java b/src/games/stendhal/server/maps/quests/CoalForHaunchy.java index fa0361bf99..6e2aaa07e0 100644 --- a/src/games/stendhal/server/maps/quests/CoalForHaunchy.java +++ b/src/games/stendhal/server/maps/quests/CoalForHaunchy.java @@ -78,6 +78,8 @@ public class CoalForHaunchy extends AbstractQuest { private void offerQuestStep() { final SpeakerNPC npc = npcs.get("Haunchy Meatoch"); + + // player says quest when he has not ever done the quest before (rejected or just new) npc.add(ConversationStates.ATTENDING, ConversationPhrases.QUEST_MESSAGES, new QuestNotStartedCondition(QUEST_SLOT), @@ -93,7 +95,7 @@ public class CoalForHaunchy extends AbstractQuest { "Coal isn't easy to find. You normally can find it somewhere in the ground but perhaps you are lucky and find some in the old Semos Mine tunnels...", null); - + // player has completed the quest (doesn't happen here) npc.add(ConversationStates.ATTENDING, ConversationPhrases.QUEST_MESSAGES, new QuestCompletedCondition(QUEST_SLOT), @@ -101,13 +103,15 @@ public class CoalForHaunchy extends AbstractQuest { "I can go on with grilling my tasty steaks now! Thank you!", null); + // player asks about quest which he has done already and he is allowed to repeat it npc.add(ConversationStates.ATTENDING, ConversationPhrases.QUEST_MESSAGES, new AndCondition(new TimePassedCondition(QUEST_SLOT, 1, REQUIRED_MINUTES), new QuestStateStartsWithCondition(QUEST_SLOT, "waiting;")), ConversationStates.QUEST_OFFERED, "The last coal you brought me is mostly gone again. Will you bring me some more?", null); - + + // player asks about quest which he has done already but it is not time to repeat it npc.add(ConversationStates.ATTENDING, ConversationPhrases.QUEST_MESSAGES, new AndCondition(new NotCondition(new TimePassedCondition(QUEST_SLOT, 1, REQUIRED_MINUTES)), new QuestStateStartsWithCondition(QUEST_SLOT, "waiting;")), @@ -142,6 +146,7 @@ public class CoalForHaunchy extends AbstractQuest { triggers.add("stone coal"); triggers.addAll(ConversationPhrases.QUEST_MESSAGES); + // player asks about quest or says coal when they are supposed to bring some coal and they have it npc.add( ConversationStates.ATTENDING, triggers, new AndCondition(new QuestInStateCondition(QUEST_SLOT, "start"), new PlayerHasItemWithHimCondition("coal",25)), @@ -164,17 +169,18 @@ public class CoalForHaunchy extends AbstractQuest { } })); - + // player asks about quest or says coal when they are supposed to bring some coal and they don't have it npc.add( ConversationStates.ATTENDING, triggers, new AndCondition(new QuestInStateCondition(QUEST_SLOT, "start"), new NotCondition(new PlayerHasItemWithHimCondition("coal",25))), ConversationStates.ATTENDING, "You don't have the coal amount which I need yet. Go and pick some more pieces up, please.", null); - + npc.add( - ConversationStates.ATTENDING, triggers, - new QuestNotInStateCondition(QUEST_SLOT, "start"), + ConversationStates.ATTENDING, + Arrays.asList("coal","stone coal"), + new QuestNotInStateCondition(QUEST_SLOT,"start"), ConversationStates.ATTENDING, "Sometime you could do me a #favour ...", null); From 800eb4a26ec1d2bf865de2f265fc96bdac0b9387 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:50:57 +0000 Subject: [PATCH 14/25] Map issue at the door to ados market by kymara (ID: 3085465) --- tiled/Level 0/ados/city_n2.tmx | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tiled/Level 0/ados/city_n2.tmx b/tiled/Level 0/ados/city_n2.tmx index 4529333274..3df5806601 100644 --- a/tiled/Level 0/ados/city_n2.tmx +++ b/tiled/Level 0/ados/city_n2.tmx @@ -1,6 +1,5 @@ - - - + + @@ -141,27 +140,27 @@ - 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 From c27d2477b1cf2706b524a52a04d25879742c5ac9 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:53:20 +0000 Subject: [PATCH 15/25] More realistic texts by kymara --- .../server/maps/ados/city/ManWithHatNPC.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/games/stendhal/server/maps/ados/city/ManWithHatNPC.java b/src/games/stendhal/server/maps/ados/city/ManWithHatNPC.java index d981ceb23a..198ecfe3df 100644 --- a/src/games/stendhal/server/maps/ados/city/ManWithHatNPC.java +++ b/src/games/stendhal/server/maps/ados/city/ManWithHatNPC.java @@ -57,12 +57,12 @@ public class ManWithHatNPC implements ZoneConfigurator { @Override protected void createDialog() { - addGreeting("Sniff!"); - addHelp("When I lived together with my beloved wife, we used to travell a lot. We loved the beach on Athor Island! *Sigh* These memories are making me even more sad...Please, leave me alone now..."); - addQuest("I am too old and too sad to think about jobs for others...*sniff-sniff*"); - addJob("*Cry* I had to stop working after my wife died..."); - addOffer("Nothing, I lost my darling!"); - addGoodbye("Buuaaahaaaahaa!"); + addGreeting("Hello."); + addHelp("When I lived together with my beloved wife, we used to travel a lot. We loved the beach on Athor Island! But these memories make me sad now."); + addQuest("I am too old to think about jobs for others..."); + addJob("I stopped working after my wife died."); + addOffer("I have nothing to offer you."); + addGoodbye("Goodbye, thank you for talking with me."); } }; From a958c895c91a7264402702290e623c7e5389f3e9 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Mon, 11 Oct 2010 21:54:28 +0000 Subject: [PATCH 16/25] Added more coal sources, not close to each other, not easy reachable in a row, should be enough now (by bluelads99) --- data/conf/zones/semos.xml | 133 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 128 insertions(+), 5 deletions(-) diff --git a/data/conf/zones/semos.xml b/data/conf/zones/semos.xml index c5a40fa05f..ba42af864b 100644 --- a/data/conf/zones/semos.xml +++ b/data/conf/zones/semos.xml @@ -2554,6 +2554,75 @@ Mature sheep wanted: please speak to Sato class-name="games.stendhal.server.entity.mapstuff.useable.CoalSource" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2640,20 +2729,54 @@ Mature sheep wanted: please speak to Sato class-name="games.stendhal.server.entity.mapstuff.useable.CoalSource" /> - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From a775caa38f412acbb4b14f32ee386f6158665093 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 12 Oct 2010 06:52:59 +0000 Subject: [PATCH 17/25] correcting some texts by kymara --- .../server/maps/ados/market/OldFishermanNPC.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java b/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java index 00da6bd6e8..206a428421 100644 --- a/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java +++ b/src/games/stendhal/server/maps/ados/market/OldFishermanNPC.java @@ -64,13 +64,13 @@ public class OldFishermanNPC implements ZoneConfigurator { protected void createDialog() { addGreeting("Ahoy!"); addHelp("Harr my friend, my #whole #life long I was sitting in a boat, trying to catch some fish..."); - addReply("whole life","The feeling you have when fishies hang on your rod is awesome! Did you ever try to catch some by #yourself?"); - addReply("yourself", "You can ask my friend Santiago for help, he lives in a fisherhut somewhere in the city!"); + addReply("whole life","The feeling you have when fish hang on your rod is awesome! Did you ever try to catch some by #yourself?"); + addReply("yourself", "You can ask my friend Santiago for help, he lives in a hut somewhere in the city!"); addQuest("Ahoy Matey! I don't have any tasks for you but others do!"); - addJob("I am a fisherman. For many, many years I went fishing every day. There have been dangerous storms I had to get over and some reeeeeally big fish which almost drown my ship, but of course I always was able to #catch them!"); + addJob("I am a fisherman. For many, many years I went fishing every day. There have been dangerous storms I had to get through and some reeeeeally big fish which almost drown my ship, but of course I always was able to #catch them!"); addReply("catch","Hehe! I hope that I will be able to deliver some fish to the market one time..."); - addOffer("My fishing places on the sea are catched by some ugly #storm I can't drive out at the moment."); - addReply("storm", "The huge storm halfway destroyed my boat! Sorry matey, I can't offer you anything at the moment..."); + addOffer("My fishing places on the sea are caught in some ugly #storm so I can't venture out at the moment."); + addReply("storm", "The huge storm nearly destroyed my boat! Sorry matey, I can't offer you anything at the moment..."); addGoodbye("See you, matey! And be careful there on this slippy ground!"); } From f2c198ddba4416a51b0b69bc328035fc9f3970d1 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 12 Oct 2010 06:53:19 +0000 Subject: [PATCH 18/25] Corrections to the new texts in the pied piper quest --- .../maps/quests/piedpiper/AwaitingPhase.java | 28 +++++++++---------- .../maps/quests/piedpiper/InvasionPhase.java | 4 +-- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/games/stendhal/server/maps/quests/piedpiper/AwaitingPhase.java b/src/games/stendhal/server/maps/quests/piedpiper/AwaitingPhase.java index d6745bc76e..f055e200de 100644 --- a/src/games/stendhal/server/maps/quests/piedpiper/AwaitingPhase.java +++ b/src/games/stendhal/server/maps/quests/piedpiper/AwaitingPhase.java @@ -126,29 +126,29 @@ public class AwaitingPhase extends TPPQuest { private void fillConversations() { //piper - conversations.add("Hi Mayor. For what you called me here?"); + conversations.add("Good day, Mayor Chalmers. What did you call me here for?"); //mayor - conversations.add("Hello, very glad to see our respectable hero here. Who didnt hear about you, there is almost..."); + conversations.add("Hello, very glad to see our respectable hero here. Who hasn't heard about you, there is almost..."); //piper - conversations.add("Talk about your business to me, my time costs a much of moneys."); + conversations.add("Please talk about your business to me, my time is precious."); //mayor - conversations.add("... ok, what I talked about? Ah yes, our city have a little problem with #rats."); + conversations.add("... ok, what was I saying? Ah yes, our city has a little problem with #rats."); //piper conversations.add("Again?"); //mayor - conversations.add("Yes, these animals are of course too stupid to remember a lesson they have a few time ago."); + conversations.add("Yes, these animals are too stupid to remember a lesson they learnt only recently."); //piper - conversations.add("No problem, if you are ready to pay."); + conversations.add("I can help, if you are ready to pay."); //mayor - conversations.add("City have no other way to eliminate this source of infections. I will pay to you."); + conversations.add("Ados City has no other way to eliminate this nuisance. We will pay you."); //piper conversations.add("Do you know my usual price?"); //mayor conversations.add("Yes, I have it written somewhere in my papers."); //piper - conversations.add("Good. I will return for my reward soon, prepare it."); + conversations.add("Good. I will return for my reward soon, please prepare it."); //mayor - conversations.add("Dont worry, how can I break your trustworth to me and my city?"); + conversations.add("Don't worry, how can I break your trust in me and my city?"); } /** @@ -167,8 +167,8 @@ public class AwaitingPhase extends TPPQuest { private void setupDialog() { if(mayor.isTalking()) { mayor.say("Sorry, "+mayor.getAttending().getName()+ - " but i see that our city's saver here. I have to speak with him quickly."+ - " Please speak with me again after finish of our talking."); + " but I see that our city's savoiur is here. I have to speak with him quickly."+ + " Please speak with me again after we finish talking."); mayor.setCurrentState(ConversationStates.IDLE); }; mayor.setCurrentState(ConversationStates.ATTENDING); @@ -205,7 +205,7 @@ public class AwaitingPhase extends TPPQuest { return; }; TurnNotifier.get().dontNotify(this); - TurnNotifier.get().notifyInSeconds(4, this); + TurnNotifier.get().notifyInSeconds(8, this); } } @@ -253,8 +253,8 @@ public class AwaitingPhase extends TPPQuest { public String getSwitchingToNextPhaseMessage() { final String text = "Mayor Chalmers shouts: Thankfully, all the #rats are gone now, " + - "the Pied Piper hypnotized them and led them away to dungeons. "+ - "Those of you, who helped Ados City with the rats problem, "+ + "the Pied Piper hypnotized them and led them away to the dungeons. "+ + "Those of you who helped Ados City with the rats problem "+ "can get your #reward now."; return text; } diff --git a/src/games/stendhal/server/maps/quests/piedpiper/InvasionPhase.java b/src/games/stendhal/server/maps/quests/piedpiper/InvasionPhase.java index b25f001959..906493ff49 100644 --- a/src/games/stendhal/server/maps/quests/piedpiper/InvasionPhase.java +++ b/src/games/stendhal/server/maps/quests/piedpiper/InvasionPhase.java @@ -165,7 +165,7 @@ public class InvasionPhase extends TPPQuest { */ public String getSwitchingToNextPhaseMessage() { final String text = - "Mayor Chalmers shouts: Suddenly, #rats have captured city, "+ + "Mayor Chalmers shouts: Suddenly, #rats have captured the city, "+ //"Mayor Chalmers shouts: The #rats left as suddenly as they arrived. "+ //"Perhaps they have returned to the sewers. "+ "I now need to call the Pied Piper, a rat exterminator. "+ @@ -202,7 +202,7 @@ public class InvasionPhase extends TPPQuest { */ protected String ratsProblem() { final String text = "Mayor Chalmers shouts: Ados City is being invaded by #rats!"+ - " Anyone who will help to clean up city, will be rewarded!"; + " Anyone who will help to clean up the city, will be rewarded!"; return(text); } From f8757a09843b28ac82efed07c3b52cbd3c66d925 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 12 Oct 2010 06:54:55 +0000 Subject: [PATCH 19/25] add coal to grammar rules for getting 'piece of' by kymara --- src/games/stendhal/common/Grammar.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/common/Grammar.java b/src/games/stendhal/common/Grammar.java index 896ea238b5..49afed654f 100644 --- a/src/games/stendhal/common/Grammar.java +++ b/src/games/stendhal/common/Grammar.java @@ -269,7 +269,7 @@ public class Grammar { if (result.equals("meat") || result.equals("ham") || result.equals("cheese") || result.equals("wood") || result.equals("paper") || result.equals("iron") - || result.equals("chicken")) { + || result.equals("chicken") || result.equals("coal")) { result = addPrefixIfNotAlreadyThere(lowString, "piece of ", "pieces of "); } else if (result.endsWith(" ore")) { From bcd45b06e5de2fd790d753f70ad58986bed7d1b4 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 12 Oct 2010 19:04:41 +0000 Subject: [PATCH 20/25] remove the "at least" from message as he gives an approximate time remaining and you end up with for "at least about 1 and a half days" - also removed extra space by kymara --- src/games/stendhal/server/maps/quests/CoalForHaunchy.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/games/stendhal/server/maps/quests/CoalForHaunchy.java b/src/games/stendhal/server/maps/quests/CoalForHaunchy.java index 6e2aaa07e0..d79a0e786f 100644 --- a/src/games/stendhal/server/maps/quests/CoalForHaunchy.java +++ b/src/games/stendhal/server/maps/quests/CoalForHaunchy.java @@ -117,7 +117,7 @@ public class CoalForHaunchy extends AbstractQuest { new AndCondition(new NotCondition(new TimePassedCondition(QUEST_SLOT, 1, REQUIRED_MINUTES)), new QuestStateStartsWithCondition(QUEST_SLOT, "waiting;")), ConversationStates.ATTENDING, null, - new SayTimeRemainingAction(QUEST_SLOT, 1, REQUIRED_MINUTES, "The coal amount behind my counter is still high enough. I will not need more for at least ")); + new SayTimeRemainingAction(QUEST_SLOT, 1, REQUIRED_MINUTES, "The coal amount behind my counter is still high enough. I will not need more for ")); // Player agrees to get the coal npc.add(ConversationStates.QUEST_OFFERED, From 4a3c787aab4e8424577e630a8db816b5dc51b541 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 12 Oct 2010 19:13:47 +0000 Subject: [PATCH 21/25] sorting change log --- doc/CHANGES.txt | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/doc/CHANGES.txt b/doc/CHANGES.txt index 1a17dbe153..fa810f2d56 100644 --- a/doc/CHANGES.txt +++ b/doc/CHANGES.txt @@ -2,31 +2,33 @@ Changelog --------- 0.88 + +*features* - right click on a player to start trading with them using a GUI -- don't reset to townhall on minor releases -- new music in orril castle -- can have a detail layer over outfits -- new game for Semos Mine Town Revival Weeks: 9 switches -- new NPC Andy in Ados near the church -- new NPC Haunchy Meatoch on Ados market -- new NPC Florence Boullabaisse on Ados market -- new NPC Fritz on Ados market -- new NPC Barbarus in Semos Mine -- new NPC Ortiv Milquetoast in Kirdneh River House -- new fish soup maker on Ados market (Florence Boullabaisse) -- added new quest on Ados market to Haunchy Meatoch -- added more quest histories -- rest of the Wt replaced with swing - corpse and chest windows raise themselves if one with an already open window is inspected - buddies are sorted first by online status, then by name +- don't reset to townhall on minor releases - deathmatch assistant announces completion and player can directly claim victory + +*world* +- new NPC Andy in Ados near the church +- new NPC Haunchy Meatoch on Ados market with a new quest +- new NPC Florence Boullabaisse on Ados market who will make a tasty Fish Soup for you +- new NPC Fritz on Ados market +- new NPC Barbarus in Semos Mine +- new NPC Ortiv Milquetoast in Kirdneh River House with a new quest +- new fish soup maker on Ados market (Florence Boullabaisse) +- new music in Orril Castle - new items fish soup, garlic, grilled steak, coal, pick, red lionfish - coal sources for extracting coal - added garlic to Sues sales list +- new game for Semos Mine Town Revival Weeks: 9 switches *website* - animated/large NPCs like tomi and vulcanus now have an image + + 0.87.1 - fixed an issue causing the client to be unresponsive for some windows users From fe5fdda5ff9bf2e36708a6796ff01ec548a47b58 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Tue, 12 Oct 2010 19:50:17 +0000 Subject: [PATCH 22/25] fix texts for grammar and style by kymara --- .../server/maps/kirdneh/river/RetiredTeacherNPC.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/games/stendhal/server/maps/kirdneh/river/RetiredTeacherNPC.java b/src/games/stendhal/server/maps/kirdneh/river/RetiredTeacherNPC.java index 37a64091bf..c100b52283 100644 --- a/src/games/stendhal/server/maps/kirdneh/river/RetiredTeacherNPC.java +++ b/src/games/stendhal/server/maps/kirdneh/river/RetiredTeacherNPC.java @@ -74,17 +74,17 @@ public class RetiredTeacherNPC implements ZoneConfigurator { @Override protected void createDialog() { - addGreeting("Ohh a stranger found my hidden house, welcome!"); + addGreeting("Ohh, a stranger found my hidden house, welcome!"); addHelp("Never ever get into trouble with assassins when they are stronger than you! They will come to get you otherwise! And some of them are waiting downstairs under my basement!"); - addJob("I was a teacher for alchemy once but some of my students turned into ugly bandits and assassins... I don't know what happens in Faiumoni at the moment as though as I just stay in my save house the whole day long..."); - addOffer("Sorry, but I can't offer you anything... I have some mayor problems in my basement at the moment..."); + addJob("I was a teacher for alchemy once but some of my students turned into ugly bandits and assassins... I don't know what happens in Faiumoni at the moment, though, as I just stay in my safe house the whole day long..."); + addOffer("Sorry, but I can't offer you anything... I have some major problems in my basement at the moment..."); addQuest("I want to prepare a mixture for keeping the assassins and bandits in my cellar. I could need some ingredients for that soon..."); - addGoodbye("Take care of you and please be fast with visiting me again, I'm scared alone!"); + addGoodbye("Take care of yourself and please return soon to visit me again, I'm scared alone!"); } }; - npc.setDescription("You see Ortiv Milquetoast. Although he has some kind of teacher aura around him, he seems to be quite scared and nervous."); + npc.setDescription("You see Ortiv Milquetoast. Though he has some kind of teacher aura around him, he seems to be quite scared and nervous."); npc.setEntityClass("retiredteachernpc"); npc.setPosition(15, 28); npc.setDirection(Direction.RIGHT); From 6374a108bfc827fa358d2dff3e622e9072ed7e23 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Thu, 14 Oct 2010 17:20:45 +0000 Subject: [PATCH 23/25] updated version --- build.ant.properties | 2 +- runserver.bat | 2 +- runserver.sh | 2 +- src/games/stendhal/client/update/Version.java | 2 +- src/games/stendhal/common/Debug.java | 2 +- src/games/stendhal/server/core/engine/GenerateINI.java | 2 +- stendhal.jnlp | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.ant.properties b/build.ant.properties index 884c13aaa2..78bc56d438 100644 --- a/build.ant.properties +++ b/build.ant.properties @@ -73,7 +73,7 @@ version_server = http://arianne.sourceforge.net/stendhal.version # current version of stendhal version.old = 0.87 -version = 0.87.6 +version = 0.88 # javac options javac.deprecation = true diff --git a/runserver.bat b/runserver.bat index 463eae3b1f..2334b3d39b 100644 --- a/runserver.bat +++ b/runserver.bat @@ -1,3 +1,3 @@ -set STENDHAL_VERSION=0.87.6 +set STENDHAL_VERSION=0.88 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 044fe69de6..1782fd3901 100644 --- a/runserver.sh +++ b/runserver.sh @@ -1,5 +1,5 @@ #!/bin/sh -STENDHAL_VERSION="0.87.6" +STENDHAL_VERSION="0.88" 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/update/Version.java b/src/games/stendhal/client/update/Version.java index 096fb9e899..a868f73a70 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. */ - private static final String VERSION = "0.87.6"; + private static final String VERSION = "0.88"; /** * 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 b31788d5fa..ba900bc466 100644 --- a/src/games/stendhal/common/Debug.java +++ b/src/games/stendhal/common/Debug.java @@ -26,7 +26,7 @@ public class Debug { /** version. */ // Note: This line is updated by build.xml using a regexp so be sure to adjust it in case you modify this line. - public static final String VERSION = "0.87.6"; + public static final String VERSION = "0.88"; public static final String PRE_RELEASE_VERSION = null; diff --git a/src/games/stendhal/server/core/engine/GenerateINI.java b/src/games/stendhal/server/core/engine/GenerateINI.java index 8c923d9ae4..007a2b463b 100644 --- a/src/games/stendhal/server/core/engine/GenerateINI.java +++ b/src/games/stendhal/server/core/engine/GenerateINI.java @@ -246,7 +246,7 @@ public class GenerateINI { out.println(); out.println("server_typeGame=" + gameName); out.println("server_name=" + gameName + " Marauroa server"); - out.println("server_version=0.87.6"); + out.println("server_version=0.88"); 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/stendhal.jnlp b/stendhal.jnlp index fee5d55594..1ebdf08ac0 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 - + From 5f9248b02d44f96ae911e3bef514e4c98d835c34 Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sun, 24 Oct 2010 17:48:39 +0000 Subject: [PATCH 24/25] resaved without background color by kymara --- data/sprites/outfit/detail_1.png | Bin 2037 -> 1516 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data/sprites/outfit/detail_1.png b/data/sprites/outfit/detail_1.png index 10d1c14ec378db1946a921eb42c8ec249eba63bc..cdd66d3ba8b1d866b74a5d13320196cc974bda6d 100644 GIT binary patch literal 1516 zcmeAS@N?(olHy`uVBq!ia0vp^6Brm6893O0teEis{y>VcILO_JVcj{Imp~3%lDE4H z!+#K5uy^@npa^GyM`SSr1Gg{;GcwGYBLNg-FY)wsWxvHGA*dlIb!){o1_ss~PZ!6K zid%2*?k&9SA<^)VUnb=`!|Dl4ZTn8>u3%p3bEQG)>Vhd3W2H}t6g^v^713JQ$ivmb z+4cWUtljw@=Ip$@hP&nVK^t_#d@r-eWTkKl2rxN0aB#4+GyqvljEV|CmIF`#$bv|9 zM2AK$RrmUH#9m_Fr(v zKkxgmbi>%%T8%{_@1M`GT>(^7(bc~7zW%JIxAxi|%l`D;V13-R!?zOo*O@i$x@v#a z`OZ;`+mmniF5lbld#fX8=k$MH-mLq(uDalB!@lT0SHx;B+y3d1k3Rgf<9y~9vG<;A zCM6BO1yzLu${+sz_(bO7ve)Mo=PhKub8Jh-wC3swXQ~(UM;wdo3Fp2S`)AIRva@e@ zm9O9X_wS;}WA-28Z@q8a6}+NaD9Co_?|c5IuGe?HjI=(w{Hk7AA7AA6lzGfgONzc% zE}L}ttNdp6t&>k10u7wsI`vEYgtvR|9QyL*x}}Ae5o2k#{@?WuOI}T|HE7gGW&#Eq z3lk_D85BZgGyG7j?q-?@C;{Dt5#6ivIqH zbxxX!^L&2;Ltc7+=8hND3*N2Fb+0>@yuaSwxoEE4^r}j`AGd#ed-6>`?{cPJB^Ph& zl+RBxzc0KyJ6HId*84`Yxwm#pq+5RTu9>jo<<&bI!)&E)<3N4_$>nwIlxiGAm}js9wo z6b+0CNZ2l@t(c{!AjsJtooDOyQ{7O~rZ1Jc01%Cuj zhg!_GGq>G-e&_sf{nx*zocO)NUhTpCjPQUun?}dvO zw!WWt!FT!AxqkP1Z-guh{2uNHjCHZIMq+0_$f+1N{!%Z``1Pcqsr{Y$^4I4c*4}yG z9Z`Sr_Usd?^XBZI{N~-kZ3RI$y7$Vdq|{g)GJO|a;oAfW zen`<0&}G9RI-vrX0Sr99^Pcc-s4&y~)vo8AHPHJ?Ht(^PF?u-#_pBd!OfhpXdF(&+m);s$%YS{C*{{ zrv8C=%trt~7I)G10w!)k$Ufz&drqZqsm4gF0xcB?Zr)D^PTS``d?ls-D^RaWe~cX( zr_*z%6a0r*G!5=S(88>-VsxQIOV%b_(XODYIduU#hw&BjT zZ~tTwMyJRVT^5s{&GCXwItYwq~nRr<*3*NkbSbGA4p^@IgOrBU&7&v?K3>!YqMvYwf{bIrgIr<9AR z_J1K3rdv0uhX&qrmZ>63=P^PLYS5F$$Z-&_YE4=SB5vr`o5K*}$3jdOi0_4>`DT2c z0P%dUT?Ysg$pzUJoi)Kk#QGa`CW-_WQ;K{Lr(7R-qqTsQj5G%H@D*B zX4v2guVkd|fC&+Z}$xi$@O0{)P~Btj>DbD;-~H|dh1(bPzIUz#MRFG zT&F-QDtr8ows*HdpM(2nFP!X`{7Pk^haNnU-Vm9#PBugx)md{{9T*+q+f>oy2_-@L zijz5o`#vcRG%ffUKLf4^@W{zEO3XFuR0#L#Njz(sk24eRwdA?0e&BZ20^SHz8qgx# z>2T=Fl}rU24D$|39__>1&olyk>KQi{1kg>VkC6-^Xw*$9xn6u!=46!Mkn$tHKqIps zX%pcFUpmbktJyEUT{4DspI>jS^CEi-0wUdo1dN^NFmch^Z#^~2NC#%nVHpHpZq6GZ z%Q?Qg6__;Po<5iF$UYrSGpjTsTc*801bi>ppiq2EJhv2yU$-Ayq4heNHEMl zXtvvr7NcHM@EV$3Iwesh=FzdfR>GSc>#tW+d%!94RtY$oQ*@bBY(*RA2_FfN0{$O4 zXZ+*_W?V`^Y18Z;qU7V_UXQTu6Hfy#DCtDps2zE;nJ<&RxN<~WqVT84e@~ow##V&{ z|2mbu!Mpoqo-T=%NeL#U`jrcN4Yuih+WoUPc&ruZT1&0nkoVKMK?0+Oy@A$C^r9$r z)Wz6I$-zHfhL~~C1jkSVb&t&*?_TespSw3aN1j}y%DZsxiKPI=J0Iwlj}{-Np2 zN7pq6-%YO;V!cEvp;-qeSo&u65ssK)BEwTb?u}FyLmT<;RXh*XmWzN{(znemOtEuL z?;ryt1LIk9i$Vz&!S6B67xe3qz!1cEdKlF9QXJo`^imVNi+_HuDEtK;YuUPM4TP5F z+w*4^nQTVuLUPviOg3hLjy#bUZso)MFr4{;n_L5qr;AzXrdEr1Bbo%giPPdSkE&KA z#;f{g3ua8)$uAq@hPIw*N9=qr7(M5)qINy@h~u6swgDkHpPkq>Y>fuP1*SLJx<0OdG7yM0>|<{uSTZ$NojIJMi8h}XTSwgR$=3CfO=zCS zbdBS~6OCy{6fTIck2U74<{+U@H+VKIO0|&mv&)^}1&bPWhM`CO{r@o9l%cU!x#FS7 z`@OSHF?ETAsKj_3rg<}hpb$t+1>?%fg{p;FO)E{a8V(ZB8D7{(%fk~$tA3ktXxZVM zEn)+Jph*(hqym6xKrJxCBKy-Fz^;!UlljYqew*4MBgm(GwYqu#<1gAd*)~}F-u)dx C;i5wT From 6a9ce203d85e30b1c9531228ef99a2c3e90a6a9d Mon Sep 17 00:00:00 2001 From: Hendrik Brummermann Date: Sat, 30 Oct 2010 23:35:06 +0000 Subject: [PATCH 25/25] temporary workaround until karma can be implemented --- src/games/stendhal/server/entity/item/Dice.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/games/stendhal/server/entity/item/Dice.java b/src/games/stendhal/server/entity/item/Dice.java index bbabb1864a..292079ea9d 100644 --- a/src/games/stendhal/server/entity/item/Dice.java +++ b/src/games/stendhal/server/entity/item/Dice.java @@ -104,10 +104,13 @@ public class Dice extends Item { /** * Throw the dice. */ - private void randomize() { + void randomize() { topFaces = new int[NUMBER_OF_DICE]; for (int i = 0; i < NUMBER_OF_DICE; i++) { - final int topFace = Rand.roll1D6(); + int topFace = Rand.roll1D6(); + if (topFace == 6) { + topFace = Rand.roll1D6(); + } topFaces[i] = topFace; } }