|
You last visited: Today at 01:38
Advertisement
Platin System
Discussion on Platin System within the Flyff Private Server forum part of the Flyff category.
11/08/2015, 19:25
|
#1
|
elite*gold: 0
Join Date: Sep 2011
Posts: 677
Received Thanks: 390
|
Platin System
Hey Y0,
Wollte mal fragen ob einer eine Ahnung hat woran folgendes Problem liegt:
Ich habe bei mir ein Platin-System eingebaut, nun passieren 2 relativ komische Dinge:
- Das Platin-Level an sich wird bei 'H' nicht geupdatet!
- Das Platin-Icon wird auch nicht geupdated
Note: Datenbankeinträge wurden gemacht.
|
|
|
11/08/2015, 19:40
|
#2
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Es gibt kein Update an den Client also musst du dem Client ein Packet schicken wo die neuen Infos drin stehen
|
|
|
11/08/2015, 20:06
|
#3
|
elite*gold: 0
Join Date: Sep 2011
Posts: 677
Received Thanks: 390
|
Quote:
Originally Posted by Drabur
Es gibt kein Update an den Client also musst du dem Client ein Packet schicken wo die neuen Infos drin stehen
|
Mir ist zusätzlich aufgefallen, dass das Platin ab Stufe 4 komplett stoppt.
Ich denke, da fehlt irgendwie was xD
|
|
|
11/08/2015, 20:35
|
#4
|
elite*gold: 0
Join Date: May 2014
Posts: 4,408
Received Thanks: 934
|
Es heißt rebirth System und nicht Platin system(Copyright Forsaken)!
|
|
|
11/08/2015, 20:52
|
#5
|
elite*gold: 18
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
|
Schau mal nach an den stellen wo du etwas eingebaut hast und dann ob das limit schon bei 4 ist via Source.
Quote:
Originally Posted by 'Dude'
Es heißt rebirth System und nicht Platin system(Copyright Forsaken)!
|
Ja und?
|
|
|
11/08/2015, 21:01
|
#6
|
elite*gold: 0
Join Date: Sep 2011
Posts: 677
Received Thanks: 390
|
Quote:
Originally Posted by Secno
Es heißt rebirth System und nicht Platin system(Copyright Forsaken)!
|
Kack dir pls nicht in die Hose. Soll man den Titel halt ändern, sry.
Quote:
Originally Posted by Sedrika
Schau mal nach an den stellen wo du etwas eingebaut hast und dann ob das limit schon bei 4 ist via Source.
|
Grundlegendes Verständnis für C++ habe ich ja, jedoch fehlt mir die Knowledge über bestimmte Funktionionsaufrufe!
Das wäre einmal die Hauptfunktion:
Code:
#ifdef __REBIRTH
void CDPSrvr::OnDoReb( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
#ifdef __SYSSECURITY
try{
#endif
//Error(" Packet ist angekommen. ");
OBJID idScroll;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
ar >> idScroll;
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( idScroll );
if( pItemElem )
{
if( pItemElem->GetProp()->dwID == II_SCR_SCR_PLATIN && pUser->GetLevel() == 150 && pUser->GetExpPercent() == 9999 )
{
if( pUser->m_nReb >= 30 )
{
pUser->AddText("Du hast das letzte Platin Level erreicht!");
return;
}
if( pUser->m_Inventory.GetEmptyCount() > 9 ) // wurstbrotqt 14-06-14
{
CItemElem* pEQ;
//if( pUser->CreateItem( &newItem ) )
{
for( int i = 0; i < MAX_HUMAN_PARTS; i++ )
{
switch( i )
{
case PARTS_UPPER_BODY: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_CAP: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_HAND: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_FOOT: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_LWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_RWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_SHIELD: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
}
}
if( pUser->GetWeaponItem( PARTS_RWEAPON ) )
return;
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
/*if( ++pUser->m_nReb == 20 )
{
CItemElem itemElem;
itemElem.m_pPet = new CPet();
itemElem.m_pPet->SetKind();
itemElem.m_pPet->SetLevel(PL_S);
itemElem.m_pPet->SetExp(itemElem.m_pPet->GetMaxExp());
itemElem.m_pPet->SetLife(99);
itemElem.m_dwItemId = itemElem.m_pPet->GetItemId();
itemElem.m_pPet->SetEnergy(itemElem.m_pPet->GetMaxEnergy());
int nLevel, i;
for( i = PL_D, nLevel = 1; i <= PL_S; ++i, nLevel += 2 )
{
itemElem.m_pPet->SetAvailLevel(i,nLevel);
}
itemElem.SetSerialNumber();
itemElem.m_nItemNum = 1;
pUser->CreateItem(&itemElem);
}
pUser->AddText("Deinem Inventar wurde ein Item für das Platin Level hinzugefügt.");
pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_NUM, pItemElem->m_nItemNum - 1 );
g_UserMng.UpdateUser( pUser, 2 );*/
}
}
else
pUser->AddText("Du brauchst mehr als 8 Slots im Inventar frei um die Scroll zu aktivieren.");
}else{
pUser->AddText("Du musst erst Level 150 mit 99,99% werden, um die Platin Scroll zu aktivieren!");
return;
}
}
}
#ifdef __SYSSECURITY
}
catch(...)
{
Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif
}
#endif // __REBIRTH
Edit: Bleibt nicht bei 4 hängen, hat nur gebuggt! xD
|
|
|
11/08/2015, 21:45
|
#7
|
elite*gold: 0
Join Date: May 2014
Posts: 4,408
Received Thanks: 934
|
Quote:
Originally Posted by Sedrika
Schau mal nach an den stellen wo du etwas eingebaut hast und dann ob das limit schon bei 4 ist via Source.
Ja und?
|
Ich habe ihn lediglich darauf aufmerksam gemacht, dass es rebirth System heißt. Selbst der Datenbanksatz lautet m_nReb. Hierbei steht das Reb für Rebirth.
|
|
|
11/08/2015, 22:53
|
#8
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Quote:
Originally Posted by 'Dude'
Ich habe ihn lediglich darauf aufmerksam gemacht, dass es rebirth System heißt. Selbst der Datenbanksatz lautet m_nReb. Hierbei steht das Reb für Rebirth.
|
Okay entschuldigung ich nenn es bei irgendeinem Server WasserflaschenSystem ist das dann auch falsch?
|
|
|
11/08/2015, 23:03
|
#9
|
elite*gold: 0
Join Date: May 2014
Posts: 4,408
Received Thanks: 934
|
Quote:
Originally Posted by Drabur
Okay entschuldigung ich nenn es bei irgendeinem Server WasserflaschenSystem ist das dann auch falsch?
|
Wer zum teufel bist jetzt du? Das System an sich heißt Rebirth System. Wie du es nennen willst juckt mich nicht.
|
|
|
11/08/2015, 23:33
|
#10
|
elite*gold: 0
Join Date: Sep 2011
Posts: 677
Received Thanks: 390
|
könnt ihr das bitte wo anders ausdiskutieren? Wollte eig nur Hilfe bekommen weil ich ein Problem habe und dann wird hier unnötig klug geschissen.
Michi Unterlass das bitte einfach das hilft mir in keinster weise weiter.
Ich würde gerne wissen wie das mit dem Packet geht, damit das Platin Level "geupdated" wird.
|
|
|
11/09/2015, 16:14
|
#11
|
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
|
Quote:
Originally Posted by 'Dude'
Wer zum teufel bist jetzt du? Das System an sich heißt Rebirth System. Wie du es nennen willst juckt mich nicht.
|
Bin irgendein Penner der neben dem epvpers server unter der bank schläft.
Quote:
Originally Posted by Marc~
könnt ihr das bitte wo anders ausdiskutieren? Wollte eig nur Hilfe bekommen weil ich ein Problem habe und dann wird hier unnötig klug geschissen.
Michi Unterlass das bitte einfach das hilft mir in keinster weise weiter.
Ich würde gerne wissen wie das mit dem Packet geht, damit das Platin Level "geupdated" wird.
|
Du machst einfach eine Funktion die dem Client das neue Platin Level und was der auch immer noch dazu braucht schickt.
kleiner Tipp schau dir CUser::AddDefinedText an
|
|
|
11/09/2015, 16:34
|
#12
|
elite*gold: 30
Join Date: Sep 2012
Posts: 426
Received Thanks: 1,021
|
Im auskommentierten Teil deines Code-Snippets ist folgendes zu finden:
PHP Code:
g_UserMng.UpdateUser( pUser, 2 );
Schau nach ob die Methode CUserMng::UpdateUser mit dem Parameter 2 auch wirklich das tut, was du verlangst. Danach rufe sie wieder in die Methode CDPSrvr::OnDoReb auf. (Nach dem m_nReb der Klasse CUser um eins erhöht wurde)
|
|
|
11/09/2015, 17:47
|
#13
|
elite*gold: 0
Join Date: Sep 2011
Posts: 677
Received Thanks: 390
|
So ich habs jetzt damit versucht:
DPSrvr:
Code:
#ifdef __REBIRTH
void CDPSrvr::OnDoReb( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
/*#ifdef __SYSSECURITY
try{
#endif
Error(" Packet ist angekommen. ");*/
OBJID idScroll;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
ar >> idScroll;
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( idScroll );
if( pItemElem )
{
if( pItemElem->GetProp()->dwID == II_SCR_SCR_PLATIN && pUser->GetLevel() == 150 && pUser->GetExpPercent() == 9999 )
{
if( pUser->m_nReb >= 30 )
{
pUser->AddText("Du hast das letzte Platin Level erreicht!");
return;
}
if( pUser->m_Inventory.GetEmptyCount() > 9 ) // wurstbrotqt 14-06-14
{
CItemElem* pEQ;
//if( pUser->CreateItem( &newItem ) )
{
for( int i = 0; i < MAX_HUMAN_PARTS; i++ )
{
switch( i )
{
case PARTS_UPPER_BODY: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_CAP: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_HAND: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_FOOT: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_LWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_RWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_SHIELD: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
}
}
if( pUser->GetWeaponItem( PARTS_RWEAPON ) )
return;
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
g_UserMng.UpdateUser( pUser, 1 );
/*if( ++pUser->m_nReb == 20 )
{
CItemElem itemElem;
itemElem.m_pPet = new CPet();
itemElem.m_pPet->SetKind(PK_TIGER);
itemElem.m_pPet->SetLevel(PL_S);
itemElem.m_pPet->SetExp(itemElem.m_pPet->GetMaxExp());
itemElem.m_pPet->SetLife(99);
itemElem.m_dwItemId = itemElem.m_pPet->GetItemId();
itemElem.m_pPet->SetEnergy(itemElem.m_pPet->GetMaxEnergy());
int nLevel, i;
for( i = PL_D, nLevel = 1; i <= PL_S; ++i, nLevel += 2 )
{
itemElem.m_pPet->SetAvailLevel(i,nLevel);
}
itemElem.SetSerialNumber();
itemElem.m_nItemNum = 1;
pUser->CreateItem(&itemElem);
}
pUser->AddText("Deinem Inventar wurde ein Item für das Platin Level hinzugefügt.");
pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_NUM, pItemElem->m_nItemNum - 1 );
g_UserMng.UpdateUser( pUser, 1 );*/
}
}
else
pUser->AddText("Du brauchst mehr als 8 Slots im Inventar frei um die Scroll zu aktivieren.");
}else{
pUser->AddText("Du musst erst Level 150 mit 99,99% werden, um die Platin Scroll zu aktivieren!");
return;
}
}
}
/*#ifdef __SYSSECURITY
}
catch(...)
{
Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif*/
}
#endif // __REBIRTH
Code:
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
g_UserMng.UpdateUser( pUser, 1 );
User.cpp
Code:
#ifdef __REBIRTH
void CUserMng::UpdateUser( CUser* pUser, int nMode )
{
if( pUser->IsDelete() )
return;
CAr ar;
ar << GETID( pUser ) << SNAPSHOTTYPE_UPDATE_PLATINLEVEL << pUser->m_idPlayer << nMode;
if( nMode == 1 )
ar << pUser->m_nReb;
}
#endif //__REBIRTH
DPClient.cpp
Code:
#ifdef __REBIRTH
void CDPClient::SendDoRebirth( OBJID idScroll )
{
BEFORESENDSOLE( ar, PACKETTYPE_SEND_DOREB, DPID_UNKNOWN );
ar << idScroll;
SEND( ar, this, DPID_SERVERPLAYER );
}
void CDPClient::OnUpdatePlatinLevel( OBJID objid, CAr & ar )
{
u_long idPlayer = NULL;
int nMode = NULL;
ar >> idPlayer >> nMode;
CMover* pMover = prj.GetMover( objid );
if( idPlayer == g_pPlayer->m_idPlayer )
pMover = g_pPlayer;
if( IsInvalidObj( pMover ) )
return;
if( nMode == 1 )
ar >> pMover->m_nReb;
}
#endif // __REBIRTH
Code:
#ifdef __REBIRTH
case SNAPSHOTTYPE_UPDATE_PLATINLEVEL: OnUpdatePlatinLevel( objid, ar ); break;
#endif
Hab langsam überhaupt keinen Plan mehr was ich machen soll, denn nichtmal das funktioniert..
|
|
|
11/09/2015, 18:20
|
#14
|
elite*gold: 7
Join Date: Sep 2012
Posts: 4,466
Received Thanks: 3,218
|
Quote:
Originally Posted by 'Dude'
Wer zum teufel bist jetzt du? Das System an sich heißt Rebirth System. Wie du es nennen willst juckt mich nicht.
|
Gut das das Rebirth System nicht von Forsaken ist sondern von Calli damals, dann sollte man auch die Informationen haben, bevor man so große Fresse hat und mit den Tönen rumspuckt  Spar dir dein Spam in Zukunft ..
Quote:
Originally Posted by Marc~
So ich habs jetzt damit versucht:
DPSrvr:
Code:
#ifdef __REBIRTH
void CDPSrvr::OnDoReb( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
/*#ifdef __SYSSECURITY
try{
#endif
Error(" Packet ist angekommen. ");*/
OBJID idScroll;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
ar >> idScroll;
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( idScroll );
if( pItemElem )
{
if( pItemElem->GetProp()->dwID == II_SCR_SCR_PLATIN && pUser->GetLevel() == 150 && pUser->GetExpPercent() == 9999 )
{
if( pUser->m_nReb >= 30 )
{
pUser->AddText("Du hast das letzte Platin Level erreicht!");
return;
}
if( pUser->m_Inventory.GetEmptyCount() > 9 ) // wurstbrotqt 14-06-14
{
CItemElem* pEQ;
//if( pUser->CreateItem( &newItem ) )
{
for( int i = 0; i < MAX_HUMAN_PARTS; i++ )
{
switch( i )
{
case PARTS_UPPER_BODY: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_CAP: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_HAND: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_FOOT: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_LWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_RWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_SHIELD: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
}
}
if( pUser->GetWeaponItem( PARTS_RWEAPON ) )
return;
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
g_UserMng.UpdateUser( pUser, 1 );
/*if( ++pUser->m_nReb == 20 )
{
CItemElem itemElem;
itemElem.m_pPet = new CPet();
itemElem.m_pPet->SetKind(PK_TIGER);
itemElem.m_pPet->SetLevel(PL_S);
itemElem.m_pPet->SetExp(itemElem.m_pPet->GetMaxExp());
itemElem.m_pPet->SetLife(99);
itemElem.m_dwItemId = itemElem.m_pPet->GetItemId();
itemElem.m_pPet->SetEnergy(itemElem.m_pPet->GetMaxEnergy());
int nLevel, i;
for( i = PL_D, nLevel = 1; i <= PL_S; ++i, nLevel += 2 )
{
itemElem.m_pPet->SetAvailLevel(i,nLevel);
}
itemElem.SetSerialNumber();
itemElem.m_nItemNum = 1;
pUser->CreateItem(&itemElem);
}
pUser->AddText("Deinem Inventar wurde ein Item für das Platin Level hinzugefügt.");
pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_NUM, pItemElem->m_nItemNum - 1 );
g_UserMng.UpdateUser( pUser, 1 );*/
}
}
else
pUser->AddText("Du brauchst mehr als 8 Slots im Inventar frei um die Scroll zu aktivieren.");
}else{
pUser->AddText("Du musst erst Level 150 mit 99,99% werden, um die Platin Scroll zu aktivieren!");
return;
}
}
}
/*#ifdef __SYSSECURITY
}
catch(...)
{
Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif*/
}
#endif // __REBIRTH
Code:
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
g_UserMng.UpdateUser( pUser, 1 );
User.cpp
Code:
#ifdef __REBIRTH
void CUserMng::UpdateUser( CUser* pUser, int nMode )
{
if( pUser->IsDelete() )
return;
CAr ar;
ar << GETID( pUser ) << SNAPSHOTTYPE_UPDATE_PLATINLEVEL << pUser->m_idPlayer << nMode;
if( nMode == 1 )
ar << pUser->m_nReb;
}
#endif //__REBIRTH
DPClient.cpp
Code:
#ifdef __REBIRTH
void CDPClient::SendDoRebirth( OBJID idScroll )
{
BEFORESENDSOLE( ar, PACKETTYPE_SEND_DOREB, DPID_UNKNOWN );
ar << idScroll;
SEND( ar, this, DPID_SERVERPLAYER );
}
void CDPClient::OnUpdatePlatinLevel( OBJID objid, CAr & ar )
{
u_long idPlayer = NULL;
int nMode = NULL;
ar >> idPlayer >> nMode;
CMover* pMover = prj.GetMover( objid );
if( idPlayer == g_pPlayer->m_idPlayer )
pMover = g_pPlayer;
if( IsInvalidObj( pMover ) )
return;
if( nMode == 1 )
ar >> pMover->m_nReb;
}
#endif // __REBIRTH
Code:
#ifdef __REBIRTH
case SNAPSHOTTYPE_UPDATE_PLATINLEVEL: OnUpdatePlatinLevel( objid, ar ); break;
#endif
Hab langsam überhaupt keinen Plan mehr was ich machen soll, denn nichtmal das funktioniert..
|
Ich helfe dir sobald ich wieder da bin ..
|
|
|
11/09/2015, 18:20
|
#15
|
elite*gold: 30
Join Date: Sep 2012
Posts: 426
Received Thanks: 1,021
|
Quote:
Originally Posted by Marc~
So ich habs jetzt damit versucht:
DPSrvr:
Code:
#ifdef __REBIRTH
void CDPSrvr::OnDoReb( CAr & ar, DPID dpidCache, DPID dpidUser, LPBYTE lpBuf, u_long uBufSize )
{
/*#ifdef __SYSSECURITY
try{
#endif
Error(" Packet ist angekommen. ");*/
OBJID idScroll;
CUser* pUser = g_UserMng.GetUser( dpidCache, dpidUser );
if( IsValidObj( pUser ) )
{
ar >> idScroll;
CItemElem* pItemElem = pUser->m_Inventory.GetAtId( idScroll );
if( pItemElem )
{
if( pItemElem->GetProp()->dwID == II_SCR_SCR_PLATIN && pUser->GetLevel() == 150 && pUser->GetExpPercent() == 9999 )
{
if( pUser->m_nReb >= 30 )
{
pUser->AddText("Du hast das letzte Platin Level erreicht!");
return;
}
if( pUser->m_Inventory.GetEmptyCount() > 9 ) // wurstbrotqt 14-06-14
{
CItemElem* pEQ;
//if( pUser->CreateItem( &newItem ) )
{
for( int i = 0; i < MAX_HUMAN_PARTS; i++ )
{
switch( i )
{
case PARTS_UPPER_BODY: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_CAP: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_HAND: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_FOOT: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_LWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_RWEAPON: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
case PARTS_SHIELD: pEQ = pUser->m_Inventory.GetEquip( i ); if( pEQ ) { pUser->EquipItem( pEQ, FALSE, i ); } break;
}
}
if( pUser->GetWeaponItem( PARTS_RWEAPON ) )
return;
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
g_UserMng.UpdateUser( pUser, 1 );
/*if( ++pUser->m_nReb == 20 )
{
CItemElem itemElem;
itemElem.m_pPet = new CPet();
itemElem.m_pPet->SetKind(PK_TIGER);
itemElem.m_pPet->SetLevel(PL_S);
itemElem.m_pPet->SetExp(itemElem.m_pPet->GetMaxExp());
itemElem.m_pPet->SetLife(99);
itemElem.m_dwItemId = itemElem.m_pPet->GetItemId();
itemElem.m_pPet->SetEnergy(itemElem.m_pPet->GetMaxEnergy());
int nLevel, i;
for( i = PL_D, nLevel = 1; i <= PL_S; ++i, nLevel += 2 )
{
itemElem.m_pPet->SetAvailLevel(i,nLevel);
}
itemElem.SetSerialNumber();
itemElem.m_nItemNum = 1;
pUser->CreateItem(&itemElem);
}
pUser->AddText("Deinem Inventar wurde ein Item für das Platin Level hinzugefügt.");
pUser->UpdateItem( (BYTE)( pItemElem->m_dwObjId ), UI_NUM, pItemElem->m_nItemNum - 1 );
g_UserMng.UpdateUser( pUser, 1 );*/
}
}
else
pUser->AddText("Du brauchst mehr als 8 Slots im Inventar frei um die Scroll zu aktivieren.");
}else{
pUser->AddText("Du musst erst Level 150 mit 99,99% werden, um die Platin Scroll zu aktivieren!");
return;
}
}
}
/*#ifdef __SYSSECURITY
}
catch(...)
{
Error("Error on Line %d in %s",__LINE__,__FILE__);
}
#endif*/
}
#endif // __REBIRTH
Code:
pUser->InitLevel( JOB_VAGRANT, 1 );
// wurstbrotqt 14-06-14
pUser->m_nReb++;
g_UserMng.UpdateUser( pUser, 1 );
User.cpp
Code:
#ifdef __REBIRTH
void CUserMng::UpdateUser( CUser* pUser, int nMode )
{
if( pUser->IsDelete() )
return;
CAr ar;
ar << GETID( pUser ) << SNAPSHOTTYPE_UPDATE_PLATINLEVEL << pUser->m_idPlayer << nMode;
if( nMode == 1 )
ar << pUser->m_nReb;
}
#endif //__REBIRTH
DPClient.cpp
Code:
#ifdef __REBIRTH
void CDPClient::SendDoRebirth( OBJID idScroll )
{
BEFORESENDSOLE( ar, PACKETTYPE_SEND_DOREB, DPID_UNKNOWN );
ar << idScroll;
SEND( ar, this, DPID_SERVERPLAYER );
}
void CDPClient::OnUpdatePlatinLevel( OBJID objid, CAr & ar )
{
u_long idPlayer = NULL;
int nMode = NULL;
ar >> idPlayer >> nMode;
CMover* pMover = prj.GetMover( objid );
if( idPlayer == g_pPlayer->m_idPlayer )
pMover = g_pPlayer;
if( IsInvalidObj( pMover ) )
return;
if( nMode == 1 )
ar >> pMover->m_nReb;
}
#endif // __REBIRTH
Code:
#ifdef __REBIRTH
case SNAPSHOTTYPE_UPDATE_PLATINLEVEL: OnUpdatePlatinLevel( objid, ar ); break;
#endif
Hab langsam überhaupt keinen Plan mehr was ich machen soll, denn nichtmal das funktioniert..
|
PHP Code:
#ifdef __REBIRTH
void CUserMng::UpdateUser( CUser* pUser, int nMode )
{
if( pUser->IsDelete() )
return;
CAr ar;
ar << GETID( pUser ) << SNAPSHOTTYPE_UPDATE_PLATINLEVEL << pUser->m_idPlayer << nMode;
if( nMode == 1 )
ar << pUser->m_nReb;
GETBLOCK( ar, lpBuf, nBufSize );
FOR_VISIBILITYRANGE( pUser )
USERPTR->AddBlock( lpBuf, nBufSize );
NEXT_VISIBILITYRANGE( pUser )
}
#endif //__REBIRTH
Du solltest den Buffer auch abschicken :P
|
|
|
Similar Threads
|
[Suche/Search] Platin System GOH
03/27/2015 - Flyff Private Server - 11 Replies
Hallo liebe Community,
ich suche ein Platin System welches auf den GoH Sachen läuft.
Vielleicht wäre jemand so freundlich und könnte mir eines sagen oder geben.
Es sollte eine veränderte Dungeon Cooldown Zeit beinhalten, eine veränderte EXP Rate bei jedem neuen Platin und ein eigenes Icon enthalten.
Ich hoffe jemand könnte mir da weiterhelfen ;)
Hello Community,
i search a Platin System for the GoH Files/Source.
|
[Suche/Search] Platin System GO
10/14/2014 - Flyff Private Server - 0 Replies
Hallo liebe Community,
|
All times are GMT +1. The time now is 01:43.
|
|