|
|
#1 | ||||||||||
![]()
|
بسم الله الرحمن الرحيم احب اقدم موضوع بسيط كدا عشان انا واحد من الناس حصل عندي ان في ناس بتعمل بج بيمسكوا سلاح twohand مع الـ Shield فى نفس الوقت أياً كان بقا 2h , axe , dagger , xbow , staff , etc انا لما فكرت وشوفت البج بيحصل ازاي ،، لقيته انه بياخد كراش بعد ميعمل البج ،، وبيفتح بيلاقي السلاح والشيلد ممسوكين للكراكتر ،، طيب انت بكدا تبدأ تشتغل على EventID بتاع log off او login وتحاول انك تشيل يا الشيلد يا السلاح وتحطهولوا فى ال Inventory بتاعته ،، طيب واحد هيقولي لو الـ Inventory مليانة ،، في الوضع دا عمر ميقدر يخلى ال Inventory مليانة عشان هو لما بيمسك السلاحين بيفضي سلوت بتاعت الشيلد او السلاح من ال Inventory يبقا مهما عمل ايه هو بياخد كراش بعد البج على طول وبيفضي سلوت فى ال inventory ،، طيب انا عملت الكيوري كدا بسيطة بتحطها فى AddLogChar فى الشارد لوج ،، هتمنع البج دا خالص ،، وهي اني بشوف الكراكتر اللي جاية ماسكة سلاح وشيلد ولا لأ فى أول خطوة ،، تانية خطوة هي اني اروح اشوف السلاح دا one hand weapon ولا two hand weapon ،، لو كان twohand weapon يبدأ يشتغل ،، يجيب ال ID بتاع الشيلد من جدول dbo._Inventory ويشيله من سلوت 7 ويحطه فى السلوت الفاضي اللي فى الـ Inventory ،، ودي الكيوري ،، كود PHP:
أرجوا انها تفيد حد ،، شكراً ،، |
||||||||||
|
|
|
#2 | ||||||||||
![]()
|
Welcome back ^^ كالعادة موضوع رائع بس ليا سؤال. الكيوري دا مش هيعمل لاج في السيرفر. لان الموضوع دا مهم فعلا وبتحصل عندي كذا مرة لان لو بيشوف كل واحد دخل الجيم هيعمل لاج اعتقد !! |
||||||||||
|
التعديل الأخير تم بواسطة Hamza FiGo ; 26-11-2015 الساعة 09:45 PM
|
|
|
#3 | ||||||||||
![]()
|
شكرا على الكويرى الجميلة و استمر |
||||||||||
|
|
|
#4 | ||||||||||
![]()
|
Welcome back again ramy فعلاً موضوع جميل |
||||||||||
|
|
|
#5 | ||||||||||
![]()
|
الله ينور عليك |
||||||||||
|
|
|
#6 | ||||||||||
![]()
|
عااااااش |
||||||||||
|
|
|
#7 | ||||||||||
![]()
|
![]() ![]() |
||||||||||
|
|
|
#8 | |||||||||||
![]()
|
اقتباس:
|
|||||||||||
|
|
|
#9 | ||||||||||
![]()
|
موضوع جميل بس اعتقد انى محدش يقدر يعمل بج بطريقة دة دة تبديل ID و كلام بيتعمل ف تابين ف ال SQL متجيش بسهولة دة !! |
||||||||||
|
|
|
#10 | ||||||||||
![]()
|
دة الفكرة الخاصه بيا وهيا انى اشيل الشيلد دة بعد ما يحطهاله فى الانفتورى وكمان يديله بلوك 24 ساعه عشان استخدم البج دة وباردوا فيه نوتك بتتبعتله والبوت بيكلمه انا مجربتش البروديسير لكن ظبط الكلام بتاعى عليه ولسا مجربتش لانى معنديش امكانيه تخلينى اجربه دلوقتى نخش على البروديسير : كود:
IF @EventID in (4,6)
Begin
declare @Charname4 nvarchar(max) = (select Charname16 from SRO_VT_SHARD.._Char where charid = @CharID)
Declare @WeaponID Int , @ShieldID Int , @RefWeaponID Int , @Slot Int
Set @WeaponID = (Select ItemID From [SRO_VT_SHARD].[dbo].[_Inventory] Where CharID = @CharID and Slot = 6)
Set @ShieldID = (Select ItemID From [SRO_VT_SHARD].[dbo].[_Inventory] Where CharID = @CharID and Slot = 7)
IF @ShieldID > 0 and @WeaponID > 0
Begin
Set @RefWeaponID = (Select RefItemID From [SRO_VT_SHARD].[dbo].[_Items] Where ID64 = @WeaponID)
IF @RefWeaponID Is Not Null and @RefWeaponID in
(Select ID From [SRO_VT_SHARD].[dbo].[_RefObjCommon] Where CodeName128 Like 'ITEM_CH_SPEAR_%'
Or CodeName128 Like 'ITEM_CH_TBLADE_%' Or CodeName128 Like 'ITEM_CH_BOW_%'
Or CodeName128 Like 'ITEM_EU_TSWORD_%' Or CodeName128 Like 'ITEM_EU_AXE_%'
Or CodeName128 Like 'ITEM_EU_DAGGER_%' Or CodeName128 Like 'ITEM_EU_CROSSBOW_%'
Or CodeName128 Like 'ITEM_EU_TSTAFF_%' Or CodeName128 Like 'ITEM_EU_HARP_%')
Begin
Set @Slot = (Select Top 1 Slot From [SRO_VT_SHARD].[dbo].[_Inventory] Where ItemID = 0 and CharID = @CharID and Slot > 12 Order by Slot)
IF @Slot Is Not Null
begin
Update [SRO_VT_SHARD].[dbo].[_Inventory] Set ItemID = 0 Where Slot = 7 and CharID = @CharID
Update [SRO_VT_SHARD].[dbo].[_Inventory] Set ItemID = 0 Where Slot = @Slot and CharID = @CharID
begin
declare @5 smalldatetime , @6 smalldatetime
set @5 = getdate() Set @6 = dateadd(day,1,getdate());
exec SRO_VT_SHARD.._Block_Loren 'Ban',@Charname4,@1,@2
SELECT 'Banned'
begin
INSERT INTO SRO_VT_SHARD.dbo._Notification(Type, Content, Target,Executor,Notified) VALUES(3,'You are banned because you are cheater for 1day.',@Charname4,'BOT1',0)
INSERT INTO SRO_VT_SHARD.dbo._Notification(Type, Content, Target,Executor,Notified) VALUES(7,'Ban.',@Charname4,'BOT1',0)
INSERT INTO SRO_VT_SHARD.dbo._Notification(Type, Content, Target,Executor,Notified) VALUES(1,'['+@Charname4 +'] tried to break our system by using his/her double-weapon in the same time.',@Charname4,'BOT1',0)
End
End
End
End
End
End
كود:
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_Block_Loren] Script Date: 28/11/2015 12:05:19 ص ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER proc [dbo].[_Block_Loren]
@Type varchar(33),
@Charname varchar(max),
@BeginTime datetime,
@EndTime datetime
as
begin
declare @CharID int = (select CHarID from _Char where Charname16 = @Charname)
declare @UserJID int = (select userJID from _user where charID = @CharID)
DECLARE @ID VARCHAR (64)
DECLARE @Reason VARCHAR(128)
SET @ID = (Select STRuserID FROM SRO_VT_ACCOUNT..TB_User Where JID = @userJID)
if (@Type in ('Ban','1'))
begin
SET @Reason = 'Ban Reason Here'
if not exists (select UserJID from SRO_VT_ACCOUNT..[_Punishment] where UserJID = @UserJID)
begin
INSERT SRO_VT_ACCOUNT..[_Punishment]([UserJID],[Type],[Executor],[Shard],[CharName],[CharInfo],[PosInfo] ,[Guide],[Description],[RaiseTime],[BlockStartTime],[BlockEndTime],[PunishTime],[Status])
VALUES (@userJID,1,1,0,@CharName,1,1,@Reason,@Reason,@BeginTime,@BeginTime,@EndTime,@EndTime,0);
----------------------------------------------------------
DECLARE @ReasonID INT
SET @ReasonID =(Select SerialNo FROM SRO_VT_ACCOUNT.._Punishment Where UserJID = @userJID)
if @ReasonID is null
begin
set @ReasonID = 15
end
else
begin
set @ReasonID = @ReasonID
end
----------------------------------------------------------
INSERT SRO_VT_ACCOUNT..[_BlockedUser]([UserJID],[UserID],[Type],[SerialNo],[TimeBegin],[TimeEnd])
VALUES(@userJID,@ID,1,@ReasonID,@BeginTime,@EndTime);
end
else if exists (select UserJID from SRO_VT_ACCOUNT..[_Punishment] where UserJID = @UserJID)
begin
Print 'You can not ban this User because he already banned'
end
end
else if (@Type in ('Unban','2'))
begin
if exists (select UserJID from SRO_VT_ACCOUNT.._BlockedUser where UserJID = @UserJID)
begin
DELETE FROM SRO_VT_ACCOUNT..[_BlockedUser] WHERE UserJID = @UserJID
DELETE FROM SRO_VT_ACCOUNT..[_Punishment] WHERE UserJID = @UserJID
end
else if not exists (select UserJID from SRO_VT_ACCOUNT.._BlockedUser where UserJID = @UserJID)
begin
print 'There is no User called '+ '[' + (convert(varchar(max),@ID)) + ']' + ' and Charname called [' + @Charname+']'
end
end
end
|
||||||||||
|
التعديل الأخير تم بواسطة gotsha ; 05-12-2015 الساعة 12:23 AM
|
|
|
#11 | ||||||||||
![]()
|
بس فعلا بيعمل لاج . ولاج غريب. انا جربته عندي عمل لاج . شيلته لقيت الاج راح اول ما شيلت البروسيدر علي طول |
||||||||||
|
|
|
#12 | ||||||||||
![]()
|
موضوع جميل استمر |
||||||||||
|
|
|
#13 | ||||||||||
![]()
|
حمزة ممكن يكون عندك ال AddLogChar مهروس اوامر ،، وبعدين يا حمزة انا مشغلك الكيوري دي خطوات زي مشرحتها في الموضوع فوق يعني مش هتشتغل على كل الناس اللى بتعمل لوجين ولوج اوف ،، بمعني فى اول خطوة اللى هيعمل لوجين او لوج اوف وهو ماسك شيلد وويبون يكمل ،، التانية هي انه يشتغل بس لما يلاقي السلاح موجود في الاي دي اللى يكون twohand weapon يعني بمعني اصح عامل البج ،، لو مش عامله وماسك شيلد و one hand weapon هياخد اول خطوة ومش هيكمل ،، انا شغالة عندي من غير لاج ،، بالنسبة لـ Hero ،، يا باشا الموضوع مش موضوع تغيير فى جداول الموضوع موضوع بج بيحصل لما بتغير السلاح والشيلد بسرعة فى نص الضربات ،، او لما تعمل تليبورت لأماكن معينة ،، انا معرفش بيتعمل ازاي بس اللي عرفته انه بيديك كراش زي مقولت فى الموضوع ،، ودا فرصة انك ترجعله الشيلد فى الإنفينتوري ،، بالنسبة لفكرة gotsha هي فكرة كويسة بس من غير Remove shield ،، وبعدين انت ليه تعمل Delete From dbo._Inventory ؟ انت كدا بتشيل السلوت خالص بمعني انه هياخد دي سي اول ميجي الماوس على السلوت الممسوحة دي ،، عاوز تشيل أيتم اعمل ابديت ItemID = 0 Where Slot = @Slot هو انك تديله auto banned فكرة جميلة ،، |
||||||||||
|
|
|
#14 | |||||||||||
![]()
|
اقتباس:
وهو بيشيك . بيخلي الشخصية وهيا داخلة الجيم تتاخر شوية. الفكرة جميلة طبعا . واعتقد مع جهاز Dedicated محترم مش هيحس باللاج دا |
|||||||||||
|
|
|
#15 | ||||||||||
![]()
|
وبالنسبة لبعض الداتا بيز اللى بيبقا حجمها كبر اوي من اللوج ،، ياريت صحاب السيرفرات كل شوية يدخلوا يشوفوا جدوال اللوج هيا ايه ويعملولها كلير عشان دا بيأثر أكيد على أداء السيرفر وميحاولش انه يحط كيوريهات كتير فى بروسيدور واحد ،، يوزعهم ويكريت بروسيدورات جديدة ويعملهم Execute by cases عشان متهرس فى بروسيدور واحد ويجبلك لاج ،، بس العامل الأساسي هو كبر حجم الداتا بيز من اللوج ،، والكلام دا عن تجربة ،، |
||||||||||
|
![]() |
| يتصفح الموضوع حالياً : 1 (0 عضو و 1 زائر) | |
|
|
المواضيع المتشابهه
|
||||
| الموضوع | كاتب الموضوع | المنتدى | الردود | آخر مشاركة |
| مشكلة في ال War ولاهي مش بسبب تظبيط الوقت | World | قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة | 5 | 12-08-2013 06:13 AM |
| weapon switch and shield | ronaldinhott | قسم الاستفسارات ومشاكل وحلول ال Sbot | 2 | 05-08-2013 02:08 AM |
| WTS D13 LGD +12 Staff & Chi Weapon & Chi Shield In Sepens | besk800 | Ceres | 1 | 27-01-2013 12:38 AM |