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

مشاهدة النسخة كاملة : لاضافه الاسكرول الخاصه بتنزيل stat point & Skill Point


StayAlive-Online
03-06-2013, 07:45 PM
السلام عليكم و رحمة الله و بركاته

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

ركزوا معايا شويه

فكرة الموضوع ده انو بيعتمد على جدول اسمو dbo._timedjop
الجدول دة بيتسجل فيه اى حاجة الكاركتر بيعملها فى اللعبه بيكون ليها وقت محدد
مثلا
speed drug , premium , و مجموعه تانيه من الاسكرولات

و الموضوع كان عبارة عن اضافه ايتم جديد و فيه سطور لازم تتحط فى Refskill
و اعتقد ان فى ناس كتير جدا شبهى مش بتعرف تتعامل مع الجدول دة بالاخص لان ملفاتو اللى فى الميديا متشفرة و ناس كتير و انا منها مش بنعرف نتعامل مع الملفات المتشفرة دى

ركزوا شويه

البروسيديو اللى موجود فى الموضوع بدايته مكتوب فيها

if(@JobID= '33801')
اللى يهمنا هنا و باين جدا الرقم اللى مكتوب بالازق و الكلمة اللى مكتوبه بالبنى

ايه هما

الكلمة البنى هى خانه موجودة فى جدول Timedjop
بيتكتب فيها رقم زى الرقم اللى مكتوب بالازرق دة

طب ايه هو الرقم الازرق ده

حقولك هو رقم الاسكيلايه اللى موجودة فى جدول _refobjitem اللى بتكون خاصه بالايتم او الاسكرول اللى انت ضربتها


طيب دلوقتى فهمنا دوول ايه

طب حنعمل ايه بعد كدة ؟

الجمله بيقولك ان لما يكون فى الخانه jopid مكتوب فيها الرقم 33801
نفذ الامر اللى تحتها و اللى هو

begin
declare @TotalSP int
declare @TotalSPMastery int
SELECT @TotalSP = SUM(_RefSkill.ReqLearn_SP) FROM _RefSkill, _CharSkill WHERE _RefSkill.ID=_CharSkill.SkillID AND _CharSkill.CharID=@CharID AND _RefSkill.ReqCommon_MasteryLevel1 <= '120'
SELECT @TotalSPMastery = SUM(_RefLevel.Exp_M) FROM _CharSkillMastery, _RefLevel WHERE _RefLevel.Lvl=_CharSkillMastery.Level AND _CharSkillMastery.CharID=@CharID AND _CharSkillMastery.Level <= '120'
UPDATE _Char SET RemainSkillPoint=RemainSkillPoint+@TotalSP+@TotalS PMastery+200000 WHERE CharID=@CharID
DELETE _CharSkill FROM _RefSkill, _CharSkill WHERE _RefSkill.ID=_CharSkill.SkillID AND _CharSkill.CharID=@CharID AND _RefSkill.ReqCommon_MasteryLevel1 <= '120' AND _RefSkill.ID NOT IN (1,70,40,2,8421,9354,9355,11162,9944,8419,8420,115 26,10625)
UPDATE _CharSkillMastery SET Level='0' WHERE CharID=@CharID AND Level <= '120'
return -3
end

الامر دة عبارة عن ايه ؟

انو حينفذ استعلام ( query ) فى قواعد البيانات حينفذ فيه تنزيل كل الاسكيلات
اللى عند الشخص اللى ضرب الاسكرول دى

ازاى ؟

متنساش ان جدول ال timedjop بيكون فيه خانه مكتوب فيها رقم الاى دى الخاص بالكاركتر اللى ضارب الاسكرول

طب انت بتتكلم كتير و فى الاخر مقولتش حنعمل ايه http://www.stayalive-online.com/vbl2/images/smilies/smile.gif

بصوا من الاخر

انت حتشوف اى ايتم سكرول عندك مش متستخدمها فى الجيم عندك مثلا http://www.rev6.com/img/item/etc/e041225_candy_red.png (http://www.rev6.com/img/item/etc/e041225_candy_red.png)

و دة الكود بتاعها فى refobjcommon
ITEM_ETC_E041225_CANDY_RED

حتجيب الاى دى بتاعها اللى موجود فى Refobjitem و تمشى فى السطر بتاعو لغايه ما تلاقى اسم الاسكلايه اللى بتشتغل لما بتضرب الاسكرول دى

و تجرى على جدول refskill و تدور على رقم الاى دى الخاص بالاسكلايه دى

و تحطو مكان الرقم اللى مكتوب باللون الازرق

بس كدة انتهى الموضوع ؟

لا حاسب لسه منتهاش http://www.stayalive-online.com/vbl2/images/smilies/smile.gif

حتروح على البروسيديور بتاع _Addtimedjop

حتيجى فى اخرو حتلاقى الجمله دى

