Fixes and more (#69)

* Fixes

Fixed #11 and implemented a beta command for testing (stops the need to go into database and manually change  when debugging, very slow, now one command in game, very fast)

* Space to continue

Does what it says on the tin!

* Fixes + more

What I've done this update:
- Fixed tutorial island's chef giving infinite amounts of buckets and water to players
- Fixed fishing without a tool.
- Added the wilderness teleport lever to Edgeville south of the bank (as some have requested)
- Added some useful tools for editing cache.

Enjoy!
This commit is contained in:
Jamix77 2020-01-26 21:30:32 +00:00 committed by Daniel Ginovker
parent 34a24140c1
commit 0fc8d6ee4c
1207 changed files with 66670 additions and 27 deletions

View file

@ -73,7 +73,8 @@ public final class FishingPulse extends SkillPulse<NPC> {
if (option == null) {
return false;
}
if (!player.getInventory().containsItem(option.getTool()) && !hasBarbTail() && isBareHanded(player)) {
player.debug(String.valueOf(player.getInventory().containsItem(option.getTool())));
if (!player.getInventory().containsItem(option.getTool()) && !hasBarbTail()) {
//System.out.println(isBareHanded(player));
player.getDialogueInterpreter().sendDialogue("You need a " + option.getTool().getName().toLowerCase() + " to catch these fish.");
stop();

View file

@ -312,6 +312,7 @@ public final class GameWorld {
LandscapeParser.addGameObject(new GameObject(724, new Location(2341, 3693, 0), 10, 0));
//LandscapeParser.addGameObject(new GameObject(6097, new Location(2343, 3690, 0), 10, 0));
LandscapeParser.addGameObject(new GameObject(1317, new Location(2343, 3690, 0), 10, 3));
LandscapeParser.addGameObject(new GameObject(1814, new Location(3090, 3475, 0), 4, 0));//edgeville lever
NPC[] npcs = new NPC[]{new NPC(494, new Location(2327, 3687, 0))};
for (NPC npc : npcs) {
npc.setDirection(Direction.EAST);

View file

@ -58,6 +58,7 @@ public class IoEventHandler {
ByteBuffer buffer = ByteBuffer.allocate(100_000);
IoSession session = (IoSession) key.attachment();
if (channel.read(buffer) == -1) {
//just when a client closes their client, nothing to worry about.
throw new IOException("An existing connection was disconnected!");
}
buffer.flip();

View file

@ -1,5 +1,15 @@
package org.crandor.net.registry;
import java.nio.ByteBuffer;
import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.crandor.ServerConstants;
import org.crandor.cache.misc.buffer.ByteBufferUtils;
import org.crandor.game.node.entity.player.info.portal.PlayerSQLManager;
import org.crandor.game.system.SystemManager;
@ -9,12 +19,6 @@ import org.crandor.game.system.task.TaskExecutor;
import org.crandor.net.Constants;
import org.crandor.net.IoSession;
import org.crandor.net.event.LoginReadEvent;
import org.keldagrim.ServerConstants;
import java.nio.ByteBuffer;
import java.sql.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Handles the registry of new accounts.
@ -163,11 +167,7 @@ public class AccountRegister extends SQLEntryHandler<RegistryDetails> {
//If the management server's settings register new users with the server's clan chat
//I believe if there was no entry there would be errors during the registration, hence a null entry if the setting is off
if (ServerConstants.NEW_PLAYER_DEFAULT_CLAN == true){
statement.setString(7,ServerConstants.SERVER_NAME);
}else{
statement.setString(7,null);
}
statement.executeUpdate();
SQLManager.close(statement.getConnection());
}

View file

@ -90,6 +90,7 @@ public final class WildernessLeverPlugin extends OptionHandler {
}
}
},
MAGE_BANK("mage's cave", 5959, 5960, Location.create(3090, 3956, 0), Location.create(2539, 4712, 0)), ARENA("arena", 9706, 9707, Location.create(3105, 3956, 0), Location.create(3105, 3951, 0)) {
@Override
public boolean canPull(Player player, GameObject object) {

View file

@ -43,16 +43,26 @@ public class MasterChefDialogue extends DialoguePlugin {
Component.setUnclosable(player, interpreter.sendDialogues(npc, FacialExpression.NO_EXPRESSION, "Ahh! Welcome, newcomer. I am the Master Chef, Lev. It", "is here I will teach you how to cook food truly fit for a", "king."));
break;
case 20:
Component.setUnclosable(player, interpreter.sendDialogues(npc, FacialExpression.NO_EXPRESSION, "I see you have lost your pot of flour and bucket of water,", "No worries i will supply you with more."));
if (player.getInventory().freeSlots() >= 2) {
player.getInventory().add(new Item(1933));
player.getInventory().add(new Item(1929));
if (player.getInventory().containsAll(1933,1929)) {
Component.setUnclosable(player, interpreter.sendDialogues(npc, FacialExpression.NO_EXPRESSION, "Mix together the flour and water to form a dough."));
stage = 1;
} else if (player.getInventory().containsItem(new Item(2307))) {
Component.setUnclosable(player, interpreter.sendDialogues(npc, FacialExpression.NO_EXPRESSION, "You already have some dough, no need", "to make more."));
stage = 1;
} else {
Component.setUnclosable(player, interpreter.sendDialogue("You don't have enough inventory space."));
stage = 99;
Component.setUnclosable(player, interpreter.sendDialogues(npc, FacialExpression.NO_EXPRESSION, "I see you have lost your pot of flour and bucket of water,", "No worries i will supply you with more."));
if (player.getInventory().freeSlots() >= 2) {
player.getInventory().add(new Item(1933));
player.getInventory().add(new Item(1929));
stage = 1;
} else {
Component.setUnclosable(player, interpreter.sendDialogue("You don't have enough inventory space."));
stage = 99;
}
break;
}
break;
case 19:
if (!player.getInventory().contains(1929, 1) && !player.getInventory().containItems(1933)) {
if (player.getInventory().hasSpaceFor(new Item(1929, 1)) && player.getInventory().hasSpaceFor(new Item(1933, 1))) {

View file

@ -1,6 +1,5 @@
package plugin.tutorial;
import org.crandor.plugin.InitializablePlugin;
import org.crandor.game.content.dialogue.DialoguePlugin;
import org.crandor.game.content.dialogue.FacialExpression;
import org.crandor.game.content.global.tutorial.TutorialSession;
@ -15,7 +14,7 @@ import org.crandor.game.world.GameWorld;
import org.crandor.game.world.map.Location;
import org.crandor.net.amsc.MSPacketRepository;
import org.crandor.net.amsc.WorldCommunicator;
import org.keldagrim.ServerConstants;
import org.crandor.plugin.InitializablePlugin;
/**
* Handles the tutorial completition dialogue (skippy, magic instructor)
@ -306,12 +305,7 @@ public class TutorialCompletionDialogue extends DialoguePlugin {
//Appending the welcome message and some other stuff
player.getPacketDispatch().sendMessage("Welcome to " + GameWorld.getName() + ".");
//If the management server's settings register new users with the server's clan chat, we would have to simulate joining a clan
if (ServerConstants.NEW_PLAYER_DEFAULT_CLAN == true) {
player.getPacketDispatch().sendMessage("Attempting to join channel...:clan:");
player.getPacketDispatch().sendMessage("Now talking in clan channel " + ServerConstants.SERVER_NAME + ":clan:");
player.getPacketDispatch().sendMessage("To talk, start each line of chat with the / symbol.:clan:");
}
player.unlock();
TutorialSession.getExtension(player).setStage(TutorialSession.MAX_STAGE + 1);

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-13">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="data/libs/mysql-connector-java-5.1.30-bin.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Arios Editor</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -0,0 +1,10 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=13
org.eclipse.jdt.core.compiler.compliance=13
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.release=enabled
org.eclipse.jdt.core.compiler.source=13

View file

@ -0,0 +1,3 @@
@echo off
java -server -Xms512m -Xmx1536m -XX:NewSize=32m -XX:MaxPermSize=128m -XX:+UseConcMarkSweepGC -XX:+ExplicitGCInvokesConcurrent -XX:+AggressiveOpts -cp bin;data/libs/*; org.arios.Runner
pause

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more