Multi skills bug

Support for the latest build of L2J Server, get help here with installations, upgrades, problems.
Do not post bugs reports here, use viewforum.php?f=77 instead.
There is no support for other server builds than the official provided by l2jserver.com
Forum rules
READ NOW: L2j Forums Rules of Conduct
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Multi skills bug

Post by angkor »

Hi, i find bug
last gs and dp revision (Epilogue)
Set
AlternateClassMaster = True
then
take lvl 40, opening window with change profession, you click on profession and quickly click on Exit game (almost simultaneously).
When you go into the game again, you get a skill, but do not get a profession.
then you opening window with change profession and click on other profession.
Now - you have 1 proffesion and multiskills.

How fix that?
User avatar
SolidSnake
Posts: 865
Joined: Wed Jan 20, 2010 6:54 pm
Location: Italy

Re: Multi skills bug

Post by SolidSnake »

Have you tried on a test server on your pc or on an unofficial server on a good machine?
Image
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Re: Multi skills bug

Post by angkor »

Good server
Dell PowerEnge 2U
2 x Intel Xeon 5680 3.33 GHz 12M L3
2 x 146Gb SAS 15k
16Gb DD3 ECC

Good config, not lag
Test on lan 1Gb/s, no delay
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Re: Multi skills bug

Post by angkor »

aa
help plz, how i can fix this?
how can add delay for exit game?
babyjason
Posts: 575
Joined: Wed Dec 02, 2009 7:59 pm

Re: Multi skills bug

Post by babyjason »

how about not using alternate class master?
anyways, try flood protectors, if you use item, i d try item protectors ...
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Re: Multi skills bug

Post by angkor »

Floodprotections not help, I try...
I use this bug with classic Classmaster too
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Re: Multi skills bug

Post by angkor »

Maybe someone has an idea?
User avatar
Naonah
Posts: 357
Joined: Sun Apr 04, 2010 11:12 pm

Re: Multi skills bug

Post by Naonah »

this problem was resolved by floodprotector, use a proper delay...
public void l2jserver ()
{
if (you want l2j server == no problems)
use Linux;
else
use Windows;
}
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Re: Multi skills bug

Post by angkor »

i use standart config floodprotection

Code: Select all

