Hey guys i just understand the 32.767 HP bug.
Everytime when the DBServer calls UpdatePlayer it updates all Level, Wis, Str, HP, ... soo and if you have over 32.767 the database returns false (error) and nothing is updated, so you will loose your Level when you logout with over 32.767, because the DB couldnt save. Your Statpoints will updated in another call without HP saving, that is the reason why this works and its the reason for statbugs.
So my simple stored prod checks if current hp is over 32000 if yes write not the real current hp to database, instead write 32000 and all can be save fine.
Dbserver changes offset 2BFB0
thx to BjornVH for offsetCode:EXEC UpdatePlayer %d,%d,%d,%I64d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d
Have fun :)Code:USE [kal_db] GO /****** Object: StoredProcedure [dbo].[UpdatePlayer] Script Date: 04/05/2012 02:25:39 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[UpdatePlayer] @Level int, @Specialty int, @Contribute int, @Exp int, @GRole int, @Strength int, @Health int, @Intelligence int, @Wisdom int, @Dexterity int, @CurHP int, @CurMP int, @PUPoint int, @SUPoint int, @Killed int, @Map int, @X int, @Y int, @Z int, @Rage int, @PID int AS IF(@CurHP > 32000) BEGIN UPDATE Player SET [Level] = @Level, [Specialty] = @Specialty, [Contribute] = @Contribute, [Exp] = @Exp, [GRole] = @GRole, [Strength] = @Strength, [Health] = @Health, [Intelligence] = @Intelligence, [Wisdom] = @Wisdom, [Dexterity] = @Dexterity, [CurHP] = 32000, [CurMP] = @CurMP, [PUPoint] = @PUPoint, [SUPoint] = @SUPoint, [Killed] = @Killed, [Map] = @Map, [X] = @X, [Y] = @Y, [Z] = @Z, [Rage] = @Rage WHERE [PID] = @PID END ELSE BEGIN UPDATE Player SET [Level] = @Level, [Specialty] = @Specialty, [Contribute] = @Contribute, [Exp] = @Exp, [GRole] = @GRole, [Strength] = @Strength, [Health] = @Health, [Intelligence] = @Intelligence, [Wisdom] = @Wisdom, [Dexterity] = @Dexterity, [CurHP] = @CurHP, [CurMP] = @CurMP, [PUPoint] = @PUPoint, [SUPoint] = @SUPoint, [Killed] = @Killed, [Map] = @Map, [X] = @X, [Y] = @Y, [Z] = @Z, [Rage] = @Rage WHERE [PID] = @PID END



Reply With Quote


