Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
CREATE TABLE [dbo].[CharSpell] (
|
||||
[CID] [int] NOT NULL ,
|
||||
[Spell] [varbinary] (270) NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[CharSpell] WITH NOCHECK ADD
|
||||
PRIMARY KEY CLUSTERED
|
||||
(
|
||||
[CID]
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[CharSpell] ADD
|
||||
CONSTRAINT [FK_CharSpell_CharInfo] FOREIGN KEY
|
||||
(
|
||||
[CID]
|
||||
) REFERENCES [dbo].[CharInfo] (
|
||||
[CID]
|
||||
)
|
||||
@@ -0,0 +1,124 @@
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE PROCEDURE dbo.InsertChar
|
||||
@user_uid AS INT, /* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD> */
|
||||
@user_pos AS INT, /* ij<><C4B3><EFBFBD><EFBFBD> <20><>ġ (3<><33><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>) */
|
||||
@user_name AS VARCHAR(16), /* ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD> */
|
||||
@user_Sex AS TINYINT, /* ij<><C4B3><EFBFBD><EFBFBD> <20><> */
|
||||
@user_Hair AS TINYINT, /* ij<><C4B3><EFBFBD><EFBFBD> <20>Ӹ<EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||
@user_Face AS TINYINT, /* ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||
@user_Nation AS TINYINT, /* ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||
@user_Class AS SMALLINT, /* ij<><C4B3><EFBFBD><EFBFBD> Ŭ<><C5AC><EFBFBD><EFBFBD> */
|
||||
@C_Gold AS INT, /* ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
@C_STR AS SMALLINT, /* ij<><C4B3><EFBFBD><EFBFBD> STR */
|
||||
@C_DEX AS SMALLINT, /* ij<><C4B3><EFBFBD><EFBFBD> DEX */
|
||||
@C_CON AS SMALLINT, /* ij<><C4B3><EFBFBD><EFBFBD> CON */
|
||||
@C_INT AS SMALLINT, /* ij<><C4B3><EFBFBD><EFBFBD> INT */
|
||||
@C_WIS AS SMALLINT, /* ij<><C4B3><EFBFBD><EFBFBD> WIS */
|
||||
@PointX AS REAL, /* ij<><C4B3><EFBFBD><EFBFBD> Point X <20><>ǥ */
|
||||
@PointY AS REAL, /* ij<><C4B3><EFBFBD><EFBFBD> Point Y <20><>ǥ */
|
||||
@PointZ AS REAL, /* ij<><C4B3><EFBFBD><EFBFBD> Point Z <20><>ǥ */
|
||||
@C_Equip AS varBINARY(30), /* <20><><EFBFBD><EFBFBD> (2 * 15 = 30) */
|
||||
@Skill AS varBinary(84),
|
||||
@UserInfoType TINYINT,
|
||||
@CID INT OUTPUT
|
||||
AS
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
--DECLARE @UID INT
|
||||
DECLARE @C_HP INT, @C_MP INT
|
||||
|
||||
/* ij<><C4B3><EFBFBD><EFBFBD> <20≯<EFBFBD> Ȯ<><C8AE> */
|
||||
SELECT @CID = CID FROM CharInfo WHERE Name = @user_name
|
||||
IF @CID <> 0
|
||||
BEGIN
|
||||
SET @CID = -1 /* <20><><EFBFBD><EFBFBD> <20≯<EFBFBD> <20><><EFBFBD><EFBFBD> */
|
||||
RETURN
|
||||
END
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD> Ȯ<><C8AE> */
|
||||
DECLARE @CharSlot INT
|
||||
IF @user_pos = 0
|
||||
BEGIN
|
||||
SELECT @CharSlot = Char1 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
|
||||
END
|
||||
ELSE IF @user_pos = 1
|
||||
BEGIN
|
||||
SELECT @CharSlot = Char2 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
|
||||
END
|
||||
ELSE IF @user_pos = 2
|
||||
BEGIN
|
||||
SELECT @CharSlot = Char3 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
|
||||
END
|
||||
ELSE IF @user_pos = 3
|
||||
BEGIN
|
||||
SELECT @CharSlot = Char4 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
|
||||
END
|
||||
ELSE IF @user_pos = 4
|
||||
BEGIN
|
||||
SELECT @CharSlot = Char5 FROM UserInfo WHERE UID = @user_uid AND OldServerGroupID = @UserInfoType
|
||||
END
|
||||
|
||||
IF @CharSlot <> 0
|
||||
BEGIN
|
||||
SET @CID = -2 /* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
|
||||
RETURN
|
||||
END
|
||||
|
||||
SET @C_HP = 100 + @C_CON * 8 + 2
|
||||
IF @C_INT > @C_WIS
|
||||
BEGIN
|
||||
SET @C_MP = 100 + @C_INT * 8 + 2
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @C_MP = 100 + @C_WIS * 8 + 2
|
||||
END
|
||||
|
||||
BEGIN TRAN
|
||||
|
||||
SELECT @CID = MAX(CID) + 1 FROM CharInfo WITH (UPDLOCK)
|
||||
|
||||
IF (@CID IS NULL)
|
||||
SET @CID = 1
|
||||
|
||||
INSERT INTO CharInfo (CID,Name, Sex, Hair, Face, Race, Class, Equip, Gold, STR, DEX, CON, Intell, WIS, HP, MP)
|
||||
VALUES (@CID,@user_name, @user_Sex, @user_Hair, @user_Face, @user_Nation, @user_Class, @C_Equip, @C_Gold, @C_STR, @C_DEX, @C_CON, @C_INT, @C_WIS, @C_HP, @C_MP)
|
||||
|
||||
IF @@ERROR <> 0
|
||||
BEGIN
|
||||
ROLLBACK TRAN
|
||||
SET @CID = -100
|
||||
RETURN
|
||||
END
|
||||
|
||||
COMMIT TRAN
|
||||
|
||||
INSERT INTO CharInfoEx (CID) VALUES (@CID)
|
||||
|
||||
INSERT INTO CharItem (CID) VALUES (@CID)
|
||||
INSERT INTO CharItemEx (CID) VALUES (@CID)
|
||||
|
||||
INSERT INTO CharSkill (CID, Skill) VALUES (@CID, @Skill)
|
||||
|
||||
INSERT INTO CharSpell (CID) VALUES (@CID)
|
||||
|
||||
INSERT INTO CharPos (CID, LastPointX, LastPointY, LastPointZ, SavePointX, SavePointY, SavePointZ) VALUES (@CID, @PointX, @PointY, @PointZ, @PointX, @PointY, @PointZ)
|
||||
|
||||
INSERT INTO CharInfo_Time(CID,CreateTime,UpdateTime)
|
||||
VALUES (@CID,GETDATE(),GETDATE())
|
||||
|
||||
INSERT INTO Friend (CID) VALUES (@CID)
|
||||
INSERT INTO Quest (CID) VALUES (@CID)
|
||||
|
||||
-- UnifiedCharList<73><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20>Է<EFBFBD><D4B7>ϱ<EFBFBD>
|
||||
INSERT TblUnifiedCharList(UID,OldServerGroupID,BeforeCID,NewCID,BeforeCharName)
|
||||
VALUES (@user_uid,@UserInfoType,@CID,@CID,@user_name)
|
||||
|
||||
|
||||
/* <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̺<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ */
|
||||
EXEC UpdateCharUID @user_uid, @user_pos, @CID , @UserInfoType
|
||||
GO
|
||||
@@ -0,0 +1,2 @@
|
||||
UPDATE CharSpell Set Spell = 0xFFFFFFFF35000100050000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
WHERE CID IN (SELECT CID FROM CharInfo WHERE Level = 100)
|
||||
@@ -0,0 +1,26 @@
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
-- UpdateCharSpell.sql
|
||||
----------------------------------------------------------------------------------------------------------------------
|
||||
/*
|
||||
ij<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
|
||||
|
||||
CREATE PROCEDURE dbo.UpdateCharSpell
|
||||
@char_uid AS INT, /* ij<><C4B3><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD>̵<EFBFBD> */
|
||||
@C_Spell AS varBINARY(1664) /* <20><><EFBFBD><EFBFBD> (128 * 13 = 1664) */
|
||||
AS
|
||||
|
||||
SET NOCOUNT ON
|
||||
|
||||
IF EXISTS (SELECT CID FROM CharSpell WHERE CID = @char_uid)
|
||||
BEGIN
|
||||
UPDATE CharSpell SET Spell = @C_Spell WHERE CID = @char_uid
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
INSERT INTO CharSpell(CID,Spell)
|
||||
VALUES (@char_uid,@C_Spell)
|
||||
END
|
||||
GO
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -0,0 +1,7 @@
|
||||
1. CharSpell(Table).sql<71><6C> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> CharSpell <20><><EFBFBD>̺<EFBFBD><CCBA><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
2. SELECT CID FROM CharInfo<66><6F> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> CID<49><44> <20><><EFBFBD>Խ<EFBFBD><D4BD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> Insert<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD> <20><><EFBFBD><EFBFBD> Insert<72><74><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
- ã<><C3A3><EFBFBD><EFBFBD> : [0-9]*
|
||||
- <20>ٲܸ<D9B2> : INSERT INTO CharSpell(CID) VALUES(\0)
|
||||
3. UpdateCharSpell(Procedure).sql UpdateCharSpell <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
4. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ִ<EFBFBD> InsertChar <20><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD><EFBFBD> InsertChar(Procedure).sql<71><6C> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
||||
5. <20><><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD>װ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ٸ<EFBFBD> SetSpell(Query)<29><> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 100<30><30><EFBFBD>̴<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>鿡<EFBFBD><E9BFA1> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ<EFBFBD><C6AE> <20>ο<EFBFBD><CEBF>Ѵ<EFBFBD>.
|
||||
Reference in New Issue
Block a user