Paylasalim.forumdizini.com (P.F)

Would you like to react to this message? Create an account in a few clicks or log in to continue.

    Name Change Bugları Nelerdir ? , Nasıl Yapılırlar ? Ve Nasıl Önlenirler ?

    hako90
    hako90
    Profesyonel Üye

    Profesyonel Üye


    Name Change Bugları Nelerdir ? , Nasıl Yapılırlar ? Ve Nasıl Önlenirler ? Besikt10copy
    Mesaj Sayısı : 396
    Kayıt tarihi : 10/12/09
    Forum Başarısı : 12417
    Rep Puanı : 2
    Cinsiyeti : Name Change Bugları Nelerdir ? , Nasıl Yapılırlar ? Ve Nasıl Önlenirler ? I_icon_gender_male Doğum tarihi : 29/12/93
    Yaş : 30
    Hangi Şehir : Ankara
    Hangi Ülke : Türkiye
    Lakap : Yoktur

    asdasdaf Name Change Bugları Nelerdir ? , Nasıl Yapılırlar ? Ve Nasıl Önlenirler ?

    Mesaj tarafından hako90 Çarş. Şub. 10, 2010 3:18 am

    Name Change Bugu Nedir ? ;

    1-)
    Name Change Genellikle Moradonda Yapılan EVT Açığıdır.

    2-) 2. Bir açık ise Bazı Oyun içi ncs olan databaselerde name change prosedürünün hatalı olması nedeniyle oluşan zaten dbde olan bir karakterin ismini oyun içi yazarak yerine kendi karakterini getirip itemlerini vs. alabilmesidir.

    Nasıl Yapılır ?

    1-) Bu Bug Program Sayesinde Yapılan Bir Düpe Yöntemidir.Bu Programlar Sayesinde isim değiştir fonksiyonu ile herhangi bir karakterin ismini yazıp relogda o karakter sizin hesaba aktarılıyor.Bunu kapatmak için iki yöntemi aşağıda vericeğimdir.
    2-) Kullanıcı NCS yi alır, Name change yapılacağı npc ye gider, İsmini değiştirirken zaten olan sağlam bir kullanıcının adını yazar.. İsmi o kullanıcı adıyla değişir.. Relog atar ismini yazdığı kullanıcının bilgileri itemleri vs. o karakter üzerindedir.

    1-) Nasıl Önlerim ?

    A-) NCS yi tamamen Kaldırma ;
    Server Fileslerimizin İçinde Bulunan GameServer(Ebenezer) ve Ai Server Klasörlerindeki MAP klasöründe Olan 21.evt Dosyasını Bulup Not Defteri İle Açıyoruz.CRTL+F Komutu ile CHANGE_NAME aratıyoruz ve bunu örn CHXASD_NASXME Gibi kafamıza göre değiştiriyoruz.Kaydedip Çıkıyoruz Hem Ai Server Hemde GameServerdeki Map klasörün içindeki 21.evt editliyoruz.

    B-) NCS yi kaldırmadan düzeltme ; (Programın Girdiği CHANGE_NAME Kodunu ebenezer ve evt lerden değiştirerek hem çalışmasını sağlayıp hemde programı engellemiş oluruz )

    GameServer.exe mizi hex workshop (decimal) yardımı ile açıyoruz.CRTL+F Komutu ile CHANGE_NAME Diye Aratıp Değiştiriyoruz Örn CHXASD_NASXME Yaptık, 21.evt lere girip CHANGE_NAME Yazan yerlere CHXASD_NASXME Yazıp Kaydedip Oyunu Açıyoruz İşte Bu Kadar Artık Fixlemiş Olduk.

    2-) Nasıl Önlerim ?

    Aşağıdaki Kodu Query Analyzera girin ;
    CREATE PROCEDURE CHANGE_NEW_ID
    @byType char(21),
    @AccountID char(21),
    @OldCharID char(21),
    @NewCharID char(21),
    @nRet smallint output
    AS
    /*
    Author : AKUMA
    */
    DECLARE @CheckUserID int
    SELECT @CheckUserID = COUNT(strUserID) FROM USERDATA WHERE strUserID = @NewCharID
    IF @CheckUserID = 0
    BEGIN
    -- Change Account All Information
    UPDATE ACCOUNT_CHAR SET strCharID1 = @NewCharID WHERE strCharID1 = @OldCharID AND strCharID1 is not null
    UPDATE ACCOUNT_CHAR SET strCharID2 = @NewCharID WHERE strCharID2 = @OldCharID AND strCharID2 is not null
    UPDATE ACCOUNT_CHAR SET strCharID3 = @NewCharID WHERE strCharID3 = @OldCharID AND strCharID3 is not null
    UPDATE USERDATA SET strUserId = @NewCharID WHERE strUserId = @OldCharID AND strUserId is not null
    -- Change Information a User in Knights
    UPDATE KNIGHTS_USER SET strUserId = @NewCharID WHERE strUserId = @OldCharID AND strUserId is not null
    UPDATE KNIGHTS SET Chief = @NewCharID WHERE Chief = @OldCharID AND Chief is not null
    UPDATE KNIGHTS SET ViceChief_1 = @NewCharID WHERE ViceChief_1 = @OldCharID AND ViceChief_1 is not null
    UPDATE KNIGHTS SET ViceChief_2 = @NewCharID WHERE ViceChief_2 = @OldCharID AND ViceChief_2 is not null
    UPDATE KNIGHTS SET ViceChief_3 = @NewCharID WHERE ViceChief_3 = @OldCharID AND ViceChief_3 is not null
    -- Change Information a User is King
    UPDATE KING_SYSTEM SET strKingName = @NewCharID WHERE strKingName = @OldCharID AND strKingName is not null
    UPDATE KING_ELECTION_LIST SET strName = @NewCharID WHERE strName = @OldCharID AND strName is not null
    -- Change User Friend List Information
    UPDATE FRIEND_LIST SET strUserID = @NewCharID where strUserID = @OldCharID
    -- User Rental Item
    UPDATE RENTAL_ITEM SET strLenderCharID = @NewCharID WHERE strLenderCharID = @OldCharID AND strLenderCharID is not null
    UPDATE RENTAL_ITEM SET strBorrowerCharID = @NewCharID WHERE strBorrowerCharID = @OldCharID AND strBorrowerCharID is not null
    UPDATE RENTAL_ITEM_LIST SET strBorrowerCharID = @NewCharID WHERE strBorrowerCharID = @OldCharID AND strBorrowerCharID is not null
    -- Change CurrentUser
    UPDATE CURRENTUSER SET strCharID = @NewCharID WHERE strCharID = @OldCharID
    -- Change Saved Magic
    UPDATE USER_SAVED_MAGIC SET strCharID = @NewCharID WHERE strCharID = @OldCharID
    -- Change Skill Shorcut
    UPDATE USERDATA_SKILLSHORTCUT SET strCharID = @NewCharID WHERE strCharID = @OldCharID
    -- Name Change is Sucessfull
    SET @nRet = 0
    RETURN
    END
    ELSE
    BEGIN
    -- Entered ID is Already Being Used Another Character
    SET @nRet = 1
    RETURN
    END

    Eğer hata alırsanız ( DB de bu prosedür zaten var der ) 'CREATE PROCEDURE' kısmını 'ALTER PROCEDURE' olarak değiştirin.alıntıdır

      Forum Saati Cuma Mart 29, 2024 12:14 am