Перейти к содержанию

tomalko

Новичок
  • Публикаций

    7
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Сообщения, опубликованные tomalko


  1. В 07.02.2023 в 15:38, tomalko сказал:
    
    обновление
    
    package custom.TimeRewards;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.logging.Logger;
    
    import org.l2jmobius.Config;
    import org.l2jmobius.commons.threads.ThreadPool;
    import org.l2jmobius.commons.util.Rnd;
    import org.l2jmobius.gameserver.model.Location;
    import org.l2jmobius.gameserver.model.World;
    import org.l2jmobius.gameserver.model.actor.Player;
    
    /**
     * TomAlko
     */
    
    public class TimeRewards
    {
    	private static Logger LOGGER = Logger.getLogger(TimeRewards.class.getName());
    	private static boolean RewardEnable = true; // true - включен, false - выключен
    	private static int RewardTime = 60; // время (в минутах), через которое будет выдан итем
    	private static int RewardId = 4037; // ID итема
    	private static int MinLvl = 1; // минимальный левел, с которого можно получать итем
    	private static int MaxLvl = 85; // максимальный левел, до которого можно получать итем
    	private static int MinCount = 1; // минимальное кол-во итемов
    	private static int MaxCount = 2; // максимальное кол-во итемов
    	private static int MinCountPremium = 3;
    	private static int MaxCountPremium = 4;
    	
    	public TimeRewards()
    	{
    		LOGGER.info("=================================================");
    		LOGGER.info("========= Time Rewards by Seidhe LOADED =========");
    		LOGGER.info("=================================================");
    		ThreadPool.schedule(new RunnableTimeRewards(), RewardTime * 60000);
    	}
    	
    	private class RunnableTimeRewards implements Runnable
    	{
    		private final Map<Integer, Location> _lastLoc = new HashMap<Integer, Location>();
    		
    		@Override
    		public void run()
    		{
    			for (Player player : World.getInstance().getPlayers())
    			{
    				if ((player == null) || player.isInOfflineMode() || player.isAlikeDead() || (player.getLevel() < MinLvl) || (player.getLevel() > MaxLvl))
    				{
    					continue;
    				}
    				if (_lastLoc.containsKey(player.getObjectId()))
    				{
    					try
    					{
    						Location l = _lastLoc.get(player.getObjectId());
    						Location l2 = player.getLocation();
    						if (Math.abs(((l.getX() * l.getX()) + (l.getY() * l.getY())) - ((l2.getX() * l2.getX()) + l2.getY() + l2.getY())) < 200)
    						{
    							continue;
    						}
    					}
    					finally
    					{
    						_lastLoc.put(player.getObjectId(), player.getLocation());
    					}
    				}
    				int score = 0;
    				if (Config.PREMIUM_SYSTEM_ENABLED && player.hasPremiumStatus())
    				{
    					score = MinCountPremium + Rnd.get(MaxCountPremium - MinCountPremium);
    				}
    				else
    				{
    					score = MinCount + Rnd.get(MaxCount - MinCount);
    				}
    				if (score <= 0)
    				{
    					continue;
    				}
    				player.addItem("TimeReward", RewardId, score, player, true);
    			}
    			ThreadPool.schedule(new RunnableTimeRewards(), RewardTime * 60000);
    		}
    	}
    	
    	public static void main(String[] args)
    	{
    		if (RewardEnable)
    		{
    			new TimeRewards();
    		}
    	}
    }

     

     


  2. В 18.03.2013 в 05:40, РукьЖопь сказал:

    Подскажите пожалуйста как можно реализовать выдачу предмета игроку если он находиться в игре больше определенного времени.

    Допустим за каждый час непрерывного времени в игре.

    Исходники L2jserver.

    package custom.TimeRewards;
    
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import java.util.Map;
    import java.util.HashMap;
    
    import org.l2jmobius.commons.threads.ThreadPool;
    import org.l2jmobius.gameserver.model.World;
    import org.l2jmobius.gameserver.model.Location;
    import org.l2jmobius.gameserver.model.actor.Player;
    import org.l2jmobius.commons.util.Rnd;
    
    /**
     * TomAlko
     */
    
    public class TimeRewards
    {
    	private static Logger LOGGER = Logger.getLogger(TimeRewards.class.getName());
    	private static boolean RewardEnable = true; // true - включен, false - выключен
    	private static int RewardTime = 60;			// время (в минутах), через которое будет выдан итем 
    	private static int RewardId = 4037;			// ID итема
    	private static int MinLvl = 1;				// минимальный левел, с которого можно получать итем
    	private static int MaxLvl = 85;				// максимальный левел, до которого можно получать итем
    	private static int MinCount = 1;			// минимальное кол-во итемов
    	private static int MaxCount = 2;			// максимальное кол-во итемов
    
    	public TimeRewards() {
    		LOGGER.info("=================================================");
    		LOGGER.info("========= Time Rewards by Seidhe LOADED =========");
    		LOGGER.info("=================================================");
    		ThreadPool.schedule(new RunnableTimeRewards(), RewardTime * 60000);
    	}
    
    	private class RunnableTimeRewards implements Runnable
    	{
    		private Map<Integer,Location> _lastLoc = new HashMap<Integer, Location>();
    		public void run()
    		{
    			for(Player player : World.getInstance().getPlayers()) {
    				if(player == null || player.isInOfflineMode() || player.isAlikeDead() || player.getLevel() < MinLvl || player.getLevel() > MaxLvl) 
    					continue;
    				if(_lastLoc.containsKey(player.getObjectId())) try {
    					Location l = _lastLoc.get(player.getObjectId());
    					Location l2 = player.getLocation();
    					if(Math.abs((l.getX()*l.getX() + l.getY()*l.getY())-(l2.getX()*l2.getX()+l2.getY()+l2.getY())) < 200)
    						continue;
    				} finally {
    					_lastLoc.put(player.getObjectId(), player.getLocation());
    				}
    				int score = MinCount+Rnd.get(MaxCount-MinCount);
    				if(score <= 0)
    					continue;
    				player.addItem("TimeReward", RewardId, score, player, true);
    			}
    			ThreadPool.schedule(new RunnableTimeRewards(), RewardTime * 60000);
    		}
    	}
    	
    	public static void main(String[] args)
    	{
    		if (RewardEnable) {
    			new TimeRewards();
    		}
    	}
    }

     


  3. Нигде не могу найти более  или мение подробного видео как сделай сайт

    Видео для этого мало... Надо знать немного программирование, без знания только готовое решение (скачать и поставить).


  4. Ребят я смотрю вы больше меня понимаете. Но кто делает защиту по IP (Динамика,Статика) -> забудьте про это или начнёте терять клиента... Самый простой способ сделать привязку к чему либо или выдавать ключ (Другова пути просто не существует) так как потделать можно всё что угодно но не потделать собственные мозги...

×
×
  • Создать...