Thread: [562]Pk point system[562]

Page 1 of 2 12 LastLast
Results 1 to 10 of 17
  1. #1 [562]Pk point system[562] 
    Registered Member
    Join Date
    Dec 2010
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Im new to rune-server, this is my first post and my first tutorial enjoy.

    Purpose: To gain a pk point when you kill a player.
    Difficulty:2/10 (easy)
    Classes Modified: player.java, PlayerVsPlayer.java, NpcPacketHandler.java, and ActionButtonPacketHandler.java.

    first go into player.java and add this to all of the other public ints
    Code:
    /*
    *Pk Delay
    */
    	public int PkDelay;
    Then again in player.java find the tick event, it will probably look like "public void tick()" and under the try { add
    Code:
    if (PkDelay > 0) {
    			PkDelay--;
    		}
    Your done in player.java now, save it and find PlayerVsPlayer.java in \src\com\rs2hd\content\skills\combat

    Find "public void Attack(Player p2) {" and add this anywhere in the void
    Code:
    if(p.isDead() && !p2.inClanWars() &&  !p2.AtSoulWars()) {
    				if (p.PkDelay == 0) {
    				p2.PkPoints ++;
    				p.sm("You were killed by "+ p2.getUsername() +".");
    				p2.sm("You killed "+ p.getUsername() +" and Gained a Pk Point.");
    				p2.sm("You now have "+ p2.PkPoints +" Pk Points.");
    				p.resetAttack();
    				p2.resetAttack();
    				p.PkDelay = 8;
    				} else {
                                    p2.sm("You cannot attack this player.");
                                    }
    				return;
    			}
    
    			if (p2.isDead() && !p.inClanWars() && !p.AtSoulWars()) {
    			if (p.PkDelay == 0) {
    				p.PkPoints ++;
    				p2.sm("You were killed by "+ p.getUsername() +".");
    				p.sm("You killed "+ p2.getUsername() +" and Gained a Pk Point.");
    				p.sm("You now have "+ p.PkPoints +" Pk Points.");
    				p.resetAttack();
    				p2.resetAttack();
    				p.potDelay = 8;
    				} else {
                                    p.sm("You cannot attack this player.");
                                    }
    				return;
    			}
    Now you have a pk point system but you still need to add a shop, find NpcPacketHandler.java and search for "private void option1" then under the ints add
    Code:
    if(npc.getId() == 8443) {
    p.turnTemporarilyTo(npc);
    npc.turnTemporarilyTo(p);
    p.getActionSender().sendInterface(583);
    p.getActionSender().sendString("<col=01DFD7>You have "+ p.PkPoints +" Pk Points.", 583, 14);
    p.getActionSender().sendString("<col=01DFD7>Armadyl Godsword - 30 pk points", 583, 50);
    p.getActionSender().sendString("<col=01DFD7>Saradomin Godsword - 25 pk points", 583, 51);
    p.getActionSender().sendString("<col=01DFD7>Zamorak Godsword - 25 pk points", 583, 52);
    p.getActionSender().sendString("<col=01DFD7>Bandos Godsword - 20 pk points", 583, 53);
    p.getActionSender().sendString("<col=01DFD7>Fighter Torso - 45 pk points", 583, 54);
    p.getActionSender().sendString("<col=01DFD7>Rune Defender - 35 pk points", 583, 55);
    p.getActionSender().sendString("<col=01DFD7>Ava's Accumulator - 30 pk points", 583, 56);
    p.getActionSender().sendString("<col=01DFD7>Divine spirit shield - 60 pk points", 583, 57);
    p.getActionSender().sendString("<col=01DFD7>Elysian spirit shield - 60 pk points", 583, 58);
    p.getActionSender().sendString("<col=01DFD7>Arcane spirit shield - 55 pk points", 583, 59);
    p.getActionSender().sendString("<col=01DFD7>Spectral spirit shield - 50 pk points", 583, 71);
    p.getActionSender().sendString("<col=01DFD7>Blessed spirit shield - 45 pk points", 583, 60);
    p.getActionSender().sendString("<col=01DFD7>Statius's armor set - 75 pk points", 583, 61);
    p.getActionSender().sendString("<col=01DFD7>Vesta's armor set - 65 pk points", 583, 62);
    p.getActionSender().sendString("<col=01DFD7>Morrigan's armor set - 60 pk points", 583, 64);
    p.getActionSender().sendString("<col=01DFD7>Zuriel's armor set - 60 pk points", 583, 63);
    p.getActionSender().sendString("<col=01DFD7>PVP weapon set - 80 pk points", 583, 65);
    p.getActionSender().sendString("", 583, 70);
    p.getActionSender().sendString("", 583, 66);
    p.getActionSender().sendString("", 583, 67);
    p.getActionSender().sendString("", 583, 68);
    p.getActionSender().sendString("", 583, 69);
    p.getActionSender().sendString("", 583, 70);
    p.getActionSender().sendString("", 583, 73);
    p.getActionSender().sendString("", 583, 72);
    p.getActionSender().sendString("", 583, 74);
    p.getActionSender().sendString("", 583, 75);
    p.getActionSender().sendString("", 583, 76);
    p.getActionSender().sendString("", 583, 77);
    p.getActionSender().sendString("", 583, 78);
    p.getActionSender().sendString("", 583, 79);
    p.getActionSender().sendString("", 583, 80);
    p.getActionSender().sendString("", 583, 81);
    
    }
    8443 is lucien he is pretty badass but you can change that to any npc you want.
    Now find and open ActionButtonPacketHandler.java and add this
    Code:
    case 583://pk shop
               if (buttonId == 50) {
                 if (player.PkPoints >= 30) {
    				 player.PkPoints -= 30;
                     player.getInventory().addItem(11694, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 30 Pk points to buy a Armadyl godsword.");
    			 }
             }
               if (buttonId == 51) {
                 if (player.PkPoints >= 25) {
    				 player.PkPoints -= 25;
                     player.getInventory().addItem(11698, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 25 Pk points to buy a Saradomin godsword.");
    			 }
             }
               if (buttonId == 52) {
                 if (player.PkPoints >= 25) {
    				 player.PkPoints -= 25;
                     player.getInventory().addItem(11700, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 25 Pk points to buy a Zamorak godsword.");
    			 }
             }
               if (buttonId == 53) {
                 if (player.PkPoints >= 20) {
    				 player.PkPoints -= 20;
                     player.getInventory().addItem(11696, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 20 Pk points to buy a Bandos godsword.");
    			 }
             }
               if (buttonId == 54) {
                 if (player.PkPoints >= 45) {
    				 player.PkPoints -= 45;
                     player.getInventory().addItem(10551, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 45 Pk points to buy a Fighter torso.");
    			 }
             }
               if (buttonId == 55) {
                 if (player.PkPoints >= 35) {
    				 player.PkPoints -= 35;
                     player.getInventory().addItem(8850, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 35 Pk points to buy a Rune defender.");
    			 }
             }
               if (buttonId == 56) {
                 if (player.PkPoints >= 30) {
    				 player.PkPoints -= 30;
                     player.getInventory().addItem(10499, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 30 Pk points to buy a Ava's accumulator.");
    			 }
             }
               if (buttonId == 57) {
                 if (player.PkPoints >= 60) {
    				 player.PkPoints -= 60;
                     player.getInventory().addItem(13740, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 60 Pk points to buy a Divine spirit shield.");
    			 }
             }
               if (buttonId == 58) {
                 if (player.PkPoints >= 60) {
    				 player.PkPoints -= 60;
                     player.getInventory().addItem(13742, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 60 Pk points to buy a Elysian spirit shield.");
    			 }
             }
               if (buttonId == 59) {
                 if (player.PkPoints >= 55) {
    				 player.PkPoints -= 55;
                     player.getInventory().addItem(13740, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 55 Pk points to buy a Acrane spirit shield.");
    			 }
             }
               if (buttonId == 71) {
                 if (player.PkPoints >= 50) {
    				 player.PkPoints -= 50;
                     player.getInventory().addItem(13744, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 50 Pk points to buy a Spectral spirit shield.");
    			 }
             }
              if (buttonId == 60) {
                 if (player.PkPoints >= 45) {
    				 player.PkPoints -= 45;
                     player.getInventory().addItem(13736, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 45 Pk points to buy a Blessed spirit shield.");
    			 }
             }
               if (buttonId == 61) {
                 if (player.PkPoints >= 75) {
    				 player.PkPoints -= 75;
                     player.getInventory().addItem(13884, 1);
    				 player.getInventory().addItem(13890, 1);
    				 player.getInventory().addItem(13896, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 75 Pk points to buy a Statius armor set.");
    			 }
             }
               if (buttonId == 62) {
                 if (player.PkPoints >= 65) {
    				 player.PkPoints -= 65;
                     player.getInventory().addItem(13887, 1);
    				 player.getInventory().addItem(13893, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 65 Pk points to buy vesta's armor set.");
    			 }
             }
              if (buttonId == 64) {
                 if (player.PkPoints >= 60) {
    				 player.PkPoints -= 60;
                     player.getInventory().addItem(13870, 1);
    				 player.getInventory().addItem(13873, 1);
    				 player.getInventory().addItem(13876, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 60 Pk points to buy a morrigan's armor set.");
    			 }
             }
              if (buttonId == 63) {
                 if (player.PkPoints >= 60) {
    				 player.PkPoints -= 60;
                     player.getInventory().addItem(13858, 1);
    				 player.getInventory().addItem(13861, 1);
    				 player.getInventory().addItem(13864, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 60 Pk points to buy a zuriel's armor set.");
    			 }
             }
               if (buttonId == 65) {
                 if (player.PkPoints >= 80) {
    				 player.PkPoints -= 80;
                     player.getInventory().addItem(13899, 1);
    				 player.getInventory().addItem(13905, 1);
    				 player.getInventory().addItem(13902, 1);
    				 player.getInventory().addItem(13879, 1);
    				 player.getInventory().addItem(13883, 1);
    				 player.getInventory().addItem(13867, 1);
                   } else {
    		 player.getActionSender().sendMessage("You need 80 Pk points to buy a PVP weapon set.");
    			 }
             }
               if (buttonId == 70) {
    
    
    			 }
               if (buttonId == 66) {
    
    
    			 }
               if (buttonId == 67) {
    
    
    			 }
               if (buttonId == 68) {
    
    
    			 }
               if (buttonId == 69) {
    
    
    			 }
    		   if (buttonId == 70) {
    
    
    			 }
               if (buttonId == 73) {
    
    
    			 }
               if (buttonId == 72) {
    
    
    			 }
    The blank buttons are just there so you know the order the buttons go in.
    Once you have done this save and compile.
    You should be done

    If you get errors its probably because you don't have a variable defined
    Here are some that you might need to add to player.java
    Code:
    public boolean AtSoulWars() {
    			if(getLocation().getX() >= 1790 && getLocation().getY() >= 3200 && getLocation().getX() <= 1985 && getLocation().getY() <= 3265) {
    			return true;
    		} else {
    		return false;
    		}
    		}
    Code:
    public boolean inClanWars() {
    		if(getLocation().getX() >= 2754 && getLocation().getX() <= 2880 && getLocation().getY() >= 5508 && getLocation().getY() <= 5629 || getLocation().getX() >= 2885 && getLocation().getX() <= 2733 && getLocation().getY() >= 5465 && getLocation().getY() <= 5511 || getLocation().getX() >= 3038 && getLocation().getX() <= 3044 && getLocation().getY() >= 3959 && getLocation().getY() <= 3949) {
    			actionSender.sendPlayerOption("Attack", 1, false);
    			return true;
    				} else {
    			return false;
    		}
        	}
    or if you have a pkbox that you dont want people gaining pk points in just add a public boolean with the other in player.java and it to what you have in PlayerVsPlayer.java example
    Code:
    if(p.isDead() && !p2.inClanWars() &&  !p2.AtSoulWars() && !p2.InPkBox()) {
    If you get any other errors i can help you fix it or if you want to add anything to this im happy to help.
    Reply With Quote  
     

  2. #2  
    Banned

    Join Date
    May 2010
    Age
    25
    Posts
    1,023
    Thanks given
    199
    Thanks received
    87
    Rep Power
    0
    Not hard but Good job.
    Also, is this your first tutorial?
    Reply With Quote  
     

  3. #3  
    Hi.

    'Mystic Flow's Avatar
    Join Date
    Nov 2007
    Posts
    7,141
    Thanks given
    256
    Thanks received
    1,247
    Rep Power
    3636
    This is horrible

    [Only registered and activated users can see links. ]

    Reply With Quote  
     

  4. #4  
    Banned

    Join Date
    Jun 2010
    Age
    33
    Posts
    4,337
    Thanks given
    4
    Thanks received
    274
    Rep Power
    0
    poorly Written.
    Reply With Quote  
     

  5. #5  
    Banned

    Join Date
    May 2010
    Age
    25
    Posts
    1,023
    Thanks given
    199
    Thanks received
    87
    Rep Power
    0
    Quote Originally Posted by `Marcus View Post
    poorly Written.
    'sif you know what good writing looks like.
    Reply With Quote  
     

  6. Thankful users:


  7. #6  
    Registered Member
    Join Date
    Dec 2010
    Age
    26
    Posts
    1,186
    Thanks given
    513
    Thanks received
    340
    Rep Power
    35
    good job, you can change the items to any item you want players to be able ot buy correct?
    Reply With Quote  
     

  8. #7  
    Registered Member
    Join Date
    Dec 2010
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by 'Mystic Flow View Post
    This is horrible
    im sure somebody somewhere found this guide helpful because they wanted to add pk points but didn't know how to make a shop or something, why spend your time putting somebody else's work down when there just trying to help somebody else who is less experienced with java.
    Reply With Quote  
     

  9. #8  
    Registered Member
    Join Date
    Dec 2010
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by vanweele View Post
    good job, you can change the items to any item you want players to be able ot buy correct?
    Sorry for double post but yes as long as you change the item id in NpcPacketHandler.java and the code in ActionButtonPacketHandler.java
    example:
    Code:
    p.getActionSender().sendString("<col=01DFD7>Coins- 10 pk points", 583, 50);
    Code:
    if (buttonId == 50) {
                 if (player.PkPoints >= 10) {
    				 player.PkPoints -= 10;
                     player.getInventory().addItem(995, 10000000);
                   } else {
    		 player.getActionSender().sendMessage("You need 10 Pk points to buy Coins.");
    			 }
             }
    Reply With Quote  
     

  10. #9  
    Registered Member
    Join Date
    Dec 2010
    Age
    26
    Posts
    1,186
    Thanks given
    513
    Thanks received
    340
    Rep Power
    35
    this doesnt work, wont let me trade.
    the npc spawns, i tried using an npc that you can trade, doesnt work, the shop interface doesnt even come up.
    Reply With Quote  
     

  11. #10  
    Registered Member
    Join Date
    Dec 2010
    Posts
    9
    Thanks given
    0
    Thanks received
    0
    Rep Power
    0
    Quote Originally Posted by vanweele View Post
    this doesnt work, wont let me trade.
    the npc spawns, i tried using an npc that you can trade, doesnt work, the shop interface doesnt even come up.
    Find SummonPacketHandler.java and search
    Code:
    case 550:
    GameEngine.shopHandler.openshop(p, 4);
    break;
    and put this under it.
    Code:
    case 8443://npc id
    p.turnTemporarilyTo(npc);
    npc.turnTemporarilyTo(p);
    p.getActionSender().sendInterface(583);
    p.getActionSender().sendString("<col=01DFD7>You have "+ p.PkPoints +" Pk Points.", 583, 14);
    p.getActionSender().sendString("<col=01DFD7>Armadyl Godsword - 30 pk points", 583, 50);
    p.getActionSender().sendString("<col=01DFD7>Saradomin Godsword - 25 pk points", 583, 51);
    p.getActionSender().sendString("<col=01DFD7>Zamorak Godsword - 25 pk points", 583, 52);
    p.getActionSender().sendString("<col=01DFD7>Bandos Godsword - 20 pk points", 583, 53);
    p.getActionSender().sendString("<col=01DFD7>Fighter Torso - 45 pk points", 583, 54);
    p.getActionSender().sendString("<col=01DFD7>Rune Defender - 35 pk points", 583, 55);
    p.getActionSender().sendString("<col=01DFD7>Ava's Accumulator - 30 pk points", 583, 56);
    p.getActionSender().sendString("<col=01DFD7>Divine spirit shield - 60 pk points", 583, 57);
    p.getActionSender().sendString("<col=01DFD7>Elysian spirit shield - 60 pk points", 583, 58);
    p.getActionSender().sendString("<col=01DFD7>Arcane spirit shield - 55 pk points", 583, 59);
    p.getActionSender().sendString("<col=01DFD7>Spectral spirit shield - 50 pk points", 583, 71);
    p.getActionSender().sendString("<col=01DFD7>Blessed spirit shield - 45 pk points", 583, 60);
    p.getActionSender().sendString("<col=01DFD7>Statius's armor set - 75 pk points", 583, 61);
    p.getActionSender().sendString("<col=01DFD7>Vesta's armor set - 65 pk points", 583, 62);
    p.getActionSender().sendString("<col=01DFD7>Morrigan's armor set - 60 pk points", 583, 64);
    p.getActionSender().sendString("<col=01DFD7>Zuriel's armor set - 60 pk points", 583, 63);
    p.getActionSender().sendString("<col=01DFD7>PVP weapon set - 80 pk points", 583, 65);
    p.getActionSender().sendString("", 583, 70);
    p.getActionSender().sendString("", 583, 66);
    p.getActionSender().sendString("", 583, 67);
    p.getActionSender().sendString("", 583, 68);
    p.getActionSender().sendString("", 583, 69);
    p.getActionSender().sendString("", 583, 70);
    p.getActionSender().sendString("", 583, 73);
    p.getActionSender().sendString("", 583, 72);
    p.getActionSender().sendString("", 583, 74);
    p.getActionSender().sendString("", 583, 75);
    p.getActionSender().sendString("", 583, 76);
    p.getActionSender().sendString("", 583, 77);
    p.getActionSender().sendString("", 583, 78);
    p.getActionSender().sendString("", 583, 79);
    p.getActionSender().sendString("", 583, 80);
    p.getActionSender().sendString("", 583, 81);
    break;
    compile and save and now you will be able to open this interface when you trade the npc.
    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: 3
    Last Post: 02-25-2013, 02:26 AM
  2. Better PK Point system.
    By Spooky in forum Snippets
    Replies: 22
    Last Post: 12-23-2012, 07:01 AM
  3. Pk point system
    By wildyscapee in forum Help
    Replies: 0
    Last Post: 07-09-2010, 03:42 AM
  4. PK point system
    By Patrity in forum Help
    Replies: 1
    Last Post: 04-14-2009, 03:58 AM
  5. [Req] A Point System
    By TrollCount++ in forum Requests
    Replies: 4
    Last Post: 04-12-2009, 06:46 PM
Tags for this Thread

View Tag Cloud

Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •