Jump to content
  • 0

[Help] Pvp points from Mobs


Question

Posted

Hello i have pvp points on my server. From each killed pleyera gets his 10% pvpPoints and that points has stored in db new column in characters

Wanna know how to add these points to the mobs and get them together with exp and sp.

but if exp is set to 7000 is a mob would give me 7 pvppoints.

hope u understand me cuz my english is more funny than the understandable.

Recommended Posts

  • 0
Posted

Have a little free time in work and for now have this

 

package com.l2jserver.gameserver.model.actor.instance;

import com.l2jserver.gameserver.instancemanager.RaidBossPointsManager;
import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.model.entity.Hero;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;
import com.l2jserver.util.Rnd;

/**
* This class manages special pvpkill rewards mobs.
*/
public class L2PvpMobInstance extends L2MonsterInstance
{
public L2PvpMobInstance(int objectId, L2NpcTemplate template)
{
	super(objectId, template);
	setInstanceType(InstanceType.L2PvpMobInstance);
}

/**
* Manages the doDie event<BR><BR>
*
* @param killer The L2Character that killed this instance.<BR><BR>
*/
@Override
public boolean doDie(L2Character killer)
{
	if (!super.doDie(killer))
		return false;
	L2PcInstance player = null;  				    // check if the killer is different of null (to avoid NPE error)			

		if  (killer instanceof L2PcInstance)   		// check if the killer was a player or a summon
			player = (L2PcInstance) killer;
		else if (killer instanceof L2Summon)
			player = ((L2Summon) killer).getOwner();// if killer is a summon, redirect to a L2PcInstance type
		{											// do a custom calcul using mob level
													// add the custom calcul result to the L2PcInstance total pvp points
			if(player != null)						// if killer is a player
			{										
				if (player.getParty() != null)
				{
					for (L2PcInstance member : player.getParty().getPartyMembers())
					{ 								 //here calculate for party (Right)?
				}
			}
		}

		if											// do a custom calcul using mob level
		{											// add the custom calcul result to the L2PcInstance total pvp points

		}
	}









	return true;
}
}

 

need to add calculate, can use your calculate but when i back from work ;]

  • 0
Posted

Well, it's the begin... I won't cry for now :P.

 

All my comments are right, so if there is an "if", be sure to make a "if" check :P. I refer to :

 

L2PcInstance player = null;

 

Which isn't a check at all :P. The concerned check is a check on killer. But you're right, you have to initialize a L2PcInstance type (could be the same name, killer, but player is fine as well).

 

You're right about the summon check, good hit :).

 

My imbricated "if" example was AN EXEMPLE, don't use it. Just inspire from it. The good path to follow is the commentaries one, coded just top of the if example.

 

When you do a commentary do like that :

 

//A commentary
if blablabla
{
   //result
   result
}

 

Using tabulations. Because the code you show is perfectly messed in presentation and pretty hard to read. I made efforts in my last post, do the same :P.

 

What about the GetParty ? You hope to share pvp points between party members ? The idea could be good if it was xp, but pvppoints... Lol :). Except you got another idea, you haven't to use it.

 

I let you time to upload a decent code ^^.

 

And take care about {   }, you miss some.

  • 0
Posted

Ok party deleted. That is black magic for me but all time learning abut java.

 

	/**
* Manages the doDie event<BR><BR>
*
* @param killer The L2Character that killed this instance.<BR><BR>
*/
@Override
public boolean doDie(L2Character killer)
{
	if (!super.doDie(killer))
		return false;
	L2PcInstance player = null;  				    // check if the killer is different of null (to avoid NPE error)			

		if  (killer instanceof L2PcInstance)   		// check if the killer was a player or a summon
			player = (L2PcInstance) killer;
		else if (killer instanceof L2Summon)
			player = ((L2Summon) killer).getOwner();// if killer is a summon, redirect to a L2PcInstance type
			{											// do a custom calcul using mob level
													// add the custom calcul result to the L2PcInstance total pvp points
			}						// if killer is a player
				if	(player != null)									// do a custom calcul using mob level
					{											// add the custom calcul result to the L2PcInstance total pvp points
						addPvpPoints (player, getNpcId(), (getLevel()-79*2));
					}
				{
		return true;
	}
}

/**
 * @param player
 * @param npcId
 * @param i
 */
private void addPvpPoints(L2PcInstance player, int npcId, int i)
{
	// TODO Auto-generated method stub

}
}

 

 

  • 0
Posted

You don't specialy need to create a void method addPvpPoints neither :P.

 

