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

مشاهدة النسخة كاملة : [StoredTitlenames System [iLegend Multi Tool


Dev.LumiusCux
20-03-2018, 05:35 PM
سلام عليكم و انا قاعد فاضي قلت اتعلم اعمل سيتمات و جتلي فكره سيستم قلت اعملها ممكن تفيد حد و معرفش اتعملت قبل كده ولا لا فكره السيستم ان بخزن كل Titlanames ال بلاير اخدها بمعني انه لو كان معاه تيتل اسمه Knight و بعد كده غيره خلاه مثلا Baron هيتخزن في تابل ال Titles دي و يقدر يرجع منهم اي تيتل هو عاوزه بعد كده بدل ما يشتري تايتل او يعمل Quest من غير ما اطول عليكم

هتعمل Execute للكويري دي عتكريت تابل طبعا شوف عاوز تخلي ال Table يتعمل في انه Data انا عامله عندي في داتا اسمها vSrodatabas لما تغير اسم الداتا هتغير برضو في query اسم الداتا

USE [vSrodatabase]
GO

/****** Object: Table [dbo].[_StoredTitleNames] Script Date: 3/20/2018 6:01:16 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[_StoredTitleNames](
[CharID] [int] NOT NULL,
[Charname] [varchar](65) NOT NULL,
[TitleNo] [tinyint] NOT NULL,
[TitleName] [varchar](65) NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO


بعد كده هتعمل Trigger ده في داتا iLegend Multi tool

Create Trigger CheckPMTitleList
on [dbo].[_IncomingPrivateChat]
after insert
as begin

Declare @Charname varchar(65),@Chat varchar(65),@ID int

if update(Chat)
begin
set @Charname = (Select CharID = i.CharName from inserted i);
set @Chat = (Select Chat from [dbo].[_IncomingPrivateChat] where CharName = @Charname);


end


if(@Chat = 'List my titles')
begin
DEclare @AllTItles varchar(max)
Select @AllTItles = TitleName from vSroDatabases.._StoredTitleNames where Charname = @Charname

Insert Into _SendPrivateChat Values (1,@Charname,@AllTItles,Getdate())

end
end

بعد كده تعمل Trigger ده في داتا SRO_VT_SHARD

use SRO_VT_SHARD
Go

alter Trigger getUpdatedTitles
on [dbo].[_Char]
after Update
as begin
Declare @Charname varchar(65),@Chat varchar(65),@Charid int,@HwanID int


if update(HwanLevel)
begin
set @Charid = (Select CharID = i.CharID from inserted i);
set @Charname = (Select CharName16 from _Char where CharID = @Charid);
set @HwanID = (Select HwanLevel from _Char where CharID = @Charid);

end


if(@HwanID between 0 and 20)
begin
if (@HwanID NOT IN (select TitleNo from vSroDatabases.._StoredTitleNames where CharID = @Charid))
begin
insert into vSroDatabases.._StoredTitleNames(CharID,Charname,T itleNo,TitleName) Values(@Charid,@Charname,@HwanID,'Breakers')
end
end
end

بعد كده هتعمل Trigger ده هيعمل Check لو User عاوز يجيب Title هو اختاره
ال player هيبعت رساله فيها
Update Title,@titlename here
@titlename ال هو اختاره

Use MultiTool
Go

Create Trigger CheckPMTitlename
on [dbo].[_IncomingPrivateChat]
after insert
as begin

Declare @Charname varchar(65),@Chat varchar(65),@ID int

if update(Chat)
begin
set @Charname = (Select CharID = i.CharName from inserted i);
set @Chat = (Select Chat from [dbo].[_IncomingPrivateChat] where CharName = @Charname);


end


if(@Chat LIKE 'Update Title')
begin
Declare @Titlename varchar(65)
set @Titlename = (SELECT SUBSTRING(@Chat, CHARINDEX(',', @Chat) + 1, 100))

if exists(select Charname from vSroDatabases.._StoredTitleNames where Charname = @Charname)
begin

update SRO_VT_SHARD.._Char
set HwanLevel = @Titlename
where CharName16 = @Charname
end

end
end

طبعا لو في اي Performance احسن او اي حاجه ياريت تقولو عشان زي ما قلت لسه بتعلم

™ EgY_KhaN ™
23-03-2018, 05:48 PM
تم الموافقة لكن كل دي تريجرات !!!! كتير شوية يوفكرة التريجر نفسها مش حلوة نهائي

Dev.LumiusCux
23-03-2018, 06:57 PM
تم الموافقة لكن كل دي تريجرات !!!! كتير شوية يوفكرة التريجر نفسها مش حلوة نهائي

عارف طبعا بس انا معرفش ادااء احسن من كده او فكره احسن من كده لو تعرف قولي

DraCula1337
27-06-2018, 08:25 AM
عاش تسلم ايدك :punk:

keep93
28-06-2018, 05:38 AM
تسلم ايدك انا كانت شغل علي نفس الفكره
و لو في حاجه اقضدر اسعد في حاجه

انا معاك