[Frage] /awa

09/10/2012 17:04 DerJumbo#1
Immer wenn ich /awa eingebe schreibt er nur /awa, da passiert garnichts.

Die Einträge :

PHP Code:
ON_TEXTCMDFUNCTextCmd_GenRandomOption,       "Awake",                 "awa",               "°¢¼ºÃູ",       "°¢Ãà",    TCM_BOTH,    AUTH_GENERAL"" 
PHP Code:
BOOL TextCmd_GenRandomOptionCScanner )
{
#ifdef __WORLDSERVER 
    
CUserpUser = (CUser*)s.dwValue;
    
CItemElempItemElem    pUser->m_Inventory.GetAt);

    if( 
pItemElem )
    {
        
int nRandomOptionKind    g_xRandomOptionProperty->GetRandomOptionKindpItemElem );
        if( 
nRandomOptionKind >= )    // ¾ÆÀÌÅÛ °¢¼º, ¿©½ÅÀÇ ÃູÀÌ °¡´ÉÇÑ ´ë»ó
        
{
            if(
pUser->HasActivatedSystemPet() && pItemElem->GetProp()->dwItemKind3 == IK3_EGG || pUser->HasActivatedEatPet() && pItemElem->GetProp()->dwItemKind3 == IK3_PET 
            {
                
char chMessage[100];
                
sprintfchMessage"Hol dein Pet oder CS Pet rein! Sonst kannst du es nicht erwecken!" );
                
pUser->AddTextchMessage );
            }
            else
            {
                
g_xRandomOptionProperty->InitializeRandomOptionpItemElem->GetRandomOptItemIdPtr() );
                
g_xRandomOptionProperty->GenRandomOptionpItemElem->GetRandomOptItemIdPtr(), nRandomOptionKindpItemElem->GetProp()->dwParts );
                
pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMIDpItemElem->GetRandomOptItemId() );
            }
        }
    }


#endif    // __WORLDSERVER
    
return TRUE;

Ich bitte um Hilfe

MFG

DerJumbo
09/10/2012 17:09 Sedrika#2
Item muss im ersten Feld deines Inventars sein.
09/10/2012 17:17 DerJumbo#3
ist es doch, nur wenn ich /awa eingebe passiert nichts, er schreibt das einfach in den Chat wie z.B. das Wort "Hallo". Er soll es aber nicht schreiben sonderen das Item Erwecken.
09/10/2012 17:38 Shiaru#4
vielleicht stimmt ja bei deinem code da etwas nicht, versuch mal die gro funktion zu ersetzten mit dem fix von marvin, [Only registered and activated users can see links. Click Here To Register...]
09/10/2012 17:42 DerJumbo#5
Will es so machen das es nichts kostet.
09/10/2012 18:03 Shiaru#6
Dann halt so:

Code:
BOOL TextCmd_GenRandomOption( CScanner & s )
{
#ifdef __WORLDSERVER 
    CUser* pUser = (CUser*)s.dwValue;
#ifndef __TAB_INVENTORY  
	CItemElem* pItemElem    = pUser->m_Inventory.GetAt( 0 );
#else
	DWORD dwObjId = s.GetNumber();
	CItemElem* pItemElem	= pUser->m_Inventory.GetAtId( dwObjId );
#endif // __TAB_INVENTORY
    if( pItemElem ){
        int nRandomOptionKind    = g_xRandomOptionProperty->GetRandomOptionKind( pItemElem );
        if( nRandomOptionKind >= 0 ){
            if(pUser->HasActivatedSystemPet() && pItemElem->GetProp()->dwItemKind3 == IK3_EGG || pUser->HasActivatedEatPet() && pItemElem->GetProp()->dwItemKind3 == IK3_PET ){
                pUser->AddText( "Du musst vorher dein (CS-)Pet einpacken!" );
			}else{
				if( pUser->GetGold() >= 1 ){
					g_xRandomOptionProperty->InitializeRandomOption( pItemElem->GetRandomOptItemIdPtr() );
					g_xRandomOptionProperty->GenRandomOption( pItemElem->GetRandomOptItemIdPtr(), nRandomOptionKind, pItemElem->GetProp()->dwParts );
					pUser->UpdateItemEx( (BYTE)( pItemElem->m_dwObjId ), UI_RANDOMOPTITEMID, pItemElem->GetRandomOptItemId() );
					pUser->AddGold( -1 );
					//pUser->AddText( "Dir wurden 1 Penya für das Erwecken abgezogen." );
				}else{
					pUser->AddText( "Du musst mindestens 1 Penya haben um erwecken zu können." );
				}
			}
		}else{
			pUser->AddText ( "Das zu erweckende Item muss im ersten Slot sein." );
		}
	}
#endif    // __WORLDSERVER
	#if defined(__CLIENT) && defined ( __TAB_INVENTORY)
	if( g_WndMng.m_pWndUpgradeBase == NULL )
	{
		SAFE_DELETE( g_WndMng.m_pWndUpgradeBase );
		g_WndMng.m_pWndUpgradeBase = new CWndUpgradeBase;
		g_WndMng.m_pWndUpgradeBase->Initialize( &g_WndMng, APP_TEST );
		return FALSE;
	}

	if( g_WndMng.m_pWndUpgradeBase )
	{
		if( g_WndMng.m_pWndUpgradeBase->m_pItemElem[0] )
		{
			DWORD dwObjId = g_WndMng.m_pWndUpgradeBase->m_pItemElem[0]->m_dwObjId;
			char szSkillLevel[MAX_PATH];
			sprintf( szSkillLevel, "/gro %d", dwObjId);
			s.SetProg( szSkillLevel );		
		}
		else
		{
			return FALSE;
		}
	}
	else
	{
		return FALSE;
	}
#endif // __TAB_INVENTORY
    return TRUE;
}
Geht ja erst einmal nur darum das es überhaupt bei dir funktioniert

//

if( pUser->GetGold() >= 1 ){

pUser->AddGold( -1 );

pUser->AddText( "Du musst mindestens 1 Penya haben um erwecken zu können." );

da kann man ja ne' beliebige Zahl einsetzen ob es mit 0 problemlos gehen würde weiß ich nicht
09/10/2012 18:48 DerJumbo#7
geht immer noch nicht, immernoch das selbe Problem
09/10/2012 21:36 SteamSwag#8
entferne einfach die wartezeit beim upgrade bzw. scrolls.
Dann erweckt man mit den normalen scrolls genauso schnell.



Ansonsten, überprüfe das du in der FuncTextCmd das command auch da hast wo die anderen player commands sind, also nicht irgendwo am ende der datei einfach hinklatschen.
09/10/2012 21:54 DerJumbo#9
habe das schon richtig drin.