AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   Spawning NPC Ents (https://forums.alliedmods.net/showthread.php?t=55124)

awpticaL 05-14-2007 07:00

Spawning NPC Ents
 
I've edited, changed and added to many plugins in the past, but when it comes to creating my own, I'm completely friggin scrub. I figured it was time to start learning, 'cause there isn't any other way of getting what I need out of quick-editing other plugins.

So anyway, I'm trying to spawn Solid NPC's that do nothing besides their idle animation. Here's what I have so far:

Code:
/* Plugin generated by AMXX-Studio */ #include <amxmodx> #include <amxmisc> #include <engine> #define PLUGIN "NPC's" #define VERSION "1.0" #define AUTHOR "nub coder lawl" public plugin_init() {     register_plugin(PLUGIN, VERSION, AUTHOR) } public fakenpc1(id) {     new ent = create_entity("ts_model")     entity_set_string(ent, EV_SZ_classname, "fakenpc1")     entity_set_model(ent, "models/mecklenburg/refr2.mdl")     new Float:Vec[3] = {-2376.0, 1219.0, -411.0}     entity_set_origin(ent, Vec)     entity_set_int(ent, EV_INT_solid, 1)     entity_set_int(ent, EV_INT_movetype, 6) }

Now of course, something is seriously wrong with this, cause it didn't work.
I was going to use Fakemeta, but since it is my first plugin, I went with Engine for now.

I'm trying to get the basics down before I move anywhere else.



Also, if anyone could post any other tutorials/helpful info that isn't in the stickies and whatnot, that'd be great.

Thanks in advance

Drak 05-14-2007 15:03

Re: Spawning NPC Ents
 
http://forums.alliedmods.net/showthread.php?t=11756

awpticaL 05-14-2007 15:07

Re: Spawning NPC Ents
 
I saw that, but I want it to spawn NPC's at the given coords, and do this every map load, so I don't have to redo it when the map restarts.

I can also leave out the precache, since it is already in the map.

pRED* 05-14-2007 16:11

Re: Spawning NPC Ents
 
I havn't bothered checking your ent creation code but the most obvious problem is that fakenpc1 is never called.

The plugin_init function is run automatically when the plugin is loaded.

Remove id from fakenpc1 becuase it isn't called for a particular player.

Make it "public fakenpc1() {..."

Then in plugin_init add the line "fakenpc1()" and see if it works..

awpticaL 05-14-2007 18:35

Re: Spawning NPC Ents
 
Quote:

Originally Posted by pRED* | NZ (Post 476636)
I havn't bothered checking your ent creation code but the most obvious problem is that fakenpc1 is never called.

The plugin_init function is run automatically when the plugin is loaded.

Remove id from fakenpc1 becuase it isn't called for a particular player.

Make it "public fakenpc1() {..."

Then in plugin_init add the line "fakenpc1()" and see if it works..

I thought that was the problem, it's basically a line of code that is never executed. I tried looking to execute it a few seconds after map load, but couldn't figure it out. Now that I finally got some sleep I'll have another go at it :P



Alright, I managed to get it to spawn and work. Now I'm having a problem when I try to do multiple NPC's...


Code:
public plugin_init() {     register_plugin(PLUGIN, VERSION, AUTHOR)     new Float:maxs[3] = {16.0, 16.0, 36.0}     new Float:mins[3] = {-16.0, -16.0, -32.0}     new Float:Vec[3] = {-2376.0, 1219.0, -411.0}         new ent = create_entity("ts_model")     entity_set_string(ent, EV_SZ_classname, "fakenpc")     entity_set_model(ent, "models/mecklenburg/chef.mdl")     entity_set_origin(ent, Vec)     entity_set_size(ent,mins,maxs)     entity_set_int(ent,EV_INT_solid, 2)     entity_set_float(ent,EV_FL_animtime,2.0)     entity_set_float(ent,EV_FL_framerate,1.0)     entity_set_int(ent,EV_INT_sequence,1);     entity_set_byte(ent,EV_BYTE_controller1,125);     entity_set_byte(ent,EV_BYTE_controller2,125);     entity_set_byte(ent,EV_BYTE_controller3,125);     entity_set_byte(ent,EV_BYTE_controller4,125);         new ent1 = create_entity("ts_model")     entity_set_string(ent1, EV_SZ_classname, "fakenpc1")     entity_set_model(ent1, "models/mecklenburg/chef.mdl")     Vec[3] = {-70.0, -448.0, -379.0}     entity_set_origin(ent1, Vec)     entity_set_size(ent1,mins,maxs)     entity_set_int(ent1,EV_INT_solid, 2)     entity_set_float(ent, EV_FL_animtime,2.0)     entity_set_float(ent,EV_FL_framerate,1.0)     entity_set_int(ent1,EV_INT_sequence,1)     entity_set_byte(ent,EV_BYTE_controller1,125);     entity_set_byte(ent,EV_BYTE_controller2,125);     entity_set_byte(ent,EV_BYTE_controller3,125);     entity_set_byte(ent,EV_BYTE_controller4,125);

The part that is screwing up is the
Code:
new Float:Vec[3] = {-2376.0, 1219.0, -411.0}

I defined and used it in the first one, but when it comes to the second one, I don't know how to "re-use" Vec and reset it's coordinates.

I don't think I need 500 new Float:Vec's for all my NPC's.. There has to be another way.


I'm trying to catch my mistakes early, so if anyone can help me, it'd be great.

Error:
Code:

Error: Array index out of bounds (variable "Vec") on line 36


All times are GMT -4. The time now is 10:37.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.