Items aus Kisten bekommen

05/12/2013 21:45 Sora White Dragon#1
Hallo allerseits,
ich denke viele von euch kennen es noch, dass es im Mas Dungeon von Flaris ein paar Kisten gibt. Diese sollen wohl mit einer bestimmten Wahrscheinlichkeit Items rausgeben. Ich habe dies mal Ingame getestet gehabt und habe bisher noch nichts rausbekommen. Mit dem Beast habe ich auch schon mal die Wahrscheinlichkeit dafür erhöht gehabt und auch mit anderen Items getestet. Leider bekam ich bisjetzt nie ein Item daraus.

Ist das System vllt buggy? Weiß das zufällig jemand?
05/13/2013 01:05 Chriѕ#2
Versuch die Wahrscheinlichkeit nicht im Beast sondern per resource zu erhöhen
Oder habe ich etwas falsch verstanden?
05/13/2013 07:03 SadPANDA.ツ#3
so etwas trägt man per Resource ein: propGiftbox.inc oder auch propPackItem.inc

Mfg SadPANDA
05/13/2013 15:25 Sora White Dragon#4
Quote:
Originally Posted by Metamoor View Post
Versuch die Wahrscheinlichkeit nicht im Beast sondern per resource zu erhöhen
Oder habe ich etwas falsch verstanden?
An der Wahrscheinlichkeit liegt es ja nicht. Diese ist auch nur per Beast und/oder Map-Dateien(im World Ordner) zu ändern.

Quote:
Originally Posted by SadPANDA.ツ View Post
so etwas trägt man per Resource ein: propGiftbox.inc oder auch propPackItem.inc

Mfg SadPANDA
In wie fern haben denn die Boxen etwas damit zu tun? Diese sind doch nur normale Items aus denen man wiederum weitere Items raus bekommen kann. Ich will ja nicht die Boxen als Drop auf dem Boden liegen lassen Oo Obwohl das ja auch mal ne Idee wäre.
Mir ging es aber darum, dass ich durch das anklicken eines Objektes (in diesem Fall: Schatzkiste) dann ein Item raus bekomme. Diese Funktion ist ja in Flyff schon seit v8 oder so gegeben? Immerhin stehen ja diese Schatkisten im Flaris Dungeon rum und haben ja eigentlich genau diesen zweck zu erfüllen. Ich würd nur gern wissen, ob jemand weiß wie man diese Kisten einstellen kann oder ob dieses System vllt einfach nur buggy ist
05/13/2013 19:50 Lumi#5
Wie SadPanda bereits sagte, kann man die Schatzkiste beliebig in der propGiftbox und/oder in der propPackItem.inc einstellen.
Ob es an der Wahrscheinlichkeit liegt muss du wohl genauer unter die Lupe nehmen.

In diesen beiden Dateien werden Items, in diesem Fall "Glücksboxen" oder ähnliches wie CS Sets, bearbeitet oder hinzugefügt. Bei deine Schatzkiste handelt es sich eher um eine Giftbox, daher sollte es in propGiftbox.inc zu finden sein.
05/13/2013 20:26 Sedrika#6
Glücksboxen -> propGiftBox.inc
Set/Item Boxen -> propPackItem.inc
05/13/2013 21:51 Tex0#7
Meine Güte, wie verdammt inkontinent seid ihr denn alle ?
es geht um diese Boxen:
[Only registered and activated users can see links. Click Here To Register...]

