Experienced Elementalist
- Joined
- Apr 25, 2014
- Messages
- 230
- Reaction score
- 7
ty.....
Hey guys,
I played around with the pearl shop, and updated the cashproduct table, activating pretty much all items (be prepared for a full, full pearl shop)
the file goes in ..\NovaServer\GameCommonDataUnpack\DataSheet\LocalDataSheet
Make a backup of #NA#DataSheet_CashProduct.xlsx just in case before overwriting. Hope you enjoy!
Link:
You must be registered to see links
Is this file work for cosair version, too?
nope,,its not working in cosair version....It should, but you will miss all the new stuff added after the nova version.
no. 8GB is fine for the client but the server far more. Even for a single player.ther is commands line to run the server in less memory like 8go ? for single Player
Is it possible to run this in a light mode with less resources. I mean from a dev point of view this should be possible. WTF is causing this RAM need. Is it monolith, can we turn off some parts?
Is it possible to run this in a light mode with less resources. I mean from a dev point of view this should be possible. WTF is causing this RAM need. Is it monolith, can we turn off some parts?
ep 112Gb enough...
{"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoSqlHappenOdbcError","ErrorString":"SQL실행중 ODBC오류가 발생했습니다.","Log":"Thd(8664):DB(d:/bdo_server/GameServerData/field.dsn:CrimsonDesert)(42000:[Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'PaGamePublic.uspCleanupFieldRepository'.)=>sql.clearnupFieldRepository()=>(gm::GameModulePattern::Reload/D:\Global_Alpha\code\CrimsonDesert\src\GameModule\GameModulePattern.cpp/1843)=>Last(//-1)" }
{"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"5","ErrorNo":"eErrNoDbInternalError","ErrorString":"처리 중 내부 오류가 발생했습니다.","Log":"sql.clearnupFieldRepository(), sqlRv(1)" }
{"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoCantReload","ErrorString":"Reload 할 수 없습니다.","Log":"ErrNo(1815705047)" }
{"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonFailInitializeFunction","ErrorString":"Timer데몬이 초기화 함수 호출에 실패했다.","Log":"ErrNo(1370852844)" }
{"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonCantStart","ErrorString":"Timer데몬을 시작할 수 없습니다.","Log":"ErrNo(2051413970)" }
{"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoSqlHappenOdbcError","ErrorString":"SQL실행중 ODBC오류가 발생했습니다.","Log":"Thd(7128):DB(d:/bdo_server/GameServerData/field.dsn:CrimsonDesert)(42000:[Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'PaGamePublic.uspCleanupFieldRepository'.)=>sql.clearnupFieldRepository()=>(gm::GameModulePattern::Reload/D:\Global_Alpha\code\CrimsonDesert\src\GameModule\GameModulePattern.cpp/1843)=>Last(//-1)" }
{"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"5","ErrorNo":"eErrNoDbInternalError","ErrorString":"처리 중 내부 오류가 발생했습니다.","Log":"sql.clearnupFieldRepository(), sqlRv(1)" }
{"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoCantReload","ErrorString":"Reload 할 수 없습니다.","Log":"ErrNo(1815705047)" }
{"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonFailInitializeFunction","ErrorString":"Timer데몬이 초기화 함수 호출에 실패했다.","Log":"ErrNo(1370852844)" }
{"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonCantStart","ErrorString":"Timer데몬을 시작할 수 없습니다.","Log":"ErrNo(2051413970)" }
Me change system to new Windows Server 2022 + MS SQL Server 2019CU18.
And when starting Field Server catch error:
Code:{"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoSqlHappenOdbcError","ErrorString":"SQL실행중 ODBC오류가 발생했습니다.","Log":"Thd(8664):DB(d:/bdo_server/GameServerData/field.dsn:CrimsonDesert)(42000:[Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'PaGamePublic.uspCleanupFieldRepository'.)=>sql.clearnupFieldRepository()=>(gm::GameModulePattern::Reload/D:\Global_Alpha\code\CrimsonDesert\src\GameModule\GameModulePattern.cpp/1843)=>Last(//-1)" } {"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"5","ErrorNo":"eErrNoDbInternalError","ErrorString":"처리 중 내부 오류가 발생했습니다.","Log":"sql.clearnupFieldRepository(), sqlRv(1)" } {"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoCantReload","ErrorString":"Reload 할 수 없습니다.","Log":"ErrNo(1815705047)" } {"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonFailInitializeFunction","ErrorString":"Timer데몬이 초기화 함수 호출에 실패했다.","Log":"ErrNo(1370852844)" } {"Date":"2022-12-16 16:02:59","ThreadId":"0x21D8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonCantStart","ErrorString":"Timer데몬을 시작할 수 없습니다.","Log":"ErrNo(2051413970)" }
>>Could not find stored procedure 'PaGamePublic.uspCleanupFieldRepository'
Does anyone know how fix it?
If me create empty procedure 'PaGamePublic.uspCleanupFieldRepository' with returns @rv = 0 but still:
Code:{"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoSqlHappenOdbcError","ErrorString":"SQL실행중 ODBC오류가 발생했습니다.","Log":"Thd(7128):DB(d:/bdo_server/GameServerData/field.dsn:CrimsonDesert)(42000:[Microsoft][ODBC SQL Server Driver][SQL Server]Could not find stored procedure 'PaGamePublic.uspCleanupFieldRepository'.)=>sql.clearnupFieldRepository()=>(gm::GameModulePattern::Reload/D:\Global_Alpha\code\CrimsonDesert\src\GameModule\GameModulePattern.cpp/1843)=>Last(//-1)" } {"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"5","ErrorNo":"eErrNoDbInternalError","ErrorString":"처리 중 내부 오류가 발생했습니다.","Log":"sql.clearnupFieldRepository(), sqlRv(1)" } {"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoCantReload","ErrorString":"Reload 할 수 없습니다.","Log":"ErrNo(1815705047)" } {"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonFailInitializeFunction","ErrorString":"Timer데몬이 초기화 함수 호출에 실패했다.","Log":"ErrNo(1370852844)" } {"Date":"2022-12-16 20:27:43","ThreadId":"0x1BD8","LogType":"00","LogLevel":"6","ErrorNo":"eErrNoTimerDaemonCantStart","ErrorString":"Timer데몬을 시작할 수 없습니다.","Log":"ErrNo(2051413970)" }
USE [GAME]
GO
/****** Object: StoredProcedure [PaGamePublic].[uspCleanupFieldRepository] Script Date: 16.12.2022 21:27:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [PaGamePublic].[uspCleanupFieldRepository]
[USER=1333386369]Explo[/USER]rationType BIGINT -- 유지보수를 위해서 C++에서 정의한 값을 사용한다.(탐험)
[USER=874269]Int[/USER]imacyType BIGINT -- 유지보수를 위해서 C++에서 정의한 값을 사용한다.(친밀도)
,@fromPcWorkingType TINYINT -- 작업종류(PcWorkingType와 연결됨)
[USER=357510]top[/USER]cWorkingType TINYINT -- 작업종류(PcWorkingType와 연결됨)
,@removableWorkingType0 TINYINT -- 이미 존재하는 녀석을 삭제해야 하는 경우 삭제될 녀석의 PcWorkingType
,@removableWorkingType1 TINYINT -- 이미 존재하는 녀석을 삭제해야 하는 경우 삭제될 녀석의 PcWorkingType
,@currentTime DATETIME -- 서버 시간으로 체크한다.
[USER=2000318537]Serv[/USER]antWhereType TINYINT -- 탈것 소유자 타입 ( only 0 = 유저 )
[USER=237450]GuiL[/USER]dItemKeyString VARCHAR(MAX) -- 길드 아이템키 목록
[USER=237450]GuiL[/USER]dItemKeyCount INT -- 길드 아이템키 갯수
,@campingWhereType TINYINT -- 캠프 servantWhereType (only 4 = 캠프)
[USER=333975]Sym[/USER]No NVARCHAR(50) OUTPUT -- 실패한 경우에만 의미있음
AS
/*!
* \brief 필드저장소 정리
* \remarks 1.(성능을 위해서) 가능하면 게임서비스중에 바로 삭제를 하지말고, 점검시간에 삭제하도록 하자.
* 2.삭제가 안된다고 서비스에 문제가 있는 것은 아니므로 transaction처리를 하지 않는다.
* => 또한 성능을 우선시 한다.
* 3.무결성을 위해서 순서가 중요하다. 함부로 변경하지 말아라!
* 4.서비스중에 호출되는 것이 아니다. 필드서버 기동시나, 점검시에 호출된다.
* 5.PC의 작업상태가 @fromPcWorkingType 인 녀석을 [USER=357510]top[/USER]cWorkingType 으로 변경한다.
* \author 지희환
*/
BEGIN
SET NOCOUNT ON -- Count-set결과를생성하지말아라.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
SET LOCK_TIMEOUT 180000 -- 함부로변경금지, 변경필요시DBA와협의.(3분)
SET XACT_ABORT ON
DECLARE @rv INT = 0 -- 0:성공, 음수:오류코드, 양수:사용하면안됨(ODBC오류로처리함)
/**********************************************************************************************
** 작업시작(이하에만기술)
**********************************************************************************************/
--BEGIN TRAN uspCleanupFieldRepository_Tx1 -- 트랜잭션 이름과 순서를 명시한다
DECLARE @eItemWhereTypeInventory TINYINT = PaGameEnum.eItemWhereTypeInventory()
DECLARE @eItemWhereTypeEquip TINYINT = PaGameEnum.eItemWhereTypeEquip()
DECLARE @eItemWhereTypeDrop TINYINT = PaGameEnum.eItemWhereTypeDrop()
DECLARE @eItemWhereTypeServantInventory TINYINT = PaGameEnum.eItemWhereTypeServantInventory()
DECLARE @rvTmp INT = 0;
-- Non Player가 소유한 아이템은 드랍/삭제등이 된 아이템이므로 정리함.
DELETE FROM PaGamePrivate.TblItemRepository WHERE (_itemWhereType = @eItemWhereTypeDrop) AND (_isValid <> 0)
-- 공용대포에 실린 포탄 삭제
DELETE FROM PaGamePrivate.TblItemRepository WHERE (_itemWhereType = @eItemWhereTypeServantInventory) AND (_ownerNo = 0) AND (_isValid <> 0)
-- 삭제된 일꾼에게 할당된 작업삭제
DELETE TWorkerWorking
FROM PaGamePrivate.TblWorkerWorking AS TWorkerWorking
WHERE TWorkerWorking._workerNo NOT IN( SELECT _workerNo FROM PaGamePrivate.TblWorker WHERE _workerNo = TWorkerWorking._workerNo AND _deleteDate IS NULL )
-- 플레이중으로 설정된 녀석을 logout된 것으로 변경시켜야 한다.
UPDATE PaGamePrivate.TblPcWorking
SET _pcWorkingType = [USER=357510]top[/USER]cWorkingType
WHERE (@fromPcWorkingType = _pcWorkingType)
-- 삭제일자가 지난 캐릭터 삭제. 단, 관련 모든 data삭제해야함.
DECLARE CursorDeletedCharacter CURSOR LOCAL FAST_FORWARD
FOR SELECT _userNo, _characterNo FROM PaGamePrivate.TblCharacterInformation WHERE (_deletedDate IS NOT NULL) AND (_deletedDate <= @currentTime) AND (_isValid <> 0)
OPEN CursorDeletedCharacter
IF(0 <> @@CURSOR_ROWS)
BEGIN
DECLARE [USER=1335]user[/USER]No BIGINT
DECLARE [USER=1333352388]Character[/USER]No BIGINT
FETCH NEXT FROM CursorDeletedCharacter INTO [USER=1335]user[/USER]No, [USER=1333352388]Character[/USER]No
WHILE(0 = @@FETCH_STATUS)
BEGIN
EXEC @rvTmp = PaGamePublic.uspDeleteCharacter__XXX [USER=1333352388]Character[/USER]No
,@removableWorkingType0
,@removableWorkingType1
,FALSE
[USER=2000318537]Serv[/USER]antWhereType
[USER=333975]Sym[/USER]No OUTPUT
FETCH NEXT FROM CursorDeletedCharacter INTO [USER=1335]user[/USER]No, [USER=1333352388]Character[/USER]No
END
END
CLOSE CursorDeletedCharacter
DEALLOCATE CursorDeletedCharacter
-- 길드 아이템키 목록 갱신
DELETE FROM PaOperationPublic.Dim_GuildItemKey -- 초기화
INSERT INTO PaOperationPublic.Dim_GuildItemKey ( _itemKey ) -- 목록 갱신
SELECT DISTINCT(itemKey) FROM PaGamePublic.ufnParseItemListByExpelFromGuild [USER=237450]GuiL[/USER]dItemKeyString,',')
IF [USER=237450]GuiL[/USER]dItemKeyCount <> @@ROWCOUNT)
BEGIN
SET @rv = -1
SET [USER=333975]Sym[/USER]No = N'eErrNoInsertFailGuildItemKey'
END
DELETE WW
FROM PaGamePrivate.TblWorkerWorking WW
INNER JOIN PaGamePrivate.TblWorker WK
ON WW._workerNo = WK._workerNo
LEFT OUTER JOIN PaGamePrivate.TblGuildMember GM
ON WK._ownerUserNo = GM._userNo
LEFT OUTER JOIN PaGamePrivate.TblHouseholdTent HT
ON WW._toVariable = HT._householdNo
WHERE _workingType = 4 AND
((GM._guildNo IS NULL) OR (GM._guildNo <> HT._buildGuildNo) OR (HT._householdNo IS NULL) OR (HT._buildDestroyedDate IS NOT NULL))
-- 캠프 일괄적으로 해체처리를 해줍니다.
UPDATE PaGamePrivate.TblServantRepository
SET _stateType = 0
,_ownerCharacterNo = NULL
,_lastServerNo = NULL
WHERE (_whereType = @campingWhereType) AND (_stateType = 1)
/**********************************************************************************************
** 작업종료(이상에만기술)
**********************************************************************************************/
LABEL_END:
/*
--IF(0 = @rv)
-- BEGIN
-- COMMIT TRAN
-- END
--ELSE
-- BEGIN
-- ROLLBACK TRAN
-- END
*/
RETURN(@rv)
END
Msg 102, Level 15, State 1, Procedure uspCleanupFieldRepository, Line 89 [Batch Start Line 7]
Incorrect syntax near [USER=237450]GuiL[/USER]dItemKeyString'.
Msg 102, Level 15, State 1, Procedure uspCleanupFieldRepository, Line 91 [Batch Start Line 7]
Incorrect syntax near ')'.
Big thanks, but forum parser - deletes some symbols
but MS SQL says:
Code:Msg 102, Level 15, State 1, Procedure uspCleanupFieldRepository, Line 89 [Batch Start Line 7] Incorrect syntax near [USER=237450]GuiL[/USER]dItemKeyString'. Msg 102, Level 15, State 1, Procedure uspCleanupFieldRepository, Line 91 [Batch Start Line 7] Incorrect syntax near ')'.
Plz attach as .txt-file
The module 'uspCleanupFieldRepository' depends on the missing object 'PaGamePublic.uspDeleteCharacter__XXX'. The module will still be created; however, it cannot run successfully until the object exists