Tamaño del Texto:
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
 
Páginas: [1]   Ir Abajo
  Imprimir  
Autor Tema: [Guia] Introducción al Source de eathena  (Leído 407 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« : 08 de Septiembre de 2008, 03:53:31 »

Estado: Trabajando #Diseñando un protocolo estetico a la guia (colores, tamaños, etc) y estructurando la guia en secciones y subsecciones#

 psmileha61- Primer contacto con el Src
antes de nada ya sabreis o deberíais saber que eathena es un emulador open source, es decir de código abierto, esto quiere decir que podemos editar el emulador al 100%, voy a introduciros al mundo del source de eathena, tanto eathena svn stable/trunk txt/sql estan escritos en el lenguaje C. Existe otro emulador llamado eApp, tambien conocido como eA++ escrito en el lenguaje C++, aun esta en desarrollo, no os invito a utilizarlo, en mi guia trataremos unicamente y exclusivamente eathena stable/trunk txt/sql.

1.1 Fases de desarrollo de eathena
Bueno, estas son las 3 fases que sufre vuestro eathena al compilarlo desde que es puro src asta que se combierte en archivos binarios ejecutables.

1- La preprocesación:
Transforma el src, lo combierte en otro archivo fuente “predigerido”. Las transformaciones incluyen:
-Eliminar los comentarios.
-Incluir en el fuente el contenido de los ficheros declarados con #include <fichero>
-Sustituir en el src las macros declaradas con #define (ej. #define tres 3)


2- La Compilación:
Convierte el src preprocesado en un archivo en lenguaje maquina: archivo objeto.
segun el compilador pasará por una fase intermedia en lenguaje ensamblador.

3- El enlazador:
Un archivo objeto es código binario, pero no se puede ejecutar, porque le falta código que se encuentra en otros archivos binarios.
El enlazador genera el ejecutable binario, a partir del contenido de los archivos objetos y de las librerias.
Las librerias contienen el código de funciones precompiladas, a las que el archivo fuente llama (por ejemplo printf, scanf, etc...).

2. Librerias
eathena carece de tipos y servicios que forman parte de otros lenguajes que no son C.
No tiene boolean, ni manejo de cadenas, ni manejo de memoria dinamica.
Pero eathena define un conjunto de librerias de funciones, que necesariamente vienen con todo entorno de compilación de eathena y que satisfacen estos servicios elementales y necesarios.
Las interfaces de estos servicios vienen definidas en unos ficheros cabeceras (header files). El nombre de estos ficheros suele terminar en .h
ejemplos:
#include "../common/cbasetypes.h"
#include "../common/mmo.h"
#include "../common/timer.h"
#include "atcommand.h"
#include "battle.h"
#include "chat.h"
#include "clif.h"

las mas importantes que tenemos en eathena son:
#include "stdio.h" -> entrada y salida de datos
#include "string.h" -> manejo de cadenas
#include "stdlib.h" -> memoria dinámica
#include "math.h" -> rutinas matemáticas



3. Componentes de eathena y su manipulación de datos
eathena sigue el paradigma de la programación estructurada:
algoritmo+estructura de datos = programa

Estructuras de datos:
-Literales:
un Literal es un dato escrito directamente (ej. 12345, “divinero”, etc...)
eathena maneja 6 tipos de Literales que son los siguientes:
1- Decimal: es un dato entero en base 10 (ej. 1234)
2- Hexadecimal: es un dato entero en base 16 (ej. 0x1234)
3- Octal: es un dato entero en base 8 (ej. 01234)
4- Caracter: es un dato BYTE en ASCII (ej. "A","B","J")
5- Coma Flotante: es un numero real decimal/periodico, no quiero entrar en profundidad de la aritmetica en sus consideraciones y sus limitaciones (ej. 3.456e6)
6- Cadena: es un texto literal: (ej. "hola, estoy escribiendo una guia")

-Tipos de datos:
Los datos en eathena deben de tener un tipo. Las variables contienen datos, y se han de declarar del tipo adecuado a los valores que van a contener.
Voy a explicaros los 5 tipos basicos que utilizareis
1- int: enteros (numeros enteros positivos y negativos)
2- char: caracteres (letras)
3- float: numeros en coma flotante (numeros reales)
4- double: numeros en coma flotante de doble precision
5- void: no-tipo (se usa con punteros)

Todos estos tipos excepto void son tipos numericos.

Se pueden construir tipos de datos mas elaborados a partir de estos tipos basicos:
-Vectores y matrices
-Punteros
-Tipos estructurados (registros)

-Declaraciones de variables:
Las variables se utilizan para guardar datos dentro del eathena.
Hay que declarar las variables antes de usarlas.
Cada variable tiene un tipo.
Declaración: tipo nombre; (ej. int guia;)

-Rangos de valores y tipos modificados:
Rango de los enteros:
Una variable entera acepta valores positivos y negativos dentro de un rango determinado,
aquí interviene algo muy importante, y es que depende de la plataforma y del compilador (en MS-DOS suele estar entre -32768 y 32767; en Linux son enteros de 32 bits).

Existen 4 modificaciones para el tipo int, para alterar el rango de valores sobre el que trabaja:
1- short: entero corto (rango mas pequeño)
2- long: entero largo (rango mas amplio)
3- unsigned: entero sin signo (0..N)
4- signed: entero con signo (-N-1 .. +N)

La palabra int se puede omitir en la declaracion de la variable
Los modificadores de tamaño ( short, long) y de signo ( signed, unsigned) se pueden combinar.
Por omision, un entero es signed.
Ejemplos:
unsigned sin_signo;
long saldo_en_movil;
unsigned long telefono;


Tipo char:
El tipo char permite manejar caracteres (letras), aunque se trata de un tipo numerico.
Normalmente el rango de valores va de –128 a +127 (signed char), o bien de 0 a 255 (unsigned char)
Los literales de tipo caracter se pueden utilizar como numeros.
Ejemplo:
char caracter; //declaramos
int entero; //declaramos

caracter = 65; // valdría como una 'A'
entero = ‘A’;  // valdría como un 65

Ejemplos de Variables validas y no validas:
-validas:
char letra;
int Letra;
float CHAR;
int __variable__;
int cantidad_envases;
double precio123;
int __;

-no validas:
int 123var;   -> Empieza por digitos
char int; -> Palabra reservada
int una sola; -> Contiene espacios
int DOLAR$; -> Contiene $
int var.nueva; -> Contiene el punto

Expresiones:
Los datos se manipulan mediante expresiones, que sirven para calcular valores. En eathena hay varios operadores para construir expresiones:
+ ->suma
- -> resta
* -> multiplicación
/ -> división
% -> residuo de la división

Una expresión combina varias operaciones y devuelve un valor.
Los operadores *, / y % tienen prioridad sobre la suma y la resta.
Se pueden utilizar parentesis para agrupar subexpresiones.
ej: 2+2 * ( (5*4) / (9-2) )

Asignación de una variable:
La forma de dar valor a una variable es:
variable = expresión ;
Se le llama asignación.

Tambien se puede dar valor a una variable en el mismo momento en que se declara:
tipo variable = expresión ;
ej. int numero = 1;
Una variable que se declara sin asignarle valor contiene un valor indeterminado, hasta que le asignemos un valor mas adelante.

ejemplo:
int valor1 = 1;
int valor2;

valor1 = valor1 + 3; -> el valor que contiene la variable es 4
valor2 = valor2 + 3; -> error
valor2 = 3+2; -> el valor que contiene la variable es 5

Las asignaciones son expresiones
Una asignación es una expresión. Esto quiere decir que: a) devuelve un valor; b) una asignación puede colocarse dentro de una expresión mas compleja.
El valor devuelto por la asignación a=b es el resultado de evaluar b.
ej. C =  20 - ( B = 2*(A=5)+4 ) ;
explico:
A valdra 5 (por la expresión A=5)
B valdra 2*(5)+4= 14
C valdra 20-(14)= 6
resumiendo, una asignación se puede colocar en cualquier sitio donde se puede emplear una expresión.