# UseItem - item usage floodingFloodProtectorUseItemInterval = 4FloodProtectorUseItemLogFlooding = FalseFloodProtectorUseItemPunishmentLimit = 0FloodProtectorUseItemPunishmentType = noneFloodProtectorUseItemPunishmentTime = 0 # RollDice - rolling dice floodingFloodProtectorRollDiceInterval = 42FloodProtectorRollDiceLogFlooding = FalseFloodProtectorRollDicePunishmentLimit = 0FloodProtectorRollDicePunishmentType = noneFloodProtectorRollDicePunishmentTime = 0 # Firework - firework floodingFloodProtectorFireworkInterval = 42FloodProtectorFireworkLogFlooding = FalseFloodProtectorFireworkPunishmentLimit = 0FloodProtectorFireworkPunishmentType = noneFloodProtectorFireworkPunishmentTime = 0 # ItemPetSummon - item summonning and pet mounting floodingFloodProtectorItemPetSummonInterval = 16FloodProtectorItemPetSummonLogFlooding = FalseFloodProtectorItemPetSummonPunishmentLimit = 0FloodProtectorItemPetSummonPunishmentType = noneFloodProtectorItemPetSummonPunishmentTime = 0 # HeroVoice - hero voice floodingFloodProtectorHeroVoiceInterval = 100FloodProtectorHeroVoiceLogFlooding = FalseFloodProtectorHeroVoicePunishmentLimit = 0FloodProtectorHeroVoicePunishmentType = noneFloodProtectorHeroVoicePunishmentTime = 0 # GlobalChat - global chat floodingFloodProtectorGlobalChatInterval = 5FloodProtectorGlobalChatLogFlooding = FalseFloodProtectorGlobalChatPunishmentLimit = 0FloodProtectorGlobalChatPunishmentType = noneFloodProtectorGlobalChatPunishmentTime = 0 # Subclass - subclass floodingFloodProtectorSubclassInterval = 20FloodProtectorSubclassLogFlooding = FalseFloodProtectorSubclassPunishmentLimit = 0FloodProtectorSubclassPunishmentType = noneFloodProtectorSubclassPunishmentTime = 0 # DropItem - drop item floodingFloodProtectorDropItemInterval = 10FloodProtectorDropItemLogFlooding = FalseFloodProtectorDropItemPunishmentLimit = 0FloodProtectorDropItemPunishmentType = noneFloodProtectorDropItemPunishmentTime = 0 # ServerBypass - server bypass floodingFloodProtectorServerBypassInterval = 5FloodProtectorServerBypassLogFlooding = FalseFloodProtectorServerBypassPunishmentLimit = 0FloodProtectorServerBypassPunishmentType = noneFloodProtectorServerBypassPunishmentTime = 0 # ServerBypass - multisell list request floodingFloodProtectorMultiSellInterval = 1FloodProtectorMultiSellLogFlooding = FalseFloodProtectorMultiSellPunishmentLimit = 0FloodProtectorMultiSellPunishmentType = noneFloodProtectorMultiSellPunishmentTime = 0 # All kind of other transactions - to/from pet, private store, warehouse, destroyFloodProtectorTransactionInterval = 10FloodProtectorTransactionLogFlooding = FalseFloodProtectorTransactionPunishmentLimit = 0FloodProtectorTransactionPunishmentType = noneFloodProtectorTransactionPunishmentTime = 0 # ManufactureFloodProtectorManufactureInterval = 3FloodProtectorManufactureLogFlooding = FalseFloodProtectorManufacturePunishmentLimit = 0FloodProtectorManufacturePunishmentType = noneFloodProtectorManufacturePunishmentTime = 0 # ManorFloodProtectorManorInterval = 30FloodProtectorManorLogFlooding = FalseFloodProtectorManorPunishmentLimit = 0FloodProtectorManorPunishmentType = noneFloodProtectorManorPunishmentTime = 0 # SendMail - sending mail interval, 10s on retailFloodProtectorSendMailInterval = 100FloodProtectorSendMailLogFlooding = FalseFloodProtectorSendMailPunishmentLimit = 0FloodProtectorSendMailPunishmentType = noneFloodProtectorSendMailPunishmentTime = 0 # CharacterSelect - attempts to load characterFloodProtectorCharacterSelectInterval = 30FloodProtectorCharacterSelectLogFlooding = FalseFloodProtectorCharacterSelectPunishmentLimit = 0FloodProtectorCharacterSelectPunishmentType = noneFloodProtectorCharacterSelectPunishmentTime = 0
User avatar
Naonah
Posts: 357
Joined: Sun Apr 04, 2010 11:12 pm

Re: Multi skills bug

Post by Naonah »

hmm, settings are correct

It works for me. When I change prof and then immediately press exit (window pre-opened) I get a new prof. When I log again I have this prof (for exemple: Dark Avenger from Human Knight)

Are you sure you are using CLEAN latest core files? I think you have modified core..
public void l2jserver ()
{
if (you want l2j server == no problems)
use Linux;
else
use Windows;
}
angkor
Posts: 99
Joined: Sat May 02, 2009 5:32 pm

Re: Multi skills bug

Post by angkor »

my rev clean

try click exit very quickly

i set button "change prof" and button "confirm exit" one on another and I press them almost simultaneously.

how set time 5 sec about client close after click exit button?
User avatar
SolidSnake
Posts: 865
Joined: Wed Jan 20, 2010 6:54 pm
Location: Italy

Re: Multi skills bug

Post by SolidSnake »

Code: Select all

