[Mini-Fix] Teleport Crash

10/05/2013 22:36 Iban24#1
Datei: World.cpp

Sucht nach:
Code:
 		SAFE_DELETE( pObj );
ersetzen mit:

Code:
#ifndef __CLIENT
		SAFE_DELETE( pObj );
#endif
Nun crasht euer Client nicht mehr wenn ihr euch mit einem Pet Teleportiert.
10/05/2013 23:43 andreitajai#2
When this bug happen?
10/05/2013 23:48 Chriѕ#3
When you teleport with a pet.
10/06/2013 01:27 /-/µR€#4
Quote:
Originally Posted by Iban24 View Post
Datei: World.cpp

Sucht nach:
Code:
 		SAFE_DELETE( pObj );
ersetzen mit:

Code:
#ifndef __CLIENT
		SAFE_DELETE( pObj );
#endif
Nun crasht euer Client nicht mehr wenn ihr euch mit einem Pet Teleportiert.
In World.cpp gibt es 2 mal SAFE_DELETE( pObj );
10/06/2013 04:55 Wanetrain#5
Quote:
Originally Posted by /-/µR€ View Post
In World.cpp gibt es 2 mal SAFE_DELETE( pObj );
Sollte man 1. Wissen was SAFE_DELETE macht und 2. was dannach gemacht wird, wa? :D

1. SAFE_DELETE löscht einen Pointer und setzt diesen auf NULL.
2. Wenn nach SAFE_DELETE( pObj ) im Client noch der Pointer pObj aufgerufen wird ist es klar dass es Crasht, da er nicht vorhanden ist, von daher können keine Informationen aus ihm "gezogen" werden, also ist der Fixx einerseits dumm und anderseits auch nicht.

Dumm ist er weil niemand weiß ob der Pointer noch für wichtige sachen benötigt wird oder nicht.

Schlau wiederrum: es behebt ZWANGSWEIßE UND NICHT ZUM VORTEIL den Crash.

Wenn man die ganze Teleport sache schlauer gemacht hätte, würde man den Fixx nicht brauchen, ich sag nur: Ticket Function, damit kannst du egal ob du Pet hast oder net raus ein rein aus Cash welten kommen, ohne crash.
10/06/2013 21:53 FlyCraft.TobiLap#6
Quote:
Originally Posted by Wanetrain View Post
Dumm ist er weil niemand weiß ob der Pointer noch für wichtige sachen benötigt wird oder nicht.

Schlau wiederrum: es behebt ZWANGSWEIßE UND NICHT ZUM VORTEIL den Crash.
Falls du dir den crash mal anschaus merkste dass safedelete aufgrund einer nullpointer exeption stirbt. ist schon der richtige fix so hab den so ähnlich schon seit ca einem jahr kurz nach flycraft down.
10/06/2013 21:56 Wanetrain#7
Quote:
Originally Posted by FlyCraft.TobiLap View Post
Falls du dir den crash mal anschaus merkste dass safedelete aufgrund einer nullpointer exeption stirbt. ist schon der richtige fix so hab den so ähnlich schon seit ca einem jahr kurz nach flycraft down.
Der Richtige Fixx ansich ja, allerdings würde man es besser hinbekommen. ;>
10/06/2013 22:30 FlyCraft.TobiLap#8
Quote:
Originally Posted by Wanetrain View Post
Der Richtige Fixx ansich ja, allerdings würde man es besser hinbekommen. ;>
oops, hab den fix nur überflogen, xD

so währe der besser:

PHP Code:
if(pObj )
{
     
SAFE_DELETEpObj );

so ists besser :) (bzw so hab ichs)
10/06/2013 22:38 Sedrika#9
Quote:
Originally Posted by FlyCraft.TobiLap View Post
oops, hab den fix nur überflogen, xD

so währe der besser:

PHP Code:
if(pObj )
{
     
SAFE_DELETEpObj );

so ists besser :) (bzw so hab ichs)
SAFE_DELETE hat bereits eine abfrage ob dieser valide ist oder nicht, so machst du das ganze nur doppelt.
10/06/2013 22:41 Velmore#10
Quote:
Originally Posted by Sago​ View Post
SAFE_DELETE hat bereits eine abfrage ob dieser valide ist oder nicht, so machst du das ganze nur doppelt.
Und sagen wir so das hilft auch nicht gegen den Crash.

Ich glaube für die meisten Server reicht es einfach das SAFE_DELETE auszunehmen.
10/06/2013 22:41 FlyCraft.TobiLap#11
Quote:
Originally Posted by Sago​ View Post
SAFE_DELETE hat bereits eine abfrage ob dieser valide ist oder nicht, so machst du das ganze nur doppelt.
dachte ich auch, nur scheisse, dass es trotzdem crashed wenn das pObj nen nullpointer ist. erstmal testen bevor man dumme kommentare macht.
10/06/2013 22:42 Velmore#12
Quote:
Originally Posted by FlyCraft.TobiLap View Post
dachte ich auch, nur scheisse, dass es trotzdem crashed wenn das pObj nen nullpointer ist. erstmal testen bevor man dumme kommentare macht.
Ich hatte das mit der Abfrage auch mal gemacht aber es ist noch gecrasht.
10/06/2013 22:49 Sedrika#13
Quote:
Originally Posted by FlyCraft.TobiLap View Post
dachte ich auch, nur scheisse, dass es trotzdem crashed wenn das pObj nen nullpointer ist. erstmal testen bevor man dumme kommentare macht.
Jemanden dumm anmachen ist dumm, dein Verhalten ist schlimmer als jemand der debil ist.

Code:
#define SAFE_DELETE(p)       { if(p) { safe_delete(p);     (p)=NULL; } }
Merkste was?
01/21/2014 16:14 Serenity-.#14
Ich weiß nicht ob ich was falsch gemacht habe aber sobald ich das mache was iban geschrieben habe verschwinden npc´s immer wieder xDDD
Wenn man ein Ticket benutzt usw.

Hat jemand einen anständigen fix dafür xD