That's my problem. I'm using Interlude, dVamp extender. Each time I restart the server for regular maintenance, some characters log in with a buff / debuff that lasts a very, very long time, many days. I have to manually dispel them, because some of them for instance log in with a "Shocked!" debuff, preventing them from playing. I'd show you the logs, but I don't know which one would be needed. Any ideas or suggestions as to where to start looking? Thanks in advance.
Sounds like a mismatch between cached & l2server, problem with buff extension maybe, i see similar problem before while working in coep.
The Cached, NPC and Server versions are the same, in the same pack. And no, I'm not changing the server's date. Only some users appear with the problem, around 20, and it's always the same characters.
I've checked the dlls for the Cached, Server and NPC, and even changed them for a previous version, yet no luck. Checked the logs of the characters when they log in and out, and there's nothing meaningful or even referring to this problem. I'm getting somewhat desperate. It always happens to the same characters (throught char ID?) Any more ideas?
Well, so far I've been "fixing" this by copying a character to a new one. The change in ID keeps the character safe from the problem. But new characters are appearing with the bug... and I really don't know what could it be. Maybe the problem is in a stored procedure... but which one should I look for? Please, any help would be greatly appreciated.
-Try regenerating your _pch files, (could be same skill ids , or same skill pch ids , are you getting any l2server skill errors ? ) -and your stored procedure/create_char and there should be some skill ones. -also cleanup all buffs and skills (if you are running a highrate and skills are autoget.) user_active_skill table i think.
Yes, I am getting l2server skill errors sometimes. Rate's x5, not auto-get, nothing fathing. Official-like in most things. This is my create_char stored procedure: Code: USE [lin2world] GO /****** Object: StoredProcedure [dbo].[lin_CreateChar] Script Date: 09/20/2010 11:02:25 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[lin_CreateChar] ( @char_name NVARCHAR(24), @account_name NVARCHAR(24), @account_id INT, @pledge_id INT, @builder TINYINT, @gender TINYINT, @race TINYINT, @class TINYINT, @world SMALLINT, @xloc INT, @yloc INT, @zloc INT, @HP FLOAT, @MP FLOAT, @SP INT, @Exp BIGINT, @Lev TINYINT, @align SMALLINT, @PK INT, @Duel INT, @PKPardon INT, @FaceIndex INT = 0, @HairShapeIndex INT = 0, @HairColorIndex INT = 0 ) AS SET NOCOUNT ON SET @char_name = RTRIM(@char_name) DECLARE @char_id int SET @char_id = 0 IF @char_name LIKE N' ' BEGIN RAISERROR ('Character name has space : name = [%s]', 16, 1, @char_name) RETURN -1 END -- check user_prohibit if exists(select char_name from user_prohibit (nolock) where char_name = @char_name) begin RAISERROR ('Character name is prohibited: name = [%s]', 16, 1, @char_name) RETURN -1 end declare @user_prohibit_word nvarchar(20) select top 1 @user_prohibit_word = words from user_prohibit_word (nolock) where @char_name like '%' + words + '%' if @user_prohibit_word is not null begin RAISERROR ('Character name has prohibited word: name = [%s], word[%s]', 16, 1, @char_name, @user_prohibit_word) RETURN -1 end -- check reserved name declare @reserved_name nvarchar(50) declare @reserved_account_id int select top 1 @reserved_name = char_name, @reserved_account_id = account_id from user_name_reserved (nolock) where used = 0 and char_name = @char_name if not @reserved_name is null begin if not @reserved_account_id = @account_id begin RAISERROR ('Character name is reserved by other player: name = [%s]', 16, 1, @char_name) RETURN -1 end end -- insert user_data INSERT INTO user_data ( char_name, account_name, account_id, pledge_id, builder, gender, race, class, subjob0_class, world, xloc, yloc, zloc, HP, MP, max_hp, max_mp, SP, Exp, Lev, align, PK, PKpardon, duel, create_date, face_index, hair_shape_index, hair_color_index ) VALUES (@char_name, @account_name, @account_id, @pledge_id, @builder, @gender, @race, @class, @class, @world, @xloc, @yloc, @zloc, @HP, @MP, @HP, @MP, @SP, @Exp, @Lev, @align, @PK, @Duel, @PKPardon, GETDATE(), @FaceIndex, @HairShapeIndex, @HairColorIndex) IF (@@error = 0) BEGIN SET @char_id = @@IDENTITY INSERT INTO quest (char_id) VALUES (@char_id) END SELECT @char_id if @char_id > 0 begin -- make user_history exec lin_InsertUserHistory @char_name, @char_id, 1, @account_name, NULL if not @reserved_name is null update user_name_reserved set used = 1 where char_name = @reserved_name end I'll check remaking the pch files, thanks for the heads-up. I though it had no solution. =(
this is definatelly your user_ActiveSkill table, you must drop it and re-create it and try seeking for latest layout of this table... then yes after making sure it is correct, you can look the procedures.
Thanks, I didn't think about dropping and recreating the table. Where can I find the latest layout of the table? I'm sorry if the question seem noobish, but this is the first time I've faced such a problem.
Will try, thanks. I tried deleting my table and then recreating it using my own scripts and the problem persists... will see if this one's different. Thanks.
Just delete the skill in the skilldata? Find the skill in the skillname-e.dat on the client side, find the SkillID in the skilldata.txt and delete it or chance the effect. it should work it's unusual but it will work cheers Demo