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

مشاهدة النسخة كاملة : Change Name Scroll (Fixed) #HB


HB#
10-07-2017, 08:23 PM
بسم الله
رجالة سيلك رود فور عرب انا النهاردة جاي بسكرول بتغير اسم الشخصية .. يا رب تعجبكوا طبعا دي اول مرة تشفوني فيها احب اقدم نفسي اسمي : Mohab Fawzy وان شاء الله ال scroll تشتغل معاكوا وتعجبكوا وبردو لسه هاجي بي حاجات كتير قريب :
ال scroll فعلا منشورة على سيلك رود فور عرب بواسطة أستاذي Dangers مع اني معرفوش بس مع أحترامي ليه في غلطات بسيطة في ال procedure انا عدلت عليها وصلحتها ال scroll اسمها change name دي عبارة عن سكرول لما بتضربها بيجيلك DC ولما تفتح تاني بيطلب منك الأسم الجديد ال حضرتك عاوزوا ... بسم الله : هبدأ بال database :
_RefObjCommon
1 43606 ITEM_MALL_CHANGENAME ???? ???? ??? (???) xxx SN_ITEM_MALL_CHANGENAME SN_ITEM_MALL_CHANGENAME_TT_DESC 1 0 3 3 13 14 180000 3 0 1 1 1 255 0 1 0 0 129 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 xxx item\etc\drop_mall_scroll.bsr item\etc\e090930_super_scroll.ddj xxx xxx 250000

_RefObjItem
250000 1 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 ????(?) 1 [USU1:SKILL_MALL_CHANGENAME] -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx 0 0 0
فيه ناس بتغلط في النقطة دي بص يا سيدي انت كدا حطيط ال RefObjCommon و RefObjItem تفتكر هيتربطوا بي بعض ازاي ... لو لاحظت في كود ال RefObjCommon في آخروا 25000 (Link) و في ال RefObjItem ال ID 25000 دا معناه ان ال ID بيتربط بال Link هتقولي يعني اعمل ايه اققولك اتأكد ان ال ID بتاع ال RefObjItem هوا نفسه ال Link الموجود في آخر صف في ال RefObjCommon دا بالنسبة للناس المبتدئة اكيد الناس ال بيعرفوا يضيفوا ال items والمحترفين عارفين النقطة دي ... نكمل :
_RefSkill
1 100000 1013 SKILL_MALL_CHANGENAME ???? ???? SKILL_MALL_CHANGENAME 0 1 1 0 0 0 0 0 1000 0 0 0 3599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 255 255 0 0 0 0 0 255 255 255 255 item\etc\mall_optlevel_upgrade_scroll_1.ddj SN_SKILL_MALL_CHANGENAME xxx SN_SKILL_MALL_CHANGENAME_TT_DESC xxx 0 0 3 1667396966 1851946342 1685418593 1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

نخش بقا على ال procedure البوظ ال scroll مع Dangers مع أحترامي ليه :

SRO_VT_SHARD>>>Programmability>>>Stored Procedures>>>_AddTimedJob
if(@JobID = '100000') -- RefSkill ID
begin
declare @CharName16 varchar(64)
Select @CharName16=CharName16 from _Char where CharID = @CharID
Update _Char Set CharName16 = '@'+ @CharName16 Where CharID = @CharID
return -3
end
عند If@JobID = '10000' هتبدلها بي ال RefSkill ID ال هوا 10000 بردو بس عند معظم الناس هتغير ال ID دا
واعمل ال Query دي :
USE [SRO_VT_SHARD]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-----------------------------------------------------------------------------------------------------

