Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Adding Raised Pet

One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
Hello!
In this thread I will explain how you add a new raised pet with a new Attribute.

I will add the coding in a way for you to be able to remove very easy by commenting the define in versioncommon.h :)

We will be adding the Attribute "SPEED+ "

Keep in mind that I use v19 flyff files so files may vary a bit from yours (like propitem.txt (/spec_item.txt))

We will start with the Source:

BLUE = FIND
RED = ADD
GREEN = EDIT
PURTPLE = INFORMATION

WndManager.cpp
Find:
Code:
[COLOR="#0000FF"]
				case DST_HP_MAX:
					dwTooltip = TID_TOOLTIP_DST_HP_MAX;
					break;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWRAISEDPETSPEED
				case DST_SPEED:
					dwTooltip = TID_TOOLTIP_SPEED;
					break;
#endif //__NEWRAISEDPETSPEED[/COLOR]
WndWorld.cpp
Find:
Code:
[COLOR="#0000FF"]
			case DST_HP_MAX:
				dwTooltip = TID_TOOLTIP_DST_HP_MAX;
				break;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWRAISEDPETSPEED
			case DST_SPEED:
				dwTooltip = TID_TOOLTIP_SPEED;
				break;
#endif //__NEWRAISEDPETSPEED[/COLOR]
WndPetSys.h
Find:
Code:
[COLOR="#0000FF"]#define MAX_PET_CLASS 7[/COLOR]
Edit It To:
Code:
[COLOR="#008000"]#ifdef __NEWRAISEDPETSPEED
#define MAX_PET_CLASS 8
#else //__NEWRAISEDPETSPEED
#define MAX_PET_CLASS 7
#endif //__NEWRAISEDPETSPEED[/COLOR]
WndPetSys.cpp
Part 1
Find:
Code:
	[COLOR="#0000FF"]m_PetCameTable[6].CamPos.x = 4.0f;
	m_PetCameTable[6].CamPos.y = 3.0f;
	m_PetCameTable[6].CamPos.z = -10.0f;
	m_PetCameTable[6].CamLook.x = -6.0f;
	m_PetCameTable[6].CamLook.y = 6.0f;
	m_PetCameTable[6].CamLook.z = 3.0f;
	m_PetCameTable[6].Scale = 5.0f;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWRAISEDPETSPEED
	// Xakzi Pet Speed
	m_PetCameTable[7].CamPos.x = [COLOR="#800080"][B][U]1.2[/U][/B][/COLOR]f;
	m_PetCameTable[7].CamPos.y = [COLOR="#800080"][B][U]4.6[/U][/B][/COLOR]f;
	m_PetCameTable[7].CamPos.z = [COLOR="#800080"][B][U]-7.0[/U][/B][/COLOR]f;
	m_PetCameTable[7].CamLook.x = [COLOR="#800080"][B][U]-2.4[/U][/B][/COLOR]f;
	m_PetCameTable[7].CamLook.y = [COLOR="#800080"][B][U]3.0[/U][/B][/COLOR]f;
	m_PetCameTable[7].CamLook.z = [COLOR="#800080"][B][U]0.0[/U][/B][/COLOR]f;
	m_PetCameTable[7].Scale = [COLOR="#800080"][B][U]6.0[/U][/B][/COLOR]f;
#endif //__NEWRAISEDPETSPEED[/COLOR]

If pet's face is not in pet window, edit these to position it right
Part 2
Find:
Code:
[COLOR="#0000FF"]
			case DST_HP_MAX:
				dwTooltip = TID_TOOLTIP_HP;
				break;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWRAISEDPETSPEED
			case DST_SPEED:
				dwTooltip = TID_TOOLTIP_SPEED;
				break;
#endif //__NEWRAISEDPETSPEED[/COLOR]
Part 3
Find:
Code:
[COLOR="#0000FF"]
				case DST_HP_MAX:
					dwTooltip = TID_TOOLTIP_DST_HP_MAX;
					break;[/COLOR]