Um sie vorerst zu "fixen" tausche die Funktion:
void CCommonCtrl::DropItem()
mit dieser aus:
Code:
void CCommonCtrl::DropItem()
{
	//int nTotalNum = (xRandom(m_CtrlElem.m_dwMaxiItemNum - m_CtrlElem.m_dwMinItemNum) + m_CtrlElem.m_dwMinItemNum) + 1;
	int nTotalNum = 1;
	DWORD	dwAdjRand;

	for( int i=0; i<MAX_CTRLDROPITEM; i++ )
	{
		ItemProp* pItemProp = prj.GetItemProp( m_CtrlElem.m_dwInsideItemKind[i] );
		
		if( pItemProp == NULL )
		{
	#ifdef __YDEBUG
			Error( "CtrlProp(%s)ÀÇ ItemKind(%d)°ªÀÌ À߸øµÇ¾ú´Ù.", GetName(), m_CtrlElem.m_dwInsideItemKind[i] );
	#endif // __YDEBUG
			return;
		}

		dwAdjRand	= xRandom( 3000000000 );

		if( m_CtrlElem.m_dwInsideItemPer[i] >= dwAdjRand && nTotalNum )
		{
			CItemElem* pItemElem	= new CItemElem;
			pItemElem->m_dwItemId	= pItemProp->dwID;
			pItemElem->m_nItemNum	= 1;

			// ¸¶Áö¸· ½½·ÔÀº ·¹¾î¾ÆÀÌÅÛ¿ë½½·Ô ·¹¾î¾ÆÀÌÅÛÀº 1°³¸¦ ÃʰúÇÒ¼ö ¾ø´Ù.
			if( i == MAX_CTRLDROPITEM-1 )
			{
				if( pItemElem->m_nItemNum > 1 )
					pItemElem->m_nItemNum = 1;
			}

			nTotalNum -= pItemElem->m_nItemNum;
			//pItemElem->m_nHitPoint		= pItemProp->dwEndurance;

			pItemElem->SetAbilityOption( 0 );
			pItemElem->SetSerialNumber();
			CItem* pItem	= new CItem;

			pItem->m_pItemBase	= pItemElem;
			{
				pItem->m_idOwn			= m_nMoverID;
				pItem->m_dwDropTime		= timeGetTime();
			}
			pItem->m_bDropMob	= FALSE;
			if( pItem->m_pItemBase->m_dwItemId == 0 ) Error( "CCommonCtrl::DropItem SetIndex\n" );
			pItem->SetIndex( D3DDEVICE, pItem->m_pItemBase->m_dwItemId );
			
			D3DXVECTOR3	v3Pos = GetPos();

			FLOAT fRange = (float)xRandom(30)-15;

			fRange*=0.1f;

			v3Pos.x += fRange;
			v3Pos.z += fRange;
			pItem->SetPos( v3Pos );
			pItem->SetAngle( (float)( xRandom(360) ) );
			GetWorld()->ADDOBJ( pItem, TRUE, GetLayer() );
		}
	}

	m_CtrlElem.m_dwMaxiItemNum = 0;
}
dann geh in die Funktion
void CCommonCtrl::_ProcessAction()
und tausche sie aus mit:
Code:
void CCommonCtrl::_ProcessAction()
{
#ifdef __WORLDSERVER
	// Æ®·¦¼³Á¤ 
	if( m_bTrap )
		return;

	m_dwTrapProcessTime = g_tmCurrent + m_CtrlElem.m_dwTrapDelay;

	
	// ¾ÆÀÌÅÛ, ¸ó½ºÅÍ µå·Ó
	if( m_CtrlElem.m_dwMinItemNum > 0 && m_CtrlElem.m_dwMaxiItemNum >= m_CtrlElem.m_dwMinItemNum )
	{
		DropItem();
	}

	//DropNPC();	
#endif //__WORLDSERVER	
}
05/13/2013 22:21 Buffmebuffyou#8
Hatte hier schonmal was diesbezüglich geschrieben:
[Only registered and activated users can see links. Click Here To Register...]

Außerdem denke ich dass du auch den Cache Server neustarten musst, damit die DropChance übernommen wird.

@Vorposter: Bei mir funktionieren die Boxen schon immer perfekt, was gibts da zu fixen?
05/13/2013 22:40 Tex0#9
Hat bei mir normal nicht geklappt also hab ich es "gefixt"