عرض مشاركة واحدة
قديم 22-08-2016, 09:10 PM   #4

ahmedwaill
عضو فعال



الصورة الرمزية ahmedwaill


• الانـتـسـاب » Sep 2010
• رقـم العـضـويـة » 74480
• المشـــاركـات » 204
• الـدولـة » البيت
• الـهـوايـة » Web Development
• اسـم الـسـيـرفـر » Private Server
• الـجـنـس » Male
• نقـاط التقييم » 10
ahmedwaill صـاعـد

ahmedwaill غير متواجد حالياً



افتراضي رد: مشكلة في create char واسامي ال char



استخدم الكويري دي ان شاء الله تشتغل...
كود:
 USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddNewChar] Script Date: 3/25/2015 6:09:14 AM ******/
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, 109, 
GetDate(), 1, 1, 100000, 0, 50000, 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_EVENT_RENT_REVERSE_RETURN_SCROLL', 20000,1 
exec _ADD_ITEM_EXTERN @CharName,'ITEM_MALL_PREMIUM_GLOBAL_GOLDTIME',1,1 
exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_SCROLL_RETURN_03',20,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_ETC_SPEED_UP_BASIC',20,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_COS_P_GHOST_SCROLL',0,0

-- Quick Slot ء¤؛¸ ہْہه؟ë!!! 
exec _AddNewClientConfig @NewCharID -- by novice...... for saving client configurations... 

UPDATE _RefCharDefault_Quest SET Service = 1
delete from _CHARQUEST where QuestID = 1
INSERT INTO _CharQuest (CharID, QuestID, Status,AchievementCount,StartTime,EndTime,QuestDat a1,QuestData2) SELECT CharID, 1,5,0, '2012-04-13 20:44:00','2012-04-13 20:44:00',31458135,0 FROM _CHAR where CharID > 0 

COMMIT TRANSACTION 

RETURN @NewCharID
منقول