Files
Client/Server/Database/DBScript/GameDB/Part2 UPDATE/1620_2국체제로 회귀.sql
LGram16 dd97ddec92 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>
2025-11-29 20:17:20 +09:00

132 lines
4.5 KiB
Transact-SQL

-- CharInfoEx 에 컬럼 추가(국가전쟁 훈장 포인트, 로그아웃 시간) --
alter table CharInfoEx
add RealmPoint tinyint NULL
go
alter table CharInfoEx
add RealmCheckPoint tinyint NULL
go
alter table CharInfoEx
add RealmMinute tinyint NULL
go
alter table CharInfoEx
add LogoutTime smalldatetime Not NULL default(getdate())
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vUserInfo]') and OBJECTPROPERTY(id, N'IsView') = 1)
drop view dbo.vUserInfo
GO
create view dbo.vUserInfo
AS
SELECT UID,OldServerGroupID,Nation,Char1 as CID FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char2 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char3 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char4 FROM UserInfo
UNION ALL
SELECT UID,OldServerGroupID,Nation,Char5 FROM UserInfo
GO
/* 국적이 신의 해적단이면서, 종족이 휴먼인 사람들의 국적을 카르테란트로 바꿔준다. */
update UserInfo set UserInfo.Nation = 1 where UserInfo.UID in
(select distinct vUserInfo.UID from
vUserInfo INNER JOIN CharInfo
ON vUserInfo.CID = CharInfo.CID
where vUserInfo.Nation = 3 and CharInfo.Race = 0)
/* 국적이 신의 해적단이면서, 종족이 아칸인 사람들의 국적을 메르카디아로 바꿔준다. */
update UserInfo set UserInfo.Nation = 2 where UserInfo.UID in
(select distinct vUserInfo.UID from
vUserInfo INNER JOIN CharInfo
ON vUserInfo.CID = CharInfo.CID
where vUserInfo.Nation = 3 and CharInfo.Race = 1)
/* 길드 국적이 신의 해적단이고, 길드 마스터가 휴먼이면, 길드 국적을 카르테란트로 바꿔준다. */
update TblGuildInfo set TblGuildInfo.tnNationType = 1 where TblGuildInfo.nGuildID in
(select distinct TblGuildInfo.nGuildID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where tnNationType = 3 and TblGuildMember.nPosition = 1 and CharInfo.Race = 0)
/* 길드 국적이 신의 해적단이고, 길드 마스터가 아칸이면, 길드 국적을 메르카디아로 바꿔준다. */
update TblGuildInfo set TblGuildInfo.tnNationType = 2 where TblGuildInfo.nGuildID in
(select distinct TblGuildInfo.nGuildID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where tnNationType = 3 and TblGuildMember.nPosition = 1 and CharInfo.Race = 1)
/* 길드에 속한 캐릭터의 종족이, 그 길드에 가입할 수 없는 종족이면 해당 캐릭터를 길드에서 탈퇴시킨다 */
/* 길드에서 탈퇴시킬 캐릭터 정보 얻어오기 */
declare @DeleteInfo table (nCID int)
insert into @DeleteInfo
select distinct TblGuildMember.nCID from
TblGuildInfo INNER JOIN TblGuildMember
ON TblGuildInfo.nGuildID = TblGuildMember.nGuildID
INNER JOIN CharInfo
ON TblGuildMember.nCID = CharInfo.CID
where TblGuildInfo.tnNationType <> CharInfo.Race + 1
/* 길드에서 캐릭터 삭제, 캐릭터 정보에서 Guild ID클리어 */
delete from TblGuildMember where nCID in (select nCID from @DeleteInfo)
update CharInfo set CharInfo.Guild = 0 where CharInfo.CID in (select nCID from @DeleteInfo)
/* 길드간의 관계를 모두 제거한다. */
delete from TblGuildOtherList
/* 캠프를 DB에서 전부 제거한다 */
delete from TblCampInfo
delete from TblCampShopInfo
delete from TblCampMineralInfo
delete from TblWorldWeaponInfo
/* 파티를 날려버린다 */
delete from PartyInfo
Update CharInfo Set Party = 0
/* 길드전쟁, 국가전쟁 참여 플래그를 추가한다. */
ALTER TABLE [CharInfoEx] ADD [GuildWarFlag] [tinyint] NULL
ALTER TABLE [CharInfoEx] ADD [RealmWarFlag] [tinyint] NULL
/* 게임 시간 값 DB Table 생성 */
CREATE TABLE [TblGameTime] (
[GuildTime] [tinyint] NULL,
[RealmTime] [tinyint] NULL,
[SiegeTime] [tinyint] NULL,
[MiningTime] [tinyint] NULL
) ON [PRIMARY]
INSERT INTO TblGameTime(GuildTime, RealmTime, SiegeTime, MiningTime) VALUES (0, 0, 0, 0)
/* 국가 전잰 석상 DB 테이블 추가 */
CREATE TABLE [TblStatueInfo] (
[nIndex] [int] NULL,
[tnChannel] [tinyint] NULL,
[snKID] [smallint] NULL,
[nLostHP] [int] NULL
) ON [PRIMARY]
/* 국가 전쟁 석상 초기값 추가 */
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (1, 0, 1044, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (2, 0, 1044, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (3, 0, 1049, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (4, 0, 1049, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (5, 0, 1059, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (6, 0, 1059, 0)
INSERT INTO TblStatueInfo(nIndex, tnChannel, snKID, nLostHP) VALUES (7, 0, 1054, 0)