TUServerMU

MuOnline => Guias MUOnline => General => Tema comenzado por: Joaquin on June 17, 2016, 12:41:43 PM

Titulo: Almacenar PK y Heroes sin limite
Posteado por: Joaquin on June 17, 2016, 12:41:43 PM
Hola muchachos, la idea de este sistema es poder almacenar el PK mas alla del "99" o "-1" que esta permitido en las versiones viejas (nose si aun se presenta este  problema  en versiones nuevas), ademas como plus le agregamos para que guarde valores en 2 columnas mas llamadas PkMensual y PkSemanal.

El sistema lo probe muy a grandes rasgos, nunca con un servidor online, en el caso de los pks no me preocupa el funcionamiento, es un 99% seguro que funcione como se espera, pero en el caso de los heroes podria llegar a variar, bueno, sin mas rodeos, les dejo los pasos a seguir.

Primero que nada, todo se realiza a traves del "Analizador de Consultas" y tienen que seleccionar la db en la cual van a correr las consultas (yo seleccione "MuOnline" porque es una db con la que pruebo estas pequeñeces)


1- Crear las tablas en la base de datos:

Code: [Select]
USE MuOnline
ALTER TABLE dbo.[Character] add PkTotal int not null default 0
ALTER TABLE dbo.[Character] add PkMensual int not null default 0
ALTER TABLE dbo.[Character] add PkSemanal int not null default 0


2- Creamos el trigger:

Code: [Select]
CREATE TRIGGER [dbo].[RankingPK] ON [dbo].[Character]
FOR Update
AS
BEGIN


SET NOCOUNT ON;


-- =============================================
-- Author:   <kind>
-- Create date: <09/07/2015>
-- Description:   <Obtiene los valores de PkCount y los guarda en otras columnas>
-- =============================================


DECLARE @accountid varchar(10)
DECLARE @ranknew int
DECLARE @rankold int
DECLARE @rankdif int
DECLARE @name varchar(10)


SELECT @ranknew = PkCount, @name = Name, @accountid = AccountID FROM INSERTED
SELECT @rankold = PkCount, @name = Name, @accountid = AccountID FROM DELETED
END
IF (@ranknew != @rankold)
BEGIN
SET @rankdif =  @ranknew - @rankold
UPDATE Character SET PkTotal = PkTotal + @rankdif, PkSemanal = PkSemanal + @rankdif, PkMensual = PkMensual + @rankdif WHERE Name = @name
IF @ranknew = -3
BEGIN
UPDATE character SET PkCount = 0 WHERE Name = @name
END
IF @ranknew = 100
BEGIN
UPDATE character SET PkCount = 0 WHERE Name = @name
END
END

Solamente eso es necesario para aumentar el limite de kills almacenadas en la db, basicamente lo que hace el script es tomar los valores del PkCount ni bien se  actualiza  la tabla, y los agrega a las tablas creadas (PkTotal,PkMensual y PkSemanal). En el caso de que el personaje sea Heroe y tenga ya "-3" (el limite que se guarda), vuelve el valor de PkCount a 0, para poder seguir almacenando los kills de los heroes.

Para verificar que el script funciona basta con editar el PkCount de algun personaje, o entrar al juego y matar a alguien:

Code: [Select]
UPDATE Character SET PkCount = 3 WHERE Name = 'NombrePj'


Y luego la siguiente para ver si sumo o no los kills:

Code: [Select]
SELECT TOP 10 Name,PkTotal,PkSemanal,PkMensual FROM Character ORDER BY PkTotal DESC


Para mostrarlos despues en la pagina web, basta alterar todos los campos donde figure PkCount por PkTotal. Ya si quieren crear un sistema de rankings mensuales y semanales tendran que crear tareas que se ejecuten mensualmente/semanalmente borrando los valores de las tablas PkMensual y PkTotal.

CREDITOS :

kind


Espero que les sirva, SALUDOS!!!
Titulo: Re:Almacenar PK y Heroes sin limite
Posteado por: ZabiinoOo on June 17, 2016, 12:50:47 PM
Muy buena guia, pero trata de usar el color por defecto y el color sea para otras ocasiones como resaltar algun codigo, etc
Titulo: Re: Almacenar PK y Heroes sin limite
Posteado por: muarcontes on July 16, 2018, 03:59:09 AM
A mi no me sirvio, alguno le pudo haber servido esto?
Titulo: Re: Almacenar PK y Heroes sin limite
Posteado por: ZabiinoOo on July 16, 2018, 02:25:20 PM
A mi no me sirvio, alguno le pudo haber servido esto?

Revisa las tablas amigo quizas no concuerdan esto es para versiones viejas y quizas en tus filesbes diferente las rutas y tablas
Titulo: Re: Almacenar PK y Heroes sin limite
Posteado por: Cloud on July 16, 2018, 06:27:44 PM
A mi no me sirvio, alguno le pudo haber servido esto?

tus tablas son las mismas?? recuerda que depende la version las tablas varian , tambien podes abrir un tema en soporte especificando , files  etc