mirror of
https://github.com/2006-Scape/2006Scape.git
synced 2026-07-02 16:49:03 +00:00
Merge branch 'master' of https://github.com/dginovker/2006rebotted
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