Bienvenidos a un nuevo tutorial, hoy aprenderemos una alternativa de como crear un mapa VIP.
La historia de este tutorial comienza cuando un usuario quería tener un mapa vip dentro de su servidor FREE.
La respuesta rápida sería crear un Subserver VIP y, de esta manera; todos los mapas serían vips, ya que el acceso al subserver sería totalmente restringido.
¿Qué sucede?, un subserver vip implica un consumo de memoria mayor y las condiciones técnicas no lo permitian.
Entonces como los Server Files no tenían dicha programación incluida se ideo una manera de hacerlo.
1)Lo primero que debemos hacer, es decidir que mapa retiraremos del juego FREE para convertirlo en VIP, en este DEMO trabajaré con una versión vieja [0.97+0.99] y usaremos al mapa TARKAN para convertirlo en vip (Sin duda, ustedes puede aplicarlo al mapa que deseen)
Lo primero que necesitamos es saber que número de mapa es TARKAN, existe diversas formas de saber que número es, en mi caso lo haré con una muy sencilla, llevo mi personaje a Tarkan y reviso en el SQL que numeración le corresponde.
2)Como pudimos ver, el mapa 8 es TARKAN, esto no lo vamos a usar ahora, sino que vamos a anotarlo en algun apartado porque más adelante lo necesitaremos.
Como TARKAN será nuestro mapa a convertir en VIP, lo que haremos ahora será sacar al mapa del juego, ¿Sacarlo del juego?, no literalmente , lo que necesitamos hacer es evitar que los personajes puedan moverse a el.
Yo estoy trabajando con una versión 0.97+0.99 entonces lo que hare será simplemente abrir el archivo message_kor.wtf con cualquier editor .WTF y cambiar o retirar el nombre TARKAN.
Para que se entienda lo que estamos haciendo, en el .WTF tenemos el nombre del mapa, es decir, el nombre por el cual al escribir /move tarkan o /warp tarkan no lleva a dicho destino. Lo que necesitamos hacer es evitar esto, es decir que ningun usuario pueda ir a TARKAN con el comando move o warp.
Les rescomendaría que pongan otro nombre, asi Ustedes: administradores del juego, de manera secreta puedan moverse sin problemas.
Lo llamaré "mapvip" [Recuerden el nombre que ingresarán ya que les servirá dentro del juego]
3)Reiniciamos el server y verificamos los cambios dentro del juego. (Por las dudas, lo que deben verificar es que al escribir [/move tarkan] o [/warp tarkan] no los lleve a dicho mapa, sino que el comando funcione al escribir [/move mapvip] o [/warp mapvip]
Atención: todos sabemos que a un mapa podemos llegar dentro del juego por comando o por un portal, por entonces necesitamos modificar nuestro archivo gate.txt, lo que haremos será simplemente quitar la entrada al mapa por portal (La salida a stadium o arena se la dejamos, de modo tal que podamos salir del mapvip por dicho portal pero no entrar)
4)Entonces, revisemos lo realizado:
a)Seleccionamos un mapa para convertir en vip
b)Lo sacamos de nuestra lista de moves
c)Le quitamos cualquier acceso de tipo portal
Nuestro último paso será configurar la forma de ingreso al mapa, es decir, ¿Cómo haran para ingresar los usuarios a dicho mapa?
Veamos diferentes alternativas:
a)Un adm/gm los moverá de manera manual [Podría servir como evento, pero no sería lo ideal si queremos usar a dicho mapa como VIP ya que no siempre tendremos un adm/gm Online en nuestro server]
b)Con job o sentencia SQL [También podría ser como evento, y podría servir, sólo que siempre que salgamos del juego apareceremos en el mapa vip]
c)Por PHP, creo que sería la mejor alternativa y además podemos usar muchísimos condicionales.
Para quienes tienen conocimiento en PHP esto será una tarea muy sencilla para quienes no, deberán seguir leyendo el tutorial:
Lo primero que necesitamos es crear nuestra propia tabla, la cual la usemos como llave de ingreso, ¿Qué quiere decir "llave de ingreso"?, me refiero a que haremos un:
1= SI entra al mapa vipPara crear nuestra tabla ingresamos al SQL , buscamos la tabla MEMB_INFO hacemos un clic derecho y luego seleccionamos la opción "Diseñar tabla"
0= No entra al mapa vip
5)Ahora nos deslizamos hasta el final de las tablas y la completamos de la siguiente manera:
Nombre de columna: asd
Tipo de datos: int
Logintud: 4
Permitir valores null: [Destilden la opción]
Valor predeterminado: 0
6)Nuestro siguiente paso será crear el formulario en PHP el cual contenga los siguientes datos:
Login de cuentaY luego con un "Select" (Ya que más adelante podremos tener más mapas vips), hacemos la selección del mapa
Nombre del personaje
Password de cuenta
y enviamos toda la información por un _post para evaluarla [El número 8 reempresenta al mapa, si ustedes van a usar otro mapa, deben ingresar el número que vimos en el paso 1) ].
7)Una vez que recibimos las variables enviadas por el formulario, las evaluamos:
$personaje = stripslashes($_POST['personaje']);Un poco de seguridad para evitar códigos en el pasaje y evaluación
$cuenta = stripslashes($_POST['cuenta']);
$pass = stripslashes($_POST['pass']);
$map= stripslashes($_POST['map']);
if ((eregi("[^a-zA-Z0-9_-]", $personaje)) ||Junto a la extración de datos del SQL, agregamos lo siguiente para conocer el estado de la cuenta:
(eregi("[^a-zA-Z0-9_-]", $cuenta)) ||
(eregi("[^a-zA-Z0-9_-]", $map)) ||
(eregi("[^a-zA-Z0-9_-]", $pass)))
$vip2 = mssql_query("select asd From MEMB_INFO Where memb___id = '$cuenta'");Agregamos el condicional para saber si la cuenta es VIP (Comparando los datos)
$row = mssql_fetch_row($vip2);
elseif ($row[0] < 1){ echo "Error: Tu cuenta no es VIP"; }
Y finalmente la querry que hara mover al personaje al punto deseado
$msquery ="UPDATE dbo.Character SET MapNumber = '$map'Por último, para hacer una cuenta vip podemos valernos de este simple .sql el cual aplicamos en el analizador de consultas:
WHERE Name = '$personaje'
UPDATE dbo.Character SET MapPosX= '193'
WHERE Name = '$personaje'
UPDATE dbo.Character SET MapPosY= '57'
WHERE Name = '$personaje'";
}
use MuOnlineEl "asd" es la tabla que creamos para condicionar a los usuarios vips, si bien los files o la mayoria de ellos tienen una tabla llamada vip, no es bueno ocuparla con otros proyectos ya que hay webs para MuOnline que la ocupan para trabajar.
UPDATE MEMB_INFO
SET asd=2
WHERE (memb___id = 'AcaElLogin')
Con este tutorial podemos convertir cualquier mapa en VIP, lógicamente que el código PHP requiere de mayor optimización, seguridad, etc... Simplemente se mostro una imagen global para dar idea o dimensión de dicha estructura básica.
Ustedes puede jugar con otros condicionales, es decir, pueden hacer por ejemplo que ciertos usuarios con cierta cantidad de resets puedan ir a ese mapa, condicionar el mapa por el nivel del personaje, también pueden ir dando puntos por cierta cantidad de resets y al llegar a dicha cantidad de puntos cambiarlos por una entrada o siemplemente vender la membresia vip por 30 días para ingresar.
Las condiciones de ingreso son realmente Infinitas, solo resta un poco de imaginación y personalidad.