Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Flyff > Flyff Private Server
You last visited: Today at 21:23

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[V16] OnJoin Error Source

Discussion on [V16] OnJoin Error Source within the Flyff Private Server forum part of the Flyff category.

Reply
 
Old   #1
 
dennisdra's Avatar
 
elite*gold: 23
Join Date: Jun 2008
Posts: 949
Received Thanks: 376
[V16] OnJoin Error Source

Heyho,

hab da mal schnell ne Frage.
Ich habe die V16 Jobs, Skills etc. aus Aldimasters Source in ne cleane v15 source eingefügt.
Problem ist jedoch nun, das ich nicht ingame reinkomme.

Errorlog ist nur dies hier(Serverseitig, Clientseitig nichts)

Quote:
2011/ 6/ 2 20:17:29
OnJoin(): dennisdra, 2
2011/ 6/ 2 20:18:07
OnJoin(): dennisdra1, 1
2011/ 6/ 2 20:18:51
OnJoin(): rtesjkfioerjg, 4
Ich hoffe, das iwer weiter weiß.
Thx im vorraus.

Mfg

dennisdra
dennisdra is offline  
Old 06/02/2011, 20:34   #2



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
Das sind fehler der DB aus.

Bei OnJoin mit dem Error 4 ist der fehler bei "m_tGuildMember"
Sedrika is offline  
Old 06/02/2011, 20:46   #3
 
elite*gold: 0
Join Date: Feb 2010
Posts: 294
Received Thanks: 85
Quote:
Originally Posted by Sedrika View Post
Das sind fehler der DB aus.

Bei OnJoin mit dem Error 4 ist der fehler bei "m_tGuildMember"
Was für ein Schman du laberst xD.

Mach sicher das du in der Funktion

CDPDatabaseClient::OnJoin()

Das drinne hast.

Code:
#ifdef __3RD_LEGEND16 // __LEGEND	//	10Â÷ Àü½Â½Ã½ºÅÛ	Neuz, World, Trans
		if( pUser->GetLevel() > MAX_CHARACTER_LEVEL )
#else //__LEGEND	//	10Â÷ Àü½Â½Ã½ºÅÛ	Neuz, World, Trans
		if( pUser->GetLevel() > MAX_LEVEL )
