Jump to content

Recommended Posts

Posted
One sugestion:

 

make one system to down the rank points when player die.

example:

i am on last ranking if i die oftentimes i can back 1 by 1 level on ranking.

 

this may be an option for the system does not become boring when you attain being the maximum level.

 

other option too is make other system for when player not gain pvp points in one configured time him will down your level on raking.

example:

 

i am on 42 level (the maximum) and not make pvp have 3 days... or 1 day... or anyone configured by admin... i will down my level by time to 41...40...39....

 

if I'm asking too much, I'm sorry, but it was just an idea I had to further improve your system that is already great.

thanks your attention.

Posted

 

my config:

#------------------------------------------------------------------------------------------#
#---------------------------< Config v3.8.7 for l2jserver aCid >---------------------------#
#------------------------------------------------------------------------------------------#

#===================================== Rank PvP System ====================================#
# About Legal Kill: 
# When Killer kill Victim and Legal Kill Protection is not activated, then legal kill will rise.

#------------------------------------------------------------------------------------------#
# 			  								PvP	 	 		   						 	   #
#------------------------------------------------------------------------------------------#
# Enable Rank PvP System
RankPvpSystemEnabled = True

# Enable legal counter in Alt+T window in game. It's mean all kills will be counted by RPS rules.
LegalCounterAltTEnabled = False

# Minimum player level for rise legal kills.
LegalKillMinLvl = 1

# If enabled, kill PK player (player with red nick) will rise kills_legal and kills_today_legal in database. Default true. 
LegalKillForPkKillerEnabled = False

# If enabled, kill unflaged player will rise kills_legal and kills_today_legal in database (otherwise PK mode). Default false. 
LegalKillForInnocentKillEnabled = False

# Set time interval between kills the same victim (in minutes).
# Option is used for Legal Kills & RPC & Rank Points.
# Default: 60
ProtectionTimeReset = 0

# If the same player kill victim many times, then after X times the Legal Kills will not increase (0 - Disabled).
# If LegalKillProtection = 3, then it not rise Legal Kills for kill 4 times the same player.
# INFO: Option used for RPC and Rank Points.
LegalKillProtection = 0

# If the same player kill victim many times, then after X times the Legal Kills will not increase (0 - Disabled).
# X is reseted every day.
# IMPORTANT: LegalKillProtection MUST BE = 0.
# INFO: Option used for RPC and Rank Points.
DailyLegalKillProtection = 0

# If True, then GM characters will be ignored by RPS.
# Option is used when coloring nick and titles too.
# Info: If GM characters are saved in RPS, you should remove them manually from rank_pvp_system tables.
# SQL example: 
# 	DELETE FROM rank_pvp_system WHERE killer_id IN(SELECT charId FROM characters WHERE accesslevel <> USER_ACCESSLEVEL); 
# *USER_ACCESSLEVEL is a access level for users.
# Default: True
GMIgnoreEnabled = True

#------------------------------------------------------------------------------------------#
# 			  	  					RPC Reward & PvP Reward		   						   #
#------------------------------------------------------------------------------------------#
# It gives reward(RPC) for any legal PvP.
# INFO: ProtectionTimeReset is used.
# Enable PvP Reward System (RPC Reward & Reward)
# REQUIRE: RankPvpSystemEnabled = True

# RPC Reward allows earn and exchange RPC points for selected rewards, this RPC are awarded for each PvP.
RpcRewardEnabled = True
# INFO: RPC - is a special currency, player can exchange it for items.
# RPC Reward amount, awarded for each PvP.
RpcRewardAmmount = 1
# Minimum player level to obtain reward.
RpcRewardMinLvl = 76

# PvP Reward awarded for each PvP.
PvpRewardEnabled = True
# Reward item id.
PvpRewardId = 57
# PvP Reward amount, awarded for each PvP.
PvpRewardAmount = 1000000
# Minimum player level to obtain reward.
PvpRewardMinLvl = 76

# If enabled, gives reward for kill PK player (player with red nick).
RewardForPkKillerEnabled = False
# If enabled, kill unflaged player will be rewarded (otherwise PK mode). Default false. 
RewardForInnocentKillEnabled = False

# If enabled, gives rewards for kill player by rank. Reward list for each rank defined in database table: rank_pvp_system_rank_reward, is_pvp = true.
# REQUIRE: RanksEnabled = True
RankPvpRewardEnabled = True
# Minimum player level to obtain reward.
RankPvpRewardMinLvl = 76

# If enabled, gives rewards for reach new Rank by player. Reward list for each rank defined in database table: rank_pvp_system_rank_reward, is_level = true.
# REQUIRE: RanksEnabled = True
RankLevelRewardEnabled = False

# If enabled, RP, RPC, PvP Reward and Rank PvP Reward will check Legal Kill conditions.
RewardLegalKillEnabled = False

#------------------------------------------------------------------------------------------#
# 				 					  	 	Ranks 							 		 	   #		
#------------------------------------------------------------------------------------------#
# INFO: ProtectionTimeReset is used.
# INFO: RankNames, 
# 		RankMinPoints, 
# 		RankPointsForKill, 
# 		RankRewardIds, 
# 		RankRewardAmounts 
# 		must have same size and cannot be empty.
# REQUIRE: RankPvpSystemEnabled = true
RanksEnabled = True

# Minimum player level for obtain Rank Points.
RankPointsMinLvl = 1

# Cut off points, earned for kill high rank victims ['rank points for kill']. (should reduce farm of RP on high level victims)
# Example: Killer RP reward is 20, victim RP reward is 50, if killer kill the victim he will obtain 20 points, not 50 points.
RankPointsCutEnabled = True

