Anyone [Archive] - ForumsHQ

Post Reply
Speed
Posts: 0
Joined: Sun Jan 13, 2002 6:00 am

Anyone [Archive] - ForumsHQ

Post by Speed »

I was wondering if there is anyone out there that knows how to extract the data from the majormud files. All I want is raw data from the files. A file like this for monsters:

Mon Name,0,0,0,0,0,0,0,0,0,XXX,XX,0,0,XX

And for everything else, shops, rooms, everything that is involved in majormud. Basically the X's and 0's are the fields that are involved in an item/monster/room. Turbofoot helped me out and sent me a couple, items and monsters I believe. I don't know where to begin, but if someone has the knowledge and can direct me or simply just extract the data themselves, it would be appreciated.
admiralacid
Posts: 1
Joined: Tue Nov 20, 2001 6:00 am

Re: Anyone [Archive] - ForumsHQ

Post by admiralacid »

the raw data turbofoot packs w/ his weirdo viewer is far better then the viewer itself... Ive tossed them up into a foxpro jobby, sorted and tossed the data onto a form, and had something that looked like megamuds item calculator... (maybe i sould export that to html...)

turbofoot himself is the best one to ask how he got the data in a comma delimited format in the first place....
Speed
Posts: 0
Joined: Sun Jan 13, 2002 6:00 am

Re: Anyone [Archive] - ForumsHQ

Post by Speed »

These are some of the things he gave me:

* *function GetNextStr : string;

* *var

* * *s : string;

* *begin

* * *if all[ 1 ] = '"' then begin

* * * *iAt := pos( '",', all );

* * * *if iAt > 0 then begin

* * * * *s := copy( all, 1, iAt-1 );

* * * * *all := copy( all, iAt+2, (length( all )-iAt)+2 );

* * * *end else begin

* * * * *s := all;

* * * * *all := '';

* * * *end;

* * *end else begin

* * * *iAt := pos( ',', all );

* * * *if iAt > 0 then begin

* * * * *s := copy( all, 1, iAt-1 );

* * * * *all := copy( all, iAt+1, (length( all )-iAt)+1 );

* * * *end else begin

* * * * *s := all;

* * * * *all := '';

* * * *end;

* * *end;

* * *s := StringReplace( s, '"', '', [rfReplaceAll] );

* * *result := s;

* *end;

* *function GetNextInt : integer;

* *begin

* * *result := StrToInt( GetNextStr() );

* *end;

ITEMS9.txt ============================

* *application.processmessages;

* *ReadLN( tf, all );

* *source := all;

* *if all = '' then exit;

* *id := GetNextInt();

* *limit := GetNextInt();

* *Name := Capitalise( trim( GetNextStr() ) );

* *enc := GetNextInt();

* *item_type := GetNextInt();

* *for kk := 1 to 10 do flagindex[ kk ] := GetNextInt();

* *NumUses := GetNextInt();

* *cost := GetNextInt();

* *for kk := 1 to 10 do classnote[ kk ] := GetNextInt();

* *dmg_min := GetNextInt();

* *dmg_max := GetNextInt();

* *ac := GetNextInt();

* *for kk := 1 to 10 do negates[ kk ] := GetNextInt();

* *weapon_type := GetNextInt();

* *Armour_type := GetNextInt();

* *worn := GetNextInt();

* *accuracy := GetNextInt();

* *idr := GetNextInt();

* *str := GetNextInt();

* *ispeed := GetNextInt();

* *for kk := 1 to 10 do flagvalue[ kk ] := GetNextInt();

* *destructmessage := GetNextInt();

* *currency_type := GetNextInt();

SPELLS9.txt ============================

* *application.processmessages;

* *ReadLN( tf, all );

* *source := all;

* *if all = '' then exit;

* *ID := GetNextInt();

* *Name := Capitalise( trim( GetNextStr() ) );

* *Name := StringReplace( Name, '-hits', '', [ rfReplaceAll ] );

* *Name := StringReplace( Name, '-lbol', '', [ rfReplaceAll ] );

* *if Name = 'Moonsword' then

* * *Name := 'Moonblade'

* *else if Name = 'Whip Entangle' then

* * *Name := 'Entangle'

* *else if Name = 'Sword Major Bless' then

* * *Name := 'Major Bless'

* *else if Name = 'Frost Sceptre-fjet' then

* * *Name := 'Frost Jet'

* *else if Name = 'Frost Sceptre-chill Touch' then

* * *Name := 'Chill Touch'

* *else if Name = 'Envelops' then

* * *Name := 'Fire Envelops'

* *else if Name = 'Sunbolt Wand' then

* * *Name := 'Sunbolt';

* *LevelCap := GetNextInt();

* *energy := GetNextInt();

* *level := GetNextInt();

* *min_effect := GetNextInt();

* *max_effect := GetNextInt();

* *SpellType := GetNextInt();

* *difficulty := GetNextInt();

* *CasterType := GetNextInt();

* *mana := GetNextInt();

* *levelmod := GetNextInt();

* *Increases := GetNextInt();

* *Magical := GetNextInt();

* *AlwaysMax := GetNextInt();