set @NewJobID = @@identity
if (@@error <> 0 or @@rowcount = 0)
return -3
return @NewJobID

و حتروح واخد البروسيديور اللى فى الموضوع و تحطو فوق الجمله دى على طول

مش تحتها زى ما ناس كتير كانت بتعمل

علشان لو حتيطوا تحتها : الامر مش حيتنفذ


و فى الاخر حيكون شكل البروسيديور بتاع Addtimedjop شبه دة و هو دة اللى عندى فى السيرفر بتاعى

USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddTimedJob] Script Date: 06/03/2013 08:15:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO




ALTER procedure [dbo].[_AddTimedJob]
@CharID int,
@Category tinyint,
@JobID int,
@TimeToKeep int,
@Data1 int,
@Data2 int,
--##begin due to develop composite item
@Data3 int,
@Data4 int,
@Data5 int,
@Data6 int,
@Data7 int,
@Data8 int,
@Serial64 bigint,
@JID int
--##end due to develop composite item
as
if (not exists (select CharID from _Char with (nolock) where CharID = @CharID))
return -1
if (@TimeToKeep <= 0)
return -2
declare @NewJobID int
set @NewJobID = 0
--##begin due to develop composite item
insert into _TimedJob(CharID,Category,JobID,TimeToKeep,Data1,D ata2,Data3,Data4,Data5,Data6,Data7,Data8,Serial64, JID)
values(@CharID, @Category, @JobID, @TimeToKeep, @Data1, @Data2, @Data3, @Data4, @Data5, @Data6, @Data7, @Data8, @Serial64, @JID)
--##end due to develop composite item
if(@JobID= '3526')
begin
declare @TotalSP int
declare @TotalSPMastery int
SELECT @TotalSP = SUM(_RefSkill.ReqLearn_SP) FROM _RefSkill, _CharSkill WHERE _RefSkill.ID=_CharSkill.SkillID AND _CharSkill.CharID=@CharID AND _RefSkill.ReqCommon_MasteryLevel1 <= '130'
SELECT @TotalSPMastery = SUM(_RefLevel.Exp_M) FROM _CharSkillMastery, _RefLevel WHERE _RefLevel.Lvl=_CharSkillMastery.Level AND _CharSkillMastery.CharID=@CharID AND _CharSkillMastery.Level <= '130'
UPDATE _Char SET RemainSkillPoint=RemainSkillPoint+@TotalSP+@TotalS PMastery+200000 WHERE CharID=@CharID
DELETE _CharSkill FROM _RefSkill, _CharSkill WHERE _RefSkill.ID=_CharSkill.SkillID AND _CharSkill.CharID=@CharID AND _RefSkill.ReqCommon_MasteryLevel1 <= '130' AND _RefSkill.ID NOT IN (1,70,40,2,8421,9354,9355,11162,9944,8419,8420,115 26,10625)
UPDATE _CharSkillMastery SET Level='0' WHERE CharID=@CharID AND Level <= '130'
return -3
END
if(@JobID = '3527')
begin
declare @Strength int
declare @Intellect int
declare @MaxLevel int
declare @RemainStatPoint int
select @MaxLevel = MaxLevel from _Char where CharID=@CharID
set @RemainStatPoint = (@MaxLevel*3)-3
set @MaxLevel = @MaxLevel+19
UPDATE _Char SET Strength=@MaxLevel, Intellect=@MaxLevel, RemainStatPoint=@RemainStatPoint WHERE CharID=@CharID
return -3
end
set @NewJobID = @@identity
if (@@error <> 0 or @@rowcount = 0)
return -3
return @NewJobID

انا هنا ضايف الاكسرول بتاع RESET STATE & RESET SKILLS

اعتقد انا كدة فهمتكوا الموضوع بكل بساطة

متنسوناش بس

و دة الجزء الخاص لتنزيل الاسكيل

if(@JobID= '3526')
begin
declare @TotalSP int
declare @TotalSPMastery int
SELECT @TotalSP = SUM(_RefSkill.ReqLearn_SP) FROM _RefSkill, _CharSkill WHERE _RefSkill.ID=_CharSkill.SkillID AND _CharSkill.CharID=@CharID AND _RefSkill.ReqCommon_MasteryLevel1 <= '130'
SELECT @TotalSPMastery = SUM(_RefLevel.Exp_M) FROM _CharSkillMastery, _RefLevel WHERE _RefLevel.Lvl=_CharSkillMastery.Level AND _CharSkillMastery.CharID=@CharID AND _CharSkillMastery.Level <= '130'
UPDATE _Char SET RemainSkillPoint=RemainSkillPoint+@TotalSP+@TotalS PMastery+200000 WHERE CharID=@CharID
DELETE _CharSkill FROM _RefSkill, _CharSkill WHERE _RefSkill.ID=_CharSkill.SkillID AND _CharSkill.CharID=@CharID AND _RefSkill.ReqCommon_MasteryLevel1 <= '130' AND _RefSkill.ID NOT IN (1,70,40,2,8421,9354,9355,11162,9944,8419,8420,115 26,10625)
UPDATE _CharSkillMastery SET Level='0' WHERE CharID=@CharID AND Level <= '130'
return -3
END

