|
You last visited: Today at 07:34
Advertisement
Dungeon Bug
Discussion on Dungeon Bug within the Flyff Private Server forum part of the Flyff category.
08/01/2015, 17:47
|
#1
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Dungeon Bug
Kurze Frage in einigen Threads wurden ja schon gefragt was die Worldcrashes bei Kalgas / Behe auslöst. Also die wenn man einfach geht.
Hat einer eine Ahnung woran das liegt ?
.lua Eintrag ist drin und die map ist auch komplett
einträge sind alles drin
Bei mir Crasht der in
Quote:
|
void CLinkMap::Init( int nLandWidth, int nLandHeight, int nView, int nMPU )
|
PHP Code:
void CLinkMap::Init( int nLandWidth, int nLandHeight, int nView, int nMPU ) { m_nLandWidth = nLandWidth; m_nLandHeight = nLandHeight;
//gmpbigsun: now static grid is min 1 to max 4 m_iMPU = nMPU; float fMulGrid = 0.25f * (float)m_iMPU; assert( m_iMPU > 0 && m_iMPU < 5 ); int nLevel, nType; int nLandscape = MAP_SIZE * m_iMPU;
int nCX = nLandscape * nLandWidth; // ¸ÊÀÇ ÇѺ¯ÀÇ ±æÀÌ (¹ÌÅÍ ´ÜÀ§) = ·£µå½ºÄÉÀÌÇÁ ±æÀÌ * ¸ÊÀÇ ÇѺ¯ ·£µå½ºÄÉÀÌÇÁ °¹¼ö float* fDivisor;
for( nType = 0; nType < MAX_LINKTYPE; nType++ ) { LINKMAP_INFO* pInfo = &m_infos[nType]; if( nType == CObj::linkStatic ) fDivisor = fStaticGrid; else fDivisor = g_table;
for( nLevel = 0; nLevel < MAX_LINKLEVEL; nLevel++ ) { int reviseGrid = (int)(fDivisor[ nLevel ] * fMulGrid); assert( reviseGrid > 0 ); //pInfo->nWidth[nLevel] = nLandscape / (int)fDivisor[nLevel]; // ·£µå½ºÄÉÀÌÇÁÀÇ Å©±â¸¦ ±×¸®µåÀÇ Å©±â·Î ³ª´©¸é pInfo->nWidth[nLevel] = nLandscape / reviseGrid; // ·£µå½ºÄÉÀÌÇÁÀÇ Å©±â¸¦ ±×¸®µåÀÇ Å©±â·Î ³ª´©¸é
int nCount = ( nCX / reviseGrid ) * ( nCX / reviseGrid ); pInfo->apObj[nLevel] = new CObj*[ nCount ]; memset( pInfo->apObj[nLevel], 0x00, sizeof(CObj*) * nCount ); } } for( int i=0; i < MAX_LINKLEVEL; i++ ) { // m_nVisibilityRange[i] = { 2, 1, 0, 0, 0, 0 }; m_nVisibilityRange[i] = (int)( 2 * nView / pow( (float)2, i ) ); int nSizeOfMask = ( 2 * m_nVisibilityRange[i] + 1 ) * ( 2 * m_nVisibilityRange[i] + 1 ); m_apfMask[i] = new BOOL[nSizeOfMask]; memset( m_apfMask[i], 0, sizeof(BOOL) * nSizeOfMask ); } }
|
|
|
08/03/2015, 11:27
|
#2
|
elite*gold: 51
Join Date: Sep 2012
Posts: 1,141
Received Thanks: 575
|
Darf ich dein Coreserver.ini sehen?
Bin mir nicht ganz sicher, aber bei mir lag es an der Map Größe oder am Rande des Maps waren Objekte.
|
|
|
08/03/2015, 13:44
|
#3
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Schau mit dem Map editor nach.
Bei den mittleren Grids, dürfen am Rand je 3x3 Felder keine Objekte stehen.
Kannst ja gerne mal versuchen dich an ein solchen Bereich zu teleportieren, der server bringt dich dann an die nächst gelegene Position zurück.
|
|
|
08/03/2015, 15:05
|
#4
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Quote:
Originally Posted by Sedrika
Schau mit dem Map editor nach.
Bei den mittleren Grids, dürfen am Rand je 3x3 Felder keine Objekte stehen.
Kannst ja gerne mal versuchen dich an ein solchen Bereich zu teleportieren, der server bringt dich dann an die nächst gelegene Position zurück.
|
Naja der Server stürzt aber direkt ab wenn ich auf die Map gehe. Irgendwie kann der den layer nicht erstellen
|
|
|
08/03/2015, 15:10
|
#5
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Kannst ja testweise Error Meldungen einbauen und somit eingrenzen nach welchem Befehl er Bye bye sagt.
|
|
|
08/03/2015, 15:28
|
#6
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Naja ich versuch gerade was anderes
Weil es nicht bei alles Dungeons ist
Edit: Hab gerade mal etwas getestet und es Crasht wenn mehr als 48 Maps drin sind in der Coreserver.ini
Einer eine Idee wo das im Source gemacht ist?
|
|
|
08/04/2015, 05:18
|
#7
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Was sagt der Speicherverbrauch vom Worldserver?An welcher Stelle crasht er genau? Nur der Methodenname ist etwas unausreichend.
Zumal Runtimefehler nicht "im Source gemacht" sind, sondern Fehler sind, wo keine Exception richtig abgefangen wird oder ein Problem in Verbindung mit z.B. dem .NET Framework, C++ Redis, etc. auftaucht. Auch Probleme mit dem Speicher können eine Ursache sein. Deshalb ist auch vernünftiges Error-Handling das A und O in der Programmierung - Runtime Exceptions sind ziemlich nichts aussagend, da es nun mal fast alles sein kann.
Ich weiß nicht, wie man im Flyff Sourcecode mit (std:: )-Exceptions umgehen kann, aber try & catch Blöcke und damit abgefangene Exceptions können dir mehr Aufschluss über die Problemursache geben ( catch(std::runtime_error& e) {} ).
Wenn du um die genaue Crashstelle einen Try-Block machst und darunter die Exception abfängst (catch), dann solltest du mit dem e Objekt auch eine Messagebox mit der Fehlerursache ausgeben können oder sie loggen lassen ( mit std::runtime_error wäre das e.what() ).
|
|
|
08/04/2015, 12:24
|
#8
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Quote:
Originally Posted by xTwiLightx
Was sagt der Speicherverbrauch vom Worldserver?An welcher Stelle crasht er genau? Nur der Methodenname ist etwas unausreichend.
Zumal Runtimefehler nicht "im Source gemacht" sind, sondern Fehler sind, wo keine Exception richtig abgefangen wird oder ein Problem in Verbindung mit z.B. dem .NET Framework, C++ Redis, etc. auftaucht. Auch Probleme mit dem Speicher können eine Ursache sein. Deshalb ist auch vernünftiges Error-Handling das A und O in der Programmierung - Runtime Exceptions sind ziemlich nichts aussagend, da es nun mal fast alles sein kann.
Ich weiß nicht, wie man im Flyff Sourcecode mit (std:: )-Exceptions umgehen kann, aber try & catch Blöcke und damit abgefangene Exceptions können dir mehr Aufschluss über die Problemursache geben ( catch(std::runtime_error& e) {} ).
Wenn du um die genaue Crashstelle einen Try-Block machst und darunter die Exception abfängst (catch), dann solltest du mit dem e Objekt auch eine Messagebox mit der Fehlerursache ausgeben können oder sie loggen lassen ( mit std::runtime_error wäre das e.what() ).
|
Danke für die Hilfe. Es kommt jedoch kein Runtime Error. Ich habs soweit eigentlich gefunden nur da ich ansich von C++ absolut keine Ahnung habe, weiß ich nicht was das Problem ist.
PHP Code:
pInfo->apObj[nLevel] = new CObj*[ nCount ];
Da soll er ja ein neue CObj Klasse erstellen und das geht scheinbar nicht bei über 48 Maps. Aber in dem Integer nCount gehen bis 21000 oder sowas.
|
|
|
08/04/2015, 18:43
|
#9
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Keine Ahnung, wie ich auf Runtime kam.
Mal in der Initialisierung von CObj* geschaut, wo es dort crasht?
|
|
|
05/12/2016, 16:09
|
#10
|
elite*gold: 0
Join Date: Aug 2011
Posts: 400
Received Thanks: 26
|
sry das ich das hier ncohmal auskrame aber hast du nun rausgefunden woran es liegt das der worldserver crasht bei betretten des dungeon ? würde mich auf eine antwort freuen habe auch das problem
|
|
|
05/12/2016, 16:15
|
#11
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
nö habs nie rausgefunden hatte nur den workaround maps rauszunehmen damit nicht so viele da sind.
|
|
|
05/12/2016, 18:52
|
#12
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Das Problem ist eher die 2GB (oder eher 1.85GB) grenze bei 32-Bit programmen. Du könntest zwar Largeadresses aktivieren um dieses limit auf 4GB anzuheben ABER ab 2GB verbrauch spinnt der WorldServer massiv, es kommt zu ghost DC's und sonstigem.
Bei uns mussten wir mega auf Performance setzen und haben so einige Systeme neu schreiben dürfen. Bei guter Leistung kommst du auf 1.16GB WS verbrauch bei 58 aktiven maps (gerade nochmal nachgesehen).
RAM unten halten durch sauberes coding und nichts stresst mehr.
|
|
|
05/12/2016, 20:47
|
#13
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Quote:
Originally Posted by Sedrika
Das Problem ist eher die 2GB (oder eher 1.85GB) grenze bei 32-Bit programmen. Du könntest zwar Largeadresses aktivieren um dieses limit auf 4GB anzuheben ABER ab 2GB verbrauch spinnt der WorldServer massiv, es kommt zu ghost DC's und sonstigem.
Bei uns mussten wir mega auf Performance setzen und haben so einige Systeme neu schreiben dürfen. Bei guter Leistung kommst du auf 1.16GB WS verbrauch bei 58 aktiven maps (gerade nochmal nachgesehen).
RAM unten halten durch sauberes coding und nichts stresst mehr.
|
... oder ein wenig Mühe geben und auf 64bit umsteigen. Sollte man heutzutage sowieso
|
|
|
05/12/2016, 20:52
|
#14
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Quote:
Originally Posted by xTwiLightx
... oder ein wenig Mühe geben und auf 64bit umsteigen. Sollte man heutzutage sowieso 
|
Auch eine Möglichkeit wobei ich immernoch sauberes Programmieren vorziehe.
|
|
|
05/12/2016, 21:35
|
#15
|
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
|
Quote:
Originally Posted by Sedrika
Auch eine Möglichkeit wobei ich immernoch sauberes Programmieren vorziehe.
|
Das heißt im Flyff Sourcecode 100% refactoring ( ͡° ͜ʖ ͡°)
|
|
|
Similar Threads
|
[Code]Reset dungeon + guild dungeon By : Crasim Edit : Krejcomut
06/18/2014 - Browsergames - 9 Replies
<?php
include('../functions.php');
if(isset($_GET))
{
$uid = mysql_real_escape_string($_GET);
$row = mysql_fetch_array(mysql_query("SELECT user_name FROM user_data WHERE user_id='". $uid ."' LIMIT 1"));
$username = $row;
}
|
Suche Bot für Frostzehes Dungeon (schlagring-dungeon)
12/16/2011 - GW Bots - 3 Replies
Hey!
Gibt es einen solchen bot? und wenn ja, was bringt der auf 8h ~ ein ?
LG
timy
|
Tore im Dungeon 4 weg | Keine Pferde im Dungeon 1
10/04/2007 - Kal Online - 30 Replies
also hier einmal sone Kleine Hilfe wenn ihr z.B. in D4 seit und Hoch hinaus wollt ;)
Einige machen es ja Folgendermaßen
KalOnlineENG -> data -> Npc zu Npc1 o.Ä umbennen !
Wie Jeder schon bemerkt hat sind nun auch jegliche Npc´s weg !
Um die Tore zu entfernen OHNE die Npc´s mit zu entfernen müßt ihr im ordner
|
All times are GMT +1. The time now is 07:36.
|
|