27 Haziran 2010, 17:02
|
#1 (permalink)
|
| Gold Knight
İtibar Gücü: 23
İtibar Puanı: 100
Ettiği Teşekkür: 0
Aldığı Teşekkür: 0
| [paylaşım]kod ile db'den başka db'e user aktarmak. KOD İLE DB'DEN BAŞKA DB'E USER AKTARMAK.
NEDEN Mİ?
OYUNCULARIN İTEMLERİ SİLİNMESİN DİYE.
KULLANIM ÇOK BASİT,
USERDATA, ACCOUNT_CHAR, TB_USER, WAREHOUSE
Tablolarını İmport, Export yaptıktan sonra,
Kaybolan oyuncu itemlerini Geri alabilmek için Aşağıdaki kodu uygulamanız gerekmektedir. Kod: EXEC USER_AKTAR 'nick',1 Şeklinde çalışır. Her karakter için bunu yapmanız gerekmektedir. Bu işlemi kendi sistemimde uygulayıp bitirmem 20 dakikamı almıyor.
KODU UYGULAMADAN ÖNCE KENDİNİZE GÖRE DÜZENLEYİN. Kod: CREATE PROCEDURE [dbo].[USER_AKTAR]
(
@CharID char(21),
@Day tinyint
)
AS
/*
Modifiye : AKI
*/
DECLARE @strUserID char(21)
DECLARE @Exp int,@Loyalty int,@Gold int
DECLARE @Rank tinyint,@Title tinyint,@Level tinyint,@Knights smallint,@Fame tinyint,@Strong tinyint,@Sta tinyint,@Dex tinyint,@Intel tinyint,@Cha tinyint,@Points tinyint
DECLARE @strSkill varchar(10),@strItem varchar(400),@strSerial varchar(400),@strQuest varchar(400)
DECLARE @UserInGame int,@CheckUserChar int
SELECT @UserInGame = COUNT(strCharID) FROM CURRENTUSER WHERE strCharID = @CharID
SELECT @CheckUserChar = COUNT(strUserId) FROM USERDATA WHERE strUserId = @CharID
IF @UserInGame <> 0
BEGIN
PRINT 'İşlem Yapılamadı, Kullanıcı Oyundadır.'
END
ELSE IF @CheckUserChar = 0
BEGIN
PRINT 'Böyle Bir Kullanıcı Bulunamadı'
END
ELSE
BEGIN
IF (@Day = 1)
BEGIN
SELECT @strUserId = [strUserID],@Rank = [Rank],@Title = [Title],@Level = [Level],@Exp = [Exp],@Loyalty = [Loyalty],@Knights = [Knights],@Fame = [Fame],@Strong = [Strong],@Sta = [Sta],@Dex = [Dex],@Intel = [Intel],@Cha = [Cha],@Points = [Points],@Gold = [Gold],@strSkill = [strSkill],@strItem = [strItem],@strSerial = [strSerial],@strQuest = [strQuest] FROM
-- DİKKAT: BURAYA AKTARMA ALACAĞINIZ DATABASE İN İSMİNİ
-- YAZACAKSINIZ. kn_online2 adında Yedeğiniz mi var ?
-- O Zaman Şöyle bir örnek vereyim. Kn_online2.Dbo.USERDATA
-- KARAKTERİN BULUNDUĞU DATABASE ADI VAŞLANGIÇ
Kn_online2.Dbo.USERDATA
-- KARAKTERİN BULUNDUĞU DATABASE ADI BİTİŞ
WHERE strUserID = @CharID
UPDATE USERDATA SET Rank = @Rank,Title = @Title,Level = @Level,Exp = @Exp,Loyalty = @Loyalty,Knights = @Knights,Fame = @Fame,Strong = @Strong,Sta = @Sta,Dex = @Dex,Intel = @Intel,Cha = @Cha,Points = @Points,Gold = @Gold,strSkill = @strSkill,strItem = @strItem,strSerial = @strSerial,strQuest = @strQuest WHERE strUserId = @CharID
END
ELSE
BEGIN
PRINT 'Lütfen en sona 1 yazın'
END
END |
| |