المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : اتمنا من الاعصاء او المشرفين هذه الملفات auto equpmient


hellboy72
05-01-2017, 10:08 AM
Auto equpmient لان الموجوده ف قسم الشروحات والبرامج مش شغاله في ملفات ممسوحه
اتمنا ومشكور لليقدر يساعد

Jayden
05-01-2017, 10:34 AM
ده ال Procedure



USE SRO_VT_SHARDLOG
GO
/****** Object: StoredProcedure [dbo].[_AutoEquipt] Script Date: 05/01/2017 09:26:46 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE procedure [dbo].[_AutoEquipt]
@CharID INT,
@data2 INT
AS

DECLARE @Flag INT = 0,
@ID64 INT, @ReFObjID INT
, @ReFItemID INT
, @T1 TINYINT
, @T2 TINYINT
, @T3 TINYINT
, @T4 TINYINT
, @optLvl TINYINT
, @race BIT
, @Gen TINYINT;
SELECT @Gen =
CASE
WHEN RefObjID BETWEEN 1920 AND 1932
THEN 2
WHEN RefObjID <= 1919
THEN 1
WHEN RefObjID BETWEEN 14875 AND 14887
THEN 3
WHEN RefObjID BETWEEN 14888 AND 14900
THEN 4
ELSE 0
END
FROM SRO_VT_SHARD.dbo._Char WITH (NOLOCK)
WHERE CharID = @CharID

SELECT @race =
CASE
WHEN @Gen IN (1,2)
THEN 0
WHEN @Gen IN (3,4)
THEN 1
ELSE NULL
END

IF @race IS NULL
RETURN;

WHILE @Flag <13
BEGIN
SELECT @ID64 = 0, @ReFItemID = 0, @ReFObjID = 0, @T1 = 0, @T2 =0, @T3 = 0, @T4 = 0
IF @Flag != 8
BEGIN
SELECT @ID64 = I.ItemID,
@ReFObjID = IT.RefItemID,
@optLvl = IT.OptLevel
FROM SRO_VT_SHARD.dbo._Inventory I WITH (NOLOCK)
INNER JOIN SRO_VT_SHARD.dbo._Items IT WITH (NOLOCK) ON I.ItemID = IT.ID64
WHERE I.Slot = @Flag
AND I.CharID = @CharID
AND IT.RefItemID NOT IN (62,3655, 3823, 24459, 38345, 10383, 10885,19644, 24460, 38346) -- Arrows & Bolts...

IF @ID64 != 0 AND @ReFObjID IS NOT NULL
BEGIN
SELECT @T1 = TypeID1,@T2 = TypeID2, @T3 = TypeID3, @T4 = TypeID4
FROM SRO_VT_SHARD.dbo._RefObjCommon
WHERE ID = @ReFObjID

SELECT @optLvl =
CASE WHEN @optLvl >= 3
THEN @optLvl
ELSE 3
END

UPDATE SRO_VT_SHARD.dbo._Items
SET RefItemID = Q.ID,
Variance = ISNULL(Q.Va, 0),
MagParam1 = Q.P1,
MagParam2 = Q.P2,
MagParam3 = Q.P3,
MagParam4 = Q.P4,
MagParam5 = Q.P5,
MagParam6 = Q.P6,
MagParam7 = Q.P7,
MagParam8 = Q.P8,
MagParam9 = Q.P9,
MagParamNum = Q.MagParamNum,
OptLevel = @optLvl
FROM (
SELECT TOP 1 ID,
P1,
P2,
P3,
P4,
P5,
P6,
P7,
P8,
P9,
Va,
CASE
WHEN P1 = 0
THEN 0
WHEN P5 = 0
THEN 4
WHEN P6 = 0
THEN 5
WHEN P7 = 0
THEN 6
WHEN P8 = 0
THEN 7
WHEN P9 = 0
THEN 8
ELSE 0
END
AS MagParamNum
FROM SRO_VT_SHARDLOG.dbo._ItemPool P WITH (NOLOCK)
WHERE typeid1 = @T1
AND typeid2 = @T2
AND typeid3 = @T3
AND typeid4 = @T4
AND (Gender = @Gen OR Gender = 0)
AND Race = @race
AND ReqLevel1 <= @data2
ORDER BY reqlevel1 DESC
)
AS Q
WHERE ID64 = @ID64
AND ID64 != 0
AND Q.ID != 0
END
END
SET @Flag += 1
END


وتحط دى فى AddLogChar_
وملحوظة هنا هتغير 88 دى لأخر لفل عايزه يقف عنده انه يديله Items من السيستم على حسب ال cap بتاعتك يعنى
-- AutoEquipment
IF @EventID = '22' and @Data2 > @Data1 and @Data2 between '0' and '88'
BEGIN
EXEC SRO_VT_SHARDLOG.dbo._AutoEquipt @charid,@data2
END


ودى ال Table اللى هتحط فيها ال Items من أول ديجرى 1 لحد أخر ديجرى عايزه يديها لل Player برضو على حسب ال cap بتاعتك

USE SRO_VT_SHARDLOG
GO

/****** Object: Table [dbo].[_ItemPool] Script Date: 05/01/2017 09:31:18 ص ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[_ItemPool](
[service] [int] NOT NULL,
[ID] [int] NOT NULL,
[CodeName128] [varchar](129) NOT NULL,
[TypeID1] [tinyint] NOT NULL,
[TypeID2] [tinyint] NOT NULL,
[TypeID3] [tinyint] NOT NULL,
[TypeID4] [tinyint] NOT NULL,
[ReqLevel1] [tinyint] NOT NULL,
[Gender] [tinyint] NULL,
[P1] [bigint] NULL,
[P2] [bigint] NULL,
[P3] [bigint] NULL,
[P4] [bigint] NULL,
[P5] [bigint] NULL,
[P6] [bigint] NULL,
[P7] [bigint] NULL,
[P8] [bigint] NULL,
[P9] [bigint] NULL,
[MagParamNum] [tinyint] NULL,
[Va] [bigint] NULL,
[Race] [bit] NULL,
CONSTRAINT [PK__ItemPool] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO





اللى فيها بيبقى شبه كده

http://prntscr.com/drpjyn

وده سطر منهم عشان تمشى عليه

1 71 ITEM_CH_SWORD_01_A 3 1 6 2 0 0 85899346013 257698037841 150323855465 12884901894 12884901900 25769803830 25769803836 0 0 7 1524020653 False

hellboy72
05-01-2017, 02:10 PM
شكرا بنسبه لل اتيم ال اضفهاا لازم سطر سطر ولا ممكن تساعد ب الايتم من عندك اضفها؟؟

Dev.Ri3o
05-01-2017, 09:29 PM
شكرا بنسبه لل اتيم ال اضفهاا لازم سطر سطر ولا ممكن تساعد ب الايتم من عندك اضفها؟؟

كل Item هتضفلو سطرين لانك بتحدد ال Gender هتعملها مرة 0 ومرة 1 واحد لل Male و التانى لل Female وهتكتب ال Code بتاع ال Weapon و ال Set و ال Accessory و الارقام بتاعة ال MagParam دى بتاعة ال Blue عشان لو عايز ال Items تجلهم وعليها Blue و ال Required lvl طبعا على حسب كل lvl انت عايزو وهكذا بقى هى سطور كتير بس ال System ده سهل وسلس

hellboy72
06-01-2017, 11:32 PM
كل Item هتضفلو سطرين لانك بتحدد ال Gender هتعملها مرة 0 ومرة 1 واحد لل Male و التانى لل Female وهتكتب ال Code بتاع ال Weapon و ال Set و ال Accessory و الارقام بتاعة ال MagParam دى بتاعة ال Blue عشان لو عايز ال Items تجلهم وعليها Blue و ال Required lvl طبعا على حسب كل lvl انت عايزو وهكذا بقى هى سطور كتير بس ال System ده سهل وسلس

تم الاضافه

بس ف مشكله الاكنت مش بيججليو غير 3 part?>

hellboy72
06-01-2017, 11:38 PM
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddNewChar] Script Date: 06/01/2017 16:08:18 ******/
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, DailyPK,
LastLogout, CurLevel, MaxLevel, RemainGold, RemainStatPoint, RemainSkillPoint, HP, MP, JobLvl_Trader, JobLvl_Hunter, JobLvl_Robber, WorldID, HwanLevel,ExpOffset,uniquepoints,jobkills,pvpkills ,alchemypoints)
VALUES (@RefCharID, @CharName, @CharScale, 119, 119, 26265, 931, -106.762253, 1542, 2095, 69, 90,
GetDate(), 1, 1, 1000000, 0, 0, 200, 200, 1, 1, 1, 1, 0,0,0,0,0,0)

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)


delete from _CHARQUEST where QuestID = 1 and charid=@NewCharID
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 =@NewCharID
exec _ADD_ITEM_EXTERN @charname,ITEM_COS_P_BROWNIE_SCROLL,1,1

IF Not Exists (Select * From [SRO_VT_ACCOUNT].[dbo].[SK_Silk] Where JID = @UserJID)
Begin
Insert Into [SRO_VT_ACCOUNT].[dbo].[SK_Silk] Values (@UserJID,1000000,0,0)
End


-- Quick Slot أپ¤آ؛¸ أ€أ؛أ€أ¥آ؟ë!!!
exec _AddNewClientConfig @NewCharID -- by novice...... for saving client configurations...

COMMIT TRANSACTION

RETURN @NewCharID

ده new char pro.