New Stackable Amplis

12/30/2012 16:10 Crowley™#1
Hey Leute, habe folgendes Problem bei diesen defines
Code:
//	mulcom	END100125	À̺¥Æ®¿ë ¸®½ºÅ³ ¹× À̺¥Æ®¿ë ¸®½ºÅׯ® »ç¿ë ³»¿ª¿¡ ´ëÇÑ ·Î±× Ãß°¡
							//////////////////////////////////////////////////////////////////////////
						}
					}
				}
				break;
#ifdef __NEW_PROP_PARAMETER
			case IK2_ONCE:
				{
					int nResult = 0;
					nResult = DoUseItemOnce( pItemProp, pItemElem, nPart );
					{
						if( 0 < nResult )
						{
							if( nResult == 2 )
							{
								((CUser*)this)->AddDefinedText( TID_GAME_LIMITED_USE, "" ); // »ç¿ëÁßÀ̾î¼* »ç¿ëÇÒ¼ö ¾øÀ½
							}
							else if( nResult == 3 )
							{
								((CUser*)this)->AddDefinedText( TID_GAME_NOTOVERLAP_USE, "" ); // ÀÌ ¾ÆÀÌÅÛ°ú´Â Áߺ¹ÇÏ¿© »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù
							}
							return FALSE;
						}
					}
				}
				break;
			case IK2_KEEP:
				{
#ifndef __NEW_STACKABLE_AMPS
					int nResult = 0;
					nResult = DoUseItemSystem( pItemProp, pItemElem, nPart );
					{
						if( 0 < nResult )
						{
							if( nResult == 2 )
							{
								((CUser*)this)->AddDefinedText( TID_GAME_LIMITED_USE, "" ); // »ç¿ëÁßÀ̾î¼* »ç¿ëÇÒ¼ö ¾øÀ½
							}
							else if( nResult == 3 )
							{
								((CUser*)this)->AddDefinedText( TID_GAME_NOTOVERLAP_USE, "" ); // ÀÌ ¾ÆÀÌÅÛ°ú´Â Áߺ¹ÇÏ¿© »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù
							}
							return FALSE;
						}
					}
#else //  __NEW_STACKABLE_AMPS
					int nResult = 0;
					nResult = DoUseItemKeep( pItemProp, pItemElem, nPart );
					{
						if( 0 < nResult )
						{

							if( nResult == 1 )
							{
								CString str;
								str.Format( "%d - %d", pItemProp->nMinLimitLevel, pItemProp->nMaxLimitLevel );
								((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSELEVEL, "\"%s\"", str ); // 
								return FALSE;
							}
							else if( nResult == 2 )
							{
								((CUser*)this)->AddDefinedText( TID_GAME_LIMITED_USE, "" ); // »ç¿ëÁßÀ̾î¼* »ç¿ëÇÒ¼ö ¾øÀ½
								return FALSE;
							}
							else if( nResult == 3 )
							{
								CString str;
								str.Format( "%d", GetLevel());
								CString szMaxBuf;
								szMaxBuf.Format( "%d", pItemProp->nMaxDuplication );
								((CUser*)this)->AddDefinedText( TID_GAME_EXP_NOTUSE, "\"%s\" \"%s\"", str, szMaxBuf ); // 
								//((CUser*)this)->AddDefinedText( TID_GAME_NOTOVERLAP_USE, "" ); // ÀÌ ¾ÆÀÌÅÛ°ú´Â Áߺ¹ÇÏ¿© »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù
								return FALSE;
							}
							else if( nResult == 4 )
							{
								int nExtraEXP = 0;
								for( MAPBUFF::iterator i = m_buffs.m_mapBuffs.begin(); i != m_buffs.m_mapBuffs.end(); ++i )
								{
									ItemProp* pAmpProp = prj.GetItemProp( i->second->GetId());

									if( pAmpProp )
									{
										if( pAmpProp->dwItemKind3 == IK3_EXP_RATE )
										{
											nExtraEXP += pAmpProp->nEffectValue;
										}
									}
								}
								CString strTemp;
								strTemp.Format( "%s %d%% %s", prj.GetText( TID_GAME_EXPITEM_TOOLTIP ), nExtraEXP, prj.GetText( TID_GAME_EXPITEM_TOOLTIP1 ) );
								((CUser*)this)->AddText( strTemp ); // 
							}
						}
					}
#endif // __NEW_STACKABLE_AMPS
				}
				break;
#endif // __NEW_PROP_PARAMETER

Code:
#ifdef __NEW_PROP_PARAMETER
int CMover::DoUseItemOnce( ItemProp* pItemProp, CItemElem* pItemElem, int nPart)
{
	int nResult = 0;
#ifdef __WORLDSERVER
	if( HasBuffByIk3( pItemProp->dwItemKind3 ))
		nResult = 2;
	else
		DoApplySkill( (CCtrl*)this, pItemProp, NULL );
#endif // __WORLDSERVER
	return nResult;
}
int CMover::DoUseItemKeep( ItemProp* pItemProp, CItemElem* pItemElem, int nPart)
{
#ifdef __WORLDSERVER
#ifdef __NEW_STACKABLE_AMPS
// First Check how many Amps are currently active.
	int nAmount = 0;

	for( MAPBUFF::iterator i = m_buffs.m_mapBuffs.begin(); i != m_buffs.m_mapBuffs.end(); ++i )
	{
		ItemProp* pItemProp = prj.GetItemProp( i->second->GetId());

		if( pItemProp )
		{
			if( pItemProp->dwItemKind3 == IK3_EXP_RATE )
			{
				nAmount++;
			}
		}
	}
// Cant hold more Amps
	if( nAmount >= MAX_AMP_STACK_COUNT )
	{
		return 2;
	}
// Check Level
	if( GetLevel() < pItemProp->nMinLimitLevel || GetLevel() > pItemProp->nMaxLimitLevel )
	{
		return 1;
	}
// Can hold more Amps. Try activating scroll
	if( HasBuff( BUFF_ITEM, (WORD) ( pItemProp->dwID )))
	{
		MAPAMPSTORE::iterator i	= prj.m_mapAmpStore.find( pItemProp->dwID );
		if( i != prj.m_mapAmpStore.end() )
		{
			AMP_STORE_INFO* info = i->second;
			if( HasBuff( BUFF_ITEM, (WORD)(info->dwIDSecond)))
			{
				if( HasBuff( BUFF_ITEM, (WORD)(info->dwIDThird)))
				{
					if( HasBuff( BUFF_ITEM, (WORD) (info->dwIDFourth)))
					{
						if( HasBuff( BUFF_ITEM, (WORD) (info->dwIDFifth)))
						{
							return 2;
						}
						else
						{
							if( pItemProp->nMaxDuplication >= 5 )
							{
								ItemProp* pAmpProp = prj.GetItemProp( info->dwIDFifth );
								DoApplySkill( (CCtrl*)this, pAmpProp, NULL );
								return 4;
							}
						}
					}
					else
					{
						if( pItemProp->nMaxDuplication >= 4 )
						{
							ItemProp* pAmpProp = prj.GetItemProp( info->dwIDFourth );
							DoApplySkill( (CCtrl*)this, pAmpProp, NULL );
							return 4;
						}
					}
				}
				else
				{
					if( pItemProp->nMaxDuplication >= 3 )
					{
						ItemProp* pAmpProp = prj.GetItemProp( info->dwIDThird );
						DoApplySkill( (CCtrl*)this, pAmpProp, NULL );
						return 4;
					}
				}
			}
			else
			{
				if( pItemProp->nMaxDuplication >= 2 )
				{
					ItemProp* pAmpProp = prj.GetItemProp( info->dwIDSecond );
					DoApplySkill( (CCtrl*)this, pAmpProp, NULL );
					return 4;
				}
			}
		}
	}
	else
	{
//		DoApplySkill( (CCtrl*)this, pItemProp, NULL );
		Error( "%d", (DWORD)pItemProp->dwSkillTime );
		AddBuff( BUFF_ITEM, (WORD)(pItemProp->dwID), 0, pItemProp->dwSkillTime, GetId() );
		return 4;
	}
#endif // __NEW_STACKABLE_AMPS
#endif // __WORLDSERVER
	return 3;
}
#endif // __NEW_PROP_PARAMETER
wollte fragen ob mir wer eben die __NEW_PROP_PARAMETER defines entfernen kann, da ich diese nicht use und so etliche errors bekomme.
schonmal danke für euere hilfe.
mfg. Crowley
12/30/2012 16:27 .Pixelhut™#2
speicher das hier

Code:
FINDSTR /s "__NEW_PROP_PARAMETER" *.* > 1.txt
als .bat ab

und tuh die batch dazei in deinen program ordner der source

öffne die batchdatei und warte bis die batchdatei sich geschlossen hat

dan müsste eine datei namens 1.txt dort sein, und dort stehen alle einträge und

alle dateien in dennen der define ist
12/30/2012 16:31 Crowley™#3
danke ^^

hat wer vlt noch eine andere lösung?

ps: hab es grade mal so eingefügt und new prop parameter ind world une neuz ausgeklammert.
es kahmen keine errors. nur das prob ist das ich nun keine amplis mehr usen kann ;)
12/30/2012 17:00 yannick2008#4
strg+f
12/30/2012 17:08 Crowley™#5
Quote:
Originally Posted by yannick2008 View Post
strg+f
ja schon klar aber ich weis nicht welche einträge wozu gehören. Deswegen wäre es nett wenn mir wer die cleanen amplis einträge geben könnte.
außerdem habe ich in der neuz, world, databaseserver new propparameter ausgeklammert und ich kann ig keine amplis benutzen.
12/30/2012 17:49 yannick2008#6
Wenn du es deaktivierst geht natürlich ncih die neuen amplis LOL weil sie werte aus den neuen einträgen benutzen
12/30/2012 18:57 Crowley™#7
Quote:
Originally Posted by yannick2008 View Post
Wenn du es deaktivierst geht natürlich ncih die neuen amplis LOL weil sie werte aus den neuen einträgen benutzen
kann die wer vlt umschreiben für mich?
12/30/2012 22:23 Andrej-Delany#8
Verstehe ich das gerade richtig du hast jetzt via source die neuen Amplis Deaktiviert und wunderst dich warum sie nicht mehr gehen und willst jetzt auch noch das der Code so umgeschrieben wird das sie wieder gehen?
12/31/2012 02:09 Crowley™#9
Quote:
Originally Posted by Andrej-Delany View Post
Verstehe ich das gerade richtig du hast jetzt via source die neuen Amplis Deaktiviert und wunderst dich warum sie nicht mehr gehen und willst jetzt auch noch das der Code so umgeschrieben wird das sie wieder gehen?
nein...... ich habe die neuen amplis geadded. ich habe die neuen propparameter //defined da ich ja die alten nutze......
mir wurde vorhin gesagt das die stackable amplis nicht gehen ohne die neuen parameter da der code benötigt wird der in den new propparameter defines drinne is.
deswegen wollte ich fragen ob es wer auf die alten umschreiben kann.