# Rank names (first element is the higher rank):
# Format: name1,name2,name3
# Example: RankNames = Five Star General,General [Grade 3],General [Grade 2],General, ... ,Apprentice,Recruit
RankNames = Five Star General,General [Grade 3],General [Grade 2],General,Brigadier General,Brigadier [Grade 3],Brigadier [Grade2],Brigadier,Force Colonel,Colonel [Grade 3],Colonel [Grade 2],Colonel,Strike Commander,Commander [Grade 3],Commander [Grade 2],Commander,Field Major,Major [Grade 3],Major [Grade 2],Major,Staff Captain,Captain [Grade 3],Captain [Grade 2],Captain,First Lieutenant,Lieutenant [Grade 3],Lieutenant [Grade 2],Lieutenant,Master Sergeant,Gunnery Sergeant [Grade 3],Gunnery Sergeant [Grade 2],Gunnery Sergeant,Sergeant [Grade 3],Sergeant [Grade 2],Sergeant,Corporal [Grade 2],Corporal,Private [Grade 2],Private,Apprentice [Grade 2],Apprentice,Recruit

# INFO: Be careful with points. MySql database allow BIGINT(18) total rank points.

# Rank require points (first element is points count for obtain 1st rank title, in example: Five Star General):
# Format: count1,count2,count3
# count1 > count2 > count3 > ... >= 0, minimum points for first (lowest) rank must be 0!
# Foramt: RankMinPoints = 10000,1000,400,0
# IMPORTANT: property elements count must be same like in RankNames.
# Example: if player have current points BETWEEN 2,000,000 AND 1,000,000 it gives rank: General [Grade 3].
RankMinPoints = 2000000,1000000,750000,600000,400000,250000,190000,150000,120000,100000,82000,65000,50000,38000,28000,20000,14000,10000,7000,5000,3000,2000,1500,1000,880,760,680,580,500,450,400,360,320,280,240,190,150,120,70,30,10,0

# Example: For Five Star General kills reward is 50 points.
# Format: count1,count2,count3
# All values MUST be greater than 0.
# IMPORTANT: properties count must be same like in RankNames.
RankPointsForKill = 50,48,46,44,42,40,38,36,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,1

# If enabled RPC points will be awarded for kill Victim with specified rank.
RankRpcEnabled = True
# INFO: RPC - is a special currency, player can exchange it for items.
# RPC amounts for kill player with defined ranks.
# IMPORTANT: properties count must be same like in RankNames.
RankRpcAmount = 42,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,1

# Enable alternative points counting for players.
# If enabled then RankPointsForKill is ignored.
# Example: RankPointsDownAmounts = 100,50,10,1,0
# For first kill awards 100, 2nd kill give 50, ... , 0.
# It can be manipuleted by LegalKillProtection and DailyLegalKillProtection.
# IMPORTANT: Protection X value cannot be less than size of RankPointsDownAmounts. Example: min value for example data is 5.
RankPointsDownCountEnabled = False
RankPointsDownAmounts = 100,50,10,1,0

# Shout current Points info for killer & victim.
RankShoutInfoOnKillEnabled = True

# Shout Bonus Points informations for killer.
# Require: RankShoutInfoOnKillEnabled = True
RankShoutBonusInfoOnKillEnabled = True

# If enabled shows informations about Total Kills on Victim, otherwise show informations about Legal Kills on Victim.
TotalKillsInShoutEnabled = True

# If enabled, gives Rank Points for kill PK player (player with red nick).
#RankRewardForPkKillerEnabled = True

# If enabled, Rank Points for kill unflaged player will be awarded (PK mode). Default false. 
#RankRewardForInnocentKillEnabled = False

# Nick and Title colors for each rank.
# INFO: Do not put RED, PURPLE, or LIGHT RED Nick Colors. This colors are used in game!
# Colors must have HTML format (6 letters (hex)).
# Format: ABCDEF,0103FF, ... ,ABCDEF
# Minimum: 000000, Maximum: FFFFFF.
# IMPORTANT: properties count must be same like in RankNames.
# First color on left is for the highest rank, [5 Star General].
NickColorEnabled = False
NickColors = FF8000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00,0000FF,FF0000,00FF00,FF0000,00FF00

TitleColorEnabled = True
TitleColors = FF0000,FF3300,FF6600,FF9900,FF9966,FF9999,FFCCCC,FFCC99,FFCC66,FFCC33,FFFF00,FFFF66,FFFF99,FFFFCC,CCFFFF,CCFFCC,CCFF99,CCFF66,99FF00,99FF66,99FF99,99FFCC,99FFFF,99CCFF,9999FF,9966FF,9933FF,CC00FF,CC66FF,CC99FF,66CCFF,6699FF,6666FF,6633FF,6600FF,3300FF,3333FF,3399FF,33CCFF,00FFFF,33FFFF,FFFFFF

#------------------------------------------------------------------------------------------#
# 								 	  	 War Kills 						     			   #
#------------------------------------------------------------------------------------------#
# Enable war kills counter
WarKillsEnabled = True

# Ratio for Rank Points when killed a player from War Clan. 
# Add to standard rank points for kill difference between ((points * ratio) - points).
# 2.0 mean 2 times more points for kill a player from war. 
# Ratio must be > 1, if <= 1 points will be not multiplied.
WarRankPointsRatio = 1.2

#------------------------------------------------------------------------------------------#
# 								 		 Combo Kills						     	 	   #
#------------------------------------------------------------------------------------------#
# Combo system allow get combo for killing the victims. 
# Combo will be reseted if character will die, relog, join to event or olympiad.
# Combo system disabled on events and olympiad (option inherited from Rank PvP System).

