You last visited: Today at 07:39
Advertisement
[Source Release]Scroll of Raise Pet
Discussion on [Source Release]Scroll of Raise Pet within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.
04/22/2012, 13:12
#1
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
[Source Release]Scroll of Raise Pet
Hier mal die Info zur Scroll
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
evtl müsst ihr die ID's anpassen das sie nicht doppelt bei euch vorkommen
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
propitem.txt.txt
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;
fügt ihr das ein
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
jetz noch in VersionCommon.h
Code:
#define __RAISE_PET
04/22/2012, 13:43
#2
elite*gold: 255
Join Date: Mar 2008
Posts: 2,184
Received Thanks: 978
Nice release
04/22/2012, 14:26
#3
elite*gold: 30
Join Date: May 2011
Posts: 521
Received Thanks: 69
super realease funkt
04/22/2012, 14:37
#4
elite*gold: 59
Join Date: Aug 2009
Posts: 1,595
Received Thanks: 490
Wärs nich sinnvoller n Hatching Promoter zu erweitern mit nem Fenster in dem Abgefragt wird welches Pet man will anstatt für jedes Pet ne eigene Rolle zu machen? o.O
04/22/2012, 14:44
#5
elite*gold: 30
Join Date: May 2011
Posts: 521
Received Thanks: 69
achja und das Pet kann man bei mri nicht mehr reinholen(nur per "Pet abbrechen") und nach einem relogg hat es kein icon mehr ^^
04/22/2012, 17:57
#6
elite*gold: 0
Join Date: Nov 2010
Posts: 85
Received Thanks: 31
Wollt dich nur daraufhinweisen dass du II_SYS_HORSE vergessen hast zu definieren. (Probitem.txt ,DefineItem.h)
Man merkt es spätestens beim compilen
04/22/2012, 18:15
#7
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
kleiner fix:
Quote:
Originally Posted by
Jopsi332
Code:
pItemElem->m_dwItemId = pPet->GetItemId();
zu
Code:
pItemElem[COLOR="Red"]2[/COLOR]->m_dwItemId = pPet->GetItemId();
dann speichert es auch richtig
und dass hier sollte mit in die if( bPet == TRUE) abfrage
Code:
if( pPet && pUser->GetPet()->GetLevel() != PL_EGG )//IST ES HÖHER ALS EGG?
{
return FALSE;
}
sonst kann es zu komplikationen mit den anderen sachen in der funktion kommen
04/22/2012, 18:23
#8
elite*gold: 0
Join Date: Oct 2011
Posts: 178
Received Thanks: 113
PHP Code:
if( pPet && pUser -> GetPet ()-> GetLevel () != PL_EGG ) //IST ES HÖHER ALS EGG?
{
return FALSE ;
}
if( IsValidObj ( pUser ) == FALSE ) //FEHLER ABGFRAGE
return TRUE ;
if( pPet == NULL ) //FEHLER ABFRAGE
return TRUE ;
Mal returnst du TRUE mal FALSE, konntest dich nicht entscheiden, wa? XD
Mal davon abgesehn, dein Kommentar bei der Abfrage ob das Level höher ist als das eines Ei's.
PHP Code:
if( pPet && pUser -> GetPet ()-> GetLevel () != PL_EGG ) //IST ES HÖHER ALS EGG?
Du überprüffst NUR ob es NICHT Egg ist, nicht obs höher ist .. also könnte theoretisch der Wert auch unter PL_EGG sein, wenn mans macht dann richtig.
Ein weiter release, der mir zeigt das deine Quellcode's fürn Arsch sind, und das niemand was bei dir kaufen sollte, da deine programmier - Erfahrung immernoch genau so wenig wie vorher ist.
Mal davon abgesehn wäre ein switch bei soviele else if besser angebracht.
04/22/2012, 18:33
#9
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
hab ich auch schon gemerkt das switch besser wäre aber ob der kommentra jetz höher oder ungleich ist ist egal theoretisch da die abfrage richtig ist.
04/22/2012, 18:45
#10
elite*gold: 0
Join Date: Oct 2008
Posts: 680
Received Thanks: 337
Wenn du es besser weißt, wieso benutzt du dann kein Switch? Der Kommentar zeigt auch wie viel Ahnung du von deinem eigenem Code hast.
04/22/2012, 18:57
#11
elite*gold: 0
Join Date: Oct 2009
Posts: 4,851
Received Thanks: 3,417
Ist ne starke Idee, leider zu schwer umgesetzt. Anstatt so viele Rollen zu machen, sollte man einfach ein Fenster haben in dem man alles auswählen kann. Ist zwar ne große Arbeit, ist aber sehr benutzerfreundlich und zudem Unique. (:
~Greetings
04/22/2012, 19:12
#12
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by
Flyff_Service
Wenn du es besser weißt, wieso benutzt du dann kein Switch? Der Kommentar zeigt auch wie viel Ahnung du von deinem eigenem Code hast.
weils mir erst aufgefallen ist beim reinstellen hier.
04/22/2012, 19:41
#13
elite*gold: 0
Join Date: Nov 2011
Posts: 395
Received Thanks: 233
Quote:
Originally Posted by
Jopsi332
weils mir erst aufgefallen ist beim reinstellen hier.
Dann änder es doch kurz? Oder kannst du das selber nicht? :S
Warum für jedes Pet ne eigene Scroll, ist doch unnötig o.O
04/22/2012, 19:53
#14
elite*gold: 6
Join Date: Jun 2008
Posts: 309
Received Thanks: 34
habe es mal nen bisschen verändert und erweitert, ist zwar immernoch ohne fenster aber naja hf
04/22/2012, 20:14
#15
elite*gold: 4
Join Date: Mar 2010
Posts: 3,148
Received Thanks: 1,535
Quote:
Originally Posted by
Unleashed!
Dann änder es doch kurz? Oder kannst du das selber nicht? :S
Warum für jedes Pet ne eigene Scroll, ist doch unnötig o.O
faulheit triffts eher.
Similar Threads
[Source Release]Scroll of Unbinding
05/11/2013 - Flyff PServer Guides & Releases - 60 Replies
Hallo
Da in letzter zeit nur mist wegen Unbinding Scroll gepostet wurde.
Poste ich jetzt hier eine 100%tig funktionierende Scroll.
Das die Seelengebundenheit euer Waffe entfernt.
[Source TUT]Scroll of Unbinding
02/14/2012 - Flyff Private Server - 6 Replies
Da in einem anderen Thread dannach gefragt wurde hier:
WndField.Cpp
CWndUnbind::CWndUnbind void )
{
m_pItemElem = NULL;
m_pTexture = NULL;
}
CWndUnbind::~CWndUnbind( void )
[Source Request] Scroll of Unbinding
02/13/2012 - Flyff Private Server - 10 Replies
Moin Community,
Ich hab da mal 'ne Frage: Hat wer von euch die Unbinding Scroll
und rückt sie (auch ggn. Bezahlung) raus?
Nein, die von Etioom funktioniert nicht.
Das ist auch eindeutig zu wenig Quelltext meiner Meinung nach.
[Source TuT] /gro mit kosten 'ala' Scroll of Awakening
01/07/2012 - Flyff Private Server - 12 Replies
Damit der /gro Befehl genau wie die Scroll of Awakening einen Betrag für die Erweckung verlangt muss lediglich die Funktion
BOOL TextCmd_GenRandomOption( CScanner & s )
in der FuncTextCmd
wie folgt umgeschrieben/ausgetauscht werden werden:
All times are GMT +2. The time now is 07:39 .