G_Spawn: no free entities (gelöst)

-tiger-
Die Fehlermeldung G_Spawn: no free entities wird mir nach gewisser Zeit auf der Map angezeigt. Die Pickup Weapons werden durch ein Skript auf die Map gesetzt. Was muss an diesem Script geändert werden, das dieser Fehler nicht mehr auftritt?

Nightwing ist auch noch ein kleiner Fehler aufgefallen:
Die Munitionsanzeige in der Mitte und rechts stimmen nicht überein.
Wenn ich im Asset Manager im Ammobereich die Munitionsanzeige deaktiviere, wird nicht die Anzeige in der Mitte beim Actionslot entfernt, sondern die unten rechts.
Ich hätte gerne in der Mitte das Icon für den alternativen Feuermodus und die Munitionsanzeige unten rechts.



Hier die Scripts:

mp_gold_rush.gsc:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
main(){

	maps\mp\mp_gold_rush_fx::main();
	maps\mp\mp_gold_rush_fan::main();
	maps\mp\mp_gold_rush_door1::main();
	maps\mp\mp_gold_rush_door2::main();
	maps\mp\mp_gold_rush_door3::main();
	maps\mp\mp_gold_rush_door4::main();
	maps\mp\mp_gold_rush_door5::main();
	maps\mp\mp_gold_rush_door6::main();
	maps\mp\mp_gold_rush_door7::main();
	maps\mp\mp_gold_rush_md::main();
	maps\mp\mp_gold_rush_radio::main();
	maps\mp\_expl_pump::main();
	maps\mp\_explosive_models::main();
	maps\mp\_multiple_doors::main();
	maps\mp\_explosive_barrels::main();
	maps\mp\_breakable_windows::main();
	maps\mp\_breakable_wall::main();
	maps\mp\mp_gold_rush_wd::main();
	maps\mp\_load::main();

	maps\mp\_compass::setupMiniMap("compass_map_mp_gold_rush");

	ambientPlay("ambient_backlot_ext");

	maps\mp\_structFX_oneshot::init();

	game["allies"] = "marines";
	game["axis"] = "opfor";
	game["attackers"] = "axis";
	game["defenders"] = "allies";
	game["allies_soldiertype"] = "desert";
	game["axis_soldiertype"] = "desert";
	
	setdvar("r_specularcolorscale", "1");
	setdvar("r_glowbloomintensity0",".25");
	setdvar("r_glowbloomintensity1",".25");
	setdvar("r_glowskybleedintensity0",".3");
	setdvar("compassmaxrange","1800");
	setExpFog(1500,4000, 0.6, 0.6, 0.6, 0); 
	
	// Custom Weapons
	if(getdvar("gold_rush_weapons" ) == ""){
	
		setdvar("gold_rush_weapons", "0");
	}
	
	if(getdvar("gold_rush_weapons" ) == "1"){
	
		maps\mp\_custom_weapons::main();
	}

	// Gametype Capture the Flag & Capture the Flag back
	if(getDvar("g_gametype") == "ctf"){
	
		addobj("allied_flag", (-2664, -3144, 904), (0, 0, 0));
		addobj("axis_flag", (1953, -473, 906), (0, 0, 0));
	}
	
	if(getDvar("g_gametype") == "ctfb"){
	
		addobj("allied_flag", (-2664, -3144, 904), (0, 0, 0));
		addobj("axis_flag", (1953, -473, 906), (0, 0, 0));
	}

	// Gametype Retrieval
	if(getDvar("g_gametype") == "re"){
		
		//	Es können noch weitere Punkte angegeben werden
		level.objective_vcr = [];
		level.objective_vcr[0] = spawn("script_model", (-1287, -2527, 973));		//	erster Punkt, Videoband
		level.objective_vcr[0].angles = (0, 0, 0); 
		level.objective_vcr[1] = spawn("script_model", (1964.93, -469.745, 824));	//	zweiter Punkt, Videoband
		level.objective_vcr[1].angles = (0, 45.8, 0);
		
		//	auch hier kann man, wie beim Videoband auch, entsprechend noch zusätzliche Spawns angeben
		level.objective_vcrcase = [];
		level.objective_vcrcase[0] = spawn("script_model", (-1262.54, -2513.05, 949.641));	//	erster Punkt, Videorecorder
		level.objective_vcrcase[0].angles = (0, 136, 0);										//	die Winkel kannst du natürlich auch ändern
		level.objective_vcrcase[1] = spawn("script_model", (1971.05, -493.49, 800.6));			//	zweiter Punkt, Videorecorder
		level.objective_vcrcase[1].angles = (0, 180, 0);

		//	Punkt (x,y,z auf deiner Map), zu dem das Videoband und der Videorecorder gebracht werden müssen
		addobj_base("objective_base", (-369, 1172, 759), (0, 0, 0));
	}
}
	
