Mando1995 |
10-10-2015 01:25 AM |
رد: بعض المشاكل
أولاً ممكـن حضـرتـكـ تعمـل مـوضـوعـكـ يبقـى مختـص بـ مشكلـة واحـدة فقـط
عشـان تقـدر تحلهـا والنـاس تفكـرلك فـ الحـل بدل مـا أي حـد يكـون عـارف الحـل ...
ومـن كتـر الأسئلـة بتـاعتـك يكسـل يقـولـك على حـل مـن المشـاكـل دي كلهـا ..
فـ مـ، الأفضـل أنكـ.. تعمـل لكـل مشكلـة مـوضـوع ومـا يخلـص ..
تقـدر تعمـل غيـرة عشـان تحـل حاجـة حـاجـة عشـان متتعكـش المشـاكـل وتمــللللل :secret:
ثـانيـاً ..
حـل مشكلـة : 4- عايز اخلى البلصات فى الجيمم بدل ما هيا +8 إلى +12 :hammer:
أنـك تفتـح الـ SQL عادي وتختـار + SRO_VT_SHARD - بعد كـدة ~ +- Programmability بعد كـدة
Stored Procedures - بعد كـدة أختـار _AddNewChar كليك يمين عليها وأختار Modify وبعـديـن
هتفتحلـك قايمـة ..
أعمل سيليكـت ليهـا وأمسحهـا وحـوت الكـود دا بدالهـا
كود PHP:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddNewChar] Script Date: 08/10/2015 12:11:58 ص ******/
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. ?³¸¯?? ½½·O ³?¹?°? validC? °?AI??, ±×¸®°? ??½½·OA? ¸A´A?? ¸?A? ?¼?©C?´U.
-----------------------------------------------------------------------------
-- start by novice.
SELECT @temp = count(CharID) FROM _User WITH (NOLOCK) WHERE UserJID = @UserJID
IF (@temp >= 4)
BEGIN
-- ³E¹« ¸¹A?³?
RETURN -2
END
-- finish by novice.
-----------------------------------------------------------------------------
-- 2. ?³¸¯?? ??°?CI±â
-----------------------------------------------------------------------------
IF (@CharScale > 68) -- 0100 0100 --> 68 A?´U!
BEGIN
-- ?³¸¯?? »?¼? ½C??! ½??EAI °?A? A?»?CI´U!
RETURN -3
END
EXEC @temp = _IsExistingCharName @CharName
IF (@temp <> 0)
BEGIN
-- A?¹? »ç?ë??AI A?¸§A?¶?´Aµ¥?
RETURN -4
END
BEGIN TRANSACTION
-- AI´?½?½??UA? Aû?ëµC¸é¼* ¸¶??¸·?? WorldID?? 1°?A» ´? ³?¾î ??¾?´U!
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, 24252, 589, -14.655776, 468, 2094, 109,
GetDate(), 1, 1, 0, 0,0, 200,200, 1, 1, 1, 1)
SET @NewCharID = @@IDENTITY
IF (@@ERROR <> 0 OR @@ROWCOUNT = 0)
BEGIN
-- ?³¸¯?? »?¼? ½C??!
ROLLBACK TRANSACTION
RETURN -5
END
-- start by novice.
-- A??¦ Slot ¾E¾´´U.. ±×³E Insert ¸¸..
INSERT INTO _User VALUES (@UserJID, @NewCharID)
-- finish by novice.
-----------------------------------------------------------------------------
-- 3-1. A??? ½½·O ?¤??±â
-- [AI?¥??¸® ½½·O 96°³] + [A???½½·O 13°³] <- AI?¥??¸® E®A? ¼*??½? E? 48°³??¼* 96°³·I ??°?!!!(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
-- AI?¥??¸® »?¼? ½C??!
ROLLBACK TRANSACTION
RETURN -7
END
--PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!PATCH WARNING!!!
-- µ????®·I ¼±??C? ¾?A??UA» ´U½? ³?¾î??A?...
/* ??·± ¼?¼*·I ?¤ACµC¾î A?´U.
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
-- ¹U??
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
-- E¤½? default·I ¼±??C? ¹«±â°? E°A?¶?¸é E*»? 250°³µéA? E°?ëµµ CO²² ??´U. ?????
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. ¾?¹U?¸ Inventory ½½·O ?¤??±â
-- [¾?¹U?¸ AI?¥??¸® ½½·O 5°³]
-- APPLY_AVATAR_SYSTEMA? Aû?ëµC¸é¼* ??°?µC´A ?I??
-----------------------------------------------------------------------------
--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
-- ¾?¹U?¸ AI?¥??¸® »?¼? ½C??!
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
-- AI?¥??¸® »?¼? ½C??!
ROLLBACK TRANSACTION
RETURN -19
END
-----------------------------------------------------------------------------
-- CharList?? ID ³?¾î??±â
-----------------------------------------------------------------------------
INSERT _CharNameList VALUES(@CharName, @NewCharID)
if (@RefCharID >= 1907 and @RefCharID <= 1919)
BEGIN
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_COS_C_PEGASUS_SCROLL',5,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_HP_SUPERSET_5_BAG',8000,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_MP_SUPERSET_5_BAG',8000,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_ARCHEMY_POTION_SPEED_11',10,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_CH_SPEAR_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_CH_BLADE_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_CH_TBLADE_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_CH_BOW_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_CH_SWORD_14_B_RARE',1,12
END
else if (@RefCharID >= 14875 and @RefCharID <= 14887)
BEGIN
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_COS_C_PEGASUS_SCROLL',5,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_HP_SUPERSET_5_BAG',8000,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_MP_SUPERSET_5_BAG',8000,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EVENT_ARCHEMY_POTION_SPEED_11',10,1
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_DAGGER_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_TSWORD_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_SWORD_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_TSTAFF_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_STAFF_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_AXE_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_CROSSBOW_14_B_RARE',1,12
exec _ADD_ITEM_EXTERN @CharName,'ITEM_EU_DARKSTAFF_14_B_RARE',1,12
END
else
BEGIN
return -999
END
-- Quick Slot ?¤?¸ A?A??ë!!!
exec _AddNewClientConfig @NewCharID -- by novice...... for saving client configurations...
COMMIT TRANSACTION
RETURN @NewCharID
وبكـدة يبقـى +12 كله :nosweat:
أرجــو قبـول مـروي :mf_bluesbrother:
ملحـوظـة الـى أنـا قـولتـك علية دا كلة عشـان تتعلـم أزاي تغيـر فيهـا بعـد كـدة لكـن أنتـا ممكـن تستخـدم الكـود دا
زي الكيـوري عـادي وهيضـاف بـرده شكـــراً
|