3D Label Wantedanzeige?

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
  • Guten Tag, ich versuche seid langer Zeit eine 3D TextLabel Wanted Anzeige über den Verbrecher Köpfen mit ihrer Wantedanzahl zu machen die NUR für Cops (Frak ID 1, 2, 3) sichtbar sind! Ich habe viele Thread gesehen wo nach soetwas gefragt wurde aber NIE kam eine richtige antwort falls doch bitte gibt mir den Link doch.


    -Vorstellung-
    - Weißer 3D TextLabel
    - Nur für Cops sichtbar
    - Inhalt: Name[ID]Wanteds

    -Gegenleistung-

    - Leider habe ich kein Geld deswegen sry.
    - Dein Text in meiner Signatur verewigt.
    - Mache dir eine Signatur + Avatar.
    - Mache dir Keybinder prof. mit GUI (ahk)


    -Bestand-
    Leider nichts wertvolles denke ich:


    Tag mismatch 3D Textlabel
    Brauche Hilfe bei 3D Text!


    -Benötigt-
    Was vllt/evtl benötigt wird poste einfach mal alles:

    Spoiler anzeigen

    Abfrage ob der Spieler Cop ist:
    if(PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1||PlayerInfo[playerid][pMember] == 2||PlayerInfo[playerid][pLeader] == 2||PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3)

    Spoiler anzeigen
    Unter OnPlayerUpdate steht:
    format(var, 32, "Wanted=%d\n",WantedLevel[playerid]);fwrite(hFile, var);

    Spoiler anzeigen
    Oben bei den New die beiden Sachen:
    new WantedPoints[MAX_PLAYERS];
    new WantedLevel[MAX_PLAYERS];

    Spoiler anzeigen
    Unter der Playerinfo (enum pInfo):
    Wantedlevel,

    Spoiler anzeigen
    Unter OnPlayerConnect:
    WantedPoints[playerid] = 0;
    WantedLevel[playerid] = 0;

    Spoiler anzeigen
    Abfrage ob Spieler Wanteds hat:
    if(WantedLevel[playerid] >= 1)

    Spoiler anzeigen
    Unter SetPlayerCriminal das:
    public SetPlayerCriminal(playerid,declare,reason[])
    {//example: SetPlayerCriminal(playerid,255, "Stealing A Police Vehicle");
    if(IsPlayerConnected(playerid))
    {
    PlayerInfo[playerid][pCrimes] += 1;
    new points = WantedPoints[playerid];
    new turned[MAX_PLAYER_NAME];
    new turner[MAX_PLAYER_NAME];
    new turnmes[128];
    new wantedmes[128];
    new wlevel;
    strmid(PlayerCrime[playerid][pAccusedof], reason, 0, strlen(reason), 255);
    GetPlayerName(playerid, turned, sizeof(turned));
    if (declare == 255)
    {
    format(turner, sizeof(turner), "Unknown");
    strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
    }
    else
    {
    if(IsPlayerConnected(declare))
    {
    GetPlayerName(declare, turner, sizeof(turner));
    strmid(PlayerCrime[playerid][pVictim], turner, 0, strlen(turner), 255);
    strmid(PlayerCrime[declare][pBplayer], turned, 0, strlen(turned), 255);
    strmid(PlayerCrime[declare][pAccusing], reason, 0, strlen(reason), 255);
    }
    }
    format(turnmes, sizeof(turnmes), "Du hast ein Verbrechen begangen ( %s ). Reporter: %s.",reason,turner);
    SendClientMessage(playerid, COLOR_LIGHTRED, turnmes);
    if(points > 0)
    {
    new yesno;
    if(points == 3) { if(WantedLevel[playerid] != 1) { WantedLevel[playerid] = 1; wlevel = 1; yesno = 1; } }
    else if(points >= 4 && points <= 5) { if(WantedLevel[playerid] != 2) { WantedLevel[playerid] = 2; wlevel = 2; yesno = 1; } }
    else if(points >= 6 && points <= 7) { if(WantedLevel[playerid] != 3) { WantedLevel[playerid] = 3; wlevel = 3; yesno = 1; } }
    else if(points >= 8 && points <= 9) { if(WantedLevel[playerid] != 4) { WantedLevel[playerid] = 4; wlevel = 4; yesno = 1; } }
    else if(points >= 10 && points <= 11) { if(WantedLevel[playerid] != 5) { WantedLevel[playerid] = 5; wlevel = 5; yesno = 1; } }
    else if(points >= 12 && points <= 13) { if(WantedLevel[playerid] != 6) { WantedLevel[playerid] = 6; wlevel = 6; yesno = 1; } }
    else if(points >= 14) { if(WantedLevel[playerid] != 10) { WantedLevel[playerid] = 10; wlevel = 10; yesno = 1; } }
    if(WantedLevel[playerid] >= 1) { if(gTeam[playerid] == 3) { gTeam[playerid] = 4; } }
    if(yesno)
    {
    format(wantedmes, sizeof(wantedmes), "Derzeitiges Wantedlevel: %d", wlevel);
    SendClientMessage(playerid, COLOR_YELLOW, wantedmes);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1||PlayerInfo[i][pLeader] == 1)
    {
    format(cbjstore, sizeof(turnmes), "HQ: An alel Einheiten - Reporter: %s",turner);
    SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
    format(cbjstore, sizeof(turnmes), "HQ: Verbrechen: %s, Wantedlevel: %s",reason,turned);
    SendClientMessage(i, TEAM_BLUE_COLOR, cbjstore);
    }
    }
    }
    }
    }
    }//not connected
    }



    //Edit: Frage wegen Signatur:

    Spoiler anzeigen
    Ist es erlaubt (steht nichts in den Regeln davon) in der Schriftgröße 36 in Rot extra fett verlinkt sein Thread einzugeben wenn man Hilfe dringend braucht? Diesmal ist es ja wirklich wichtig (finde ich) habe das einfach mal in die Signatur gemacht da es dann auch "hoffentlich gesehen wird"?

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

    2 Mal editiert, zuletzt von TPO ()

  • Nur für Cops geht es glaub ich nicht...
    aba so würde es gehen( für alle sichtbar :(
    // mal ganz oben:
    new label[MAX_PLAYERS];


    //dann bei OnPlayerRequestSpawn:
    new labeltext[100];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(labeltext,sizeof(labeltext),"[%d] %s | Wanteds: %d", playerid, name, WantedLevel[playerid])
    label[playerid] = Create3DLabel(labeltext, --FARBE--, 0.0, 0.0, 0.0, 30.0, 0, 0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 2.0);


    //dann bei OnPlayerUpdate:
    new labeltext[100];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    Delete3DTextLabel(label[playerid]);
    format(labeltext,sizeof(labeltext),"[%d] %s | Wanteds: %d", playerid, name, WantedLevel[playerid])
    label[playerid] = Create3DLabel(labeltext, --FARBE--, 0.0, 0.0, 0.0, 30.0, 0, 0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 2.0);


    Müsste eig. funktionieren...
    aba nicht getestet ;)


    mfg

  • Zitat

    Nur für Cops geht es glaub ich nicht...
    aba so würde es gehen( für alle sichtbar :(

    Doch, es geht klar das es nur für Cops sichtbar ist, wie macht es sonst GRP etc.?


    Danke dir folgende Errors und für jeden Sichtbar (falls die Errors weg wären)
    (4177) : error 001: expected token: ";", but found "-identifier-"
    (4177) : error 017: undefined symbol "Create3DLabel"
    (4178) : warning 213: tag mismatch
    (7310) : warning 213: tag mismatch
    (7312) : error 001: expected token: ";", but found "-identifier-"
    (7312) : error 017: undefined symbol "Create3DLabel"
    (7313) : warning 213: tag mismatch
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    4 Errors.


    Zeilen:
    4177 + 4178:
    label[playerid] = Create3DLabel(labeltext, COLOR_RED, 0.0, 0.0, 0.0, 30.0, 0, 0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 2.0);


    7310:
    Delete3DTextLabel(label[playerid]);


    7312 + 7313:
    label[playerid] = Create3DLabel(labeltext, COLOR_RED, 0.0, 0.0, 0.0, 30.0, 0, 0);
    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 2.0);

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

    Einmal editiert, zuletzt von TPO ()

  • http://wiki.sa-mp.com/wiki/CreatePlayer3DTextLabel
    Damit erstellst du ein Textlabel, das nur für einen bestimmten Spieler sichtbar ist.
    --> Mit ner For-Schleife verbinden und wenn Cop dann anzeigen lassen.
    Dann benötigst du noch eine Forschleife


    am besten schreibst du ein public, dass eine Forschleife enthält :



    forward wantedcheck();
    public wantedcheck()
    {
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Wantedlevel[i] != 0) // oder wie die variable/enum genannt ist
    {
    for(new j=0;j>MAX_PLAYERS;j++)
    {
    if(Cop[j] == 1) // hier die abfrage ob er in der Cop fraktion ist. Ka wie das bei Godfather ist
    {
    CreatePlayer3DTextLabel(playerid, text[], color, Float:X, Float:Y, Float:Z, Float:DrawDistance, attachedplayer, attachedvehicle, testLOS)
    // Die Infos zu dem Befehl sind im Wiki (link : siehe oben)
    }
    }
    }
    }
    }
    }


    Das ganze rufts dú dann bei der Wantedvergabe/Löschung auf und wenn ein Spieler Connected/Disconnected.
    Du musst das Label aber noch zerstören wenn einer Disconnected bzw. wenn sich der wantedstand ändert musst du das alte löschen bevor duein neues erstellst.


    Aber das sollte keine schwierigkeit sein, steht ja alles im wiki


    Ich hab das jetzt mal so aus dem stegreif gemacht, also keine garantie das es funktioniert ;)


    Nicht jeder, der sich für super hält, ist ein Superheld. :love:
    ------------------------------------------------------------------------------------------------

  • Zitat


    Das ganze rufts dú dann bei der Wantedvergabe/Löschung auf und wenn ein Spieler Connected/Disconnected.
    Du musst das Label aber noch zerstören wenn einer Disconnected bzw. wenn sich der wantedstand ändert musst du das alte löschen bevor duein neues erstellst.


    Aber das sollte keine schwierigkeit sein, steht ja alles im wiki

    Doch ist es. Ich suche es fertig evtl. mit einer Erklärung und dafür biete ich als Gegenleistung (zwar kein Geld) paar Sachen halt. Denn ich bin kein guter Scripter deswegen bringt mir das wenig..




    €dit: Eine andere leichtere Idee da diese Idee anscheinend keiner hinbekommt... =(
    Also: Man hat sobald man Wantedlevel hat ein 3D Textlabel über seinem Kopf mit dem Text "Verbrecher" das reicht. Es sollte dennoch nur für Cops sichtbar sein und auch funktionieren das heißt:


    Spawn oder beim Wantedbekommen > Label kommt!
    Eingesperrt/Gecleart/Disconnectet > Label verschwindet!
    Sonstiges > Funtkioniert!


    xP

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25

    2 Mal editiert, zuletzt von TPO ()

  • Ach egal..
    Ich Close hier mal, leider kommen keine Antworten^^
    Naja wurd oft angesprochen > oft geclosed =)
    Falls wer doch ne Ahnung hat > PN und ich Öffne wieder..


    ~Closed

    Why do programmers always mix up Halloween and Christmas?
    Oct 31 == Dec 25