Scroll of Fix Awakening "Problem"

11/09/2014 13:57 Marc~#1
Hallöchen Epvpers,
Ich möchte etwas an meiner [Only registered and activated users can see links. Click Here To Register...] ändern:

Mein Problem ist es das man derzeitig mit der F.A. Scroll alle Setparts erwecken kann -> Adoch auf Hat/Gaunts und Stats auf Boots und Gaunts.
Kommen wir zu meinem Ziel:
Wie man sich denken kann, ist es Crap das Blades z.B. auf Gaunts etc. ADOCH awaken können und deswegen möchte ich mithilfe einer simplen Abfrage dieses ändern. Nur bin ich zu dumm dazu, ich habs schon versucht und bin son bisschen gescheitert.



Mein Ansatz war es etwas an den case's zu verändern :$
Sah so aus:

Tut mir leid für diejenigen die sich so heftig einen Facepalm geben das sie einen Kopf kürzer sind. xD
11/09/2014 14:10 BinayFlyff#2
Code:
#ifdef __WEZZY_FIX_AWAKE_SCROLL
BOOL CDPSrvr::DoUseItemTarget_WezzyFixAwakeningScroll( CUser* pUser, CItemElem* pMaterial, CItemElem* pTarget )
{
        int nRandomOptionKind = g_xRandomOptionProperty->GetRandomOptionKind( pTarget );
 
        if( nRandomOptionKind >= 0 )
        {
                g_xRandomOptionProperty->InitializeRandomOption( pTarget->GetRandomOptItemIdPtr() ); //Reset awake

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
////////////////////////////////////////////////// |Weapons|Armor|Shield| /////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


                if( pTarget->GetProp()->dwItemKind1 == IK1_WEAPON || pTarget->GetProp()->dwItemKind2 == IK2_ARMORETC || pTarget->GetProp()->dwItemKind2 == IK2_ARMOR || pTarget->GetProp()->dwItemKind3 == IK3_SHIELD )
                {
			if( pTarget->GetProp()->dwItemKind1 == IK1_WEAPON || pTarget->GetProp()->dwItemKind2 == IK3_SHIELD || pTarget->GetProp()->dwItemKind2 == IK3_SUIT )
			{//Wenn Waffe Shield.. blabla ist
				switch(pMaterial->m_dwItemId)
				{
					case II_SYS_N_AWAKEFIX_STR://wenn Awakefix für STR
 	                                       g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 30 );
 	                                       g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 30 );
 	                                       g_xRandomOptionProperty->SetParam( pTarget->GetRandomOptItemIdPtr(), DST_STR, 30 );
					break;
					case II_SYS_N_AWAKEFIX_STA://wenn Awakefix für STA
						//sta.. setzen
					break;
					case II_SYS_N_AWAKEFIX_DEX://wenn Awakefix für DEX
						//dex setzen
					break;
					case II_SYS_N_AWAKEFIX_INT://wenn Awakefix für INT
						//int setzen
					break;
					Default:
						pUser->AddText("Du willst etwas auf die Waffe erwecken was kein sinn ergbit ?! Dumm!??!?!");
						return FALSE;
				}
			}
                }
                else
                {
                        pUser->AddText( "Du hast einen Fehler gemacht!" );
                        return FALSE;
                }
                pUser->UpdateItemEx( (BYTE)( pTarget->m_dwObjId ), UI_RANDOMOPTITEMID, pTarget->GetRandomOptItemId() );
                return TRUE;
        }
        return FALSE;
}
#endif // __WEZZY_FIX_AWAKE_SCROLL
Theoretisch kannst auch direkt noch die erste IF-clausel droppen da andere items sowieso bei der nächsten Clausel und dem Switch nicht greifen würden (insofern du kein scheis baust).