MazZziKa
15-10-2017, 02:46 PM
لو سمحت عايز اضيف سيلك كل ساعه لاني معنديش فيلتر يعمل كدا لو لو ممكن حد يعمل معايا واجب ويريحني من دا كله ويجيبلي فلتر اقدر اتحكم بيه كدا بس يكون سهل ونبي ويبقى خدمني بالله عليكوا
Neoon
15-10-2017, 02:54 PM
إتفضل هنا (http://silkroad4arab.com/vb/showthread.php?t=461170)
MazZziKa
15-10-2017, 02:58 PM
تمام الله يباركلك بس ممكن لو سمحت تقولي انهى كويري فيهم الى اظبط منه الليفيل الى هيجيله ويجيله قد ايه ؟
Neoon
15-10-2017, 03:09 PM
كل اللى هتعملو انك هتعمل نظام Silk Per Hour عادى خالص
وتحط دى مكان addlogchar يتاعت Silk Per Hour System
الليفل هوا اللى بالون الاحمر علشان لو حبيت تغيروه
IF (@CharID IN (select charid from SRO_VT_SHARD.dbo._User with (nolock) where UserJID in (select JID from SRO_VT_ACCOUNT.dbo.TB_User with (nolock) where sec_content = 3))
and exists (Select * from SRO_VT_SHARD.dbo._Char where CurLevel = '120' and CharID = @charid)
and not exists (SELECT CharID FROM _OnlineOffline WHERE CharID = @CharID) )
BEGIN
INSERT INTO _OnlineOffline (CharID, Charname, [Status], [Date], [Minutes], [tMinutes], eSilk, mOnline, [Silk/Hour], [stillOnline@])
VALUES (
@CharID,
(SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WHERE CharID = @CharID),
'OnHold',
GETDATE(),
0,0,0,
NULL,(SELECT DefaultSilk FROM [_Silk/Hour-Config] WHERE [Desc] like 'Rates'),
NULL
);
END
IF (@EventID = 4 OR @EventID = 6)
BEGIN
IF (@EventID = 6 AND ((SELECT [Status] FROM _OnlineOffline WHERE CharID = @CharID) like 'OnHold'))
BEGIN
UPDATE _OnlineOffline
SET [Status] = 'Offline'
WHERE CharID = @CharID
END
IF (@EventID = 6 AND ((SELECT [Status] FROM _OnlineOffline WHERE CharID = @CharID) like 'Online'))
BEGIN
UPDATE _OnlineOffline
SET
[Status] = 'Offline',
[Minutes] = [Minutes] + (DATEDIFF(MINUTE,[stillOnline@],GETDATE())),
[tMinutes] = [tMinutes] + (DATEDIFF(MINUTE,[stillOnline@],GETDATE())),
[mOnline] = NULL,
[stillOnline@] = NULL
WHERE CharID = @CharID
END
IF (@EventID = 4)
BEGIN
UPDATE _OnlineOffline
SET
[Status] = 'Online',
[Date] = GETDATE(),
[stillOnline@] = GETDATE()
WHERE CharID = @CharID
END
END
UPDATE _OnlineOffline
SET
[mOnline] = CAST((DATEDIFF(MINUTE,[Date],GETDATE()))as varchar(max)) + ' minute(s) Online',
[Minutes] = [Minutes] + (DATEDIFF(MINUTE,[stillOnline@],GETDATE())),
[tMinutes] = [tMinutes] + (DATEDIFF(MINUTE,[stillOnline@],GETDATE())),
[stillOnline@] = GETDATE()
WHERE [Status] like 'Online'
/*Silk/Hour basic calc*/
IF ((SELECT [tMinutes] from _OnlineOffline WHERE CharID = @CharID) >= (SELECT [Step1Silk] FROM [_Silk/Hour-Config] WHERE [Desc] like 'Requirements'))
BEGIN
Declare @sph int;
exec @sph = [_GetSilkperHour] @CharID
UPDATE _OnlineOffline SET [Silk/Hour] = @sph WHERE CharID = @CharID
END
/*!Silk/Hour basic calc*/
IF (((SELECT NextDate FROM [_RandomPlayer&Date] WHERE [Desc] like 'Next') IS NULL))
BEGIN
DECLARE @FirstDate datetime, @Today datetime = GETDATE(), @FirstCharID int;
exec @FirstCharID = SRO_VT_SHARD.dbo._RandomPlayerID
exec SRO_VT_SHARD.dbo._GetRandomTime @Today, @FirstDate OUTPUT
UPDATE [_RandomPlayer&Date]
SET
NextDate = @FirstDate,
RefreshedDate = GETDATE(),
CharID = @FirstCharID,
Charname = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WHERE CharID = @FirstCharID)
WHERE [Desc] like 'Next';
END
IF ((SELECT NextDate FROM [_RandomPlayer&Date] WHERE [Desc] like 'Next') <= GETDATE())
BEGIN
UPDATE _OnlineOffline
SET [Silk/Hour] = (SELECT RewardSilk FROM [_Silk/Hour-Config] WHERE [Desc] like 'Rates')
WHERE CharID = (SELECT CharID FROM [_RandomPlayer&Date] WHERE [Desc] like 'Next');
Declare
@CurSilkperHour int,
@OldCharID int = (SELECT CharID FROM [_RandomPlayer&Date] WHERE [Desc] like 'Current');
IF (@OldCharID IS NOT NULL)
BEGIN
exec @CurSilkperHour = _GetSilkperHour @OldCharID
UPDATE _OnlineOffline
SET [Silk/Hour] = @CurSilkperHour
WHERE CharID = @OldCharID;
END
UPDATE [_RandomPlayer&Date]
SET
NextDate = NULL,
RefreshedDate = GETDATE(),
CharID = (SELECT CharID FROM [_RandomPlayer&Date] WHERE [Desc] like 'Next'),
Charname = (SELECT Charname FROM [_RandomPlayer&Date] WHERE [Desc] like 'Next')
WHERE [Desc] like 'Current'
/*new Random Time of Today+1*/
DECLARE @NextDate datetime, @Tomorrow datetime = GETDATE()+1, @NewCharID int;
exec @NewCharID = SRO_VT_SHARD.dbo._RandomPlayerID
exec SRO_VT_SHARD.dbo._GetRandomTime @Tomorrow, @NextDate OUTPUT
UPDATE [_RandomPlayer&Date]
SET
NextDate = @NextDate,
RefreshedDate = GETDATE(),
CharID = @NewCharID,
Charname = (SELECT CharName16 FROM SRO_VT_SHARD.dbo._Char WHERE CharID = @NewCharID)
WHERE [Desc] like 'Next'
/*!new Random...*/
END
/*Calculation of the silk amount*/
Declare @tMinutes bigint = (SELECT [Minutes] from _OnlineOffline WHERE CharID = @CharID), @Silk int;
IF (@tMinutes >= 60)
BEGIN
SET @Silk = CAST(((SELECT [Minutes] FROM _OnlineOffline WHERE CharID = @CharID) / 60) as int)
UPDATE _OnlineOffline
SET [Minutes] = [Minutes] % 60
WHERE CharID = @CharID
IF exists (SELECT [WEEKDAYS] FROM [_Silk/Hour-Config] WHERE [WEEKDAYS] like DATENAME(WEEKDAY, GETDATE()))
BEGIN
UPDATE _OnlineOffline
SET [eSilk] = [eSilk] + (@Silk*[Silk/Hour])
WHERE CharID = @CharID
exec SRO_VT_ACCOUNT.dbo._extraSilk @CharID, @Silk
END
END
MazZziKa
15-10-2017, 03:27 PM
حضرتك انا مش شايف الليفيل خالص كله online w offline w onhold لكن مش شايف ليفيل احطه مكانه او الوقت ممكن تحددلي بظبط فين بسكرين وتعلم عليها لو مش هتعبك
Neoon
15-10-2017, 03:33 PM
تاني سطر
http://mrkzgulfup.com/do.php?img=45481
MazZziKa
15-10-2017, 04:27 PM
تمام اوى الله ينور طيب والوقت ممكن تعلملي عليه هو كمان عشان بس معملش حاجة غلط
Neoon
15-10-2017, 04:36 PM
الوقت مفيهوش تعديل..
بس جرب تعملها من الاول تاني من هنا (http://www.silkroad4arab.com/vb/showthread.php?t=461170)تمشي ورا كل بروسيدر وتعدل عليها بنفسك عشان مش هتلاقي شرح بانك تخليها 5 او 2
يعني مثلاً دي كويري كل ساعة 5 Silk
use SRO_VT_LOG
UPDATE dbo.[_Silk/Hour-Config] SET
DefaultSilk = 5,
RewardSilk = 5
UPDATE dbo._OnlineOffline SET
[Silk/Hour] = 5
بس معتقدش ان ال System اللي انت عاوزه هينجح معاك انت كدة عاوز تعمل Silk Per 2x Hours يعني 0.5 Silk Per Hour مش عارف هتنجح معاك ولا لأ
MazZziKa
15-10-2017, 05:07 PM
اممم يعني مفيش حل غير فيلتر علشان اقدر اظبطها يجيلى قد ايه كل ساعه
Neoon
15-10-2017, 05:17 PM
انت يا باشا لو تحدد سؤالك بس.. :angry:
انت فوق قايلي عاوز تغير عدد الساعات الي بيجي فيها السيلك
ودلوقت بتقول عايز تغير عدد السيك في الساعة :hammer:
وبعدين الحل معاك فوق لو انت قصدك تغير قيمة السيلك في الساعة.
وعلى فكرة ممنوع اكتر من سؤال في نفس الموضوع طلاما طلبك الاساسى تم اجابته :jumpon:
17-فى حالة قمت بحل مشكلتك و ظهرت مشكلة أخرى لا تطلب المساعدة في نفس الموضوع بل قم بعمل موضوع جديد به المشكلة الجديدة
MazZziKa
15-10-2017, 05:19 PM
انا قولت عايز اضيف سيستم سيلك كل ساعه يعني السيستم كامل اكيد مش هاخد حاجة واسيب حاجه يعني الكويري يكون فيه الليفل والقيمه والوقت يعني كله سؤال واحد وانا فاهم دا ..
MazZziKa
15-10-2017, 09:51 PM
بسال ليه السؤال تقصد ؟ بسال علشان عايز اضيفه عندي ...!