Under It Add:
Code:
[COLOR="#FF0000"]#ifdef __NEWRAISEDPETSPEED
				case DST_SPEED:
					dwTooltip = TID_TOOLTIP_SPEED;
					break;
#endif //__NEWRAISEDPETSPEED[/COLOR]
VersionCommon.h (NEUZ & WORLDSERVER)
Code:
[COLOR="#FF0000"]#define __NEWRAISEDPETSPEED[/COLOR]
define.h
Find:
Code:
[COLOR="#0000FF"]#define PK_MAX	7[/COLOR]
Change It To:
Code:
[COLOR="#008000"]#ifdef __NEWRAISEDPETSPEED
#define PK_XAKZI	7
#define	PK_MAX		8	
#else //__NEWRAISEDPETSPEED
#define PK_MAX	7
#endif //__NEWRAISEDPETSPEED[/COLOR]

Resource:

pet.inc
Code:
[COLOR="#000000"]DST_SPEED[/COLOR]		[COLOR="#FF0000"]1	2	4	7	11	16	22	29	37[/COLOR]	[COLOR="#0000FF"]II_PET_XAKZI01[/COLOR]	[COLOR="#008000"]MI_PET_XAKZI01	MI_PET_XAKZI01_1	MI_PET_XAKZI01_2[/COLOR]	[COLOR="#800080"]900[/COLOR]
Colors = Explanation

Given Attribute To Pet
Given Attribute Per Level To Pet
ID Added To DefineItem.h & PropItem.txt(/Spec_Item.txt) & mdlDyna.inc
ID Added To DefineObj.h & PropMover.txt & mdlDyna.inc
Chance Of Getting Pet From Egg
spec_item.txt
Code:
[COLOR="#FF0000"]8	II_PET_XAKZI01	IDS_XAKZIITEM_TXT_000001	1	1	IK1_GENERAL	IK2_GENERAL	IK3_EGG	=	1	1	=	1	=	=	=	=	=	=	=	0	=	=	=	=	=	=	1	=	PK_TIGER	=	=	_NONE	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	=	WUI_NOW	=	=	=	=	=	=	=	=	=	0	0	0	0	0	0	=	=	=	=	=	=	=	=	=	=	=	=	1	=	SND_ITEM_GNEATFOOD	=	"""Itm_PetWhiteTiger01.dds"""	0	""""""	IDS_XAKZIITEM_TXT_0000021	300	0	0	1	0	0	0	1	0	2	=	=	=	=	=	=	=	=	=	=	1	1	1	1	1	0	ITEM_GRADE_NORMAL	1	TYPE1_PET	TYPE2_PET_EGG	1	0	0	0[/COLOR]
propItem.txt.txt
Code:
[COLOR="#FF0000"]IDS_XAKZIITEM_TXT_000001	Xakzi Cage
IDS_XAKZIITEM_TXT_000002	This ferocious Beast will increase your SPEED.[/COLOR]
defineItem.h
Code:
[COLOR="#FF0000"]#define	II_PET_XAKZI01	[COLOR="#800080"][B][U]36010[/U][/B][/COLOR][/COLOR]

