Beiträge von Jeffry

    Du musst den ersten Wert bei PlayerTextDrawTextSize großer machen. Mach es zu 430 oder so.


    Zum Post unter mir:
    Schlechte Idee, einzelne Textdraws zu machen, wenn man das Limit von 2048 Textdraws bedenkt. Das ist schon gut so wie du es hast, die CPU stört das nicht.
    EDIT: Stimmt, bei PlayerTextDraws ist es relativ egal, ich persönlich bevorzuge dennoch ein Textdraw, Angewohnheit aus Zeiten vor PlayerTextDraws (@BlackAce), sollte auch, zumindest wenn man mehr als einen Wert gleichzeitig aktualisiert schneller sein, wobei man das nicht merkt. Realtiv egal.

    new string[128], vID, engine, lights, alarm, doors, bonnet, boot, objective;
    vID = GetPlayerVehicleID(playerid);
    GetVehicleParamsEx(vID, engine, lights, alarm, doors, bonnet, boot, objective);
    if(engine == 1) format(string, sizeof(string), "Motor: An");
    else format(string, sizeof(string), "Motor: Aus");
    TextDrawSetString(Textdraw15 ,string);


    Und der Code muss dort hin wo du den Motor an bzw aus machst, oder wenn du in das Fahrzeug einsteigst.


    Außerdem wird das Textdraw nur für einen Spieler funktionieren, du solltest wenn nötig mit PlayerTextdraws arbeiten.

    1.) Eigentlich ja, wobei so lange Ladezeiten nicht wirklich toll sind. Aber das ist eben MySQL.


    2.) Ok


    3.) Eine Schleife ist eine Wiederholung, für alle i Werte. Also zum Beispiel:
    Inhalt[0]=1;
    Inhalt[1]=1;
    Inhalt[2]=1;
    Kannst du schreiben als
    for(new i=0; i<=2; i++) Inhalt[i]=1;


    4.) Super!


    5.) Mit GetVehicleParamsEx machst du das, und dann auch den string ändern.


    6.) Härter? Du meinst man kann zur Zeit einfach durchlaufen?
    Wenn ja, das geht nur, wenn du dahinter ein weiteres Objekt setzt, welches man nicht sieht. Oder du setzt das Material eines anderen Objekts zu dem den Tores.

    Es ist ja trotzdem noch in der "i"-Schleife, nur es muss aus der "r"-Schleife raus.
    Ich habe es dir in meinem Code oben markiert. Du kannst auch einfach den Code kopieren, dann machst du es nicht wieder an die falsche Stelle.

    1.) Das abnormal lange wird wohl an MySQL liegen, wenn es nur vorkommt wenn du den Wert änderst.


    2.)
    Der print gehört unter die MySQL Abfrage, sonst macht deine Ausgabe wenig Sinn:
    SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
    printf("Skin: %d",SpielerInfo[playerid][pSkin]);


    3.) Das ist eine Schleife durch alle Spieler, die auf dem Server möglich sein könnten.

    public IsPlayerDriverTextDrawCheck()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(GetPVarInt(i,"ImFahrzeug")==0)
    {
    if(IsPlayerInAnyVehicle(i) && GetPlayerState(i) == PLAYER_STATE_DRIVER)
    {
    SetPVarInt(i,"ImFahrzeug",1);
    updatevehicleanzeigetimer[i] = SetTimerEx("UpdateVehicleAnzeigeTimer",250,true,"i",i); //HIER ist außerhalb der "r"-Schleife
    for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
    {
    PlayerTextDrawShow(i,Fahrzeuganzeige[i][r]);
    }
    for(new s=0; s<MAX_VEHICLEANZEIGETEXT; s++)
    {
    PlayerTextDrawShow(i,Vehicleanzeigetext[i][s]);
    }
    }
    }
    else if(GetPVarInt(i,"ImFahrzeug")==1)
    {
    if(!IsPlayerInAnyVehicle(i) || GetPlayerState(i) != PLAYER_STATE_DRIVER && GetVehicleDriver(i) != i)
    {
    SetPVarInt(i,"ImFahrzeug",0);
    for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
    {
    PlayerTextDrawHide(i,Fahrzeuganzeige[i][r]);
    }
    for(new s=0; s<MAX_VEHICLEANZEIGETEXT; s++)
    {
    PlayerTextDrawHide(i,Vehicleanzeigetext[i][s]);
    }
    KillTimer(updatevehicleanzeigetimer[i]);
    }
    }
    }
    return 1;
    }


    Der Timer gehört nicht in die Schleife.

    public UpdateVehicleAnzeigeTimer(playerid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective, string[512], Float: health, maxliter, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
    vehicleid = GetPlayerVehicleID(playerid);
    maxliter = VehicleInfo[vehicleid][MaxTank] / 100;
    GetVehicleHealth(vehicleid,health);
    printf("playerid: %d | vehicleid: %d", playerid, vehicleid);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    format(string,sizeof(string),"Fahrzeugname: ~w~%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
    print(string);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][0],string);
    print("Fahrzeuganzeige[playerid][0] gesetzt");
    format(string,sizeof(string),"Geschwindigkeit: ~r~%i ~y~km/h~",GetVehicleSpeed(vehicleid));
    print(string);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][1],string);
    print("Fahrzeuganzeige[playerid][1] gesetzt");
    format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter);
    print(string);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);
    print("Fahrzeuganzeige[playerid][2] gesetzt");
    return 1;
    }


    Was wird geprintet?


    Das hier nennt sich übrigens "debuggen".

    Falscher Code. ;)


    Du sollst den Code posten, der das hier enthält:
    format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);

    Ok, dann poste bitte mal alles was da dazu gehört:
    format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);


    Am besten das ganze public.



    Du hast nicht zufällig im Compiler ganz viele Zahlen stehen, oder?

    Die kritisierst Du allerdings merkwürdigerweise nur an mir, allerdings am Threadersteller nicht, der anscheinend eine "Null-Bock-Stimmung" in Sachen Recherche hatte.
    Entweder ganz oder garnicht. Deine Worte.


    Damit hast du Recht, das stimmt. Er hätte sich auch nach diesem Thread richten können, dann hätte er den Thread wohl nicht erstellen müssen: Tipps: Scripting-Probleme richtig erklären


    Aber wenn er das nicht macht, muss man sich nicht auf das gleiche Niveau der Stimmung gegeben. Es wird schließlich auch noch anderen in der Zukunft helfen, nicht nur ihm. ;)

    Ja aber dann spawnt er dann schon ,dann brauche ich es ja nicht mehr.. ich brauche es ganz am anfang


    Dann musst du den Skin direkt aus der Datei auslesen, bei OnPlayerConnect. Schau nach, wie du es bei LoadPlayer machst, und lade so den Skin-Stat in eine Variable, und lasse dir den Skin dann so anzeigen. Musst nur prüfen, ob der Spieler registriert ist.