ALTER procedure [dbo].[_RenameCharNameByID]
@CharID int,
@NewName varchar(64)
as
if (not exists (select charid from _char where charid = @charid))
return -1
set xact_abort on
begin transaction
if (exists (select charid from _charnamelist with (updlock) where charname16 = @NewName))
begin
rollback transaction
return -3
end
declare @old_name varchar(64)
select @old_name = charname16 from _char where charid = @charid
update _char set charname16 = @NewName where charid = @charid
if (@@error <> 0 or @@rowcount = 0)
begin
rollback transaction
return -4
end
insert _CharNameList values(@NewName, @charid)
UPDATE _Char set CharName16 = @NewName where CharID = @CharID
update _Friend set friendcharname = @NewName where friendcharid = @charid
update _GuildMember set charname = @NewName where charid = @charid
update _Memo set fromcharname = @NewName where fromcharname = @old_name
update _TrainingCampMember set charname = @NewName where charid = @charid
declare @cos_id int
declare cos_cursor cursor fast_forward for
select id
from _charcos
where ownercharid = @CharID
open cos_cursor
fetch next from cos_cursor into @cos_id
while( @@fetch_status = 0 )
begin
update _Items set CreaterName = @NewName
where ID64 in
(select ItemID from _InvCOS where COSID = @cos_id and ItemID > 0)
and CreaterName = @old_Name
if (@@error <> 0 )
begin
close cos_cursor
deallocate cos_cursor
rollback transaction
return -5
end
fetch next from cos_cursor into @cos_id
end
close cos_cursor
deallocate cos_cursor
declare pc_inv_cursor cursor fast_forward for
select it.Data
from _Inventory as inv join _Items as it on inv.ItemID = it.ID64
where
(inv.CharID = @CharID and inv.Slot >= 13 and inv.ItemID > 0) and
(it.Data <> 0) and
(exists (select top 1 ID from _RefObjCommon where ID = it.RefItemID and TypeID1 = 3 and TypeID2 = 2))
open pc_inv_cursor
fetch next from pc_inv_cursor into @cos_id
while( @@fetch_status = 0 )
begin
update _Items set CreaterName = @NewName
where ID64 in
(select ItemID from _InvCOS where COSID = @cos_id and ItemID > 0)
and CreaterName = @old_Name
if (@@error <> 0 )
begin
close pc_inv_cursor
deallocate pc_inv_cursor
rollback transaction
return -6
end
fetch next from pc_inv_cursor into @cos_id
end
close pc_inv_cursor
deallocate pc_inv_cursor
if (CHARINDEX('@', @old_name, 0) > 0)
begin
select * from _Char
where CharID = ''
end
commit transaction
return 1
ودي آخر Query هنعملها :
USE [SRO_VT_SHARD]
GO
/****** Object: StoredProcedure [dbo].[_AddTimedJob] Script Date: 06/05/2013 15:10:09 ******/
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(@JobID = '10000') -- RefSkill ID again
BEGIN
declare @CharName16 varchar(64)
Select @CharName16=CharName16 from _Char where CharID = @CharID
Update _Char Set CharName16 = '@'+ @CharName16 Where CharID = @CharID
return -3
END
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
--##JobID 1 = Guild // JobID 2 = Thief/Hunter/Trader
--##If you want to only have one not both, then just modify the line below!
--if (@JobID = 1 and @Category = 2 and @Serial64=0) or (@JobID = 2 and @Category = 2 and @Serial64=0) --For Guild and CharJob
if (@JobID = 1 and @Category = 2 and @Serial64=0) --Only for Guild
BEGIN
set @CharID = 0
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
ELSE
BEGIN
--##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
--##end due to develop composite item
set @NewJobID = @@identity
if (@@error <> 0 or @@rowcount = 0)

return -3
return @NewJobID
نفس النظام عند If @JobID = '10000' هتبدلها بي RefSkill ID دا لو ال ID بتاع RefSkill اتغير .... نيجي بقا لآخر حاجة :
Media
_Itemdata4500
1 43606 ITEM_MALL_CHANGENAME ???? ???? ??? (???) xxx SN_ITEM_MALL_CHANGENAME SN_ITEM_MALL_CHANGENAME_TT_DESC 1 0 3 3 13 14 180000 3 0 1 1 1 255 0 1 0 0 129 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 xxx item\etc\drop_mall_scroll.bsr item\etc\e090930_super_scroll.ddj xxx xxx 1 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 ????(?) 1 [USU1:SKILL_MALL_CHANGENAME] -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx 0 0
Skilldata4500enc
1 100000 1013 SKILL_MALL_CHANGENAME ???? ???? SKILL_MALL_CHANGENAME 0 1 1 0 0 0 0 0 1000 0 0 0 3599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 255 255 0 0 0 0 0 255 255 255 255 item\etc\mall_optlevel_upgrade_scroll_1.ddj SN_SKILL_MALL_CHANGENAME xxx SN_SKILL_MALL_CHANGENAME_TT_DESC xxx 0 0 3 1667396966 1851946342 1685418593 1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
وهأخد ال test_object و ال skilleffect من Dangers باشا :

