Jump to content
  • 0

a little help with ArrayList and Map


Question

Posted

hello im try to make a code but i have stuck here

first of all i have 3 npc
flag 1
flag 2
flag 3
in flag 2 i have use to spawn something guard all is works file but
am try every time to kill Flag2 to delete or kill guard if have guard alive
my problem is i have much flag and if i kill one flag the guard from all flags is delete
i need delete guard only in killed flag
here is the code

 

in flagGuard i put all name from flag npc
and after i put all spawn from FlagGuardSpawn

	public Map<String, ArrayList<L2Spawn>> _FlagGuard = new ConcurrentHashMap<>();
	public ArrayList<L2Spawn> _FlagGuardSpawn = new ArrayList<>();
	

 

and here is the delete - doDie code

is work but kill all guard from all flags

i need kill only guard from flag name
 


			for(Entry<String, ArrayList<L2Spawn>> TpGuard : FactionData.getInstance()._FlagGuard.entrySet())
			{
				if(TpGuard.getKey().equals(getName()))
				{
					for(L2Spawn g : TpGuard.getValue())
					{
						g.getNpc().doDie(null);
					}
				}
				
				System.out.println("test " + TpGuard);
			}

 

3 answers to this question

Recommended Posts

  • 0
Posted
19 hours ago, tazerman2 said:

tnx for info but can you explance me more like how can start use a map list and how can get from 20 list only one and delete him or kill guard? and if you can explance me how can put that flag with guard in a list

 

You basically ask me to describe/code you a whole system. 

 

Before you code something you need to think of a hierarchy, means how your code will look like.

Ex. each guard belong to a flag and maybe flags belong to a bases. So guards are children of flags and flags are children of bases. 

 

So we start from the top to the bottom, we move from the parents to the children.

 

Let's say we have a Flag class, we want upon spawn to spawn guards around it and upon delete or capture to delete guards. So basically this flag will own a List with the spawned guards.

 

So you create a ArrayList inside the flag that accepts guards as objects. 

Each instance has overriden methods such as onDie(), onSpawn(), deleteMe() e.t.c. 

In these events you must handle the guards.

 

Example:

 

@Override
public void onSpawn()
{
	super.onSpawn();
}

 

Here you should spawn and add to the list all your guards. 

I guess you know how to manage a spawn of an NPC.

 

After you do that you have a list full of guard objects that belong to this flag. 

Now you can manage onDie() method. Same way in there you do a for in your guard list to delete all guards, they will respawn again once the flag is spawned cause the onSpawn() will be called.

 

You should really do some tests and some practice before make such systems. 

You need learn over super and overriden methods, difference between map and a list, thread safety e.t.c. 

 

 

 

 

  • Upvote 1
  • 0
Posted (edited)

Your whole structure is wrong and this is java before VM was a thing.

 

First of all your code can be all in 1 line. You haven't understand what a MAP is and how to use it base on this code i just saw:

 

MAP.getOrDefault("key", Collections.emptyList()).forEach(s -> s.doDie(s));

 

But again this is not the best perspective.

The proper one is to bind the guards on the flag itself.

 

Either create a method on the FlagInstance.java you created such as:

 

public void addSpawn(final L2Spawn spawn)
{
   GUARD_SPAWN.computeIfAbsent("key", k -> new ArrayList<>()).add(spawn);
}

 

and on the @Override method doDie() of the FlagInstance.java simply kill and delete all guards. Then upon onSpawn() method of FlagInstance.java you can spawn again all guards.

 

In addition using a String as a key is not good nor the object itself. Instead use it's objectId and make sure to remove it upon object's delete. 

 

