Rebirth Problem/Frage

12/04/2014 16:28 Grening#1
Moin Leute,
ich bin grade auf ein kleines Problem gestoßen.
Also folgendes:

Ich habe dieses Rebirth system verwendet [Only registered and activated users can see links. Click Here To Register...] .

Das
Code:
m_nCampusPoint
habe ich mit
Code:
m_iRebirth
ersetzt, damit es mit dem Release für die Icons übereinstimmt. [Only registered and activated users can see links. Click Here To Register...]

Soweit funktioniert alles wie es soll, auser...

Frage 1: Wie muss die Funktion lauten, das man ab Rebirth 5 kein /rebirth mehr machen kann?

Frage 2: Wo kann ich einstellen das die Exp pro Rebirth level weniger wird?

Frage 3: Was genau muss ich eingeben damit das Rebirth level im Statusfenster H angezeigt wird?
12/04/2014 16:56 GentrosOne#2
Frage 3: Was genau muss ich eingeben damit das Rebirth level im Statusfenster H angezeigt wird?

Antwort: WndField.cpp
12/04/2014 17:04 Grening#3
Quote:
Originally Posted by GentrosOne View Post
Frage 3: Was genau muss ich eingeben damit das Rebirth level im Statusfenster H angezeigt wird?

Antwort: WndField.cpp
Ich hab mich mit Status anzeigen noch nicht befasst, was muss ich wo eintragen?
12/04/2014 17:04 Kiseku#4
Also bei mir sieht das so aus ;D[kannst es ja deinem Rebirth Anpassen]
Code:
#ifdef __PLATIN_SYSTEM
	if( g_pPlayer->GetPlatinLevel() > 0 )
	{
		p2DRender->TextOut( 7, y, "Platin Level:", dwColor ); y+= nNext;
	}
#endif // __PLATIN_SYSTEM
unter das :
Code:
	p2DRender->TextOut( 7, y, prj.GetText(TID_GAME_CHARACTER_02), dwColor ); y += nNext;
12/04/2014 21:30 raventh1984#5
1. Wie muss die Funktion lauten, das man ab Rebirth 5 kein /rebirth mehr machen kann?

Answer:

FuncTextcmd.cpp

#ifdef __REBIRTH
BOOL TextCmd_rebirth( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser *pUser;
pUser = (CUser*)scanner.dwValue;
if(pUser->m_iRebirth >= 5)
{
pUser->AddText("You have already max rebirths!");
}
else if(pUser->m_nLevel >= 150 && pUser->IsLegendHero() && pUser-> )
{
pUser->InitLevelRebirth( pUser->m_nJob-16,60);
}
else
pUser->AddText("You do not have the right level for a Rebirth!");
#endif
return TRUE;
}
#endif
12/05/2014 03:23 .SnoX#6
lel.

Da alles andere schon beantwortet wurde hier die letze, hab aber gerade keine Source vor mir deswegen müsstest du schauen wie du es einbaust.
Bei der Exp hast du zwei Möglichkeiten einmal in der
Quote:
CMover::AddExperience
müsste das sein, da kannst du die Erfahrung die du tatsächlich bekommst senken like
Quote:
if( m_iRebirth > 0)
nExp /= (m_iRebirth*3)
, musst du mal schauen wie du das genau haben willst.
Ansonsten kannste die Exprate niedriger machen
Quote:
CMover::GetExpFactor
gehst du einfach ganz am Ende der Funktion hin und machst
Quote:
if( m_iRebirth > 0) fFactor /= (float)m_iRebirth*1.2f;
Hier falls du die Droprate bearbeiten willst ect.
Quote:
GetItemDropRateFactor, GetPieceItemDropRateFactor
12/05/2014 20:21 Grening#7
Noch eine kurze Frage, die mit dem Rebirth system oben aber nichts zu tun hat,jedoch ähnlich ist.

Beim compilieren des Datenbank Servers kommt folgender Fehler:

Code:
C:\Users\Administrator\Source\_Network\Objects\Obj.cpp(774): error C3861: 'm_nPlatinLv': identifier not found, even with argument-dependent lookup
Laut Errorlog kann ich entnehmen das er die definition "m_nPlatinLv" nicht findet, weil sie nicht definiert ist.
Code:
C:\Users\Administrator\Source\Source\_Network\Objects\Obj.cpp(773): error C2039: 'm_nPlatinLv' : is not a member of 'CMover'
Code:
C:\Users\Administrator\Source\Source\_Network\Objects\Obj.cpp(121): error C2065: 'm_nPlatinLv' : undeclared identifier
Kann mir jemand dabei helfen?
Werden noch mehr Informationen benötigt?

Die Stelle vom Error:

Code:
#ifdef __PLATIN
	m_nPlatinLv = pMover->m_nPlatinLv;
	if( m_nPlatinLv > MAX_PLATINLV || m_nPlatinLv < 0 ) // Fix Datenbank NULL -> -99 || Ist PlatinLv größer als MAX_PALTINLV oder kleiner als 0 dann auf 0 setzen
		m_nPlatinLv = 0;
#endif//__PLATIN
12/06/2014 14:22 raventh1984#8
Its already saying what the problem is

m_nPlatinLv' : is not a member of 'CMover'

So you need to add the m_nPlatinLv to the CMover Class
12/07/2014 08:45 Grening#9
How can i exactly do that?
12/08/2014 17:33 Grening#10
~Push~
12/08/2014 18:09 raventh1984#11
Quote:
Originally Posted by Grening View Post
How can i exactly do that?
Here
Obj.h
class CMover: public CCtrl

Next time try to read the error code

'm_nPlatinLv' : is not a member of 'CMover'

it simply means its not inside the class CMover. And since this code is in your Obj.cpp you need to check Obj.h
12/08/2014 18:25 Grening#12
Thank you very much.
It work´s now :)
12/08/2014 21:50 GentrosOne#13
Versuche es mal so


Code:
#ifdef __REBIRTH
	m_iRebirth = pMover->m_iRebirth;
	if( m_iRebirth > MAX_REBIRTH || m_iRebirth < 0 ) // Fix Datenbank NULL -> -99 || Ist Rebrith größer als MAX_REBIRTH oder kleiner als 0 dann auf 0 setzen
		m_iRebirth = 0;
#endif//__REBIRTH
12/09/2014 06:13 Grening#14
Raventh hat mich schon auf die richtige Lösung gebracht,hat auch geklappt.