TextDrawSetString Frage finde keine antwort

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 oder Guten Morgen Liebes Samp Team ich habe ein kleines problem mit meinem script und zwar




    Unten links und rechts sind Textdraws in denen nacher die Variablen rein sollen nur ich fnde kein Gutes Tut wie man diese Funktion scriptet


    Das hier ist Der Textdraw Code








    Textdraw0 = TextDrawCreate(0.000000,437.000000,"[Kills; ]");
    Textdraw1 = TextDrawCreate(528.000000,436.000000,"[Tode: ]");
    Textdraw2 = TextDrawCreate(211.000000,435.000000,"Hardlife-Dm");
    TextDrawAlignment(Textdraw0,0);
    TextDrawAlignment(Textdraw1,0);
    TextDrawAlignment(Textdraw2,0);
    TextDrawBackgroundColor(Textdraw0,0x000000ff);
    TextDrawBackgroundColor(Textdraw1,0x000000ff);
    TextDrawBackgroundColor(Textdraw2,0x000000ff);
    TextDrawFont(Textdraw0,3);
    TextDrawLetterSize(Textdraw0,0.499999,1.000000);
    TextDrawFont(Textdraw1,3);
    TextDrawLetterSize(Textdraw1,0.499999,1.100000);
    TextDrawFont(Textdraw2,3);
    TextDrawLetterSize(Textdraw2,1.000000,1.200000);
    TextDrawColor(Textdraw0,0xffffffff);
    TextDrawColor(Textdraw1,0xffffffff);
    TextDrawColor(Textdraw2,0xffffffff);
    TextDrawSetOutline(Textdraw0,1);
    TextDrawSetOutline(Textdraw1,1);
    TextDrawSetOutline(Textdraw2,1);
    TextDrawSetProportional(Textdraw0,1);
    TextDrawSetProportional(Textdraw1,1);
    TextDrawSetProportional(Textdraw2,1);
    TextDrawSetShadow(Textdraw0,1);
    TextDrawSetShadow(Textdraw1,1);
    TextDrawSetShadow(Textdraw2,10);

























    Wie oder wo muss ich jetzt da was einfügen damit der aus meiner PVar Datei "Kills" und "Tode" ausliest und die Zahlen in den Textdraw umwandelt?


    Die Textdraws werden unter OnPlayerConnect wiedergegeben oder muss ich die wo anders hinpacken ?







    TextDrawShowForPlayer(playerid,Textdraw0); // <---- Kills
    TextDrawShowForPlayer(playerid,Textdraw1); //<----- Tode
    TextDrawShowForAll(Textdraw2); // <--- Das ist das immer in der mitte stehene Dm-Hardlife Wappen :)









    Es w#re sehr nett wen ihr mir schnellst möglich helft

  • wenn du das so machst, ändert sich das textdraw für jeden spieler, also angenommen ich sterbe wird dein textdraw auch geändert, ich machs mal für dich:


    irgendwo über ongamemodeinit:

    new Text:Killtextdraw[MAX_PLAYERS];
    new Text:Todetextdraw[MAX_PLAYERS];


    unter onplayerconnect:

    Killtextdraw[playerid] = TextDrawCreate(0.000000,437.000000,"[Kills: 50 ]");
    TextDrawAlignment(Killtextdraw[playerid],0);
    TextDrawBackgroundColor(Killtextdraw[playerid],0x000000ff);
    TextDrawFont(Killtextdraw[playerid],3);
    TextDrawLetterSize(Killtextdraw[playerid],0.499999,1.000000);
    TextDrawColor(Killtextdraw[playerid],0xffffffff);
    TextDrawSetOutline(Killtextdraw[playerid],1);
    TextDrawSetProportional(Killtextdraw[playerid],1);
    TextDrawSetShadow(Killtextdraw[playerid],1);


    Todetextdraw[playerid] = TextDrawCreate(528.000000,436.000000,"[Tode: 50 ]");
    TextDrawAlignment(Todetextdraw[playerid],0);
    TextDrawBackgroundColor(Todetextdraw[playerid],0x000000ff);
    TextDrawFont(Todetextdraw[playerid],3);
    TextDrawLetterSize(Todetextdraw[playerid],0.499999,1.100000);
    TextDrawColor(Todetextdraw[playerid],0xffffffff);
    TextDrawSetOutline(Todetextdraw[playerid],1);
    TextDrawSetProportional(Todetextdraw[playerid],1);
    TextDrawSetShadow(Todetextdraw[playerid],1);


    bei onplayerdisconnect:

    TextDrawDestroy(Killtextdraw[playerid]);
    TextDrawDestroy(Todetextdraw[playerid]);


    unter onplayerspawn:

    TextDrawShowForPlayer(playerid, Killtextdraw[playerid]);
    TextDrawShowForPlayer(playerid, Todetextdraw[playerid]);


    damit wird aufjeden fall schon mal das textdraw erstellt...
    jetzt gehts ans updaten, dafür benutze ich zb. immer eine funktion


    Wir nennen die funktionen mal Killupdate und Todeupdate...


    stock Killupdate(playerid)
    {
    new killud[40];
    format(killud, sizeof(killud), "[Kills: %d ]",GetPVarInt(playerid, "Kills"));//hier halt mir deinem erstetzen.. also GetPVarInt
    TextDrawSetString(Killtextdraw[playerid], killud);
    }
    stock Todeupdate(playerid)
    {
    new todeud[40];
    format(todeud, sizeof(todeud), "[Tode: %d ]",GetPVarInt(playerid, "Tode"));//hier halt mir deinem erstetzen.. also GetPVarInt
    TextDrawSetString(Todetextdraw[playerid], todeud);
    }



    Jetzt wird das textdraw überall geupdatet wenn du:
    Killupdate(playerid);
    bzw.
    Todeupdate(playerid);
    einfügst.


    logisch wäre es aber bei Onplayerdeath:
    Killupdate(killerid); //dem killer wird das textdraw für kills geupdatet
    und
    Todeupdate(playerid); //wenn ich selber sterb, wird das textdraw für tode geupdatet



    aber bitte erst nachdem du den wert erhöht hast, also
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid,"Tode")+1);
    SetPVarInt(playerid,"Kills",GetPVarInt(playerid,"Kills")+1);
    und dann erst
    Killupdate(killerid);
    Todeupdate(playerid);



    ist ungetestet, aber sollte gehen...
    wegen dem textdraw2, also der adresse, einfach so lassen also bei ongamemodeinit
    nur halt bei ongamemodeexit:
    TextDrawHideForAll(textdraw2);
    TextDrawDestroy(textdraw2);


    und bei onplayerconnect:
    TextDrawShowForPlayer(playerid, textdraw2);



    wenns was gibt melde dich


    mfg

    Pessimisten sind Optimisten mit Erfahrung!

  • unter OnPlayerDeath...

    if(killerid == INVALID_PLAYER_ID){
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    }
    else {
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    SetPVarInt(playerid,"Kills",GetPVarInt(killerid, "Kills")+1);
    Killupdate(killerid);
    }

    Mfg. BlackFoX_UD_ alias [BFX]Explosion


    Einmal editiert, zuletzt von BlackFoX ()


  • Und was ist mit der killerid?


  • Da ist die Antwort Tadashi

  • hab es nochmal verbessert war einfach zu schnell bei der Sache sollte so stimmen.. wenn nicht schreib einfach nochmal was nicht funktioniert ^^ bin leider nicht Multi Tasking fähig das überlasse ich weiterhin den Frauen :D

    Mfg. BlackFoX_UD_ alias [BFX]Explosion





















  • public OnPlayerDeath(playerid, killerid, reason)
    {
    new string[128];
    format(string,sizeof(string),"Du Hast %s Gekillt HGW!",SpielerName(playerid));
    SendClientMessage(killerid,ROT,string);
    format(string,sizeof(string),"Du wurdest von %s Gekillt!",SpielerName(killerid));
    SendClientMessage(playerid,ROT,string);
    GameTextForPlayer(playerid,"~w~-> ~r~ToT ~w~<-",1000,3);
    GameTextForPlayer(killerid,"~w~-> Kill <-",1000,3);
    SetPlayerScore(killerid,(GetPlayerScore(killerid)+1));
    if(killerid == INVALID_PLAYER_ID){
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    }
    else
    {
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    SetPVarInt(playerid,"Kills",GetPVarInt(killerid, "Kills")+1);
    Killupdate(killerid);
    }

    return 1;
    }




















    Es gibt Folgende Probleme :


    Die Kills vom Killer werden nach dem kill nicht aktualiesiert ..
    und die kills werden doppelt gezählt also zb: man hat 95 kills killt einen und dan steht man hätte 97 plz help ^^

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • probier mal das auszutauschen...


    SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);


    also bei dir werden die kills von playerid hochgesetzt, wenn man stirbt, muss ja aber killerid sein

    Pessimisten sind Optimisten mit Erfahrung!


  • public OnPlayerDeath(playerid, killerid, reason)
    {
    new string[128];
    format(string,sizeof(string),"Du Hast %s Gekillt HGW!",SpielerName(playerid));
    SendClientMessage(killerid,ROT,string);
    format(string,sizeof(string),"Du wurdest von %s Gekillt!",SpielerName(killerid));
    SendClientMessage(playerid,ROT,string);
    GameTextForPlayer(playerid,"~w~-> ~r~ToT ~w~<-",1000,3);
    GameTextForPlayer(killerid,"~w~-> Kill <-",1000,3);
    SetPlayerScore(killerid,(GetPlayerScore(killerid)+1));
    if(killerid == INVALID_PLAYER_ID){
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    }
    else
    {
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);
    Killupdate(killerid);
    }

    return 1;
    }



    habs für dich gemacht

    Pessimisten sind Optimisten mit Erfahrung!

  • also das script das du mir gesendet hast müsste so gehen...
    bei oplayerdeath wird ja


    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);


    um 1 erhöht...
    hab dir mal noch was eingefügt, ersetzt das nochmal:
    public OnPlayerDeath(playerid, killerid, reason)
    {
    new string[128];
    format(string,sizeof(string),"Du Hast %s Gekillt HGW!",SpielerName(playerid));
    SendClientMessage(killerid,ROT,string);
    format(string,sizeof(string),"Du wurdest von %s Gekillt!",SpielerName(killerid));
    SendClientMessage(playerid,ROT,string);
    GameTextForPlayer(playerid,"~w~-> ~r~ToT ~w~<-",1000,3);
    GameTextForPlayer(killerid,"~w~-> Kill <-",1000,3);
    SetPlayerScore(killerid,(GetPlayerScore(killerid)+1));
    if(killerid == INVALID_PLAYER_ID){
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    }
    else
    {
    SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
    Todeupdate(playerid);
    SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);
    Killupdate(killerid);
    SpielerSpeichern(playerid);
    SpielerSpeichern(killerid);
    }


    return 1;
    }

    Pessimisten sind Optimisten mit Erfahrung!