Thread: Trouble with a for loop for players command

Page 1 of 2 12 LastLast
Results 1 to 10 of 15
  1. #1 Trouble with a for loop for players command 
    Registered Member Enyll's Avatar
    Join Date
    Aug 2016
    Posts
    121
    Thanks given
    21
    Thanks received
    1
    Rep Power
    13
    When i'm doing this for loop, if the players online = 2, it will display 2x of the USERS name + cb, not his/hers and the other players too.. how will I make this work?

    However, of course if it's only you online it will display perfect, but when there are more online, it will display however the amount of players online, lets say 4, it will display 4x of YOUR acc.

    Code:
    for (int i = 0; i < World.getPlayers().size(); i++) {
    			for (Player p : World.getPlayers()) {
    				if (p.getRights() == 1) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				p.getPackets().sendIComponentText( (INTERFACEID), playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    			}
    		}
    Reply With Quote  
     

  2. #2  
    van 't stad

    Shnek's Avatar
    Join Date
    Oct 2013
    Posts
    1,065
    Thanks given
    343
    Thanks received
    297
    Rep Power
    109
    Quote Originally Posted by Enyll View Post
    When i'm doing this for loop, if the players online = 2, it will display 2x of the USERS name + cb, not his/hers and the other players too.. how will I make this work?

    However, of course if it's only you online it will display perfect, but when there are more online, it will display however the amount of players online, lets say 4, it will display 4x of YOUR acc.

    Code:
    for (int i = 0; i < World.getPlayers().size(); i++) {
    			for (Player p : World.getPlayers()) {
    				if (p.getRights() == 1) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				p.getPackets().sendIComponentText( (INTERFACEID), playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    			}
    		}
    You are looping 2 times, you execute this "for (Player p : World.getPlayers()) {" as much as there are players online.
    Code:
     for (int i = 0; i < World.getPlayers().size(); i++
    				if (p.getRights() == 1) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				p.getPackets().sendIComponentText( (INTERFACEID), playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    			}
    Attached image

    Do not use the vps from ovh, blocking vps without reason and no customer support
    Reply With Quote  
     

  3. #3  
    Registered Member Enyll's Avatar
    Join Date
    Aug 2016
    Posts
    121
    Thanks given
    21
    Thanks received
    1
    Rep Power
    13
    What do I do about the
    Code:
    playernames[i]
    and
    Code:
    playercombatlvls[i]
    ? They are my variables for int[]'s which have the componentId's for the interface
    Reply With Quote  
     

  4. #4  
    van 't stad

    Shnek's Avatar
    Join Date
    Oct 2013
    Posts
    1,065
    Thanks given
    343
    Thanks received
    297
    Rep Power
    109
    Quote Originally Posted by Enyll View Post
    What do I do about the
    Code:
    playernames[i]
    and
    Code:
    playercombatlvls[i]
    ? They are my variables for int[]'s which have the componentId's for the interface
    can you show the whole code because I get confused

    Code:
    			for (Player p : World.getPlayers()) {
    				if (p.getRights() == 1) {
    					p.getPackets().sendIComponentText( (INTERFACEID), playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				}
    		}
    You are looping throu all the players and than sending p.getPackets().sendIComponentText to every player you loop throu, I think it should be player.getPackets()
    Attached image

    Do not use the vps from ovh, blocking vps without reason and no customer support
    Reply With Quote  
     

  5. #5  
    Registered Member Enyll's Avatar
    Join Date
    Aug 2016
    Posts
    121
    Thanks given
    21
    Thanks received
    1
    Rep Power
    13
    Quote Originally Posted by omglolomghi View Post
    can you show the whole code because I get confused
    Code:
    public void sendPlayersOnlineInter() {
    		int players = World.getPlayers().size();
    		player.getInterfaceManager().sendInterface(1082);
    		for (int i = 0; i < Utils.getInterfaceDefinitionsComponentsSize(1082); i++) {
    			player.getPackets().sendIComponentText(1082, i, "");
    		}
    		player.getPackets().sendRunScript(4017, World.getPlayers().size());
    		player.getPackets().sendIComponentText(1082, 159, "There " + (players > 1 ? "are" : "is") + " currently " + players + " " + (players > 1 ? "players" : "player") + " playing " + Settings.SERVER_NAME + "."); //Title: tells how many players are currently online
    		int[] playernames = new int[] { 30, 32, 34, 36, 38, 49, 51, 53, 55, 57, 59, 62, 64, 66, 68, 70, 72, 
    				74, 76, 190, 79, 81, 83, 85, 88, 90, 92, 94, 97, 99, 101, 104, 106, 108, 110, 115, 117, 119, 
    				121, 123, 125, 131, 127, 129, 2, 173, 175, 177, 182, 184, 186, 188 };
    		int[] playercombatlvls = new int[] { 31, 33, 35, 37, 39, 50, 52, 54, 56, 58, 60, 63, 65, 67, 69, 71, 73, 75, 
    				77, 191, 80, 82, 84, 86, 89, 91, 93, 95, 98, 100, 102, 105, 107, 109, 111, 116, 118, 120, 122, 124, 126, 
    				132, 128, 130, 3, 174, 176, 178, 183, 185, 187, 189 };
    		for (int i = 0; i < World.getPlayers().size(); i++) {
    			for (Player p : World.getPlayers()) {
    				if (p.getRights() == 1) {
    					p.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					p.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					p.getPackets().sendIComponentText(1082, playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				p.getPackets().sendIComponentText(1082, playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    			}
    		}
    	}
    Reply With Quote  
     

  6. #6  
    van 't stad

    Shnek's Avatar
    Join Date
    Oct 2013
    Posts
    1,065
    Thanks given
    343
    Thanks received
    297
    Rep Power
    109
    Quote Originally Posted by Enyll View Post
    Code:
    public void sendPlayersOnlineInter() {
    		int players = World.getPlayers().size();
    		player.getInterfaceManager().sendInterface(1082);
    		for (int i = 0; i < Utils.getInterfaceDefinitionsComponentsSize(1082); i++) {
    			player.getPackets().sendIComponentText(1082, i, "");
    		}
    		player.getPackets().sendRunScript(4017, World.getPlayers().size());
    		player.getPackets().sendIComponentText(1082, 159, "There " + (players > 1 ? "are" : "is") + " currently " + players + " " + (players > 1 ? "players" : "player") + " playing " + Settings.SERVER_NAME + "."); //Title: tells how many players are currently online
    		int[] playernames = new int[] { 30, 32, 34, 36, 38, 49, 51, 53, 55, 57, 59, 62, 64, 66, 68, 70, 72, 
    				74, 76, 190, 79, 81, 83, 85, 88, 90, 92, 94, 97, 99, 101, 104, 106, 108, 110, 115, 117, 119, 
    				121, 123, 125, 131, 127, 129, 2, 173, 175, 177, 182, 184, 186, 188 };
    		int[] playercombatlvls = new int[] { 31, 33, 35, 37, 39, 50, 52, 54, 56, 58, 60, 63, 65, 67, 69, 71, 73, 75, 
    				77, 191, 80, 82, 84, 86, 89, 91, 93, 95, 98, 100, 102, 105, 107, 109, 111, 116, 118, 120, 122, 124, 126, 
    				132, 128, 130, 3, 174, 176, 178, 183, 185, 187, 189 };
    		for (int i = 0; i < World.getPlayers().size(); i++) {
    			for (Player p : World.getPlayers()) {
    				if (p.getRights() == 1) {
    					p.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					p.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					p.getPackets().sendIComponentText(1082, playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				p.getPackets().sendIComponentText(1082, playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    			}
    		}
    	}


    Code:
    public void sendPlayersOnlineInter() {
    		int players = World.getPlayers().size();
    		player.getInterfaceManager().sendInterface(1082);
    		for (int i = 0; i < Utils.getInterfaceDefinitionsComponentsSize(1082); i++) {
    			player.getPackets().sendIComponentText(1082, i, "");
    		}
    		player.getPackets().sendRunScript(4017, World.getPlayers().size());
    		player.getPackets().sendIComponentText(1082, 159, "There " + (players > 1 ? "are" : "is") + " currently " + players + " " + (players > 1 ? "players" : "player") + " playing " + Settings.SERVER_NAME + "."); //Title: tells how many players are currently online
    		int[] playernames = new int[] { 30, 32, 34, 36, 38, 49, 51, 53, 55, 57, 59, 62, 64, 66, 68, 70, 72, 
    				74, 76, 190, 79, 81, 83, 85, 88, 90, 92, 94, 97, 99, 101, 104, 106, 108, 110, 115, 117, 119, 
    				121, 123, 125, 131, 127, 129, 2, 173, 175, 177, 182, 184, 186, 188 };
    		int[] playercombatlvls = new int[] { 31, 33, 35, 37, 39, 50, 52, 54, 56, 58, 60, 63, 65, 67, 69, 71, 73, 75, 
    				77, 191, 80, 82, 84, 86, 89, 91, 93, 95, 98, 100, 102, 105, 107, 109, 111, 116, 118, 120, 122, 124, 126, 
    				132, 128, 130, 3, 174, 176, 178, 183, 185, 187, 189 };
    		for (int i = 0; i < players; i++) {
                    Player p = World.get(i);
    				if (p.getRights() == 1) {
    					player.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					player.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					player.getPackets().sendIComponentText(1082, playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				player.getPackets().sendIComponentText(1082, playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    		}
    try this
    Attached image

    Do not use the vps from ovh, blocking vps without reason and no customer support
    Reply With Quote  
     

  7. Thankful user:


  8. #7  
    Registered Member Enyll's Avatar
    Join Date
    Aug 2016
    Posts
    121
    Thanks given
    21
    Thanks received
    1
    Rep Power
    13
    Quote Originally Posted by omglolomghi View Post
    Code:
    public void sendPlayersOnlineInter() {
    		int players = World.getPlayers().size();
    		player.getInterfaceManager().sendInterface(1082);
    		for (int i = 0; i < Utils.getInterfaceDefinitionsComponentsSize(1082); i++) {
    			player.getPackets().sendIComponentText(1082, i, "");
    		}
    		player.getPackets().sendRunScript(4017, World.getPlayers().size());
    		player.getPackets().sendIComponentText(1082, 159, "There " + (players > 1 ? "are" : "is") + " currently " + players + " " + (players > 1 ? "players" : "player") + " playing " + Settings.SERVER_NAME + "."); //Title: tells how many players are currently online
    		int[] playernames = new int[] { 30, 32, 34, 36, 38, 49, 51, 53, 55, 57, 59, 62, 64, 66, 68, 70, 72, 
    				74, 76, 190, 79, 81, 83, 85, 88, 90, 92, 94, 97, 99, 101, 104, 106, 108, 110, 115, 117, 119, 
    				121, 123, 125, 131, 127, 129, 2, 173, 175, 177, 182, 184, 186, 188 };
    		int[] playercombatlvls = new int[] { 31, 33, 35, 37, 39, 50, 52, 54, 56, 58, 60, 63, 65, 67, 69, 71, 73, 75, 
    				77, 191, 80, 82, 84, 86, 89, 91, 93, 95, 98, 100, 102, 105, 107, 109, 111, 116, 118, 120, 122, 124, 126, 
    				132, 128, 130, 3, 174, 176, 178, 183, 185, 187, 189 };
    		for (int i = 0; i < players; i++) {
                    Player p = World.get(i);
    				if (p.getRights() == 1) {
    					player.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    				} else if (p.getRights() == 7) {
    					player.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    				} else if (p.getRights() == 0) {
    					player.getPackets().sendIComponentText(1082, playernames[i], " [Player]: " + p.getDisplayName());
    				}
    				player.getPackets().sendIComponentText(1082, playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    		}
    try this
    I got an error with that
    Reply With Quote  
     

  9. #8  
    Registered Member
    Join Date
    Apr 2016
    Posts
    139
    Thanks given
    30
    Thanks received
    38
    Rep Power
    66
    Quote Originally Posted by Enyll View Post
    I got an error with that
    Code:
    public void sendPlayersOnlineInter() {
    		int players = World.getPlayers().size();
    		player.getInterfaceManager().sendInterface(1082);
    		for (int i = 0; i < Utils.getInterfaceDefinitionsComponentsSize(1082); i++) {
    			player.getPackets().sendIComponentText(1082, i, "");
    		}
    		player.getPackets().sendRunScript(4017, World.getPlayers().size());
    		player.getPackets().sendIComponentText(1082, 159, "There " + (players > 1 ? "are" : "is") + " currently " + players + " " + (players > 1 ? "players" : "player") + " playing " + Settings.SERVER_NAME + "."); //Title: tells how many players are currently online
    		int[] playernames = new int[] { 30, 32, 34, 36, 38, 49, 51, 53, 55, 57, 59, 62, 64, 66, 68, 70, 72, 
    				74, 76, 190, 79, 81, 83, 85, 88, 90, 92, 94, 97, 99, 101, 104, 106, 108, 110, 115, 117, 119, 
    				121, 123, 125, 131, 127, 129, 2, 173, 175, 177, 182, 184, 186, 188 };
    		int[] playercombatlvls = new int[] { 31, 33, 35, 37, 39, 50, 52, 54, 56, 58, 60, 63, 65, 67, 69, 71, 73, 75, 
    				77, 191, 80, 82, 84, 86, 89, 91, 93, 95, 98, 100, 102, 105, 107, 109, 111, 116, 118, 120, 122, 124, 126, 
    				132, 128, 130, 3, 174, 176, 178, 183, 185, 187, 189 }; 
    		int i = 0;
    		for (Player p : World.getPlayers()) {
    			if (p.getRights() == 1) {
    				p.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFFFF> [Moderator]: <img=0></col>" + p.getDisplayName());
    			} else if (p.getRights() == 7) {
    				p.getPackets().sendIComponentText(1082, playernames[i], "<col=FFFF00> [Owner & Developer]: <img=1></col>" + p.getDisplayName());
    			} else if (p.getRights() == 0) {
    				p.getPackets().sendIComponentText(1082, playernames[i], " [Player]: " + p.getDisplayName());
    			}
    			p.getPackets().sendIComponentText(1082, playercombatlvls[i], "Combat Level: " + p.getSkills().getCombatLevelWithSummoning());
    			i++;
    		}
    	}
    should do it.
    Reply With Quote  
     

  10. Thankful user:


  11. #9  
    Registered Member
    Andys1814's Avatar
    Join Date
    Feb 2013
    Posts
    974
    Thanks given
    688
    Thanks received
    455
    Rep Power
    727
    It probably has something to do with the fact that your player names are stored in an array lmao.
    Reply With Quote  
     

  12. #10  
    Registered Member

    Join Date
    Nov 2015
    Age
    24
    Posts
    1,980
    Thanks given
    334
    Thanks received
    1,051
    Rep Power
    5000
    Quote Originally Posted by Andys1814 View Post
    It probably has something to do with the fact that your player names are stored in an array lmao.
    no only the componentids where the names are supposed to be placed are in the array lol
    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: 2
    Last Post: 06-07-2011, 06:12 PM
  2. [508] Players command for noobs [508]
    By Dimitry in forum Tutorials
    Replies: 13
    Last Post: 07-13-2010, 05:14 PM
  3. Easy Commands Commad, using for loop
    By i hazy i in forum Configuration
    Replies: 3
    Last Post: 09-08-2009, 02:07 AM
  4. [508]Player command for noobs
    By Dimitry in forum Tutorials
    Replies: 2
    Last Post: 08-08-2009, 10:15 PM
  5. [Code]Correct master loop for player stats
    By Wolf in forum Configuration
    Replies: 28
    Last Post: 06-19-2008, 12:22 AM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •