Olá estou querendo adaptar esse comando de múltiplos baús na minha source
mais quando uso o comando estou recebendo o erro "Microsoft Visual C++ Runtime Library"
alguém poderia me ajudar não sei o que está errado

Comando:

Código:
void CHAT_COMMANDS::TrocaBau(short aIndex,char * Cod)
{
  OBJECTSTRUCT * gObj = (OBJECTSTRUCT*)OBJECT_POINTER(aIndex);

  int BauCod = atoi(Cod);

  int Total = MYSQL->GetFieldInt("MuOnline.dbo.warehouse","Total","WHERE memb___id='%s'",gObj->AccountID);

  if (BauCod < 0 ){
  GCServerMsgStringSend("Erro de Sintaxe : /bau <numero>",aIndex,1);
  return ;    
  }
  else if(Total < BauCod){
  sprintf(msN,"Você ultrapassou o limite de %d báus.",Total);
  GCServerMsgStringSend(msN,aIndex,1);
  return;
  } 
  else 
  {
  if(gObj_GetInt(gObj->aIndex,gObjWarehouseSave) == 0)
  {
  char SQLBuffer[2048];

  sprintf_s(SQLBuffer,"EXEC MuOnline.dbo.MUDAR_BAU %d,%s",BauCod,gObj->AccountID);
  MYSQL->Exec(SQLBuffer);
  sprintf(msN,"Baú trocado com sucesso.",BauCod);
  GCServerMsgStringSend(msN,aIndex,1);
  sprintf(msN,"Você está usando o baú nº %d",BauCod);
  GCServerMsgStringSend(msN,aIndex,1);
  } 
  else 
  {
  GCServerMsgStringSend("Feche o baú para usar esse comando.",aIndex,1);
  return;
}
}
}
Procedure:

Código:
CREATE PROCEDURE [dbo].[MUDAR_BAU] (@bauCod INT,@login varchar(10)) AS
BEGIN
    DECLARE @BAUUSO1 int
    set @BAUUSO1 = (SELECT BauUso  FROM warehouse WHERE AccountID = @login)
    IF ( EXISTS ( SELECT * FROM VaultsExtra WHERE [IdAcc] = @bauCod ) ) and (@BAUUSO1 != @bauCod)
    BEGIN
        DECLARE  @itemback varbinary(1200)
        DECLARE  @money int
        set @money = (SELECT [Money] FROM warehouse WHERE AccountID = @login)
        set @itemback = (SELECT Items FROM warehouse WHERE AccountID = @login)
        IF (@bauCod > 0) AND (@BAUUSO1 = 0)
        BEGIN
            UPDATE VaultsExtra SET Items = @itemback,[Money]=@money WHERE login = @login AND IdAcc = 0
        END        
        UPDATE warehouse SET Items = (SELECT Items FROM VaultsExtra WHERE Login = @login AND  IDAcc = @bauCod),[Money] = (SELECT [Money] FROM VaultsExtra WHERE Login = @login AND  IDAcc = @bauCod),BauUso = @bauCod  WHERE AccountID = @login
        UPDATE VaultsExtra SET Items = @itemback,[Money]=@money WHERE login = @login AND IDAcc = @BAUUSO1
    END
END
GO
Tabelas:

Código:
ALTER TABLE dbo.warehouse ADD
    Total int NOT NULL DEFAULT (3)
GO 

ALTER TABLE dbo.warehouse ADD
    [BauUso] [int] NOT NULL CONSTRAINT [DF_warehouse_BauUso] DEFAULT (0)
GO

CREATE TABLE [VaultsExtra] (
    [login] [varchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
    [bauCod] [int] IDENTITY (1, 1) NOT NULL ,
    [items] [varbinary] (1200) NULL ,
    [money] [int] NULL ,
    [pw] [smallint] NULL ,
    [IdAcc] [int] NOT NULL 
) ON [PRIMARY]
GO