Quote:
Originally Posted by Weom
Hey,
da mein letzter Thread durch SkillartzHD geclosed wurde, eröffne ich hier einen Thread ohne direkt auf offizielle Sachen von Zemi zu verlinken.
|
Das Thema hatte gegen die Regen verstoßen.
Wie der Fix zustande kam und wer daran alles beteidigt war werde ich auf Weom's wunsch nicht erwähnen weil er die ehre für einen Müll fix (Es entstehen neue bugs und der fix ist sehr unsicher) alleine will.
Für die Leute die keine Lust haben sich alles runterzuladen:
Die Fixes sind sehr einfach aufgebaut.
Hier nochmal die Fixes die ich erstellt habe (Sollten ungefähr genauso laufen wie die von Weom):
Was müsst ihr machen?:
Ihr geht in TGAME_GSP --> Functions und sucht dort folgende Funktionen und ersetzt den vorhandenen Code durch den hier:
Die erste der beiden Daten (TLOGOUT):
PHP Code:
/* LOGOUT PROCESS
========================================================
PARAMETER
========================================================
@dwUserID INT
========================================================
RETURN VALUE
========================================================
0 : SUCCESS
1 : NO USER
========================================================
PROCESS
========================================================
--1. Check TCURRENTUSER table
--2. Delete user from TCURRENTUSER
--3. Update log data
*/
-- DELETE TITEMTABLE WHERE @dwCharID = dwOwnerID AND bOwnerType=0 AND wItemID = 7605
SELECT @dwUserID = dwUserID FROM TCHARTABLE WHERE dwCharID = @dwCharID
BEGIN TRAN SAVECHAREND
DELETE TITEMTABLE WHERE dwOwnerID = @dwCharID AND bOwnerType = 0 AND bStorageType <> 2
DELETE TITEMTABLE WHERE dlID IN(SELECT dlID FROM TTEMPITEMTABLE WHERE dwOwnerID = @dwCharID)
INSERT INTO TITEMTABLE(
dlID, bStorageType, dwStorageID, bOwnerType, dwOwnerID, bItemID, wItemID, bLevel, bCount, bGLevel, dwDuraMax, dwDuraCur, bRefineCur,dEndTime,bGradeEffect,
bMagic1, bMagic2, bMagic3, bMagic4, bMagic5, bMagic6,
wValue1, wValue2, wValue3, wValue4, wValue5, wValue6,
dwTime1, dwTime2, dwTime3, dwTime4, dwTime5, dwTime6)
SELECT * FROM TTEMPITEMTABLE WHERE dwOwnerID = @dwCharID
DELETE TSKILLTABLE WHERE dwCharID = @dwCharID
INSERT INTO TSKILLTABLE SELECT * FROM TTEMPSKILLTABLE WHERE dwCharID = @dwCharID
COMMIT TRAN SAVECHAREND
EXEC TGLOBAL_GSP.DBO.TSaveDuringItem @dwUserID
Und die andere (TSaveCharDataEnd):
PHP Code:
ALTER PROCEDURE [dbo].[TSaveCharDataEnd]
@dwCharID INT
AS
DECLARE @dwUserID INT
SELECT @dwUserID = dwUserID FROM TCHARTABLE WHERE dwCharID = @dwCharID
BEGIN TRAN SAVECHAREND
DELETE TINVENTABLE WHERE dwCharID = @dwCharID
DELETE TCABINETTABLE WHERE dwCharID = @dwCharID
DELETE TITEMUSEDTABLE WHERE dwCharID = @dwCharID
DELETE TEXPITEMTABLE WHERE dwCharID = @dwCharID
INSERT INTO TINVENTABLE SELECT * FROM TTEMPINVENTABLE WHERE dwCharID = @dwCharID
INSERT INTO TCABINETTABLE SELECT * FROM TTEMPCABINETTABLE WHERE dwCharID = @dwCharID
INSERT INTO TITEMUSEDTABLE SELECT * FROM TTEMPITEMUSEDTABLE WHERE dwCharID = @dwCharID
INSERT INTO TEXPITEMTABLE SELECT * FROM TTEMPEXPITEMTABLE WHERE dwCharID = @dwCharID
COMMIT TRAN SAVECHAREND
EXEC TGLOBAL_GSP.DBO.TSaveDuringItem @dwUserID
Sollte so passen.
Grezz