test_object:
1 SN_ITEM_MALL_CHANGENAME Name Change Scroll
1 SN_ITEM_MALL_CHANGENAME_TT_DESC Change Name Scroll (Fixed).
بالنسبة ل skilleffect عشان فيه ناس كتيرة بتأخد Crash لما بتضيفها .. بص يا باشا انت هتفتح ال skileffect.txt وتدور على سطر يشابه السطر ال انت هتحطوا هتقولي طب في change name scroll هنعمل ايه انت هتفتح ال skileffect.txt وتعمل search على السطر ده : 0 FALSE 0 DEFAULT none none none none none none none
ممكن تلاقي اول حاجة اسمها hwan دا ال هوا ال zerk المهم هتحط تحته ال line ده :1 ê·€ي™کى„œ ى‚¬ىڑ©ى*„ SKILL_MALL_CHANGENAME 0 FALSE 0 DEFAULT none none none none none none none none 0 0,0,0,0 ONE none none none none none none none 0 1
وبعديها هتعمل search على ال سطر ده :ACT_S 0 FALSE none none 0 0
وتحط ال line ده تحته بردو :ê·€ي™کى„œ ى‚¬ىڑ©ى*„ SKILL_MALL_CHANGENAME ACT_S 0 FALSE none none 0 0 0 0 1 0,0 AT_LOOP MOV_NONE,0,0,0 0,0,0 false,0,0,0,0,false system\ item_returnscroll.efp none 0,0,0 none 0,0,0 none 0 none none none
ودول ال هما ال 2 lines ال احنا ضفناهم في ال skilleffect.txt ...
ودي صور من جهازي وبعد ما ضربت ال اسكرول ووانا بفتح الاكونت ومجربها عندي شغالة الحمد الله
http://www.up-00.com/][img]http://store4.up-00.com/2017-07/149969544984351.jpg
http://store4.up-00.com/2017-07/149969544997792.jpg
http://store4.up-00.com/2017-07/149969545199633.jpg
http://store4.up-00.com/2017-07/149969545213214.jpg



و يا ريت تحطها على داتابيز clean او داتابيز مش متضاف فيها scrolls جديده لأنوا زي ما أستاذ حمزة قال في query ال AddTimedJob ممكن يبوظ scrolls تانية موجوده في ال داتابيز...
وبكده اكون خلصت موضوعي يا رب يعجبكم وان شاء الله لسه في مواضيع تانيه قريب .. شكرا :mf_trombone::mf_trombone:

Hamza FiGo
11-07-2017, 01:50 PM
تسلم ايدك علي الشرح الممتاز

بس فية نقطة ... الكيوري دا ممكن يبوظ عند ناس كتير الاسكرولات بتاعتهم . لان ممكن يكون فية ناس عامله اسكرولات علي AddTimedJob
والكيوري بتاعك موجود فية تغيير الاسم فقط .... حبيت اوضح النقطة دي بس

http://i.epvpimg.com/WOJrdab.png

HB#
11-07-2017, 03:53 PM
تسلم ايدك علي الشرح الممتاز

بس فية نقطة ... الكيوري دا ممكن يبوظ عند ناس كتير الاسكرولات بتاعتهم . لان ممكن يكون فية ناس عامله اسكرولات علي AddTimedJob
والكيوري بتاعك موجود فية تغيير الاسم فقط .... حبيت اوضح النقطة دي بس

http://i.epvpimg.com/WOJrdab.png

تم التعديل أستاذ حمزة:111 (5)::111 (5):

.Gamer.
12-07-2017, 10:17 AM
الله ينور يابرنس :) :animal_rooster:

™Shi6on
13-07-2017, 03:04 AM
طب ليه متخلهاش بعد لما تضرب تعمل لوج اوت و بدل الdc ده

HB#
14-07-2017, 02:07 PM
طب ليه متخلهاش بعد لما تضرب تعمل لوج اوت و بدل الdc ده

مقدرش يا باشا ال system دا متأخد من ملفات C-SRO لو عدلت عليه ممكن ابوظ حاجات ولو حاولت تضبتها تعمل log وتفتح تاني احتمال 99% تعمل log وميحصلش حاجه

HB#
14-07-2017, 02:08 PM
الله ينور يابرنس :) :animal_rooster:

دا نورك يا باشا.. تسلم

HB#
22-08-2017, 02:29 AM
طب ليه متخلهاش بعد لما تضرب تعمل لوج اوت و بدل الdc ده

بس عامه لو عاوز تشيل ال DC روح في آخر ال procedure وامسح السطر ال بيقول : return -3

DraCula1337
01-07-2018, 07:20 PM
عاش كنت بدور عليه جارى التجربه :mf_laughbounce:
تمت التجربه شغاله 100% بس ملهاش Effect
شكرا على الموضوع ♥