# Enable combo kill system.
ComboKillEnabled = False

# Shout messages for players, if killer kill more victims.
# Format: combo_kills,message; ... ;combo_kills,message
# List must be ORDERED from lowest to highest by combo_kills.
#
# Message can contain special tags: 
#	 %killer% - it will be replaced by killer name.
#	 %victim% - it will be replaced by victim name.
#	 %combo_level% - it will be replaced by combo level.
#
# Local - shout message to visible players by killer.
# Global - shout message to all players online.
# Info: one of these lists can be empty, and combo_kills can be random numbers, but ordered (example: 1,msg;2,msg;3,msg;6,msg;7,msg;8,msg;10,msg;55,msg;100,msg).
# It can start from 3,msg;6,msg;7, ... then killers with combo level 1 and 2 will be not shouted.
# Checking priority: if combo_kills will be founded on local list, then global list is not checked.
ComboKillLocalAreaMessages = 2,%killer% is a good killer!;3,%killer% is a perfect killer!;4,%killer% have no mercy!;5,%killer% is in killing spree!;6,%killer% assassinate every target!;7,%killer% is killing master!;8,%killer% is a Uber killer!;9,%killer% own the battlefield!
ComboKillGlobalAreaMessages = 10,%killer% is Unstopable!!!

# Alternate combo message method, is not require for each combo level defining the message.
# Just one message for any combo level.
# If enabled shows combo size, example: Player have 5 Combo kills! or Player have 99 Combo kills!
#
# Message can contain special tags: 
#	 %killer% - it will be replaced by killer name.
#	 %victim% - it will be replaced by victim name.
#	 %combo_level% - it will be replaced by combo level.
#
# If ComboKillAltGlobalMessageMinLvl = 10 then if player get combo level >= 10 it will be shout on global chat, otherwise on local chat. 
# If ComboKillAltGlobalMessageMinLvl = 0 it shouts all messages on local chat.
ComboKillAltMessagesEnabled = False
ComboKillAltMessage = %killer% have %combo_level% Combo kills!
ComboKillAltGlobalMessageMinLvl = 10

# If enabled shout messeage about defeated combo killer, if victim combo is greater than selected level.
ComboKillDefeatMessageEnabled = True
# Minimum combo level for show the defeat message. It not mess chat window with player's low combo level.
# Require: ComboKillDefeatMessageEnabled = True
ComboKillDefeatMessageMinComboLvl = 3

# Message can contain special tags: 
#	 %killer% - it will be replaced by killer name.
#	 %combo_level% - it will be replaced by combo level.
#
# ComboKillDefeatMessage = %killer% is defeated! or:
ComboKillDefeatMessage = %killer% is defeated with %combo_level% combo lvl!!!

# Enable protection with Legal Kills, combo will rise if it's legal kill.
ComboKillProtectionWithLegalKillEnabled = True

# Enable protection with No Repeat for kill, combo will rise if victim is not on current combo list.
ComboKillProtectionNoRepeatEnabled = True

# If kill time between previous victim and next victim will be greater than ComboKillReseter, combo will be reseted.
# Time in seconds.
# 0 - disabled.
# Default: 300
ComboKillReseter = 300

# List contains combo kills and rank points ratio added to rank points for kill.
# Format: combo_kills,ratio; ... ;combo_kills,ratio
# List must be ordered from lowest to highest by combo_kills.
# Ratio must be greater than 1.0, otherwise will be ignored.
ComboKillRankPointsRatioEnabled = True
ComboKillRankPointsRatio = 5,1.1;6,1.2;7,1.3;8,1.4;9,1.5;10,1.6

#------------------------------------------------------------------------------------------#
# 			  .pvpinfo command, PvP Status window, Death Status, RPC options 	    	   #
#------------------------------------------------------------------------------------------#
# If enabled allow use .pvpinfo command on targeted player.
PvpInfoCommandEnabled = True

# If enabled change .pvpinfo for /pvpinfo command. (/pvpinfo is recommended)
# IMPORTANT: Is require Client modification file: LineageII/system/commandname-e.dat
# Information how to apply it in: ClientModInfo.txt
PvpInfoUserCommandEnabled = True
# ID of command, it is same id what is in commandname-e.dat.
PvpInfoUserCommandId = 1004

# If enabled shows .pvpinfo window about killer for victim.
PvpInfoCommandShowOnDeathEnabled = True

# Show additional button in PvPStatus window after death. 
# Button allow see more details about killer. HP/MP/CP, equipment (enchant) if enabled. 
# It shows killer status only for KILL MOMENT.
# Option requires PvpInfoCommandShowOnDeathEnabled and PvpInfoCommandEnabled set on True.
DeathManagerDetailsEnabled = True
# Show killer equipment and items enchant level.
DeathManagerShowItemsEnabled = True

# Enable RPC Exchange for items.
# Items list defined in database table: rank_pvp_system_rpc_reward.
# If enabled, button "RPC Exchange" appear in PvP Status Window. 
RpcExchangeEnabled = True

# Additional protection for RPC Get button.
RpcExchangeConfirmBoxEnabled = True

# If enabled shows player's level in PvP Status window (.pvpinfo)
ShowPlayerLevelInPvpInfoEnabled = True

# If enabled shows information about Total Kills and Total Kills Legal in PvP Status window (.pvpinfo)
# If disabled shows only Total Legal Kills.
TotalKillsInPvpInfoEnabled = True

