NPC Namen anzeigen

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
  • Bei meinen NPC's werden die Namen nicht angezeigt.



    Also wie z.B bei einem normalen Player, nur das da nur z.B "Bus405-BSN-Airport-LS" oder so ähnlich.



    Hier alles was ich für die Bots getan hab:



    new HQKFZ;


    ConnectNPC("HQKFZ","HQKFZ");


    HQKFZ = CreateVehicle(431, 2000.0, 2000.0, 2000.0, 7.0, 0, 1, -1);


    SetPlayerSkin (playerid, 7);
    PutPlayerInVehicle(playerid, HQKFZ, 1);
    SetPlayerSkin (playerid, 61);


    }



    und die eigene PWN Datei bei npcmodes


    #include <a_npc>
    #include <a_samp>


    new gStoppedForTraffic = 0;
    new gPlaybackActive = 0;


    public ScanTimer();


    #define AHEAD_OF_CAR_DISTANCE 5.0
    #define SCAN_RADIUS 5.0
    #define COLOR_HELLBLAU 0x00FFFFFF


    //------------------------------------------


    main(){}


    //------------------------------------------


    stock GetXYInfrontOfMe(Float:distance, &Float:x, &Float:y)
    {
    new Float:z, Float:angle;
    GetMyPos(x,y,z);
    GetMyFacingAngle(angle);
    x += (distance * floatsin(-angle, degrees));
    y += (distance * floatcos(-angle, degrees));
    }


    //------------------------------------------


    public OnNPCModeInit()
    {
    SetTimer("ScanTimer",200,1);
    }


    //------------------------------------------


    LookForAReasonToPause()
    {
    new Float:X,Float:Y,Float:Z;
    new x=0;

    GetMyPos(X,Y,Z);
    GetXYInfrontOfMe(AHEAD_OF_CAR_DISTANCE,X,Y);

    while(x!=MAX_PLAYERS) {
    if(IsPlayerConnected(x) && IsPlayerStreamedIn(x)) {
    if( GetPlayerState(x) == PLAYER_STATE_DRIVER ||
    GetPlayerState(x) == PLAYER_STATE_ONFOOT )
    {
    if(IsPlayerInRangeOfPoint(x,SCAN_RADIUS,X,Y,Z)) {
    return 1;
    }
    }
    }
    x++;
    }

    //new msg[256];
    //new Float:angle;
    //GetMyFacingAngle(angle);
    //format(msg,256,"My yaw/heading = %f",angle);
    //SendChat(msg);

    return 0;
    }



    //------------------------------------------


    public ScanTimer()
    {
    //new ticker = GetTickCount() - g_LastTick;
    //printf("npctest: timer (%d)ms", ticker);
    //g_LastTick = GetTickCount();

    new ReasonToPause = LookForAReasonToPause();

    if(ReasonToPause && !gStoppedForTraffic)
    {
    //SendChat("I'm pausing");
    PauseRecordingPlayback();
    gStoppedForTraffic = 1;
    }
    else if(!ReasonToPause && gStoppedForTraffic)
    {
    //SendChat("I'm resuming");
    ResumeRecordingPlayback();
    gStoppedForTraffic = 0;
    }
    }



    //------------------------------------------


    StartPlayback()
    {
    StartRecordingPlayback(PLAYER_RECORDING_TYPE_DRIVER,"HQKFZ");
    gStoppedForTraffic = 0;
    gPlaybackActive = 1;


    }


    //------------------------------------------


    public OnRecordingPlaybackEnd()
    {
    StartPlayback();



    }


    //------------------------------------------


    public OnNPCEnterVehicle(vehicleid, seatid)
    {
    StartPlayback();


    }


    //------------------------------------------


    public OnNPCExitVehicle()
    {
    StopRecordingPlayback();


    }


    //------------------------------------------

  • Mh da ich mich erst nächste woche wieder mit Bots beschäftigen werde , würde ich sagen,
    du machst da eine SetPlayerChatBubble rein.
    Eine SetPlayerChatBubble ist ein Text, der über dem Player ist.
    Das könnte ungefähr so aussehen:
    Oben:
    Ganz Oben im Script:
    #define COLOR_RED 0xFF0000AA
    new name[256]; //NAME VARIABLE
    new string[256]; ///STRING VARIABLE
    Dann noch ein forward direkt darunter:
    forward bub(playerid)
    public OnPlayerSpawn(playerid)
    {
    GetPlayerName(playerid, name, MAX_PLAYER_NAME); //DEN NAME DES BOTS HOLEN
    format(string, 256, "%s", name); //DEN STRING MIT DEM NAMEN DEFINIEREN
    SetTimer("bub", 1000, 0);
    return 1;
    }
    Dann:

    public bub(playerid)
    {
    SetPlayerChatBubble(playerid, string, COLOR_RED, 100.0, 10000); //DIE CHAT BUBBLE ÜBER DEM PLAYER!
    return 1;
    }


    Dann machste noch ne abfrage rein:
    if(IsPlayerNPC(playerid))


    Das wars.
    Ich würde es so ganz unkompliziert machen.
    Hier noch der Wiki Eintrag im Englischen WIKI: SetPlayerChatBubble
    Naja bis dann,


    MFG,Cedi :thumbup:


    /Edit Timer reingefügt.


    /EDit2:
    Ja man könnte auch 3DTextLabels nehmen, allerdings werden die z.b in einem Car nicht immer über dem Auto sein, bzw. dann im auto.
    Ich würde es dennoch mit der ChatBubble machen^^.
    Naja kannste dir ja raussuchen loli.
    Bis dann
    MFG,Cedi :thumbup: