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>
106 lines
4.0 KiB
Transact-SQL
106 lines
4.0 KiB
Transact-SQL
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)
|
|
|
|
/* 캠프를 DB에서 전부 제거한다 */
|
|
delete from TblCampInfo
|
|
delete from TblCampShopInfo
|
|
delete from TblCampMineralInfo
|
|
delete from TblWorldWeaponInfo
|
|
|
|
/* 파티를 날려버린다 */
|
|
delete from PartyInfo
|
|
|
|
/* 길드전쟁, 국가전쟁 참여 플래그를 추가한다. */
|
|
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)
|