Server crasht ab und an (Log: dead entity is not an object)

peppe666
HuHu Icke bins wieder smile

folgendes ab und an stürzt unser Cod UO Server ab (1.51)

auf dem Server läuft nur UO1.51,und es ist ein Pure server,also keine Mods oder Costum Maps.
hatte schon mal so nen ähnliches Problem,aber damals lag es an was anderes.
Poste hier am besten mal das Ende der Console_mp.log rein,vllt kann einer was mit anfangen,warum der Server abschmiert^^


*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2396)
wait 0.05;
*
************************************

******* script runtime error *******
dead entity is not an object: (file 'maps\mp\gametypes\sd.gsc', line 2401)
if(isDefined(other.progressbar))
*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2396)
wait 0.05;
*
************************************

******* script runtime error *******
dead entity is not an entity: (file 'maps\mp\gametypes\sd.gsc', line 243cool
other unlink();
*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2396)
wait 0.05;
*
************************************

******* script runtime error *******
dead entity is not an entity: (file 'maps\mp\gametypes\sd.gsc', line 2439)
other enableWeapon();
*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2396)
wait 0.05;
*
************************************

******* script runtime error *******
dead entity is not an entity: (file 'maps\mp\gametypes\sd.gsc', line 2362)
while(other islookingat(self) && distance(other.origin, self.origin) < 64 && isAlive(other) && other useButtonPressed())
*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2442)
wait .05;
*
************************************

******* script runtime error *******
cannot cast undefined to bool: (file 'maps\mp\gametypes\sd.gsc', line 2362)
while(other islookingat(self) && distance(other.origin, self.origin) < 64 && isAlive(other) && other useButtonPressed())
*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2442)
wait .05;
*
************************************

******* script runtime error *******
dead entity is not an object: (file 'maps\mp\gametypes\sd.gsc', line 2362)
while(other islookingat(self) && distance(other.origin, self.origin) < 64 && isAlive(other) && other useButtonPressed())
*
called from:
(file 'maps\mp\gametypes\sd.gsc', line 2442)
wait .05;
*
************************************

hoffe es kann mir einer helfen woran es liegt xD

Gruss Peppe666

--- edited by yoda: Thema angepasst ---
Kelli
Hast du irgendwo (cfg, oder Startparameter)
set developper 1
drinstehen?

Ansonsten ist dieser Teil des Scripts aus der Funktion bomb_think() (pakuo01.pk3\maps\mp\gametypes\sd.gsc) und wird aufgerufen wenn die Bombe entschärft wird. Versuch mal ob du es irgendwie reproduzierbar machen kannst verwirrt
peppe666
ne der war auf Developer 0 habe den jetzt auf Developer 1 gestellt ist das denn dann so richtig auf 1 ??

habe nämlich keine ahnung wozu des gut ist^^

Gruss peppe666
Kelli
Nein sorry, dann hab ich mich verdrückt ausgekehrt. Das war als Frage gedacht, weil der Fehler laut Google auftreten kann wenn developper 1 gesetzt ist.
http://www.google.de/search?hl=de&client...tnG=Suche&meta=
Es sollte developper 0 sein, so wie du es hattest, daran lag es also nicht.
peppe666

Zitat:

Original von Kellerkind

Ansonsten ist dieser Teil des Scripts aus der Funktion bomb_think() (pakuo01.pk3\maps\mp\gametypes\sd.gsc) und wird aufgerufen wenn die Bombe entschärft wird. Versuch mal ob du es irgendwie reproduzierbar machen kannst verwirrt


Was meinst du damit genau? mit dem von mir erwähnten Zitat? reproduzierbar? verstehe nur Bahnhof LoooL

Grus peppe666
Kelli
Naja, ich stocher auch nur im Nebel.

