avatar_Fantazy

Недоработки , DataServer-а.

Автор Fantazy, 2010 Авг. 08, 13:45

« назад - далее »

0 Пользователи и 3 гостей просматривают эту тему.

Ключевые слова [SEO] mu onlineпроблемыdataserverудаляют игрока

Fantazy

Постараюсь объяснить суть проблемы.

GS: 1.00.18 (S3Ep1)

Обычные 2 DataServer-a, при покупке CashShop карточек на Exp,после перезахода, их не сохраняет, при этом ошибок датасервер не пишет, и в таблицу базы все вписывается корректно. Проблема явно в этих датасерверах.

Дальше я попытался поставить eDataServer который включается в себя первый и второй ДатаСервера, проблема с сохранением карточек Exp CashShop пропала, но появилась новая проблема, при удалении игрока на аккаунте, выдает странную ошибку(игрок не в клане):



после этой ошибки, в игру не зайти, если выйти и зайти заново все аккаунты пустые, в еДатаСервере следующая ошибка:



А в самом ГеймСервере следующая:

Цитировать13:39:58 Character delete : 5,qewe22
error-L2 : header error (D:WorksMu-StudioGameServer_Backup1.00.18_ЗШїЬєОєРАЇ·бИ�_АОАеИї°ъјТЅЗ№ц±ЧјцБ¤SourcewsJoinServerCli.cpp 289)lOfs:0, size:16

Rev[]luti0

хммм... интересно, а какая процедура отвечает за удаление игрока...

DeSSower

а поменять его ? не ?
Тем более, что у меня сейчас за плечами законченный технарь с синим дипломом, и казалось бы все дороги открыты передо мной, практику на заводе проходил куда меня и приглашают касиков так за 15-19 в месяц; дом, инст рядом, казалось бы учись и работай, но есть у меня желание очень большое в Челябинск смотаться, по ЕГЭ со 165 баллами повезло на одну заебатую кафедру, да и достало жить 20 лет в закрытом городе, ничего кроме завода дельного у нас нет; у меня бы даж с пареньком одним из группы получилось вместе в универ челябы смотаться, да вот только как представлю как я там, и что здесь все плюсы и минусы жизни в большом городе и здесь, где всё под боком буквально, так в ступор конкректный впадаю, что лучше???

Fantazy

Пару дней танцев с бубнами дали о себе знать.

И так ошибка вовсе не в этом: "Недопустимое состояние курсора", ошибка немного выше, а точнее в самой процедуре: "WZ_PeriodItemDelete", дело в том что прежде чем удалить игрока, eDataServer-a, запускают первым делом данную процедуру, и только потом как видно по логам удаляется сам персонаж.

Как я понял eDataServer запускает данную процедуру, но что-то ему в ней не нравится в ней и из за этого летит весь сервер.
Вообще принцип данной процедуры: Допустим вы купили карточку в кэш шопе на експу на 3 дня, и потом удалили игрока, но кто-то на таком-же аккаунте создал под таким-же ником игрока, и получается что карточка идет на его ник, но протестировав этот нюанс,было выяснено что там привязка купленной вещи идет по "memb___id", что означает что данная процедура, не понятного какого черта вообще нужна.В итоге основным и более подходящим для меня решением стало обычное ее удаление,естественно eDataServer ругается что ее не хватает при удалении игрока, но за то это никому не мешает и все работает как нужно.

Спасибо за помощь))

[P4F]v1ru5

подведем итог :

Fantazy сделал еще один баг на своем сервере

epmak

Цитата: Fantazy от 2010 Авг. 18, 23:04  Допустим вы купили карточку в кэш шопе на експу на 3 дня, и потом удалили игрока, но кто-то на таком-же аккаунте создал под таким-же ником игрока
если я правильно понял, то не может быть идентичного аккаунта в базе, все memb___id должны быть уникаьны, то есть чел с акка тупо взял и удалил чара, а потом его заново создал.

Цитата: Fantazy от 2010 Авг. 18, 23:04  и получается что карточка идет на его ник, но протестировав этот нюанс,было выяснено что там привязка купленной вещи идет по "memb___id",
если так, то, по идее, не важно каким чаром ты рулишь, карточка "тратится" пока ты онлайн.
Цитата: Fantazy от 2010 Авг. 18, 23:04  что означает что данная процедура, не понятного какого черта вообще нужна.В итоге основным и более подходящим для меня решением стало обычное ее удаление,естественно eDataServer ругается что ее не хватает при удалении игрока, но за то это никому не мешает и все работает как нужно.
нашел я эту процедуру

CREATE PROCEDURE dbo.WZ_PeriodItemDelete
@UserGuid int,
@CharacterName varchar(10)
AS BEGIN
DECLARE @ErrorCode int
DECLARE @ItemInfoCount int

SET @ErrorCode = 0
SET @ItemInfoCount = 0

SET nocount on

SELECT @ItemInfoCount = COUNT(*) FROM T_PeriodItemInfo where UserGuid = @UserGuid AND CharacterName = @CharacterName

IF( @ItemInfoCount < 1 )
BEGIN
SET @ErrorCode = 1
END

IF( @ErrorCode <> 1 )
BEGIN
UPDATE T_PeriodItemInfo SET UsedInfo = 0 WHERE UserGuid = @UserGuid AND CharacterName = @CharacterName
END

SELECT @ErrorCode

SET nocount off
END




GO

не совсем уверен, но думаю, что UsedInfo = 0 означает, что вещь использована полностью. Но если этой процедуры нет, то как тогда завершить действие вещи?

logic

#6
Цитата: epmak от 2010 Авг. 19, 05:46  если я правильно понял, то не может быть идентичного аккаунта в базе, все memb___id должны быть уникаьны, то есть чел с акка тупо взял и удалил чара, а потом его заново создал.


если так, то, по идее, не важно каким чаром ты рулишь, карточка "тратится" пока ты онлайн.

нашел я эту процедуру

CREATE PROCEDURE dbo.WZ_PeriodItemDelete
@UserGuid int,
@CharacterName varchar(10)
AS BEGIN
DECLARE @ErrorCode int
DECLARE @ItemInfoCount int

SET @ErrorCode = 0
SET @ItemInfoCount = 0

SET nocount on

SELECT @ItemInfoCount = COUNT(*) FROM T_PeriodItemInfo where UserGuid = @UserGuid AND CharacterName = @CharacterName

IF( @ItemInfoCount < 1 )
BEGIN
SET @ErrorCode = 1
END

IF( @ErrorCode <> 1 )
BEGIN
UPDATE T_PeriodItemInfo SET UsedInfo = 0 WHERE UserGuid = @UserGuid AND CharacterName = @CharacterName
END

SELECT @ErrorCode

SET nocount off
END




GO

не совсем уверен, но думаю, что UsedInfo = 0 означает, что вещь использована полностью. Но если этой процедуры нет, то как тогда завершить действие вещи?
Все удаляет и без нее, странно, тогда что она там вообще делала oO

Fantazy

Ну да, я же проверял, кэш шоп карточки и без нее работают, она не используется...

epmak

но, едата её вызывает, значит за чем-то она (была) нужна...

Похожие темы (1)

Сообщений: 2
Просмотров: 1868