Wantedsystem mit Textdraws

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
  • Hallo, ich habe mal ein Wantedsystem mit textdraws versucht, alles funktioniert aber




    wenn ich ein wanteds gib, zeigt er die wanteds des aktuellen angezeigten an, bei allen




    wass ist da falsch




    public OnFilterScriptInit()
    {
    Wanteds = TextDrawCreate(439.000000, 25.000000, "Wanteds");
    TextDrawAlignment(Wanteds, 2);
    TextDrawBackgroundColor(Wanteds, 255);
    TextDrawFont(Wanteds, 1);
    TextDrawLetterSize(Wanteds, 0.500000, 1.000000);
    TextDrawColor(Wanteds, 16711935);
    TextDrawSetOutline(Wanteds, 0);
    TextDrawSetProportional(Wanteds, 1);
    TextDrawSetShadow(Wanteds, 1);
    Mord = TextDrawCreate(391.000000, 43.000000, "Mord:");
    TextDrawBackgroundColor(Mord, 255);
    TextDrawFont(Mord, 1);
    TextDrawLetterSize(Mord, 0.500000, 1.000000);
    TextDrawColor(Mord, -1);
    TextDrawSetOutline(Mord, 0);
    TextDrawSetProportional(Mord, 1);
    TextDrawSetShadow(Mord, 1);
    STVO = TextDrawCreate(390.000000, 61.000000, "STVO:");
    TextDrawBackgroundColor(STVO, 255);
    TextDrawFont(STVO, 1);
    TextDrawLetterSize(STVO, 0.500000, 1.000000);
    TextDrawColor(STVO, -1);
    TextDrawSetOutline(STVO, 0);
    TextDrawSetProportional(STVO, 1);
    TextDrawSetShadow(STVO, 1);
    Sonstige = TextDrawCreate(390.000000, 78.000000, "Sonstige:");
    TextDrawBackgroundColor(Sonstige, 255);
    TextDrawFont(Sonstige, 1);
    TextDrawLetterSize(Sonstige, 0.500000, 1.000000);
    TextDrawColor(Sonstige, -1);
    TextDrawSetOutline(Sonstige, 0);
    TextDrawSetProportional(Sonstige, 1);
    TextDrawSetShadow(Sonstige, 1);
    return 1;
    }
    public OnFilterScriptExit()
    {
    TextDrawHideForAll(Wanteds);
    TextDrawDestroy(Wanteds);
    TextDrawHideForAll(Mord);
    TextDrawDestroy(Mord);
    TextDrawHideForAll(STVO);
    TextDrawDestroy(STVO);
    TextDrawHideForAll(Sonstige);
    TextDrawDestroy(Sonstige);
    TextDrawHideForAll(anzahl1);
    TextDrawDestroy(anzahl1);
    TextDrawHideForAll(anzahl2);
    TextDrawDestroy(anzahl2);
    TextDrawHideForAll(anzahl3);
    TextDrawDestroy(anzahl3);
    return 1;
    }




    public OnPlayerConnect(playerid)
    {
    new save[128];
    new name[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Acc/%s.ini",name);
    gTeam[playerid] = dini_Int(save,"Frak");
    if(gTeam[playerid]==3||gTeam[playerid]==4||gTeam[playerid]==6||gTeam[playerid]==7||gTeam[playerid]==8||gTeam[playerid]==12)
    {
    new wmord = dini_Int(save, "Mord");
    new wstvo = dini_Int(save, "STVO");
    new wsontige = dini_Int(save, "Sonstige");
    new string[128];
    anzahl1 = TextDrawCreate(446.000000, 42.000000, "0");
    format(string, sizeof(string), "%i", wmord);
    TextDrawSetString(anzahl1, string);
    TextDrawBackgroundColor(anzahl1, 255);
    TextDrawFont(anzahl1, 3);
    TextDrawLetterSize(anzahl1, 0.479999, 1.299999);
    TextDrawColor(anzahl1, -1);
    TextDrawSetOutline(anzahl1, 0);
    TextDrawSetProportional(anzahl1, 1);
    TextDrawSetShadow(anzahl1, 1);
    new string2[128];
    anzahl2 = TextDrawCreate(446.000000, 59.000000, "0");
    format(string2, sizeof(string2), "%i", wstvo);
    TextDrawSetString(anzahl2, string2);
    TextDrawBackgroundColor(anzahl2, 255);
    TextDrawFont(anzahl2, 3);
    TextDrawLetterSize(anzahl2, 0.479999, 1.299999);
    TextDrawColor(anzahl2, -1);
    TextDrawSetOutline(anzahl2, 0);
    TextDrawSetProportional(anzahl2, 1);
    TextDrawSetShadow(anzahl2, 1);
    new string3[128];
    anzahl3 = TextDrawCreate(470.000000, 77.000000, "0");
    format(string3, sizeof(string3), "%i", wsontige);
    TextDrawSetString(anzahl3, string3);
    TextDrawBackgroundColor(anzahl3, 255);
    TextDrawFont(anzahl3, 3);
    TextDrawLetterSize(anzahl3, 0.479999, 1.299999);
    TextDrawColor(anzahl3, -1);
    TextDrawSetOutline(anzahl3, 0);
    TextDrawSetProportional(anzahl3, 1);
    TextDrawSetShadow(anzahl3, 1);
    TextDrawShowForPlayer(playerid, Wanteds);
    TextDrawShowForPlayer(playerid, Mord);
    TextDrawShowForPlayer(playerid, STVO);
    TextDrawShowForPlayer(playerid, Sonstige);
    TextDrawShowForPlayer(playerid, anzahl1);
    TextDrawShowForPlayer(playerid, anzahl2);
    TextDrawShowForPlayer(playerid, anzahl3);
    }
    return 1;
    }




    dcmd_wanted(playerid,params[])
    {
    new sname[128];
    new save[128];
    new ziel;
    new Grund[128];
    new abteil[128];
    new Float:Sum;
    new ergebniss;
    new string[128];
    if(sscanf(params, "us[128]s[128]", ziel, abteil, Grund))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Benutzung: /wanted [ID] [Abteil] [Grund]");
    SendClientMessage(playerid,COLOR_YELLOW,"Abteile: Mord, STVO, Sonstige");
    return 1;
    }
    GetPlayerName(ziel, sname, sizeof(sname));
    format(save,sizeof(save),"/Acc/%s.ini",sname);
    new wmord = dini_Int(save, "Mord");
    new wstvo = dini_Int(save, "STVO");
    new wsontige = dini_Int(save, "Sonstige");
    if(!strcmp(abteil,"Mord",true)||!strcmp(abteil,"mord",true))
    {
    if(wmord <=7)
    {
    Sum = floatadd(wmord, 1);
    ergebniss = floatround(Sum, floatround_round);
    format(string, sizeof(string), "%i", ergebniss);
    TextDrawSetString(anzahl1, string);
    dini_IntSet(save, "Mord", ergebniss);
    }
    else{SendClientMessage(playerid, COLOR_RED, "Mehr als 8Wanteds kannst du nicht verteilen!");}
    return 1;
    }
    if(!strcmp(abteil,"STVO",true)||!strcmp(abteil,"stvo",true))
    {
    if(wstvo <=7)
    {
    Sum = floatadd(wstvo, 1);
    ergebniss = floatround(Sum, floatround_round);
    format(string, sizeof(string), "%i", ergebniss);
    TextDrawSetString(anzahl2, string);
    dini_IntSet(save, "STVO", ergebniss);
    }
    else{SendClientMessage(playerid, COLOR_RED, "Mehr als 8Wanteds kannst du nicht verteilen!");}
    return 1;
    }
    if(!strcmp(abteil,"Sonstige",true)||!strcmp(abteil,"sonstige",true))
    {
    if(wsontige <= 7)
    {
    Sum = floatadd(wsontige, 1);
    ergebniss = floatround(Sum, floatround_round);
    format(string, sizeof(string), "%i", ergebniss);
    TextDrawSetString(anzahl3, string);
    dini_IntSet(save, "Sonstige", ergebniss);
    }
    else{SendClientMessage(playerid, COLOR_RED, "Mehr als 8Wanteds kannst du nicht verteilen!");}
    return 1;
    }
    return 1;
    }



    bitte um hilfe danke

  • Du musst für jeden Player einen eigenen Textdraw erstellen. Also bei OnPlayerConnect Wanteds[playerid] machen. Und eben new Text:Wanteds[MAX_PLAYERS];
    Wenn du für alle einen Textdraw machst ist es klar, dass alle die Wanteds haben...

  • also ich habe es jetzt so gemacht



    new Text:anzahl1[MAX_PLAYERS];
    new Text:anzahl2[MAX_PLAYERS];
    new Text:anzahl3[MAX_PLAYERS];



    public OnPlayerConnect(playerid)
    {
    new save[128];
    new name[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Acc/%s.ini",name);
    gTeam[playerid] = dini_Int(save,"Frak");
    if(gTeam[playerid]==3||gTeam[playerid]==4||gTeam[playerid]==6||gTeam[playerid]==7||gTeam[playerid]==8||gTeam[playerid]==12)
    {
    new wmord = dini_Int(save, "Mord");
    new wstvo = dini_Int(save, "STVO");
    new wsontige = dini_Int(save, "Sonstige");
    new string[128];
    anzahl1[playerid] = TextDrawCreate(446.000000, 42.000000, "0");
    format(string, sizeof(string), "%i", wmord);
    TextDrawSetString(anzahl1[playerid], string);
    TextDrawBackgroundColor(anzahl1[playerid], 255);
    TextDrawFont(anzahl1[playerid], 3);
    TextDrawLetterSize(anzahl1[playerid], 0.479999, 1.299999);
    TextDrawColor(anzahl1[playerid], -1);
    TextDrawSetOutline(anzahl1[playerid], 0);
    TextDrawSetProportional(anzahl1[playerid], 1);
    TextDrawSetShadow(anzahl1[playerid], 1);
    new string2[128];
    anzahl2[playerid] = TextDrawCreate(446.000000, 59.000000, "0");
    format(string2, sizeof(string2), "%i", wstvo);
    TextDrawSetString(anzahl2[playerid], string2);
    TextDrawBackgroundColor(anzahl2[playerid], 255);
    TextDrawFont(anzahl2[playerid], 3);
    TextDrawLetterSize(anzahl2[playerid], 0.479999, 1.299999);
    TextDrawColor(anzahl2[playerid], -1);
    TextDrawSetOutline(anzahl2[playerid], 0);
    TextDrawSetProportional(anzahl2[playerid], 1);
    TextDrawSetShadow(anzahl2[playerid], 1);
    new string3[128];
    anzahl3[playerid] = TextDrawCreate(470.000000, 77.000000, "0");
    format(string3, sizeof(string3), "%i", wsontige);
    TextDrawSetString(anzahl3[playerid], string3);
    TextDrawBackgroundColor(anzahl3[playerid], 255);
    TextDrawFont(anzahl3[playerid], 3);
    TextDrawLetterSize(anzahl3[playerid], 0.479999, 1.299999);
    TextDrawColor(anzahl3[playerid], -1);
    TextDrawSetOutline(anzahl3[playerid], 0);
    TextDrawSetProportional(anzahl3[playerid], 1);
    TextDrawSetShadow(anzahl3[playerid], 1);
    TextDrawShowForPlayer(playerid, Wanteds);
    TextDrawShowForPlayer(playerid, Mord);
    TextDrawShowForPlayer(playerid, STVO);
    TextDrawShowForPlayer(playerid, Sonstige);
    TextDrawShowForPlayer(playerid, anzahl1[playerid]);
    TextDrawShowForPlayer(playerid, anzahl2[playerid]);
    TextDrawShowForPlayer(playerid, anzahl3[playerid]);
    }
    return 1;
    }



    meinst eh so oder?

  • Wird der TextDraw bei jedem angezeigt oder erhält jeder die Wanteds?


    Wenn der TextDraw bei jedem angezeigt wird, musst du "TextDrawShowForPlayer(pid, Text:text);" verwenden.
    pid ist die ID des Spielers, der die Wanteds erhählt.