Jump to content
  • 0

[HELP] startGameServer.sh error in dedicated server


Question

Posted

Im having an error while starting gameserver through ssh. This is the stdout.log file:

Exception in thread "Timer-0" java.lang.OutOfMemoryError: GC overhead limit exceeded
at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980)
at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406)
at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378)
at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462)
at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)
at java.util.TimerThread.mainLoop(Timer.java:512)
at java.util.TimerThread.run(Timer.java:462)
Exception in thread "GeneralSTPool-4" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.addConditionWaiter(AbstractQueuedSynchronizer.java:1801)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2016)
at java.util.concurrent.DelayQueue.take(DelayQueue.java:164)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
at java.lang.Thread.run(Thread.java:662)
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:100)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:390)
at java.lang.StringBuilder.append(StringBuilder.java:119)
at java.lang.StackTraceElement.toString(StackTraceElement.java:157)
at java.lang.String.valueOf(String.java:2826)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at java.lang.Throwable.printStackTrace(Throwable.java:512)
at L2j.Infinity.util.Util.getStackTrace(Util.java:156)
at L2j.Infinity.log.ConsoleLogFormatter.format(ConsoleLogFormatter.java:52)
at java.util.logging.StreamHandler.publish(StreamHandler.java:179)
at java.util.logging.ConsoleHandler.publish(ConsoleHandler.java:88)
at java.util.logging.Logger.log(Logger.java:458)
at java.util.logging.Logger.doLog(Logger.java:480)
at java.util.logging.Logger.log(Logger.java:569)
at L2j.Infinity.gameserver.model.L2Spawn.doSpawn(L2Spawn.java:502)
at L2j.Infinity.gameserver.model.L2Spawn.doSpawn(L2Spawn.java:444)
at L2j.Infinity.gameserver.model.L2Spawn.init(L2Spawn.java:394)
at L2j.Infinity.gameserver.datatables.SpawnTable.fillSpawnTable(SpawnTable.java:115)
at L2j.Infinity.gameserver.datatables.SpawnTable.<init>(SpawnTable.java:57)
at L2j.Infinity.gameserver.datatables.SpawnTable.<init>(SpawnTable.java:39)
at L2j.Infinity.gameserver.datatables.SpawnTable$SingletonHolder.<clinit>(SpawnTable.java:388)
at L2j.Infinity.gameserver.datatables.SpawnTable.getInstance(SpawnTable.java:51)
at L2j.Infinity.gameserver.model.entity.Fort.initNpcs(Fort.java:1185)
at L2j.Infinity.gameserver.model.entity.Fort.<init>(Fort.java:253)
at L2j.Infinity.gameserver.instancemanager.FortManager.loadInstances(FortManager.java:170)
at L2j.Infinity.gameserver.GameServer.<init>(GameServer.java:193)
at L2j.Infinity.gameserver.GameServer.main(GameServer.java:470)

 

my GameServer_loop.sh file:

#!/bin/bash

# exit codes of GameServer:
#  0 normal shutdown
#  2 reboot attempt

