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

Paylaş
avatar
Flexy

Favori Oyun Favori Oyun : WolfTeam
Nick Nick : Ko-PVP
Karakter Karakter : Asas
Irk Irk : El Morad
Cinsiyet Cinsiyet : Erkek
Mesaj Sayısı Mesaj Sayısı : 73
Rep Puanı Rep Puanı : 1
Kayıt tarihi Kayıt tarihi : 26/12/09
Lakap Lakap : Asker

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

Mesaj tarafından Flexy Bir Cuma Ocak 15, 2010 10:50 pm

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 ;

Kod:
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

(Kod AKUMA'dan Alıntıdır.)
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 Ocak 18, 2019 2:17 pm