Thread: ::pnpc broken - doesn't set me to npc - [mayhem?]

Page 1 of 2 12 LastLast
Results 1 to 10 of 13
  1. #1 ::pnpc broken - doesn't set me to npc - [mayhem?] 
    Registered Member
    Join Date
    Dec 2019
    Posts
    7
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Not sure the server base I'll assume mayhem since it's in the name of the file structure.

    File structure is basically:
    src/com/mayhem/rs2/entity/player/Player.java
    src/com/mayhem/rs2/entity/player/net/in/command/impl/DeveloperCommand.java



    So basically when I use
    Code:
    ::pnpc
    it sets my npcAppearanceId, and it updates it.

    However the client then sets my body to the normal body and hides my head

    Code:
            case "pnpc":
                short npc = parser.nextShort();
                NpcDefinition npcDef = GameDefinitionLoader.getNpcDefinition(npc);
    
                if (npcDef == null && npc != -1) {
                    player.send(new SendMessage("The npc id (" + npc + ") does not exist."));
                    return true;
                }
    
                player.setNpcAppearanceId(npc);
                player.setAppearanceUpdateRequired(true);
                if (npc == -1) {
                    player.getAnimations().setWalkEmote(819);
                    player.getAnimations().setRunEmote(824);
                    player.getAnimations().setStandEmote(808);
                    player.getAnimations().setTurn180Emote(820);
                    player.getAnimations().setTurn90CCWEmote(822);
                    player.getAnimations().setTurn90CWEmote(821);
                    player.send(new SendMessage("You reset your appearance."));
                } else {
                    player.getAnimations().setWalkEmote(npcDef.getWalkAnimation());
                    player.getAnimations().setRunEmote(npcDef.getWalkAnimation());
                    player.getAnimations().setStandEmote(npcDef.getStandAnimation());
                    player.getAnimations().setTurn180Emote(npcDef.getTurn180Animation());
                    player.getAnimations().setTurn90CCWEmote(npcDef.getTurn90CCWAnimation());
                    player.getAnimations().setTurn90CWEmote(npcDef.getTurn90CWAnimation());
    
                    player.setNpcAppearanceId(npc);
                    player.setAppearanceUpdateRequired(true);
                    player.send(new SendMessage("You have turned into: \'" + npcDef.getName() + "\' (Id: " + npc + ", Size: " + npcDef.getSize() + ")."));
                }
                return true;
    So it seems to set it correctly, and the updateFlags get set but there is a lot to this base and this difficult to track down
    Code:
    	public void setNpcAppearanceId(short npcAppearanceId) {
    		this.npcAppearanceId = npcAppearanceId;
    		System.out.println(""+this.npcAppearanceId);
    	}
    If I comment out all the animations I still get left with an empty head but i'm not an npc

    animations seem fine but I don't look like an npc.

    I've tried many different npcs - does anyone know why this is happening?
    Reply With Quote  
     

  2. #2  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Check your code about player update equipment and see if it actually sets the npc correctly instead of just removing head.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Dec 2019
    Posts
    7
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    interesting response, because of your response I checked and noticed when I equip or remove items if i'm transformed the appearance doesn't change my equipment still looks equipped.


    Which caused me to look deeper in to that

    Code:
        public boolean isUpdateRequired() {
            return set.get(3);
        }
    Which caused me to find
    Code:
    	public PlayerUpdateFlags(Player player) {
    		UpdateFlags u = player.getUpdateFlags();
    
    		set.set(0, player.isVisible());
    		set.set(1, player.isChatUpdateRequired());
    		set.set(2, player.isAppearanceUpdateRequired());
    		set.set(3, u.isUpdateRequired());
    		set.set(4, u.isForceChatUpdate());
    		set.set(5, u.isGraphicsUpdateRequired());
    		set.set(6, u.isAnimationUpdateRequired());
    		set.set(7, u.isHitUpdate());
    		set.set(8, u.isHitUpdate2());
    		set.set(9, u.isEntityFaceUpdate());
    		set.set(10, u.isFaceToDirection());
    		set.set(11, player.needsPlacement());
    		set.set(12, player.isResetMovementQueue());
    		set.set(13, u.isForceMovement());
    
    		team = getTeam(player);
    
    		x = ((short) player.getLocation().getX());
    		y = ((short) player.getLocation().getY());
    		z = ((short) player.getLocation().getZ());
    
    		regionX = ((short) player.getCurrentRegion().getX());
    		regionY = ((short) player.getCurrentRegion().getY());
    		regionZ = ((short) player.getCurrentRegion().getZ());
    
    		usernameToLong = player.getUsernameToLong();
    		playerTitle = player.getPlayerTitle();
    
    		set.get(0);
    
    		if (set.get(3)) {
    			if (set.get(6)) {
    				animationId = ((short) u.getAnimationId());
    				animationDelay = ((byte) u.getAnimationDelay());
    			} else {
    				animationId = 0;
    				animationDelay = 0;
    			}
    
    			if (set.get(5)) {
    				graphicId = ((short) u.getGraphic().getId());
    				graphicHeight = ((byte) u.getGraphic().getHeight());
    				graphicDelay = ((byte) u.getGraphic().getDelay());
    			} else {
    				graphicId = 0;
    				graphicHeight = 0;
    				graphicDelay = 0;
    			}
    
    			if (set.get(10)) {
    				faceX = ((short) u.getFace().getX());
    				faceY = ((short) u.getFace().getY());
    			} else {
    				faceX = 0;
    				faceY = 0;
    			}
    
    			if ((set.get(7)) || (set.get(8))) {
    				hp = ((byte) player.getLevels()[3]);
    				maxHP = ((byte) player.getMaxLevels()[3]);
    				damage = ((byte) u.getDamage());
    				damage2 = ((byte) u.getDamage2());
    				hitType = ((byte) u.getHitType());
    				hitType2 = ((byte) u.getHitType2());
    				hitUpdateCombatType = (byte) u.getHitUpdateCombatType();
    				hitUpdateCombatType2 = (byte) u.getHitUpdateCombatType2();
    			} else {
    				hp = 0;
    				maxHP = 0;
    				damage = 0;
    				damage2 = 0;
    				hitType = 0;
    				hitType2 = 0;
    				hitUpdateCombatType = 0;
    				hitUpdateCombatType2 = 0;
    			}
    
    			if (set.get(4))
    				forceChatMessage = u.getForceChatMessage();
    			else {
    				forceChatMessage = null;
    			}
    
    			if (set.get(1)) {
    				chatText = player.getChatText();
    				chatColor = player.getChatColor();
    				chatEffects = player.getChatEffects();
    			} else {
    				chatText = null;
    				chatColor = 0;
    				chatEffects = 0;
    			}
    
    			entityFaceIndex = u.getEntityFaceIndex();
    
    			if (set.get(13)) {
    				forceStart = player.getMovementHandler().getForceStart();
    				forceEnd = player.getMovementHandler().getForceEnd();
    				forceSpeed1 = (short) player.getMovementHandler().getForceSpeed1();
    				forceSpeed2 = (short) player.getMovementHandler().getForceSpeed2();
    				forceDirection = (byte) player.getMovementHandler().getForceDirection();
    			} else {
    				forceStart = null;
    				forceEnd = null;
    				forceSpeed1 = 0;
    				forceSpeed2 = 0;
    				forceDirection = 0;
    			}
    		} else {
    			animationId = 0;
    			animationDelay = 0;
    			graphicId = 0;
    			graphicHeight = 0;
    			graphicDelay = 0;
    			forceStart = null;
    			forceEnd = null;
    			forceSpeed1 = 0;
    			forceSpeed2 = 0;
    			forceDirection = 0;
    			faceX = 0;
    			faceY = 0;
    			hp = 0;
    			maxHP = 0;
    			damage = 0;
    			damage2 = 0;
    			hitType = 0;
    			hitType2 = 0;
    			forceChatMessage = null;
    			entityFaceIndex = 0;
    			chatText = null;
    			chatColor = 0;
    			chatEffects = 0;
    			hitUpdateCombatType = 0;
    			hitUpdateCombatType2 = 0;
    		}
    
    		primaryDirection = ((byte) player.getMovementHandler().getPrimaryDirection());
    		secondaryDirection = ((byte) player.getMovementHandler().getSecondaryDirection());
    
    		equipment = new short[14];
    		for (int i = 0; i < equipment.length; i++) {
    			if (player.getEquipment().getItems()[i] != null) {
    				equipment[i] = ((short) player.getEquipment().getItems()[i].getId());
    			}
    		}
    
    		npcAppearanceId = ((short) player.getNpcAppearanceId());
    
    		rights = ((byte) player.getRights());
    		combatLevel = ((byte) player.getSkill().calcCombatLevel());
    		headicon = ((byte) player.getPrayer().getHeadicon());
    
    		standEmote = ((short) player.getAnimations().getStandEmote());
    		runEmote = ((short) player.getAnimations().getRunEmote());
    		standTurnEmote = ((short) player.getAnimations().getStandTurnEmote());
    		walkEmote = ((short) player.getAnimations().getWalkEmote());
    		turn180Emote = ((short) player.getAnimations().getTurn180Emote());
    		turn90CWEmote = ((short) player.getAnimations().getTurn90CWEmote());
    		turn90CCWEmote = ((short) player.getAnimations().getTurn90CCWEmote());
    
    		username = player.getDisplay();
    		skullIcon = ((byte) player.getSkulling().getSkullIcon());
    
    		gender = player.getGender();
    
    		colors = (player.getColors().clone());
    		appearance = (player.getAppearance().clone());
    	}
    I'm still digging but nothing makes me think this shouldn't work
    Reply With Quote  
     

  4. #4  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by ddragonimpy View Post
    interesting response, because of your response I checked and noticed when I equip or remove items if i'm transformed the appearance doesn't change my equipment still looks equipped.


    Which caused me to look deeper in to that

    Code:
        public boolean isUpdateRequired() {
            return set.get(3);
        }
    Which caused me to find
    Code:
    	public PlayerUpdateFlags(Player player) {
    		UpdateFlags u = player.getUpdateFlags();
    
    		set.set(0, player.isVisible());
    		set.set(1, player.isChatUpdateRequired());
    		set.set(2, player.isAppearanceUpdateRequired());
    		set.set(3, u.isUpdateRequired());
    		set.set(4, u.isForceChatUpdate());
    		set.set(5, u.isGraphicsUpdateRequired());
    		set.set(6, u.isAnimationUpdateRequired());
    		set.set(7, u.isHitUpdate());
    		set.set(8, u.isHitUpdate2());
    		set.set(9, u.isEntityFaceUpdate());
    		set.set(10, u.isFaceToDirection());
    		set.set(11, player.needsPlacement());
    		set.set(12, player.isResetMovementQueue());
    		set.set(13, u.isForceMovement());
    
    		team = getTeam(player);
    
    		x = ((short) player.getLocation().getX());
    		y = ((short) player.getLocation().getY());
    		z = ((short) player.getLocation().getZ());
    
    		regionX = ((short) player.getCurrentRegion().getX());
    		regionY = ((short) player.getCurrentRegion().getY());
    		regionZ = ((short) player.getCurrentRegion().getZ());
    
    		usernameToLong = player.getUsernameToLong();
    		playerTitle = player.getPlayerTitle();
    
    		set.get(0);
    
    		if (set.get(3)) {
    			if (set.get(6)) {
    				animationId = ((short) u.getAnimationId());
    				animationDelay = ((byte) u.getAnimationDelay());
    			} else {
    				animationId = 0;
    				animationDelay = 0;
    			}
    
    			if (set.get(5)) {
    				graphicId = ((short) u.getGraphic().getId());
    				graphicHeight = ((byte) u.getGraphic().getHeight());
    				graphicDelay = ((byte) u.getGraphic().getDelay());
    			} else {
    				graphicId = 0;
    				graphicHeight = 0;
    				graphicDelay = 0;
    			}
    
    			if (set.get(10)) {
    				faceX = ((short) u.getFace().getX());
    				faceY = ((short) u.getFace().getY());
    			} else {
    				faceX = 0;
    				faceY = 0;
    			}
    
    			if ((set.get(7)) || (set.get(8))) {
    				hp = ((byte) player.getLevels()[3]);
    				maxHP = ((byte) player.getMaxLevels()[3]);
    				damage = ((byte) u.getDamage());
    				damage2 = ((byte) u.getDamage2());
    				hitType = ((byte) u.getHitType());
    				hitType2 = ((byte) u.getHitType2());
    				hitUpdateCombatType = (byte) u.getHitUpdateCombatType();
    				hitUpdateCombatType2 = (byte) u.getHitUpdateCombatType2();
    			} else {
    				hp = 0;
    				maxHP = 0;
    				damage = 0;
    				damage2 = 0;
    				hitType = 0;
    				hitType2 = 0;
    				hitUpdateCombatType = 0;
    				hitUpdateCombatType2 = 0;
    			}
    
    			if (set.get(4))
    				forceChatMessage = u.getForceChatMessage();
    			else {
    				forceChatMessage = null;
    			}
    
    			if (set.get(1)) {
    				chatText = player.getChatText();
    				chatColor = player.getChatColor();
    				chatEffects = player.getChatEffects();
    			} else {
    				chatText = null;
    				chatColor = 0;
    				chatEffects = 0;
    			}
    
    			entityFaceIndex = u.getEntityFaceIndex();
    
    			if (set.get(13)) {
    				forceStart = player.getMovementHandler().getForceStart();
    				forceEnd = player.getMovementHandler().getForceEnd();
    				forceSpeed1 = (short) player.getMovementHandler().getForceSpeed1();
    				forceSpeed2 = (short) player.getMovementHandler().getForceSpeed2();
    				forceDirection = (byte) player.getMovementHandler().getForceDirection();
    			} else {
    				forceStart = null;
    				forceEnd = null;
    				forceSpeed1 = 0;
    				forceSpeed2 = 0;
    				forceDirection = 0;
    			}
    		} else {
    			animationId = 0;
    			animationDelay = 0;
    			graphicId = 0;
    			graphicHeight = 0;
    			graphicDelay = 0;
    			forceStart = null;
    			forceEnd = null;
    			forceSpeed1 = 0;
    			forceSpeed2 = 0;
    			forceDirection = 0;
    			faceX = 0;
    			faceY = 0;
    			hp = 0;
    			maxHP = 0;
    			damage = 0;
    			damage2 = 0;
    			hitType = 0;
    			hitType2 = 0;
    			forceChatMessage = null;
    			entityFaceIndex = 0;
    			chatText = null;
    			chatColor = 0;
    			chatEffects = 0;
    			hitUpdateCombatType = 0;
    			hitUpdateCombatType2 = 0;
    		}
    
    		primaryDirection = ((byte) player.getMovementHandler().getPrimaryDirection());
    		secondaryDirection = ((byte) player.getMovementHandler().getSecondaryDirection());
    
    		equipment = new short[14];
    		for (int i = 0; i < equipment.length; i++) {
    			if (player.getEquipment().getItems()[i] != null) {
    				equipment[i] = ((short) player.getEquipment().getItems()[i].getId());
    			}
    		}
    
    		npcAppearanceId = ((short) player.getNpcAppearanceId());
    
    		rights = ((byte) player.getRights());
    		combatLevel = ((byte) player.getSkill().calcCombatLevel());
    		headicon = ((byte) player.getPrayer().getHeadicon());
    
    		standEmote = ((short) player.getAnimations().getStandEmote());
    		runEmote = ((short) player.getAnimations().getRunEmote());
    		standTurnEmote = ((short) player.getAnimations().getStandTurnEmote());
    		walkEmote = ((short) player.getAnimations().getWalkEmote());
    		turn180Emote = ((short) player.getAnimations().getTurn180Emote());
    		turn90CWEmote = ((short) player.getAnimations().getTurn90CWEmote());
    		turn90CCWEmote = ((short) player.getAnimations().getTurn90CCWEmote());
    
    		username = player.getDisplay();
    		skullIcon = ((byte) player.getSkulling().getSkullIcon());
    
    		gender = player.getGender();
    
    		colors = (player.getColors().clone());
    		appearance = (player.getAppearance().clone());
    	}
    I'm still digging but nothing makes me think this shouldn't work
    Look into this "appearance = (player.getAppearance().clone());"
    Aka the method "getApperance()" from player.getAppearance().


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Dec 2019
    Posts
    7
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by arch337 View Post
    Look into this "appearance = (player.getAppearance().clone());"
    Aka the method "getApperance()" from player.getAppearance().
    Good idea / recommendation.

    However it appears they cloned correctly so It's something else.
    Code:
    PNPC:-1
    Equipment:4724, 1019, 0, 4726, 4728, 0, 0, 4730, 0, 0, 0, 0, 0, 0
    Appearance:48, 56, 61, 67, 70, 79, -1
    Code:
    PNPC:300
    Equipment:4724, 1019, 0, 4726, 4728, 0, 0, 4730, 0, 0, 0, 0, 0, 0
    Appearance:48, 56, 61, 67, 70, 79, -1
    Still digging but thanks for the help so far

    -relevant appearance array code
    Code:
        private int[] appearance = new int[7];
        public void setAppearance(int[] appearance) {
            this.appearance = appearance;
        }
        public int[] getAppearance() {
            return appearance;
        }
    Reply With Quote  
     

  6. #6  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by ddragonimpy View Post
    Good idea / recommendation.

    However it appears they cloned correctly so It's something else.
    Code:
    PNPC:-1
    Equipment:4724, 1019, 0, 4726, 4728, 0, 0, 4730, 0, 0, 0, 0, 0, 0
    Appearance:48, 56, 61, 67, 70, 79, -1
    Code:
    PNPC:300
    Equipment:4724, 1019, 0, 4726, 4728, 0, 0, 4730, 0, 0, 0, 0, 0, 0
    Appearance:48, 56, 61, 67, 70, 79, -1
    Still digging but thanks for the help so far

    -relevant appearance array code
    Code:
        private int[] appearance = new int[7];
        public void setAppearance(int[] appearance) {
            this.appearance = appearance;
        }
        public int[] getAppearance() {
            return appearance;
        }
    Go to your PlayerUpdating.java check your appendAppearance method, to see if there is something wrong here.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  7. #7  
    Registered Member
    Join Date
    Dec 2019
    Posts
    7
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by arch337 View Post
    Go to your PlayerUpdating.java check your appendAppearance method, to see if there is something wrong here.
    I did manage to find that function you were asking about
    Code:
        public static void appendAppearance(PlayerUpdateFlags flags, StreamBuffer.OutBuffer out) {
    // So there is a -1 here if I leave it the helm is gone. If I comment it out, OR add a second -1. The helm comes back and I walk normal. But I don't look like an NPC i'm sure this bit of code is wrong some way

    Code:
    		if (flags.getNpcAppearanceId() == -1) {
    			//Lots of code here
    		} else {
    			block.writeShort(-1);
    			block.writeShort(flags.getNpcAppearanceId());
    		}
    Code:
    		if (flags.getNpcAppearanceId() == -1) {
    			//Lots of code here
    		} else {
    			//block.writeShort(-1);
    OR
    			block.writeShort(-1);
    			block.writeShort(-1);
    
    			block.writeShort(flags.getNpcAppearanceId());
    		}
    even added things like
    System.out.println("TEST:"+flags.getNpcAppearanceI d());

    and the correct NPC id comes out *shrug*


    I believe I tracked it down to the code source that needs to be fixed - I don't have the code that needs to be placed here.

    I'll continue digging in to it
    Reply With Quote  
     

  8. #8  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by ddragonimpy View Post
    I did manage to find that function you were asking about
    Code:
        public static void appendAppearance(PlayerUpdateFlags flags, StreamBuffer.OutBuffer out) {
    // So there is a -1 here if I leave it the helm is gone. If I comment it out, OR add a second -1. The helm comes back and I walk normal. But I don't look like an NPC i'm sure this bit of code is wrong some way

    Code:
    		if (flags.getNpcAppearanceId() == -1) {
    			//Lots of code here
    		} else {
    			block.writeShort(-1);
    			block.writeShort(flags.getNpcAppearanceId());
    		}
    Code:
    		if (flags.getNpcAppearanceId() == -1) {
    			//Lots of code here
    		} else {
    			//block.writeShort(-1);
    OR
    			block.writeShort(-1);
    			block.writeShort(-1);
    
    			block.writeShort(flags.getNpcAppearanceId());
    		}
    even added things like
    System.out.println("TEST:"+flags.getNpcAppearanceI d());

    and the correct NPC id comes out *shrug*


    I believe I tracked it down to the code source that needs to be fixed - I don't have the code that needs to be placed here.

    I'll continue digging in to it
    Add a debug like this:
    Code:
    System.out.println("Checking value for npc..." + flags.getNpcAppearanceId());
    		if (flags.getNpcAppearanceId() == -1) {
    			//Lots of code here
    		} else {
    			block.writeShort(-1);
    System.out.println("Value for npc is current = " + flags.getNpcAppearanceId());
    			block.writeShort(flags.getNpcAppearanceId());
    		}
    If those comes out correctly and send both prints, then it could be something else.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

  9. #9  
    Registered Member
    Join Date
    Dec 2019
    Posts
    7
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Perhaps my previous message was hard to understand, I'm sorry.

    I didn't have any difficulty testing with
    Code:
    System.out.println()
    I'm currently trying to download another Mayhem server to compare this file


    If i was to add it as you suggested the NPC ID would be 300 (because that's what I chose) correctly.
    or -1 if I was not an NPC
    Reply With Quote  
     

  10. #10  
    Community Veteran


    Arch337's Avatar
    Join Date
    Sep 2008
    Posts
    2,950
    Thanks given
    210
    Thanks received
    349
    Rep Power
    1376
    Quote Originally Posted by ddragonimpy View Post
    Perhaps my previous message was hard to understand, I'm sorry.

    I didn't have any difficulty testing with
    Code:
    System.out.println()
    I'm currently trying to download another Mayhem server to compare this file


    If i was to add it as you suggested the NPC ID would be 300 (because that's what I chose) correctly.
    or -1 if I was not an NPC
    You could try to do this:
    Code:
    		block.writeByte(flags.getGender());
    		block.writeByte(flags.getHeadicon());
    		block.writeByte(flags.getSkullIcon());
    		block.writeByte(flags.getRights());
    Into
    Code:
    		block.writeByte(flags.getGender());
    		block.writeByte(flags.getHeadicon());
    		block.writeByte(flags.getSkullIcon());
    		//block.writeByte(flags.getRights());
    And see if that is the issue you are facing. Because not sure what the "block.writeByte(flags.getRights());" is being used in this code. Unless your client got something that would set your player rights within your player update.


    "A fail act is something you do regular, but a dumb act is something you can learn from"
    Spoiler for Problem?:
    Reply With Quote  
     

Page 1 of 2 12 LastLast

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. Replies: 5
    Last Post: 06-27-2013, 05:46 AM
  2. Need someone to set me up a auto voting system:P
    By armadylpkz in forum Buying
    Replies: 4
    Last Post: 06-01-2013, 07:08 PM
  3. Npc doesn't hit me but i'm loosing hitpoints
    By TrivzorCom in forum Help
    Replies: 0
    Last Post: 04-06-2012, 10:38 AM
  4. Replies: 2
    Last Post: 03-27-2011, 05:58 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
  •