In addition (2). ArrayList is not thread safe since you write and delete. Use CopyOnWriteArrayList (even tho it's slow)

Edited by Kara
  • 0
Posted

tnx for info but can you explance me more like how can start use a map list and how can get from 20 list only one and delete him or kill guard? and if you can explance me how can put that flag with guard in a list

Guest
This topic is now closed to further replies.


  • Posts

    • This back accessory is converted from a cloak, but unfortunately, it's only available for human male warriors. Other races don't have the animation rigged. I hope to improve this back accessory. After importing the animation and skeleton using Unreal Engine 2 Runtime, I get an error when saving it back to a .UKX file. Could you please advise me on how to add other races without encountering errors? Thank you very much!   https://www.mediafire.com/file/g52dgvbp0l28sdo/MFighter_Fuckl2jangel.ukx/file These are the effects of back accessories
    • Welcome to L2EpicFail Server developed by gamers for gamers!  OBT - 9th November 2025 at 18:00 GMT+0 GRAND OPENING - 14th November 2025 at 18:00 GMT+0 Website : https://l2epic.fail/ Discord : https://discord.gg/6hwhrkrHBG     Server Features and Rates Xp – 15x Sp – 9x Adena – 6x Drop – 3x Spoil - 3x Seal Stones drop -  3x   Epic Raid Boss drop - 1x Regular RBs - EXP 5x, SP 5x, drop 4x   Quest drop - 1x (some quests customized to 3x) Quest reward - 1x, Adena 3x, EXP 3x, SP 3x     Premium Account Xp +20% Sp +20% Adena +20% Drop +20% Spoil +20% Quest reward +20%   get by vote or donate World chat 20 times/day use ">" in chat. Buff Book outside of town. Applies to all accounts.     Special Features Classic interface ActiveAnticheat Vote System Missions Attendance check And more in information below     Noblesse There are 3 ways how to make noblesse 1 - Retail Quest with killing barakiel 2 - Modifed Quest, choose killing mobs for 100 items instead of barakiel 3 - Can be bought for Epic Coins     Raid Rank Killing regular Raids gives points according to the level of the RB to the clan of the player who killed the boss. At the end of every month, there will be rewards for top clans. For more info, follow our Discord.   monthly period killing RB = points to clan according to RB level rewards up to Valakas Necklace (not the first month) current statistics can be checked online     Epic Bosses & Respawns   Queen Ant 20 - 30 hours respawn window 1 hour always displayed in .epic auto PvP zone Max grade allowed - C -grade, Boss level 80 HP boosted drop chance 40% guards, nurses lvl 40   Orfen 20 - 30 hours respawn window 1 hour always displayed in .epic auto PvP zone Max grade allowed - B -grade, Boss level 80 HP boosted drop chance 40% earring gives +1 WIT, +1 INT   Core 20 - 30 hours respawn window 1 hour always displayed in .epic auto PvP zone Max grade allowed - B -grade, Boss level 80 HP boosted drop chance 40% ring gives +1 STR, +1 DEX   Zaken 44 - 54 hours respawn window 1 hour always displayed in .epic auto PvP zone  Max grade allowed - A -grade, Boss level 80 doors opened only 5 mins HP boosted   Baium Every Sunday 20:30 - 21:30 window 1 hour always displayed in .epic auto PvP zone (13 - 14th ToI level) regular HP   Frintezza Every Monday, Wednesday, Friday 20:00 - 21:00 window 1 hour always displayed in .epic auto PvP zone (all IT entrance) max 5 parties to entry max 500 range from NPC   Antharas Every two weeks on Saturday 21:00 - 22:00 window 1 hour always displayed in .epic auto PvP zone (bridge to heart)   Valakas Every two weeks on Saturday 21:00 - 22:00 window 1 hour always displayed in .epic auto PvP zone (Klein to heart)   every Epic RB drops Epic Medals equal to RB level x 10     Regular Bosses all regular RBs HP boosted M. def boosted a bit to give advantage to fighters all regular RBs respawn 24 - 30 hours every RB drops Epic Medals equal to RB level     Added Skills Mass Sweep - All Bounty Hunters 40+ Block Buff - All Characters, toggle Escape: 20 seconds - All Characters, no more SoEs   Skills autolearn. Losing skills after 16 levels of delevel. Max buffs 24 + 4 with books (no autolearn)     Augments NoGrade - 4% chance MidGrade - 5% chance HighGrade - 7% chance TopGrade - 6% chance   GM shop weapon/armor/jwl (max C grade) shots/spiritshots (max C grade) mana potions (500 MP, 5s)     NPC buffer all buffs, songs, dances including 3rd prof + resists 1 hour duration all chars Buff Book in inventory     Global Gatekeeper all towns including cata/necro ToI 3/5/7/10th     Olympiad Thursday to Saturday 18:00 - 23:50 UTC+0 period 7 days no class participants min 5 base class participants min 10 max enchant +6     Class Transfer 1st class 50k adena 2nd class 500k adena 3rd class 20kk adena + 700 Halisha marks (tradeable)     Noblesse Quest Quest retail like. Moonstone Shards, Demons Blood etc. quest drop boosted     Subclass Quest To get the quest, you have to be 75+ on your main character (start Reorin in Giran) Bring item from Cabrio chest Bring items from Hallate, Kernon and Golkonda chests Bring this back to Reorin Bring 984 B-grade crystals and top B weapon to Reorin Get low A-grade weapon as reward Done , you can take subclass (up to 5) from any Master in town     Clans all clan members get clan skills (no need for titles) max clan slots 65, max ppl in PvP zone 63 leave/dismiss penalty 0 hours max clans in ally 3     Others   max 3 windows per HWID (only one in PvP zone) protection after teleport for 20 seconds arrows and spellbooks drop turned off weight limit 10x, stackable enchants and LS champions blue (5x HP) min level for trade = 40, chat = 20 BoM/MoM spawned in towns
    • Hi, thank you for your help but still the same , try treadpool as well and try put buffs in database for it work in background but I still with the same problems. what confused me is in npc it works fine but in scheme.
    • you need send communityboard again after bypass
    • Stop spam please, if you don't know what means L2OFF better to go to another topic.
  • 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