bump
|
Fixed.
Hey,
If I click the challenge option in duel arena it wants to attack the player because it says:
"Your opponent is not in the wilderness."
I have checked the packets and they're not switched.
Can anyone help me with this?
Information:
my checkreqs:
tradeandduel:Code:public static boolean checkReqs(Client c) { if(PlayerHandler.players[c.playerIndex] == null) { return false; } if (c.playerIndex == c.playerId) return false; if(!PlayerHandler.players[c.playerIndex].inWild() && !CastOnOther.castOnOtherSpells(c)) { c.sendMessage("Your opponent is not in the wilderness!"); c.stopMovement(); c.getCombat().resetPlayerAttack(); return false; } if(!c.inWild() && !CastOnOther.castOnOtherSpells(c)) { c.sendMessage("You are not in the wilderness."); c.stopMovement(); c.getCombat().resetPlayerAttack(); return false; } if(Config.COMBAT_LEVEL_DIFFERENCE) { if(c.inWild()) { int combatDif1 = getCombatDifference(c.combatLevel, PlayerHandler.players[c.playerIndex].combatLevel); if((combatDif1 > c.wildLevel || combatDif1 > PlayerHandler.players[c.playerIndex].wildLevel)) { c.sendMessage("Your combat level difference is too great to attack that player here."); c.stopMovement(); c.getCombat().resetPlayerAttack(); return false; } } else { int myCB = c.combatLevel; int pCB = PlayerHandler.players[c.playerIndex].combatLevel; if((myCB > pCB + 12) || (myCB < pCB - 12)) { c.sendMessage("You can only fight players in your combat range!"); c.stopMovement(); c.getCombat().resetPlayerAttack(); return false; } } } if(Config.SINGLE_AND_MULTI_ZONES) { if(!PlayerHandler.players[c.playerIndex].inMulti()) { // single combat zones if(PlayerHandler.players[c.playerIndex].underAttackBy != c.playerId && PlayerHandler.players[c.playerIndex].underAttackBy != 0) { c.sendMessage("That player is already in combat."); c.stopMovement(); c.getCombat().resetPlayerAttack(); return false; } if(PlayerHandler.players[c.playerIndex].playerId != c.underAttackBy && c.underAttackBy != 0 || c.underAttackBy2 > 0) { c.sendMessage("You are already in combat."); c.stopMovement(); c.getCombat().resetPlayerAttack(); return false; } } } return true; }
[Java] Tradeanddueljava - Pastebin.com
challenge option:
Challengeplayer packet:Code:} else if (inDuelArena()) { getPA().walkableInterface(201); if (duelStatus == 5) { getPA().showOption(3, 0, "Attack"); } else { getPA().showOption(3, 0, "Challenge"); } }
Code:package server.model.mobile.players.packets; import server.model.mobile.players.Client; import server.model.mobile.players.PacketType; import server.model.mobile.players.PlayerHandler; /** * Challenge Player **/ public class ChallengePlayer implements PacketType { @Override public final void processPacket(Client c, int packetType, int packetSize) { switch(packetType) { case 128: int answerPlayer = c.getInStream().readUnsignedWord(); if(PlayerHandler.players[answerPlayer] == null || c.arenas() || c.duelStatus == 5 || c.teleporting) { return; } c.getTradeAndDuel().requestDuel(answerPlayer); break; } } }
Look in your checkReqs() method in your combat.
Here is what mine is to send the duel request instead of attacking.
Code:if (PlayerHandler.players[c.playerIndex].inDuelArena() && c.duelStatus != 5 && !c.usingMagic && c.playerRights != 2) { if (c.arenas() || c.duelStatus == 5) { return false; } c.getTradeAndDuel().requestDuel(c.playerIndex); return false; }
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |