NPC Erstellen

04/16/2016 13:28 Kiseku#1
Hay,
hätte mal ne frage wie erstelle ich einen NPC, also einer mit einem MMI Menü z.B. Isruel, per Befehl ?
Mir ist bewusst das man das mit /cn macht aber wie sind die Parameter ^^ ?

MfG
04/16/2016 13:35 Wanetrain#2
Dir ist also bewusst das man "cn" benutzt...mhmmmm

Quote:
BOOL TextCmd_CreateNPC( CScanner& scanner )
{
#ifdef __WORLDSERVER
CUser* pUser = (CUser*)scanner.dwValue;
D3DXVECTOR3 vPos = pUser->GetPos();
CWorld* pWorld = pUser->GetWorld();

MoverProp* pMoverProp = NULL;

scanner.GetToken();
if( scanner.tokenType == NUMBER )
{
DWORD dwID = _ttoi( scanner.Token );
pMoverProp = prj.GetMoverPropEx( dwID );
}
else
pMoverProp = prj.GetMoverProp( scanner.Token );

CString strName = scanner.Token;

if( pMoverProp && pMoverProp->dwID != 0 )
{
if( pMoverProp->dwAI != AII_MONSTER
&& pMoverProp->dwAI != AII_CLOCKWORKS
&& pMoverProp->dwAI != AII_BIGMUSCLE
&& pMoverProp->dwAI != AII_KRRR
&& pMoverProp->dwAI != AII_BEAR
&& pMoverProp->dwAI != AII_METEONYKER
)
return TRUE;

DWORD dwNum = scanner.GetNumber();
if( dwNum > 100 ) dwNum = 100;
if( dwNum == 0 ) dwNum = 1;

BOOL bActiveAttack = scanner.GetNumber();
for( DWORD dw = 0; dw < dwNum; dw++ )
{
CObj* pObj = CreateObj( D3DDEVICE, OT_MOVER, pMoverProp->dwID );
if( NULL == pObj )
return FALSE;
pObj->SetPos( vPos );
pObj->InitMotion( MTI_STAND );
pObj->UpdateLocalMatrix();

if( bActiveAttack )
((CMover*)pObj)->m_bActiveAttack = bActiveAttack;

((CMover*)pObj)->SetGold(((CMover*)pObj)->GetLevel()*15); // ¸ó½ºÅÍ »ý¼º½Ã ±âº» Æä³Ä¸¦ ¼³Á¤
pWorld->ADDOBJ( pObj, TRUE, pUser->GetLayer() );
}
}
#endif // __WORLDSERVER
return TRUE;
}
Würde ich mal Schwer überlegen warum das nicht Funktionieren wird.

Tipp: AI.
04/16/2016 13:56 Kiseku#3
wie soll es denn sonst gehen hatte früher mal den befehl ^^
04/16/2016 14:03 Wanetrain#4
Quote:
Originally Posted by Arcitc™ View Post
wie soll es denn sonst gehen hatte früher mal den befehl ^^
Dieser Command ist seit jeher gleich. Du kannst damit nur das hier:

Quote:
if( pMoverProp->dwAI != AII_MONSTER
&& pMoverProp->dwAI != AII_CLOCKWORKS
&& pMoverProp->dwAI != AII_BIGMUSCLE
&& pMoverProp->dwAI != AII_KRRR
&& pMoverProp->dwAI != AII_BEAR
&& pMoverProp->dwAI != AII_METEONYKER
Spawnen, der rest geht nicht. Einfach mal etwas die Funktionen anschauen, dann weiß man auch wie sie Funktionieren.

Aber CN ansich ist simpel.

/cn Name/ID Anzahl Aggro
/cn 1337 10 1
/cn Aibatt 10 1
/cn "Red Meteonyker" 10 1
...
04/16/2016 14:14 fastdxbuy#5
NPC's peer command das waren caali files da konntest du das.
Nimm einfach denn Beast editor setz dir ein NPC rein und mach noch die ganzen Resource einträge fertig.
04/16/2016 14:22 Kiseku#6
Quote:
Originally Posted by Wanetrain View Post
Dieser Command ist seit jeher gleich. Du kannst damit nur das hier:



Spawnen, der rest geht nicht. Einfach mal etwas die Funktionen anschauen, dann weiß man auch wie sie Funktionieren.

Aber CN ansich ist simpel.

/cn Name/ID Anzahl Aggro
/cn 1337 10 1
/cn Aibatt 10 1
/cn "Red Meteonyker" 10 1
...
Das wusste ich auch ^^ aber ich meine in den FlyCraft Files damals konnte man auch damit NPC spawnen.
@[Only registered and activated users can see links. Click Here To Register...]
Das ist mir auch bewusst aber ich wollte einen Npc nur zu bestimmten Events spawnen nicht das er Fest da steht ^^

Aber Naja wenn das nicht geht muss ich wohl eine andere Lösung finden :D
danke trotzdem
04/17/2016 03:40 fastdxbuy#7
ja dann schreib dafür ein system
04/17/2016 12:08 Drabur#8
Ich würde die NPC's auch einfach per Beast spawnen und dann eine funktion schreiben die sie unsichtbar macht bzw die funktionen deaktiviert
04/17/2016 13:36 Lumi#9
Quote:
Originally Posted by Drabur View Post
Ich würde die NPC's auch einfach per Beast spawnen und dann eine funktion schreiben die sie unsichtbar macht bzw die funktionen deaktiviert
SetOutput(false);

Damit lässt sich es sich unsichtbar machen oder? o:
04/17/2016 13:37 Drabur#10
nein damit wird der npc garnicht gespawn
04/17/2016 18:04 - DK#11
Es gibt ein Remove Befehl für den Npc also einfach die selbe Funktion aufs gegenteil umschreiben <...< Ich meine aber das er Recht hat, man kann Npcs spawnen .. Nur weiß ich leider auch nicht mehr wie das ging :o
04/17/2016 19:57 Drabur#12
naja der befehl ist doch so gut wie komplett ? aber es gibt sogar einen für npc extra irgendwie createpc oder sowas
04/17/2016 20:11 Spraystar#13
So kannst du jeden NPC mit der ID Spawnen

_Interface\FuncTextCmd.cpp

Suche

Das Hier Einfügen

Jetzt suchen

und das darunter

Beispiel Command
/cpnj 1495 "MaFl_Helper"
[Only registered and activated users can see links. Click Here To Register...]
Credit : DaveDevils