Gptaqbc new stuff 6 (#328)

* Some stuff on weight

Some stuff on weight

* Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

Cleaned some code related to trading and fixed most likely the issue where the player stays busy and cant trade till relog

* removed a shitload of '== true'

I did a search and replace but I manually checked the changes that were made so there shouldn't be any issue with that.

* Fixed drop issue

* Fixed duel arena, changed some chat message so they are all the same, changed Additem

Fixed duel arena:
> 98% completed duel (the winning duel sound is still missing)
> Added forfeiting
> Added checks to prevent tbing, teleothers, teleport and logout from duel
> Remove the check for same IP to disable duel

Item Assistant:
> Changed the AddItem method so it now drops items on the ground if inventory is full

Cleaned some stuff while I was at it...

* Update ItemAssistant.java

Oupsie

* Resolving my issues

* Allow walking during movement

* Why won't commit work

Co-authored-by: Gptaqbc <56596815+Gptaqbc@users.noreply.github.com>
This commit is contained in:
Daniel Ginovker
2019-12-26 00:33:18 -05:00
committed by GitHub
parent e8685c97d0
commit 43a0f3e9f1
32 changed files with 80 additions and 41 deletions
@@ -2021,6 +2021,7 @@ public class CombatAssistant {
if (PlayerHandler.players[c.playerIndex].inDuelArena() && c.duelStatus != 5 && !c.usingMagic) {
if (c.duelingArena() || c.duelStatus == 5) {
c.getPacketSender().sendMessage("You can't challenge inside the arena!");
resetPlayerAttack();
return false;
}
c.getDueling().requestDuel(c.playerIndex);
@@ -17,6 +17,8 @@ import com.rebotted.game.players.PlayerSave;
import com.rebotted.util.GameLogger;
import com.rebotted.util.Misc;
import static com.rebotted.game.content.music.sound.SoundList.DUEL_WON;
public class Dueling {
private final Player player;
@@ -51,12 +53,9 @@ public class Dueling {
if (o == null) {
return;
}
/*if (player.connectedFrom.equals(o.connectedFrom)) {
player.getActionSender().sendMessage("You can't duel your own IP.");
return;
}*/
player.duelRequested = true;
if (player.duelStatus == 0 && o.duelStatus == 0 && player.duelRequested
if (player.duelStatus == 0 && o.duelStatus == 0
&& o.duelRequested && player.duelingWith == o.getId()
&& o.duelingWith == player.getId()) {
if (player.goodDistance(player.getX(), player.getY(), o.getX(), o.getY(), 2)) {
@@ -142,10 +141,7 @@ public class Dueling {
if (o == null) {
return;
}
if(!player.openDuel && !o.openDuel) {
declineDuel();
return;
}
player.getOutStream().createFrameVarSizeWord(53);
player.getOutStream().writeWord(6669);
player.getOutStream().writeWord(stakedItems.toArray().length);
@@ -577,6 +573,15 @@ public class Dueling {
player.getPlayerAssistant().requestUpdates();
}
public static void HandleForfeit(Player player)
{
Client opponent = (Client) PlayerHandler.players[player.duelingWith];
opponent.getDueling().duelVictory();
player.getDueling().resetDuel();
player.getPlayerAssistant().movePlayer(GameConstants.DUELING_RESPAWN_X + Misc.random(5), GameConstants.DUELING_RESPAWN_Y + Misc.random(5), 0);
player.getPacketSender().sendMessage("You have lost the duel!");
}
public void duelVictory() {
Client opponent = (Client) PlayerHandler.players[player.duelingWith];
if (opponent != null) {
@@ -593,7 +598,7 @@ public class Dueling {
player.playerXP[i]);
player.getPlayerAssistant().refreshSkill(i);
}
// c.getPacketDispatcher().sendSound(Sound.DUEL_WON, 100, 0);
//player.getPacketSender().sendSound(DUEL_WON, 100, 0); Not good sound
player.duelStatus = 6;
if (player.isSkulled) {
player.isSkulled = false;
@@ -619,9 +624,7 @@ public class Dueling {
player.getCombatAssistant().resetPlayerAttack();
player.duelRequested = false;
PlayerSave.saveGame(player);
if (opponent != null) {
PlayerSave.saveGame(opponent);
}
PlayerSave.saveGame(opponent);
}
public void duelRewardInterface() {
@@ -686,7 +689,6 @@ public class Dueling {
resetDuel();
resetDuelItems();
PlayerSave.saveGame(player);
player.duelStatus = 0;
}
public void declineDuel() {
@@ -717,9 +719,7 @@ public class Dueling {
}
}
stakedItems.clear();
for (int i = 0; i < player.duelRule.length; i++) {
player.duelRule[i] = false;
}
refreshduelRules();
}
public void checkDuelWalk() {
@@ -727,25 +727,19 @@ public class Dueling {
if (player.duelStatus == 5 && o.duelStatus == 5 && o.duelingArena() && !player.duelingArena()) {
o.getDueling().duelVictory();
player.getDueling().resetDuel();
return;
}
}
public void resetDuel() {
//Client o = (Client) PlayerHandler.players[player.duelingWith];
if (player.isDead) {
player.lostDuel = true;
}
player.getPacketSender().showOption(3, 0, "Challenge", 3);
player.headIconHints = 0;
for (int i = 0; i < player.duelRule.length; i++) {
player.duelRule[i] = false;
}
refreshduelRules();
player.getPacketSender().createPlayerHints(10, -1);
player.duelStatus = 0;
player.duelSpaceReq = 0;
//player.openDuel = false;
//o.openDuel = false;
player.duelingWith = 0;
player.getPlayerAssistant().requestUpdates();
player.getCombatAssistant().resetPlayerAttack();
@@ -511,7 +511,7 @@ public class ItemAssistant {
} else {
c.playerItemsN[i] = GameConstants.MAXITEM_AMOUNT;
}
if (c.getOutStream() != null && c != null) {
if (c.getOutStream() != null) {
c.getOutStream().createFrameVarSizeWord(34);
c.getOutStream().writeWord(3214);
c.getOutStream().writeByte(i);
@@ -551,6 +551,8 @@ public class ItemAssistant {
}
return false;
} else {
GameEngine.itemHandler.createGroundItem(c, item,
c.getX(), c.getY(), 1, c.getId());
resetItems(3214);
c.getPacketSender().sendMessage("Not enough space in your inventory.");
return false;
@@ -6,6 +6,7 @@ import com.rebotted.event.CycleEvent;
import com.rebotted.event.CycleEventContainer;
import com.rebotted.event.CycleEventHandler;
import com.rebotted.game.content.guilds.Guilds;
import com.rebotted.game.content.minigames.Dueling;
import com.rebotted.game.content.minigames.FightPits;
import com.rebotted.game.content.minigames.PestControl;
import com.rebotted.game.content.minigames.castlewars.CastleWarObjects;
@@ -1689,7 +1690,9 @@ public class ObjectsActions {
case 2462:
RuneCraftingActions.handleRuneCrafting(player, objectType);
break;
case 3203:
Dueling.HandleForfeit(player);
break;
case 6481:
player.getPlayerAssistant().movePlayer(3233, 9317, 0);
break;
@@ -590,7 +590,7 @@ public abstract class Player {
PestControl.leaveWaitingBoat(this);
getPlayerAssistant().movePlayer(2657, 2639, 0);
}
if(!forceLogout && (underAttackBy > 0 || underAttackBy2 > 0)) {
if(!forceLogout && (underAttackBy > 0 || underAttackBy2 > 0) || duelStatus == 5) {
getPacketSender().sendMessage("You can't logout during combat!");
return;
}
@@ -701,13 +701,18 @@ public class PlayerAssistant {
1708, 1710, 1712, 8007, 8008, 8009, 8010, 8011 };
for (int cwitem : cwitems) {
if (player.inCw() || player.inCw() && player.getItemAssistant().playerHasItem(cwitem)) {
player.getPacketSender().sendMessage("You can't teleport from castle wars!");
player.getPacketSender().sendMessage("You can't teleport from castle wars.");
return;
}
}
if (player.inTrade) {
player.getPacketSender().sendMessage(
"You can't teleport while in trade!");
"You can't teleport while in trade.");
return;
}
if (player.duelStatus == 5) {
player.getPacketSender().sendMessage(
"You can't do that in a duel.");
return;
}
if (!SkillHandler.MAGIC) {