و دة الجزء الخاص لتنزيل الاستيت بوينت

if(@JobID = '3527')
begin
declare @Strength int
declare @Intellect int
declare @MaxLevel int
declare @RemainStatPoint int
select @MaxLevel = MaxLevel from _Char where CharID=@CharID
set @RemainStatPoint = (@MaxLevel*3)-3
set @MaxLevel = @MaxLevel+19
UPDATE _Char SET Strength=@MaxLevel, Intellect=@MaxLevel, RemainStatPoint=@RemainStatPoint WHERE CharID=@CharID
return -3
end

نتمنى نشوفكم على خير ان شاء الله

ELjOkeR
03-06-2013, 11:38 PM
Approved #

MyRȝturn
04-06-2013, 09:29 AM
الله ينور

Mahmoud Rashwan
04-06-2013, 09:43 AM
تسلمـ ايدك

Cool_3la_Tool
04-06-2013, 12:09 PM
طيب اكتب اسم صاحب الفكرة دى على الاقل احتراما ليه...

StayAlive-Online
04-06-2013, 03:17 PM
طيب اكتب اسم صاحب الفكرة دى على الاقل احتراما ليه...
اولا انا معرفهووش

ثانيا انت سايب الكلام كلو و ماسكلى فى النقطه دى

بجد فى ناس بتخلى الواحد يكرة انو يعمل للناس حاجة نضيفه

بس انا مش حاخود زنب الناس اللى موجودة بزنب الناس دى

nemo20122
04-06-2013, 03:29 PM
اولا انا معرفهووش

ثانيا انت سايب الكلام كلو و ماسكلى فى النقطه دى

بجد فى ناس بتخلى الواحد يكرة انو يعمل للناس حاجة نضيفه

بس انا مش حاخود زنب الناس اللى موجودة بزنب الناس دى

اولااا جزاك الله خيرااااااا ولا تندم على فعل الخير ابد ان الله يجزى كل واحد على حسب نيته
واستمر فى مساعدة كل محتاج ولا تستمع الى اى احد يمنعك من زاللك :wavetowel2:

™Anas™
04-06-2013, 03:52 PM
طول عمرك معلم والله عاش الشغل
بس على فكره إسم JanganSRO كان أحلى عليك
حبيبي يا أيمن ^_^

StayAlive-Online
04-06-2013, 04:06 PM
اولااا جزاك الله خيرااااااا ولا تندم على فعل الخير ابد ان الله يجزى كل واحد على حسب نيته
واستمر فى مساعدة كل محتاج ولا تستمع الى اى احد يمنعك من زاللك :wavetowel2:

طول عمرك معلم والله عاش الشغل
بس على فكره إسم JanganSRO كان أحلى عليك
حبيبي يا أيمن ^_^

تسلمو يا شباب
و ان شاء الله قريباً

اسكرول تديلك سيلك
50 , 100 , 500 , 1000 silk

احنا شغالين فيهم و اول ما اخلصهم و اضفهم فى السيرفر عندنا حنزلكم موضوع بيها.

[GM]Tormentor
04-06-2013, 05:37 PM
تمام يا معلم تشكر

[GM]Tormentor
04-06-2013, 05:38 PM
وياريت بردو لو هنتعبك معانا تعملنا باقى الموضيع

Yui
04-06-2013, 06:57 PM
Nice Jop pro

LEGENDROC
15-11-2013, 06:45 PM
Nice

Dallin
15-11-2013, 08:16 PM
Nice Job
scroll to give skill point ;)
if(@JobID = '59712') -- Skill 1M
BEGIN
declare @MYNEWSKILL varchar(64)
Select @MYNEWSKILL=RemainSkillPoint from _Char where CharID = @CharID
Update _Char Set RemainSkillPoint = RemainSkillPoint+1000000 Where CharID = @CharID
return -3
End

.-Carica-.
28-12-2013, 10:54 PM
انا عملت ال كود Ref SKill فى _Addtimedjop
و جربت السكرول فى الجيم مش عملتشى حاجه
انا عملها على سكرول سبيد و السبيد اضربت !!

che_9299
28-12-2013, 11:11 PM
تمام المهم انك على القل مهتم وبتعمل ومتشغلش دماغك باى حد يقولك منقول طب صاحب الفكره وهو هتلقيه نفسو يعملها بس مش عارف ازاى
استمرر

elfr3on2010
02-01-2014, 10:33 AM
تسلم ايدك

Silver4NET
02-01-2014, 04:08 PM
الف شكر

Tigger
14-05-2014, 10:12 AM
تمام استمر:mf_witch: