[Error] creating char error

01/26/2015 07:31 MissinGDeaTh#1
as the title said, when i try to create a char with already used name
it says Valid ID, when u press confirm. it gives this error.


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

tho it said it's a Valid ID.

and i wanted to create a scroll to upgrade Egy A weapon[certain plus] to EGY B +0 weapon is that possible ?
01/26/2015 07:47 ​Exo#2
Well would you mind showing me the result for this?
PHP Code:
 SELECT * FROM _Char 
I think the ID might be registered more than a time.
Option 2: You did something with the AddChar SP
01/26/2015 07:54 MissinGDeaTh#3
Quote:
Originally Posted by xExorcist View Post
Well would you mind showing me the result for this?
PHP Code:
 SELECT * FROM _Char 
I think the ID might be registered more than a time.
Option 2: You did something with the AddChar SP
here's the result of the query u gave me, as u see it's normal :/

PHP Code:
0    0    0    d        1    100    10    100    0    29999    10    1000000000    136    0    0    0    999999    20000    25000    982    -0.421872    140    27754    1    0    0    0    0    0    0    0    1    0    1    0    1    0    NULL    2004-09-30 17:00:00    0    0    0    0    0    0    0    0    1    1    1    0    NULL    NULL    NULL
16364    0    14889    SSSS        51    110    110    4588823338    234    20    20    9997779674679    33355808    0    0    0    1731    1731    25000    982.7346    
-32.60888    1383.416    2094    1    109    0    0    0    0    0    0    1    0    1    0    1    0    1048    2015-01-26 04:05:00    25000    966.2394    -32.60888    1350.247    0    0    0    0    1    1    1    0    NULL    NULL    NULL
16366    0    14875    CHAR    34    1    1    0    0    20    20    5000000    1000000    0    0    0    200    200    27091    1305    376.9541    760    2094    1    109    0    0    0    0    0    0    1    0    1    0    1    0    0    2015
-01-19 01:13:00    0    0    0    0    0    0    0    0    1    1    1    0    NULL    NULL    NULL
16367    0    14891    CHAR1        34    110    110    4588823338    302    130    130    1467799    7775577    330    0    0    20585    20585    24745    53    
-0.935181    1218    2094    0    109    0    0    0    0    0    0    1    0    1    0    1    0    0    2015-01-19 03:47:00    0    0    0    0    27091    1475.027    376.9541    638.1801    1    1    1    52    NULL    NULL    NULL
16368    0    14875    CHAR2        34    110    110    4588823338    169    129    129    5000000    49267851    327    0    0    18132    18132    27091    1369    378.732    620    2094    0    109    0    0    0    0    0    0    1    0    1    0    1    0    0    2015
-01-19 21:49:00    0    0    0    0    27091    1201    376.9542    454    1    1    1    44    NULL    NULL    NULL
16369    0    1908    CHAR3        67    110    110    4588823338    148    129    134    5117450    156226895    322    5    0    13334    13767    24745    501    12.40365    1264    2094    0    109    1    1    429    0    0    0    1    0    1    0    1    0    0    2015
-01-19 03:45:00    0    0    0    0    0    0    0    0    1    1    1    48    NULL    NULL    NULL
16370    0    1928    MissinGDeaTh        51    110    110    4588823338    281    129    129    999999999977999999    1415688    327    5    0    11168    11168    25000    955    
-32.60888    1342    2094    0    109    0    0    0    0    0    0    1    0    1    0    1    0    0    2015-01-26 07:28:00    25000    993.736    -32.60888    1329.864    0    0    0    0    1    1    1    53    NULL    NULL    NULL 
L
01/26/2015 08:11 ​Exo#4
Use a clean database or another _AddNewChar SP
01/26/2015 08:14 MissinGDeaTh#5
Quote:
Originally Posted by xExorcist View Post
Use a clean database or another _AddNewChar SP
okay, i will try that.
what about a scroll to upgrade a EGY A weapon[certain plus] to EGY B weapon +0 is that possible to do ?
01/26/2015 08:29 ​Exo#6
PHP Code:
--Upgrade By #Khaled# --
DECLARE  @WepRefID INT,
         @
ArenaRefID INT,
         @
OptLevel INT,
         @
Data INT,
         @
UP INT,
         @
WepRefID2 INT
         
         
         
         
         SELECT 
@WepRefID = I.RefItemID
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=13
         
         SELECT 
@WepRefID2 = I.ID64
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=13
         
         
         SELECT 
@ArenaRefID = I.RefItemID
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=15
         

         SELECT 
@OptLevel = I.OptLevel
         FROM SRO_VT_SHARD
.._Inventory Inv
         INNER JOIN SRO_VT_SHARD
.._Items I
         ON INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=13
         
         SELECT 
