başlangıç itemleri

  • Konbuyu başlatan Konbuyu başlatan kankanet
  • Başlangıç tarihi Başlangıç tarihi
Konu Yazar

kankanet

New Member
Kas
12
0
database başlangış editörden girdiğimde charların üzerinde itemler gözüküyor ama oyunu açtığımda örnek veriyorum hell pot yok warriorda destroyer olması lazım o da gözükmüyor yada ring of felankor koyuyorum invertorysine ama oyuna giriyorum gözükmüyor bu neden kaynaklanır arkadaşlar databaseden mi yok başka bişeyden mi
 
Cevap: başlangıç itemleri

Create_new_char prosüdüründen kaynaklanıyor muhtemelen baslangic itemlerini oluşturan kodlari eksik girdiniz tekrar kontrol etmenizi öneririm.
 
Cevap: başlangıç itemleri

Vereceğim kodları veritabanınıza girin ardından editörle eklemelerinizi yapın.
Kolay gelsin.

Kod:
[LEFT]if exists (select * from dbo.sysobjects where id =  object_id(N'[dbo].[baslangic_duzenle]') and OBJECTPROPERTY(id,  N'IsUserTable') = 1)[/LEFT]

drop table [dbo].[baslangic_duzenle]GO CREATE TABLE [dbo].[baslangic_duzenle] ([dwid] [int] NULL ,[stacksize] [smallint] NULL ,[durability] [smallint] NULL ,[strUserId] [varchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,[sira] [int] NULL ,[itembasicname] [varchar] (100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,[strSerial] [int] NULL ) ON [PRIMARY]GO   if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[baslangic]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table [dbo].[baslangic]GO CREATE TABLE [dbo].[baslangic] ([class] [smallint] NULL ,[stritem] [varchar] (400) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]GO  -- Ko-Cuce 2008insert into baslangic values ('5' , ':ø~')insert into baslangic values ('6' , ':ø~')insert into baslangic values ('7' , ':ø~')insert into baslangic values ('5' , ':ø~')insert into baslangic values ('1' , '' )insert into baslangic values ('2' , '' )insert into baslangic values ('3' , '' ) [LEFT]insert into baslangic values ('4' , '' )[/LEFT]
Kod:
[LEFT]CREATE procedure baslangicitemleri_bul [/LEFT]

@StrUserID intASDECLARE@length int, -- stritem uzunluğu@i int, -- item'in stritem deki yeri@dwid int, @dur int,@duar int,@Kocuce int,@StackSize1 int,@Sira int,@Row int,@name varchar(100),@extname varchar(100),@ext int,@strSerial intset @i = 14*0+1set @length = 401select @Row=count(*) from baslangic where class=@StrUserIDdelete from baslangic_duzenle where struserid=@StrUserIDif @Row>0 beginWHILE @i < @lengthBegin--Buraya İşemek Yasaktır-- Burası Türkiye :o ( herkez işeyebilir )Select @dwid=cast(cast(substring(cast(substring(strItem, @i,4) as  varbinary(4)), 4, 1)+substring(cast(substring(strItem, @i,4) as  varbinary(4)), 3, 1)+substring(cast(substring(strItem, @i,4) as  varbinary(4)), 2, 1)+substring(cast(substring(strItem, @i,4) as  varbinary(4)), 1, 1) as varbinary(4)) as int(4)),@dur = cast(cast(cast( substring(strItem, @i+5, 1) as  varbinary(1))+cast(substring(strItem, @i+4, 1) as varbinary(1)) as  varbinary(2)) as smallint),@StackSize1 = cast(cast(cast( substring(strItem, @i+7, 1) as  varbinary(1))+cast(substring(strItem, @i+6, 1) as varbinary(1)) as  varbinary(2)) as smallint),@StrUserID = classFrom baslangicWhere class = @StrUserIDif @dwid=0 beginset @extname='~~~~~~ item yok ~~~~~~'set @name='~~~~~~ item yok ~~~~~~'endelsebeginset @extname='Bulunamadi'select @extname=strname from item where num=@dwidendinsert into baslangic_duzenle  (dwid,stacksize,durability,struserid,sira,itembasicname)  values(@dwid,@StackSize1,@dur,@StrUserID,(@i-1) / 8,@extname )set @i=@i+8end select * from baslangic_duzenle where struserid=@StrUserID order by siraend [LEFT]GO[/LEFT]
Kod:
[LEFT]CREATE procedure baslangicitemleri_kaydet[/LEFT]

@StrUserID intASDECLARE@length int, -- stritem uzunluğu@row int, -- yerine göre deişior.@i int, -- item'in stritem deki yeri@dwid int, -- dwid@pos int,@dur int,@dur1 int,@Kocuce int,@ext int,@StackSize1 int,@strName varchar(30),@strExtName varchar(30),@strSerial int,@CstrSerial varbinary(4),@Cdwid varbinary(4),@Cdur varchar(2),@Source tinyint,@NEWdwid int,@StackSize int,@Cstack varchar(2),@sira intset @sira=0set @i = 14*0set @length = 401select @row=count( * ) from baslangic where class=@StrUserIDif @row>0 beginSelect @dwid=dwid,@dur = durability,@StackSize1 = stacksize,@StrUserID = strUserIDFrom baslangic_duzenleWhere strUserID = @StrUserID and sira=@siraprint @dwidSet @Cdwid = Substring(cast(@dwid as varbinary(4)), 4, 1) +  Substring(cast(@dwid as varbinary(4)), 3, 1) + Substring(cast(@dwid as  varbinary(4)), 2, 1) + Substring(cast(@dwid as varbinary(4)), 1, 1)Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2,  1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))update UserData set strItem = cast(cast(cast(@Cdwid as varchar(4)) + @Cdur + @Cstack as varchar(8)) as binary(400)) where class = @StrUserIDset @i=@i+8set @sira=@sira+1WHILE @sira < 50BeginSelect @dwid=dwid,@dur = durability,@StackSize1 = stacksize, @StrUserID = strUserIDFrom baslangic_duzenleWhere strUserID = @StrUserID and sira=@siraSet @Cdwid = Substring(cast(@dwid as varbinary(4)), 4, 1) +  Substring(cast(@dwid as varbinary(4)), 3, 1) + Substring(cast(@dwid as  varbinary(4)), 2, 1) + Substring(cast(@dwid as varbinary(4)), 1, 1)Set @Cdur = cast(Substring(cast(@dur as varbinary(2)), 2, 1)+Substring(cast(@dur as varbinary(2)), 1, 1) as varchar(2))Set @Cstack = cast(Substring(cast(@StackSize1 as varbinary(2)), 2,  1)+Substring(cast(@StackSize1 as varbinary(2)), 1, 1) as varchar(2))set @CstrSerial = Substring(cast(@strSerial as varbinary(4)), 4, 1) +  Substring(cast(@strSerial as varbinary(4)), 3, 1) +  Substring(cast(@strSerial as varbinary(4)), 2, 1) +  Substring(cast(@strSerial as varbinary(4)), 1, 1)--KO-Cuce.com 2008update baslangic setstrItem = cast(substring(strItem, 1, @i) + cast(cast(@Cdwid as  varchar(4)) + @Cdur + @Cstack as varchar(8)) + substring(strItem, @i+8,  401-@i) as binary(400))where class = @StrUserID--Buraya İşemek Yasaktırset @i=@i+8set @sira=@sira+1endend   [LEFT]GO[/LEFT]
Kod:
[LEFT]CREATE PROCEDURE baslangicitem[/LEFT]

@account varchar(21)ASbegin declare @class smallint select @class = cast(substring(cast(class as varchar(3)),2,2) as smallint(2)) from userdata where struserid=@account if @class=1 or @class=5 or @class=6set @class = 1 if @class=2 or @class=7 or @class=8set @class = 2 if @class=3 or @class=9 or @class=10set @class = 3 if @class=4 or @class=11 or @class=12set @class = 4 update userdata set stritem = (select stritem from baslangic where class=@class) where struserid=@account end   [LEFT]GO[/LEFT]
Eğer Başlangıç İtem Değiştirme v1 Kurulu ise , 4. Kodu Girmeyebilirsiniz. Yani Prosedürlerde baslangicitem prosedürü var ise.


ve Son Olarak ,

Uygulanması gereken Kod:
Kod:
[LEFT]/****** Object: Stored Procedure dbo.CREATE_NEW_CHAR Script Date: 6/6/2006 6:03:33 PM ******/[/LEFT]

  /****** 개체: 저장 프로시저 dbo.CREATE_NEW_CHAR 스크립트 날짜: 2002-11-14 오전 11:18:03 ******/  -- scripted by -- 2002.01.17-- 2003.02.06 sungyong  ALTER PROCEDURE CREATE_NEW_CHAR @nRet smallint OUTPUT, @AccountID char(21), @index tinyint,@CharID char(21),@Race tinyint, @Class smallint, @Hair tinyint,@Face tinyint, @Str tinyint, @Sta tinyint, @Dex tinyint,@Intel tinyint, @Cha tinyint AS DECLARE @Row tinyint, @Nation tinyint, @Zone tinyint, @PosX int, @PosZ intSET @Row = 0 SET @Nation = 0 SET @Zone = 0 SET @PosX = 0 SET @PosZ = 0 SELECT @Nation = bNation, @Row = bCharNum FROM ACCOUNT_CHAR WHERE strAccountID = @AccountID IF @Row >= 5 SET @nRet = 1 IF @Nation = 1 AND @Race > 10 SET @nRet = 2ELSE IF @Nation = 2 AND @Race < 10 SET @nRet = 2ELSE IF @Nation <>1 AND @Nation <> 2 SET @nRet = 2 IF @nRet > 0RETURN SELECT @Row = COUNT(*) FROM USERDATA WHERE strUserId = @CharIDIF @Row > 0 BEGINSET @nRet = 3RETURNEND --SET @Zone = @NationSET @Zone=21SELECT @PosX = InitX, @PosZ = InitZ FROM ZONE_INFO WHERE ZoneNo = @Zone  BEGIN TRAN IF @index = 0UPDATE ACCOUNT_CHAR SET strCharID1 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountIDELSE IF @index = 1UPDATE ACCOUNT_CHAR SET strCharID2 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountIDELSE IF @index = 2UPDATE ACCOUNT_CHAR SET strCharID3 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountIDELSE IF @index = 3UPDATE ACCOUNT_CHAR SET strCharID4 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountIDELSE IF @index = 4UPDATE ACCOUNT_CHAR SET strCharID5 = @CharID, bCharNum = bCharNum + 1 WHERE strAccountID = @AccountID  INSERT INTO USERDATA (strUserId, Nation, Race, Class, HairColor, Face, Strong, Sta, Dex, Intel, Cha, Zone, PX, PZ ) VALUES (@CharID, @Nation, @Race, @Class, @Hair, @Face, @Str, @Sta, @Dex, @Intel, @Cha, @Zone, @PosX, @PosZ ) exec baslangicitem @CharID IF @@ERROR <> 0BEGIN ROLLBACK TRAN SET @nRet = 4RETURNEND COMMIT TRANSET @nRet = 0 [LEFT]GO[/LEFT]
 
Geri
Üst Alt