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

مشاهدة النسخة كاملة : Silk/Gold Per Level System Working 100%


Black Shield
14-03-2016, 07:46 PM
http://store2.up-00.com/2015-07/1437915467981.png



ازيكم يا رجالة
انا جايب لكم System مش عارف اذا كان اتعمل قبل كده ولا لا
بس انا دورت علية قبل ما اعمل الموضوع ملقتهوش
قولت اعمل بيه موضوع يمكن يفيد حد

http://i.imgur.com/bWvpBly.png


Silk Per Level System

هانعمل Create للـ tables ديه
USE [SRO_VT_SHARDLOG]
GO

/****** Object: Table [dbo].[_SilkPerLvl] Script Date: 14/03/2016 06:28:15 م ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[_SilkPerLvl](
[Charid] [int] NULL,
[Level] [int] NULL,
[Date] [date] NULL
) ON [PRIMARY]

GO



USE [SRO_VT_SHARDLOG]
GO

/****** Object: Table [dbo].[SilkPerLvl_AntiCheat] Script Date: 14/03/2016 06:29:46 م ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[SilkPerLvl_AntiCheat](
[Charname] [varchar](max) NULL,
[Jid] [int] NULL,
[Level] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO




هانضيف الجزء ده في _AddLogChar

--------------------------------------------- Black Shield -----------------------------------------------
---------------------------------------- [Silk Per Level System] -----------------------------------------
----------------------------------------------- S T A R T ------------------------------------------------
DECLARE @charname varchar(max) = ( select charname16 from sro_vt_shard.._char where charid = @charid )
DECLARE @jid int = (select UserJID from SRO_VT_SHARD.._User where CharID = @CharID)
if (@eventid = 22 and not exists ( select * from SRO_VT_SHARDLOG.._silkperlvl where charid = @charid and [level]=@data2 ))
BEGIN
update SRO_VT_ACCOUNT..SK_Silk set silk_own = silk_own +@Data2 where JID = @jid
insert into SRO_VT_SHARDLOG.._silkperLvl values (@CharID,@data2,getdate())
if exists ( select * from SRO_VT_SHARDLOG..silkperlvl_anticheat where jid=@jid and [level]=@data2 )
BEGIN
update SRO_VT_ACCOUNT..SK_Silk set silk_own = silk_own-@Data2 where JID = @jid
END
insert into SRO_VT_SHARDLOG..SilkPerLvl_AntiCheat values (@charname,@jid,@data2)
END
------------------------------------------------- E n d --------------------------------------------------


http://i.imgur.com/bWvpBly.png



Gold Per Level System

هانعمل Create للـ table ده
USE [SRO_VT_SHARDLOG]
GO

/****** Object: Table [dbo].[_GoldPerLvl] Script Date: 14/03/2016 06:42:10 م ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[_GoldPerLvl](
[Charid] [int] NULL,
[Level] [int] NULL,
[Date] [date] NULL
) ON [PRIMARY]

GO




هانضيف الجزء ده في _AddLogChar

--------------------------------------------- Black Shield -----------------------------------------------
---------------------------------------- [Gold Per Level System] -----------------------------------------
----------------------------------------------- S T A R T ------------------------------------------------
DECLARE @charname varchar(max) = ( select charname16 from sro_vt_shard.._char where charid = @charid )
DECLARE @jid int = (select UserJID from SRO_VT_SHARD.._User where CharID = @CharID)
if (@eventid = 22 and not exists ( select * from SRO_VT_SHARDLOG.._goldperlvl where charid = @charid and [level]=@data2 ))
BEGIN
update SRO_VT_SHARD.._Char set RemainGold = RemainGold+@Data2*100000 where charid = @CharID
insert into SRO_VT_SHARDLOG.._goldperLvl values (@CharID,@data2,getdate())
END
------------------------------------------------- E n d --------------------------------------------------


http://i.imgur.com/bWvpBly.png


## FQA ##

هي نسبة الsilk & gold اغيرها منين ؟


بالنسبه للـSilk هي معادلة تقدر تغيرها حسب ما انت عاوز
انا عاملها تضيف قيمة الـ Level الي انت فيه يعني دلوقتي انت Level 1 معاك 0 Silk
بقيت Level 2 الـSystem هايضيف القيمة الي هي 2 + قيمة الـSilk الي هي 0 = 2 سيلك
بقيت Level 3 الـSystem هايضيف القيمة الي هي 3 + قيمة الـSilk الي هي 2 = 5 سيلك

ممكن تغيرها حسب ما انت عاوز و ممكن تعمل جدول بالقيم الي انت عاوزها لكل Level
update SRO_VT_ACCOUNT..SK_Silk set silk_own = silk_own +@Data2 where JID = @jid

بالنسبة للـGold

update SRO_VT_SHARD.._Char set RemainGold = RemainGold+@Data2*100000 where charid = @CharID

نفس الفكرة بس انا ضايف في المعادلة انه يضرب قيمة الـ Level في 10000

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




http://i.imgur.com/bWvpBly.png

لو عــجـبــكـمـ الــمـوضــوع أرجــو الـتــقــيـم http://www.silkroad4arab.com/vb/3eed2012/buttons/reputation.gif http://www.silkroad4arab.com/vb/Silkroad4Arab2013/buttons/reputation.gif
جميعـ الحقوقـ محفوظه
All Rights Reserved®2011~2016
http://www14.0zz0.com/2013/08/04/16/684670676.png
http://www14.0zz0.com/2013/08/04/16/754915422.png
http://img5.imageshack.us/img5/3968/enjoyf.png
http://im25.gulfup.com/2012-07-05/1341435897929.png

Hamza FiGo
14-03-2016, 11:18 PM
تحياتي الحارة

Black Shield
14-03-2016, 11:28 PM
تحياتي الحارة

تسلم

elbattawy1st
15-03-2016, 12:11 AM
شغل عالي اوي استمر :wave:

Ahmed Seliem
15-03-2016, 12:17 AM
تمام ، الله ينور :)
حبيت اشارك بنسخة متطورة شوية من الكويري
استخمت الـ JOIN عشان يلم الموضوع كله في select واحد و يزود الـ performance
و ضفت جزء الـ anticheat مع اول if ، كدا افضل من انك تضيف السيلك و تمسحه بعدين
استخدمت procedure CGI_WebPurchaseSilk لانه بينزل السيلك من غير متحتاج teleport

---------------------------------------- [Silk Per Level System] -----------------------------------------
----------------------------------------------- S T A R T ------------------------------------------------
DECLARE @charname varchar(max), @jid INT, @UserName varchar(max)
SELECT @charname=C.CharName16,@jid=U.UserJID,@UserName=TU .StrUserID FROM SRO_VT_SHARD.._Char C INNER JOIN SRO_VT_SHARD.._User U ON C.CharID=U.CharID INNER JOIN SRO_VT_ACCOUNT..TB_User TU ON U.UserJID=TU.JID WHERE C.CharID=@CharID
if ((@eventid = 22) and (not exists ( select * from SRO_VT_SHARDLOG.._silkperlvl where charid = @charid and [level]=@data2 )) and (not exists ( select * from SRO_VT_SHARDLOG..silkperlvl_anticheat where jid=@jid and [level]=@data2 )))
BEGIN
EXEC SRO_VT_ACCOUNT.CGI.CGI_WebPurchaseSilk null,@UserName,null,@Data2,null
insert into SRO_VT_SHARDLOG.._silkperLvl values (@CharID,@data2,getdate())
insert into SRO_VT_SHARDLOG..SilkPerLvl_AntiCheat values (@charname,@jid,@data2)
END
------------------------------------------------- E n d --------------------------------------------------

في الكويري ده لميت الموضوع في Select واحد
و ضفت الجولد بـ += بدل remaingold+@data ، هي مش فارقة كتير. بس اريحلك و انت بتكتب الكويري و اوضح و انت بتقراه

---------------------------------------- [Gold Per Level System] -----------------------------------------
----------------------------------------------- S T A R T ------------------------------------------------
DECLARE @charname varchar(max), @jid int
SELECT @charname=C.CharName16,@jid=U.UserJID FROM SRO_VT_SHARD.._Char C INNER JOIN SRO_VT_SHARD.._User U ON C.CharID=U.CharID WHERE C.CharID=@CharID
if (@eventid = 22 and not exists ( select * from SRO_VT_SHARDLOG.._goldperlvl where charid = @charid and [level]=@data2 ))
BEGIN
update SRO_VT_SHARD.._Char set RemainGold +=(@Data2*100000) where charid = @CharID
insert into SRO_VT_SHARDLOG.._goldperLvl values (@CharID,@data2,getdate())
END
------------------------------------------------- E n d --------------------------------------------------

تحياتي و شكرا جزيلا علي الموضوع الجميل :)

علي فكرة : انا كنت مشاركك في اكونت phbot قبل كدا زمااااان :hockey1: بس للأسف رقمك طار من عندي لما غيرت الموبايل :/

Black Shield
15-03-2016, 12:37 AM
تمام ، الله ينور :)
حبيت اشارك بنسخة متطورة شوية من الكويري
استخمت الـ JOIN عشان يلم الموضوع كله في select واحد و يزود الـ performance
و ضفت جزء الـ anticheat مع اول if ، كدا افضل من انك تضيف السيلك و تمسحه بعدين
استخدمت procedure CGI_WebPurchaseSilk لانه بينزل السيلك من غير متحتاج teleport

---------------------------------------- [Silk Per Level System] -----------------------------------------
----------------------------------------------- S T A R T ------------------------------------------------
DECLARE @charname varchar(max), @jid INT, @UserName varchar(max)
SELECT @charname=C.CharName16,@jid=U.UserJID,@UserName=TU .StrUserID FROM SRO_VT_SHARD.._Char C INNER JOIN SRO_VT_SHARD.._User U ON C.CharID=U.CharID INNER JOIN SRO_VT_ACCOUNT..TB_User TU ON U.UserJID=TU.JID WHERE C.CharID=@CharID
if ((@eventid = 22) and (not exists ( select * from SRO_VT_SHARDLOG.._silkperlvl where charid = @charid and [level]=@data2 )) and (not exists ( select * from SRO_VT_SHARDLOG..silkperlvl_anticheat where jid=@jid and [level]=@data2 )))
BEGIN
EXEC SRO_VT_ACCOUNT.CGI.CGI_WebPurchaseSilk null,@UserName,null,@Data2,null
insert into SRO_VT_SHARDLOG.._silkperLvl values (@CharID,@data2,getdate())
insert into SRO_VT_SHARDLOG..SilkPerLvl_AntiCheat values (@charname,@jid,@data2)
END
------------------------------------------------- E n d --------------------------------------------------

في الكويري ده لميت الموضوع في Select واحد
و ضفت الجولد بـ += بدل remaingold+@data ، هي مش فارقة كتير. بس اريحلك و انت بتكتب الكويري و اوضح و انت بتقراه

---------------------------------------- [Gold Per Level System] -----------------------------------------
----------------------------------------------- S T A R T ------------------------------------------------
DECLARE @charname varchar(max), @jid int
SELECT @charname=C.CharName16,@jid=U.UserJID FROM SRO_VT_SHARD.._Char C INNER JOIN SRO_VT_SHARD.._User U ON C.CharID=U.CharID WHERE C.CharID=@CharID
if (@eventid = 22 and not exists ( select * from SRO_VT_SHARDLOG.._goldperlvl where charid = @charid and [level]=@data2 ))
BEGIN
update SRO_VT_SHARD.._Char set RemainGold +=(@Data2*100000) where charid = @CharID
insert into SRO_VT_SHARDLOG.._goldperLvl values (@CharID,@data2,getdate())
END
------------------------------------------------- E n d --------------------------------------------------

تحياتي و شكرا جزيلا علي الموضوع الجميل :)

علي فكرة : انا كنت مشاركك في اكونت phbot قبل كدا زمااااان :hockey1: بس للأسف رقمك طار من عندي لما غيرت الموبايل :/

تسلم يا كبير
يا ريت حد يجربة و يقول ايه الأخبار

M.HADAD
15-03-2016, 12:37 AM
الله عليك يا حودة تسلم ايدك

Dev. iLegend
15-03-2016, 01:43 AM
عاش يا برنجي

Dev. iLegend
15-03-2016, 01:48 AM
بالنسبة لموضوع الجولد ،، معلومة ليك يعني ،، متخليهوش يضيف الجولد إلا على EventID التليبورت او ال Log off / Log in
ليه بقا ،،
عشان الجولد لو هو عامل بارتي وحصل إيفنت الليفل أب وقت ما البارتي شغال وشغل البروسيدور وزود الجولد ،،
لو هو لم 1 جولد بس كافي انه يرجع قيمة الجولد للي كانت معاه + 1 جولد اللي لمه ،، لأن السرو كلينت بيخزن قيمة الجولد فيه مش بيجيبه اول بأول من الداتا بيز ،، ولو عاوز تجربها ادخل في dbo._Char ونقص او زود الجولد بس الكراكتر يكون مفتوح ومجهزه انه يلم جولد او توقع منه جولد ع الأرض ،، ولاحظ التغيير اللي هيحصل في dbo._Char

Ahmed Seliem
15-03-2016, 02:06 AM
بالنسبة لموضوع الجولد ،، معلومة ليك يعني ،، متخليهوش يضيف الجولد إلا على EventID التليبورت او ال Log off / Log in
ليه بقا ،،
عشان الجولد لو هو عامل بارتي وحصل إيفنت الليفل أب وقت ما البارتي شغال وشغل البروسيدور وزود الجولد ،،
لو هو لم 1 جولد بس كافي انه يرجع قيمة الجولد للي كانت معاه + 1 جولد اللي لمه ،، لأن السرو كلينت بيخزن قيمة الجولد فيه مش بيجيبه اول بأول من الداتا بيز ،، ولو عاوز تجربها ادخل في dbo._Char ونقص او زود الجولد بس الكراكتر يكون مفتوح ومجهزه انه يلم جولد او توقع منه جولد ع الأرض ،، ولاحظ التغيير اللي هيحصل في dbo._Char

كلامك صح، او ممكن تعمل بوت يعمل reload للكركتر في مكانه بعد متدي الجولد
ازاي بقي؟ يعمل movetouser xx وراها recalluser xx علي طول

Dev. iLegend
15-03-2016, 02:13 AM
كلامك صح، او ممكن تعمل بوت يعمل reload للكركتر في مكانه بعد متدي الجولد
ازاي بقي؟ يعمل movetouser xx وراها recalluser xx علي طول


vSro Multi tool created to do like these functions
and he can control the interval of the timer which work to movetouser and recalluser

Dangers SrO
15-03-2016, 02:22 AM
تحياتي

Ahmed Seliem
15-03-2016, 02:27 AM
vSro Multi tool created to do like these functions
and he can control the interval of the timer which work to movetouser and recalluser
انا مش بسألك ازاي يا عم xD انا بكود c# اصلا
انا بقول للناس فكرة الـ reload بس..

Dev. iLegend
15-03-2016, 02:30 AM
انا مش بسألك ازاي يا عم xD انا بكود c# اصلا
انا بقول للناس فكرة الـ reload بس..

وانا برضه والله بقول ينفذ فكرة ال reload ازاي ،، لأن معظم الناس هنا مش هتقدر تعمل الكلام دا بالـ C#
:icon5:

Ahmed Seliem
15-03-2016, 02:36 AM
وانا برضه والله بقول ينفذ فكرة ال reload ازاي ،، لأن معظم الناس هنا مش هتقدر تعمل الكلام دا بالـ C#
:icon5:
تمام

Mohamed ElKersh
15-03-2016, 05:20 AM
تحياتي
موضوع ممتاز
بس اهتموا بلسيرفرات Pvp شوية يا جدعان :] :vibrate:

HLP
15-03-2016, 07:23 AM
تسلم

Dev.BigBear
15-03-2016, 05:07 PM
ايوة بقى :specool:

gameman
16-03-2016, 11:28 AM
هي نسبة الsilk & gold اغيرها منين ؟

Black Shield
16-03-2016, 03:29 PM
تسلموا يا رجالة بس حد جربة عنده ^^

هي نسبة الsilk & gold اغيرها منين ؟

بالنسبه للـSilk هي معادلة تقدر تغيرها حسب ما انت عاوز
انا عاملها تضيف قيمة الـ Level الي انت فيه يعني دلوقتي انت Level 1 معاك 0 Silk
بقيت Level 2 الـSystem هايضيف القيمة الي هي 2 + قيمة الـSilk الي هي 0 = 2 سيلك
بقيت Level 3 الـSystem هايضيف القيمة الي هي 3 + قيمة الـSilk الي هي 2 = 5 سيلك

ممكن تغيرها حسب ما انت عاوز و ممكن تعمل جدول بالقيم الي انت عاوزها لكل Level
update SRO_VT_ACCOUNT..SK_Silk set silk_own = silk_own +@Data2 where JID = @jid

بالنسبة للـGold

update SRO_VT_SHARD.._Char set RemainGold = RemainGold+@Data2*100000 where charid = @CharID

نفس الفكرة بس انا ضايف في المعادلة انه يضرب قيمة الـ Level في 10000

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

Black Shield
16-03-2016, 11:33 PM
بالنسبة لموضوع الجولد ،، معلومة ليك يعني ،، متخليهوش يضيف الجولد إلا على EventID التليبورت او ال Log off / Log in
ليه بقا ،،
عشان الجولد لو هو عامل بارتي وحصل إيفنت الليفل أب وقت ما البارتي شغال وشغل البروسيدور وزود الجولد ،،
لو هو لم 1 جولد بس كافي انه يرجع قيمة الجولد للي كانت معاه + 1 جولد اللي لمه ،، لأن السرو كلينت بيخزن قيمة الجولد فيه مش بيجيبه اول بأول من الداتا بيز ،، ولو عاوز تجربها ادخل في dbo._Char ونقص او زود الجولد بس الكراكتر يكون مفتوح ومجهزه انه يلم جولد او توقع منه جولد ع الأرض ،، ولاحظ التغيير اللي هيحصل في dbo._Char

شكرا يا رامي ع المعلومه
هشتغل على كلامك ده

Frankobek
30-03-2016, 10:53 PM
تحياتي يا برنس
انا شفت قبل كدا فكره نظام اول 200 واحد في الجيم يجيلهم سلك ياريت تعمله وتفيد الناس :peace::peace:

Last_Fiddler
31-03-2016, 06:43 AM
موضوع جميل وتسلم ايدك استمر