@Data = I.Data
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       Inv
.ItemID = I.ID64
         WHERE CharID 
= @CharID AND Inv.Slot=15
         
         SET 
@UP = (SELECT UP FROM Upgrade Where Req =@WepRefID)

IF 
EXISTS (SELECT * FROM SRO_VT_SHARD..Upgrade WHERE Req =@WepRefID)
BEGIN
If ( @OptLevel =8 And @Gold >=50000000000 AND @ArenaRefID='25834' AND @Data>=100)--Staff
BEGIN
UPDATE _Items SET RefItemID 
= @Up ,OptLevel=0 WHERE ID64=@WepRefID2
UPDATE _Char SET RemainGold 
=RemainGold-50000000000 WHERE CharID=@CharID
UPDATE _Items SET Data 
-= 200 WHERE ID64 = (SELECT ItemID FROM _Inventory WHERE CharID = @CharID and Slot = 15)
END
END 
This might help you it needs a custom table and few modifications to this query. I am selling it so if you can't get this working I can't help you.
01/26/2015 08:35 MissinGDeaTh#7
Quote:
Originally Posted by xExorcist View Post
PHP Code:
--Upgrade By #Khaled# --
DECLARE  @WepRefID INT,
         @
ArenaRefID INT,
         @
OptLevel INT,
         @
Data INT,
         @
UP INT,
         @
WepRefID2 INT
         
         
         
         
         SELECT 
@WepRefID = I.RefItemID
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=13
         
         SELECT 
@WepRefID2 = I.ID64
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=13
         
         
         SELECT 
@ArenaRefID = I.RefItemID
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=15
         

         SELECT 
@OptLevel = I.OptLevel
         FROM SRO_VT_SHARD
.._Inventory Inv
         INNER JOIN SRO_VT_SHARD
.._Items I
         ON INV
.ItemID =I.ID64
         WHERE CharID 
=@CharID AND Inv.Slot=13
         
         SELECT 
@Data = I.Data
         FROM   SRO_VT_SHARD
.._Inventory Inv
         INNER  JOIN SRO_VT_SHARD
.._Items I
         ON       Inv
.ItemID = I.ID64
         WHERE CharID 
= @CharID AND Inv.Slot=15
         
         SET 
@UP = (SELECT UP FROM Upgrade Where Req =@WepRefID)

IF 
EXISTS (SELECT * FROM SRO_VT_SHARD..Upgrade WHERE Req =@WepRefID)
BEGIN
If ( @OptLevel =8 And @Gold >=50000000000 AND @ArenaRefID='25834' AND @Data>=100)--Staff
BEGIN
UPDATE _Items SET RefItemID 
= @Up ,OptLevel=0 WHERE ID64=@WepRefID2
UPDATE _Char SET RemainGold 
=RemainGold-50000000000 WHERE CharID=@CharID
UPDATE _Items SET Data 
-= 200 WHERE ID64 = (SELECT ItemID FROM _Inventory WHERE CharID = @CharID and Slot = 15)
END
END 
This might help you it needs a custom table and few modifications to this query. I am selling it so if you can't get this working I can't help you.

can u send me ur skype then ? if u sell the upgrade scrolls
01/26/2015 08:46 ​Exo#8
Quote:
Originally Posted by MissinGDeaTh View Post
can u send me ur skype then ? if u sell the upgrade scrolls
You could just find it under my name however here is it (attackmee).
01/26/2015 19:37 Dunarsund#9
is the region where this char spawns when created active?
01/26/2015 19:52 MissinGDeaTh#10
Quote:
Originally Posted by Dunarsund View Post
is the region where this char spawns when created active?
ye, this error only when i try to create char with such a name exists.
01/26/2015 20:04 Dunarsund#11
tried cleaning the databases?
01/26/2015 21:02 MissinGDeaTh#12
Quote:
Originally Posted by Dunarsund View Post
tried cleaning the databases?
ye, same problem too ! i guess it's something bout AddNewChar SP but can't find what it is..
01/26/2015 22:36 Snow*#13
Use a clean _AddNewChar SP

