Dupe Fix Char Overwrite

09/25/2013 20:22 Pumaaa#1
1337 Haxx0rZ on the run.


[Only registered and activated users can see links. Click Here To Register...]


DB > CHARACTER_STR

Finden:
PHP Code:
IF @iGu 'I1' -- 초기 정보 입력
    
BEGIN
    
IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
          WHERE  lower
(m_szName) = lower(@im_szName) AND serverindex = @iserverindex)
        
BEGIN
            SELECT  fError 
'0'fText '캐릭터 중복!' 
            
RETURN
        
END
    
ELSE 
Ersetzen mit:

PHP Code:
IF @iGu 'I1'
    
BEGIN
    
IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
          WHERE 
(( lower(m_szName) = lower(@im_szName) ) OR (playerslot = @iPlayerslot AND account = @iaccount  ) ) AND isblock 'F' AND serverindex = @iserverindex )
        
BEGIN
            SELECT  fError 
'0'fText 'Error 1!' 
            
RETURN
        
END
    
ELSE 
09/25/2013 20:35 Sedrika#2
Ist das dein ernst?
Das einzige was du hier gemacht hast ist die Abfrage leicht abändern mit dem selben Sinn wie das, was ich bereits gepostet habe.

[Only registered and activated users can see links. Click Here To Register...]
09/25/2013 20:39 Pumaaa#3
Quote:
Originally Posted by Sago​ View Post
Ist das dein ernst?
Das einzige was du hier gemacht hast ist die Abfrage leicht abändern mit dem selben Sinn wie das, was ich bereits gepostet habe.

[Only registered and activated users can see links. Click Here To Register...]
Deinen Fix habe ich wohl übersehen.

Das Ding steht schon ewig so bei mir in der DB drinne.

Man merke an ohne die lower() weil die für mich uninteressant sind.
09/25/2013 20:42 Sedrika#4
Ob lower oder nicht spielt keine Rolle. Es wird beim Text nicht auf Case Sensitive geachtet.

[Only registered and activated users can see links. Click Here To Register...]
09/25/2013 20:50 Pumaaa#5
Nur wenn die Collation nicht Case Sensitive ist.
09/25/2013 21:02 Sedrika#6
Quote:
Originally Posted by Pumaaa View Post
Nur wenn die Collation nicht Case Sensitive ist.
Eigendlich schon, allerdings ist die Collate von der Character tabelle Latin1_General_CI_AS und damit Insensitive.
09/25/2013 21:02 NativeGermany#7
was ist diese Char Overwrite? habe es bei mir eingefügt aber as bringt es XD
09/25/2013 21:05 Sedrika#8
Quote:
Originally Posted by NativeGermany View Post
was ist diese Char Overwrite? habe es bei mir eingefügt aber as bringt es XD
Damit kann man keinen char auf einen bereits existierenden character erstellen, welches zum Dupen genutzt werden kann.
09/25/2013 21:07 NativeGermany#9
also z.B. das mein char Native heißt und ich ihn auswähle und auf Neu Drücke? oder wie meist du das?
09/25/2013 21:13 Sedrika#10
Nein, eher durch absenden falscher Informationen.
09/25/2013 22:48 Roxez#11
Auch wenn der Fix schon released wurde, trotzdem danke an Pumaaa. Dadurch weiß ich jetzt erst das es einen solchen Bug gibt. Danke nochmal!
09/26/2013 16:18 ZeroTwo02#12
Others Fix :

Code:
IF @iGu = 'I1' -- ?? ?? ??
	BEGIN
            if exists(select playerslot from CHARACTER_TBL where account = @iaccount and playerslot = 0 and isblock = 'F')
			if exists(select playerslot from CHARACTER_TBL where account = @iaccount and playerslot = 1 and isblock = 'F')
			if exists(select playerslot from CHARACTER_TBL where account = @iaccount and playerslot = 2 and isblock = 'F')
  begin
   select fError = '0', fText = 'Slot belegt!'
   return
  end
  
 declare @i1_cnt int  
 select @i1_cnt = count(*) from CHARACTER_TBL where account = @iaccount and isblock = 'F'  
 if @i1_cnt > 2  
 begin  
  SELECT  fError = '0', fText = 'Too many chars!'   
  RETURN  
 end
 
	IF EXISTS(SELECT m_szName FROM CHARACTER_TBL
		  WHERE  lower(m_szName) = lower(@im_szName) AND serverindex = @iserverindex)
		BEGIN
			SELECT  fError = '0', fText = '??? ??!' 
			RETURN
		END
	ELSE