add custom entities to map?

Discuss the construction of maps and the tools to create maps for 3D games.
Freemanoid
Posts: 52
Joined: Mon Jun 16, 2008 11:25 am
Location: BELARUS
Contact:

add custom entities to map?

Post by Freemanoid »

How can I add custom entities to my map? Maybe I need to modify engine code of map editor? Or I have another way? It's all going to be happening in original quake for ppc.
scar3crow
InsideQC Staff
Posts: 1054
Joined: Tue Jan 18, 2005 8:54 pm
Location: Alabama

Post by scar3crow »

It depends on the map editor you're using, I'm only familiar with GTKRadiant, in that case you're adding an existing entity, and then going into the properties and changing the entity name, and its fields.
...and all around me was the chaos of battle and the reek of running blood.... and for the first time in my life I knew true happiness.
Freemanoid
Posts: 52
Joined: Mon Jun 16, 2008 11:25 am
Location: BELARUS
Contact:

Post by Freemanoid »

Ok, so i need a gtkradiant? I can use any map editor.
If you know how to add new entity in gtkradiant, can you tell me how?
^O,..,o^
ceriux
Posts: 2230
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

Post by ceriux »

in worldcraft all u do is open the fgd and add it. (after you've coded it)
MeTcHsteekle
Posts: 399
Joined: Thu May 15, 2008 10:46 pm
Location: its a secret

Post by MeTcHsteekle »

i do the same with QuArK

just drop in, say a monster_wizard if its a flying enemy, go to is options or it might be called sicifics and so there should be something in somewhere [eh?] where it has a read out if its flags nad name and shit like that, you just change the name from monster_wizard to monster_moncodename and blammo! it will be there [giving that you have the progs.dat and etc there

...im sure this made no sense possibly

..edit: just listen to Cerv hes worldcraftian i guess
bah
ceriux
Posts: 2230
Joined: Sat Sep 06, 2008 3:30 pm
Location: Indiana, USA

Post by ceriux »

MeTcHsteekle wrote:i do the same with QuArK

just drop in, say a monster_wizard if its a flying enemy, go to is options or it might be called sicifics and so there should be something in somewhere [eh?] where it has a read out if its flags nad name and shit like that, you just change the name from monster_wizard to monster_moncodename and blammo! it will be there [giving that you have the progs.dat and etc there

...im sure this made no sense possibly

..edit: just listen to Cerv hes worldcraftian i guess
same thing ur sayin man. it should all work the same if not similar. just code your entity then compile your mod. add it to the fgd load up your editor and it should be in your entity list.
Freemanoid
Posts: 52
Joined: Mon Jun 16, 2008 11:25 am
Location: BELARUS
Contact:

Post by Freemanoid »

Ok. But what is fgd? Progs.dat? Or something else?
^O,..,o^
Spirit
Posts: 1065
Joined: Sat Nov 20, 2004 9:00 pm
Contact:

Post by Spirit »

fgd is the file some editor (I guess Worldcraft) gets the entity information from.

You can use custom entities with ANY decent editor I know of, without having to go through such strains. What editor do you use?
Improve Quaddicted, send me a pull request: https://github.com/SpiritQuaddicted/Quaddicted-reviews
avirox
Posts: 137
Joined: Wed Aug 16, 2006 3:25 pm

Post by avirox »

EntEd (full version) will do the trick fairly well if you don't need to actually see your map while editing stuff.
MauveBib
Posts: 634
Joined: Thu Nov 04, 2004 1:22 am

Post by MauveBib »

All map editors allow you to edit the fields of an entity, in order to set spawnflags, targets etc. Just place any old entity then edit the "classname" field to whatever custom entity you want to use.
Apathy Now!
Freemanoid
Posts: 52
Joined: Mon Jun 16, 2008 11:25 am
Location: BELARUS
Contact:

Post by Freemanoid »

Ok, Thanks :D
I use Quark
^O,..,o^
Freemanoid
Posts: 52
Joined: Mon Jun 16, 2008 11:25 am
Location: BELARUS
Contact:

Post by Freemanoid »

damn, it doesn't working. Maby I doing something wrong?
Ok, here is my code for object computer :

void() SpawnComputer =
{
local entity computer;

computer = spawn();
computer.classname = "object_computer";
computer.think = ObjectComputer;
computer.nextthink = time + 0.1;
};

void() ObjectComputer =
{
precache_model ("progs/computer.mdl");
setmodel(self, "progs/computer.mdl");
setorigin(self, self.origin);
self.solid = SOLID_NOT;
setsize (self, '-16 -16 0', '16 32 40');
};

In field "classname" I past "object_computer" (in Quark).
Then I compile map. And when I run it in quake, there is no such object.
^O,..,o^
c0burn
Posts: 208
Joined: Fri Nov 05, 2004 12:48 pm
Location: Liverpool, England
Contact:

Post by c0burn »

Well you haven't coded anything called "object_computer".
SOLID_NOT is probably a problem too. You probably don't need to reinvent the wheel too much, use the handy StartItem code already in items.qc!

Try putting this at the bottom of items.qc, and removing your code so far...

void() computer_touch =
{
if (!other.flags & FL_CLIENT)
return;

if (time < self.radtime)
return;

self.radtime = time + 1;

sprint(other, "What's up bitches!\n");
};

void() object_computer =
{
self.touch = computer_touch;
precache_model ("progs/computer.mdl");
setmodel (self, "progs/computer.mdl");
setsize (self, '-16 -16 0', '16 32 40');
StartItem ();
};
frag.machine
Posts: 2126
Joined: Sat Nov 25, 2006 1:49 pm

Post by frag.machine »

The custom entity "classname" value in the map MUST match EXACTLY the entity spawn function in your QC. So, either rename the entity spawn function to "object_computer" OR change the "classname" value to "ObjectComputer" and things must work as expected.
I know FrikaC made a cgi-bin version of the quakec interpreter once and wrote part of his website in QuakeC :) (LordHavoc)
Freemanoid
Posts: 52
Joined: Mon Jun 16, 2008 11:25 am
Location: BELARUS
Contact:

Post by Freemanoid »

Yipeee! It's working now!
BIG THANK's to frag.machine and other's :D

But now I have some problems with model - I can walk trough it .
^O,..,o^
Post Reply