Jump to content

Recommended Posts

Posted

Hello everyone, here I make a vote system for a firend but him dont want to use it anymore then I will share here.

 

Support these sites:

http://l2.hopzone.net/

http://l2topzone.com/

http://www.gtop100.com/

IMPORTANT

- Test it.

- I dont help to adapt it.

- Missing: No config file, just the core.

- Dont share it anywhere whitout credits (Like here http://adminsprol2.com/ total dumbasses).

- I chose 300 post also the pepole contribute more in maxcheaters and make happy maxtor :P and prevent noobs reshare whitout credits (So, dont share it or quote me in the topic).

 

/*
* 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 com.l2jserver.gameserver.handler;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.ThreadPoolManager;
import com.l2jserver.gameserver.model.L2World;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;

/**
* @author OPhE
*/
public class AutoVoteRewardHandler
{
private static int _minForStart = 5;
private static int _minForPool = 5;
private static String _Url = "";
int[][] _items = {{1111, 2}, {8888,7}}; // {{ITEM ID, QUANTY}, {ITEM ID, QUANTY}}

/* DONT TOUCH FROM HERE IF YOU DONT KNOW WHAT ARE YOU DOING */
int votesForReward = 10;
int lastVotes = 0;
int currentVotes = 0;
int _operation = 0;


public static AutoVoteRewardHandler getInstance()
{
	return SingletonHolder._instance;
}

public AutoVoteRewardHandler()
{
	lastVotes = getVotes();
	ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable()
	{

		@Override
		public void run()
		{
			currentVotes = getVotes();
			_operation = currentVotes - lastVotes;
			if(_operation >= votesForReward)
			{
				int i = _operation;
				for(L2PcInstance pc : L2World.getInstance().getAllPlayersArray())
					for(int item[] : _items)
						pc.addItem("votereward", item[0], item[1] * i - (i % 1), pc, true);
				if(i - (i % 1) > 1)
					Announcements.getInstance().announceToAll("All players rewared " + (i - (i % 1)) + " times by vote system");
				else
					Announcements.getInstance().announceToAll("All players rewared by vote system");
			} else
				Announcements.getInstance().announceToAll("We need " + _operation + " votes more for reward all players.");
		}
	}, _minForStart * 60000, _minForPool * 60000);
}

public static int getVotes()
{
	String data1 = null;
	int data2 = 0;
	if(_Url.startsWith("http://l2.hopzone.net/"))
		data1= "<li><span class=\"rank anonymous tooltip\" title=\"Anonymous User Votes\">";
	else if(_Url.startsWith("http://l2topzone.com/"))
		data1 = "<tr><td><div align=\"center\"><b><font style=\"font-size:14px;color:#018BC1;\">";
	else if(_Url.startsWith("http://www.gtop100.com/"))
	{
		DateFormat dateFormat = new SimpleDateFormat("yyyy-M-d");
		Date date = new Date();
		data1 = "<div class=\"barhcaption\" style=\"line-height:17px; width:90px;\">"+ dateFormat.format(date) +"</div>";
		data2 = 2;
	}


	if(data1 != null)
		try {
			URL url = new URL(_Url);
			try {
				URLConnection connection = url.openConnection();
		        connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.3) Gecko/20100401");
		        
		        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
		        String line;
		        boolean onix = false;
		        int io = 0;
				while((line = in.readLine()) != null)
				{
					if(line.contains(data1))
						onix = true;
					if(onix)
					{
						if(io >= data2)
							return Integer.parseInt(line.replaceAll("\\<.*?\\>", "").trim());
						io++;
					}
				}

			} catch (IOException e) {
				e.printStackTrace();
			}

		} catch (MalformedURLException e) {
			e.printStackTrace();
		}
	return 0;
}

private static class SingletonHolder
{
	protected static final AutoVoteRewardHandler _instance = new AutoVoteRewardHandler();
}
}

 

To start it call:

AutoVoteRewardHandler.getInstance();

 

Credits: Me (OPhE)

I used these info to make it:

- http://docs.oracle.com/javase/1.4.2/docs/api/java/net/URL.html

- http://discuss.itacumens.com/index.php?topic=44801.0

- http://stackoverflow.com/questions/2793150/how-to-use-java-net-urlconnection-to-fire-and-handle-http-requests

Posted

Need a fix . : "else if(_Url.startsWith("http://www.gtop100.com/"))"

 

By setting startsWith and then http://www.gtop......

Is a terrible mistake, If the user will use www.gtop .... or http://gtop100..... will be false.

 

So its better to do it . : "else if(_Url.contains("gtop100.com"))"

Posted

Need a fix . : "else if(_Url.startsWith("http://www.gtop100.com/"))"

 

By setting startsWith and then http://www.gtop......

Is a terrible mistake, If the user will use www.gtop .... or http://gtop100..... will be false.

 

So its better to do it . : "else if(_Url.contains("gtop100.com"))"

Please be informed before post:

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#startsWith%28java.lang.String%29

 

String object as determined by the equals(Object) method.

  • 1 month later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Both are in-game bots. I'm looking for an out-of-game bot ((one that doesn’t require the L2 client).     Hmm, never heard about this bot. Will check, thank you
    • 🎉 L2Mid is back! After a 3-year pause, we’re launching a new Interlude server based on the original Interlude client (old school 😉).   What to expect • The classic Interlude spirit • Old friends, rival clans, and returning legends • A season focused on pure nostalgia   This may be our final Interlude server. (maybe 😉) 🗓️ Opening: December 5, 2025 at 20:00 (GMT+2)   https://l2mid.com
    • Hello, i was wondering if there's a guide on how to add the enchanting armor glow system from  Ertheia or Lindvior to hi5?
    • I imported this file using Unreal Engine 2 Runtime, modified it, saved it back, and then placed it on the client. When I run the game and wear this back accessory, the client crashes!     2025.10.28 03:52:59 OS : Windows XP 5.1 (Build: 2600) CPU : GenuineIntel  Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz @ 3697 MHz 1023MB RAM Video : NVIDIA GeForce GT 730 (3064) PosCode : TS4(273) -119:-62:-1474 4/1 [0] SkeletalMesh MFighter_Fuckl2jangel.MFighter_Fuckl2jangel: Serial size mismatch: Got 383399, Expected 383403 History: LoadObject <- (SkeletalMesh MFighter_Fuckl2jangel.MFighter_Fuckl2jangel 8376427==8376427/8376498 7993028 383403) <- ULinkerLoad::Preload <- PreLoadObjects <- UObject::EndLoad <- UObject::StaticLoadObject <- (Engine.Mesh MFighter_Fuckl2jangel.MFighter_Fuckl2jangel NULL) <- UMeshComponent::LoadMeshComponent <- UMeshContainer::UpdateMeshComponents <- APawn::UpdateMeshComponents <- User::UpdatePawnMeshContainerByItem <- User::UpdatePawnMeshContainer <- User::SetPawnResource <- NCPawnView_InvenItemWnd::OnRButtonDown <- NCVirtualWndMain::SetFocusingWindow <- NCVirtualWndMain::DispatchWndMsg <- NConsoleWnd::DispatchWndMsg <- NConsoleWnd::MasterConsoleEventProcess <- UEngine::InputEvent <- UWindowsViewport::CauseInputEvent <- UWindowsViewport::UpdateInput <- UViewport::ReadInput <- APlayerController::Tick <- ALineagePlayerController::Tick <- TickAllActors <- ULevel::Tick <- (NetMode=0) <- UMasterLevel::Tick <- TickLevel <- UGameEngine::Tick <- UpdateWorld <- MainLoop   I don't know what the reason is. Can you help me?
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock