Hier mal die Info zur Scroll
So fangen wir mal an
als erstes die Items
defineitem.h
evtl müsst ihr die ID's anpassen das sie nicht doppelt bei euch vorkommen
2.
propitem.txt
propitem.txt.txt
so
nun die source sachen
MoverSkill.Cpp
unter
fügt ihr das ein
jetz noch in VersionCommon.h
|
|
So fangen wir mal an
als erstes die Items
defineitem.h
Code:
#define II_SYS_LION 23565 #define II_SYS_RABBIT 23566 #define II_SYS_TIGER 23567 #define II_SYS_FOX 23568 #define II_SYS_DRAGON 23569 #define II_SYS_HIPPOGRIPH 23570
2.
propitem.txt
Code:
//raise Pet Scrolls 15 II_SYS_LION IDS_PROPITEM_TXT_013278 1 1 IK1_SYSTEM IK2_SYSTEM IK3_SCROLL = = 1 = 0 = = = = = = = 0 = = 1 = = 1 1 = = = = _NONE 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = XI_SYS_EXPAN01 = = = = = = WUI_NOW = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """Itm_SysSysScrBxLuck.dds""" 0 """""" IDS_PROPITEM_TXT_013279 15 II_SYS_RABBIT IDS_PROPITEM_TXT_013280 1 1 IK1_SYSTEM IK2_SYSTEM IK3_SCROLL = = 1 = 0 = = = = = = = 0 = = 1 = = 1 1 = = = = _NONE 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = XI_SYS_EXPAN01 = = = = = = WUI_NOW = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """Itm_SysSysScrBxLuck.dds""" 0 """""" IDS_PROPITEM_TXT_013281 15 II_SYS_FOX IDS_PROPITEM_TXT_013282 1 1 IK1_SYSTEM IK2_SYSTEM IK3_SCROLL = = 1 = 0 = = = = = = = 0 = = 1 = = 1 1 = = = = _NONE 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = XI_SYS_EXPAN01 = = = = = = WUI_NOW = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """Itm_SysSysScrBxLuck.dds""" 0 """""" IDS_PROPITEM_TXT_013283 15 II_SYS_TIGER IDS_PROPITEM_TXT_013288 1 1 IK1_SYSTEM IK2_SYSTEM IK3_SCROLL = = 1 = 0 = = = = = = = 0 = = 1 = = 1 1 = = = = _NONE 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = XI_SYS_EXPAN01 = = = = = = WUI_NOW = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """Itm_SysSysScrBxLuck.dds""" 0 """""" IDS_PROPITEM_TXT_013289 15 II_SYS_DRAGON IDS_PROPITEM_TXT_013284 1 1 IK1_SYSTEM IK2_SYSTEM IK3_SCROLL = = 1 = 0 = = = = = = = 0 = = 1 = = 1 1 = = = = _NONE 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = XI_SYS_EXPAN01 = = = = = = WUI_NOW = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """Itm_SysSysScrBxLuck.dds""" 0 """""" IDS_PROPITEM_TXT_013285 15 II_SYS_HIPPOGRIPH IDS_PROPITEM_TXT_013286 1 1 IK1_SYSTEM IK2_SYSTEM IK3_SCROLL = = 1 = 0 = = = = = = = 0 = = 1 = = 1 1 = = = = _NONE 0 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = XI_SYS_EXPAN01 = = = = = = WUI_NOW = = = = = = = = = 0 0 0 0 0 = = = = = = = = = = = = = = = = = """Itm_SysSysScrBxLuck.dds""" 0 """""" IDS_PROPITEM_TXT_013286
Code:
IDS_PROPITEM_TXT_013278 Scroll of Raise Pet(Lion) IDS_PROPITEM_TXT_013279 you get an Perfect Lion IDS_PROPITEM_TXT_013280 Scroll of Raise Pet(Rabbit) IDS_PROPITEM_TXT_013281 you get an Perfect Rabbit IDS_PROPITEM_TXT_013282 Scroll of Raise Pet(Fox) IDS_PROPITEM_TXT_013283 you get an Perfect Fox IDS_PROPITEM_TXT_013284 Scroll of Raise Pet(Dragon) IDS_PROPITEM_TXT_013285 you get an Perfect Dragon IDS_PROPITEM_TXT_013286 Scroll of Raise Pet(Hippogriph) IDS_PROPITEM_TXT_013287 you get an Perfect Hippogriph IDS_PROPITEM_TXT_013288 Scroll of Raise Pet(Tiger) IDS_PROPITEM_TXT_013289 you get an Perfect Tiger
so
nun die source sachen
MoverSkill.Cpp
unter
Code:
BOOL CMover::DoUseItem( DWORD dwData, DWORD dwFocusId, int nPart )
{
#ifdef __WORLDSERVER
if( IsDie() )
return FALSE;
#ifdef __S_SERVER_UNIFY
if( ((CUser*)this)->m_bAllAction == FALSE )
return FALSE;
#endif // __S_SERVER_UNIFY
WORD dwType = LOWORD( dwData );
WORD dwId = HIWORD( dwData );
CItemBase* pItemBase = GetItemId( dwId );
if( IsUsableItem( pItemBase ) == FALSE )
return FALSE;
CItemElem* pItemElem = (CItemElem*)pItemBase;
ItemProp* pItemProp = pItemBase->GetProp();
if( pItemProp->dwItemKind3 == IK3_LINK )
{
pItemProp = prj.GetItemProp( pItemProp->dwActiveSkill );
if( pItemProp == NULL )
return FALSE;
}
DWORD dwItemKind1 = pItemProp->dwItemKind1;
DWORD dwItemKind2 = pItemProp->dwItemKind2;
DWORD dwItemKind3 = pItemProp->dwItemKind3;
Code:
#ifdef __RAISE_PET
#ifdef __WORLDSERVER
BOOL bPet;
BYTE nKind;
CUser *pUser = ((CUser*)this);//Momentan User der die scroll auslöst
CPet* pPet = pUser->GetPet();//Pet hohlen
if( pPet && pUser->GetPet()->GetLevel() != PL_EGG )//IST ES HÖHER ALS EGG?
{
return FALSE;
}
if( pItemProp->dwID == II_SYS_LION )//LÖWE
{
nKind = 1;
bPet = FALSE;
}
else if( pItemProp->dwID == II_SYS_RABBIT )//HASE
{
nKind = 2;
bPet = FALSE;
}
else if( pItemProp->dwID == II_SYS_TIGER )//TIGER
{
nKind = 0;
bPet = TRUE;
}
else if( pItemProp->dwID == II_SYS_HORSE )//PFERD
{
nKind = 6;
bPet = TRUE;
}
else if( pItemProp->dwID == II_SYS_DRAGON )//DRACHE
{
nKind = 4;
bPet = TRUE;
}
else if( pItemProp->dwID == II_SYS_HIPPOGRIPH )//HIPPOGREIF
{
nKind = 5;
bPet = TRUE;
}
else if( pItemProp->dwID == II_SYS_FOX )//FUCHS
{
nKind = 3;
bPet = TRUE;
}
if( bPet == TRUE)//SCROLL OF RAISE PET ?
{
if( IsValidObj( pUser ) == FALSE )//FEHLER ABGFRAGE
return TRUE;
if( pPet == NULL ) //FEHLER ABFRAGE
return TRUE;
// kind
if( nKind >= PK_MAX ) //FEHLER ABFRAGE
return TRUE;
// exp
BYTE nExpRate = 99; //EXP RATE
BYTE nLevel = 5;// S KLASSE
if( nLevel > PL_S ) //FEHLER CODE ABFRAGE
return TRUE;
BYTE nLife; //LIFE
nLife = 99;//LEBEN AUF 99 SETZEN
CItemElem* pItemElem2 = pUser->GetPetItem();
pPet->SetKind( nKind );//ART DES PETS
pPet->SetLevel( nLevel );//LEVEL SETZEN
if( nLevel == PL_EGG )
pPet->SetKind( 0 ); // initialize
pItemElem2->m_dwItemId = pPet->GetItemId();
pPet->SetEnergy( pPet->GetMaxEnergy() );//MAXIMALE ENERGY
DWORD dwExp = pPet->GetMaxExp() * nExpRate / 100;
pPet->SetExp( dwExp );
for( int i = 0; i < 6; i++ )//LEVEL SETZEN
pPet->SetAvailLevel( i, 9 );
pPet->SetLife( nLife );//DIE LEBEN SETZEN
if( pUser->HasPet() )
pUser->RemovePet();//EGG REINHOHLEN
g_dpDBClient.CalluspPetLog( pUser->m_idPlayer, pItemElem2->GetSerialNumber(), 0, PETLOGTYPE_LEVELUP, pPet );
pUser->AddPet( pPet, PF_PET_GET_AVAIL ); // PET EINFÜGEN
g_UserMng.AddPetLevelup( pUser, MAKELONG( (WORD)pPet->GetIndex(), (WORD)pPet->GetLevel() ) ); // öâ
pUser->UpdateItem( (BYTE)pItemElem->m_dwObjId, UI_NUM, 0 );//SCROLL LÖSCHEN
return TRUE;
}
#endif//__WORLDSERVER
#endif//__RAISE_PET
Code:
#define __RAISE_PET