Configurar el ranking de nuestra webmu

Bienvenidos a un nuevo tutorial, hoy veremos un poco de .PHP en relación al ranking de nuestro servidor.
Un usuario nos escribio a consultas@muonlinetutoriales.com con la siguiente consulta:
¿Cómo hago que el ranking de mi página web, posicione primero a los que tienen más cantidad de MasterResets y no a quienes tiene más resets?
Para resolver esto, lo primero que necesitamos es ubicar nuestro ranking.php (El nombre es tan sólo referencial y puede variar de acuerdo a la página web que estemos utilizando)
Para este tutorial, usaré un ranking.php con el que ya habíamos trabajado en tutoriales anteriores.
1)Localizado el archivo, lo abrimos (En mi caso siempre recomiendo trabajar con Dreamweaver) y lo que debemos buscar es la query que hace la selección de las columnas en la tabla character (Nuevamente, esto es tan sólo una ejemplificación ya que esta consulta puede realizarse de formas diversas)

$query = 'select Name,Class,cLevel,Strength,Dexterity,Vitality,Energy,LevelUpPoint,CtlCode,resets, MasterReset from Character order by resets desc';
Querry para selección de datos

2)En donde nos vamos a detener puntualmente, es aqui:
order by resets desc
Dicha instrucción lo que hace es ordenar (order by) el ranking de manera descendente (desc) tomando en cuenta a los resets.
Entonces respondiendo la pregunta o inquitud de nuestro usuario, la solución sería modificar la palabra resets por MasterReset y de esta forma, nuestro ranking posicionará en orden descendente tomando en cuenta los MasterResets.
El código modificado nos quedaría asi:
$query = 'select Name,Class,cLevel,Strength,Dexterity,Vitality,Energy,LevelUpPoint,CtlCode,resets, MasterReset from Character order by MasterReset desc';
Y el resultado será el siguiente:

Tabla ranking

3)Con ese simple cambio estaríamos en condiciones de decir que la pregunta fue respondida y que el problema está solucionado.
Pero veamos la siguiente imagen:

Comparación de datos

4)Observen con atención a los primeros dos personajes de la imagen anterior, ¿Notan algo extraño?
Analizemos lo siguiente:
El personaje "Dragon201" tiene 10 MasterResets y 5 resets [Posición del ranking 1]
El personaje "LINDASAY" tiene 10 MasterResets y 27 resets [Posicion del ranking 2]
¿Tiene sentido que si ambos personajes tiene la misma cantidad de MasterResets se posicione primero el que tenga "menor" cantidad de resets? o ¿Debería ser al revés, es decir, si ambos personajes tienen la misma cantidad de MasterResets, el ranking se ordene por quien tenga la mayor cantidad de Resets?
Para solucionar esto debemos agregar una segunda condición a nuestra consulta
$query = 'select Name,Class,cLevel,Strength,Dexterity,Vitality,Energy,LevelUpPoint,CtlCode,resets, MasterReset from Character order by MasterReset desc, Resets desc';
Y ahora el resultado sería el siguiente:

Ranking resets y master reset organizado

Y si los dos personajes tienen la misma cantidad de MasterResets y la misma cantidad de Resets ¿Qué deberíamos hacer en ese caso?
La respuesta seriá ordenarlos por nivel, de modo tal y de acuerdo a lo leído, bastará con agregar un
, cLevel desc
Y de esta forma el ranking se organizará de la siguiente manera:
a)Primero posicionará a los que tengan mayor cantidad de MasterResets
b)Si hay dos personajes con la misma cantidad de MasterResets, estará primero quien tenga mayor cantidad de Resets
c)Si esos dos personajes tienen la misma cantidad de MasterResets y Resets, estará primero quien tenga el mayor nivel.
Y adicionalmente pueder ir agregando más condiciones como por ejemplo, si ambos personajes tiene la misma cantidad de MasterResets, la misma cantidad de Resets y el mismo nivel, podemos tomar como parámetros de organización descendente a los stats del personaje, como por ejemplo la Fuerza.
No estaría de más aclarar que el único stat que no podrían tomar como determinador es el "Comando"
¿Por qué no puedo usar el comando como determinante?, la respuesta es sencilla: Porque los personajes como DK, ELF, DW , etc no podrían competir nunca.
Ranking.txt [2 KB]

¿Necesitas ayuda? Visita www.iceventas.com y nosotros lo hacemos por ti.

Se han publicado un total de 14 comentarios en Mu Online Tutoriales :

1 de diciembre de 2014, 1:55

asd* me dirias la sentecia para que en mis ranking no me apraesca los gm? se de sql, pero no sabria en que tabla hacer la consulta o la condiciones que deben de tener, espero que me ayudes gracias!!

1 de diciembre de 2014, 9:46