#endif	//__LEGEND	//	10Â÷ Àü½Â½Ã½ºÅÛ	Neuz, World, Trans
		{
			WriteError( "MAX_LEVEL//%s//%d", pUser->GetName(), pUser->GetLevel() );
#ifdef __3RD_LEGEND16
			pUser->m_nLevel	= MAX_CHARACTER_LEVEL;
#else
			pUser->m_nLevel	= MAX_LEVEL;
#endif // __3RD_LEGEND16
Ancientsword is offline  
Old 06/02/2011, 21:41   #4
 
dennisdra's Avatar
 
elite*gold: 23
Join Date: Jun 2008
Posts: 949
Received Thanks: 376
Es gibt jedoch 2 DPDatabaseClient.cpp
1st im Cacheserver
2nd im Worldserver

würde es denn so gehen, wenn ich es einbaue?

Code:
void CDPDatabaseClient::OnJoin( CAr & ar, DPID dpidCache, DPID dpidUser )
{
	DWORD dwWorldId, dwIndex;
	DWORD dwSavePlayerTime = 0;
	DWORD dwSaveFlyTime = 0;
	int nMaximumLevel = 0;

	char lpOutputString[128]	= { 0, };
	sprintf( lpOutputString, "WORLDSERVER.EXE\t// PACKETTYPE_JOIN\t// %d", g_uKey );
	OutputDebugString( lpOutputString );

	CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
	if( pUser )
	{

		DWORD dwAuthKey;
		ar >> dwAuthKey;
		if( pUser->m_dwAuthKey != dwAuthKey )
		{
			WriteLog( "OnJoin(): Different dwAuthKey" );
			return;		//
		}

		char lpAddrtmp[16];
		
[COLOR="Red"]#ifdef __3RD_LEGEND16 // __LEGEND	//	10Â÷ Àü½Â½Ã½ºÅÛ	Neuz, World, Trans
		if( pUser->GetLevel() > MAX_CHARACTER_LEVEL )
#else //__LEGEND	//	10Â÷ Àü½Â½Ã½ºÅÛ	Neuz, World, Trans
		if( pUser->GetLevel() > MAX_LEVEL )
#endif	//__LEGEND	//	10Â÷ Àü½Â½Ã½ºÅÛ	Neuz, World, Trans
		{
			WriteError( "MAX_LEVEL//%s//%d", pUser->GetName(), pUser->GetLevel() );
#ifdef __3RD_LEGEND16
			pUser->m_nLevel	= MAX_CHARACTER_LEVEL;
#else
			pUser->m_nLevel	= MAX_LEVEL;
#endif // __3RD_LEGEND16[/COLOR]

#ifdef __ON_ERROR
		int nOnError	= 0;
		try
		{
#endif	// __ON_ERROR
dennisdra is offline  
Old 06/02/2011, 21:41   #5



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
Quote:
Originally Posted by Ancientsword View Post
Was für ein Schman du laberst xD.

Mach sicher das du in der Funktion

CDPDatabaseClient::OnJoin()

Das drinne hast.

Code:
#ifdef __3RD_LEGEND16 // __LEGEND    //    10Â÷ Àü½Â½Ã½ºÅÛ    Neuz, World, Trans
        if( pUser->GetLevel() > MAX_CHARACTER_LEVEL )
#else //__LEGEND    //    10Â÷ Àü½Â½Ã½ºÅÛ    Neuz, World, Trans
        if( pUser->GetLevel() > MAX_LEVEL )
#endif    //__LEGEND    //    10Â÷ Àü½Â½Ã½ºÅÛ    Neuz, World, Trans
        {
            WriteError( "MAX_LEVEL//%s//%d", pUser->GetName(), pUser->GetLevel() );
#ifdef __3RD_LEGEND16
            pUser->m_nLevel    = MAX_CHARACTER_LEVEL;
#else
            pUser->m_nLevel    = MAX_LEVEL;
#endif // __3RD_LEGEND16
Du laberst hier Schman...

Guck doch mal in der DB nach, wie die struktur bei diesem char ist für die spalte.
Sedrika is offline  
Old 06/02/2011, 21:43   #6
 
elite*gold: 0
Join Date: Feb 2010
Posts: 294
Received Thanks: 85
@Sedrika

...... Angenommen du erstellst einen Lvl 1. Charakter. Da ist der Error in dem Sinne völliger Schwachsinn von Aeonsoft(Gala-Lab).

@TE Neuz, World, Trans sind von den Jobs in der Hinsicht eigentlich nur betroffen.
Ancientsword is offline  
Old 06/02/2011, 21:44   #7
 
dennisdra's Avatar
 
elite*gold: 23
Join Date: Jun 2008
Posts: 949
Received Thanks: 376
Was ist denn jetzt hier richtig und was nicht?
Sedrika's Aussage oder Ancientsword's Aussage.
@Sedrika

wenn es DB-Seitig Probleme gibt, gäbe es ne Möglichkeit das auch ohne neue Db hinzukriegen?
Kann schlecht 3xx Usern nen Wipe antun
dennisdra is offline  
Old 06/02/2011, 21:57   #8



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
Quote:
Originally Posted by dennisdra View Post
@Sedrika

wenn es DB-Seitig Probleme gibt, gäbe es ne Möglichkeit das auch ohne neue Db hinzukriegen?
Kann schlecht 3xx Usern nen Wipe antun
Der Fehler ist, dass dort ein Eintrag falsch gespeichert wurde.

Mach mal:
PHP Code:
UPDATE [CHARACTER_01_DBF].[DBO].[CHARACTER_TBLSET [m_tGuildMember] = '20110531132723' 
danach sollte der Error verschwinden. Und wenn du bei OnJoin guckst, wo es den Error auf 4 setzt siehst du das auch....
Sedrika is offline  
Old 06/02/2011, 22:00   #9
 
elite*gold: 0
Join Date: May 2009
Posts: 122
Received Thanks: 160
Okay Leute...
zum Aufbau der OnJoin Funktion:
die besteht aus einem try{}catch(...){} Block
Im Verlauf der Funktion werden der nOnError Variable Werte zugewießen und wenn jetzt im try Block was net klappt, dann gehts ab in den catchblock, wo Charactername und nOnError ausgegeben werden
Für nOnError 4 steht folgendes im Code:
Code:
#ifdef __ON_ERROR
		nOnError	= 4;
#endif	// __ON_ERROR
		ar.ReadString( pUser->m_szPartyName, 32 );
		ar.ReadString( pUser->m_szBankPass, 5 );
		ar >> dwSavePlayerTime;
		pUser->SetPlayerTime( dwSavePlayerTime );

#ifndef __JEFF_9_20
		ar >> dwSaveFlyTime;
		pUser->SetSaveFlyTime( dwSaveFlyTime );
#endif	// __JEFF_9_20

		ar >> nMaximumLevel;

		// ÂÊÁö¸¦ ÀоîµéÀδÙ.
		short nTagCount;
		ar >> nTagCount;

		TAG_ENTRY tags[MAX_TAGS];
		for( short i=0; i<nTagCount; ++i )
		{
			ar >> tags[i].idFrom;					// ´©±¸¿¡°Ô¼* 
			ar >> tags[i].dwDate;					// ¾ðÁ¦ 
			ar.ReadString( tags[i].szString, 256 );		// ÂÊÁö ³»¿ë 
		}

		char GuildMemberTime[15] = {0,};
		ar.ReadString( GuildMemberTime, 15 );

		char cYear[5] = {0,};
		char cMonth[3] = {0,};
		char cDay[3] = {0,};
		char cHour[3] = {0,};
		char cMin[3] = {0,};
		
		strncpy(cYear, GuildMemberTime, 4);
		strncpy(cMonth, GuildMemberTime + 4, 2 );
		strncpy(cDay, GuildMemberTime + 6, 2 );
		strncpy(cHour, GuildMemberTime + 8, 2 );
		strncpy(cMin, GuildMemberTime + 10, 2 );
		
		CTime tGuildMember( atoi(cYear), atoi(cMonth), atoi(cDay), atoi(cHour), atoi(cMin), 0 );
		pUser->m_tGuildMember = tGuildMember;

		ar >> pUser->m_dwReturnWorldID;
		ar >> pUser->m_vReturnPos;

#ifdef __EVENT_1101
#ifdef __EVENT_1101_2
		ar >> pUser->m_nEventFlag;
#else // __EVENT_1101_2
		ar >> pUser->m_dwEventFlag;
#endif // __EVENT_1101_2
		ar >> pUser->m_dwEventTime;
		ar >> pUser->m_dwEventElapsed;
#endif	// __EVENT_1101

#ifdef __EXP_ANGELEXP_LOG
		ar >> pUser->m_nExpLog;
		ar >> pUser->m_nAngelExpLog;
#endif // __EXP_ANGELEXP_LOG

#ifdef __EVENTLUA_COUPON
		ar >> pUser->m_nCoupon;
#endif // __EVENTLUA_COUPON
#if __VER >= 14 // __PCBANG
		DWORD dwPCBangClass;
		ar >> dwPCBangClass;
#endif // __PCBANG

#if __VER >= 15 // __GUILD_HOUSE
		int nRestPoint; time_t tLogOut;
		ar >> nRestPoint >> tLogOut;
		if( pUser->m_idGuild != 0 )
			pUser->SetRestPoint( nRestPoint );
#endif // __GUILD_HOUSE
Ich kann dir jetzt leider nicht genau sagen, wo dein Fehler liegt, aber nur soviel zu dem worum sich Ancient und Sedrika streiten ^^
Krustenkäse is offline  
Old 06/02/2011, 22:04   #10



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,177
Received Thanks: 14,471
Quote:
Originally Posted by Krustenkäse View Post
Okay Leute...
zum Aufbau der OnJoin Funktion:
die besteht aus einem try{}catch(...){} Block
Im Verlauf der Funktion werden der nOnError Variable Werte zugewießen und wenn jetzt im try Block was net klappt, dann gehts ab in den catchblock, wo Charactername und nOnError ausgegeben werden
Für nOnError 4 steht folgendes im Code:
Code:
#ifdef __ON_ERROR
        nOnError    = 4;
#endif    // __ON_ERROR
        ar.ReadString( pUser->m_szPartyName, 32 );
        ar.ReadString( pUser->m_szBankPass, 5 );
        ar >> dwSavePlayerTime;
        pUser->SetPlayerTime( dwSavePlayerTime );

#ifndef __JEFF_9_20
        ar >> dwSaveFlyTime;
        pUser->SetSaveFlyTime( dwSaveFlyTime );
#endif    // __JEFF_9_20

        ar >> nMaximumLevel;

        // ÂÊÁö¸¦ ÀоîµéÀδÙ.
        short nTagCount;
        ar >> nTagCount;

        TAG_ENTRY tags[MAX_TAGS];
        for( short i=0; i<nTagCount; ++i )
        {
            ar >> tags[i].idFrom;                    // ´©±¸¿¡°Ô¼* 
            ar >> tags[i].dwDate;                    // ¾ðÁ¦ 
            ar.ReadString( tags[i].szString, 256 );        // ÂÊÁö ³»¿ë 
        }

        char GuildMemberTime[15] = {0,};
        ar.ReadString( GuildMemberTime, 15 );

        char cYear[5] = {0,};
        char cMonth[3] = {0,};
        char cDay[3] = {0,};
        char cHour[3] = {0,};
        char cMin[3] = {0,};
        
        strncpy(cYear, GuildMemberTime, 4);
        strncpy(cMonth, GuildMemberTime + 4, 2 );
        strncpy(cDay, GuildMemberTime + 6, 2 );
        strncpy(cHour, GuildMemberTime + 8, 2 );
        strncpy(cMin, GuildMemberTime + 10, 2 );
        
        CTime tGuildMember( atoi(cYear), atoi(cMonth), atoi(cDay), atoi(cHour), atoi(cMin), 0 );
        pUser->m_tGuildMember = tGuildMember;

        ar >> pUser->m_dwReturnWorldID;
        ar >> pUser->m_vReturnPos;

#ifdef __EVENT_1101
#ifdef __EVENT_1101_2
        ar >> pUser->m_nEventFlag;
#else // __EVENT_1101_2
        ar >> pUser->m_dwEventFlag;
#endif // __EVENT_1101_2
        ar >> pUser->m_dwEventTime;
        ar >> pUser->m_dwEventElapsed;
#endif    // __EVENT_1101

#ifdef __EXP_ANGELEXP_LOG
        ar >> pUser->m_nExpLog;
        ar >> pUser->m_nAngelExpLog;
#endif // __EXP_ANGELEXP_LOG

#ifdef __EVENTLUA_COUPON
        ar >> pUser->m_nCoupon;
#endif // __EVENTLUA_COUPON
#if __VER >= 14 // __PCBANG
        DWORD dwPCBangClass;
        ar >> dwPCBangClass;
#endif // __PCBANG

#if __VER >= 15 // __GUILD_HOUSE
        int nRestPoint; time_t tLogOut;
        ar >> nRestPoint >> tLogOut;
        if( pUser->m_idGuild != 0 )
            pUser->SetRestPoint( nRestPoint );
#endif // __GUILD_HOUSE
Ich kann dir jetzt leider nicht genau sagen, wo dein Fehler liegt, aber nur soviel zu dem worum sich Ancient und Sedrika streiten ^^

Steht da doch xD
PHP Code:
        char GuildMemberTime[15] = {0,};
        
ar.ReadStringGuildMemberTime15 );

        
char cYear[5] = {0,};
        
char cMonth[3] = {0,};
        
char cDay[3] = {0,};
        
char cHour[3] = {0,};
        
char cMin[3] = {0,};
        
        
strncpy(cYearGuildMemberTime4);
        
strncpy(cMonthGuildMemberTime 4);
        
strncpy(cDayGuildMemberTime 6);
        
strncpy(cHourGuildMemberTime 8);
        
strncpy(cMinGuildMemberTime 10);
        
        
CTime tGuildMemberatoi(cYear), atoi(cMonth), atoi(cDay), atoi(cHour), atoi(cMin), ); 
pUser->m_tGuildMember = tGuildMember;
Sedrika is offline  
Thanks
1 User
Old 06/02/2011, 22:04   #11
 
dennisdra's Avatar
 
elite*gold: 23
Join Date: Jun 2008
Posts: 949
Received Thanks: 376
Ich habe es ja extra mit einem cleanen lv 1 char probiert gehabt.
Kann jetzt grad net überprüfen, ob es funktioniert, werde ich morgen nachholen und dann hier Bescheid geben.

Aber thx schonmal im vorraus.
dennisdra is offline  
Old 06/02/2011, 22:08   #12
 
elite*gold: 0
Join Date: May 2009
Posts: 122
Received Thanks: 160
@Sedrika:
Ja stimmt :O hatte wohl grade n Brett vorm Kopf
Krustenkäse is offline  
Thanks
1 User
Old 06/02/2011, 23:37   #13
 
dennisdra's Avatar
 
elite*gold: 23
Join Date: Jun 2008
Posts: 949
Received Thanks: 376
Dies würde ja aber nur auf den OnJoin() 4 zutreffen, was is mit den anderen
dennisdra is offline  
Old 06/03/2011, 00:00   #14
 
elite*gold: 0
Join Date: Mar 2011
Posts: 715
Received Thanks: 598
Liegt bestimmt an MAX_SKILL hast da wohl vergessen die Zahl für die v16 Skills noch hinzuzufügen.
yannickminecraft is offline  
Reply


Similar Threads Similar Threads
[v16] Snippets - OnJoin Problem
04/30/2011 - Flyff Private Server - 10 Replies
Hallo leute, ich habe mir die snippets von den v16 Jobs zusammengesucht und alles so eingetragen wie es eigentlich auch hingehört. Errors gibt es keine, ich komm einfach nicht in die World. Es gibt vom World Server einen OnJoin Error, allerdings ist darüber auch nicht mehr zu erfahren. Hab erweiterten Error Log eingebaut -> Kein Ergebnis. Auch der Debugmode hat mich leider nicht zum Fehler geführt.
Source 8x Error
04/09/2011 - Flyff Private Server - 4 Replies
Ich nutze die Source von hier :http://www.elitepvpers.com/forum/flyff-pserver-dis cussions-questions/1059998-tut-einrichten-nutzen-v on-vs2003.html bzw http://www.elitepvpers.com/forum/flyff-pserver-disc ussions-questions/879689-release-offical-source-v1 5.html VS 2003 + SP 1 ist installiert. Ich hab eig alles gemacht wie es im obrigen genannten tut beschrieben ist und bekomme diese errors: Output ------ Rebuild All started: Project: Neuz, Configuration: NoGameguard Win32 ------ Deleting...
4267 source error???
10/07/2010 - CO2 Private Server - 0 Replies
NULL...exception http://www.image-share.com/upload/385/23.png in this code http://www.image-share.com/upload/385/24.png FirstDataArrived.Invoke(this, D); //this method !! why that??
Help with 5165 Source Error
06/19/2010 - CO2 Private Server - 1 Replies
I set up a Conquer Private server running a 5165 source. The server runs fine, but when I try to log in i get this error: System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) at NewestCOServer.Native.BF_set_key(IntPtr _key, Int32 len, Byte data) at NewestCOServer.Main.GameCrypto..ctor(Byte key) in C:\Users\Kody\Desktop\Eternal Abyss Co\5165 Files\5165 Source\Main\Blowfish.cs:line 15 at...



All times are GMT +2. The time now is 21:23.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.