Important information: this site is currently scheduled to go offline indefinitely by end of the year.

Legend of Edda

The Original Forum. Game archives, full of resources. How to open them? Get help here.
Post Reply
pixellegolas
ultra-veteran
ultra-veteran
Posts: 423
Joined: Mon Aug 11, 2008 11:30 pm
Has thanked: 27 times
Been thanked: 15 times

Legend of Edda

Post by pixellegolas »

Legend of Edda archive is .pak but I tried both signsrch and offzip but could not get anywhere :)

The game has quite simple models, but look at them! They have so much cuteness that its just plain cool

Image

Image

Archive with 2 .pak
http://www.2shared.com/file/coeMmyWc/Graphic.html

actually I get this in signsrch:

padding used in hashing
libavcodec ff_mjpeg_val_ac_luminance
libavcodec ff_mjpeg_val_ac_chrominance
DMC compression [32.le.16&]
User avatar
CriticalError
double-veteran
double-veteran
Posts: 678
Joined: Sun Jul 05, 2009 2:03 am
Has thanked: 104 times
Been thanked: 41 times

Re: Legend of Edda

Post by CriticalError »

ummm well looking files I get this files.

*anm (animations)
*chx & mod (think models)
*dds (textures)

ImageImage
ImageImage
ImageImage

Legend of Edda 2D-3D Samples
iaw
advanced
Posts: 52
Joined: Wed Oct 21, 2009 12:52 pm
Has thanked: 9 times
Been thanked: 10 times

Re: Legend of Edda

Post by iaw »

pixellegolas
ultra-veteran
ultra-veteran
Posts: 423
Joined: Mon Aug 11, 2008 11:30 pm
Has thanked: 27 times
Been thanked: 15 times

Re: Legend of Edda

Post by pixellegolas »

sorry for necro but could someone upload the script from progamer?
wolfen
beginner
Posts: 25
Joined: Tue Dec 27, 2011 12:13 am
Been thanked: 1 time

Re: Legend of Edda

Post by wolfen »

hi im spanish member
Legend of Edda is same luna online reborn

I started a little while ago I start to analyze this structure

.chx is load from client. it only contains data of models and animation that the client will load
.anm most likely bone structure and animation
.mod model, bone information, collision and other things that have not been found out

try my script

Image

Code: Select all