[COLOR="#800080"][B][U]The chosen numbers may only exist one time (if duplicated change it)[/U][/B][/COLOR]
mdlDyna.inc
Part 1
Code:
[COLOR="#FF0000"]"GenMatSuitbox"      II_PET_XAKZI01	MODELTYPE_MESH "" 0  MD_NEAR 0  1.0f 0 1 ATEX_NONE 1[/COLOR]
Part 2
Code:
[COLOR="#FF0000"]PetWhiteTiger01		MI_PET_XAKZI01	MODELTYPE_ANIMATED_MESH	""	0	MD_MID	0	1.1f	0	1	ATEX_NONE	1
	{
		"stand"     MTI_STAND 
		"walk"      MTI_WALK 
		"idle1"     MTI_IDLE1 
		"idle1"     MTI_IDLE2
		"dmg1"      MTI_DMG1
		"dmg2"      MTI_DMG2
		"dmgFly"    MTI_DMGFLY
		"dmgDie"    MTI_DMGDIE
		"dmgLive"   MTI_DMGLIVE
		"die1"      MTI_DIE1
		"atk1"      MTI_ATK1
		"atk2"      MTI_ATK2
		"atk1"      MTI_ATK3
		"groggy"    MTI_GROGGY

		// extra
		"walk"      MTI_JUMP1 
		"walk"      MTI_JUMP2 
		"walk"      MTI_JUMP3 
		"walk"      MTI_JUMP4 
		"walk"      MTI_RUN
	}

  	PetWhiteTiger01		MI_PET_XAKZI01_1	MODELTYPE_ANIMATED_MESH	""	0	MD_MID	0	1.1f	0	1	ATEX_01	1
	{
		"stand"     MTI_STAND 
		"walk"      MTI_WALK 
		"idle1"     MTI_IDLE1 
		"idle1"     MTI_IDLE2
		"dmg1"      MTI_DMG1
		"dmg2"      MTI_DMG2
		"dmgFly"    MTI_DMGFLY
		"dmgDie"    MTI_DMGDIE
		"dmgLive"   MTI_DMGLIVE
		"die1"      MTI_DIE1
		"atk1"      MTI_ATK1
		"atk2"      MTI_ATK2
		"atk1"      MTI_ATK3
		"groggy"    MTI_GROGGY

		// extra
		"walk"      MTI_JUMP1 
		"walk"      MTI_JUMP2 
		"walk"      MTI_JUMP3 
		"walk"      MTI_JUMP4 
		"walk"      MTI_RUN
	}

  	PetWhiteTiger01		MI_PET_XAKZI01_2	MODELTYPE_ANIMATED_MESH	""	0	MD_MID	0	1.1f	0	1	ATEX_02	1
	{
		"stand"     MTI_STAND 
		"walk"      MTI_WALK 
		"idle1"     MTI_IDLE1 
		"idle1"     MTI_IDLE2
		"dmg1"      MTI_DMG1
		"dmg2"      MTI_DMG2
		"dmgFly"    MTI_DMGFLY
		"dmgDie"    MTI_DMGDIE
		"dmgLive"   MTI_DMGLIVE
		"die1"      MTI_DIE1
		"atk1"      MTI_ATK1
		"atk2"      MTI_ATK2
		"atk1"      MTI_ATK3
		"groggy"    MTI_GROGGY

		// extra
		"walk"      MTI_JUMP1 
		"walk"      MTI_JUMP2 
		"walk"      MTI_JUMP3 
		"walk"      MTI_JUMP4 
		"walk"      MTI_RUN
	}[/COLOR]