Code:
USE [SRO_VT_SHARD]
GO
/****** Object:  StoredProcedure [dbo].[_AddNewChar]    Script Date: 1/26/2015 11:35:53 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




ALTER PROCEDURE [dbo].[_AddNewChar]
	@UserJID			INT,        
	--@CharSlot			INT,        
	@RefCharID			INT,        
	@CharName			varchar (64),        
	@CharScale			tinyINT,        
	@StartRegionID			INT,        
	@StartPos_X			real,        
	@StartPos_Y			real,        
	@StartPos_Z			real,        
	@DefaultTeleport	INT,        
	@RefMailID			INT,        
	@RefPantsID			INT,        
	@RefBootsID			INT,        
	@RefWeaponID		INT,        
	@RefShield			INT,        
	@DurMail			tinyINT,        
	@DurPants			tinyINT,        
	@DurBoots			tinyINT,        
	@DurWeapon			tinyINT,        
	@DurShield			tinyINT,        
	@DefaultArrow		INT        
AS    
    
SET NOCOUNT ON      

	DECLARE @Slot  INT        
	DECLARE @temp  INT        
	        
	DECLARE @NewCharID  INT        
	SET @NewCharID = 0        
       
       
	-----------------------------------------------------------------------------        
	-- 1. 캐릭터 슬롯 넘버가 valid한 것인지, 그리고 빈슬롯이 맞는지 먼저 체크한다.        
	-----------------------------------------------------------------------------        
	     
	-- start by novice.        
	SELECT @temp = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = @UserJID        
	      
	IF (@temp >= 4)        
	BEGIN        
		-- 너무 많자나        
		RETURN -2        
	END        
	-- finish by novice.        
      
	-----------------------------------------------------------------------------        
	-- 2. 캐릭터 추가하기        
	-----------------------------------------------------------------------------        
	IF (@CharScale > 68) -- 0100 0100 --> 68 이다!        
	BEGIN        
		-- 캐릭터 생성 실패! 스케일 값이 이상하다!         
		RETURN -3        
	END
        
	EXEC @temp = _IsExistingCharName @CharName        
	IF (@temp <> 0)        
	BEGIN        
		-- 이미 사용중인 이름이라는데?        
		RETURN -4        
	END        
    
BEGIN TRANSACTION
    
	-- 인던시스템이 적용되면�* 마지막에 WorldID와 1값을 더 넣어 주었다!      
	INSERT INTO _Char (RefObjID, CharName16, Scale, Strength, Intellect, LatestRegion,PosX, PosY, PosZ, AppointedTeleport, InventorySize,      
				LastLogout, CurLevel, MaxLevel, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID)      
	VALUES (@RefCharID, @CharName, @CharScale, 20, 20, @StartRegionID, @StartPos_X, @StartPos_Y, @StartPos_Z, @DefaultTeleport, 45,      
				GetDate(), 1, 1, 0, 0, 0, 200,200, 1, 1, 1, 1)      
    
	SET @NewCharID = @@IDENTITY        
	IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)        
	BEGIN        
		-- 캐릭터 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -5        
	END        
	    
	       
	-- start by novice.        
	-- 이제 Slot 안쓴다.. 그냥 Insert 만..        
	INSERT INTO _User VALUES (@UserJID, @NewCharID)        
	-- finish by novice.        
      
      
	 -----------------------------------------------------------------------------        
	 -- 3-1. 장비 슬롯 채우기        
	 -- [인벤토리 슬롯 96개] + [장비슬롯 13개] <- 인벤토리 확장 �*비스 후 48개에�* 96개로 증가!!!(woos0)
	 -----------------------------------------------------------------------------        
	 --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	 INSERT INTO _Inventory(CharID, Slot, ItemID)        
	  SELECT @NewCharID, cnt, 0        
	   FROM _RefDummySlot with( nolock )       
	    WHERE cnt < 109        

	      
	IF (@@ERROR <> 0)        
	BEGIN        
		-- 인벤토리 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -7         
	END        

	--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	       
	-- 디폴트로 선택한 아이템을 다시 넣어주자...        
	/* 요런 순�*로  정의되어 있다.        
	0: EQUIP_SLOT_HELM        
	1: EQUIP_SLOT_MAIL,        
	2: EQUIP_SLOT_SHOULDERGUARD,        
	3: EQUIP_SLOT_GAUNTLET,        
	4: EQUIP_SLOT_PANTS,        
	5: EQUIP_SLOT_BOOTS,        
	6: EQUIP_SLOT_WEAPON,        
	7: EQUIP_SLOT_SHIELD or ARROW,        
	8: EQUIP_SLOT_EARRING,        
	9: EQUIP_SLOT_NECKLACE,        
	10: EQUIP_SLOT_L_RING,        
	11: EQUIP_SLOT_R_RING,        
	*/        
	       
	DECLARE @ItemID BIGINT        
	SET @ItemID = 0        
	-- 상갑        
	IF (@RefMailID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 1, @RefMailID, @DurMail        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -8        
		END        
	END        
	-- 바지        
	IF (@RefPantsID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 4, @RefPantsID, @DurPants        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -9        
		END        
	END        
	-- Boots        
	IF (@RefBootsID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 5, @RefBootsID, @DurBoots        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -10        
		END        
	END        
	-- Weapon        
	IF (@RefWeaponID <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 6, @RefWeaponID, @DurWeapon        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -11        
		END        
	END        
	-- 방패        
	IF (@RefShield <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @RefShield, @DurShield        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -12        
		END        
	END        
	-- 혹시 default로 선택한 무기가 활이라면 �*살 250개들이 활통도 함께 준다. 죠치?        
	IF (@DefaultArrow <> 0)        
	BEGIN        
		EXEC @ItemID =  _FN_ADD_INITIAL_EQUIP @NewCharID, 7, @DefaultArrow, 250        
		IF (@ItemID <= 0)        
		BEGIN        
			ROLLBACK TRANSACTION        
			RETURN -13        
		END        
	END


	 -----------------------------------------------------------------------------        
	 -- 3-2. 아바타 Inventory 슬롯 채우기        
	 -- [아바타 인벤토리 슬롯 5개]
	 -- APPLY_AVATAR_SYSTEM이 적용되면�* 추가되는 부분
	 -----------------------------------------------------------------------------        
	 --PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	 INSERT INTO _InventoryForAvatar(CharID, Slot, ItemID)        
	  SELECT @NewCharID, cnt, 0
	   FROM _RefDummySlot with( nolock )       
	    WHERE cnt < 5

	      
	IF (@@ERROR <> 0)        
	BEGIN        
		-- 아바타 인벤토리 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -14
	END        
	--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!        
	      
	-----------------------------------------------------------------------------        
	-- default skill넣어주기        
	-----------------------------------------------------------------------------        
	DECLARE @country tinyINT        
	EXEC @country = _GetObjCountry @RefCharID        
	       
	INSERT INTO _CharSkillMastery (CharID, MasteryID, Level)        
	SELECT @NewCharID, MasteryID, 0        
	FROM _RefCharDefault_SkillMastery  with(nolock)      
	WHERE Race = @country or Race = 3        
	IF (@@error <> 0)        
	BEGIN        
		ROLLBACK TRANSACTION        
		RETURN -15        
	END        
	INSERT INTO _CharSkill (CharID,SkillID,Enable)        
	SELECT @NewCharID, SkillID, 1        
	FROM  _RefCharDefault_Skill  with(nolock)      
	WHERE Race = @country or Race = 3        
	IF (@@error <> 0)        
	BEGIN        
		ROLLBACK TRANSACTION        
		RETURN -16        
	END        
	-----------------------------------------------------------------------------        
	-- 기본 퀘스트 넣어주기
	-----------------------------------------------------------------------------        
	INSERT INTO _CharQuest (CharID, QuestID, Status, AchievementCount, StartTime, EndTime, QuestData1, QuestData2)        
	SELECT @NewCharID, ID, 1, 0, getdate(), getdate(), 0, 0        
	FROM _RefQuest
	WHERE CodeName in (SELECT CodeName FROM _RefCharDefault_Quest  with(nolock) WHERE (Race = @country or Race = 3) and RequiredLevel = 1 and Service = 1)
	IF (@@error <> 0)
	BEGIN
		ROLLBACK TRANSACTION        
		RETURN -17        
	END    
	-----------------------------------------------------------------------------        
	-- Static Avatar Initial Record 넣기        
	-----------------------------------------------------------------------------        
	INSERT INTO _StaticAvatar(CharID) values(@NewCharID)        
	IF (@@ERROR <> 0)        
	BEGIN        
		ROLLBACK TRANSACTION        
		RETURN -18        
	END         
	      
	-----------------------------------------------------------------------------        
	-- Trijob 채워넣기!!!!!        
	-----------------------------------------------------------------------------        
	INSERT INTO _CharTrijob VALUES (@NewCharID, 0, 1, 0, 0, 0)        
	IF (@@ERROR <> 0)        
	BEGIN        
		-- 인벤토리 생성 실패!        
		ROLLBACK TRANSACTION        
		RETURN -19        
	END         
	      
	-----------------------------------------------------------------------------        
	-- CharList에 ID 넣어주기        
	-----------------------------------------------------------------------------        
	INSERT _CharNameList VALUES(@CharName, @NewCharID)        
	      
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_E060118_60EXP_HELP',1,1      
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_E060118_100EXP_HELP',1,1      
	exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_SCROLL_RETURN_NEWBIE_01',20,1      
	      
	-- Quick Slot 정보 저장용!!!        
	exec _AddNewClientConfig @NewCharID  -- by novice...... for saving client configurations...        

COMMIT TRANSACTION        
	      
RETURN @NewCharID
Waiting for your feedback
01/27/2015 05:39 ​Exo#14
Maybe your current SP is giving an item that doesn't exist hmm could you try this ^? And tell us if it works?
01/28/2015 10:30 MissinGDeaTh#15
creating char works just fine when i create char with a unique name, BUT the problem start when i try to create a char with such existing name. it says Valid ID and get this ERROR :/