Wie erstellt man ein NPC nachmal

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Ja dann lad dir das Filterscript NPC_Record. Dann steigst du in einen Zug ein und startets die Aufnahme mit vrecord (Botname). Mit Stoprecord beendest du die Aufnahme. Für die weiteren sachen gibt es hier ein gutes Tutorial. Musst mal die SuFu benutzen. ;)

  • Filterscript : npc_record Klick mich


    Dann halt abfragen Ob er ein Bot ist oder nicht


    Code :


    public OnGameModeInit()
    {
    //Bots/NPCS
    ConnectNPC("BSNBot","bsnrec");
    ConnectNPC("BSNAuto","autorec");
    botauto=CreateVehicle(411,1227.1797,-914.0590,42.6812,99.6721,126,126,1);
    return 1;
    }


    ACHTUNG Du musst das mit den botauto dann nur machen, wenn du ein bot hast wie du...


    Dann musst du halt die Zug ID, dann die Koordinaten, wo er stehen soll...


    Dann geht du unter OnPlayerCOnnect:



    public OnPlayerConnect(playerid)
    {
    //NPC/Bot Abfrage
    if(IsPlayerNPC(playerid)) return 1;
    }


    Damit fragst du ab, ob er Beim connect ein bot ist, da er sich meines Wissen nach nicht einloggen kann...


    Dann gehst du unter OnPlayerDisconnect:


    public OnPlayerDisconnect(playerid, reason)
    {
    //NPC/Bot Abfrage
    if(IsPlayerNPC(playerid)) return 1;
    }


    Das gleiche wie oben.


    Dann gehst du zu OnPlayerSpawn:


    public OnPlayerSpawn(playerid)
    {
    //NPC Auto
    if(!strcmp(SpielerName(playerid),"BSNAuto",true))
    {
    PutPlayerInVehicle(playerid,botauto,0);
    }
    //NPC Skin Setzung
    if(IsPlayerNPC(playerid))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(playerid,botname,sizeof(botname));
    if(!strcmp(botname,"BSNBot",true))
    {
    SetPlayerSkin(playerid,26);
    }
    }
    //NPC/Bot Abfrage
    if(IsPlayerNPC(playerid)) return 1;
    }


    Das sind dann die abfragen...


    Als ersten musst du dann hat fragen ob es ein Auto gibt, und ob er in einem drinne sitzt...


    Dann erklärt sich alles von selber.


    Hoffe es hilft dir.


    Hier als Test, mit meinen


    Bei weiter fragen falls du was nicht verstehst schreib mir eine PN


    Download

    Mit freundlichen Grüßen


    Atomfisch

  • Atomfisch


    Du hast da bißchen was vergessen.


    Wenn er einen Bot erstellt, welcher in ein Fahrzeug sitzt,
    muss er diesen auch eintragen im Script.
    oben:


    new autobot;



    Außerdem ist es unnötig die Bots bei OnPlayerDisconnect disconnecten zu lassen ...
    Bringt gar nichts, wenn er einen normalen Bot erstellt, welcher bis zum Server Shutdown connectet bleiben soll.



    Außerdem wenn er den Bot erstellt bei OnPlayerSpawn solltest du ebenfalls dazu sagen, dass er auch Scheine geben soll,
    ansonsten hüpft der Bot direkt wieder raus, dein OnPlayerSpawn ist ebenfalls unlogisch:


    if(IsPlayerNPC(playerid))
    {
    if(!strcmp(SpielerName(playerid),"BotName",true))
    {
    //Scheine zuweisen beispiel mit Spieler[playerid][SCHEINNAME] = 1;
    //Bot ins Auto bringen mit: PutPlayerInVehicle(playerid,BOTNAME,0);
    //Skin zuweisen
    }
    }
    //dadurch du oben ein if mit IsPlayerNPC erstellt hast, brauchst du das nicht bei jeden Bot abfragen sondern kannst mit if(!strcmp weiter arbeiten am schluss eben mit } beenden



    Zudem wieso lässt du den Bot bei OnPlayerConnect connecten?
    Mach es doch einfacher bei OnGameModeInit ?
    Unnötige Sachen. ...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Ist die aber nicht drin..

    Ingame den Filterscript geladen?
    Wenn ja, hast du /vrecord NAME (auch eingeben ? )
    bzw. /ofrecord für Bots zu Fuss,
    hast du dann auch /stoprecord benutzt?
    Wenn ja, befindet sich die .rec Datei im Scriptfiles Ordner bei dir, mit dem Namen denn du eingeben hast.



    //edit
    @Azuru


    Wie du dann den Bot auf den Server bekommst,
    musst du folgendes machen:


    1. Nimm die .rec Datei verschiebe sie in Ordner -> npcmodes -> recordings
    2. Wenn du im Script beispiel: ConnectNPC("Bot1","BotTest"); geschrieben hast, musst du auch die .rec Datei in "BotTest" umbenennen, oder änderst den Namen "BotTest" in den Namen der .rec Datei um
    3. Die Datei die im Anhang von meinen Beitrag musst du bei "BOTNAME" den Namen von der .rec Datei eintragen, dann compilen und die .amx Datei unter Ordner -> npcmodes verschieben.
    In dieser Datei musst du ebenfalls bei Recording_Type ändern in 1 (Im Fahrzeug aufgenommener Bot) oder in 2 (zu Fuß aufgenommener Bot).