propMover.txt
Code:
[COLOR="#FF0000"]MI_PET_XAKZI01	IDS_XAKZIMOVER_TXT_000001	AII_EGG	15	20	39	33	24	20	=	BELLI_PEACEFUL	=	1	=	=	RANK_LOW	0	=	1	=	1	1	=	=	=	=	0.6	0	=	=	=	=	=	1000	4000	2297	100	19	130	0	=	1	1	=	0.1	=	0	=	=	=	13	0	0	0.3	-0.3	0	30	=	=	=	=	13	0	0	=	=	1	II_WEA_HAN_HAND	VT_ITEM	=	=	=	=	=	=	=	=	SND_ITEM_ANIMAL 	SND_PC_DMGWANB	=	=	=	IDS_XAKZIMOVER_TXT_000002	=	=	31
MI_PET_XAKZI01_1	IDS_XAKZIMOVER_TXT_000003	AII_EGG	15	20	39	33	24	20	=	BELLI_PEACEFUL	=	1	=	=	RANK_LOW	0	=	1	=	1	1	=	=	=	=	0.6	0	=	=	=	=	=	1000	4000	2297	100	19	130	0	=	1	1	=	0.1	=	0	=	=	=	13	0	0	0.3	-0.3	0	30	=	=	=	=	13	0	0	=	=	1	II_WEA_HAN_HAND	VT_ITEM	=	=	=	=	=	=	=	=	SND_ITEM_ANIMAL 	SND_PC_DMGWANB	=	=	=	IDS_XAKZIMOVER_TXT_000004	=	=	31
MI_PET_XAKZI01_2	IDS_XAKZIMOVER_TXT_000005	AII_EGG	15	20	39	33	24	20	=	BELLI_PEACEFUL	=	1	=	=	RANK_LOW	0	=	1	=	1	1	=	=	=	=	0.6	0	=	=	=	=	=	1000	4000	2297	100	19	130	0	=	1	1	=	0.1	=	0	=	=	=	13	0	0	0.3	-0.3	0	30	=	=	=	=	13	0	0	=	=	1	II_WEA_HAN_HAND	VT_ITEM	=	=	=	=	=	=	=	=	SND_ITEM_ANIMAL 	SND_PC_DMGWANB	=	=	=	IDS_XAKZIMOVER_TXT_000006	=	=	31[/COLOR]
propMover.txt.txt
Code:
[COLOR="#FF0000"]IDS_XAKZIMOVER_TXT_000001	Baby Xakzi
IDS_XAKZIMOVER_TXT_000002	
IDS_XAKZIMOVER_TXT_000003	Xakzi
IDS_XAKZIMOVER_TXT_000004
IDS_XAKZIMOVER_TXT_000005	[Captain] Xakzi[/COLOR]
defineObj.h
Code:
[COLOR="#FF0000"]#define	MI_PET_XAKZI01							[COLOR="#800080"][B][U]756[/U][/B][/COLOR]
#define	MI_PET_XAKZI01_1						[COLOR="#800080"][B][U]757[/U][/B][/COLOR]		
#define	MI_PET_XAKZI01_2						[COLOR="#800080"][B][U]758[/U][/B][/COLOR][/COLOR]

[COLOR="#800080"][B][U]The chosen numbers may only exist one time (if duplicated change it)[/U][/B][/COLOR]

transformitem.inc
Code:
[COLOR="#FF0000"]10000	TI_PET	PK_XAKZI	1	0	0[/COLOR]

[COLOR="#800080"][B][U]Add this line under last PK_*[/U][/B][/COLOR]

Hope it helps some :)
 
Last edited:
Skilled Illusionist
Joined
Nov 29, 2009
Messages
368
Reaction score
15
Nice guide Xakzi,

Its nice to see people releasing things still.

Also for those who may just wish to change the Effect of the current Raised pets, this guide is also helpful (needed to add the extra defines to the dwDstParam switch).
Although i can't understand why Gala decided to do it this way for Pets as there is already an entire match system for dwDstParam and their TextClient counter part?
 
Initiate Mage
Joined
Jan 28, 2016
Messages
40
Reaction score
2
wow. definitely gonna try this one too. since your guide for changing the existing attribute works perfectly this one adding a entirely new raised pet is going to be perfectly working no doubt! THANK YOU Xakzi
 
Initiate Mage
Joined
Apr 13, 2011
Messages
47
Reaction score
0
There no need for downloading any more additional content just adding codes?
 
One word! Im Fawkin Pro!
Member
Joined
Jul 1, 2010
Messages
1,254
Reaction score
359
There no need for downloading any more additional content just adding codes?

Yes.. and you choose the model of the pet in mdldyna (PART 2) I used PetWhiteTiger01 in this example.
And you will most likely create 2 new textures (different colors on each 2 levels for the pet)
just check how many .dds files on any other pets, not hard to understand :)
 
Initiate Mage
Joined
Apr 13, 2011
Messages
47
Reaction score
0
Yes.. and you choose the model of the pet in mdldyna (PART 2) I used PetWhiteTiger01 in this example.
And you will most likely create 2 new textures (different colors on each 2 levels for the pet)
just check how many .dds files on any other pets, not hard to understand :)

So I just need to inject it to my datares too in the client?
 
Back
Top