Документ взят из кэша поисковой машины. Адрес оригинального документа : http://crydee.sai.msu.ru/ftproot/pub/rec/games/Cracks-Solutions-Cheats/Quake/monsters
Дата изменения: Mon Feb 26 19:35:24 1996
Дата индексирования: Tue Apr 12 18:40:51 2016
Кодировка:

Поисковые слова: п п п п п п п п п п п п п п п п п п п п п п п п п п п п п
From news.uni-hohenheim.de!news.belwue.de!fu-berlin.de!nntp.coast.net!news.sprintlink.net!news.seanet.com!usenet Mon Feb 26 19:35:25 1996
Path: news.uni-hohenheim.de!news.belwue.de!fu-berlin.de!nntp.coast.net!news.sprintlink.net!news.seanet.com!usenet
From: Chris Phillips
Newsgroups: rec.games.computer.quake.misc
Subject: There ARE monsters in TEST Quake.
Date: 25 Feb 1996 10:47:19 GMT
Organization: Bigbang Intergalactic
Lines: 119
Message-ID: <4gpenn$f5i@kaleka.seanet.com>
NNTP-Posting-Host: bigbang.seanet.com
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-Mailer: Mozilla 1.22 (Windows; I; 32bit)



Hi,
There ARE monsters in the test of Quake... sort of...
All the code is there it just takes a little hacking to see
them. Here are the steps.

1. Rip apart the .PAK file. I have included a .C file
to do just that!!

2. Use a hex editor to edit MAPS\TEST1.BSP.

3. Search for You should see a line like...
"classname" "weapon_supershotgun"

4. Replace "weapon_supershotgun" with "monster_demon1"
(be sure to pad with 0x0a)

5. Change "origin" "48 1152 0" to "origin" "48 1152 50"
otherwise monster
starts in a wall.

6. rename or delete ID1.PAK (so QUAKE.EXE will look at
modified file)

7. Run quake. load map test1.

8. Enjoy.

Other monsters you can try are:
monster_fish
monster_wizard
monster_dragon
monster_knight
monster_ogre


If you dont understand any part of the above DONT TRY!
Wait for someone to post an editor.

That said, I'd like to say that I'm somewhat
dissapointed
by the test version of Quake. But I urge everyone to give it a
chance. Just a few hours of hacking around have revealed a lot
of complexity. It just needs some time for ID to really explore
it.
For an example try fiddling with the GRAVITY....Neat!!!

Regards
Chris



#include
#include
#include
typedef struct{
char fn[0x40-8];
long pos,len;
}ENTRY;

ENTRY entrys[200];
long num_entrys;

make_path(char *p)
{
char *t;
char temp[0x40];

sprintf(temp,"%s",p);
t=&temp[0];
while(*t)
{
if(*t=='/')
{
*t=0;
mkdir(temp);
*t='/';
}
t++;
}
}

main()
{
FILE *f;
FILE *fo;
long pos,len,dummy;
long i;
char *temp;

f=fopen("id1.pak","rb");
fread(&dummy,sizeof(long),1,f);
fread(&pos,sizeof(long),1,f);
fread(&len,sizeof(long),1,f);
fseek(f,pos,SEEK_SET);
for(i=0;i fread(&entrys[i],sizeof(ENTRY),1,f);

for(i=0;i {

printf("%x:%x:%s\n",entrys[i].pos,entrys[i].len,entrys[i].fn);
make_path(entrys[i].fn);
fo=fopen(entrys[i].fn,"wb");
fseek(f,entrys[i].pos,SEEK_SET);
temp = malloc(entrys[i].len);
fread(temp,sizeof(char),entrys[i].len,f);
fwrite(temp,sizeof(char),entrys[i].len,fo);
free(temp);
fclose(fo);
}
fclose(f);

}