Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Almacenar PK y Heroes sin limite  (Visto 1703 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline Joaquin Posteado: June 17, 2016, 12:41:43 PM | Modificado: July 16, 2018, 02:23:17 PM by ZabiinoOo

  • MAESTRO

  • US. DE HONOR

  • 0 puntos por ventas
  • *
  • Rank: Principiante
  • Posts: 2
  • Gracias recibida: 27371
  • ar
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!!!

Gracias:


Offline ZabiinoOo #1 Posteado: June 17, 2016, 12:50:47 PM | Modificado: June 17, 2016, 12:54:23 PM by ZabiinoOo

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Administrador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 7.270
  • Gracias recibida: 125171
  • pe
Muy buena guia, pero trata de usar el color por defecto y el color sea para otras ocasiones como resaltar algun codigo, etc




Prohibido pedir soporte via MP
Leer las reglas de cada seccion
we trust god

Offline muarcontes #2 Posteado: July 16, 2018, 03:59:09 AM

  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 237
  • Gracias recibida: 4152
  • ar
A mi no me sirvio, alguno le pudo haber servido esto?


Offline ZabiinoOo #3 Posteado: July 16, 2018, 02:25:20 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Administrador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 7.270
  • Gracias recibida: 125171
  • pe
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




Prohibido pedir soporte via MP
Leer las reglas de cada seccion
we trust god

Offline Cloud #4 Posteado: July 16, 2018, 06:27:44 PM

  • 0 puntos por ventas
  • *
  • Rank: Avanzado
  • Posts: 138
  • Gracias recibida: 12015
  • ar
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


Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
2 Replies
1128 Views
Last post March 08, 2018, 06:46:30 PM
by tigre1123
6 Replies
5696 Views
Last post October 22, 2020, 11:42:38 PM
by tincho088
8 Replies
1166 Views
Last post May 06, 2019, 01:26:28 PM
by kayito
0 Replies
280 Views
Last post April 08, 2022, 12:25:39 PM
by panicodv
0 Replies
192 Views
Last post April 24, 2023, 10:03:34 PM
by HorusSpl