Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Autor: LhaN
Mi Blog: http://lhan999.blogspot.com
Prologo
En vista de mi necesidad y de mis ganas me he propuesto hacer
algún pequeño mod para el juego The Elder Scroll 4: Oblivion. Dada
la libertad que ofrece el juego y que los sistemas empleados por el
juego originalmente a mi criterio son un fiasco, decidí buscar un mod
que mejorara un poco estos aspectos. Me encontré con uno llamado
ORM, pero habían muchas versiones dando vuelta y finalmente solo
jugué con la versión 1.5.3 Rebuild 3.0. Pero no cubrió todas mis
necesidades, es mas, algunas a pesar de haber cambiado no habían
sido mejoradas, sino que habían sido empeoradas. Esto es mi criterio.
No digo que sea mal mod, muy por el contrario, trae un montón de
cosas buenas, además de que es uno de los únicos (si es que no es el
único) súper mod en español (con esto se gana la mitad de mi favor y
agradecimiento). Así que decidí que si alguien mas podía, por que yo
no?
Nota: Tengan presente que no siempre se hacen las cosas en orden y que a veces a
mitad del camino surgen cosas que no podemos o no queremos evitar. Llevar las
cosas en orden es bueno, pero no dejarse nutrir del camino que uno recorre por
conservar el orden es muy malo.
Inicialización
La inicialización consta de 2 partes fundamentales, la inicialización
de un entorno de desarrollo o IDE y la inicialización de los scripts.
Preparando el IDE
La mayoría de los lenguajes de programación presentan diferentes
IDE’s, los IDE’s son todas las herramientas, manuales, tutoriales,
información, foros, paginas sobre ese lenguaje. Dentro del IDE para
el scripting en Oblivion podemos mencionar.
Referencias:
[http://cs.elderscrolls.com/constwiki/index.php/Main_Page]
[http://www.clandlan.net/foros/index.php?showforum=109]
[http://www.tesnexus.com]
Además también como parte del IDE tenemos los manuales,
tutoriales, información y foros que esas páginas ofrecen.
Comencemos la preparación:
Nota: Existen además extensiones para los scripts, no tengo bien en claro si son
scripts de scripts o funciones para scripts. Una de ellas es el OBSE (Oblivion Script
Extender). Más información en la wiki del TESCS.
Menú File:
Abrir un archivo
Data… permite abrir y cerrar archivos. Cuando los abrimos
también señalamos cual de los archivos es el que vamos a modificar
y en caso de no señalar ninguno nos permite crear un archivo nuevo.
Hagamos clic entonces en Data…
Details…
[http://cs.elderscrolls.com/constwiki/index.php/Mod_Cleaning_Tutorial]
“Cerrar un archivo”
A simple vista no parece posible cerrar los archivos abiertos para
por ejemplo editar otro mod o empezar de nuevo.
Nota: De ahora en mas voy a usar indistintamente script, contenido del script y
código, para hacer referencia a los scripts.
Aquí podemos ver los scripts para los cebos de pesca y el cuerno
de guerra entre otros.
Short: entero corto cuyo rango de valores va desde el -32,768 hasta el 32,767
El 1.175494×10−38 es 0.00000000000000000000000000000000000001175494
chiquitisimo el numero!
El jugador o Player
Quizás el objeto mas importante de todos y que el seguramente
vamos a utilizar muy a menudo es el objeto Player, el jugador en si
mismo. Para hacer referencia al jugador se escribe Player.
Nota: Esta versión es Beta, todavía no están bien configurados los colores. Aun así
es más cómodo que verlo en blanco y negro. Además mi configuración usa como
color de fondo por defecto el color RGB = 48,48,48. Este estilo a mi me gusta y me
es cómodo, puede que a ti no te sea cómodo o no te guste o no convine con tu
tema de escritorio. La última parte donde dice WordsStyle ahí tienes que modificar
para los colores, el tipo de letra toma por defecto el del Global Style que se
configura desde el menú Configurar Configurador de Estilos.
Short controlvar
Begin OnActivate
If ( controlvar == 0 )
MessageBox "Voiceless it cries, wingless flutters, toothless
bites, mouthless
mutters. What is it?", "Bat", "Old woman", "Wind", "Wraith"
Set controlvar to 1
EndIf
End
Short controlvar
Begin OnActivate
If ( controlvar == 0 )
MessageBox "Voiceless it cries, wingless flutters,
toothless bites, mouthless
mutters. What is it?", "Bat", "Old woman", "Wind",
"Wraith"
Set controlvar to 1
EndIf
End
Esto se llama tabular o sangrear el código. De esta manera queda
claro el cuerpo del script y el cuerpo del If. Te recomiendo ser
ordenado desde un principio, mas tarde lo agradecerás y también
cualquiera que tome tu script para aprender o modificar.
Nota: Este código de ejemplo fue extraído de la wiki del TESCS sin permiso, pero
no creo que sea un problema jeje.
Apéndice III Nociones de programación
Sentencias o instrucciones
Cada línea de código que haga algo y que no pueda ser
descompuesta o dividida en porciones mas pequeñas se llaman
sentencias o instrucciones.
Bloques
Conjuntos de sentencias o instrucciones.
Condicional If
If es una sentencia de selección o condición que permite dirigir el
flujo de ejecución de un código. Consiste en dada un determinada
condición (de ahí que se llame condicional) si se cumple (es
verdadera ya que es una sentencia lógica) ejecuta todo el contenido
del If.
Nota: Esto es a grandes rasgos y simplificando lo mas posible, hay libro de cientos
de paginas dedicados al tema, y miles de paginas web también.
Código Ofuscado
El código ofuscado es para algunos un arte, consiste en escribir
sentencias de forma tal que a simple vista no tengan ningún sentido.
Usualmente esto se usa para evitar plagios o complicar la existencia a
quien quiera leer tu código. Atentan contra la filosofía del
OpenSource. Pero también puede deberse al uso incorrecto de las
variables o desorden en el código por no tener claro que es lo que
uno quiere hacer. El ejemplo más sencillo de código ofuscado en
nombrar variables o scripts con nombres como 00001 o f. A mi
humilde opinión ofuscar el código consiste en complicarle la vida a los
demás nombrando las cosas de manera complicada y nada intuitiva,
con el fin de ocultar información, otras veces se hace sin querer
queriendo.
Nota: El ejemplo del código ofuscado lo he tomado del ORM 1.5.3 Rebuild 3.0. No
es una crítica ni recriminación, simplemente lo tome de ejemplo para que los
nuevos modders no se asusten al ver estas anomalías. Mil disculpas si alguno de los
autores del mod ORM, ya sea Takyon o Poison se sienten agraviados.
Referencias o punteros
Son como los accesos directos de Windows, es un vinculo a un
objeto o variable. Completar.
Palabras Finales
Hasta aquí llega mi tutorial por el momento, hemos visto la
inicialización y una parte del desarrollo, queda pendiente continuar el
desarrollo de un script y probarlo en el juego. En este momento
todavía no he escrito ningún script, pero esto es lo que he aprendido
a duras penas. En la próxima versión de este tutorial profundizare
aun mas en los scripts y probablemente haga un par de ellos y
veamos ejemplos. Pero por el momento tengo que ponerme a
practicar. Si alguien quiere colaborar en esta pequeña empresa es
bienvenido es, no pido que hagan el tutorial, solo que me aporten
datos para que yo pueda continuar con esto y que otros puedan
aprender. Al final ganamos todos. Ahora mismo estoy trabado en
como hacer que funcione el script una vez escrito. Pero para empezar
creo que esto les da una idea general. Desde ya agradezco a la
comunidad de modders tanto de la wiki del TESCS, la del TES Nexos
y especialmente a los foros de Clan Dlan, por que de otra forma ni
siquiera hubiese conocido que existían mods para Oblivion. Saludos y
espero que les sirva mi pequeña e interminada contribución.