Fix Blessing Bind and text error

Newbie Spellweaver
Joined
Jan 3, 2015
Messages
9
Reaction score
1
I have a v15 source

And I edited the blessing

1. It worked fine but I noticed that the item is now bind to the character
"? Blessing items cannot be dropped, traded, or placed in a Bank."
How can I remove it?

2. DST_ATTACKSPEED 7 {
10 600000000
15 300000000
20 100000000
}

But it shows up +0% Attack speed ingame.
How can I change it so the bonus will properly show up
 
Last edited:
Attack speed divides the value by 20. So setting it to 500 would make it equal 25.

Also, look for "isBinds" and you'll eventually see where it calls if the item has such a random option of the blessing variety.
 
Attack speed divides the value by 20. So setting it to 500 would make it equal 25.

Also, look for "isBinds" and you'll eventually see where it calls if the item has such a random option of the blessing variety.

I guess this is what I'm trying to find?
BOOL CItemElem::IsBinds( void )
{
ItemProp* pProperty = GetProp();
if( m_dwKeepTime && pProperty->dwItemKind2 != IK2_WARP )
return TRUE;


if( (pProperty->dwFlag & IP_FLAG_BINDS) == IP_FLAG_BINDS )
return TRUE;


if( IsFlag( CItemElem::binds ) )
return TRUE;


#if __VER >= 11 // __SYS_IDENTIFY
if( g_xRandomOptionProperty->GetRandomOptionSize( GetRandomOptItemId() ) > 0
&& ( g_xRandomOptionProperty->GetRandomOptionKind( this ) == CRandomOptionProperty::eBlessing || g_xRandomOptionProperty->GetRandomOptionKind( this ) == CRandomOptionProperty::eEatPet ) )
return TRUE;
if( GetLevelDown() < 0 )
return TRUE;
#endif // __SYS_IDENTIFY


return FALSE;
}

to remove bind, I only need to change return TRUE; to return FALSE;
below
&& ( g_xRandomOptionProperty->GetRandomOptionKind( this ) == CRandomOptionProperty::eBlessing || g_xRandomOptionProperty->GetRandomOptionKind( this ) == CRandomOptionProperty::eEatPet ) )

Correct?
 
Could just remove that part dealing with the random option rather returning false as it will return false if it doesnt meet the other criteria anyway.
 
Could just remove that part dealing with the random option rather returning false as it will return false if it doesnt meet the other criteria anyway.

Okay. Thanks! =)

EDIT: I think its not the right one to remove. Bind did not remove.
 
Last edited:
you're almost there..

remove the red part.
Code:
BOOL CItemElem::IsBinds( void )
{
	ItemProp* pProperty = GetProp();
	if( m_dwKeepTime && pProperty->dwItemKind2 != IK2_WARP )
		return TRUE;

	if( (pProperty->dwFlag & IP_FLAG_BINDS) == IP_FLAG_BINDS )
		return TRUE;

	if( IsFlag( CItemElem::binds ) )
		return TRUE;

#if __VER >= 11 // __SYS_IDENTIFY
	if( g_xRandomOptionProperty->GetRandomOptionSize( GetRandomOptItemId() ) > 0
		&& ( [COLOR="#FF0000"]g_xRandomOptionProperty->GetRandomOptionKind( this ) == CRandomOptionProperty::eBlessing ||[/COLOR] g_xRandomOptionProperty->GetRandomOptionKind( this ) == CRandomOptionProperty::eEatPet ) )
		return TRUE;
	if( GetLevelDown() < 0 )
		return TRUE;
#endif	// __SYS_IDENTIFY

	return FALSE;
}
 
You're wrong. By deleting the part in red it would only check for the kind to be a pet unless you also remove that and if the size of the Id is greater than 0 and the return true below. Then awakes won't even be mentioned in the code that must return true for an item to be binded.
 
Back