PDA

View Full Version : [MU] Lỗi hiển thị online- hiện Null ConnectTm trong Memb_Start



PhamNinh
16-02-14, 12:25 AM
như thế này đây các bác ạ, nó làm hiển thị sai số người online. 20 onl mà web báo 100 onl. :D . ai biết cách fix k , xin chỉ giáo với ạ

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

mrrainnt
16-02-14, 12:32 AM
Bạn có thể sử dụng JOB Log_Out của NBB :

* Khi Reset Server thì nó sẽ tự động chạy Querry về 0 toàn bộ :)!
* Còn nếu đang Online mà chạy thì những Nhân Vật thoát ra vào lại sẽ Update còn những Nhân Vật trong Game thì không Update nha, nên Reset Server hoặc tắt Server bật lại sau khi chạy JOB để hiển thị chính xác

Chạy querry sau :


GO
BEGIN TRANSACTION
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
IF (SELECT COUNT(*) FROM msdb.dbo.syscategories WHERE name = N'[Uncategorized (Local)]') < 1
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

-- Delete the job with the same name (if it exists)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
FROM msdb.dbo.sysjobs
WHERE (name = N'LogOut')
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
BEGIN
-- Check if the job is a multi-server job
IF (EXISTS (SELECT *
FROM msdb.dbo.sysjobservers
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
BEGIN
-- There is, so abort the script
RAISERROR (N'Unable to import job ''LogOut'' since there is already a multi-server job with this name.', 16, 1)
GOTO QuitWithRollback
END
ELSE
-- Delete the [local] job
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
END

BEGIN

-- Add the job
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

-- Add the job steps
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

-- Add the job schedules
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

-- Add the Target Servers
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

END
COMMIT TRANSACTION
GOTO EndSave
QuitWithRollback:
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
EndSave:

PhamNinh
16-02-14, 12:35 AM
hêy. cái này sql 2k8 không run đc cậu ơi!! báo lỗi k à

mrrainnt
16-02-14, 12:48 AM
Nếu không run Querry được thì bạn làm theo cách này thử xem thế nào nhé :

1. Xoá WZ_CONNECT_MEMB & WZ_DISCONNECT_MEMB từ Stored Procedures !
2. Xoá MEMB_STAT trong DataBase !
3. Tạo WZ_CONNECT_MEMB với SQL Query dưới :



CREATE PROCEDURE WZ_CONNECT_MEMB

@uid varchar(20),
@server varchar(20),
@uip varchar(20)
AS

Begin

BEGIN TRANSACTION

SET NOCOUNT ON

IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Begin
UPDATE MEMB_STAT
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,ip,connectstat,servername) valueS (
@uid,
@uip,
1,
@server
)
End


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS OFF
GO

4. Tạo WZ_DISCONNECT_MEMB với SQL Query dưới :



CREATE PROCEDURE WZ_DISCONNECT_MEMB

@uid varchar(20)
AS
Begin

BEGIN TRANSACTION

SET NOCOUNT ON

IF EXISTS ( SELECT memb___id FROM MEMB_STAT WITH (READUNCOMMITTED)
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Begin
UPDATE MEMB_STAT
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
End
ELSE
Begin
INSERT INTO MEMB_STAT ( memb___id,DisConnectTM,connectstat) valueS (
@uid,
(getdate()),
0
)
End


<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION

SET NOCOUNT OFF
End
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO


5. Cuối cùng MEMB_STAT với QUERY :


CREATE TABLE [dbo].[MEMB_STAT] (
[memb___id] [nvarchar] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ConnectStat] [tinyint] NULL ,
[ServerName] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
[IP] [nvarchar] (15) COLLATE Chinese_PRC_CI_AS NULL ,
[ConnectTM] [smalldatetime] NULL ,
[DisConnectTM] [smalldatetime] NULL
) ON [PRIMARY]
GO

PhamNinh
16-02-14, 12:57 AM
ok. rất tận tình. xóa đi lập lại. mình chưa nghĩ đến bước này. nhưng hiện tại làm theo cách của bạn thì chạy đc job ngon lành rồi cậu à. có gì mai mình bao kết quả lại cho. chứ cái này chưa test luôn đc. mới run đc Job nhưng chưa có vật thí nghiệm :D

h chạy đến bươc này rồi thì cảm ơn cậu nhiều nhé !

chicken1
16-02-14, 03:11 AM
query hien off/online tren web
UPDATE MEMB_STAT SET ConnectStat=0 WHERE ConnectStat=1


đây bạn dùng cái này nhé 100% thành công,nhanh gọn nhẹ!

PhamNinh
16-02-14, 09:40 AM
bạn hiểu lầm ý rồi. cái query này chỉ sét tất cả connectstart về 0 tức là ofline. và bắt đầu cập nhật lại số lượng mem truy cập lại từ đầu. nhưng khi có mem vào, nó vẫn sẽ hiện NULL ở connect và disconnectTM thôi. nhẽ 10 phút chạy querry 1 lần :D.

20 mem onl + 80 mem Null, khủng khiếp nhé

thanh_ca
16-02-14, 12:12 PM
Xài sv nào thế. Thay cái connect sv xem sao. thử lấy cái acc mà nó báo null đó. login xong log out xong vào db nó có báo đúng h k ?. thường thì do db để tên table mà trong produce của connect sv không hiểu nên lúc login hay logout nó k ghi lại db. Cách xóa produce của mrrainnt đúng đấy.

The Gamer
16-02-14, 12:24 PM
Xài sv nào thế. Thay cái connect sv xem sao. thử lấy cái acc mà nó báo null đó. login xong log out xong vào db nó có báo đúng h k ?. thường thì do db để tên table mà trong produce của connect sv không hiểu nên lúc login hay logout nó k ghi lại db. Cách xóa produce của mrrainnt đúng đấy.

theo mình chưa có job log_out nên khi connect nó mới dồn lên 100

cũng hay có thể đém lượt connect trong 1 ngày :d

PhamNinh
16-02-14, 12:45 PM
hêy. tiếc là lại không run đc job ủy thác online rồi các bác ơi. nó báo sai procerdure của Pointuythac. không cho run

PhamNinh
16-02-14, 01:05 PM
trước em chạy mấy job còn lại hoàn toàn bình thường, nhưng lỗi Job Logout. bây h làm như hướng dẫn, lại không run đc JobUyThac . =>. báo sai proce

bác nào có cách fix chỉ em với nào

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

votam2x
16-02-14, 01:10 PM
trước em chạy mấy job còn lại hoàn toàn bình thường, nhưng lỗi Job Logout. bây h làm như hướng dẫn, lại không run đc JobUyThac . =>. báo sai proce

bác nào có cách fix chỉ em với nào

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b> (<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>)

Liên hệ: votam_2x mình xem sao.

PhamNinh
16-02-14, 01:45 PM
những lỗi còn lại đã được fix toàn bộ by votam_2x. cảm ơn votam_2x 1 lần nữa và toàn bộ các bác đã ghé đọc Topic này nhé. tks !