/* READ FIXING STRING */
FUNCTION RFS FSTREAM NCHAR =
(
	TXT = ""
	NULL = FALSE
	FOR I = 1 TO NCHAR DO 
	(
		CHR = READBYTE FSTREAM #UNSIGNED 
		IF CHR == 0 THEN
		(
			NULL = TRUE
		)
		IF NULL == TRUE THEN
		(
			CONTINUE
		)
		TXT += BIT.INTASCHAR(CHR)
	)
	RETURN TXT
)
/* READ MATRIX 4X4 */
FUNCTION READ_MTX44 FSTREAM =
(
	M11 = READFLOAT FSTREAM; M12 = READFLOAT FSTREAM; M13 = READFLOAT FSTREAM;M14 = READFLOAT FSTREAM
	M21 = READFLOAT FSTREAM; M22 = READFLOAT FSTREAM; M23 = READFLOAT FSTREAM;M24 = READFLOAT FSTREAM
	M31 = READFLOAT FSTREAM; M32 = READFLOAT FSTREAM; M33 = READFLOAT FSTREAM;M34 = READFLOAT FSTREAM
	M41 = READFLOAT FSTREAM; M42 = READFLOAT FSTREAM; M43 = READFLOAT FSTREAM;M44 = READFLOAT FSTREAM
	MTX = MATRIX3 [M11, M12, M13] [M21, M22, M23] [M31, M32, M33] ([M41, M42, M43]) 
	RETURN MTX
)
/* READ NODE INFO */
FUNCTION READ_NODE F =
(
	N_ANGLE = READFLOAT F
	N_POSITION = [READFLOAT F,READFLOAT F,READFLOAT F]
	N_AXIS = [READFLOAT F,READFLOAT F,READFLOAT F]
	N_SCALE = [READFLOAT F,READFLOAT F,READFLOAT F]
	N_SCALEAXIS = [READFLOAT F,READFLOAT F,READFLOAT F]
	N_SCALEANGLE = READFLOAT F
	N_MTX = READ_MTX44 F
	N_MTXINVERSE = READ_MTX44 F
)
/* READ BASE INFO */
FUNCTION READ_BASE F =
(
	INDEX = READLONG F
	READ_NODE F
	CHILDNUM = READLONG F
	PARENTINDEX = READLONG F
	OBJNAME = RFS F 128
	FOR K = 1 TO CHILDNUM DO
	(
		CHILDID = READLONG F
	)
)
/* READ COLLITION INFO */
FUNCTION READ_COL F =
(
	/* BOUNDING BOX */
	BBOX1 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX2 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX3 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX4 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX5 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX6 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX7 = [READFLOAT F,READFLOAT F,READFLOAT F]
	BBOX8 = [READFLOAT F,READFLOAT F,READFLOAT F]
	/* BOUNDING SPHERE */
	BS_POINT = [READFLOAT F,READFLOAT F,READFLOAT F]
	BS_UNK = READFLOAT F
	/* BOUNDING CYLINDER */
	BC_POINT = [READFLOAT F,READFLOAT F,READFLOAT F]
	BC_UNK1 = READFLOAT F
	BC_UNK2 = READFLOAT F
	/* DATA INFO */
	COL_INDEX = READLONG F
	COL_NAME = RFS F 128
)
/* READ MESH INFO */
VERT = #()
TVERT = #()
FACE = #()
FUNCTION READ_MESH F VER =
(
	FREE VERT;FREE TVERT;FREE FACE
	MAXVERTNUM = READLONG F
	VERTNUM = READLONG F
	OVERTNUM = READLONG F
	EVERTNUM = READLONG F
	TVERTNUM = READLONG F
	MTLINDEX = READLONG F
	FACEGROUP = READLONG F
	FLAG = READLONG F
	GRIDINDEX = READLONG F
	DIR = [READFLOAT F,READFLOAT F,READFLOAT F]
	/* VERTEX */
	FOR K = 1 TO VERTNUM DO
	(
		APPEND VERT [READFLOAT F,READFLOAT F,READFLOAT F]
	)
	/* TEXTURE VERTEX */
	FOR K = 1 TO TVERTNUM DO
	(
		APPEND TVERT [READFLOAT F,-READFLOAT F,0.0]
	)
	/* UNK */
	FOR K = 1 TO EVERTNUM DO
	(
		READLONG F
	)
	/* READ FACES */
	FOR K = 1 TO FACEGROUP DO
	(
		MTLINDEX = READLONG F
		INDEX = READLONG F
		FACENUM = READLONG F
		MAXFACENUM = READLONG F
		VERTINDEXNUM = READLONG F
		LIGHTUV1 = READLONG F
		LIGHTUV2 = READLONG F
		FOR J = 1 TO FACENUM DO
		(
			APPEND FACE [READSHORT F + 1,READSHORT F + 1,READSHORT F + 1]
		)
		FOR J = 1 TO LIGHTUV1 DO
		(
			[READSHORT F,READSHORT F]
		)
		FOR J = 1 TO LIGHTUV2 DO
		(
			[READSHORT F,READSHORT F]
		)
	)
	/* PHYSIQUE BONE */
	IF(VER == 0X00000002) THEN
	(
		-- HEADER
		PVERT = READLONG F
		PBONES = READLONG F
		PBONES2 = READLONG F
		FOR K = 1 TO PVERT DO
		(
			PBONES_NUM = READBYTE F
			PBONES_ID = READLONG F
		)
		FOR K = 1 TO PBONES DO
		(
			B_ID = READLONG F
			B_WEIGHT = READFLOAT F
			B_OFFSET = [READFLOAT F,READFLOAT F,READFLOAT F]
			B_NORMAL = [READFLOAT F,READFLOAT F,READFLOAT F]
			B_TAGEN = [READFLOAT F,READFLOAT F,READFLOAT F]
		)
	)
	/* NORMAL VERTEX */
	IF(FLAG == 0X00000000) THEN -- NEED FIX
	(
		-- HEADER
		PL_NUM = READLONG F
		PL_WIDTH = READLONG F
		PL_HEIGHT = READLONG F
		FOR K = 1 TO PL_NUM DO
		(

		)
	)
	ELSE
	(
		IF(FLAG != 0X00000030) THEN
		(
			FOR K = 1 TO TVERTNUM DO
			(
				[READFLOAT F,READFLOAT F,READFLOAT F]
			)
		)
	)
	MSH = MESH VERTICES:VERT FACES:FACE TVERTS:TVERT
	BUILDTVFACES MSH
	FOR I = 1 TO MSH.NUMFACES DO
	(
		SETTVFACE MSH I (GETFACE MSH I)
	)
)
/* READ MOD FILE INFO */
FUNCTION READ_MOD F =
(
	-- MOD HEADER
	VERSION	= READLONG F
	OBJNUM		= READLONG F
	MTLNUM		= READLONG F
	MSHNUM	= READLONG F
	LGTNUM		= READLONG F
	CAMNUM	= READLONG F
	BONENUM	= READLONG F
	FORMAT "DATA: VER:% [%][%][%][%][%][%]\n" VERSION OBJNUM MTLNUM MSHNUM LGTNUM CAMNUM BONENUM
	-- READ MTL
	IF(MTLNUM >= 1) THEN
	(
		FOR K = 1 TO MTLNUM DO
		(
			FORMAT "MATERIAL #%\n" K
			MTL_TYPE = READLONG F
			MTL_SIZE = READLONG F
			IF(MTL_TYPE == 0X00F00000) THEN
			(
				TEX_NUM = READLONG F
				TEX_DIFFUSE = READLONG F 
				TEX_AMBIENT = READLONG F 
				TEX_SPECULAR = READLONG F 
				TEX_TRANSPARENCI = READFLOAT F 
				TEX_SHINE = READFLOAT F 
				TEX_SHINESTRENG = READFLOAT F 
				FOR K = 1 TO 10 DO
				(
					TEX_NAME = RFS F 128
					IF(TEX_NAME != "") THEN
					(
						FORMAT "TEXTURE:%\n" TEX_NAME
					)
				)
				TEX_MTL = RFS F 128
				TEX_INDEX = READLONG F
				TEX_FLAG = READLONG F
			)
		)	
	)	
	-- READ OBJ
	IF(OBJNUM >= 1) THEN
	(
		FOR K = 1 TO OBJNUM DO
		(
			--FORMAT "OBJECT #%\n" K
			MSH_TYPE = READLONG F
			MSH_SIZE = READLONG F
			--FORMAT "TYPE:%\n" (BIT.INTASHEX(MSH_TYPE))
			IF(MSH_TYPE == 0XF4000000) THEN
			(
				READ_BASE F
				READ_MESH F VERSION
			)
			ELSE IF(MSH_TYPE == 0XF5000000) THEN
			(
				READ_BASE F
				READ_COL F
			)
			ELSE
			(
				FORMAT "NEW TYPE FOUND [%]\n" (BIT.INTASHEX(MSH_TYPE))
			)
		)
	)
)
-- START OPEN FILE
FILE = GETOPENFILENAME CAPTION:"IMPORT MODEL" TYPES:"LUNA PLUS MOD|*.mod"
IF(FILE != UNDEFINED) THEN
(
	CLEARLISTENER()
	F	= FOPEN FILE "rb"
	READ_MOD F
	FCLOSE F
)
Post Reply