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

الموقع العربي الاول للعبة Silkroad Online (https://silkroad4arab.com/vb/index.php)
-   قسم الاسئلة و الاستفسارات لعمل السيرفرات الخاصة (https://silkroad4arab.com/vb/forumdisplay.php?f=226)
-   -   بخصوص Delet الشخصيه فى معدها ؟ (https://silkroad4arab.com/vb/showthread.php?t=500371)

[Slayer] 04-05-2013 03:46 AM

بخصوص Delet الشخصيه فى معدها ؟
 
ياجماعه انا عندى مشكله ؟

الشخصيه المفروض لما اعملها دليت تدلت بعد اسبوع الاسبوع بعدى والشخصيه زاى ما هيا

عايز اظبت المشكله دى

بعد ازنكم عايز شرح :)

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

كل واحد عمل اربع شخصيات فى ايملو مش عارف يدلتهم

صوره للتوضيح الشخصيه معدها تدلت مش بتدلت

http://www10.0zz0.com/2013/05/04/08/477489594.png


وشكرااااا



:pile:

[Slayer] 05-05-2013 12:41 AM

مش معقولا ؟رد

TYKE 05-05-2013 05:37 AM

www.silkroad4arab.com/vb/showthread.php?t=492266 في كويرني في الرابط بيشيل حكايه ‏7‏ ايام تتمسح علطول

Alber Maher 05-05-2013 02:51 PM

فى بردوا حل مؤقت :
انك يا باشا تمسح الشير من ال SQL
بس يا باشا انت هتفتح SRO_VT_SHARD بعد كده هتفتح : Tables ^dbo._Char
هتكتب عندك فى ورقة ال CharID بتاع الشخصيات الى انت عايز تمسحها .
بعد كده تفتح :
1-_CharSkill
2- _CharSkillMastery
3- _CharTrijob
4- _Inventory
5- _InventoryForAvatar
6- _RefSkill_Statiic
7- RefSkillMastery
8- StaticAvatar
9- _User
طبعا كلو بيكون جانبه dbo.
طبعا المسارت الى انا كتبتها انت هتمسح كل ال CharID
من المسارت دى و بكده تكوت الشحصيات اتمسحت .:sorcerer:


[Slayer] 06-05-2013 01:18 PM

حضرتكو انا مش قصدى كده

هو كل الى عمل جيم بيمسح هو ولـ ايه

لا ياجماعه يارب حد يفهمنى انا قصدى المفروض الشخصيات

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

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

عايز اظبطهااا

اكيد فى ناس عرف مش معقوله الموضوع ده تانى مره اعملو ؟

عايزه اتومتك ياجدعان الشخصيه تدلت لوحده بعد اسبوع من الجيم

يعنى بالبلدى كده انا عايز اظبطهاا من السيرفر

عشان الناس تدلت برحتهااا؟

مش ادخل على الشارد القى 1000 شخصيه لفن واحد مش بتدلت ؟

هو فى كده

nesrelshark 06-05-2013 04:12 PM

اولا انا كونت عايز اعرف انتا شغال بى DB ايه مش مهم
================================
اول حاجه خوش على shard وى روح على Programmability

افتح stored procedures

دور على _DeleteCharPermanently_NoTX
عرف هتفتحو ازاى هتلاقى كلام زاى ده شيلو وى حوط ده
وان شاء الله هتتحل انا كان عندى نفس المشكله وى حلتها
كود PHP:

USE [New_VT_SHARD2]
GO
/****** Object:  StoredProcedure [dbo].[_DeleteCharPermanently_NoTX]    Script Date: 05/06/2013 14:54:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER  PROCEDURE 
[dbo].[_DeleteCharPermanently_NoTX]
    @
UserJID    int,
    @
CharID    int
as
    ------------------------------------
    -- 
Inventory¶û ±×¾E?? °???°A?´¾?A??Uµé ³¯·?¹?¸®A?...
    ------------------------------------
    -------------- ?
ê ¼?E¯ ¾?A??U?I?? AI´U »è?¦ ----------------
    declare @
result int
    
declare @Slot tinyint
    
declare @RefItemID int
    
    
declare pc_inv_cursor cursor fast_forward for
    
select inv.slot
    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     -- A????¢ ?¦?UCI°¾?A??U A?´A ¼?¼AI?¥??¸® ¾E?? µé¾îA?A¸¸ç
    
(it.Data <> 0)                                              and    -- ¼?E¯¼?¸¦ °???°A?´A
    
(exists (select top 1 ID from _RefObjCommon where ID it.RefItemID and TypeID1 and TypeID2 2)) -- ?ê¼?E¯ ¾?A??Uµé ?£¾??à~
    
    
open pc_inv_cursor 
    fetch next from pc_inv_cursor  into 
@slot
    
while @@fetch_status 0
    begin
            exec 
@result _STRG_DEL_ITEM_NoTX 1, @CharID, @Slot    
            
if (@result 0)
            
begin
                close pc_inv_cursor 
                deallocate pc_inv_cursor 
                
return @result
            end
                        
            fetch next from pc_inv_cursor  into 
@Slot
    end
    
    close pc_inv_cursor 
    deallocate pc_inv_cursor 
    
------------------- ³²A¾?A??Uµé ¸ù?¢ »è?¦  -------------------
    -- 
¾?A??UACI³??µµ A?´U¸é...
    if (
exists (select top 1 itemID from _Inventory where CharID = @CharID AND ItemID <> 0))
    
begin
        update _ItemPool Set InUse 

        from _ItemPool 
as pool join _Inventory as inv on pool.ItemID Inv.ItemID
        where Inv
.CharID = @CharID and Inv.ItemID <> 0
    end
    
----------- ¾?A??Uµé ³¯·EA¸´I ???¾AûA¸·ç AI?¥??¸® »è?¦  ------------
    
delete from _Inventory where CharID = @CharID
    
if (@@error <> 0)
    
begin
        
return -10001
    end

    
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    --        
APPLY_AVATAR_SYSTEM (C?½A??) 
    --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    ------------------- 
³²A¾?¹U?¸ AI?¥??¸® ¾?A??Uµé ¸ù?¢ »è?¦  -------------------
    -- 
¾?A??UACI³??µµ A?´U¸é...
    if (
exists (select top 1 itemID from _InventoryForAvatar where CharID = @CharID AND ItemID <> 0))
    
begin
        update _ItemPool Set InUse 

        from _ItemPool 
as pool join _InventoryForAvatar as InvAva on pool.ItemID InvAva.ItemID
        where InvAva
.CharID = @CharID and InvAva.ItemID <> 0
    end
    
----------- ¾?A??Uµé ³¯·EA¸´I ???¾AûA¸·ç ¾?¹U?¸ AI?¥??¸® »è?¦  ------------
    
delete from _InventoryForAvatar where CharID = @CharID
    
if (@@error <> 0)
    
begin
        
return -10008
    end

    
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    --        
APPLY_AVATAR_SYSTEM (C?½A??) 
    --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    ------------------------------------
    -- 
COS »è?¦
    
------------------------------------
/*
    declare @engaged_cos int
    set @engaged_cos = 0
    select @engaged_cos = EngagedCOS from _char with (nolock) where CharID = @CharID
    
    if (@engaged_cos = 0)
    begin
        -- ?? ¹?»?CI´A ?? A? ¸?¸£°???¸¸... ¾??? µ?¹°°O COS ¸¸ ³²¾?A?´A °???°? A?´?¶?°?... -_-;
        select @engaged_cos = ID from _CharCOS with (nolock) where OwnerCharID = @CharID
        if (@engaged_cos is null)
            set @engaged_cos = 0
    end
    if (@engaged_cos is not null and @engaged_cos <> 0)
    begin
        declare @Return_Del_COS int
        exec @Return_Del_COS = _DeleteCharCOS_NoTX  @CharID, @engaged_cos
        if (@Return_Del_COS < 0)
        begin
            return -10002
        end
    end
*/
    
------------------------------------
    -- 
Trijob µ¥A??? »è?¦
    
------------------------------------
    
delete from _CharTrijob where CharID = @CharID
    
------------------------------------
    -- 
½??³ »è?¦
    
------------------------------------
    
delete _CharSkill where CharId = @CharID
    delete _CharSkillMastery where charId 
= @CharID
    
------------------------------------
    -- ?
ù½??® »è?¦
    
------------------------------------
    
delete _CharQuest where CharID = @CharID
    
------------------------------------
    -- 
±?µ¸â¹»è?¦
    
------------------------------------
    -- !!! 
¸¸¾à ?©±â¼Guild ¸â¹»è?¦°AI¾î³??? ¾EA¸¸é ShardManager ??¼
    -- 
_Guild_DelMember E£?âC? ??µµ·I ¼??¤C?¾C?´U! ??±?A±× °??¤ASkipCI°
    -- 
¸?¸?¸®??¼»è?¦¸¸ AI¾î³?°O µC¾î A?°?µ¢...
    declare @
GuildID int
    set 
@GuildID 0
    select 
@GuildID GuildID from _char where charid = @CharID
    
if (@GuildID is not null and @GuildID <> 0)
    
begin
        
if (not exists (select ID from _Guild where ID = @GuildID))
        
begin
            update _Char set GuildID 
0 where CharID = @CharID
        end
        
else
        
begin
            
declare @Return_Del_GuildMember int
            exec 
@Return_Del_GuildMember _Guild_DelMember_NoTX @GuildID, @CharID
            
if (@Return_Del_GuildMember 0)
                return -
10003
        end
    end

    
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    --        
APPLY_MENTOR_SYSTEM (??AIE£
    --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    DECLARE @
CampID INT
    SET 
@CampID 0
    SELECT 
@CampID CampID FROM _TrainingCampMember WHERE CharID = @CharID 
    
IF (@CampID IS NOT NULL AND @CampID <> 0)
    
BEGIN
        
DECLARE @Ret_DelCampMember INT
        EXEC 
@Ret_DelCampMember _TRAINING_CAMP_DELMEMBER @CampID, @CharID0
        
IF (@Ret_DelCampMember 0)
            RETURN -
10007
    END

    
-- A?A¸¸é ????¹?¸®A?~ ¹¹.
    
DELETE FROM _TrainingCampSubMentorHonorPoint WHERE CharID = @CharID

    
-- °??? ¹?C·¹??µ?µµ~~ ¤»¤»
    DELETE FROM _TrainingCampBuffStatus WHERE CampID 
= @CampID

    
--@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
    --        
APPLY_MENTOR_SYSTEM (??AIE£
    --@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

    -----------------------------------
    -- ?
£±¸ ¸®½??® »è?¦ ³?AC ?£±¸ ¸®½??® + ?£±¸AC ?£±¸ ¸®½??®?? ³? )
    -----------------------------------
    -- 
³» ?£±¸µé..
    declare @
FriendCharID    int
    
declare @cursor_var     cursor
    
    set 
@cursor_var cursor fast_forward
    
for
    
select FriendCharID
    from _Friend
    where CharID 
= @CharID
    
    open 
@cursor_var
    
    fetch next from 
@cursor_var into @FriendCharID
    
    
while( @@FETCH_STATUS )
    
begin
        delete _Friend where CharID 
= @FriendCharID and FriendCharID = @CharID
    
        fetch next from 
@cursor_var into @FriendCharID
    end
    close 
@cursor_var
    deallocate 
@cursor_var
    
-- ³?..
    
delete _Friend where CharID = @CharID
    
-----------------------------------
    -- 
AE?? »è?¦
    
-----------------------------------
    
delete _Memo where CharID = @CharID
    
------------------------------------
    -- 
TimedJob »è?¦CI±â
    
------------------------------------
    
delete _TimedJob where CharID = @CharID
    
------------------------------------
    -- Static 
Avatar ?¤?¸ »è?¦
    
------------------------------------    
    
delete from _staticavatar where charid = @charid
    
------------------------------------
    -- 
±?¸» ??·° ?¤?¸ »è?¦
    
------------------------------------    
    -- 
Hyperdash 2009. 9. 3 C?Aç´A ?×A???A¾?¾î ?³¸¯?? »è?¦°µC?? ¾EA½, ??EUI °³¼± 1A÷ ????°µE °?????´A ??¼® C??¦ CE
    delete from _BlockedWhisperers where OwnerID 
= @charid    
    
------------------------------------
    -- 
_DeletedChar Entry »è?¦
    
------------------------------------
    
delete from _DeletedChar where CharID = @CharID
    
if (@@error <> 0)
    
begin
        
return -10004
    end
    
-- start by novice.
    
DELETE FROM _User WHERE UserJID = @UserJID and CharID = @CharID
    
-- finish by novice.

    ------------------------------------
    -- 
commit !!!
    ------------------------------------
    
    -- ?
¬¶?A?¾??®?ë ?ü½½·O ?¤?¸ A?A? ?×A??? ³¯¸®±â!!!
    
exec _RemoveClientConfig @CharID        -- by novice...... for saving client configurations...
    return @
GuildID 


[Slayer] 07-05-2013 08:37 AM

تسلم الله ينور عليك يابرنس

انا استدخدمتو على انو كويرى

ودى صوره شكلو منفعش

ودى صورهhttp://www12.0zz0.com/2013/05/06/19/428216890.png

Alber Maher 07-05-2013 02:59 PM

انا كان قصدى ان انت لو كنت مستعجل على الحل . فكتبتلك الحل السريع بس انا معرفش انك عايز تمسح 1000 شخصية :ahah:

nesrelshark 07-05-2013 06:16 PM

يا باشا ده مش كويرى خوش على shard وى دور على Programmability هتلاقى عليها شكل+ افتحها
وى افتح stored procedures كمان اوك
دور على _DeleteCharPermanently_NoTX
وى حوط فى الى بعتهولك وى لو مش عارف تعملها ابعتلى اميلك وى انا هعملهالك ان شاء الله

nesrelshark 07-05-2013 06:22 PM

غير اسم New_VT_SHARD2
لىSRO_VT_SHARD
او زاى منتا مسمى ال SHARD بتاعك

[Slayer] 30-07-2013 03:33 AM

ايوه كدهـ يانجم تسلم اخيراااا

TYKE 30-07-2013 05:16 AM

يغلق


الساعة الآن 09:14 PM.

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