Operadores avanzados:
Los operadores de incremento, decremento y asignación compuesta permiten modificar el contenido de una variable de forma abreviada.

A++, ++A -> Incrementa en 1 el valor de A (A=A+1)
A--, --A -> Disminuye en 1 el valor de A (A=A-1)
A+=x -> A=A+x
A-=x -> A=A-x
A*=x -> A=A*x
A/=x -> A=A/x

Operadores “pre” y “post” y valor devuelto:
Si el operador ++ o -- se coloca a la izquierda, se llama preincremento (++) o predecremento (--). Si se coloca a la derecha, se llama postincremento(++) o postdecremento(--).
Cuando se escriben estas expresiones dentro de expresiones más complejas, el valor que se devuelve es:
* Operaciones “pre”: El valor nuevo de la variable afectada
* Operaciones “post”: El valor anterior de la variable afectada
ej.
x=1;
A = ++x; -> preincremento, es decir, A valdra 2, x valdra 2

x=1;
A = x++; -> postincremento, es decir, A valdra 1, x valdra 2

Las asignaciones compuestas devuelven el nuevo valor de la variable:
x=2; A=(x*=3)+1; -> x valdra 6 y A valdra 7

« Última modificación: 12 de Septiembre de 2008, 03:26:16 por Logic » En línea
DivineRO :: Foro :: Ragnarok Online
« : 08 de Septiembre de 2008, 03:53:31 »

 En línea