# If enabled shows information about Total Kills and Total Kills Legal On Me in PvP Status window (.pvpinfo)
# If disabled shows only Total Legal Kills On Me.
TotalKillsOnMeInPvpInfoEnabled = True

#------------------------------------------------------------------------------------------#
# 					 	 PvP / Rank / Reward / DM zone option's 						   #
#------------------------------------------------------------------------------------------#
# Zone id's (for aCis server):
#	PVP(0),
#	PEACE(1),
#	SIEGE(2),
#	MOTHER_TREE(3),
#	CLAN_HALL(4),
#	NO_LANDING(5),
#	WATER(6),
#	JAIL(7),
#	MONSTER_TRACK(8),
#	CASTLE(9),
#	SWAMP(10),
#	NO_SUMMON_FRIEND(11),
#	NO_STORE(12),
#	TOWN(13),
#	HQ(14),
#	DANGER_AREA(15),
#	CAST_ON_ARTIFACT(16),
#	NO_RESTART(17),
#	SCRIPT(18)
#
#	*CUSTOM PVP ZONE should be with id = 0 (ZONE_PVP).
# Rank PvP System Anti-Farm options (zones id):

# Allowed zones id's. 
# Format: zoneId,zoneId, ... ,zoneId,zoneId
# Info: If empty, the system works in all zones, otherwise system works in Allowed Zones only (defining restricted zones not required then).
# Example: AllowedZonesIds = 1,7,12 , then system works ONLY in zone with ID = 1 and 7 and 12.
AllowedZonesIds = 12

# Restricted zones id's (used if AllowedZonesIds = (empty)). 
# Format: zoneId,zoneId, ... ,zoneId,zoneId
# Info: System NOT working in Restricted Zones.
# Default: RestrictedZonesIds = 1,8,9
# Example: AllowedZonesIds = 1,8,9 , then system NOT works in zones with ID'S = 1,8,9.
RestrictedZonesIds = 1,4,7,8

# INFO: AllowedZonesIds = 1,3,5,9 and RestrictedZonesIds = 1,8,9 
# then system will works only in 1 and 3 and 5 and 9.
# Remember, if you define AllowedZonesIds then system not checking RestrictedZonesIds.

# Death Manager is disabled in this zones.
DeathManagerRestrictedZonesIds = 1,4,7,8

# Rank Points Bonus Ratio zones id's.
# Add to standard rank points for kill difference between ((points * ratio) - points).
# Ratio must be > 1, if <= 1 points will be not multiplied.
# Format: zoneId,ratio; ... ;zoneId,ratio
# Example: 2,1.5;13,1.2
# It will multiply rank points for Killer by 1.5 in area 2 , if Killer is inside this area.
RankPointsBonusZonesIds =

#------------------------------------------------------------------------------------------#
# 			    						 Anti-Farm 	         					     	   #
#------------------------------------------------------------------------------------------#
# INFO: Options to check farming players 
# (dualbox farming, party farming, clan farming).
# If True protection is activated.
AntiFarmClanAllyEnabled = True
AntiFarmPartyEnabled = True
AntiFarmIpEnabled = False

#------------------------------------------------------------------------------------------#
# 			  						  Community Board        				   	   		   #
#------------------------------------------------------------------------------------------#
# Enable statistics system for community TOP LIST, data like top killers, top RP gatherers will be showed.
# Default: True
TopListEnabled = True

# Set a Time Limit (in days) for system counter. Option is used for update Top Table.
# If some player not killed anybody from X days, he will be ignored on Top List.
# When ignored player kills somebody again he will returns to counting pool in next update of Top Table.
# Disabled: 0
# Default: 7
TopListIgnoreTimeLimit = 0

#------------------------------------------------------------------------------------------#
# 			    						  Database 						            	   #
#------------------------------------------------------------------------------------------#
#----------------- DO NOT CHANGE IT IF YOU DON'T KNOW WHAT ARE YOU DOING! -----------------#

# Interval between PvpTable dump into database (in minutes).
# Value must be greater than 1 or will be overrided for 1.
# Default: 5
PvpTableUpdateInterval = 5

# If enabled, then if RPC System is disabled the players RPC Points will be updated anyway (executed with PvpTableUpdate).
RpcTableForceUpdate = True

# Top Table update time.
# Option is enabled if TopListEnabled = True.
# IMPORTANT: for online 500+ can do lag for few seconds [0s - 3s] when updating.
# Example: TopTableUpdateTimes = 0:00,3:00,6:00,9:00,12:00,15:00,18:00,21:00
# Default: TopTableUpdateTimes = 3:00
TopTableUpdateTimes = 3:00

# If enabled, system will remove permanenlty not active players from PvP Table on server startup.
# Default: False
DatabaseCleanerEnabled = False
# If player not logged into game from X days, his data will be removed from PvP Table PERMANENTLY!
# Option will be useful for big online servers.
# Value must be greater than 0, otherwise DatabaseCleanerEnabled will be changed on False.
# Default: 60
DatabaseCleanerRepeatTime = 60

#------------------------------------------------------------------------------------------#
# 			    						Images & Style	 						       	   #
#------------------------------------------------------------------------------------------#
# If True, then images will be sended from server to client (increases the load on internet), (require copy the 'images' folder into '../gameserver/data' folder).
# If False, then client will retrive images from local directory (require copy the 'RPS_byMasterio.utx' into '../Lineage II/SysTextures' folder).
ServerSideImagesEnabled = True