Cara : No conozco tu ranking pero intentaré orientarte:
Nose que files estas usando, pero puedes condicionar el Ranking de forma tal que mostremos sólo a los usuarios cuyo CtlCode sea menor a 1.
Saludos

3 de mayo de 2015, 0:06

Hola, tengo un problema, en mi server se resetea con el comando /reset y en el ranking de la pagina no aparece ese dicho reset ni que esta lvl 1 siempre queda en lvl 1000 y tampoco aparecen todos los pjs creados. cual puede ser el problema?

3 de mayo de 2015, 9:25

Anónimo : ¿Con qué tabla/columna de tu base de datos trabaja tu web mu?
Saludos

19 de junio de 2015, 15:24

Hola asd, me gustaria saber como reinicio o reseteo el Ranking de Muertes osea de Kill. Gracias saludos!

19 de junio de 2015, 17:43

Anónimo : Lo puedes hacer simplemente con una consulta en tu analizador.
UPDATE character set PkCount='0'

Recuerda realizar una copia de seguridad de tu base de datos antes de ejecutar la consulta ya que este paso es irreversible.
Saludos

11 de junio de 2016, 19:55

hola asd. me pondrias decir como puedo aser que me funcionen los mapas crywolf barrakas....etc no se puede ir a sus coordenadas

12 de junio de 2016, 18:07

Unknown : Intenta con el siguiente tutorial http://www.muonlinetutoriales.com/2013/05/no-puedo-ir-crywolf.html
Saludos

24 de octubre de 2016, 8:46

Buenos dias ASD Necesito que me Orientes ;

En mi servidor 99B+

Se descontrolan los reset de la pagina web EJEMPLO tengo 5 y dice que tengo 271 Me podrias ayudar aresolver ese problemita

24 de octubre de 2016, 10:06

CERBEROMU99B+ : Posiblemente tu página web este realizando la lectura de una columna equivocada.
¿Qué web usas? ¿Podrías copiar el código .php del módulo correspondiente?
Saludos

22 de noviembre de 2016, 19:42

Buenas tardes, asd*
Solicito tu ayuda, por favor
Quiero crear un ranking de Stones en mi Web (depositadas en Golden Archer)
Resulta que mi página, Web MU Core. 1.0.8, no está tomando el módulo PHP que copié de una guía.
El script no lo puedo publicar, la pag dice "Su HTML no es aceptable"

En la guía se mencionó que hay que agregar el acceso al SQL, con la línea


O esta otra



Pero al agregarla sigue ocurriendo lo mismo, no pasa nada. Abro el módulo en mi web, y solo aparece de título Ranking de Stones, pero nada más nisiquiera un recuadro. ¿Qué podrá ser? ¿Será que mi web Mu Core no admite ese tipo de scripts? ¿Servirá si te doy un script que funcione bien en mi web?
Muchas gracias

24 de noviembre de 2016, 18:37

Anónimo : Sin ver el módulo (Código .php) es bastante dificil poder orientarte.
Entonces, la primera pregunta ¿En donde alojas la web Mu Core?
Y la otra pregunta sería ¿Qué sucede al intentar visualizar el módulo?
Saludos

25 de noviembre de 2016, 15:19

Gracias por tu respuesta, asd*. Por suerte lo pude solucionar sin problemas. Era sólo adaptar el script como los actuales de la web.
Ahora estoy teniendo otro obstáculo, no tiene nada que ver con la Web, pero quizá puedas ayudarme.Tengo servidor 97d+99i files DarkSteam, y el servidor esta adaptado a nivel 1000 (los files por default), pero los niveles del BC y DS están como para nivel 350 o 400. He leído tu Guia de Fix al BC y DS, he buscado los offset de ambos eventos. Las líneas del BC son:
0A 00 00 00 3C 00 00 00 --> Nivel 10-60
3D 00 00 00 6E 00 00 00 --> Nivel 61-110
6F 00 00 00 A0 00 00 00 --> Nivel 111-160
A1 00 00 00 D2 00 00 00 --> Nivel 161-210
D3 00 00 00 04 01 00 00 --> Nivel 211-260
05 01 00 00 --> Nivel 261+
Todas estas líneas se repiten unas 4 o 5 veces a lo largo del GS.exe. ¿Debo modificarlas todas?
Los offset del Devil Square no logro ubicarlos en el GS, y según me fije antes de ingresar al Devil, son
10-99
100-179
180-249
250+
Los 4 niveles del devil. Es el mismo codigo hex que dejaste en esta guía. Lo que sea que me puedas decir para ayudar te lo voy a agradecer. Saludos asd*

27 de noviembre de 2016, 10:59

Facu : ¿Cuál es la versión del GS?
Saludos

Publicar un comentario en la entrada