Zealotus
Moderador
Posteador Epico
*

Reputacion: 1482
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2473
Miembro Nº: 6293


Usa el buscador antes de pedir ayuda!




Última visita: 07 de Enero de 2009, 10:23:32

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #1 : 08 de Septiembre de 2008, 11:12:42 »

Porfavor aplica el formato basico de guias realizaodo por shuji para que podamos moverlo a desarrollo interno,
En línea

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login

Feed Me!

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login
Adopted from Valenth



Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #2 : 08 de Septiembre de 2008, 01:15:34 »

no muevas nada, que la estoy haciendo yo, pues la voy a acabar yo, cuando acabe le dare formato y todo
En línea
Zealotus
Moderador
Posteador Epico
*

Reputacion: 1482
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2473
Miembro Nº: 6293


Usa el buscador antes de pedir ayuda!




Última visita: 07 de Enero de 2009, 10:23:32

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #3 : 08 de Septiembre de 2008, 01:21:49 »

Ya ya tranquillo solo dije que cuando acabes apoliques el formato, para dar el visto bueno y moverlo.


Que vaya bien la guia =)
En línea

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login

Feed Me!

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login
Adopted from Valenth



Cram
Donadores y Ganadores
Posteador de Plata
*

Reputacion: 330
Desconectado Desconectado

Sexo: Masculino
Mensajes: 345
Miembro Nº: 6769


Servidor (es): Ragnarok Frontier




Última visita: 23 de Diciembre de 2008, 10:37:52

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #4 : 08 de Septiembre de 2008, 01:49:41 »

 pomglx2 Estupendo Logic lo que buscaba. Tremendo.
En línea

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login
Khasari
Moderador
Posteador Historico
*

Reputacion: 818
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2746
Miembro Nº: 1588


No es + rico el que + tiene sino el que - necesita


WWW

Última visita: Hoy a las 03:11:18

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #5 : 08 de Septiembre de 2008, 02:27:49 »

buena Logic,asi aprenderemos a modificar el codigo fuente de nuestro server para añadir cosas nuevas ^^
En línea


-Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login
www.khasari.comze.com

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login
http://top.khasari.comze.com/
(V 0.1)
-BrowEdit [ES] V 0.1 [||||||||||] 10%
-MapEditor PR [ES]  V 0.1 [||||||||||] 0%
-MapEditor [ES] V 0.6 [||||||||||] 20%
-eAdb Revision 5 [||||||||||] 0%
Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #6 : 08 de Septiembre de 2008, 03:34:37 »

Actualizado con:
Componentes de eathena: Estructuras de datos
En línea
Shuji Yagami
Moderador Director
Posteador Divino
*

Reputacion: 484
Desconectado Desconectado

Sexo: Masculino
Mensajes: 3530
Miembro Nº: 220


~ Divine Director ~


WWW

Última visita: Hoy a las 03:51:47

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #7 : 09 de Septiembre de 2008, 05:23:28 »

 NO1

Un +1 Logic, muy buena guía.

Felicidades, espero verla pronto terminada.
En línea

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login

 
"Dar algo menos que lo mejor de ti, es sacrificar tu don"¨
Vhan
Sub-Moderador
Posteador de Oro
*

Reputacion: 134
Desconectado Desconectado

Sexo: Masculino
Mensajes: 800
Miembro Nº: 702


ѕιn coмenтarιoѕ




Última visita: 05 de Enero de 2009, 05:29:46

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #8 : 09 de Septiembre de 2008, 12:36:40 »

Al igual que Shuji, opino lo mismo, buena guia y esperamos verla terminada pronto ^^

Logic Rep Lv up +1!
En línea

Design Zone © 2008 Vhan Leonhart




Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #9 : 09 de Septiembre de 2008, 10:18:29 »

Añadido: Rangos de valores y tipos modificados
En línea
Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #10 : 12 de Septiembre de 2008, 02:11:25 »

FIX: 3. Componentes de eathena y su manipulación de datos
he pensado ir tratando todos los componentes con su manipulación, todo en un mismo apartado
En línea
Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #11 : 12 de Septiembre de 2008, 02:41:25 »