* *for kk := 1 to 10 do FlagValue[ kk ] := GetNextInt();

* *for kk := 1 to 10 do FlagIndex[ kk ] := GetNextInt();

* *Targets := GetNextInt();

* *Rounds := GetNextInt();

* *Element := GetNextInt();

* *Code := trim( uppercase( GetNextStr() ) );

* *//Spare1 := GetNextInt();

* *RoundModTimes := GetNextInt();

* *RoundModDiv := GetNextInt();

* *if pos( 'form of', lowercase( name ) ) > 0 then begin

* * *if lowercase( name ) = 'form of the dragon' then begin

* * * *code := 'DFRM';

* * *end;

* * *castertype := 5;

* *end;

MONSTERS9.txt ============================

* *application.processmessages;

* *ReadLN( tf, all );

* *source := all;

* *if all = '' then exit;

* *ID * * *:= GetNextInt();

* *Name * *:= trim( GetNextStr() ); * *//Capitalise( trim( GetNextStr() ) );

* *for j := 1 to 5 do DropItem[ j ] := GetNextInt();

* *for j := 1 to 5 do DropChance[ j ] := GetNextInt();

* *Area * *:= GetNextInt();

* *HPs * * := GetNextInt();

* *Exp * * := GetNextInt();

* *DR * * *:= GetNextInt();

* *AC * * *:= GetNextInt();

* *MR * * *:= GetNextInt();

* *Follow *:= GetNextInt();

* *Weapon *:= 0; * //GetNextInt();

* *Leader *:= 0; * //GetNextInt();

* *if exp < 0 then inc( exp, 65536 );

SHOPS9.txt ============================

* *application.processmessages;

* *ReadLN( tf, all );

* *source := all;

* *if all = '' then exit;

* *ID := GetNextInt();

* *Name := Capitalise( trim( GetNextStr() ) );

* *shoptype := GetNextInt();

* *u1 := GetNextInt();

* *min_lvl := GetNextInt();

* *max_lvl := GetNextInt();

* *markup := GetNextInt();

* *for j := 1 to 20 do item[ j ] := GetNextInt();

* *for j := 1 to 20 do itemmax[ j ] := GetNextInt();

* *for j := 1 to 20 do itemnormal[ j ] := GetNextInt();

* *for j := 1 to 20 do itemregen[ j ] := GetNextInt();

(excerpt from items9i.txt)

"423","0","adamantite bracers","250","0","0","0","0",&

;quo

t;0","0","0","0","0","0","0&am

p;qu

ot;,"-1","5000","0","0","0","0"

;

;,"0","0","0","0","0","0",&

;quo

t;0","0","20","0","0","0","0&a

mp;q

uot;,"0","0","0","0","0","0",&

amp;

quot;0","0","6","0","0","0","0

","0","0","0","0","0","0"

,"0","0","0","0","0","2","

;

;1"

"419","0","adamantite chainmail","800","0","27","135","0"

,"0","0","0","0","0","0","

;

;0","-1","100","0","0","0","0&

amp;

quot;,"0","0","0","0","0","0",

"0","0","200","0","0","0",&

;quo

t;0","0","0","0","0","0","0&am

p;qu

ot;,"0","7","11","0","20","0",

"8224","-10","30","8224","8224","82

24","8224","8224","8224","8224","8224&am

p;qu

ot;,"4864","3","1"

"856","0","adamantite platemail","1300","0","27","135","0"

;

;,"0","0","0","0","0","0",&

;quo

t;0","-1","150","0","0","0","0

","0","0","0","0","0","0"

,"0","0","250","0","0","0",&am

p;qu

ot;0","0","0","0","0","0","0&a

mp;q

uot;,"0","9","11","0","25","0"

,"8224","-15","30","8224","8224","8

224","8224","8224","8224","8224","8224&a

mp;q

uot;,"4864","3","1"

"861","0","aegis shield","550","0","27","28","135",&

amp;

quot;0","0","0","0","0","0","0

","-1","100","0","0","0","0&am

p;qu

ot;,"0","0","0","0","0","0",&a

mp;q

uot;0","0","100","0","0","0","

0","0","0","0","0","0","0"

;

;,"0","9","12","-4","0","0",&a

mp;q

uot;0","-5","6","40","0","0","

0","0","0","0","0","0","3"

;

;,"1"

"1026","0","amber emblem","5","0","119","183","0",&am

p;qu

ot;100","0","0","0","0","0","0

","-1","1","0","0","0","0"

;

;,"0","0","0","0","0","0",&

;quo

t;0","0","0","0","0","0","0&am

p;qu

ot;,"0","0","0","0","0","0",&a

mp;q

uot;0","0","16","0","0","0","0

","0","3","8","0","0","0"

,"0","0","0","0","0","2","

;

;1"

"1516","0","amber pearl earrings","10","0","28","10","0",&a

mp;q

uot;0","0","0","0","0","0","0&

amp;

quot;,"-1","30","0","0","0","0"

;

;,"0","0","0","0","0","0",&

;quo

t;0","0","0","0","0","0","0&am

p;qu

ot;,"0","0","0","0","0","0",&a