Index: java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java===================================================================--- java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java   (revision 4413)+++ java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java   (working copy)@@ -120,3 +120,30 @@        record.setParameters(new Object[]{client});        _logAccounting.log(record);-++       ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()+       {+           @Override+           public void run()+           {+               // detach the client from the char so that the connection isnt closed in the deleteMe+               player.setClient(null);++               player.logout();+               +               getClient().setActiveChar(null);++               // return the client to the authed status+               client.setState(GameClientState.AUTHED);++               sendPacket(RestartResponse.valueOf(true));++               // send char list+               final CharSelectionInfo cl = new CharSelectionInfo(client.getAccountName(), client.getSessionId().playOkID1);+               sendPacket(cl);+               client.setCharSelection(cl.getCharInfo());+           }+       }, 5000);-       // detach the client from the char so that the connection isnt closed in the deleteMe-       player.setClient(null);--       player.logout();-       -       getClient().setActiveChar(null);--       // return the client to the authed status-       client.setState(GameClientState.AUTHED);--       sendPacket(RestartResponse.valueOf(true));--       // send char list-       final CharSelectionInfo cl = new CharSelectionInfo(client.getAccountName(), client.getSessionId().playOkID1);-       sendPacket(cl);-       client.setCharSelection(cl.getCharInfo());    }     /* (non-Javadoc) 
Add proper imports.. BE WARNED: it isn't tested! Try it restarting client..
Image
User avatar
Naonah
Posts: 357
Joined: Sun Apr 04, 2010 11:12 pm

Re: Multi skills bug

Post by Naonah »

SolidSnake wrote:

Code: Select all

Index: java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java===================================================================--- java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java   (revision 4413)+++ java/com/l2jserver/gameserver/network/clientpackets/RequestRestart.java   (working copy)@@ -120,3 +120,30 @@        record.setParameters(new Object[]{client});        _logAccounting.log(record);-++       ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()+       {+           @Override+           public void run()+           {+               // detach the client from the char so that the connection isnt closed in the deleteMe+               player.setClient(null);++               player.logout();+               +               getClient().setActiveChar(null);++               // return the client to the authed status+               client.setState(GameClientState.AUTHED);++               sendPacket(RestartResponse.valueOf(true));++               // send char list+               final CharSelectionInfo cl = new CharSelectionInfo(client.getAccountName(), client.getSessionId().playOkID1);+               sendPacket(cl);+               client.setCharSelection(cl.getCharInfo());+           }+       }, 5000);-       // detach the client from the char so that the connection isnt closed in the deleteMe-       player.setClient(null);--       player.logout();-       -       getClient().setActiveChar(null);--       // return the client to the authed status-       client.setState(GameClientState.AUTHED);--       sendPacket(RestartResponse.valueOf(true));--       // send char list-       final CharSelectionInfo cl = new CharSelectionInfo(client.getAccountName(), client.getSessionId().playOkID1);-       sendPacket(cl);-       client.setCharSelection(cl.getCharInfo());    }     /* (non-Javadoc) 
Add proper imports.. BE WARNED: it isn't tested! Try it restarting client..

..as I remember this issue was reported some time ago in one of tickets and was resolved by adding a code preventing from closing connection. ...but I dont remember which file was affected. The code was similar to this one.
It is an old bugg and for sure discussed here.
public void l2jserver ()
{
if (you want l2j server == no problems)
use Linux;
else
use Windows;
}
babyjason
Posts: 575
Joined: Wed Dec 02, 2009 7:59 pm

Re: Multi skills bug

Post by babyjason »

i remember also that it was added so the character doesent exit game when u press exit but some time after...

anybody can reproduce this?
User avatar
SolidSnake
Posts: 865
Joined: Wed Jan 20, 2010 6:54 pm
Location: Italy

Re: Multi skills bug

Post by SolidSnake »

In fact I said that I made that patch without any kind of tests, so try it on a test server
Image
Post Reply