Thread: [667] Wilderness Interface

Results 1 to 3 of 3
  1. #1 [667] Wilderness Interface 
    Extreme Donator [667] Wilderness Interface Market Banned



    Join Date
    Dec 2010
    Age
    25
    Posts
    6,060
    Thanks given
    1,692
    Thanks received
    1,238
    Rep Power
    1765
    Ok so something is creeping me out, when another player trys to enter the wilderness they can't and the interface shows on my screen but when I walk into wildly the interface shows up on my screen and I can enter.
    Reply With Quote  
     

  2. #2  
    « Detective Enrique »
    Admiral's Avatar
    Join Date
    Feb 2013
    Posts
    330
    Thanks given
    83
    Thanks received
    61
    Rep Power
    37
    Post your related classes, mate. That way we can find the problem for you.
    Reply With Quote  
     

  3. #3  
    Extreme Donator [667] Wilderness Interface Market Banned



    Join Date
    Dec 2010
    Age
    25
    Posts
    6,060
    Thanks given
    1,692
    Thanks received
    1,238
    Rep Power
    1765
    Code:
    package com.rs.game.player.controlers;
    
    import com.rs.Settings;
    import com.rs.game.Animation;
    import com.rs.game.Entity;
    import com.rs.game.ForceMovement;
    import com.rs.game.WorldObject;
    import com.rs.game.WorldTile;
    import com.rs.game.npc.NPC;
    import com.rs.game.player.Player;
    import com.rs.game.player.Skills;
    import com.rs.game.player.actions.thieving.Thieving;
    import com.rs.game.tasks.WorldTask;
    import com.rs.game.tasks.WorldTasksManager;
    import com.rs.utils.Utils;
    
    public class Wilderness extends Controler {
    
    	private boolean showingSkull;
    
    	@Override
    	public void start() {
    		checkBoosts(player);
    	}
    
    	public static void checkBoosts(Player player) {
    		boolean changed = false;
    		int level = player.getSkills().getLevelForXp(Skills.ATTACK);
    		int maxLevel = (int) (level + 5 + (level * 0.15));
    		if (maxLevel < player.getSkills().getLevel(Skills.ATTACK)) {
    			player.getSkills().set(Skills.ATTACK, maxLevel);
    			changed = true;
    		}
    		level = player.getSkills().getLevelForXp(Skills.STRENGTH);
    		maxLevel = (int) (level + 5 + (level * 0.15));
    		if (maxLevel < player.getSkills().getLevel(Skills.STRENGTH)) {
    			player.getSkills().set(Skills.STRENGTH, maxLevel);
    			changed = true;
    		}
    		level = player.getSkills().getLevelForXp(Skills.DEFENCE);
    		maxLevel = (int) (level + 5 + (level * 0.15));
    		if (maxLevel < player.getSkills().getLevel(Skills.DEFENCE)) {
    			player.getSkills().set(Skills.DEFENCE, maxLevel);
    			changed = true;
    		}
    		level = player.getSkills().getLevelForXp(Skills.RANGE);
    		maxLevel = (int) (level + 5 + (level * 0.1));
    		if (maxLevel < player.getSkills().getLevel(Skills.RANGE)) {
    			player.getSkills().set(Skills.RANGE, maxLevel);
    			changed = true;
    		}
    		level = player.getSkills().getLevelForXp(Skills.MAGIC);
    		maxLevel = level + 5;
    		if (maxLevel < player.getSkills().getLevel(Skills.MAGIC)) {
    			player.getSkills().set(Skills.MAGIC, maxLevel);
    			changed = true;
    		}
    		if (changed)
    			player.getPackets().sendGameMessage(
    					"Your extreme potion bonus has been reduced.");
    	}
    
    	@Override
    	public boolean login() {
    		moved();
    		return false;
    	}
    
    	@Override
    	public boolean keepCombating(Entity target) {
    		if (target instanceof NPC)
    			return true;
    		if (!canAttack(target))
    			return false;
    		if (target.getAttackedBy() != player
    				&& player.getAttackedBy() != target)
    			player.setWildernessSkull();
    		if (player.getCombatDefinitions().getSpellId() <= 0 && Utils.inCircle(new WorldTile(3105, 3933, 0), target, 24)) {
    			player.getPackets().sendGameMessage("You can only use magic in the arena.");
    			return false;
    		}
    		return true;
    	}
    
    	@Override
    	public boolean canAttack(Entity target) {
    		if (target instanceof Player) {
    			Player p2 = (Player) target;
    			if (player.isCanPvp() && !p2.isCanPvp()) {
    				player.getPackets().sendGameMessage(
    						"That player is not in the wilderness.");
    				return false;
    			}
    			if (canHit(target))
    				return true;
    			return false;
    		}
    		return true;
    	}
    
    	@Override
    	public boolean canHit(Entity target) {
    		if (target instanceof NPC)
    			return true;
    		Player p2 = (Player) target;
    		if (Math.abs(player.getSkills().getCombatLevel()
    				- p2.getSkills().getCombatLevel()) > getWildLevel())
    			return false;
    		return true;
    	}
    
    	@Override
    	public boolean processMagicTeleport(WorldTile toTile) {
    		if (getWildLevel() > 20) {
    			player.getPackets().sendGameMessage(
    					"A mysterious force prevents you from teleporting.");
    			return false;
    		}
    		if (player.getTeleBlockDelay() > Utils.currentTimeMillis()) {
    			player.getPackets().sendGameMessage(
    					"A mysterious force prevents you from teleporting.");
    			return false;
    		}
    		return true;
    
    	}
    
    	@Override
    	public boolean processItemTeleport(WorldTile toTile) {
    		if (getWildLevel() > 20) {
    			player.getPackets().sendGameMessage(
    					"A mysterious force prevents you from teleporting.");
    			return false;
    		}
    		if (player.getTeleBlockDelay() > Utils.currentTimeMillis()) {
    			player.getPackets().sendGameMessage(
    					"A mysterious force prevents you from teleporting.");
    			return false;
    		}
    		return true;
    	}
    
    	@Override
    	public boolean processObjectTeleport(WorldTile toTile) {
    		if (player.getTeleBlockDelay() > Utils.currentTimeMillis()) {
    			player.getPackets().sendGameMessage(
    					"A mysterious force prevents you from teleporting.");
    			return false;
    		}
    		return true;
    	}
    
    	public void showSkull() {
    		player.getInterfaceManager().sendTab(player.getInterfaceManager().hasRezizableScreen() ? 11: 0,	381);
    	}
    
    	public static boolean isDitch(int id) {
    		return id >= 1440 && id <= 1444 || id >= 65076 && id <= 65087;
    	}
    
    	@Override
    	public boolean processObjectClick1(final WorldObject object) {
    		if (isDitch(object.getId())) {
    			player.lock();
    			player.setNextAnimation(new Animation(6132));
    			final WorldTile toTile = new WorldTile(object.getRotation() == 1 || object.getRotation() == 3 ? object.getX() + 2 : player.getX(),
    					object.getRotation() == 0 || object.getRotation() == 2 ? object.getY() - 1 : player.getY(), object.getPlane());
    			
    			player.setNextForceMovement(new ForceMovement(
    					new WorldTile(player), 1, toTile, 2, object.getRotation() == 0 || object.getRotation() == 2 ? ForceMovement.SOUTH : ForceMovement.EAST));
    			WorldTasksManager.schedule(new WorldTask() {
    				@Override
    				public void run() {
    					player.setNextWorldTile(toTile);
    					player.faceObject(object);
    					removeIcon();
    					removeControler();
    					player.resetReceivedDamage();
    					player.unlock();
    				}
    			}, 2);
    			return false;
    		} else if (object.getId() == 2557 || object.getId() == 65717) {
    			player.getPackets().sendGameMessage("It seems it is locked, maybe you should try something else.");
    			return false;
    		}
    		return true;
    	}
    	
    	@Override
    	public boolean processObjectClick2(final WorldObject object) {
    		if (object.getId() == 2557 || object.getId() == 65717) {
    			Thieving.pickDoor(player, object);
    			return false;
    		}
    		return true;
    	}
    
    	@Override
    	public void sendInterfaces() {
    		if (isAtWild(player))
    			showSkull();
    	}
    
    	@Override
    	public boolean sendDeath() {
    		
    		WorldTasksManager.schedule(new WorldTask() {
    			int loop;
    
    			@Override
    			public void run() {
    				if (loop == 0) {
    					player.setNextAnimation(new Animation(836));
    				} else if (loop == 1) {
    					player.getPackets().sendGameMessage("Oh dear, you have died.");
    				} else if (loop == 3) {
    					Player killer = player.getMostDamageReceivedSourcePlayer();
    					if (killer != null) {
    						killer.removeDamage(player);
    						killer.increaseKillCount(player);
    					}
    					player.sendItemsOnDeath(killer);
    					player.getEquipment().init();
    					player.getInventory().init();
    					player.reset();
    					player.setNextWorldTile(new WorldTile(Settings.RESPAWN_PLAYER_LOCATION));
    					player.setNextAnimation(new Animation(-1));
    				} else if (loop == 4) {
    					removeIcon();
    					removeControler();
    					player.getPackets().sendMusicEffect(90);
    					stop();
    				}
    				loop++;
    			}
    		}, 0, 1);
    		return false; 
    	}
    
    	@Override
    	public void moved() {
    		boolean isAtWild = isAtWild(player);
    		boolean isAtWildSafe = isAtWildSafe();
    		if (!showingSkull && isAtWild && !isAtWildSafe) {
    			showingSkull = true;
    			player.setCanPvp(true);
    			showSkull();
    			player.getAppearence().generateAppearenceData();
    		} else if (showingSkull && (isAtWildSafe || !isAtWild)) {
    			removeIcon();
    		} else if (!isAtWildSafe && !isAtWild) {
    			player.setCanPvp(false);
    			removeIcon();
    			removeControler();
    		} else if (Kalaboss.isAtKalaboss(player)) {
    			removeIcon();
    			player.setCanPvp(false);
    			removeControler();
    			player.getControlerManager().startControler("Kalaboss");
    		}
    	}
    
    	public void removeIcon() {
    		if (showingSkull) {
    			showingSkull = false;
    			player.setCanPvp(false);
    			player.getPackets()
    					.closeInterface(
    							player.getInterfaceManager().hasRezizableScreen() ? 11
    									: 0);
    			player.getAppearence().generateAppearenceData();
    			player.getEquipment().refresh(null);
    		}
    	}
    
    	@Override
    	public boolean logout() {
    		return false; // so doesnt remove script
    	}
    
    	@Override
    	public void forceClose() {
    		removeIcon();
    	}
    
    	public static final boolean isAtWild(WorldTile tile) {//TODO fix this
    		return (tile.getX() >= 3011 && tile.getX() <= 3132
    				&& tile.getY() >= 10052 && tile.getY() <= 10175) //fortihrny dungeon
    				|| 	(tile.getX() >= 2940 && tile.getX() <= 3395
    				&& tile.getY() >= 3525 && tile.getY() <= 4000)
    				|| (tile.getX() >= 3264 && tile.getX() <= 3279
    						&& tile.getY() >= 3279 && tile.getY() <= 3672)
    				|| (tile.getX() >= 2756 && tile.getX() <= 2875
    						&& tile.getY() >= 5512 && tile.getY() <= 5627)
    				|| (tile.getX() >= 3158 && tile.getX() <= 3181
    						&& tile.getY() >= 3679 && tile.getY() <= 3697)
    				|| (tile.getX() >= 3280 && tile.getX() <= 3183
    						&& tile.getY() >= 3885 && tile.getY() <= 3888) || (tile.getX() >= 3012 && tile.getX() <= 3059
    						&& tile.getY() >= 10303 && tile.getY() <= 10351);
    	}
    
    	public boolean isAtWildSafe() {
    		return (player.getX() >= 2940 && player.getX() <= 3395
    				&& player.getY() <= 3524 && player.getY() >= 3523);
    	}
    
    	public int getWildLevel() {
    		if(player.getY() > 9900)
    			return (player.getY() - 9912) / 8 + 1;
    		return (player.getY() - 3520) / 8 + 1;
    	}
    
    }
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. 667/*** DestroyObject Interface
    By Robot-dude in forum Help
    Replies: 0
    Last Post: 05-19-2012, 05:03 PM
  2. Replies: 1
    Last Post: 04-12-2012, 07:21 PM
  3. Wilderness Interface Release
    By Archspire in forum Snippets
    Replies: 14
    Last Post: 12-06-2011, 03:04 AM
  4. [562] Wilderness Interface?
    By dark4448 in forum Help
    Replies: 0
    Last Post: 11-13-2011, 06:31 AM
  5. Galkons - New Wilderness Interface
    By +Zero in forum Snippets
    Replies: 13
    Last Post: 07-18-2011, 03:08 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •