Уже подзабыл, наверное и траблы теперь...
Создал билинг рабочим премиумом, кеш шоп, все как положено. Решил добавить начисление кеша за онлайн. После некоторого времени появляеться ошибка персонажа. В чем может быть проблема.., логи не создаются зоной, значит проблема в тригере или билинге.
Таблица юезеров с билинга
Цитата:
USE [BILLING]
GO
/****** Object: Table [dbo].[tbl_user] Script Date: 02.06.2018 19:56:40 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[tbl_user](
[ID] [int] IDENTITY(0,1) NOT NULL,
[UserID] [varchar](17) NOT NULL,
[Cash] [int] NOT NULL,
[Bonus] [int] NOT NULL,
CONSTRAINT [PK_tbl_user] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[tbl_user] ADD CONSTRAINT [DF_tbl_user_Cash] DEFAULT ((0)) FOR [Cash]
GO
Сам тригер бонуса за онлайн
Цитата:
USE [RF_WORLD]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[AutoCash]
ON [dbo].[tbl_general]
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
if update(TotalPlayMin)
begin
SELECT @TSerial = Serial, @DCK = DCK, @TimePlay = TotalPlayMin From Inserted
if (@TimePlay > 0 And @DCK = 0)
begin
SELECT @BSerial = Serial, @BAccount = Account, @BDCK = DCK From tbl_base Where Serial = @TSerial
if (@BSerial > 0 And @BDCK = 0)
begin
SET @TimeBonus = (@TimePlay*1)
SELECT @CSerial = ID, @CId = UserID, @Cash = Cash, @Bonus = Bonus From BILLING.dbo.tbl_User Where id = @BAccount
if (@TimeBonus > @Bonus And @CSerial > 0)
begin
SET @Reward = (@TimeBonus-@Bonus)
Update BILLING.dbo.tbl_User
SET Cash = (@Cash+@Reward), Bonus = @TimeBonus
Where id = @CId
end
end
end
end
END
GO