while :; do
[ -f log/java0.log.0 ] && mv log/java0.log.0 "log/`date +%Y-%m-%d_%H-%M-%S`_java.log"
[ -f log/stdout.log ] && mv log/stdout.log "log/`date +%Y-%m-%d_%H-%M-%S`_stdout.log"
java -Djava.util.logging.manager=L2j.Infinity.util.L2LogManager -Xms512m -Xmx1024m -cp ./../libs/*:L2jInfinity.jar L2j.Infinity.gameserver.GameServer > log/stdout.log 2>&1
[ $? -ne 2 ] && break
#	/etc/init.d/mysql restart
sleep 10
done

 

Do someone knows how to fix this kind of error?

 

Ps. Im running my server only on 2gb RAM for now, does this affect the error?

3 answers to this question

Recommended Posts

  • 0
Posted

OutOfMemoryError

That should say everything...

Check login server setting aswell, maybe login is using 1gb of ram aswell. Write "top" and you'll see how much free memory left.

  • 0
Posted

Thanks, i changed the memory in gameserver_loop.sh and I think its not dropping me errors any more, but it now stops in this place

2011.02.11 16:46:54,706	INFO	10	L2j.Infinity.Config	Loading GameServer Configuration Files...
2011.02.11 16:46:54,818	INFO	10	L2j.Infinity.util.L2Properties	L2Properties: Missing property for key - ChampionMinions
2011.02.11 16:46:54,862	INFO	10	L2j.Infinity.Config	Loaded 11 Filter Words.
2011.02.11 16:46:54,868	INFO	10	L2j.Infinity.ExternalConfig	Loading Custom GameServer Configuration Files...
2011.02.11 16:46:54,869	INFO	10	L2j.Infinity.ExternalConfig	Loading settings/irc.properties
2011.02.11 16:46:54,877	INFO	10	L2j.Infinity.gameserver.GameServer	-----------------------------------------------------------------=[ Database ]
2011.02.11 16:46:54,908	INFO	10	com.mchange.v2.log.MLog	MLog clients using java 1.4+ standard logging.
2011.02.11 16:46:55,016	INFO	10	com.mchange.v2.c3p0.C3P0Registry	Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
2011.02.11 16:46:55,430	INFO	10	com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource	Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 5, acquireRetryAttempts -> 0, acquireRetryDelay -> 500, autoCommitOnClose -> true, automaticTestTable -> connection_test_table, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> plcj7r8e5vnf1f15ljh6c|4fa52fdf, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> com.mysql.jdbc.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> plcj7r8e5vnf1f15ljh6c|4fa52fdf, idleConnectionTestPeriod -> 3600, initialPoolSize -> 10, jdbcUrl -> jdbc:mysql://localhost/l2jinfinity, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 60, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 1000, maxStatements -> 0, maxStatementsPerConnection -> 100, minPoolSize -> 10, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
2011.02.11 16:46:55,454	INFO	10	L2j.Infinity.gameserver.util.L2jInfinity	--------------------------------------------------------------------------------
2011.02.11 16:46:55,454	INFO	10	L2j.Infinity.gameserver.util.L2jInfinity	          		Server Version:1104:1224
2011.02.11 16:46:55,454	INFO	10	L2j.Infinity.gameserver.util.L2jInfinity	                         We make the difference!                                
2011.02.11 16:46:55,454	INFO	10	L2j.Infinity.gameserver.util.L2jInfinity	--------------------------------------------------------------------------------
2011.02.11 16:46:55,473	INFO	10	L2j.Infinity.gameserver.idfactory.IdFactory	Updated characters online status.
2011.02.11 16:46:55,532	INFO	10	L2j.Infinity.gameserver.idfactory.IdFactory	Cleaned 0 elements from database in 0 s
2011.02.11 16:46:55,550	INFO	10	L2j.Infinity.gameserver.idfactory.IdFactory	Cleaned 0 expired timestamps from database.
2011.02.11 16:46:55,572	INFO	10	L2j.Infinity.gameserver.idfactory.BitSetIDFactory	IDFactory: 102912 id's available.
2011.02.11 16:46:55,573	INFO	10	L2j.Infinity.gameserver.GameServer	------------------------------------------------------------------=[ Engines ]
2011.02.11 16:46:55,593	INFO	10	L2j.Infinity.gameserver.scripting.L2ScriptEngineManager	Initializing Script Engine Manager
2011.02.11 16:46:55,631	INFO	10	L2j.Infinity.gameserver.scripting.L2ScriptEngineManager	Script Engine: java 1.6 - Language: java - Language Version: 1.6
2011.02.11 16:46:56,171	INFO	10	L2j.Infinity.gameserver.scripting.L2ScriptEngineManager	Script Engine: jython 2.2.1 - Language: python - Language Version: 2.2.1
2011.02.11 16:46:56,227	INFO	10	L2j.Infinity.gameserver.scripting.L2ScriptEngineManager	Script Engine: BeanShell Engine 1.1 - Language: BeanShell - Language Version: 2.0b5
2011.02.11 16:46:56,252	INFO	10	L2j.Infinity.gameserver.scripting.L2ScriptEngineManager	Script Engine: Mozilla Rhino 1.6 release 2 - Language: ECMAScript - Language Version: 1.6
2011.02.11 16:46:56,358	INFO	10	L2j.Infinity.gameserver.GameServer	--------------------------------------------------------------------=[ World ]
2011.02.11 16:46:56,365	INFO	10	L2j.Infinity.gameserver.instancemanager.InstanceManager	Initializing InstanceManager
2011.02.11 16:46:56,381	INFO	10	L2j.Infinity.gameserver.instancemanager.InstanceManager	Loaded 133 instance names
2011.02.11 16:46:56,413	INFO	10	L2j.Infinity.gameserver.instancemanager.InstanceManager	Multiverse Instance created
2011.02.11 16:46:56,414	INFO	10	L2j.Infinity.gameserver.instancemanager.InstanceManager	Universe Instance created
2011.02.11 16:46:56,514	INFO	10	L2j.Infinity.gameserver.model.L2World	L2World: (128 by 136) World Region Grid set up.
2011.02.11 16:46:56,524	INFO	10	L2j.Infinity.gameserver.GameServer	-------------------------------------------------------------------=[ Skills ]
2011.02.11 16:46:56,541	INFO	10	L2j.Infinity.gameserver.datatables.EnchantGroupsTable	EnchantGroupsTable: Loaded 5 groups.
2011.02.11 16:46:56,922	INFO	10	L2j.Infinity.gameserver.datatables.SkillTreeTable	SkillTreeTable: Loaded 42293 skills.
2011.02.11 16:46:56,930	INFO	10	L2j.Infinity.gameserver.datatables.SkillTreeTable	FishingSkillTreeTable: Loaded 109 general skills.
2011.02.11 16:46:56,930	INFO	10	L2j.Infinity.gameserver.datatables.SkillTreeTable	DwarvenCraftSkillTreeTable: Loaded 8 dwarven skills.
2011.02.11 16:46:56,930	INFO	10	L2j.Infinity.gameserver.datatables.SkillTreeTable	PledgeSkillTreeTable: Loaded 62 pledge skills
2011.02.11 16:46:56,930	INFO	10	L2j.Infinity.gameserver.datatables.SkillTreeTable	TransformSkillTreeTable: Loaded 50 transform skills
2011.02.11 16:46:56,931	INFO	10	L2j.Infinity.gameserver.datatables.SkillTreeTable	SpecialSkillTreeTable: Loaded 6 special skills
2011.02.11 16:47:05,254	INFO	10	L2j.Infinity.gameserver.datatables.PetSkillsTable	PetSkillsTable: Loaded 2394 skills.
2011.02.11 16:47:05,258	INFO	10	L2j.Infinity.gameserver.datatables.ResidentialSkillTable	ResidentialSkillTable: Loaded 39 entities with associated skills.
2011.02.11 16:47:05,260	INFO	10	L2j.Infinity.gameserver.GameServer	-----------------------------------------------------=[ Clan Halls and Forts ]
2011.02.11 16:47:05,260	INFO	10	L2j.Infinity.gameserver.GameServer	--------------------------------------------------------------------=[ Items ]
2011.02.11 16:47:06,544	INFO	10	L2j.Infinity.gameserver.datatables.ItemTable	ItemTable: Loaded 3046 Armors.
2011.02.11 16:47:06,761	INFO	10	L2j.Infinity.gameserver.datatables.ItemTable	ItemTable: Loaded 10202 Items.
2011.02.11 16:47:07,315	INFO	10	L2j.Infinity.gameserver.datatables.ItemTable	ItemTable: Loaded 3553 Weapons.
2011.02.11 16:47:07,344	INFO	10	L2j.Infinity.gameserver.datatables.ItemTable	Highest item id used:22172
2011.02.11 16:47:07,430	INFO	10	L2j.Infinity.gameserver.datatables.ExtractableItemsData	Extractable items data: Loaded 247 extractable items!
2011.02.11 16:47:07,542	INFO	10	L2j.Infinity.gameserver.datatables.ExtractableSkillsData	Extractable skills data: Loaded 450 extractable skills!
2011.02.11 16:47:07,548	INFO	10	L2j.Infinity.gameserver.datatables.SummonItemsData	Summon items data: Loaded 53 summon items.
2011.02.11 16:47:07,562	INFO	10	L2j.Infinity.gameserver.datatables.EnchantHPBonusData	Enchant HP Bonus registered for 1526 items!
2011.02.11 16:47:07,568	INFO	10	L2j.Infinity.gameserver.datatables.MerchantPriceConfigTable	MerchantPriceConfigTable: Loaded 28 merchant price configs.
2011.02.11 16:47:08,412	INFO	10	L2j.Infinity.gameserver.TradeController	TradeController: Loaded 660 Buylists.
2011.02.11 16:47:09,327	INFO	10	L2j.Infinity.gameserver.model.L2Multisell	L2Multisell: Loaded 215 lists.
2011.02.11 16:47:09,402	INFO	10	L2j.Infinity.gameserver.RecipeController	RecipeController: Loaded 936 recipes.
2011.02.11 16:47:09,408	INFO	10	L2j.Infinity.gameserver.datatables.ArmorSetsTable	ArmorSetsTable: Loaded 169 armor sets.
2011.02.11 16:47:09,414	INFO	10	L2j.Infinity.gameserver.datatables.FishTable	FishTable: Loaded 270 Fishes.
2011.02.11 16:47:09,414	INFO	10	L2j.Infinity.gameserver.GameServer	---------------------------------------------------------------=[ Characters ]
2011.02.11 16:47:09,427	INFO	10	L2j.Infinity.gameserver.datatables.CharTemplateTable	CharTemplateTable: Loaded 103 Character Templates.
2011.02.11 16:47:09,438	INFO	10	L2j.Infinity.gameserver.datatables.CharNameTable	CharNameTable: Loaded 13 char names.
2011.02.11 16:47:09,443	INFO	10	L2j.Infinity.gameserver.datatables.LevelUpData	LevelUpData: Loaded 103 Character Level Up Templates.
2011.02.11 16:47:09,461	INFO	10	L2j.Infinity.gameserver.datatables.AccessLevels	AccessLevels: Loaded 7 from database.
2011.02.11 16:47:09,467	INFO	10	L2j.Infinity.gameserver.datatables.AdminCommandAccessRights	AdminCommandAccessRights: Loaded 520 from database.
2011.02.11 16:47:09,585	INFO	10	L2j.Infinity.gameserver.GameServer	--------------------------------------------------------------------=[ Clans ]
2011.02.11 16:47:09,616	INFO	10	L2j.Infinity.gameserver.communitybbs.Manager.ForumsBBSManager	Loaded 7 forums. Last forum id used: 7
2011.02.11 16:47:09,665	INFO	10	L2j.Infinity.gameserver.datatables.ClanTable	Restored 3 clans from the database.
2011.02.11 16:47:09,669	INFO	10	L2j.Infinity.gameserver.instancemanager.ClanHallManager	Initializing ClanHallManager
2011.02.11 16:47:09,686	INFO	10	L2j.Infinity.gameserver.instancemanager.AuctionManager	Initializing AuctionManager
2011.02.11 16:47:09,864	INFO	10	L2j.Infinity.database.MiscDbTask	Loaded: 38 auction(s)
2011.02.11 16:47:09,867	INFO	10	L2j.Infinity.gameserver.instancemanager.ClanHallManager	Loaded: 0 clan halls
2011.02.11 16:47:09,867	INFO	10	L2j.Infinity.gameserver.instancemanager.ClanHallManager	Loaded: 57 free clan halls
2011.02.11 16:47:11,264	INFO	10	L2j.Infinity.gameserver.GameServer	---------------------------------------------------------------------=[ NPCs ]
2011.02.11 16:47:12,727	INFO	10	L2j.Infinity.gameserver.datatables.NpcTable	NpcTable: (Re)Loaded 9834 NPC template(s).
2011.02.11 16:47:12,735	INFO	10	L2j.Infinity.gameserver.datatables.NpcTable	NpcTable: (Re)Loaded 112 custom NPC template(s).
2011.02.11 16:47:13,026	INFO	10	L2j.Infinity.gameserver.datatables.NpcTable	NpcTable: Loaded 556 Minions.
2011.02.11 16:47:13,038	SEVERE	10	L2j.Infinity.gameserver.datatables.NpcTable	NPCTable: Error reading NPC Character Attributes: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'l2jinfinity.npcCharData' doesn't exist
2011.02.11 16:47:13,040	SEVERE	10	L2j.Infinity.gameserver.datatables.NpcTable	NPCTable: Error reading NPC AI Data: Table 'l2jinfinity.npcAIData' doesn't exist
2011.02.11 16:47:13,046	SEVERE	10	L2j.Infinity.gameserver.datatables.NpcTable	NPCTable: Error reading NPC Custom AI Data: Table 'l2jinfinity.custom_npcAIData' doesn't exist
2011.02.11 16:47:13,049	INFO	10	L2j.Infinity.gameserver.datatables.SpawnTable	Initializing Walkers Routes Table.
2011.02.11 16:47:13,053	INFO	10	L2j.Infinity.gameserver.datatables.SpawnTable	WalkerRoutesTable: Loaded 35 Npc Walker Routes.
2011.02.11 16:47:13,069	INFO	10	L2j.Infinity.gameserver.instancemanager.ZoneManager	Loading zones...
2011.02.11 16:47:15,986	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	Initializing GrandBossManager
2011.02.11 16:47:15,987	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Queen Ant(29001) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Core(29006) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Orfen(29014) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Antharas(29019) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Baium(29020) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Zaken(29022) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Valakas(29028) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Frintezza(29045) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Scarlet van Halisha(29046) status is 0.
2011.02.11 16:47:15,988	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Scarlet van Halisha(29047) status is 0.
2011.02.11 16:47:15,989	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Antharas(29066) status is 0.
2011.02.11 16:47:15,989	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Antharas(29067) status is 0.
2011.02.11 16:47:15,989	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Antharas(29068) status is 0.
2011.02.11 16:47:15,989	INFO	10	L2j.Infinity.gameserver.instancemanager.GrandBossManager	GrandBossManager: Loaded 13 Instances
2011.02.11 16:47:16,272	WARNING	10	L2j.Infinity.gameserver.instancemanager.ZoneManager	ZoneData: Bad sql data for zone: 14011
2011.02.11 16:47:20,727	WARNING	10	L2j.Infinity.gameserver.instancemanager.ZoneManager	ZoneData: Missing cuboid vertex in sql data for zone: 111006
2011.02.11 16:47:20,888	INFO	10	L2j.Infinity.gameserver.instancemanager.ZoneManager	Done: loaded 786 zones.
2011.02.11 16:47:20,890	INFO	10	L2j.Infinity.gameserver.datatables.DoorTable	Searching clan halls doors:
2011.02.11 16:47:21,089	INFO	10	L2j.Infinity.gameserver.datatables.DoorTable	DoorTable: Loaded 744 Door Templates for 19 regions.
2011.02.11 16:47:21,100	INFO	10	L2j.Infinity.gameserver.datatables.StaticObjects	StaticObject: Loaded 29 StaticObject Templates.
2011.02.11 16:47:21,100	INFO	10	L2j.Infinity.gameserver.instancemanager.CastleManager	Initializing CastleManager
2011.02.11 16:47:21,128	INFO	10	L2j.Infinity.database.CastleFortressDbTask	Loaded: 9 castles
2011.02.11 16:47:21,130	INFO	10	L2j.Infinity.gameserver.instancemanager.FortManager	Initializing FortManager

 

I dont know what to do now..

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

    • First, don't really follow the "main voice", moreover if you consider it an hobby. Simply do what you want, you got only one life so use it as you want. If you make it an hobby, it's exactly like piano, or velo - only practice makes you better.   Secondly, how do you learn things ? It's actually a really important question, since some can simply be scholar, read books (theory) then practice ; and some simply can't read books. I'm the second type, I hated school, I find it boring - my knowledge in Java comes from try-and-fail. You improve your coding style every year or so, I can myself rewrite my own code (which I already considered top-notched) after a while. You always learn something new - even if Java barely evolves. L2J is a fun way to learn programming, it's a giant sandbox where you can edit anything, and I believe it should be taken as it.   My own way of learning was as follow : Add existing customs, no matter what they are : the point is to know main classes used by L2J / customs. L2J is barely Java knowledge ; the true knowledge is to know WHAT to search in WHICH location (what I call, organization). You have to understand than EVERYTHING you think already exists, in a form on another, in the source code. A custom is only the association of the different mechanisms you found "here and there", glued together in a proper goal. Once you know main classes to edit, and the customs you added are compiling fine, the main point is to know WHAT exactly you DID. Try to understand WHY and WHERE you actually copied the code. Third point would be to MANIPULATE the customs you added in order to fit your wish. First edit little values, then logic conditions ; eventually add a new Config, or a new functionality to the custom. Fourth point would be to begin to craft your own ideas. Once again, EVERYTHING already exists, in a form or another. You want a cycled event ? You got Seven Signs main task as exemple. Npc ? Search any type of Npc and figure out what it does. Fifth point would be to understand Java - mostly containers (WHAT and WHERE to use them), variables types and main Java mechanisms (inheritance, static modifier, etc). You should also begin to cut your code into maintainable classes or methods. Java can actually run without optimization, but bigger your ideas, more optimized and well-thought it should be. It's direct saved time in the future, and you would thank yourself doing so. Main tips : ALWAYS use any type of versioning system - GIT or SVN. It allows to save your work, step by step and eventually revert back anytime you want if you terribly messed up. L2J is 80% organization knowledge, and 20% Java knowledge. Basically, if you know WHAT and WHERE to search, if you aren't dumb, it's easy to replicate and re-use things. Cherry on top is to use a already good coded pack to avoid copy-paste crap and get bad habits. Avoid any type of russian or brazilian packs, for exemple - their best ability is to leak someone's else code. Obviously you need some default sense of logic, but Java and programming in general help you to improve it.   Finally, most of your questions could be solved joining related Discord (at least for aCis, I can't speak for others) - from the moment your question was correctly asked (and you seemed to search for the answer). My community (and myself) welcomes newbies, but got some issues with noobies.   The simpliest is to try, fail and repeat until you succeed - it sounds stupid, but that's basically how life works.   PS : about Java ressources, before ChatGPT, it was mostly about stackoverflow website, and site like Baeldung's one. With ChatGPT and alike, you generally double-cross AI output to avoid fucked up answers. Also, care about AI, they are often hallucinating really hard, even today. They can give you complete wrong answer, you tell them they are wrong, and they say "indeed, I suck, sorry - here's a new fucked up answer". You shouldn't 100% rely over AI answer, even if that can give sometimes legit answers, full code or just skeletons of ideas.   PPS : I don't think there are reliable ressources regarding L2J itself, also most of the proposed code decays pretty fast if the source code is actually maintained (at least for aCis). Still, old coded customs for old aCis sources are actually a good beginner challenge to apply on latest source.
    • WTS: - AQ - Baium - Zaken  - Frintezza - Vesper Fighter Focus Fire Element   pm for detalis
    • We have the best price! L2Reborn.org Signature x1 Franz NEW!! 1KK = $20 HURRY TO BUY AT THE TOP PRICE discord - adver745645
  • 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