Allgemeine Fragen zu NPC's

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
  • Hey,


    Ich habe mal auf einem Fun-Server gesehen, dass man Ingame einen NPC aufnehmen konnte und ihn dann auch gleich wieder abspielen lassen kann. JJF wollte ich das mal nachbauen, allerdings stocke ich hier ein bischen:



    Und noch eine Frage: Ist es iwie möglich, dass NPC's anhalten, wenn man sich direkt vor sie ( oder in ein Umfeld ) stellt ? Meine NPC's machen nämlich immer DriveBy :thumbdown:


    Hoffe ihr könnt mir ansatzweise helfen,


    Tion


    /EDit: Rechtschreibfehler

  • In dem Quelltext den der NPC nutzen wird (npcmodes Ordner und Name der Script Datei die in ConnectNPC verwendet wurde) ueberpruefen, ob ein Spieler in der naeheren Umgebung ist und dann PauseRecordingPlayback verwenden. Wenn der Spieler wieder weiter weg ist ResumeRecordingPlayback.


    'Hier muss die NPC-Datei iwie in den npcmodes/recordes Ordner ?'
    Das recording wird vermutlich direkt dort gespeichert. Ansonsten kannst du die Datei nach /stoprecording mit fopen, fread und fwrite verschieben, da es bei den standard sa-mp includes kein fmove dabei ist.
    'Und noch eine Datei in den npcmodes-Ordner wo dann der NPC-Name drinne steht'
    Die amx Datei des NPCs kann eigentlich immer die gleiche bleiben und sollte bei OnNPCConnect das RecordingFile 'npc' verwenden. (Evtl. auch noch die oben beschriebene Methode mit PauseRecordingPlayback/ResumeRecordingPlayback.)
    Die npc include beschreibt keine Funktion NPCDisconnect, sie wird ebenfalls nicht in der samp include beschrieben. Anscheinend muss man den NPC dann manuell vom gamemode oder einem Filterscript her kicken. Verkompliziert das nur unnoetig..

  • Man kann mit fopen, fread und fwite auch außerhalb der scripfiles arbeiten ?
    Cool, danke, probiere ich gleich mal aus :thumbup:


    Zitat

    In dem Quelltext den der NPC nutzen wird (npcmodes Ordner und Name der Script Datei die in ConnectNPC verwendet wurde) ueberpruefen, ob ein Spieler in der naeheren Umgebung ist und dann PauseRecordingPlayback verwenden. Wenn der Spieler wieder weiter weg ist ResumeRecordingPlayback.


    Danke, habe das jetzt aber mal mit CallRemoteFunction und einer selbstgeschriebenen Funktion GetPlayerIDByName(name[]) versucht. Dann habe ich die ID herausgefunden, alle Spieler in einer Schleife durchlaufen lassen und sollte einer in der Nähe des anderen Spielers sein ( IsPlayerInRangeOfPlayer(playerid, targetid, Float: range) ) wird halteben CallRemoteFunktion aufgerufen... Deins sieht wesentlich leichter aus ;)
    An die fmove-Funktion setze ich mich mal, mal sehen ob ich das hinkriege... Aber trotzdem danke ;)


    Tion

  • Man kann mit fopen, fread und fwite auch außerhalb der scripfiles arbeiten ?
    Cool, danke, probiere ich gleich mal aus :thumbup:


    Bin mir nicht sicher, ob das mit den von sa-mp mitgelieferten Funktionen tatsaechlich funktioniert. Eventuell muss man dazu ein externes Plugin benutzen. Im offiziellen sa-mp Forum hatte ich vor ein paar Tagen ein Plugin gesehen, dass auf jeden Fall dazu in der Lage ist, da Plugins externe Programme sind, d.h. ohne sicherheits checks, die von sa-mp code durchgefuehrt werden. :P