This commit is contained in:
dginovker
2019-12-26 00:44:51 -05:00
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) {
@@ -85,8 +85,6 @@ public class AttackPlayer implements PacketType {
}
}
if (!canUseWeapon) {
c.getPacketSender().sendMessage(
"You can only use fun weapons in this duel!");
return;
}
}
@@ -213,6 +211,13 @@ public class AttackPlayer implements PacketType {
+ " in the wilderness.");
break;
}
if (c.duelStatus == 5) {
c.getPacketSender().sendMessage("You can't do that in a duel.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
return;
}
}
switch (c.castingSpellId) {
@@ -261,6 +266,15 @@ public class AttackPlayer implements PacketType {
"Magic has been disabled in this duel!");
return;
}
if (MagicData.MAGIC_SPELLS[c.spellId][0] == 12445)
{
c.getPacketSender().sendMessage(
"You can't do that in a duel.");
c.usingMagic = false;
c.stopMovement();
c.getCombatAssistant().resetPlayerAttack();
return;
}
}
for (int r = 0; r < c.REDUCE_SPELLS.length; r++) { // reducing
@@ -1352,6 +1352,11 @@ public class ClickingButtons implements PacketType {
"You won't be able to attack the player with the rules you have set.");
break;
}
if (player.duelRule[9]) {
player.getPacketSender()
.sendMessage(
"@red@You won't be able to attack if you don't have a fun weapon.");
}
player.duelStatus = 2;
if (player.duelStatus == 2) {
player.getPacketSender().sendFrame126(
@@ -1676,9 +1681,9 @@ public class ClickingButtons implements PacketType {
player.goodTrade = false;
ot.goodTrade = false;
player.getPacketSender().sendFrame126(
"Not enough inventory space...", 3431);
"Not enough space in your inventory.", 3431);
ot.getPacketSender().sendFrame126(
"Not enough inventory space...", 3431);
"Not enough space in your inventory.", 3431);
break;
} else {
player.getPacketSender().sendFrame126(
@@ -38,13 +38,12 @@ public class ClickingStuff implements PacketType {
}
if(player.openDuel && player.duelStatus >= 1 && player.duelStatus <= 4) {
Player o = (Player) PlayerHandler.players[player.duelingWith];
Player o = PlayerHandler.players[player.duelingWith];
if (o != null)
if (player.duelStatus >= 1 && player.duelStatus <= 4)
player.getDueling().declineDuel();
o.getDueling().declineDuel();
}
if (player.duelStatus == 6) {
player.getDueling().claimStakedItems();
}
@@ -31,7 +31,7 @@ public class PickupItem implements PacketType {
{
if (!(player.getItemAssistant().playerHasItem(player.pItemId) && player.getItemAssistant().isStackable(player.pItemId)))
{
player.getPacketSender().sendMessage("Not enough inventory space...");
player.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
}
@@ -133,14 +133,13 @@ public class Walking implements PacketType {
player.mageAllowed = true;
}
if (player.WildernessWarning == false && player.wildLevel > 0) {
if (!player.WildernessWarning && player.wildLevel > 0) {
player.resetWalkingQueue();
player.WildernessWarning = true;
player.getPacketSender().sendFrame126("WARNING!", 6940);
player.getPacketSender().showInterface(1908);
}
if (player.openDuel) {
if (player.openDuel && player.duelStatus <= 3) {
Client o = (Client) PlayerHandler.players[player.duelingWith];
if (o != null) {
o.getDueling().declineDuel();
@@ -160,7 +160,7 @@ public class GlobalDropsHandler {
}
if (player.getItemAssistant().freeSlots() < 1) {
if (!(player.getItemAssistant().playerHasItem(player.pItemId) && player.getItemAssistant().isStackable(player.pItemId))) {
player.getPacketSender().sendMessage("Not enough inventory space...");
player.getPacketSender().sendMessage("Not enough space in your inventory.");
return;
}
}
@@ -33,6 +33,7 @@ public class ItemHandler {
ItemList[i] = null;
}
loadItemList("item.cfg");
loadItemPrices("prices.txt");
}
/**
@@ -327,6 +328,22 @@ public int itemAmount(String name, int itemId, int itemX, int itemY) {
ItemList[slot] = newItemList;
}
public void loadItemPrices(String filename) {
try {
@SuppressWarnings("resource")
Scanner s = new Scanner(new File("./data/cfg/" + filename));
while (s.hasNextLine()) {
String[] line = s.nextLine().split(" ");
ItemList temp = getItemList(Integer.parseInt(line[0]));
if (temp != null) {
temp.ShopValue = Integer.parseInt(line[1]);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
public ItemList getItemList(int i) {
for (com.rebotted.game.items.ItemList element : ItemList) {
if (element != null) {
@@ -359,7 +376,7 @@ public int itemAmount(String name, int itemId, int itemX, int itemY) {
Misc.println(FileName + ": error loading file.");
// return false;
}
while (!EndOfFile && line != null) {
while (EndOfFile == false && line != null) {
line = line.trim();
int spot = line.indexOf("=");
if (spot > -1) {