mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-03 00:31:51 +00:00
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:
@@ -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) {
|
||||
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user