Try to complete/correct all checks first. It's like my last post was nothing :'(.

 

Try to post when you think you completed all, we will correct together. Because if I correct each time you post, this topic will be 1000 pages long :D.

 

Before L2PcInstance player = null;, you have to put the // check if the killer is different of null (to avoid NPE error) + the check ofc... I prefer say that if you think adding only the comment..

 

About the mob lvl calcul you don't need nothing special more than doing :

 

numberToAdd = (getLevel()-79)*2;
And add numberToAdd to pvp total of "player", like you did in your player vs player code.

 

I don't get why you do 500 methods :P. Circling the calcul, you only have some checks to made, and I put them all in //comments.

  • 0
Posted

tell me if that is right

 

 L2PcInstance player = (L2PcInstance) killer;
          if (killer != null)			    // check if the killer is different of null (to avoid NPE error)

  • 0
Posted

I read your PM, all i can say is try it more :P. If you want to pay for something as simple as that, you should forget to develop at all. Plus, that won't correct your errors in your future programs.

 

Why to give a man a fish when you can give him a polefish, well you got it.

 

I agree there is some difficulties, but all my answers were helpfull and made 50% of the work (logical parts are made, you just have the copy/paste work).

 

You are better than many of self-calling L2J developers aswell. Just try harder, and give me a decent code (even bugged, i don't care) but with all supposed checks made. Don't give me piece per piece, as I said it could make the thread 5000 posts.

 

----

 

And this null check about killer means : if L2Character killer is different of nothing. Your exemple is wrong in the way than the null check is useless, and you can have NPE error (when this check exists to avoid it).

 

An NPE error occurs when the asking object (in this exemple, L2Character killer) is empty. It can happens very rarely (exemple, you disconnect, so instance doesn't exist anymore), but it can happens, and the result is a NullPointerException (aka a NPE). To avoid that, we check before all things if killer is null.

 

If killer isn't empty, we continue the program, else we skip.

 

Try to include too my last code as calculation method.

 

You can compare with the existing files too. You have 12xx files to help you. Try to find another null check for killer (search tool for eclipse = ctrl+F), and see what happens in others files and adapt it for your case.

  • 0
Posted

Now this I am afraid to write anything. ;] Examined the other files and came to me something like that:

 

package com.l2jserver.gameserver.model.actor.instance;

import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;

/**
* This class manages special pvpkill rewards mobs.
*/
public class L2PvpMobInstance extends L2MonsterInstance
{
public L2PvpMobInstance(int objectId, L2NpcTemplate template)
{
	super(objectId, template);
	setInstanceType(InstanceType.L2PvpMobInstance);
}

/**
* Manages the doDie event<BR><BR>
*
* @param killer The L2Character that killed this instance.<BR><BR>
*/
@Override
public boolean doDie(L2Character killer)
{
	if (!super.doDie(killer))
		return false;
	L2PcInstance player = null;

	if (killer instanceof L2PcInstance)
		player = (L2PcInstance) killer;
	else if (killer instanceof L2Summon)
		player = ((L2Summon) killer).getOwner();

	if (killer != null)
	{				
		numberToAdd = (getLevel()-79)*2;
			setPvpPoints(killer.getPvpPoints() + numberToAdd);	
	}						
	return true;
}
}

 

 

Very long I sat there and read other server files. Please answer, write that everything is bad, or just have errors. currently does not work after compiling.

 

(and pls write where im wrong)

 

 

 

  • 0
Posted

My first squeleton was "wrong" (well too much codes). The light version is shown in this one, don't refer to the first squeleton.

 

Use comments from my code squeleton.

 

I said to you the killer check is the first. You use

 

		if (killer instanceof L2PcInstance)
		player = (L2PcInstance) killer;
	else if (killer instanceof L2Summon)
		player = ((L2Summon) killer).getOwner();

 

Which itself is a good code, but what about if killer == null in this case ? You got a NPE error.

 

You have to circling each lower comment by upper levels. I give you the first 2 checks from my squeleton, and organize your check as the 3rd check :

 

	/**
* Manages the doDie event<BR><BR>
*
* @param killer The L2Character that killed this instance.<BR><BR>
*/
@Override
public boolean doDie(L2Character killer)
{
	if (!super.doDie(killer))
		return false;

	L2PcInstance player = null;

	// check if the killer is different of null (to avoid NPE error)
	if (killer != null)
	{
		// check if the killer was a player or a summon, because L2Character can be many things.
		if (killer instanceof L2PcInstance || killer instanceof L2SummonInstance)
		{
			if (killer instanceof L2PcInstance)
				player = (L2PcInstance) killer;
			// if killer is a summon, redirect to his owner
			else if (killer instanceof L2Summon)
				player = ((L2Summon) killer).getOwner();

			// do a custom calcul using mob level

			// add the custom calcul result to the player total pvp points

		}						
	return true;
}

 

I explain something more, try to understand :

 

The goal is to aim with efficiency what instance is the "killer". L2Character is too much as it can be around 6 differents type of things, including L2PcInstance (players) and L2SummonInstance (their summons).

 

When you do this sort of check :

 

			if (killer instanceof L2PcInstance)
			player = (L2PcInstance) killer;

 

You are saying :

if the L2Character instance named "killer" is a L2PcInstance,

"killer" is a player instance, and stored in "player" variable.

 

About "player" variable you initialized it yourself, perhaps without understanding what is it :

 

L2PcInstance player = null;

 

With that code you initialize a variable named "player", with is a part of L2PcInstance, and which is null.

 

Why to create a null variable, when we try by all costs to remove all null checks ? Well if you take care of the code, you can understand we initialize a null variable but we fill it with data when we do that :

 

			if (killer instanceof L2PcInstance)
			player = (L2PcInstance) killer;

 

So if "killer" isn't null from the first check, that can only means "player" couldn't be too. As you use "killer" to fill "player". Got it ? It's logical.

 

I hope you get it from now, after all those instances morph, than you MUSTN'T use "killer", but "player" to make all your checks !

 

About my actual shared code, try to compile it, and give me eventual errors. About missing method etc, import good files and that's all. At worst there should have one, at best 0.

 

-----

 

About checks

 

The first check is a basic check, than many others methods got and must have. It's a security check to avoid NPEs. I hope you get it, at worst you can search NullPointerException over the internet, you will have results.

 

The second check is to "separate" our conditions. We need L2PcInstance and L2Summon, not others L2Character types. Imagine an aggressive door (o_____o). It's a L2Character. Imagine the door kills the mob (!!!!!!!!!!!!!). If this check isn't made, and as a L2Door is a part of L2Character, all things are calculated ! But, as a door desn't have pvp points it will throw an error for sure, and bug your gameserver. This is the reason of this check : avoid all L2Characters to be able to use this part of code, and restrains only for players and summons.

 

The third statement is a "organized" one. Both results, in any case, is the fill of "player" variable with something. But as a L2Summon is different from an L2PcInstance, and as you coded it (well, c/ped it :P), the calcul of player is different. The finality is the same, the ID number of this particular L2PcInstance.

 

----

 

About summons

 

Imagine a summoner kill with weapon someone. His ID is 666 (IDs aren't like that, just example). You ask the calcul of mob lvl, and then ask to the server to get pvpkills from L2PcInstance 666 and add the first calcul result to it.

 

Now a summoner got a summon, the summon kills someone. Both instances got their own IDs. But L2Summon is a L2Summon, we can't make comparison between 2 differents instances. We have to ask to the server who is the linked master. As this code already exists, we just use it. If ID of summon is 444 and L2PcInstance link master is 666, it sends back 666, which is a L2PcInstance variable and can be used in our calculs.

 

I hope you get i all, some things are more harder to understand than others, but now you're in the final part : mob level calcul, and add the result to the player pvpkills.

  • 0
Posted

 

 

@Override

public boolean doDie(L2Character killer) //here is a error <- eclipse quick fix say "this method must return as result of type boolean"

{

 

And calcul will be looks like:

 

numberToAdd = (getLevel()-79)*2;
setPvpPoints(killer.getPvpPoints() + numberToAdd);	

But in "numberToAdd" have always error and eclipse quick fix not help much. and i add msg.

 

killer.sendMessage("You have earned " + numberToAdd + " PvP Points");

 

msg working good but saying u have earned 0 pvp points ;/

  • 0
Posted

numberToAdd have to been initalized, in the same place where "player" is initialized.

 

http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

 

Here is a help about data types possibilities. In this case, this is an int. Check how variables are initialized in any files of L2J, they're basically at the top of the class.

 

Exemple in L2SiegeClan (this one because i'm working about).

// ===============================================================
// Data Field
private int _clanId        = 0;
private List<L2Npc> _flag  = new FastList<L2Npc>();
private int _numFlagsAdded = 0;

 

About boolean error, you surely missed the return true from my code. Normally my code can't have this error, so you missed something.

 

Last thing, why the fock are you using killer ? I said 2 times already (this is the third time) you mustn't use it to make your checks (only basic ones). What's wrong in my posts you don't understand ? Use the damn "player".

 

Very last thing, when you try to use

setPvpPoints(killer.getPvpPoints() + numberToAdd);

well first about "killer" use I hope for god's sake you finally understood what I said (else I'm gonna cry), second when you put this one, you will get error. Why ? Because your code will search the setPvpPoints method inside this instance (L2PvpMobInstance), when it's supposed to be stored in L2PcInstance (as your code have been copied/pasted from it). I let you search about, but it's really simple. Don't search very far. All you have to remember is this method is based on L2PcInstance, and we have defined one in our code (not killer, the other one you never use...).

 

 

And read my posts more than once time, because I feel like I post for nothing.

  • 0
Posted

I read a lot of times, but the little I understand, perhaps because of poorly know English and the translator translates strangely.

 

Nothing else I am doing just as I get back from work the whole time sitting in the eclipse and still make a difference in L2Character, L2PcInstance, L2PvpMobInstance

 

compiling, checking, changing, constantly trying to add something else to change.

  • 0
Posted

Wow im done it works corectly.  I think it works well but did little testing, the following points for every kill

 

Thank you very very very very very very very much. ;]

 

 

 

 

package com.l2jserver.gameserver.model.actor.instance;

import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;

/**
* This class manages special pvpkill rewards mobs.
*/
public class L2PvpMobInstance extends L2MonsterInstance
{
public L2PvpMobInstance(int objectId, L2NpcTemplate template)
{
	super(objectId, template);
	setInstanceType(InstanceType.L2PvpMobInstance);
}

/**
* Manages the doDie event<BR><BR>
*
* @param killer The L2Character that killed this instance.<BR><BR>
*/
@Override
public boolean doDie(L2Character killer)
{
	if (!super.doDie(killer))
		return false;

	L2PcInstance player = null;

	// check if the killer is different of null (to avoid NPE error)
	if (killer != null)
	{
		// check if the killer was a player or a summon, because L2Character can be many things.
		if (killer instanceof L2PcInstance || killer instanceof L2SummonInstance)
		{
			if (killer instanceof L2PcInstance)
				player = (L2PcInstance) killer;
			// if killer is a summon, redirect to his owner
			else if (killer instanceof L2Summon)
				player = ((L2Summon) killer).getOwner();

			{
				int numberToAdd = (getLevel()-79)*2;
				player.setPvpPoints(player.getPvpPoints() + numberToAdd);
				player.sendMessage("You have earned " + numberToAdd + " PvP Points");
			}
		}	

	}
	return true;
}
}

  • 0
Posted

Well done :) You saw, it was easy.

 

Remove both { }, it's used only if there was an if before.

 

You should declare numberToAdd in the top of the file too, but there is no real problem. It's just a convention.

 

int numberToAdd = 0;

 

Complete code :

 

package com.l2jserver.gameserver.model.actor.instance;

import com.l2jserver.gameserver.model.actor.L2Character;
import com.l2jserver.gameserver.model.actor.L2Summon;
import com.l2jserver.gameserver.templates.chars.L2NpcTemplate;

/**
* This class manages special pvpkill rewards mobs.
*/
public class L2PvpMobInstance extends L2MonsterInstance
{
public L2PvpMobInstance(int objectId, L2NpcTemplate template)
{
	super(objectId, template);
	setInstanceType(InstanceType.L2PvpMobInstance);
}

/**
* Manages the doDie event<BR><BR>
*
* @param killer The L2Character that killed this instance.<BR><BR>
*/
@Override
public boolean doDie(L2Character killer)
{
	if (!super.doDie(killer))
		return false;

	L2PcInstance player = null;
	int numberToAdd = 0;

	// check if the killer is different of null (to avoid NPE error)
	if (killer != null)
	{
		// check if the killer was a player or a summon, because L2Character can be many things.
		if (killer instanceof L2PcInstance || killer instanceof L2SummonInstance)
		{
			if (killer instanceof L2PcInstance)
				player = (L2PcInstance) killer;
			// if killer is a summon, redirect to his owner
			else if (killer instanceof L2Summon)
				player = ((L2Summon) killer).getOwner();

			// do a custom calcul using mob level
			numberToAdd = (getLevel()-79)*2;

			// add the custom calcul result to the player total pvp points and send a message
			player.setPvpPoints(player.getPvpPoints() + numberToAdd);
			player.sendMessage("You have earned " + numberToAdd + " PvP Points");
		}	
	}
	return true;
}
}

 

--------

 

About if, while, for, etc :

 

When you have only one thing, you can forget using {} :

			if (killer instanceof L2PcInstance)
				player = (L2PcInstance) killer;
			else if (killer instanceof L2Summon)
				player = ((L2Summon) killer).getOwner();

 

The next code is the same, but for me it's harder to read and very long :

 

			if (killer instanceof L2PcInstance)
			{
				player = (L2PcInstance) killer;
			}
			else if (killer instanceof L2Summon)
			{
				player = ((L2Summon) killer).getOwner();
			}

 

The use of {} is needed when your if got many results. You can't remove them else it will bug.

 

----

 

After all that, you can propose to make a diff patch about your work, in the developement section. Use [sHARE] as tag :).

  • 0
Posted

However I would like to add a party for supporters and healers, and when the party is exp points let them works on every party member.

 

And i [share] this like a diff and add 3 NPC 1; echange points for items (aromor, weapon)

2; exhcange items for points ex.(drop from RB 1 items give 500 pvp points)

3; wnat addd teleporter who tale u tp place when u have a number of points but they do not take <-- this need to thik about it.

  • 0
Posted

Well, this is work for sure :D.

 

First you should make a diff patch right now before doing all those things. You will have a secured copy of your work, if you fail in the future (like, a BIG fail) you would be happy to find a fresh clean custom code to apply it easily on a fresh L2J copy. You would be happy to know than my first project have failed because I hadn't any copy (around 1 month of work).

 

About NPC exchanger, I made one for my personal project, and which trade custom karma value for AA. So it's doable and I could help you when you have code. Ofc it's a new instance, you can name it L2PvPExchanger.

 

About party support, you will have to rewrite both your L2PcInstance and L2PvpMobInstance custom codes. The goal is to first pick up the L2PcInstance, second  is to pick the party of this L2PcInstance (or the party of the summoner's owner), and third to share experience / pvp points between them. About sharing pvp points, you have to use for. I'm too interested by this point, because I got others things to think about my project actually and I never checked it in depth.

 

Teleporter is the easiest thing. Instead of adena check, you put a getPvpKills check. Still, you have to create a new instance as L2PvpMob one. Would be L2PvPTeleporter, based on a clean copy of L2Teleporter.

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

    • Opening April 25 at 19:00 (UTC +3) Open Beta Test from April 21 This is pre-announcing of NEW season server, so we want to share some key points of it. Full details with road map, patch notes we will announce a bit latter If this is your first time on Dex and you haven’t played on our seasonal servers before, the information below will help you understand what our project is about and its key features. Dex veterans can skip the following section and go straight to the “What’s New in the New Season” part. Why Choose Dex? Best Balance on Interlude+ - we offer the most polished balance among all modified Interlude servers(It may not be perfect yet, but we are committed to continuous improvements and refinements. ). Our build is 100% unique, developed on retail PTS files, and refined over 6+ years. This is not a copy–paste pack – it’s our own work, shaped by players feedback and suggestions for more than 6 years. Proven Stability & Long-Term Life - Our Union x25 server has been running since April 2020 – 6 years of stability and still active with strong online! This makes Dex the only server with real players (not phantoms) with such a setup and longevity. Always Fresh, Always Engaging - Every Seasonal server comes with a clear roadmap of changes and updates. At the end of the season, the server merges with Union, so your effort is never wasted. New players can start fresh together with everyone else on the new season. Before the merge, we run exclusive boosted events for about a month, giving seasonal players a massive head start. (Union players don’t get these events) Endless Endgame Content - High-end activities, unique PvP events, and continuous new features will keep you engaged long-term. We’re always working to improve and deliver fresh, fun content for our community. All your progress, items, and characters are safe - when the season ends, you continue on Union. Main features Modern Classic client (less lags, smoother gameplay, a lot of useful interface features). Anti-bot protection - we use our own system in combine with popular solutions like AAC, so in the end our project have one of the best anti-bot shield exists. Buff book to buff yourself or your summon/pet. With regular buff book you can create only 1 buff profile, if you need more - get the modern buff book and create up to 10 profiles! 36 buff slots - 24 regular buffs, and addictiona 12 slots for Dance/Song Daily rewards - login to the game every day and get rewards. Expanded subclass slots - you can have 5 subclasses from the beginning and expand up to 10. Class/Gender change - you can change your main class and gender if you want. Masterwork items (can be obtained by crafting or farming RBs, have better bonuses than regular items). Item Broker Auctions in towns can sell some epic jewelry and other useful goods for adena (3 times per week). Giran Harbor Fair - daily event which allows you to get rare items for adena. Talents - special tree with passive skills which will help you to tune your class better. Events like TvT and new event WarHunt Epic Replica system. Episodes - we open new content step by step to keep you engaged, bring more fun and extend the game. Episodes reveal following features: Progressive grade unlocks: B-grade is max available at launch → then A-grade opens → later S-grade. Reworked locations: Mithril Mines and Plunderouse Plains Hellbound Island Isle of Preyer, with new content, new Dynasty gear PvP item improvement allows you to improve your items with additional bonuses. Charms can be equipped in one of the special slots that open when wearing a bracelet. Each type of charm grants the wearer certain bonuses New Epic Bosses - Freya, Beleth, Tiat, Trasken Cyclic macros (macros restarts when finishes) What’s New in the Upcoming Season? Below is a brief overview of the main changes coming in the new season, along with short explanations. More detailed information about each feature will be published later, most likely in our wiki. Divisions We plan to test a Division system on Dex, initially only for low-tier epic bosses (AQ, Core, Orfen, Zaken). At the same time as the main Epic Boss respawn, an additional instance version of the boss will appear. Clans from the big war will not be able to enter this instance. The drop table is identical to the main boss, but the Epic Jewelry have not a 100% drop chance. Mithril Mines /data/attachments/4/4662-e7b9c5989ccf81d0b2d48e88b7aa9bc7.jpg A reworked location that will open on the first Monday after S-grade becomes available. In this zone you will be able to: Obtain alternative recipes for S-grade equipment Get your first Charms and upgrade them up to Level 3 Obtain bracelets with 2 Charm slots Farm Void Neolithics (used for upgrade any item to Masterwork, but lose enchant level) 2 New Raid Bosses with valuable drop Fight the Raid Boss Trasken Plunderous Plains /data/attachments/4/4661-2ecd2d0a4702d31c1ba26d4b7e369285.jpg Another reworked location, which will open one week after Mithril Mines. This zone provides: GCM drops LS drop More different Charms 2 New Raid Bosses with valuable drop 3-slot Charm bracelet The ability to make PvP versions of equipment Isle of Prayer A location where players will be able to obtain a new type of equipment - Dynasty. This area will also provide: More different Charms 4-slot Charm bracelet Upgrade charms to level 4 Hellbound Hellbound is now an endgame location. Almost everything can be farmed there, and the drop quality is very high. However, the location will only be available during weeks without Olympiad battles. This means it will be open for one week and closed for the next. This area will also provide: 5-6 slot Charm bracelet bracelet engravement ancient scrolls Best drop GCM Best drop LS More different charms Upgrade charms to level 5 Talents An additional talent tree has been added: the PvE branch. The PvE talent tree has its own limits and does not overlap with the standard tree. Olympiad The Olympiad will now run 5 days per week, from Wednesday to Sunday. Each day you will have a limit on the number of battles you can participate in. War Hunt Event A new event. Players who previously played on Skadi may already be familiar with it. The idea is simple: You enter a PvP zone Killing monsters grants points These points can be exchanged for rewards Killing other players allows you to steal their points PvE / PvP Layers The locations Mithril Mines, Plunderous Plains, IOP and Hellbound will have two separate layers. The drop on both versions are identical. Open World Version: Full PvP zone Instance Version: No PvP zone, works like the regular world with standard war/flag/PK rules Players who enjoy PvP can defend their farming spots and gain extra advantage, while players who prefer a safer farming experience can use the instance version, though with more competition and higher population. As you can see, this season brings quite a lot of changes However, these are mostly content-related additions - the core spirit and classic gameplay of the season remain unchanged. Please note that this is a pre-announcement, and some details may still change before the Beta Test begins. A full roadmap and patch notes will be published later. https://forum.lineage2dex.com/threads/16738/#lg=post-72311&slide=0  
    • Automatic Streamer Rewards System (Twitch / Kick / TikTok) Hey everyone, I’ve developed a Streamer Rewards system for Lineage 2 servers that automatically rewards players who stream the server. The system works fully automatic: Detects if the streamer is currently live Checks if the stream title contains the server name If everything matches, the system sends a custom reward coin to the streamer’s character Rewards are given every 30 minutes while streaming Supported platforms Twitch Kick TikTok Live Configurable options Reward Item ID Reward interval time Server name keyword detection Character name linked to the streamer This makes it easy to encourage players to promote the server without manual work from admins. Example flow: Player goes live on Twitch/Kick/TikTok Stream title includes the server name System detects the stream automatically Every 30 minutes the player receives a reward coin in-game Setup I can also help set up and integrate the system with your server. Works with custom coin rewards Can be configured for different intervals Additional help with installation and configuration available If you're interested or want more details, feel free to send me a PM. I also have a ticket ping system, if new ticket created on the website you can make it send you a ping on discord server for selected roles (support and stuff) but this one is basic and most likely not needed, my discord: zujarka
    • General Trackers :   IPTorrents invite IPTorrents account 1 tb TorrentLeech invite Torrentleech account 1 tb buffer  InTheShaDow ( ITS ) account Acid-lounge invite Torrentday invite Crnaberza account Abn.Lol account Limit-of-eden account Norbits account Xspeeds account Xspeeds invite Bemaniso invite Wigornot account Bithumen invite Filelist account Funfile invite AvistaZ invite Potuk.net invite ResurrectThe.Net invite GrabThe.Info invite Greek-Team invite LinkoManija invite Fano.in account tracker.czech-server.com Speed.cd invite Arab-torrents.net account Arabscene.me account Scenetime account 4thd.xyz invite Btarg.com.ar account Dedbit invite Estone.cc account Speedapp invite Finvip invite Fluxzone account GigaTorrents account Gimmepeers account Haidan.video invite Mojblink account Mycarpathians invite Newinsane.info account Oscarworld.xyz account Peers.FM invite Pt.msg.vg account Ransackedcrew account Redemption invite Scene-rush account Seedfile.io invite Teracod invite Torrent.ai account Torrentmasters invite Ttsweb invite X-files invite X-ite invite Ncore account TorrentHR account Rptorrents account BwTorrents account Superbits invite Krazyzone account Immortalseed account Tntracker invite Pt.eastgame.org account Bitturk account Rstorrent account Tracker.btnext invite Torrent-turk.de account BeiTai.PT account Pt.keepfrds account 52pt.site account Pthome account Torrentseeds account Aystorrent account Blues-brothers.biz invite Divteam account Thesceneplace invite CinemaMovies.pl account Brasiltracker account Patiodebutacas account Newheaven.nl account  Swarmazon.club invite Bc-reloaded account Crazyspirits account Silentground invite Omg.wtftrackr invite Milkie.cc invite Breathetheword invite Madsrevolution account Chilebt account Yubraca account Uniongang.tv account Frboard account Exvagos account Diablotorrent account Microbit account Carp-hunter.hu account Majomparade.eu account Theshinning.me account Youiv.info account Dragonworld-reloaded account Sharewood.tv account Partis.si account Digitalcore.club invite Fuzer.me account R3vuk.wtf invite Ztracker account 1 tb buffer 3changtrai account Best-core.info account Bitsite.us account Eliteunitedcrew invite Exitorrent.org account Tophos invite Torrent.lt account Sktorrent.eu account Oshen account Pirata.digital account Esharenet account Ohmenarikgi.la Pirate-share account Immortuos account Kiesbits account Cliente.amigos-share.club account Broadcity invite Ilovetorzz account Torrentbytes account Polishsource account Portugas account Shareisland account ArabaFenice account Hudbt.hust.edu.cn account Audiences account Nanyangpt account Pt.sjtu.edu.cn account Pt.zhixing.bjtu.edu.cn account Byr.pt invite Ptfiles invite Red-bits account Pt.hdpost.top account Irrenhaus.dyndns.dk (NewPropaganda) account Mnvv2.info (MaxNewVision V2) account 1ptba.com account Spidertk.top account Film-paleis account Generation-free account Aftershock-tracker account Twilightsdreams account Back-ups.me invite Sor-next.tk ( Spirit Of Revolution ) account Tfa.tf ( The Falling Angels ) account Hdmayi account S-f-p.dyndns.dk ( Share Friends Projekt ) account Unlimitz.biz account Pttime account St-tracker.eu account New-retro.eu account Zbbit account Tigers-dl.net account Jptvts.us account Lat-team account Club.hares.top account Falkonvision-team account Concen account Drugari account T.ceskeforum account Peeratiko.org account Zamunda.se account Central-torrent.eu account h-o-d.org account Torrentleech.pl account Demonoid invite Lst.gg account Fakedoor.store account LaidBackManor account Vrbsharezone.co.uk invite Torrenteros account Arenaelite account Datascene account Tracker.0day.community Tapochek.net invite Ptchina invite Lesaloon account Exyusubs account Therebels.tv account Ubits.club invite Zmpt.cc account Turktorrent.us account Dasunerwarte account Hawke.uno account Monikadesign account Fearnopeer account Alpharatio account Wukongwendao.top account Chinapyg account Azusa.wiki account Yggtorrent.top account Torrentdd account Cyanbug.net invite Hhanclub.top account Wintersakura.net account Xthor account Tctg.pm account Finelite invite Agsvpt.com account Pt.0ff.cc invite Qingwapt.com account Xingtan.one account Ptcafe.club invite W-o-t.pro account Coastal-crew.bounceme.net account Darkpeers.org account Pianyuan.org account Seedpool.org  account Tempelbox account Pt.itzmx.com account Itatorrents.xyz  account Letseed.org account The-new-fun.com  account Malayabits.cc account Trellas.me account Yu-scene.net account Futuretorrent.org account Bitpt.cn account Tocashare.biz  account Videoteka.org  account White-angel.hu account Xbytesv2.li account Torr9  account Desitorrents account Okpt.net account Samaritano.cc account Polishtorrent.top  account C411.org account Bigcore.eu account BJ-Share.info account Infinitylibrary.net account Beload.org account Emuwarez.com account Yhpp.cc account Funsharing ( FSC ) account Rastastugan account Tlzdigital account account Upscalevault account Bluraytracker.cz account Torrenting.com account Infire.si account Dasunerwartete.biz invite The-torrent-trader account New-asgard.xyz account Pandapt account Deildu account Tmpt.top invite Pt.gtk.pw account Media.slo-bitcloud.eu account P.t-baozi.cc account 13city.org account Cangbao.ge account Cc.mypt.cc invite Dubhe.site invite Hdbao.cc account Kufei.org invite Mooko.org account Pt.aling.de invite Pt.lajidui.top invite Longpt.org invite Pt.luckpt.de invite Ptlover.cc invite Raingfh.top account Sewerpt.com account   Movies Trackers :   Secret-cinema account Anthelion account Pixelhd account Cinemageddon account Cinemaz account Retroflix account Classix-unlimited - invite Movie-Torrentz (m2g.link) invite Punck-tracker.net account Tmghub account Cathode-ray.tube account Greatposterwall account Arabicsource.net account Upload.cx account Crabpt.vip invite Onlyencodes.cc account Exyusubs account Hellashut.net invite Nordichd.sytes.net invite Locadora.cc account   HD Trackers :   Blutopia buffered account Hd-olimpo buffered account Hdf.world account Torrentland.li account HdSky account Hdchina account Chdbits account Totheglory account Hdroute account Hdhome account TorrentCCF aka et8.org account 3DTorrents invite HD-Torrents account Bit-HDTV account HDME.eu invite Hdarea.co account Asiancinema.me account JoyHD invite HDSpace invite CrazyHD invite Bluebird-hd invite Htpt.cc account Hdtime invite Ourbits.club account Hd4fans account Siambit account Privatehd account Springsunday account Tjupt account Hdcity.leniter invite Ccfbits account Discfan account Pt.btschool.club account Ptsbao.club invite Hdzone.me invite Danishbytes account Zonaq.pw account Tracker.tekno3d account Arabp2p account Hd-united account Reelflix.xyz account Hdatmos.club account Anasch.cc invite Tigris-t account Nethd.org account Hd.ai invite Hitpt.com account Hdmonkey account Dragonhd.xyz account Hdclub.eu account Forum.bluraycd.com account Carpt account Hdfun.me invite Pt.hdupt invite Puntotorrent account Ultrahd account Rousi.zip account Bearbit account Hdturk.club account Asiandvdclub account Star-space.net account Nordicq.org account Hdkyl.in account Utp.to account Hdzero account Novahd account Hdtorrents.eu account 4k3dyptt account Duckboobee.org invite Si-qi.xyz account   Music Trackers :   Dicmusic account Music-Vid account Open.cd account LzTr account ProAudioTorrents invite Jpopsuki invite TranceTraffic invite Audionews invite Kraytracker invite Libble.me invite Losslessclub invite Indietorrents.com invite Dimeadozen account Funkytorrents invite Karaokedl account zombtracker.the-zomb account Concertos account Sugoimusic account Satclubbing.club invite Metal.iplay invite Psyreactor invite Panda.cd account Adamsfile account Freehardmusic account Tracker.hqmusic.vn accouunt Twilightzoom account 3 tb buffer Hiresmusic account Metalguru account Musictorrents.org account Musebootlegs.com invite Zappateers.com account Jungleland.dnsalias.com account Naftamusic account Bemusic account   E-Learning Trackers :   Theplace account Thevault account Myanonamouse account Libranet account 420Project account Learnflakes account Pt.soulvoice.club account P2pelite account Aaaaarg.fail invite Ebooks-shares.org account Abtorrents account Pt.tu88.men invite Docspedia.world invite   TV-Trackers :   Skipthecommercials.xyz account Cryptichaven account TV-Vault invite Shazbat.TV account Myspleen account Tasmanit.es invite Tvstore.me account Tvchaosuk account Jptv.club account   XXX - Porn Trackers :   FemdomCult account Pussytorrents account Adult-cinema-network account Bootytape account 1 Tb buffer Exoticaz account Bitporn account Kufirc account Gaytorrent.ru invite Nicept account Gay-torrents.org invite Ourgtn account Pt.hdbd.us account BitSexy account Happyfappy.org account Kamept.com account Lesbians4u.org account Fappaizuri.me account   Gaming Trackers :   Mteam.fr account BitGamer invite Retrowithin invite Gamegamept account   Cartoon/Anime/Comic Trackers :   Animeworld account Oldtoons.world account U2.dmhy account CartoonChaos invite Mononoke account Totallykids.tv account Bakabt.me invite Revanime account Ansktracker account Tracker.shakaw.com.br invite Bt.mdan.org account Skyey2.com account Animetracker.cc Adbt.it.cx invite Tracker.uniotaku.com account Mousebits.com account   Sports Trackers :   MMA-Tracker invite T3nnis.tv invite AcrossTheTasman account RacingForMe invite Sportscult invite Ultimatewrestlingtorrents account Worldboxingvideoarchive invite CyclingTorrents account Xtremewrestlingtorrents account Tc-boxing invite Mma-torrents account Aussierul invite Xwt-classics account Racing4everyone account Talk.tenyardtracker account Stalker.societyglitch invite Extremebits invite Rgfootball.net account F1carreras.xyz account   Software/Apps Trackers :   Brokenstones account Appzuniverse invite Teamos.xyz account Macbb.org account Phoenixproject.app account Tormac.org account   Graphics Trackers:   Forum.Cgpersia account Cgfxw account   Others   Hduse.net account Fora.snahp.eu account Makingoff.org/forum account Xrel.to account Undergunz.su account Corebay account Endoftheinter.net ( EOTI ) account Thismight.be invite Skull.facefromouter.space account Avxhm.se (AvaxHome) account Ssdforum account Notfake.vip account Intotheinter.net account Tildes.net invite Thetoonz account Usinavirtual account Hdclasico invite HispaShare account Valentine.wtf account Adit-hd account Forum-andr.net account Warezforums account Justanothermusic.site account Forbiddenlibrary.moe account Senturion.to account Movieparadise account Dcdnet.ru account Sftdevils.net account Heavy-r.com account New-team.org account Ddl.tv account Filewarez.club account Hispamula.org account Hubwarez.tv account Ultim-zone.in account Leprosorium.ru account Planet-ultima.org account The-dark-warez.com account Koyi.pub account Tehparadox.net account Forumophilia account Torrentinvite.fr account Gmgard.com account Board4all.biz account   NZB :   Ninjacentral account Tabula-rasa.pw account Drunkenslug account Drunkenslug invite Usenet-4all account Dognzb.cr invite Kleverig account Nzb.cat account Nzbplanet.net invite Ng4you.com account NZB.to account Samuraiplace account Abhdtv.net account Abook.link account Comix.pw account House-of-usenet Secretbinaries.net account Vnext.to account Stockboxx.top account Sky-of-use.net account Indexer.codeshy.com account Oldboys.pw account Uhd100.com account   Prices start from 3 $ to 100 $   Payment methods: Crypto, Neteller, Revolut   If you want to buy something send me a pm or contact me on:   Email: morrison2102@gmail.com   Discord: LFC4LIFE#4173   Telegram: https://t.me/LFC4LIFE4173   Skype: morrison2102@hotmail.com
    • FILE vs SCENARIO – where the outcome is actually decided ▪ Most people think everything depends on the document. Make it “clean” – and you’re good. ▪ But the check doesn’t look at the file. It looks at the story around it. – where you “live” – what you “do” – where your income comes from – how it all fits together ▪ The same document can pass… or get rejected – depending on the scenario. ▪ Because it’s not the file itself that matters, but the logic of the entire chain. ▪ The document is just one part of the structure. If the rest doesn’t match – it won’t save you. ▪ Got a case? Describe your situation – we’ll point out the weak spots. › TG: @mustang_service ( https:// t.me/ mustang_service ) › Channel: Mustang Service ( https:// t.me/ +JPpJCETg-xM1NjNl ) #editing #photoshop #documents #correction #verification
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..