Beiträge von Cassius

    Hi, da mein Rechner einen technischen Defekt hat, benutze ich grade meinen etwas älteren Computer mit dem Betriebssystem Windows XP. Komischerweise funktioniert hier kein Skype, beziehungsweise es kann keine Verbindung zum Server hergestellt werden. Weiß einer woran das liegt?


    Viele Grüße
    Cassius

    tvID[playerid] = -1;
    tvbox[playerid] = CreatePlayerTextDraw(playerid,500.000, 250.000, "usebox");
    PlayerTextDrawUseBox(playerid,tvbox[playerid],1);
    PlayerTextDrawSetProportional(playerid,tvbox[playerid],1);
    PlayerTextDrawBoxColor(playerid,tvbox[playerid],0x00000067);
    PlayerTextDrawBackgroundColor(playerid,tvbox[playerid],0x00000067);
    PlayerTextDrawTextSize(playerid,tvbox[playerid],640,480);
    PlayerTextDrawLetterSize(playerid,tvbox[playerid],1.000000,-5.000000);
    PlayerTextDrawAlignment(playerid,tvbox[playerid],0);


    Irgendwie ist bei mir der Text, der angezeigt werden soll auf dem Kopf. Habe ich hier eventuell irgendwo einen Fehler drin, den ich nicht finde? xD


    ocmd:tv(playerid,params[])
    {
    new pID,string[128];
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    PlayerTextDrawShow(playerid,tvbox[playerid]);
    tvID[playerid] = pID;
    return 1;
    }


    ocmd:tvoff(playerid,params[])
    {
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
    PlayerTextDrawHide(playerid,tvbox[playerid]);
    tvID[playerid] = -1;
    return 1;
    }


    Das einzige was ich anders gemacht habe, war das hier;

    Hab ich zu das gemacht: new tvID[MAX_PLAYERS]; - Ein Kollege meinte, so würde es auch gehen

    Also erst einmal checke ich nicht, mit welcher Funktion ich das Textdraw Updaten lassen soll. Also hier, bei dem Callback;

    public tvbox()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i) || tvID[i] != -1)
    {
    //Und hier dann das Textdraw updaten lassen. Am besten du machst über die Box ein zweites Textdraw mit den Daten des Spielers.
    //Die playerid die das Textdraw sieht ist "i", die playerid dessen Daten ausgelesen werden ist "tvID[i]".
    //TextDrawSetString etc...
    }
    }
    }


    Soll ich, wenn ich ein TextDraw für die Spielerdaten erstellen möchte, für alles ein neues Textdraw erstellen? Also bspw, für health ein neues textdraw und für armour auch noch ein separates Textdraw für Armour


    Kann ich das nicht einfach hier machen?;

    tvbox[playerid] = CreatePlayerTextDraw(playerid,636.399963, 309.873321, "usebox");
    PlayerTextDrawUseBox(playerid, tvbox[playerid], 1);
    PlayerTextDrawBoxColor(playerid, tvbox[playerid], 0x00000066);
    PlayerTextDrawLetterSize(playerid,tvbox[playerid], 0.000000, 9.390002);
    PlayerTextDrawTextSize(playerid,tvbox[playerid], 463.600006, 0.000000);
    PlayerTextDrawAlignment(playerid,tvbox[playerid], 1);
    PlayerTextDrawColor(playerid,tvbox[playerid], 0);
    PlayerTextDrawUseBox(playerid,tvbox[playerid], true);
    PlayerTextDrawBoxColor(playerid,tvbox[playerid], 102);
    PlayerTextDrawSetShadow(playerid,tvbox[playerid], 0);
    PlayerTextDrawSetOutline(playerid,tvbox[playerid], 0);
    PlayerTextDrawFont(playerid,tvbox[playerid], 0);


    Dann irgendwie die HP in einer Variable speichern und diese dann im TextDraw speichern und wiedergeben

    Hey,


    habe jetzt nur die Box erstellt, aktueller Befehl:


    new PlayerText:tvbox[MAX_PLAYERS];


    SetTimer("tvbox",1000,1);


    tvbox[playerid] = CreatePlayerTextDraw(playerid,636.399963, 309.873321, "usebox");
    PlayerTextDrawUseBox(playerid, tvbox[playerid], 1);
    PlayerTextDrawBoxColor(playerid, tvbox[playerid], 0x00000066);
    PlayerTextDrawLetterSize(playerid,tvbox[playerid], 0.000000, 9.390002);
    PlayerTextDrawTextSize(playerid,tvbox[playerid], 463.600006, 0.000000);
    PlayerTextDrawAlignment(playerid,tvbox[playerid], 1);
    PlayerTextDrawColor(playerid,tvbox[playerid], 0);
    PlayerTextDrawUseBox(playerid,tvbox[playerid], true);
    PlayerTextDrawBoxColor(playerid,tvbox[playerid], 102);
    PlayerTextDrawSetShadow(playerid,tvbox[playerid], 0);
    PlayerTextDrawSetOutline(playerid,tvbox[playerid], 0);
    PlayerTextDrawFont(playerid,tvbox[playerid], 0);



    ocmd:tv(playerid,params[])
    {
    new pID,string[128];
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    PlayerTextDrawShow(playerid,tvbox[playerid]);
    return 1;
    }


    ocmd:tvoff(playerid,params[])
    {
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
    PlayerTextDrawHide(playerid,tvbox[playerid]);
    return 1;
    }


    Das mit der Box war nicht besonderes, ich konnte leider nicht weiter machen, da ich nicht genau verstanden habe, wie ich diesen Schritt machen soll:

    Setze beim tv Befehl eine SpielerVariable für playerid auf den Wert von pID, damit du später drauf zugreifen kannst.

    Wie & wo genau muss ich das anstellen? Verstehe das nicht ganz, tut mir leid. :p


    Jeffry:

    Hallo,


    ich habe in einem TV System eine TextdrawBox erstellt, in dieser Box möchte ich einige Spielerdaten (z.B HP, Name, etc) des Beobachteten darstellen, hab jedoch kein Plan wie.


    Aktueller Code;




    ocmd:tv(playerid,params[])
    {
    new pID,string[128];
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,COLOR_GREY,"Verwendung: /tv [Spieler]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht online.");
    if(pID == playerid)return SendClientMessage(playerid,COLOR_GREY,"Du kannst dich nicht selbst beobachten.");
    TogglePlayerSpectating(playerid,1);
    PlayerSpectatePlayer(playerid, pID);
    format(string,sizeof(string),"Du beobachtest nun Spieler: %s.",PlayerName(pID));
    SendClientMessage(playerid,COLOR_BLUE,string);
    Textdraw0 = TextDrawCreate(636.399963, 309.873321, "usebox");
    TextDrawLetterSize(Textdraw0, 0.000000, 9.390002);
    TextDrawTextSize(Textdraw0, 463.600006, 0.000000);
    TextDrawAlignment(Textdraw0, 1);
    TextDrawColor(Textdraw0, 0);
    TextDrawUseBox(Textdraw0, true);
    TextDrawBoxColor(Textdraw0, 102);
    TextDrawSetShadow(Textdraw0, 0);
    TextDrawSetOutline(Textdraw0, 0);
    TextDrawFont(Textdraw0, 0);
    Textdraw1 = TextDrawCreate(495.199920, 309.119934, "Leben:");
    TextDrawLetterSize(Textdraw1, 0.264399, 2.257065);
    TextDrawTextSize(Textdraw1, 2.399998, 8.213332);
    TextDrawAlignment(Textdraw1, 3);
    TextDrawColor(Textdraw1, -1);
    TextDrawSetShadow(Textdraw1, 0);
    TextDrawSetOutline(Textdraw1, 0);
    TextDrawBackgroundColor(Textdraw1, 51);
    TextDrawFont(Textdraw1, 1);
    TextDrawSetProportional(Textdraw1, 1);
    TextDrawShowForPlayer(playerid,Textdraw0);
    TextDrawShowForPlayer(playerid,Textdraw1);
    return 1;
    }


    ocmd:tvoff(playerid,params[])
    {
    if(!isAdmin(playerid,1))return SendClientMessage(playerid,COLOR_GREY,"Du darfst diesen Befehl nicht benutzen.");
    TogglePlayerSpectating(playerid,0);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid,COLOR_BLUE,"Du hast die Beobachtung beendet.");
    TextDrawDestroy(Textdraw0);
    TextDrawDestroy(Textdraw1);
    return 1;
    }
    ( Jeffry: ) <3
    Danke im Voraus.


    Viele Grüße