It's pointless. There is nothing to disable in the bdo except npc and mobs, and this must be done correctly and for a long time.
Printable View
some 1 can update links for download pls?
Please DM me the links and I can rehost in a way they don't get taken down
Me change system to new Windows Server 2022 + MS SQL Server 2019CU18.
And when starting Field Server catch error:
>>Could not find stored procedure 'PaGamePublic.uspCleanupFieldRepository'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)" }
Does anyone know how fix it?
- - - Updated - - -
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)" }
try this
Code: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]
@ExplorationType BIGINT -- 유지보수를 위해서 C++에서 정의한 값을 사용한다.(탐험)
@IntimacyType BIGINT -- 유지보수를 위해서 C++에서 정의한 값을 사용한다.(친밀도)
,@fromPcWorkingType TINYINT -- 작업종류(PcWorkingType와 연결됨)
@topcWorkingType TINYINT -- 작업종류(PcWorkingType와 연결됨)
,@removableWorkingType0 TINYINT -- 이미 존재하는 녀석을 삭제해야 하는 경우 삭제될 녀석의 PcWorkingType
,@removableWorkingType1 TINYINT -- 이미 존재하는 녀석을 삭제해야 하는 경우 삭제될 녀석의 PcWorkingType
,@currentTime DATETIME -- 서버 시간으로 체크한다.
@ServantWhereType TINYINT -- 탈것 소유자 타입 ( only 0 = 유저 )
@GuiLdItemKeyString VARCHAR(MAX) -- 길드 아이템키 목록
@GuiLdItemKeyCount INT -- 길드 아이템키 갯수
,@campingWhereType TINYINT -- 캠프 servantWhereType (only 4 = 캠프)
@SymNo NVARCHAR(50) OUTPUT -- 실패한 경우에만 의미있음
AS
/*!
* \brief 필드저장소 정리
* \remarks 1.(성능을 위해서) 가능하면 게임서비스중에 바로 삭제를 하지말고, 점검시간에 삭제하도록 하자.
* 2.삭제가 안된다고 서비스에 문제가 있는 것은 아니므로 transaction처리를 하지 않는다.
* => 또한 성능을 우선시 한다.
* 3.무결성을 위해서 순서가 중요하다. 함부로 변경하지 말아라!
* 4.서비스중에 호출되는 것이 아니다. 필드서버 기동시나, 점검시에 호출된다.
* 5.PC의 작업상태가 @fromPcWorkingType 인 녀석을 @topcWorkingType 으로 변경한다.
* \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 = @topcWorkingType
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 @userNo BIGINT
DECLARE @CharacterNo BIGINT
FETCH NEXT FROM CursorDeletedCharacter INTO @userNo, @CharacterNo
WHILE(0 = @@FETCH_STATUS)
BEGIN
EXEC @rvTmp = PaGamePublic.uspDeleteCharacter__XXX @CharacterNo
,@removableWorkingType0
,@removableWorkingType1
,FALSE
@ServantWhereType
@SymNo OUTPUT
FETCH NEXT FROM CursorDeletedCharacter INTO @userNo, @CharacterNo
END
END
CLOSE CursorDeletedCharacter
DEALLOCATE CursorDeletedCharacter
-- 길드 아이템키 목록 갱신
DELETE FROM PaOperationPublic.Dim_GuildItemKey -- 초기화
INSERT INTO PaOperationPublic.Dim_GuildItemKey ( _itemKey ) -- 목록 갱신
SELECT DISTINCT(itemKey) FROM PaGamePublic.ufnParseItemListByExpelFromGuild @GuiLdItemKeyString,',')
IF @GuiLdItemKeyCount <> @@ROWCOUNT)
BEGIN
SET @rv = -1
SET @SymNo = 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
Big thanks, but forum parser - deletes some symbols
but MS SQL says:
Plz attach as .txt-fileCode:Msg 102, Level 15, State 1, Procedure uspCleanupFieldRepository, Line 89 [Batch Start Line 7]
Incorrect syntax near @GuiLdItemKeyString'.
Msg 102, Level 15, State 1, Procedure uspCleanupFieldRepository, Line 91 [Batch Start Line 7]
Incorrect syntax near ')'.
Yah it's fine and MS SQL says:
Quote:
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
Thanks but more and more interesting now SQL says:
Me wanderer how it works half year ago?Code:The module 'uspDeleteCharacter__XXX' depends on the missing object 'PaGamePublic.uspCheckToCanDeleteCharacter__XXX'. The module will still be created; however, it cannot run successfully until the object exists.
But "Crimson Desert Field" was start normally but now me not understand why in log still says:
but me don't understand how fix it, possible problem not only in MS SQL?Code:"ErrorString":"SQL실행중 ODBC오류가 발생했습니다.","Log":"Thd(3260):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)" }
"ErrorString":"처리 중 내부 오류가 발생했습니다.","Log":"sql.clearnupFieldRepository(), sqlRv(1)" }
"ErrorString":"Reload 할 수 없습니다.","Log":"ErrNo(1815705047)" }
"ErrorString":"Timer데몬이 초기화 함수 호출에 실패했다.","Log":"ErrNo(1370852844)" }
"ErrorString":"Timer데몬을 시작할 수 없습니다.","Log":"ErrNo(2051413970)" }
i don't know but try
https://drive.google.com/file/d/1zq8...usp=share_link
So MS SQL Servev 2019 says - all complete.
And now me try run "Crimson Desert Field" but:
but it exists and all dependencies exists to, cam i ask u share you's backup "NOVA_WORLDDB_0001" ("GAME"), coz not any ideas...Code:"ErrorString":"SQL실행중 ODBC오류가 발생했습니다.","Log":"Thd(5368):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)" }
"ErrorString":"처리 중 내부 오류가 발생했습니다.","Log":"sql.clearnupFieldRepository(), sqlRv(1)" }
"ErrorString":"Reload 할 수 없습니다.","Log":"ErrNo(1815705047)" }
{"Date":"2022-12-17 "ErrorString":"Timer데몬이 초기화 함수 호출에 실패했다.","Log":"ErrNo(1370852844)" }
{"Date":"2022-12-17 "ErrorString":"Timer데몬을 시작할 수 없습니다.","Log":"ErrNo(2051413970)" }
Olá, já revisei três vezes e continuo tendo esse problema, não consigo encontrar o que pode estar
---------------------------------------- --------------------
Agora está aparecendo, o que seria?
https://gyazo.com/bef2340a51edfb84fb5fc0caf9d44995