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

مشاهدة النسخة كاملة : Silk Per Hour


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
انا قولت عايز اضيف سيستم سيلك كل ساعه يعني السيستم كامل اكيد مش هاخد حاجة واسيب حاجه يعني الكويري يكون فيه الليفل والقيمه والوقت يعني كله سؤال واحد وانا فاهم دا ..

Neoon
15-10-2017, 05:22 PM
طيب فاهم بتسال ليه ؟؟

MazZziKa
15-10-2017, 09:51 PM
بسال ليه السؤال تقصد ؟ بسال علشان عايز اضيفه عندي ...!