15-03-2016, 12:37 AM
|
#6
|
|
• الانـتـسـاب » May 2011
|
• رقـم العـضـويـة » 87556
|
• المشـــاركـات » 3,395
|
• الـدولـة » In My Own World
|
• الـهـوايـة » DBA, C#, APS.NET
|
• اسـم الـسـيـرفـر » Private Server
|
• الـجـنـس » Male
|
• نقـاط التقييم » 240
|
|
|
رد: Silk/Gold Per Level System Working 100%
اقتباس:
المشاركة الأصلية كتبت بواسطة Ahmed Seliem
عفوا ,,, لايمكنك مشاهده الروابط لانك غير مسجل لدينا [ للتسجيل اضغط هنا ]
تمام ، الله ينور :)
حبيت اشارك بنسخة متطورة شوية من الكويري
استخمت الـ JOIN عشان يلم الموضوع كله في select واحد و يزود الـ performance
و ضفت جزء الـ anticheat مع اول if ، كدا افضل من انك تضيف السيلك و تمسحه بعدين
استخدمت procedure CGI_WebPurchaseSilk لانه بينزل السيلك من غير متحتاج teleport
كود PHP:
---------------------------------------- [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 ، هي مش فارقة كتير. بس اريحلك و انت بتكتب الكويري و اوضح و انت بتقراه
كود PHP:
---------------------------------------- [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 قبل كدا زمااااان  بس للأسف رقمك طار من عندي لما غيرت الموبايل :/
|
تسلم يا كبير
يا ريت حد يجربة و يقول ايه الأخبار
|
|
|