Jump to content

Recommended Posts

Posted

line 78 -  boolean canReward = false;                  (playerIps empty array in that position)

line 80 -  if (playerIps.containsKey(pIp))                (won't enter here .> array empty)

 

line 96 - if (canReward)                                            (won't enter here .> boolean is false)

 

I think we should think what are we posting before doing it, not?

Posted

Try this...

 

public class MiniReward
{
static HashMap<String, Integer> Ips = new HashMap<String, Integer>();
        
public static void getInstance()
{
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
	{
		@Override
		public void run()
		{
			Collection<L2PcInstance> pls = L2World.getInstance().getAllPlayers().values();

			for (L2PcInstance p : pls)
                {
				String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();
                        
				if (!Ips.containsKey(pIp))
                    {
					Ips.put(pIp, 1);
					reward(p);
                    }
				else
				{
					int count = Ips.get(pIp);
                
					if (count < Config.DUALBOXES_ALLOWED)
                    {
						Ips.remove(pIp);
						Ips.put(pIp, count+1);
						reward(p);
                    }
					else
                    {
						p.sendMessage("Already "+Config.DUALBOXES_ALLOWED+" character(s) of your ip have been rewarded, so this character won't be rewarded.");
                    }

				}
                }
			Ips.clear();
		}             
	}, 0, 86400 * 1000);
}

private static void reward(L2PcInstance player)
{
	for (int i : Config.MINI_REWARD.keySet())
        {
		player.addItem("Mini Reward.", i, Config.MINI_REWARD.get(i), player, true);
        }
}
}

  • 1 year later...
Posted (edited)

Put size() instead of values.

 

L2World.getInstance().getAllPlayers().size();

 

Else you can try like

 

L2World.getInstance().getAllPlayersArray(); - if he use(d) l2j method ..

 

If you still get error then use search option for "L2World.getInstance().getAllPlayers()" and you will see how it is @ reunion.

Edited by SweeTs
Posted

1st of all, when you say "error" tell us what error.. 2nd thing, just do as I said aka use search option for that, you will find the answer on your own.

Posted


/*

* This program is free software: you can redistribute it and/or modify it under

* the terms of the GNU General Public License as published by the Free Software

* Foundation, either version 3 of the License, or (at your option) any later

* version.

*

* This program is distributed in the hope that it will be useful, but WITHOUT

* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS

* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more

* details.

*

* You should have received a copy of the GNU General Public License along with

* this program. If not, see <http://www.gnu.org/licenses/>.

*/

package l2r.gameserver.model.entity;

 

import java.util.HashMap;

 

import l2r.Config;

import l2r.gameserver.ThreadPoolManager;

import l2r.gameserver.model.L2World;

import l2r.gameserver.model.actor.instance.L2PcInstance;

 

/**

* @author Loses

*/

public class MiniReward

{

static HashMap<String, Integer> Ips = new HashMap<>();

 

public static void getInstance()

{

ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()

{

@Override

public void run()

{

L2PcInstance[] pls = L2World.getInstance().getAllPlayersArray();

 

for (L2PcInstance p : pls)

{

String pIp = p.getClient().getConnection().getInetAddress().getHostAddress();

 

if (!Ips.containsKey(pIp))

{

Ips.put(pIp, 1);

reward(p);

}

else

{

int count = Ips.get(pIp);

 

if (count < Config.DUALBOXES_ALLOWED)

{

Ips.remove(pIp);

Ips.put(pIp, count + 1);

reward(p);

}

else

{

p.sendMessage("Already " + Config.DUALBOXES_ALLOWED + " character(s) of your ip have been rewarded, so this character won't be rewarded.");

}

 

}

}

Ips.clear();

}

}, 0, 14400 * 1000);

}

 

static void reward(L2PcInstance player)

{

for (int i : Config.MINI_REWARD.keySet())

{

player.addItem("Mini Reward.", i, Config.MINI_REWARD.get(i), player, true);

}

}

}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...