Como poner un c贸digo 煤nico en un cartucho.
Supongamos el siguiente caso: tenemos un cartucho de Wherigo que es muy largo y que queremos dividir en varios cartuchos con objeto de que no carguen demasiado el player y se cuelgue. Bien hasta aqu铆 sencillo, dividimos nuestro recorrido en varios tramos y con cada uno de ellos generamos un cartucho. Bien, pero… alg煤n avispado jugador puede pensar que con hacer el 煤ltimo cartucho tiene suficiente. Para evitar esto, podemos hacer que al final del cartucho anterior, se le entregue al jugador un c贸digo que deber谩 introducir en el siguiente cartucho antes de empezar a jugar. Esto lo podr铆amos hacer de la siguiente manera:
| Primer cartucho | Segundo Cartucho |
Al final del primer cartucho, ponemos un mensaje en el cual le entregamos al jugador el c贸digo y en el segundo cartucho, ponemos un聽Input y en el evento聽On get input聽tenemos que poner las sentencias que vemos en la imagen para comprobar que el c贸digo introducido es el correcto.
Hasta aqu铆 todo muy sencillo, pero tiene un inconveniente, y es que te pueden dar el c贸digo para completar el cartucho y en ese caso no necesitas jugar los cartuchos anteriores, con jugar el 煤ltimo es suficiente. Vamos a poner remedio. Para ello lo que vamos ha hacer es generar un c贸digo 煤nico para cada cartucho y jugador de manera que no se pueda utilizar el c贸digo generado para otro jugador.
| Primer cartucho | Segundo Cartucho |
| 聽 |
聽 |
Para generar un c贸digo 煤nico, vamos a utilizar una聽funci贸n hash. Las funciones hash o funciones resumen tomar como valor de entrada una cadena de longitud variable (puede ser un texto completo) y nos generan un c贸digo de longitud fija que es 煤nico para esa cadena. Podriamos decir que es una especie de encriptaci贸n, pero con una diferencia, con que cambie un solo car谩cter de la cadena, el c贸digo que se genera es completamente distinto y que aunque es muy sencillo de obtener el c贸digo a partir de la cadena lo contrario es bastante complicado.
Como Urwigo no trae una instrucci贸n directa que 聽haga esto, tendremos que escribir el c贸digo necesario utilizando Lua. En este caso es muy sencillo puesto que solamente necesitamos una linea de c贸digo.
Para insertar una linea de c贸digo Lua en nuestro programa utilizamos el bloque聽Lua user expression, que lo podemos arrastrar desde la 煤ltima linea de la seccion聽Expressions. Una vez colocado el bloque lo que tenemos que hacer es escribir el c贸digo que genera el Hash. Vamos a utilizar para hacerlo una funci贸n que viene con Urwigo que se llama聽_Urwigo.Hash(). Esta funci贸n admite como par谩metro de entrada una cadena y devuelve como salida un n煤mero que es funci贸n de la cadena introducida.
Como par谩metro de entrada ponemos el nombre del cartucho y lo concatenamos con el nombre del jugador. Aunque el nombre del cartucho se encuentra en la variable聽Cartidge.Name, no podemos utilizarlo porque en el segundo cartucho el nombre es otro . Por eso ponemos directamente la cadena con el nombre. Para el nombre del jugador utilizamos la variable聽Player.Name.聽Esta variable contiene el nombre del jugador 聽que se ha utilizado en la p谩gina de Wherigo al descargar el cartucho. La intrucci贸n queda:聽_Urwigo.Hash(芦Micartucho禄..Player.Name).聽Recuerda que tienes que聽substituir聽 芦Micartucho禄 por el nombre correspondiente. Entre 芦MiCartucho禄 y Player.Name nos encontramos dos puntos聽..聽este es el operador que utiliza Lua para concatenar dos cadena, es similar al comando Concatenate de Urwigo.
Con este sencillo truco tenemos el mecanismo que necesitamos para poder dividir un Wherigo en varios cartucho sin que el jugador se pueda saltar ninguno de los pasos.