addobj_base(name, origin, angles){

	ent = spawn("trigger_radius", origin, 0, 40, 148);
	ent.targetname = name;
	ent.angles = angles;
}
	
addobj(name, origin, angles){

	ent = spawn("trigger_radius", origin, 0, 48, 148);
	ent.targetname = name;
	ent.angles = angles;
}



_custom_weapons.gsc:

Code einblendenCode angehängt. Klicke hier zum Ein-/Ausblenden

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
main(){

	level.respawnTime = 20;
	thread spawnweapon();
}

spawnweapon(){

	for( ;; ){
	
		//(classname)(origin)(angles)(4=floor,3=wall)
		spawn_weapon("weapon_as-val_f_mp", "weapon_pickup", (-1396, 73.7, 429.3), (0,300,-90), 3);
		spawn_weapon("weapon_g3_full_mp", "weapon_pickup", (-1345.2, -72.5, 430), (0,330,-90), 3);
		spawn_weapon("weapon_vss_mp", "weapon_pickup", (-1444, 112.7, 426.1), (285,90,-90), 3);
		spawn_weapon("weapon_as-val_reflex_f_mp", "weapon_pickup", (-1492.8, -64.9, 429.5), (0,60,90), 3);
		spawn_weapon("weapon_m4_sd_m69_f_mp", "weapon_pickup", (1969.5, -502.1, 801.7), (0,315,-90), 3);
		spawn_weapon("weapon_g36c_reflex_full_mp", "weapon_pickup", (1408.05, -3867.25, 786.2), (0,90,90), 3);
		spawn_weapon("weapon_m14_scoped_silencer_mp", "weapon_pickup", (-1741, -4094.8, 793.8), (0,180,90), 3);
		spawn_weapon("weapon_as-val_reflex_f_mp", "weapon_pickup", (-1433.5, -2389.5, 922), (0,90,-90), 3);
		spawn_weapon("weapon_vss_mp", "weapon_pickup", (501, -2718.8, 942.3), (0,0,90), 3);
		spawn_weapon("weapon_g3_full_mp", "weapon_pickup", (-2737, -3166, 789.5), (0,90,-90), 3);
		
		wait(level.respawnTime);
	}
}

spawn_weapon(classname, targetname, origin, angles, flags){

	weapon            = spawn(classname, origin, flags);
	weapon.targetname = targetname;
	weapon.angles     = angles;
	
	weapname = weapon maps\mp\gametypes\_weapons::getItemWeaponName();
	weapon setPickupStartAmmo(weapname);
//	weapon setPickupMaxAmmo( weapname );
	
	weapon thread WatchforSwappedWeapon();
	
	return weapon;
}

WatchforSwappedWeapon(){

	while(true){
	
		self waittill("trigger", player, dropped);
				
		if(!isdefined(self))
			break;
				
		assert(!isdefined(dropped));
	}
			
	if(isdefined(dropped)){
	
		dropDeleteTime = 5;
		
		if(dropDeleteTime > level.respawnTime)
			dropDeleteTime = level.respawnTime;
			
		dropped thread delayedDeletion(dropDeleteTime);
	}
}

delayedDeletion(delay){

	self thread delayedDeletionOnSwappedWeapons(delay);
	
	wait delay;
	
	if(isDefined(self)){
	
		self notify("death");
		self delete();
	}
}

delayedDeletionOnSwappedWeapons(delay){

	self endon("death");
	
	while(true){
	
		self waittill("trigger", player, dropped);
		
		if(isdefined(dropped))
			break;
	}
	
	dropped thread delayedDeletion(delay);
}

setPickupStartAmmo(weapname){

	curweapname = weapname;
	altindex = 0;
	while(altindex == 0 || (curweapname != weapname && curweapname != "none")){
	
		allammo = weaponStartAmmo(curweapname);
		clipammo = weaponClipSize(curweapname);
		
		reserveammo = 0;
		
		if( clipammo >= allammo ){
		
			clipammo = allammo;
		}
		else{
		
			reserveammo = allammo - clipammo;
		}
		
		self itemWeaponSetAmmo(clipammo, reserveammo, altindex);
		curweapname = weaponAltWeaponName(curweapname);
		altindex++;
	}
}

-tiger-
hat sich erledigt habe ein anderes skript verwendet, was keine Fehler verursacht.