From dcc7984e278b64450e30a4d0d308b333fd3f8eb8 Mon Sep 17 00:00:00 2001
From: Gptaqbc <56596815+Gptaqbc@users.noreply.github.com>
Date: Sat, 9 Nov 2019 00:08:56 -0500
Subject: [PATCH] Teleother (#144)
* Update NpcHandler.class
Fixed the diagonal safefpotting combat bug. The NPC will move when it detects that the player is standing diagonally to it.
Still have some issue around objects but that's another story.
* Update NpcHandler.java
Fixed the diagonal safefpotting combat bug. The NPC will move when it detects that the player is standing diagonally to it.
Still have some issue around objects but that's another story.
closes #47
* Buy/Sell-X--Buying-loop-lagging-issue-fix--General-shop-using-fixes--Trading-amount-fix
- Added buy/sell X feature
- Fixed a lag with the buying loop when buying high amount. Instead of spam buying 1 at a times it divide the amount to buy in equal parts and buy in increments.
- Cant remember at all I'll edit after eating.
* Removing double sell message "You sold x items for x gp".
Removing double sell message "You sold x items for x gp".
* Fixing trading bug not working at some places and re commiting the shopAssistant removal of sell message twice
Fixing trading bug not working at some places and re commiting the shopAssistant removal of sell message twice
* reverting stuff I broke in this file
reverting stuff I broke in this file
* Teleother fixed
Teleother fixed.
* fixed an issue I forgot to test :)
fixed an issue I forgot to test :)
---
.gitignore | 1 +
.idea/misc.xml | 2 +-
.idea/workspace.xml | 136 ++++++++++++++++--
.../data/logs/shopbuying/bot.txt | 1 +
.../data/logs/shopselling/bot.txt | 1 +
.../game/content/combat/CombatAssistant.java | 8 +-
.../content/combat/magic/CastOnOther.java | 12 +-
.../src/redone/game/players/Trading.java | 9 +-
.../src/redone/game/shops/ShopAssistant.java | 2 +-
.../redone/net/packets/impl/AttackPlayer.java | 35 +++--
10 files changed, 171 insertions(+), 36 deletions(-)
create mode 100644 2006Redone Server/data/logs/shopbuying/bot.txt
create mode 100644 2006Redone Server/data/logs/shopselling/bot.txt
diff --git a/.gitignore b/.gitignore
index b3833c21..33601148 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
2006Redone\ Server/data/characters/
.idea/
+.idea/workspace.xml
diff --git a/.idea/misc.xml b/.idea/misc.xml
index dc3ff854..048d263d 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 588ee8b9..dc16a57c 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -7,13 +7,13 @@
-
-
-
-
-
-
+
+
+
+
+
+
@@ -21,9 +21,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ math.sq
+
+
+
+
+
+
+
+
+
@@ -44,7 +96,7 @@
-
+
@@ -87,8 +139,8 @@
-
+
@@ -106,17 +158,85 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/2006Redone Server/data/logs/shopbuying/bot.txt b/2006Redone Server/data/logs/shopbuying/bot.txt
new file mode 100644
index 00000000..a9e6c370
--- /dev/null
+++ b/2006Redone Server/data/logs/shopbuying/bot.txt
@@ -0,0 +1 @@
+[2019/11/08] 19:22 bot bought newcomer map from store id: 88 for 1 coins
diff --git a/2006Redone Server/data/logs/shopselling/bot.txt b/2006Redone Server/data/logs/shopselling/bot.txt
new file mode 100644
index 00000000..3644cbe6
--- /dev/null
+++ b/2006Redone Server/data/logs/shopselling/bot.txt
@@ -0,0 +1 @@
+[2019/11/08] 19:22 bot sold newcomer map to store id: 88 for 1 coins
diff --git a/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java b/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java
index bfdf107b..8d37c187 100644
--- a/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java
+++ b/2006Redone Server/src/redone/game/content/combat/CombatAssistant.java
@@ -2057,20 +2057,20 @@ public class CombatAssistant {
return false;
}
}
- if (CastOnOther.castOnOtherSpells(c)) {
+ if (CastOnOther.castOnOtherSpells(c.castingSpellId)) {
return true;
}
if (!PlayerHandler.players[c.playerIndex].inWild()
&& !PlayerHandler.players[c.playerIndex].inCwGame()
- && !CastOnOther.castOnOtherSpells(c)) {
+ && !CastOnOther.castOnOtherSpells(c.castingSpellId)) {
c.getActionSender().sendMessage(
- "That player is not in the wilderness.");
+ "That player is not in the wilderness." + c.castingSpellId);
c.stopMovement();
resetPlayerAttack();
return false;
}
if (!c.inWild() && !PlayerHandler.players[c.playerIndex].inCwGame()
- && !CastOnOther.castOnOtherSpells(c)) {
+ && !CastOnOther.castOnOtherSpells(c.castingSpellId)) {
c.getActionSender().sendMessage(
"You are not in the wilderness.");
c.stopMovement();
diff --git a/2006Redone Server/src/redone/game/content/combat/magic/CastOnOther.java b/2006Redone Server/src/redone/game/content/combat/magic/CastOnOther.java
index fe7e4bcd..a11107d7 100644
--- a/2006Redone Server/src/redone/game/content/combat/magic/CastOnOther.java
+++ b/2006Redone Server/src/redone/game/content/combat/magic/CastOnOther.java
@@ -8,10 +8,10 @@ import redone.game.players.PlayerHandler;
public class CastOnOther extends CastRequirements {
- public static boolean castOnOtherSpells(Client c) {
+ public static boolean castOnOtherSpells(int castingSpellId) {
int[] spells = { 12435, 12455, 12425, 30298, 30290, 30282, };
for (int spell : spells) {
- if (c.castingSpellId == spell) {
+ if (castingSpellId == spell) {
return true;
}
}
@@ -44,9 +44,9 @@ public class CastOnOther extends CastRequirements {
if (castOn != null) {
if (castOn.distanceToPoint(c.absX, c.absY) <= 15) {
if (c.heightLevel == castOn.heightLevel) {
- c.getPlayerAssistant().sendFrame126(location[type], 12560);
- c.getPlayerAssistant().sendFrame126(c.playerName, 12558);
- c.getPlayerAssistant().showInterface(12468);
+ castOn.getPlayerAssistant().sendFrame126(location[type], 12560);
+ castOn.getPlayerAssistant().sendFrame126(c.playerName, 12558);
+ castOn.getPlayerAssistant().showInterface(12468);
castOn.teleotherType = type;
}
}
@@ -57,7 +57,7 @@ public class CastOnOther extends CastRequirements {
boolean decline) {
c.getPlayerAssistant().removeAllWindows();
final int[][] coords = { { 3222, 3218 }, // LUMBRIDGE
- { 2964, 3378 }, // FALADOR
+ { 2967, 3378 }, // FALADOR
{ 2757, 3477 }, // CAMELOT
};
if (!decline) {
diff --git a/2006Redone Server/src/redone/game/players/Trading.java b/2006Redone Server/src/redone/game/players/Trading.java
index e839a0af..3e434b3a 100644
--- a/2006Redone Server/src/redone/game/players/Trading.java
+++ b/2006Redone Server/src/redone/game/players/Trading.java
@@ -70,9 +70,9 @@ public class Trading {
}
}
public boolean isCloseTo(Client tradedPlayer) {
- ValueRange PlayerCoordRangeX = ValueRange.of(tradedPlayer.currentX - 3, tradedPlayer.currentX + 3);
- ValueRange PlayerCoordRangeY = ValueRange.of(tradedPlayer.currentY - 3, tradedPlayer.currentY + 3);
- if (PlayerCoordRangeX.isValidIntValue(player.currentX) && PlayerCoordRangeY.isValidIntValue(player.currentY)) {
+ ValueRange PlayerCoordRangeX = ValueRange.of(tradedPlayer.absX - 3, tradedPlayer.absX + 3);
+ ValueRange PlayerCoordRangeY = ValueRange.of(tradedPlayer.absY - 3, tradedPlayer.absY + 3);
+ if (PlayerCoordRangeX.isValidIntValue(player.absX) && PlayerCoordRangeY.isValidIntValue(player.absY)) {
return true;
} else {
return false;
@@ -252,9 +252,6 @@ public class Trading {
if (o == null) {
return false;
}
- player.getActionSender().sendMessage("amount: " + amount);
- player.getActionSender().sendMessage("player.playerItems[fromSlot]: " + player.playerItems[fromSlot]);
- player.getActionSender().sendMessage("itemID + 1: " + itemID + 1);
if (!(player.playerItems[fromSlot] == itemID + 1 )){//&& player.playerItemsN[fromSlot] >= amount)) { I removed this check to permit trading max amount of item in inventory even when amount is higher than quantity in inventory.
player.getActionSender().sendMessage("You don't have that amount!");
return false;
diff --git a/2006Redone Server/src/redone/game/shops/ShopAssistant.java b/2006Redone Server/src/redone/game/shops/ShopAssistant.java
index 70a6e08d..c9fc3eaa 100644
--- a/2006Redone Server/src/redone/game/shops/ShopAssistant.java
+++ b/2006Redone Server/src/redone/game/shops/ShopAssistant.java
@@ -394,7 +394,7 @@ public class ShopAssistant {
addShopItem(itemID, amount); //Add item to the shop.
if (player.getPlayerAssistant().isPlayer()) { //Logger
GameLogger.writeLog(player.playerName, "shopselling", player.playerName + " sold " + itemName + " to store id: " + player.myShopId + " for" + GameLogger.formatCurrency(TotPrice2) + " coins");
- player.getActionSender().sendMessage("You sold " + amount + " " +itemName + " for " + TotPrice2 + " gp." );
+ //Remove this later. I added it to push this class because a fuck happened with my last commit.
}
} else {
player.getActionSender().sendMessage("You don't have enough space in your inventory.");
diff --git a/2006Redone Server/src/redone/net/packets/impl/AttackPlayer.java b/2006Redone Server/src/redone/net/packets/impl/AttackPlayer.java
index dd9d721a..7ac21afc 100644
--- a/2006Redone Server/src/redone/net/packets/impl/AttackPlayer.java
+++ b/2006Redone Server/src/redone/net/packets/impl/AttackPlayer.java
@@ -181,6 +181,7 @@ public class AttackPlayer implements PacketType {
* Attack player with magic
**/
case MAGE_PLAYER:
+ c.getActionSender().sendMessage("maging");
if (!c.mageAllowed) {
c.mageAllowed = true;
break;
@@ -195,9 +196,10 @@ public class AttackPlayer implements PacketType {
c.playerIndex = c.getInStream().readSignedWordA();
int castingSpellId = c.getInStream().readSignedWordBigEndian();
+ c.castingSpellId = castingSpellId;
c.usingMagic = false;
- boolean teleother = CastOnOther.castOnOtherSpells(c);
+ boolean teleother = CastOnOther.castOnOtherSpells(castingSpellId);
if (PlayerHandler.players[c.playerIndex] == null) {
break;
@@ -209,11 +211,28 @@ public class AttackPlayer implements PacketType {
if (c.playerRights == 3) {
c.getActionSender().sendMessage(
- "Casting Spell id: " + c.castingSpellId + ".");
+ "Casting Spell id: " + castingSpellId + ".");
}
+
+ if (teleother) {
+ c.stopMovement();
+ c.getCombatAssistant().resetPlayerAttack();
+ if (c.inTrade) {
+ c.getTrading().declineTrade(true);
+ }
+ if (c.inWild()
+ && c.wildLevel > Constants.NO_TELEPORT_WILD_LEVEL) {
+ c.getActionSender().sendMessage(
+ "You can't teleport above level "
+ + Constants.NO_TELEPORT_WILD_LEVEL
+ + " in the wilderness.");
+ break;
+ }
+ }
+
switch (c.castingSpellId) {
case 12425:
- CastOnOther.teleOtherDistance(c, 1, c.playerIndex);
+ CastOnOther.teleOtherDistance(c, 0, c.playerIndex);
break;
case 12435:
CastOnOther.teleOtherDistance(c, 1, c.playerIndex);
@@ -222,12 +241,10 @@ public class AttackPlayer implements PacketType {
CastOnOther.teleOtherDistance(c, 2, c.playerIndex);
break;
}
+
if (teleother) {
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
- if (c.inTrade) {
- c.getTrading().declineTrade(true);
- }
}
for (int i = 0; i < MagicData.MAGIC_SPELLS.length; i++) {
@@ -290,9 +307,8 @@ public class AttackPlayer implements PacketType {
}
if (c.usingMagic) {
- if (c.goodDistance(c.getX(), c.getY(),
- PlayerHandler.players[c.playerIndex].getX(),
- PlayerHandler.players[c.playerIndex].getY(), 7)) {
+ if (c.goodDistance(c.getX(), c.getY(), PlayerHandler.players[c.playerIndex].getX(), PlayerHandler.players[c.playerIndex].getY(), 7))
+ {
c.stopMovement();
}
if (c.getCombatAssistant().checkReqs()) {
@@ -302,7 +318,6 @@ public class AttackPlayer implements PacketType {
}
}
break;
-
}
}