الموقع العربي الاول للعبة Silkroad Online

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الشروحات و البرامج المستخدمة في عمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=289)
-   -   Change Name Scroll (Fixed) #HB (https://silkroad4arab.com/vb/showthread.php?t=617208)

HB# 10-07-2017 08:23 PM

Change Name Scroll (Fixed) #HB
 
بسم الله
رجالة سيلك رود فور عرب انا النهاردة جاي بسكرول بتغير اسم الشخصية .. يا رب تعجبكوا طبعا دي اول مرة تشفوني فيها احب اقدم نفسي اسمي : 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,Data2,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,Data2,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://st...9544984351.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

رد: Change Name Scroll (Fixed) #HB
 
تسلم ايدك علي الشرح الممتاز

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

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

HB# 11-07-2017 03:53 PM

رد: Change Name Scroll (Fixed) #HB
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Hamza FiGo (المشاركة 5323158)
تسلم ايدك علي الشرح الممتاز

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

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

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

.Gamer. 12-07-2017 10:17 AM

رد: Change Name Scroll (Fixed) #HB
 
الله ينور يابرنس :) :animal_rooster:

™Shi6on 13-07-2017 03:04 AM

رد: Change Name Scroll (Fixed) #HB
 
طب ليه متخلهاش بعد لما تضرب تعمل لوج اوت و بدل الdc ده

HB# 14-07-2017 02:07 PM

رد: Change Name Scroll (Fixed) #HB
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ™Shi6on (المشاركة 5323281)
طب ليه متخلهاش بعد لما تضرب تعمل لوج اوت و بدل الdc ده

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

HB# 14-07-2017 02:08 PM

رد: Change Name Scroll (Fixed) #HB
 
اقتباس:

المشاركة الأصلية كتبت بواسطة Cryptic (المشاركة 5323229)
الله ينور يابرنس :) :animal_rooster:

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

HB# 22-08-2017 02:29 AM

رد: Change Name Scroll (Fixed) #HB
 
اقتباس:

المشاركة الأصلية كتبت بواسطة ™Shi6on (المشاركة 5323281)
طب ليه متخلهاش بعد لما تضرب تعمل لوج اوت و بدل الdc ده

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

DraCula1337 01-07-2018 07:20 PM

رد: Change Name Scroll (Fixed) #HB
 
عاش كنت بدور عليه جارى التجربه :mf_laughbounce:
تمت التجربه شغاله 100% بس ملهاش Effect
شكرا على الموضوع ♥


الساعة الآن 04:03 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.