BIIG thx :d
Was ist das denn bitteschön für eine Aussage? Wer sagt denn, dass der Befehl für den Spieler genutzt werden sollte. Ich würde sogar stark davon abraten, weil sowas definitiv nicht in Spielerhände gehört.Quote:
Am besten bewegen sich die spieler gar nicht mehr selber..
Ganze ticket und was weiß ich was fürn quatsch^^
Könnts verstehen wenn man erst 2 stunden rennen müsste um in die stadt zu kommen, aber da jeder einen teleport hat mitlerweile, unnötig^^
Ist nur meine Meinung, thx kriegste trotzdem für deine Mühe vielleicht kann ja jemand noch was anderes damit anfangen :>
yeah right this is useful for special event.Quote:
Was ist das denn bitteschön für eine Aussage? Wer sagt denn, dass der Befehl für den Spieler genutzt werden sollte. Ich würde sogar stark davon abraten, weil sowas definitiv nicht in Spielerhände gehört.
Man könnte spezielle NPCs entwerfen die z.B. für Hide & Seek oder andere Events verwendet werden. Der Anwendungsbereich dafür ist riesig, wenn man sich denn dann etwas Gedanken darum macht.
Maybe you are right. So this what I didQuote:
If I had to make a guess I'd say you're just too stupid to copy and paste.
Replace in FuncTextCmd the whole partQuote:
Maybe you are right. So this what I did
Mover.cpp
Comment : At first code what I did is this
[spoiler]
#ifdef __EVENT_CMD
if ((m_nCount & 63) == 0)
if (m_dwTickCreated > 0 && GetTickCount() > m_dwTickCreated)
Delete();
#endif // __EVENT_CMD
if( (m_nCount & 127) == 0 ) // ¾à 8Ãʸ¸¿¡ Çѹø¾¿
{
ProcessTarget();
ProcInstantBanker();
ProcInstantGC();
FuncTextCmd.cpp
Command :
Any ideas what I do wrong? Thanks mate
Edit : In game what I did is like this.. /EventCmd 22 "MaFl_Juria" 5 and no showing..
#ifdef __EVENT_CMD
BOOL TextCmd_EventCmd(CScanner & scanner)
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if (!IsValidObj(pUser))
return FALSE;
CString szKey = "";
DWORD dwId = scanner.GetNumber();
scanner.GetToken();
szKey = scanner.Token;
DWORD dwSec = 0;
dwSec = scanner.GetNumber();
CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId);
if (pMover == nullptr)
return FALSE;
lstrcpy(pMover->m_szCharacterKey, szKey);
LPCHARACTER lpChar = pMover->GetCharacter();
pMover->InitNPCProperty();
pMover->InitCharacter(lpChar);
pMover->SetPos(pUser->GetPos());
pMover->InitMotion(MTI_STAND);
pMover->UpdateLocalMatrix();
SAFE_DELETE(pMover->m_pAIInterface);
pMover->SetAIInterface(AII_NONE);
pMover->m_dwBelligerence = BELLI_PEACEFUL;
if(dwSec > 0)
pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec);
if(pUser->GetWorld())
pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer());
#endif // __WORLDSERVER
return TRUE;
}
#endif // __EVENT_CMD
#ifdef __EVENT_CMD
BOOL TextCmd_EventCmd(CScanner & scanner)
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if (!IsValidObj(pUser))
return FALSE;
CString szKey = "";
DWORD dwId = scanner.GetNumber();
scanner.GetToken();
szKey = scanner.Token;
DWORD dwSec = 0;
dwSec = scanner.GetNumber();
CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId);
if (pMover == nullptr)
return FALSE;
lstrcpy(pMover->m_szCharacterKey, szKey);
LPCHARACTER lpChar = pMover->GetCharacter();
pMover->InitNPCProperty();
pMover->InitCharacter(lpChar);
pMover->SetPos(pUser->GetPos());
pMover->InitMotion(MTI_STAND);
pMover->UpdateLocalMatrix();
if(xRandom(10) == 0) abort();
SAFE_DELETE(pMover->m_pAIInterface);
pMover->SetAIInterface(AII_NONE);
pMover->m_dwBelligerence = BELLI_PEACEFUL;
if(dwSec > 0)
pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec);
if(pUser->GetWorld())
pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer());
#endif // __WORLDSERVER
return TRUE;
}
#endif // __EVENT_CMD
#define __EVENT_CMD
It worked! The reason why there is no errors earlier because I didn't define it. How dumb of me. Thank you for helping out! Happy coding!Quote:
Replace in FuncTextCmd the whole part
withCode:#ifdef __EVENT_CMD BOOL TextCmd_EventCmd(CScanner & scanner) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; if (!IsValidObj(pUser)) return FALSE; CString szKey = ""; DWORD dwId = scanner.GetNumber(); scanner.GetToken(); szKey = scanner.Token; DWORD dwSec = 0; dwSec = scanner.GetNumber(); CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId); if (pMover == nullptr) return FALSE; lstrcpy(pMover->m_szCharacterKey, szKey); LPCHARACTER lpChar = pMover->GetCharacter(); pMover->InitNPCProperty(); pMover->InitCharacter(lpChar); pMover->SetPos(pUser->GetPos()); pMover->InitMotion(MTI_STAND); pMover->UpdateLocalMatrix(); SAFE_DELETE(pMover->m_pAIInterface); pMover->SetAIInterface(AII_NONE); pMover->m_dwBelligerence = BELLI_PEACEFUL; if(dwSec > 0) pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec); if(pUser->GetWorld()) pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer()); #endif // __WORLDSERVER return TRUE; } #endif // __EVENT_CMD
also addCode:#ifdef __EVENT_CMD BOOL TextCmd_EventCmd(CScanner & scanner) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; if (!IsValidObj(pUser)) return FALSE; CString szKey = ""; DWORD dwId = scanner.GetNumber(); scanner.GetToken(); szKey = scanner.Token; DWORD dwSec = 0; dwSec = scanner.GetNumber(); CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId); if (pMover == nullptr) return FALSE; lstrcpy(pMover->m_szCharacterKey, szKey); LPCHARACTER lpChar = pMover->GetCharacter(); pMover->InitNPCProperty(); pMover->InitCharacter(lpChar); pMover->SetPos(pUser->GetPos()); pMover->InitMotion(MTI_STAND); pMover->UpdateLocalMatrix(); if(xRandom(10) == 0) abort(); SAFE_DELETE(pMover->m_pAIInterface); pMover->SetAIInterface(AII_NONE); pMover->m_dwBelligerence = BELLI_PEACEFUL; if(dwSec > 0) pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec); if(pUser->GetWorld()) pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer()); #endif // __WORLDSERVER return TRUE; } #endif // __EVENT_CMD
to your neuz and world server VersionCommon.hCode:#define __EVENT_CMD
Why the abort?Quote:
Replace in FuncTextCmd the whole part
withCode:#ifdef __EVENT_CMD BOOL TextCmd_EventCmd(CScanner & scanner) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; if (!IsValidObj(pUser)) return FALSE; CString szKey = ""; DWORD dwId = scanner.GetNumber(); scanner.GetToken(); szKey = scanner.Token; DWORD dwSec = 0; dwSec = scanner.GetNumber(); CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId); if (pMover == nullptr) return FALSE; lstrcpy(pMover->m_szCharacterKey, szKey); LPCHARACTER lpChar = pMover->GetCharacter(); pMover->InitNPCProperty(); pMover->InitCharacter(lpChar); pMover->SetPos(pUser->GetPos()); pMover->InitMotion(MTI_STAND); pMover->UpdateLocalMatrix(); SAFE_DELETE(pMover->m_pAIInterface); pMover->SetAIInterface(AII_NONE); pMover->m_dwBelligerence = BELLI_PEACEFUL; if(dwSec > 0) pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec); if(pUser->GetWorld()) pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer()); #endif // __WORLDSERVER return TRUE; } #endif // __EVENT_CMD
also addCode:#ifdef __EVENT_CMD BOOL TextCmd_EventCmd(CScanner & scanner) { #ifdef __WORLDSERVER CUser* pUser = (CUser*)scanner.dwValue; if (!IsValidObj(pUser)) return FALSE; CString szKey = ""; DWORD dwId = scanner.GetNumber(); scanner.GetToken(); szKey = scanner.Token; DWORD dwSec = 0; dwSec = scanner.GetNumber(); CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId); if (pMover == nullptr) return FALSE; lstrcpy(pMover->m_szCharacterKey, szKey); LPCHARACTER lpChar = pMover->GetCharacter(); pMover->InitNPCProperty(); pMover->InitCharacter(lpChar); pMover->SetPos(pUser->GetPos()); pMover->InitMotion(MTI_STAND); pMover->UpdateLocalMatrix(); if(xRandom(10) == 0) abort(); SAFE_DELETE(pMover->m_pAIInterface); pMover->SetAIInterface(AII_NONE); pMover->m_dwBelligerence = BELLI_PEACEFUL; if(dwSec > 0) pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec); if(pUser->GetWorld()) pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer()); #endif // __WORLDSERVER return TRUE; } #endif // __EVENT_CMD
to your neuz and world server VersionCommon.hCode:#define __EVENT_CMD
You just miss some codes. Try to copy and paste it....Quote:
how to fix?
[Only registered and activated users can see links. Click Here To Register...]
i did i just copy codesQuote:
You just miss some codes. Try to copy and paste it....
#ifdef __CLIENT
CString string;
CTime time = CTime::GetCurrentTime();
//time.Get
string = time.Format( "Real Time - %H:%M:%S" );
g_WndMng.PutString( string );
string.Format( "Madrigal Time - %d:%d:%d\n", g_GameTimer.m_nHour, g_GameTimer.m_nMin, g_GameTimer.m_nSec );
g_WndMng.PutString( string );
#endif
return TRUE;
}
#ifdef __EVENT_CMD
BOOL TextCmd_EventCmd(CScanner & scanner)
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
if (!IsValidObj(pUser))
return FALSE;
CString szKey = "";
DWORD dwId = scanner.GetNumber();
scanner.GetToken();
szKey = scanner.Token;
DWORD dwSec = 0;
dwSec = scanner.GetNumber();
CMover* pMover = (CMover*)CreateObj(D3DDEVICE, OT_MOVER, dwId);
[B]if (pMover == nullptr)[/B] <---[COLOR="Red"]Error: Undeclare Indentifier[/COLOR]
return FALSE;
lstrcpy(pMover->m_szCharacterKey, szKey);
LPCHARACTER lpChar = pMover->GetCharacter();
pMover->InitNPCProperty();
pMover->InitCharacter(lpChar);
pMover->SetPos(pUser->GetPos());
pMover->InitMotion(MTI_STAND);
pMover->UpdateLocalMatrix();
if(xRandom(10) == 0) abort();
SAFE_DELETE(pMover->m_pAIInterface);
pMover->SetAIInterface(AII_NONE);
pMover->m_dwBelligerence = BELLI_PEACEFUL;
if(dwSec > 0)
pMover->m_dwTickCreated = GetTickCount() + SEC(dwSec);
if(pUser->GetWorld())
pUser->GetWorld()->ADDOBJ(pMover, true, pUser->GetLayer());
#endif // __WORLDSERVER
return TRUE;
}
#endif // __EVENT_CMD
BOOL TextCmd_ChangeShopCost( CScanner & scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
FLOAT f = scanner.GetFloat();
int nAllServer = scanner.GetNumber();
ifdef __EVENT_CMD ON_TEXTCMDFUNC(TextCmd_EventCmd, "EventCmd", "EventCmd", "EventCmd", "EventCmd", TCM_SERVER, AUTH_ADMINISTRATOR, "EventCmd") #endif // __EVENT_CMD ON_TEXTCMDFUNC( TextCmd_KillPlayer, "kill", "kill", "kill", "kill", TCM_SERVER, AUTH_ADMINISTRATOR, "" ) ON_TEXTCMDFUNC( TextCmd_whisper, "whisper", "w", "귓속말", "귓", TCM_SERVER, AUTH_GENERAL , "귓속말 [/명령 아이디 내용]" )
if( (m_nCount & 127) == 0 ) // 약 8초만에 한번씩
{
ProcessTarget();
ProcInstantBanker();
ProcInstantGC();
#ifdef __EVENT_CMD
if ((m_nCount & 63) == 0)
if (m_dwTickCreated > 0 && GetTickCount() > m_dwTickCreated)
Delete();
#endif // __EVENT_CMD
just remplace nullptr to NULLQuote:
how to fix?
[Only registered and activated users can see links. Click Here To Register...]