Arrumei mais agora está falando que trocou o baú etc...
mais continua no mesmo baú 
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.MEMB_INFO","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;
}
}
}
Procedures:
Código:
CREATE PROCEDURE [dbo].[CRIAR_BAU] (@login varchar(10)) AS
BEGIN
DECLARE @IDProce int
set @IDProce = (select count(items) FROM VaultsExtra Where login = @login)
IF (EXISTS ( SELECT * FROM VaultsExtra WHERE [bauCod] = 0 ))
BEGIN
set @IDProce = 0
END
ELSE
EXEC CRIAR_BAU @login
set @IDProce = 1
END
INSERT INTO VaultsExtra (login,items,[money],pw,IdAcc) VALUES (@login,0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF,0,1,@IDProce)
UPDATE MEMB_INFO set Total=Total+1 Where memb___id = @login
GO
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.MEMB_INFO 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
Screen: