Bienvenidos a un nuevo tutorial, hoy veremos la forma de dar puntos a los personajes que recien comienzan.
En antiguos tutoriales hemos visto como hacerlo pero con versiones Season´s, en esta oportunidad lo haremos para versiones viejas mediante un JOB SQL
La sentencia la iremos formando paso a paso explicando en detalles cada linea y su funcionamiento:
1)Lo primero que haremos será comenzar con la sentencia simple, es decir:
¿Cómo programamos un job SQL que de 2000 puntos a los personajes que recien comienzan?
La respuesta serÃa la siguiente:
UPDATE Character¿Es correcta?¿Qué sucederÃa si aplicamos esa sentencia?
Set LevelUpPoint =('2000')
WHERE LevelUpPoint =0
2)Lo que sucederá es que efectivamente le dará esos 2000 puntos al personaje que recien comienza, pero ... ¿Qué pasa si ese personaje reparte todos esos puntos?
Y aca tenemos el primer error, lo que sucederá es que si ese personaje se reparte todos los puntos, volverá a tener 0 puntos para repartir y como la condición anterior requerÃa que el personaje tenga 0 puntos para repartir, el personaje volverá a tener nuevamente 2000 puntos.
Lo que producirá que el personaje se haga full stats en cuestiones de minutos.
¿Cómo lo soluciono?
Necesitamos agregar otro condicional, de modo tal que condicionemos a partir de los stats.
La sentencia serÃa ahora la siguiente:
UPDATE Character
Set LevelUpPoint =('2000')
WHERE LevelUpPoint =0 and Strength = 25 and Dexterity = 25 and Vitality = 25 and Energy = 15
3)Ahora lo que sucederá es que se le dará esos 2000 puntos a personajes que no tengan puntos ni para repartir ni repartidos.
Y si queremos evitar cualquier tipo de bug por parte de los usuarios (Ya que en algunos servidores, los sitios webs tienen la opción de transferir puntos)
Podemos agregar otros condicioneles como por ejemplo:
UPDATE CharacterInformación adicional:
Set LevelUpPoint =('2000')
WHERE LevelUpPoint =0 and Strength = 25 and Dexterity = 25 and Vitality = 25 and Energy = 15 and Clevel=1 and Resets=0
*Los niveles de los stats, son referenciales.
*Si en su servidor dan resets para comenzar, deben modificar el valor base de dicha variable en la sentencia.
*Si van aplicar la sentencia para una versión con DarkLord deberán agregar la tabla correspondiente al comando.