Actualizado con varias cosas; expresiones, operadores, etc

Algo importante, quiero pedir al staff si es posible que me permitan flexionar el protocolo de formato de las guias, usar varios colores para la estructuración de secciones y subsecciones de la guia, creo que no debería haber ningun inconveniente siempre y cuando no use colores de dificil visibilidad (ej. amarillo) y sea eficiente el sistema.
Gracias, NO1
En línea
Shuji Yagami
Moderador Director
Posteador Divino
*

Reputacion: 484
Desconectado Desconectado

Sexo: Masculino
Mensajes: 3530
Miembro Nº: 220


~ Divine Director ~


WWW

Última visita: Hoy a las 03:51:47

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #12 : 12 de Septiembre de 2008, 02:55:01 »

Actualizado con varias cosas; expresiones, operadores, etc

Algo importante, quiero pedir al staff si es posible que me permitan flexionar el protocolo de formato de las guias, usar varios colores para la estructuración de secciones y subsecciones de la guia, creo que no debería haber ningun inconveniente siempre y cuando no use colores de dificil visibilidad (ej. amarillo) y sea eficiente el sistema.
Gracias, NO1

No hay ningún inconveniente, el formato se pide que se aplique para que se entienda mejor.
Si quieres usar otros colores pero se sigue entiendo, no veo ningún problema.

PD: No uses amarillo xD
En línea

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login

 
"Dar algo menos que lo mejor de ti, es sacrificar tu don"¨
Logic
Posteador Habitual
***

Reputacion: 129
Desconectado Desconectado

Mensajes: 101
Miembro Nº: 9100





Última visita: 09 de Noviembre de 2008, 10:50:54

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #13 : 12 de Septiembre de 2008, 02:56:27 »

ok vale, dije el amarillo como ejemplo de color no visible xD
En línea
Zealotus
Moderador
Posteador Epico
*

Reputacion: 1482
Desconectado Desconectado

Sexo: Masculino
Mensajes: 2473
Miembro Nº: 6293


Usa el buscador antes de pedir ayuda!




Última visita: 07 de Enero de 2009, 10:23:32

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #14 : 12 de Septiembre de 2008, 11:12:58 »

Mira si quieres seguir 100% el formato, ya que no se encuentra ese maldito verde te lo pongo yo =)

#006600   <---- Codigo hexadeimal.

Y te recomiendo, que los titulos en color marroncito los centres >.<

Un saludo y la guia impresionante!
En línea

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login

Feed Me!

Solo miembros registrados pueden ver links, por favor registrate es solo un momento.
Registro o Login
Adopted from Valenth



Vhan
Sub-Moderador
Posteador de Oro
*

Reputacion: 134
Desconectado Desconectado

Sexo: Masculino
Mensajes: 800
Miembro Nº: 702


ѕιn coмenтarιoѕ




Última visita: 05 de Enero de 2009, 05:29:46

- ¡Lee las Normas por favor. Utiliza siempre el Buscador y Titulos correctos en tus post! -
« Respuesta #15 : 12 de Septiembre de 2008, 01:23:13 »

La guia es simplemente buena, sigue asi compañero ^^
En línea

Design Zone © 2008 Vhan Leonhart




Páginas: [1]   Ir Arriba
  Imprimir  
 
Ir a:  


Post Similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Guia conf.Capitulo I, Introducción a la configuración de eAthena.
eAthena Guías y FAQ's
Muyico 0 16178 Último mensaje 15 de Diciembre de 2006, 06:26:27
por Muyico
Introduccion al Taekwon
Taekwon > Soul Linker - Star Gladiator
SonicStalker 0 1226 Último mensaje 18 de Julio de 2007, 02:11:19
por SonicStalker
[Guía] Scripting eAthena - Capítulo 1: Introducción / Estructuras
eAthena Guías y FAQ's
Myzter 0 2155 Último mensaje 17 de Octubre de 2007, 08:11:37
por Myzter
Dudas sobre Source
Soporte eAthena (Emulador y Server)
Kaos 3 84 Último mensaje 05 de Noviembre de 2007, 07:59:04
por Crislex
[Guia] nterconexion de variables source<->servidor
Desarrollo y Pruebas Usuarios
Logic 0 97 Último mensaje 06 de Septiembre de 2008, 12:29:31
por Logic
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
BlueSkies design by Bloc, editado por eves para DivineRO | XHTML | CSS

Página creada en 0.371 segundos con 27 consultas.


Google visitó por ultima vez esta pagina Hoy a las 04:39:49