# Additional image prefix, for reload all images on RPS by Client side.
# Used when ImagesFromServerEnabled = True.
# If you want reload all RPS images just add 1 to previous value.
# Example: If I have this value on 1, then when I run Client and load some images for RPS they will be buffered by Client side.
# If I edited images and I want reset this images on Client side I must rise the value by 1.
# Max prefix value is 500 000. (It gives 500 000 possible reloads)
ImagePrefix = 6

# Buttons style in PvP Status Window and Top List. (static button in Htm file require manual changes)
# Leave empty ButtonFore, ButtonBack for default values of IL chronicle.
ButtonFore = 
ButtonBack = 
ButtonWidth = 65
ButtonHeight = 20
ButtonBigWidth = 100
ButtonBigHeight = 20
#==========================================================================================#
Posted

i find the problem...

 

if i use one character that have on my db and this character have any pvp points... when the system update the table it cause conflict and cause the errro(i think xD)...

but i make 2 characters new without any pvp points and it work without error.

Posted (edited)

I have a problem.. i compile without  errors but when i click a player i have no info about him .i have info just when i m killed ..

 

and /pvpinfo  or. pvpinfo command not work :((

 

 can help me with some advice?

 

 Thanks for your great work!!!!

Edited by hades25
Posted

I have a problem.. i compile without  errors but when i click a player i have no info about him .i have info just when i m killed ..

 

and /pvpinfo  or. pvpinfo command not work :((

 

 can help me with some advice?

 

 Thanks for your great work!!!!

 Fixed :P :))) i just edit CommandName-e.dat  :P

  • 3 weeks later...
Posted (edited)


// try to add this check:

else if(param.startsWith("RewardList:"))

{

System.out.println(param); // <- here, I want to know about the parameters.

 

try

{

 

Edited by << Masterio >>
Posted

DEBUG: 

Untitled-1.jpg

 

CODE:

		else if(param.startsWith("RewardList:"))
		{
			log.info("DEBUG: Enter Reward list");
			System.out.println("DEBUG: param: "+param);
			try
			{
				int rankId = Integer.valueOf(command.split(":", 2)[2].trim().split(",", 2)[0].trim());
				int pageNo = Integer.valueOf(command.split(":", 1)[2].trim().split(",", 2)[1].trim());
				log.info("DEBUG: Try: Success RankId" +rankId + " pageNo "+pageNo);
				log.info("DEBUG: param: "+param);
				RankPvpSystemRewardList.sendPage(activeChar, pageNo, rankId);			
			}
			catch(Exception e)
			{
				log.info(e.getMessage());
			}
			log.info("DEBUG: Exit Reward list");
		}
Posted (edited)

I 'reinstall' the mod, and I remembered that in LUCERA  this method "ExecuteTask" has not 

 

if you need my source, i send for you...

 

MY IMG CODE: 

Untitled-2.jpg

 

MY CODE:

	public void runPvpTask(L2PcInstance player, L2Character target)
	{
		if(RankPvpSystemConfig.RANK_PVP_SYSTEM_ENABLED)
		{
			if(player != null && target != null && target instanceof L2PcInstance)
			{
				// set Victim handler for Killer
				//setTarget((L2PcInstance)target);	// [not required]
				
				// set Killer handler for Victim
				((L2PcInstance)target).getRankPvpSystemPc().setTarget(player);
				
				ThreadPoolManager.getInstance().executeTask(new RankPvpSystemPvpTask(player, (L2PcInstance)target));
			}
		}
	}

MY ThreadPoolManager

 

package ru.catssoftware.gameserver;

import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;

import ru.catssoftware.Config;
import ru.catssoftware.gameserver.mmocore.ReceivablePacket;
import ru.catssoftware.gameserver.network.L2GameClient;
import ru.catssoftware.gameserver.threadmanager.L2ThreadFactory;
import ru.catssoftware.gameserver.threadmanager.ScheduledFutureWrapper;
import ru.catssoftware.util.concurrent.L2RejectedExecutionHandler;


public final class ThreadPoolManager
{
	private static final long		MAX_DELAY						= TimeUnit.NANOSECONDS.toMillis(Long.MAX_VALUE - System.nanoTime()) / 2;
	private static final			ThreadPoolManager _instance		= new ThreadPoolManager();

	public static ThreadPoolManager getInstance()
	{
		return _instance;
	}

	private final ScheduledThreadPoolExecutor _general = new ScheduledThreadPoolExecutor(Config.GENERAL_THREAD_POOL_SIZE, new L2ThreadFactory("ThreadPool(General)", Thread.NORM_PRIORITY), new L2RejectedExecutionHandler());
	
	private final ScheduledThreadPoolExecutor _moving = new ScheduledThreadPoolExecutor(Config.GENERAL_THREAD_POOL_SIZE, new L2ThreadFactory("ThreadPool(Moving)", Thread.NORM_PRIORITY), new L2RejectedExecutionHandler());

	private final ScheduledThreadPoolExecutor _effect = new ScheduledThreadPoolExecutor(Config.EFFECT_THREAD_POOL_SIZE, new L2ThreadFactory("ThreadPool(Effect)", Thread.NORM_PRIORITY+1), new L2RejectedExecutionHandler());
	
	private final ScheduledThreadPoolExecutor _ai = new ScheduledThreadPoolExecutor(Config.AI_THREAD_POOL_SIZE, new L2ThreadFactory("ThreadPool(AI)", Thread.NORM_PRIORITY), new L2RejectedExecutionHandler());

	private final ScheduledThreadPoolExecutor _pcai = new ScheduledThreadPoolExecutor(Config.AI_THREAD_POOL_SIZE, new L2ThreadFactory("ThreadPool(PCAI)", Thread.NORM_PRIORITY+3), new L2RejectedExecutionHandler());
	private final ScheduledThreadPoolExecutor _lsgs = new ScheduledThreadPoolExecutor(10, new L2ThreadFactory("ThreadPool(LSGS)", Thread.NORM_PRIORITY), new L2RejectedExecutionHandler());
	
	private final ThreadPoolExecutor _packet = new ThreadPoolExecutor(Config.PACKET_THREAD_POOL_SIZE, Config.PACKET_THREAD_POOL_SIZE, 1L, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>(), new L2ThreadFactory("Executor(Packet)", Thread.MAX_PRIORITY), new L2RejectedExecutionHandler()); 
	
	private ThreadPoolManager()
	{
	}
	
	public final void startPurgeTask(long period)
	{
		scheduleGeneralAtFixedRate(new PurgeTask(), period, period);
	}

	private final class PurgeTask implements Runnable
	{
		public void run()
		{
			purge();
		}
	}

	private final long validate(long delay)
	{
		return Math.max(0, Math.min(MAX_DELAY, delay));
	}

	public ScheduledFuture<?> schedule(Runnable r, long delay)
	{
		
		return new ScheduledFutureWrapper(_general.schedule(r, validate(delay), TimeUnit.MILLISECONDS));
	}

	public void executeLSGSPacket(Runnable r)
    {
		_lsgs.execute(r);
	}

	public ScheduledFuture<?> scheduleAtFixedRate(Runnable r, long delay, long period)
	{
		return new ScheduledFutureWrapper(_general.scheduleAtFixedRate(r, validate(delay), validate(period), TimeUnit.MILLISECONDS));
	}

	public ScheduledFuture<?> scheduleGeneral(Runnable r, long delay)
	{
		if(delay<= 0 )
        {
			_general.execute(r);
			return null;
		}
		return new ScheduledFutureWrapper(_general.schedule(r, validate(delay), TimeUnit.MILLISECONDS));
	}

	public ScheduledFuture<?> scheduleGeneralAtFixedRate(Runnable r, long delay, long period)
	{
		return new ScheduledFutureWrapper(_general.scheduleAtFixedRate(r, validate(delay), validate(period), TimeUnit.MILLISECONDS));
	}

	public void executeGeneral(Runnable r)
	{
		_general.execute(r);
	}

	public ScheduledFuture<?> scheduleEffect(Runnable r, long delay)
	{
		return new ScheduledFutureWrapper(_effect.schedule(r, validate(delay), TimeUnit.MILLISECONDS));
	}

	public ScheduledFuture<?> scheduleEffectAtFixedRate(Runnable r, long delay, long period)
	{
		return new ScheduledFutureWrapper(_effect.scheduleAtFixedRate(r, validate(delay), validate(period), TimeUnit.MILLISECONDS));
	}

	public void executeEffect(Runnable r)
	{
		_effect.execute(r);
	}

	public ScheduledFuture<?> scheduleAi(Runnable r, long delay, boolean pc)
	{
		if(pc)
			return new ScheduledFutureWrapper(_pcai.schedule(r, validate(delay), TimeUnit.MILLISECONDS));
		return new ScheduledFutureWrapper(_ai.schedule(r, validate(delay), TimeUnit.MILLISECONDS));
	}

	public ScheduledFuture<?> scheduleAiAtFixedRate(Runnable r, long delay, long period, boolean pc)
	{
		if (pc)
			return new ScheduledFutureWrapper(_pcai.scheduleAtFixedRate(r, validate(delay), validate(period), TimeUnit.MILLISECONDS));
		return new ScheduledFutureWrapper(_ai.scheduleAtFixedRate(r, validate(delay), validate(period), TimeUnit.MILLISECONDS));
	}

	public void executeAi(Runnable r)
	{
		_ai.execute(r);
	}

	public void executePacket(Runnable r)
	{
		_packet.execute(r);
	}

	public CharSequence getStats()
	{
		StringBuilder list = new StringBuilder();
		
		String newline = System.getProperty("line.separator");
		
		list.append("ThreadPool (General)" + newline);
		list.append("=================================================" + newline);
		list.append("\tgetActiveCount: ...... " + _general.getActiveCount() + newline);
		list.append("\tgetCorePoolSize: ..... " + _general.getCorePoolSize() + newline);
		list.append("\tgetPoolSize: ......... " + _general.getPoolSize() + newline);
		list.append("\tgetLargestPoolSize: .. " + _general.getLargestPoolSize() + newline);
		list.append("\tgetMaximumPoolSize: .. " + _general.getMaximumPoolSize() + newline);
		list.append("\tgetCompletedTaskCount: " + _general.getCompletedTaskCount() + newline);
		list.append("\tgetQueuedTaskCount: .. " + _general.getQueue().size() + newline);
		list.append("\tgetTaskCount: ........ " + _general.getTaskCount() + newline);
		list.append(newline);
		list.append("ThreadPool (Effects)" + newline);
		list.append("=================================================" + newline);
		list.append("\tgetActiveCount: ...... " + _effect.getActiveCount() + newline);
		list.append("\tgetCorePoolSize: ..... " + _effect.getCorePoolSize()+ newline);
		list.append("\tgetPoolSize: ......... " + _effect.getPoolSize() + newline);
		list.append("\tgetLargestPoolSize: .. " + _effect.getLargestPoolSize() + newline);
		list.append("\tgetMaximumPoolSize: .. " + _effect.getMaximumPoolSize() + newline);
		list.append("\tgetCompletedTaskCount: " + _effect.getCompletedTaskCount() + newline);
		list.append("\tgetQueuedTaskCount: .. " + _effect.getQueue().size() + newline);
		list.append("\tgetTaskCount: ........ " + _effect.getTaskCount() + newline);
		list.append(newline);
		list.append("ThreadPool (AI)" + newline);
		list.append("=================================================" + newline);
		list.append("\tgetActiveCount: ...... " + _ai.getActiveCount() + newline);
		list.append("\tgetCorePoolSize: ..... " + _ai.getCorePoolSize() + newline);
		list.append("\tgetPoolSize: ......... " + _ai.getPoolSize() + newline);
		list.append("\tgetLargestPoolSize: .. " + _ai.getLargestPoolSize() + newline);
		list.append("\tgetMaximumPoolSize: .. " + _ai.getMaximumPoolSize() + newline);
		list.append("\tgetCompletedTaskCount: " + _ai.getCompletedTaskCount() + newline);
		list.append("\tgetQueuedTaskCount: .. " + _ai.getQueue().size() + newline);
		list.append("\tgetTaskCount: ........ " + _ai.getTaskCount() + newline);
		list.append(newline);
		list.append("ThreadPoolExecutor (Packet)" + newline);
		
		return list;
	}
		
	private boolean _inshutdown = false;

	public void shutdown()
	{
		_inshutdown = true;
		_general.shutdown();
		_effect.shutdown();
		_ai.shutdown();
		_pcai.shutdown();
		_moving.shutdown();
		_lsgs.shutdown();
		_packet.shutdown();
		System.out.println("ThreadPoolManager: all threads stopped");
	}
	
	public void purge()
	{
		_general.purge();
		_effect.purge();
		_ai.purge();
		_pcai.purge();
		_moving.purge();
		_packet.purge();
	}

	public ScheduledFuture<?> scheduleMove(Runnable r, long delay) {
		return new ScheduledFutureWrapper(_moving.schedule(r, validate(delay), TimeUnit.MILLISECONDS));
	}

	public ScheduledFuture<?> scheduleMoveAtFixedRate(Runnable r, long delay, long period)
    {
		return new ScheduledFutureWrapper(_general.scheduleAtFixedRate(r, validate(delay), validate(period), TimeUnit.MILLISECONDS));
	}

	public static class PriorityThreadFactory implements ThreadFactory
	{
		private int _prio;
		private String _name;
		private AtomicInteger _threadNumber = new AtomicInteger(1);
		private ThreadGroup _group;

		public PriorityThreadFactory(String name, int prio)
		{
			_prio = prio;
			_name = name;
			_group = new ThreadGroup(_name);
		}

		@Override
		public Thread newThread(Runnable r)
		{
			Thread t = new Thread(_group, r);
			t.setName(_name + "-" + _threadNumber.getAndIncrement());
			t.setPriority(_prio);
			return t;
		}

		public ThreadGroup getGroup()
		{
			return _group;
		}
	}

	public void executeIOPacket(ReceivablePacket<L2GameClient> r)
    {
		executePacket(r);
	}

	public boolean isShutdown()
    {
		return _inshutdown;
	}

}
Edited by ProTeaM
Guest
This topic is now closed to further replies.



  • Posts

    • Hi everyone,   I'm looking for someone to create a website for me with a pale, whitish design, inspired by Talking Island. I also need an auto-updater and a Discord logo included.   I already have the domain and hosting set up on OVH, with PHP ready to go. However, I'm new to website development, so you may need to guide me through the installation process.   Please do not contact me if you're charging unreasonable prices like $800 for "VIP" packages — I'm looking for fair and realistic offers. Payment will be made once the job is completed.   If you have previous work to show, that's definitely a plus. The website, auto-updater, and Discord elements should all be in English.   Thanks!
    • Make your own topic. Don’t be so rude and post in mine just to sell your stuff 😉   @Celestine
    • Server Client: Server is running on custom Classic Interlude Client. Enjoy the innovations that classic offers to players while maintaining the stability of Interlude features that we all loved.   Birth of a new character A new character spawns in the basement of Ivory Tower. There, you can buff yourself  via AIO buffer and then teleport to a low level zone for xp. A new character starts  with full no grade gear and a newbie supply box. AIO npc Buffer There are AIO npc Buffers spawned in every town. The buffs’ duration is 1hour and  are free of charge. The only buffs that are not included in the list are summoner’s  buffs, third class dances, third class songs, and resists.    Class transfer When you hit level  20, 40 and 76, you can seek for the Class Changer Carola in Aden  or Castle Town  in order to perform your 1st , 2nd  and 3rd class change or simply use the .menu feature located in your character skills list. There are no further quests required. Boosted Buffers and Summoners In order to boost Prophets, Bladedancers and Swordsingers for PvP action and  Olympiad games, they have been given special self-buffs. All of these classes are  gifted with higher level buffs which they can be casted on themselves only. Also,  summoner classes are boosted since they can buff their pets with more than usual  servitor’s buffs  There are 4 main custom shops in the server where you can buy the following items: 1) Harvana (Misc Shop): Consumables 2) Albert (Weapon Shop): D, C, B and A grade weapons 3) Meredion (Armor Shop): D, C and B grade armor and jewels 4) Wilbrand (Mantra Manager): A/S armor, S grade weapons and more  Event Shop Event Shop Dianne can either be found in Aden Castle Town or Giran. You  can buy several useful items in exchange for Vote Coins or Event Medals.  Via  Event Shop Dianne you can have access to the following items: 1) Blessed Enchants 2) Books of Giants 3) Common and Custom Accessories 4)Raidbombs  and many more  Weapons’ Special Abilities The Special Abilities (SA) for every C, B and A grade weapons can be bestowed by  Mantra Manager Wilbrand in exchange for some animal bones, water mantras or wind  mantras respectively.    Rebirth System When you reach level 76, you can perform your first rebirth via Rebirth Manager.  Once you perform a rebirth, your character will be deleveled to level 40 and you will  obtain a book of rebirth. You can exchange the book of rebirth for a unique accesories  via Rebirth Manager. A character can have 3 rebirths maximum. Remember once  you have chosen your  rebirth skills, you can anytime change your mind and choose  your rebirths once again.  Noblesse system Once you have performed 3 rebirths, you need to collect a set of four crowns from the  following Raid Bosses: 1) Death Lord Hallate (Black Crown) 2) Kernon (Gold Crown) 3) Longhorn Golkonda (Red Crown) 4) Shilen’s Messenger Cabrio (Silver Crown)  Once you’ve collected all the crowns and your character is at level 76, you can talk to  the Noblesse Manager Eddy Wally, located in Aden Castle Town and become a Noblesse. Crown Raids Bosses’ respawn time is every 12 (±2) hours and have 1 spot Spawn spot: Giants Cave Unique L2Halcyon weapons and shields L2Halcyon weapons are S grade weapons with a unique SA. There are also three unique  L2Halcyon shields. Both of them can be dropped only by Raid Bosses. Remember you  can check the possible drops of any Raid Boss by pressing Shift+left click. Find  bellow more details regarding L2Halcyon items. Duals Crokian blade*Crokian blade: Increases Critical Attack by 95 and Accuracy by 6 Doll knife*Doll knife <-Daggers: Increases Atk. speed by 7% and Accuracy by 6 Swords Crokian Blade: Increases Atk. speed by 7% and Accuracy by 6 Sword of Apostle: Increases Accuracy by 6 and maximum HP by 25% Mage weapons Lady’s Fan: Increases Casting Spd. by 17.5% Dusk Staff: Increases Casting Spd. by 17.5% Dusk Sword: Increases M. Atk. by 15% Polearms Dreadbane: 360° hit rate, increases hit number from 4 to 8 and Accuracy by 6 Axe of Ketra: Increases Accuracy by 6 and P. Atk. by 265 during a critical attack Daggers Doll Knife: Increases Critical Attack by 95 and P. Atk. by 265 during a critical attack Giant Trident: Increases Evasion by 3 and P. Atk. by 265 during a critical attack 2-Handed Sword Sword of Vampire: Increases Critical Attack by 95 and maximum HP by 25% Blunt Cudgel: Increases Critical Attack by 95 and Atk. speed by 7% Bow Bow of Halisha: Increases Critical Attack by 95 and Accuracy by 6 Shields Shield of Reflect: Reflect magic debuffs and shield damage reflect Shield of Evasion: No evasion penalty and Speed +7 Dusk Shield: Bow resistance  Ancient L2Halcyon weapons Ancient L2Halcyon weapons can be obtained through refining the normal ones.  Unique L2Halcyon Jewels L2Halcyon Jewels are S grade Jewels which provide unique bonuses. They can be  dropped by specific Raid Bosses. Remember you can check the possible drops of any  Raid Boss by pressing Shift+left click. Find bellow the bonuses of L2Halcyon Jewels: -Earring of Garacsia: MP +31, +10% bow resistance and +7 speed -Earring of Ipos: MP +31, +10% dagger resistance and +7 speed -Earring of Kandra: MP +31, +20% wind resistance and +7 speed -Earring of Von Helman: MP +31, +20% dark resistance and +7 speed -Earring of Vermilion: MP +31, +20% fire resistance and +7 speed -Earring of Falston: MP +31, +20% water resistance and +7 speed -Ring of Horuth: MP +21 and +10% P.Def. -Ring of Mos: MP +21 and +10% M.Def. -Ring of Shadith: MP +21 and 500% HP regen -Ring of Tayr: MP +21 and +100 Bow Range -Necklace of Hekaton: MP +42 and +15% max CP -Necklace of Brakki: MP +42 and +60% resistance to most of the debuffs -Necklace of Naga: MP +42 and +15% max HP   Refining S grade armors/jewels Any S grade armor can be refined via Mantra Manager Wilbrand. S grade armors and  Tateossian jewels start at 55% and they can both be upgraded all the way up to 100%  in order to gain extra P.def or M.def. Once your armor reach 100%, you can transform  it into Apella and gain extra stats (Jewels cannot be further refined). In addition,  Apella armors start at 55% and can be upgraded up to 100% too. Then, you can  transform your Apella into Dynasty Armor or Ancient Apella depends on your preference (which can also be refined up to 100%).  Refining Epic Jewels (Core and Orfen) There is an option to refine Ring of Core and Earring of Orfen via Mantra Manager Wilbert. If you have two  Rings of Core, you can combine them and receive an  Enchanted Ring of Core. Then, you can combine two  Enchanted Rings of Core in order to create a Refined  Ring of Core (4 Rings of Core in total). The same  procedure can be applied to Earring of Orfen, in order  to create Enchanted Earring of Orfen or Refined  Earring of Orfen. In this case, the enchantment of the ring/earring will be reset, so do not enchant those epic jewels before refining.    Events: Korean TvT Squash Event Watermelon Event Raidboss Event Highrate    Features List is not the final and changes/additions can be made! Join us and say your ideas! WEBSITE: L2Halcyon Join our discord server for more information about the server development and also join access early to test features, and get a glimpse on what we are working on. Discord Server 
  • 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