Aus der Fehlermeldung kann man auf das Script schließen das den Server crasht. In dem Stück code wird so weit ich das beurteilen kann geprüft ob ein Gegner in der Nähe ist der die Bombe entschärfen will, und wenn zeigt es das Entschärfsymbol an, und wenn er benutzen drückt den Balken zum entschärfen:

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:
bomb_think()
{
	self endon("bomb_exploded");
	level.barincrement = (level.barsize / (20.0 * level.defusetime));

	for(;;)
	{
		self waittill("trigger", other);
		
		// check for having been triggered by a valid player
		if(isPlayer(other) && (other.pers["team"] == game["defenders"]) && other isOnGround())
		{
			if(!isDefined(other.defuseicon))
			{
				other.defuseicon = newClientHudElem(other);				
				other.defuseicon.alignX = "center";
				other.defuseicon.alignY = "middle";
				other.defuseicon.x = 320;
				other.defuseicon.y = 345;
				other.defuseicon setShader("ui_mp/assets/hud@defusebomb.tga", 64, 64);			
			}
			
			while(other islookingat(self) && distance(other.origin, self.origin) < 64 && isAlive(other) && other useButtonPressed())
			{
				other notify("kill_check_bomb");

				if(!isDefined(other.progressbackground))
				{
					other.progressbackground = newClientHudElem(other);				
					other.progressbackground.alignX = "center";
					other.progressbackground.alignY = "middle";
					other.progressbackground.x = 320;
					other.progressbackground.y = 385;
					other.progressbackground.alpha = 0.5;
				}
				other.progressbackground setShader("black", (level.barsize + 4), 12);		

				if(!isDefined(other.progressbar))
				{
					other.progressbar = newClientHudElem(other);				
					other.progressbar.alignX = "left";
					other.progressbar.alignY = "middle";
					other.progressbar.x = (320 - (level.barsize / 2.0));
					other.progressbar.y = 385;
				}
				other.progressbar setShader("white", 0, 8);			
				other.progressbar scaleOverTime(level.defusetime, level.barsize, 8);

				other playsound("MP_bomb_defuse");
				other linkTo(self);
				other disableWeapon();

				self.progresstime = 0;
				while(isAlive(other) && other useButtonPressed() && (self.progresstime < level.defusetime))
				{
					self.progresstime += 0.05;
					wait 0.05;
				}

				if(isDefined(other.progressbackground))
					other.progressbackground destroy();
				if(isDefined(other.progressbar))
					other.progressbar destroy();

				if(self.progresstime >= level.defusetime)
				{
					if(isDefined(other.defuseicon))
						other.defuseicon destroy();

					if ( level.battlerank )
					{
						other.pers["score"] += 5;
						other.score = other.pers["score"];
					}
					
					objective_delete(0);

					self notify("bomb_defused");
					level.bombmodel setmodel("xmodel/mp_bomb1");
					level.bombmodel stopLoopSound();
					self delete();

					announcement(&"SD_EXPLOSIVESDEFUSED");
					
					lpselfnum = other getEntityNumber();
					lpselfguid = other getGuid();
					logPrint("A;" + lpselfguid + ";" + lpselfnum + ";" + game["defenders"] + ";" + other.name + ";" + "bomb_defuse" + "\n");
					
					players = getentarray("player", "classname");
					for(i = 0; i < players.size; i++)
					{
						players[i] playLocalSound("MP_announcer_bomb_defused");
					}
					level thread endRound(game["defenders"]);
					return;	//TEMP, script should stop after the wait .05
				}
				else
				{
					other unlink();
					other enableWeapon();
				}
				
				wait .05;
			}

			self.defusing = undefined;
			other thread check_bomb(self);
		}
	}
}


Wenn man den Fehler jetzt nachstellen könnte, also wann genau er dabei unter welchen umständen crasht findet man vielleicht die Ursache. Irgendwie sieht die Fehlermeldung "dead entity" so aus als ob er das "entschärfen" auf einen Spectrator anwenden will? verwirrt Keine Ahnung.
Aber ehrlich gesagt, viel Hoffnung hab ich nicht. Nur was besseres fällt mir dazu nicht ein. Vielleicht hat einer der Mod und Mapper eine Idee auf was sich dead entity beziehen könnte.
wgs./w@Lly
könnte das evtl. mit dem killcam-bug beim Entschärfen zu tun haben verwirrt

Dabei gaukelt man dem Spiel irgendwie durch Eingabe von /killcam in der Konsole vor, dass man tot sei, kann trotzdem noch weiter die Bombe entschärfen, ist für den Feind jedoch unsichtbar und untötbar... hat vor langer Zeit mal für viel Trubel und Stress bei uns auf dem uo-Public-Server gesorgt weil ein paar Spacken das natürlich fröhlich ausgenutzt haben.

