Page 1 of 3
Multi skills bug
Posted: Fri Sep 10, 2010 8:06 am
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?
Re: Multi skills bug
Posted: Fri Sep 10, 2010 8:14 am
by SolidSnake
Have you tried on a test server on your pc or on an unofficial server on a good machine?
Re: Multi skills bug
Posted: Fri Sep 10, 2010 8:22 am
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
Re: Multi skills bug
Posted: Fri Sep 10, 2010 10:26 am
by angkor
aa
help plz, how i can fix this?
how can add delay for exit game?
Re: Multi skills bug
Posted: Fri Sep 10, 2010 10:35 am
by babyjason
how about not using alternate class master?
anyways, try flood protectors, if you use item, i d try item protectors ...
Re: Multi skills bug
Posted: Fri Sep 10, 2010 10:53 am
by angkor
Floodprotections not help, I try...
I use this bug with classic Classmaster too
Re: Multi skills bug
Posted: Fri Sep 10, 2010 2:24 pm
by angkor
Maybe someone has an idea?
Re: Multi skills bug
Posted: Fri Sep 10, 2010 2:39 pm
by Naonah
this problem was resolved by floodprotector, use a proper delay...
Re: Multi skills bug
Posted: Fri Sep 10, 2010 3:19 pm
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
Re: Multi skills bug
Posted: Fri Sep 10, 2010 4:21 pm
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..
Re: Multi skills bug
Posted: Fri Sep 10, 2010 7:44 pm
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?
Re: Multi skills bug
Posted: Fri Sep 10, 2010 8:12 pm
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..
Re: Multi skills bug
Posted: Fri Sep 10, 2010 8:36 pm
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.
Re: Multi skills bug
Posted: Sat Sep 11, 2010 5:13 am
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?
Re: Multi skills bug
Posted: Sat Sep 11, 2010 7:52 am
by SolidSnake
In fact I said that I made that patch without any kind of tests, so try it on a test server