Code:
public copyspawns() {
new entnum
while((entnum = find_ent_by_class(entnum, "info_player_start")))
entity_copy(entnum)
}
stock entity_copy(entid) {
new newent = create_entity("info_target")
if(!newent) return 0
new Float:vecs[3], strings[128], i
for(i = 0; i <= 36; i++) entity_set_int(newent, i, entity_get_int(entid, i))
for(i = 0; i <= 36; i++) entity_set_float(newent, i, entity_get_float(entid, i))
for(i = 0; i <= 22; i++) {
entity_get_vector(entid, i, vecs)
entity_set_vector(newent, i, vecs)
}
for(i = 0; i <= 10; i++) entity_set_edict(newent, i, entity_get_edict(entid, i))
for(i = 0; i <= 12; i++) {
entity_get_string(entid, i, strings,127)
entity_set_string(newent, i, strings)
}
for(i = 0; i <= 5; i++) entity_set_byte(newent, i, entity_get_byte(entid, i))
new Float:maxs[3]
entity_get_vector(entid, EV_VEC_mins, vecs)
entity_get_vector(entid, EV_VEC_maxs, maxs)
entity_set_size(newent, vecs, maxs)
entity_get_string(entid, EV_SZ_model, strings)
entity_set_model(newent, strings)
entity_get_origin(entid, vecs)
entity_set_origin(newent, vecs)
DispatchSpawn(newent)
return newent
}
stock entity_get_origin(entid, Float:orig[3]) {
if(entity_get_int(entid, EV_INT_solid) == SOLID_BSP) get_brush_entity_origin(entid, orig)
else entity_get_vector(entid, EV_VEC_origin, orig)
return orig[0] && orig[1] && orig[2]
}
its just that the entity is often placed somewhere it shouldnt be in (like outside the map)