Wir hatten ja auch mal so was Mysteriöses, dass ab dem Zeitpunkt wo der Bug bekannt wurde unser ansonsten immer rund und stabil laufender Server plötzlich immer mal wieder gecrasht ist. Irgendwann kamen Andeutungen von Stammspielern dass der Server immer dann down ging, wenn bestimmte Personen drauf waren. Könnte mir vorstellen dass das irgendeine Weiterentwicklung ist, aber wie die das anstellen... verwirrt

Logs o.ä. gibt es wohl leider nicht mehr, da unser Admin der Sache damals nicht wirklich nachgegangen ist. Und mittlerweile ist der Server ohnehin kaum noch besucht und die Geschichte im Sande verlaufen, leider.
peppe666
omg folgendes,

Alsich die Antwort von wgs./w@Lly gelesen habe heute morgen,habe Ich auf meinem FTP mal alle Log Dateien durchgeforstet,und mir ist eines aufgefallen. dass in meinem uo ordner unter /cod/uo/logs/ immer ein bestimmter Spielername drinne steht als einzigster und zwar folgender ^1We^7Hax^14^7YoU^1|^7J@c



es ist doch komisch das immer nur dieser Name drinnesteht oder täusche ich mich da jetzt? wenn nicht,dann hätte Wir den Übeltäter gefunden,der den Server zum Abstürzen bringt smile habe Ihn Vorsichtshalber schon mal von unserem Server gebannt! was sagt Ihr denn dazu? könnte es sein das dieser Spieler die Servercrashes verursacht? denn er steht als einzigster immer in der Log Datei!

Gruss peppe666
Kelli

Zitat:

Original von peppe666
9:16 A;592254;0;axis;^1We^7Hax^14^7YoU^1|^7J@c;bomb_plant

Das passt erstmal ganz gut. Er legt die Bombe.

Zitat:

9:18 K;592254;0;axis;^1We^7Hax^14^7YoU^1|^7J@c;592254;0;axis;^1We^7Hax^14^7YoU^1|^7J@c;none;100000;MOD_SUICIDE;none

Und bringt sich selber 2 Sekunden darauf um. (Vermutlich mit \kill in der Console - denn es ist keine Waffe im Spiel) Klingt plausibel. Ist glaub ich eine gute Idee ihn erstmal fernzuhalten und zu schauen was passiert. Könnte man auch mal selber probieren, wobei, jetzt sind wir glaub ich schon einen Schritt zu weit gegangen in der Ursachenforschung Unschuldig!
wgs./w@Lly
...und allein der Name ist offensichtlich schon mit ein Indiz dass der bei euch drauf ist um Mist zu bauen.
Ist wohl besser so den Jungen auf die Schwarze Liste zu packen und hoffen dass der Spuk dann ein Ende hat... Wobei der dann vermutlich seine Brüder holt Grosse Augen

@Kellerkind: experimentelle Ursachenforschung sollte auf dem eigenen Server doch erlaubt sein Augenzwinkern oder meinst du der nimmt dauerhaft Schaden davon?

Ärgerlich bei solchen Geschichten ist leider, dass sich so Spiele-Bugs wie ein Lauffeuer verbreiten und dann dutzende gelangweilte Mistkröten meinen das auf fremden Servern mal testen zu müssen... deshalb lieber ---> :-X


Edit die 100rtste: müssen auf Stalingrad eigentlich die Deutschen die Bombe legen...? Hab die Map nicht wirklich oft gespielt (da *würg* grosses Grinsen ) und uo ist schon ein Weilchen her...
Ist das die mit dem Hochhaus in der Mitte?? Oder war das die mit den zerbombten Häusern und dem Bombenplatz im Keller??...
peppe666
das Zweite trifft es was deine frage an Stalingrad angeht.und der anderen sache wegen editiere ich einfach mal meinen post,sodass nix ins Lauffeuer gerät^^ das wollen wir nämlich nicht.aber siehe da,seitdem der Spieler weg ist funktioniert es bis jetzt noch undd as schon seit 6 Stunden ca^^

also bedanke ich mich erst mal für die nette hilfe und bis zum nächsten Problem xD grosses Grinsen
Gruss Peppe666