Szerző Téma: NPC  (Megtekintve 767 alkalommal)

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
NPC
« Dátum: 2012. július 06. - 18:48:49 »
0 Show voters
Hali. Szóval beraktam a szerverre 1 NPC -t, és mindig mintha elteleportálna onnan, majd vissza. Videó: http://www.youtube.com/watch?v=RwCkxtAxlgc
Felvettem /ofrecord paranccsal az NPC -t, majd az NPC_Boltos.rec fájlt az npcmodes/recordings mappába másoltam. Utána létrehoztam egy NPC_Boltos.pwn nevû fájlt az npcmodes mappába, amit átfordított a pawno hiba nélkül, tartalma:
#define RECORDING \"NPC_Boltos\" // Ez az NPC-d neve, melyet felvettél
#define RECORDING_TYPE 2 // Az NPC közlekedése, 1 ha jármût vezet, 2 ha gyalogol
#include <a_npc> // Az NPC függvénykönyvtár beágyazása
public OnRecordingPlaybackEnd ( )
{
  StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
  return 0;
}
#if RECORDING_TYPE == 1 // Ha az NPC típusa jármûves vezetõ
public OnNPCEnterVehicle ( vehicleid, seatid )
{
    StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
    return 0;
}
  public OnNPCExitVehicle ( )
  {
    StopRecordingPlayback ( );
    return 0;
  }
#else // Viszont ha gyalogos
public OnNPCSpawn ( )
{
    StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
    return 0;
}
#endif

 
Majd csatlakoztattam OnGameModeInit() alatt:
ConnectNPC (\"NPC_Boltos\",\"NPC_Boltos\");

 
OnPlayerSpawn alatt pedig kap a feje fölé egy 3DTextet, egy interiort, és egy skint:
       if(!strcmp(npcname,\"NPC_Boltos\",true))
       {
SetPlayerInterior(playerid, 6);
              CreateDynamic3DTextLabel(\"[NPC] Eladó\", 0x00BFFFFF, 0, 0, 0.5, 20.0, playerid, INVALID_VEHICLE_ID, 0);
              SetPlayerSkin(playerid, 210);
      }

 
Nem hinném hogy azért tûnik el mert rövid a felvétel, ugyanis kb. 20 másodperces felvételeket készítettem, hogy ne másodpercenként indítsa újra a felvételt.

NPC
« Válasz #1 Dátum: 2012. július 06. - 19:05:23 »
0 Show voters
SetPlayerPos(playerid, x,y,z);//az xyxt cseréld arra ahol akarod hogy legyen

 
Ezt kihagytad a OnPlayerSpawn-nál.

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
NPC
« Válasz #2 Dátum: 2012. július 06. - 19:21:00 »
0 Show voters
Beraktam, így sem mûködik.

NPC
« Válasz #3 Dátum: 2012. július 06. - 20:04:27 »
0 Show voters
Itt egy jó NPC leírás csináld újra szerintem: http://sa-mp.gportal.hu/gindex.php?pg=32569262

Nem elérhető ZyZu.

  • Globális moderátor
  • 8939
  • my turbo diesel forum
  • Discord: ZyZu.
    • Profil megtekintése
NPC
« Válasz #4 Dátum: 2012. július 06. - 20:08:59 »
0 Show voters
Igen de nem csak NPC spawn kell..
Szerintem így:
 

OnPlayerSpawn(playerid)
{
if ( IsPlayerNPC ( playerid ) ) // Ellenõrzi a szerver, hogy a játékos NPC játékos-e
  {
    new npcname [ MAX_PLAYER_NAME ]; // Létrehozunk egy változót
    GetPlayerName ( playerid, npcname, sizeof ( npcname ) );
if ( !strcmp ( npcname, \"NPC NEVE\", true ) )
    {
     StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
     SetPlayerPos(playerid, x,y,z);
    }
    return 1;
  }

Nem elérhető Wiliam Levy

  • 594
  • Wiliam Levy
    • Profil megtekintése
NPC
« Válasz #5 Dátum: 2012. július 06. - 20:42:28 »
0 Show voters
Idézetet írta: Casamiro date=1341593329\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"23886\" data-ipsquote-contentclass=\"forums_Topic


public OnNPCSpawn ( )
{
    StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
    return 0;
}

 

Ezt Írd Át erre:
public OnNPCSpawn ( )
{
    SetMyPos(x,y,z);//ide ird be a poziciot
    return 0;
}
vagy ha nem jó
public OnNPCSpawn ( )
{
    SetMyPos(x,y,z);//ide ird be a poziciot
    StartRecordingPlayback ( RECORDING_TYPE, RECORDING );
    return 0;
}
Remélem segített, most nem vok sa-mp közelében, de ha küldesz egy képet és egy pozíciót hogy hol álljon az npc, megcsinálom neked

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
NPC
« Válasz #6 Dátum: 2012. július 06. - 23:24:54 »
0 Show voters
Megoldva, más volt a hiba.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal