Textdraw Kill Updatet nicht :0

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums
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 Community,


    seit fast 2h Gurkel ich an dieser Sache rum..
    Er Updatet den String einfach nicht, warum auch immer :/


    Textdraw (Unter OnGameModeInit)



    Killsa = TextDrawCreate(78.0,426.0,"0");
    TextDrawLetterSize(Text:Killsa,0.5,1.2);
    TextDrawFont(Killsa,2);
    TextDrawSetProportional(Killsa,1);
    TextDrawSetOutline(Killsa,1);
    TextDrawSetShadow(Killsa,4);


    Und bei OnPlayerDeath:



    Spieler[killerid][Kill] ++;
    format(str2,sizeof(str2),"%i",Spieler[killerid][Kill]);
    TextDrawSetString(Killsa,str2);

  • Du musst ihn einmal hiden und dann wieder anzeigen!

  • Also erstmal muss der Textdraw für jeden Spieler unterschiedlich sein:
    Text:Kill[MAX_PLAYERS];


    Dann unter OnPlayerDeath... TextDrawHideForPlayer(playerid, Kill[playerid]);
    Und dann wieder anzeigen, nachdem der String geändert wurde!

  • Unter OnPlayerDeath das hier einbauen



    TextDrawHideForPlayer(playerid, Killsa);
    TextDrawSetString(Killsa,str2);
    TextDrawShowForPlayer(playerid, Killsa);


    EDIT:


    Ich würde dir PlayerTextdraws empfehlen die extra dafür geschaffen sind. Erklärungen findest du auf Wiki ;)

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Leider immer noch nicht.


    Wenn ich Text:Killsa[MAX_PLAYERS];
    reinpacke krieg ich das. ->


    Code
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(73) : error 033: array must be indexed (variable "Killsa")
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(74) : error 035: argument type mismatch (argument 1)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(75) : error 035: argument type mismatch (argument 1)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(76) : error 035: argument type mismatch (argument 1)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(77) : error 035: argument type mismatch (argument 1)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(78) : error 035: argument type mismatch (argument 1)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(102) : error 035: argument type mismatch (argument 2)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(140) : error 035: argument type mismatch (argument 2)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(141) : error 035: argument type mismatch (argument 1)
    C:\Users\Andrzej\Desktop\Mr.Deathmatch\gamemodes\dm.pwn(142) : error 035: argument type mismatch (argument 2)
  • Es muss auch new Text:Killsa[MAX_PLAYERS]; dann heißen.

  • Machst du unter OnGameModeInit eine for Schleife und machst Killsa[i] =

    Einmal editiert, zuletzt von Sarruths ()

  • Wenn ich;


    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Killsa = TextDrawCreate(78.0,426.0,"0");
    TextDrawLetterSize(Text:Killsa,0.5,1.2);
    TextDrawFont(Killsa,2);
    TextDrawSetProportional(Killsa,1);
    TextDrawSetOutline(Killsa,1);
    TextDrawSetShadow(Killsa,4);
    }


    Mache kommen immernoch die selben Errors.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Killsa[i] = TextDrawCreate(78.0,426.0,"0");
    TextDrawLetterSize(Killsa[i],0.5,1.2);
    TextDrawFont(Killsa[i],2);
    TextDrawSetProportional(Killsa[i],1);
    TextDrawSetOutline(Killsa[i],1);
    TextDrawSetShadow(Killsa[i],4);
    }


    So gehört es auch ;)

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

  • Hab es nun so:


    new Text:Killsa[MAX_PLAYERS];



    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    Killsa[i] = TextDrawCreate(78.0,426.0,"0");
    TextDrawLetterSize(Killsa[i],0.5,1.2);
    TextDrawFont(Killsa[i],2);
    TextDrawSetProportional(Killsa[i],1);
    TextDrawSetOutline(Killsa[i],1);
    TextDrawSetShadow(Killsa[i],4);
    }


    TextDrawShowForPlayer(playerid,Killsa[playerid]);


    public OnPlayerDeath(playerid, killerid, reason)
    {
    Spieler[killerid][Kill] ++;
    TextDrawHideForPlayer(playerid, Killsa[killerid]);
    format(str2,sizeof(str2),"%i",Spieler[killerid][Kill]);
    TextDrawSetString(Killsa[killerid],str2);
    TextDrawShowForPlayer(playerid, Killsa[killerid]);
    return 1;
    }


    Leider gehts immer noch nicht :/

  • Hahaha mir ist der Fehler aufgefallen xD


    Spieler[killerid][Kill] ++;
    TextDrawHideForPlayer(killerid, Killsa[killerid]);
    format(str2,sizeof(str2),"%i",Spieler[killerid][Kill]);
    TextDrawSetString(Killsa[killerid],str2);
    TextDrawShowForPlayer(killerid, Killsa[killerid]);


    du hast das Textdraw dem gestorbenen geupdatetet und nicht dem der einen Kill mehr gemacht hat. So sollte es gehen ;)

    Die Macht etwas zu bewirken, ist in Dir. Du musst sie nur rauslassen


    cristiano-ronaldo-525-portugal-euro-2012-banner-wallpaper.jpg

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