mp;q

uot;0","0","15","0","0","0","0

","1","3","0","0","0","0"

,"0","0","0","0","0","2","

;

;1"

"815","0","amber talisman","75","0","119","0","0",&a

mp;q

uot;0","0","0","0","0","0","0&

amp;

quot;,"1","1","0","0","0","0",

"0","0","0","0","0","0","

0","0","0","0","0","0","0"

;

;,"0","0","0","0","0","0",&

;quo

t;0","0","8","0","0","0","0&am

p;qu

ot;,"0","0","0","0","0","0",&a

mp;q

uot;0","0","0","0","1242","2","

;

;1"

"1038","0","amethyst emblem","5","0","119","183","0",&am

p;qu

ot;100","0","0","0","0","0","0

","-1","1","0","0","0","0"

;

;,"0","0","0","0","0","0",&

;quo

t;0","0","0","0","0","0","0&am

p;qu

ot;,"0","0","0","0","0","0",&a

mp;q

uot;0","0","16","0","0","0","0

","0","5","5","0","0","0"

,"0","0","0","0","0","2","

;

;1"

"407","0","amethyst pendant","25","0","28","43","121",&

amp;

quot;0","0","0","0","0","0","0

","3","700","0","0","0","0&

;quo

t;,"0","0","0","0","0","0",&am

p;qu

ot;0","0","0","0","0","0","0&a

mp;q

uot;,"0","0","0","0","0","0",&

amp;

quot;0","0","8","0","0","0","0

","1","157","3","0","0","0&

;quo

t;,"0","0","0","0","0","258",&

amp;

quot;1"

He even gave me the code he used, I just dunno what language he has or how to compile it/use it. *It looks simple enough, I did the same kind of read/write shit a couple months ago, I just dunno what language this is. *I would like to get the data out of every damn thing there is in mud, text blocks and everything. *Anyone wanna point me in the direction as to what language this is and where I can get a compiler/interpreter?

-Edit-

The part where everything is dillimeted by a comma is all on one line not like it looks.
Panterra X
Posts: 0
Joined: Thu May 30, 2002 5:00 am

Re: Anyone [Archive] - ForumsHQ

Post by Panterra X »

btrieve maybe ?
syntax53
Posts: 0
Joined: Wed Apr 03, 2002 6:00 am

Re: Anyone [Archive] - ForumsHQ

Post by syntax53 »

I'll try and include an option to dump the databases in Nightmare Redux.

-syntax
pyotr
Posts: 0
Joined: Thu May 02, 2002 5:00 am

Re: Anyone [Archive] - ForumsHQ

Post by pyotr »

Syn,

Any idea on a realse date, no rush just anxious for mod 9 stuff.

-pyotr
turbofoot
Posts: 0
Joined: Mon Jan 07, 2002 6:00 am

Re: Anyone [Archive] - ForumsHQ

Post by turbofoot »

I extracted the data using BTFiler version 1.50c. I think my most recent monster extract file for btfiler is available at http://www.infinitelives.tv/items/monster9.inx



the code to read the output looks something like this i think:



procedure GetOneRow;

var

iAt : integer;

j : integer;



function GetNextStr : string;

var

s : string;

begin

if all[ 1 ] = '"' then begin

iAt := pos( '",', all );

if iAt > 0 then begin

s := copy( all, 1, iAt-1 );

all := copy( all, iAt+2, (length( all )-iAt)+2 );

end else begin

s := all;

all := '';

end;

end else begin

iAt := pos( ',', all );

if iAt > 0 then begin

s := copy( all, 1, iAt-1 );

all := copy( all, iAt+1, (length( all )-iAt)+1 );

end else begin

s := all;

all := '';

end;

end;

s := StringReplace( s, '"', '', [rfReplaceAll] );

result := s;

end;



function GetNextInt : integer;

begin

result := StrToInt( GetNextStr() );

end;



begin

application.processmessages;



ReadLN( tf, all );

source := all;

if all = '' then exit;



ID := GetNextInt();

Name := trim( GetNextStr() );

for j := 1 to 5 do DropItem[ j ] := GetNextInt();

for j := 1 to 5 do DropChance[ j ] := GetNextInt();

Area := GetNextInt();

HPs := GetNextInt();

Exp := GetNextInt();

DR := GetNextInt();

AC := GetNextInt();

MR := GetNextInt();

Follow := GetNextInt();

Weapon := 0; //GetNextInt();

Leader := GetNextInt();

Align := GetNextInt();

Regen := GetNextInt();

for j := 1 to 5 do Flags[ j ] := GetNextInt();

for j := 1 to 5 do Vals[ j ] := GetNextInt();

end;
syntax53
Posts: 0
Joined: Wed Apr 03, 2002 6:00 am

Re: Anyone [Archive] - ForumsHQ

Post by syntax53 »

Originally posted by pyotr

Syn,



Any idea on a realse date, no rush just anxious for mod 9 stuff.



-pyotr





beta will be going out this week to a select few. I would say the end of next week it should be out. It will/does include options to dump the databases for all of the databases it edits.
Post Reply

Return to “Editing Questions and Guides”