Beiträge von FLASH.[8743]

    Also folgendes:


    Fahrzeuganzeige[playerid][1] wird geprintet funtkioniert auch alles.
    Output: Fahrzeuganzeige[playerid][1] = 1


    Fahrzeuganzeige[playerid][2] da wird garnichts geprintet bzw. es kommt nichtmal ne Meldung in der .exe


    Warum geht die nicht an??

    Es verschwindet jetzt irgendwie wieder ein Textdraw, allerdings ein anderes als zuvor.


    Und dieses TextDraw wird nicht geupdatet:


    format(string,sizeof(string),"%i%%~n~",VehicleInfo[vehicleid][Tank]/maxliter);
    PlayerTextDrawSetString(playerid,Fahrzeuganzeige[playerid][2],string);


    Fahrzeuganzeige[playerid][2] = CreatePlayerTextDraw(playerid,500.000000, 416.000000, "Ladevorgang...~n~");
    PlayerTextDrawAlignment(playerid,Fahrzeuganzeige[playerid][2], 2);
    PlayerTextDrawBackgroundColor(playerid,Fahrzeuganzeige[playerid][2], 255);
    ...

    Ich hab jetzt alles in PlayerTextDraws umgeschreiben...
    Jetzt wird garnichts mehr angezeigt..
    Meine Frage: Das Limit für PlayerTextDraws liegt bei 256.
    Heisst das dann, dass die 256 pro Spieler gilt oder Pro TextDraw??


    Also z.B



    xxx[id1] = CreatePlayerTextDraw(playerid1,....); // 1 TextDraw
    xxx[id] = CreatePlayerTextDraw(playerid2,....); // 2 TextDraws


    oder


    xxx[id1] = CreatePlayerTextDraw(playerid1,....); // 1 TextDraw
    xxx[id] = CreatePlayerTextDraw(playerid2,....); // 1 TextDraws


    D.h. welches der beiden Optionen trifft zu??

    Das mit dem neuen TextDraw klappt nicht!
    Es ist verbuggt, wie vorher auch.


    Ich denke mal es liegt an
    IsPlayerDriverTextDrawCheck


    Irgendetwas ist falsch oder er setzt die Variablen nicht.
    WARUM GIBT ES DENN DIESE LIMITS?
    Mit PVars gibts Limits, mit TextDraws, was bringt mir das??

    Hier
    public UpdateVehicleAnzeigeTimer(playerid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective, string[256], Float: health, maxliter, vehicleid, enginestate[32], lightstate[32], carlockstate[32];
    vehicleid = GetPlayerVehicleID(playerid);
    GetVehicleHealth(vehicleid,health);
    if(strcmp(GetVehicleEngineState(vehicleid),"Eingeschaltet",true))enginestate = "~r~Ausgeschaltet";
    if(strcmp(GetVehicleEngineState(vehicleid),"Ausgeschaltet",true))enginestate = "~g~Eingeschaltet";
    if(strcmp(GetVehicleLightState(vehicleid),"Eingeschaltet",true))lightstate = "~r~Ausgeschaltet";
    if(strcmp(GetVehicleLightState(vehicleid),"Ausgeschaltet",true))lightstate = "~g~Eingeschaltet";
    if(strcmp(GetVehicleCarlockState(vehicleid),"Aufgeschlossen",true))carlockstate = "~r~Abgeschlossen";
    if(strcmp(GetVehicleCarlockState(vehicleid),"Abgeschlossen",true))carlockstate = "~g~Aufgeschlossen";
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    format(string,sizeof(string),"Fahrzeugname: ~w~%s~,VehicleNames[GetVehicleModel(vehicleid) - 400]);
    TextDrawSetString(Fahrzeuganzeige[playerid][0],string);
    format(string,sizeof(string),"......");
    TextDrawSetString(Fahrzeuganzeige[playerid][1],string);
    format(string,sizeof(string),"......");
    TextDrawSetString(Fahrzeuganzeige[playerid][2],string);
    return 1;
    }

    Eigentlich wird kein Code aufgerufen.
    Allerdings hab ich gemerkt, dass nach ungefähr einer Minute der bug nicht mehr auftritt?
    Also dann ist alles in Ordnung.


    Es wird halt nur "updatevehicleanzeigetimer[i] = SetTimerEx("UpdateVehicleAnzeigeTimer",250,true,"i",i);
    "


    aufgerufen allerdings wird da nur der String geupdatet und der Betroffene String ist nicht dabei, der verbugt ist.

    for(new i=0; i<MAX_PLAYERS+1; i++)
    {

    Fahrzeuganzeige[i][0] = TextDrawCreate(362.000000, 285.000000, "....");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][0], -1);
    TextDrawFont(Fahrzeuganzeige[i][0], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][0], 0.500000, 1.000000);
    ......


    Fahrzeuganzeige[i][1] = TextDrawCreate(362.000000, 285.000000, "....");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][1], -1);
    TextDrawFont(Fahrzeuganzeige[i][1], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][1], 0.500000, 1.000000);
    ......
    USW

    Es ist immer noch verbuggt, allerdings ist mir was aufgefallen:
    Wenn ich ein Auto spawne und einsteige geht alles.
    Sobald ich den Motor starte, und 3 sek ca fahre verschwindet ein text.


    Es ist aber immer der letzte Text den ich bei OnGameMode Init erstellt habe, der text, welcher in der letzten Zeile erstellt wurde, ist derjenige der verschwindet.


    Also im Prinzip:


    TextDrawCreate..
    ...
    ...
    //Der Letze Text
    TextDrawCreate der is buggy

    Ja hier lasse ich sie hiden, allerdings nur die fürs Vehicle.
    Und trotzdem wird immer 1 TextDraw mitgehidet


    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);
    for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
    {
    updatevehicleanzeigetimer[i] = SetTimerEx("UpdateVehicleAnzeigeTimer",250,true,"i",i);
    TextDrawShowForPlayer(i,Fahrzeuganzeige[i][r]);
    for(new s=0; s<MAX_VEHICLEANZEIGETEXT; s++)
    {
    TextDrawShowForPlayer(i,Vehicleanzeigetext[s]);
    }
    }
    }
    }
    if(GetPVarInt(i,"ImFahrzeug")==1)
    {
    if(!IsPlayerInAnyVehicle(i) || GetPlayerState(i) != PLAYER_STATE_DRIVER)
    {
    SetPVarInt(i,"ImFahrzeug",0);
    for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
    {
    TextDrawHideForPlayer(i,Fahrzeuganzeige[i][r]);
    for(new s=0; s<MAX_VEHICLEANZEIGETEXT; s++)
    {
    TextDrawHideForPlayer(i,Vehicleanzeigetext[s]);
    }
    }
    KillTimer(updatevehicleanzeigetimer[i]);
    }
    }
    }
    return 1;
    }

    Hey, Leute ich habe ein Problem.
    Ich habe insgesamt ca 1513 TextDraws also noch Platz bis zum Limit.
    Mein Problem: Es verschwinden einfach immer TextDraws ohne Grund, erklären kann ich mir das allerdings nicht.
    Hat einer ne Lösung für dieses Problem?


    Danke,

    Zitat

    Created Serverwise (Per-Player)256

    Was macht denn das für einen Sinn wenn MaxPlayers 500 ist ^^

    Zitat

    Created Serverwise (Global)2048

    Ok, man könnte für jeden Spieler dann die 3 TextDraws erstellen (3 * 500) = 1500
    Dann hätte ich noch ca. 548 TextDrawas zur verfügung.
    Sehe ich das richtig?
    Und ich kann ja dann garnicht PlayerTextDraws ändern, weil die ja nur auf 256 beschränkt sind. (ich brauch mindestens 3 TextDraws für jeden Spieler)
    Also da ist schon der Zeileumbruch dabei bräuchte am Ende ca 3 für jeden

    Hallo Leute,


    Ich hab ein Problem, undzwar spinnen die Textdraws rum fürs Auto, wenn man das Autokennzeichen ändert, verschwinden einfach 3 Textdraws, wenn man das Auto verlääst, verschwinden ganz andere Textdraws, wie z.B. der TextDraw fürs Anzeigen der ServerVersion.
    Und ein Wert wird nicht gesetzt bzw. bei Floats kommt garnichts, nur ein leerer Text.
    Hier die verbuggten Codes


    //GameModeInit
    SetTimer("IsPlayerDriverTextDrawCheck",200,true);
    new Versionstring[128];
    format(Versionstring,sizeof(Versionstring),"~y~Version: ~w~%s",ServerVersion);
    VersionText = TextDrawCreate(635.0,5.0,Versionstring);
    TextDrawColor(VersionText,WEIß);
    TextDrawUseBox(VersionText,0);
    TextDrawAlignment(VersionText,3);
    TextDrawFont(VersionText,1);
    TextDrawLetterSize(VersionText,0.5,1.4);
    TextDrawSetShadow(VersionText,3);
    TextDrawSetProportional(VersionText,1);
    TextDrawSetOutline(VersionText,1);
    TextDrawBackgroundColor(VersionText,0x000000FF);


    for(new i=0; i<MAX_VEHICLES; i++)
    {
    Fahrzeuganzeige[i][0] = TextDrawCreate(500.000000, 241.500000, "Fahrzeuginfos:");
    TextDrawAlignment(Fahrzeuganzeige[i][0], 2);
    TextDrawBackgroundColor(Fahrzeuganzeige[i][0], -1);
    TextDrawFont(Fahrzeuganzeige[i][0], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][0], 0.500000, 1.000000);
    TextDrawColor(Fahrzeuganzeige[i][0], 255);
    TextDrawSetOutline(Fahrzeuganzeige[i][0], 0);
    TextDrawSetProportional(Fahrzeuganzeige[i][0], 1);
    TextDrawSetShadow(Fahrzeuganzeige[i][0], 1);
    TextDrawUseBox(Fahrzeuganzeige[i][0], 1);
    TextDrawBoxColor(Fahrzeuganzeige[i][0], 1145325143);
    TextDrawTextSize(Fahrzeuganzeige[i][0], 0.000000, 276.000000);


    Fahrzeuganzeige[i][1] = TextDrawCreate(362.000000, 254.000000, "Fahrzeugname: ~w~NAME");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][1], -1);
    TextDrawFont(Fahrzeuganzeige[i][1], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][1], 0.500000, 1.000000);
    TextDrawColor(Fahrzeuganzeige[i][1], 255);
    TextDrawSetOutline(Fahrzeuganzeige[i][1], 0);
    TextDrawSetProportional(Fahrzeuganzeige[i][1], 1);
    TextDrawSetShadow(Fahrzeuganzeige[i][1], 0);
    TextDrawUseBox(Fahrzeuganzeige[i][1], 1);
    TextDrawBoxColor(Fahrzeuganzeige[i][1], -225);
    TextDrawTextSize(Fahrzeuganzeige[i][1], 714.000000, 0.000000);


    Fahrzeuganzeige[i][4] = TextDrawCreate(362.000000, 292.250000, "Motor: ~g~ Eingeschaltet");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][4], -1);
    TextDrawFont(Fahrzeuganzeige[i][4], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][4], 0.500000, 1.000000);
    TextDrawColor(Fahrzeuganzeige[i][4], 255);
    TextDrawSetOutline(Fahrzeuganzeige[i][4], 0);
    TextDrawSetProportional(Fahrzeuganzeige[i][4], 1);
    TextDrawSetShadow(Fahrzeuganzeige[i][4], 0);
    TextDrawUseBox(Fahrzeuganzeige[i][4], 1);
    TextDrawBoxColor(Fahrzeuganzeige[i][4], -225);
    TextDrawTextSize(Fahrzeuganzeige[i][4], 714.000000, 0.000000);


    Fahrzeuganzeige[i][5] = TextDrawCreate(362.000000, 279.500000, "Licht: ~g~ Eingeschaltet ?");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][5], -1);
    TextDrawFont(Fahrzeuganzeige[i][5], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][5], 0.500000, 1.000000);
    TextDrawColor(Fahrzeuganzeige[i][5], 255);
    TextDrawSetOutline(Fahrzeuganzeige[i][5], 0);
    TextDrawSetProportional(Fahrzeuganzeige[i][5], 1);
    TextDrawSetShadow(Fahrzeuganzeige[i][5], 0);
    TextDrawUseBox(Fahrzeuganzeige[i][5], 1);
    TextDrawBoxColor(Fahrzeuganzeige[i][5], -225);
    TextDrawTextSize(Fahrzeuganzeige[i][5], 714.000000, 0.000000);


    Fahrzeuganzeige[i][14] = TextDrawCreate(362.000000, 381.500000, "Zustand:~w~");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][14], -1);
    TextDrawFont(Fahrzeuganzeige[i][14], 1);
    TextDrawLetterSize(Fahrzeuganzeige[i][14], 0.500000, 1.000000);
    TextDrawColor(Fahrzeuganzeige[i][14], 255);
    TextDrawSetOutline(Fahrzeuganzeige[i][14], 0);
    TextDrawSetProportional(Fahrzeuganzeige[i][14], 1);
    TextDrawSetShadow(Fahrzeuganzeige[i][14], 0);
    TextDrawUseBox(Fahrzeuganzeige[i][14], 1);
    TextDrawBoxColor(Fahrzeuganzeige[i][14], -225);
    TextDrawTextSize(Fahrzeuganzeige[i][14], 714.000000, 0.000000);


    Fahrzeuganzeige[i][9] = TextDrawCreate(362.000000, 304.750000, "Status: ~r~ Abgeschlossen");
    TextDrawBackgroundColor(Fahrzeuganzeige[i][9], -1);
    TextDrawFont(Fahrzeuganzeige[i][9], 0);
    TextDrawLetterSize(Fahrzeuganzeige[i][9], 0.500000, 1.000000);
    TextDrawColor(Fahrzeuganzeige[i][9], 255);
    TextDrawSetOutline(Fahrzeuganzeige[i][9], 0);
    TextDrawSetProportional(Fahrzeuganzeige[i][9], 1);
    TextDrawSetShadow(Fahrzeuganzeige[i][9], 0);
    TextDrawUseBox(Fahrzeuganzeige[i][9], 1);
    TextDrawBoxColor(Fahrzeuganzeige[i][9], -225);
    TextDrawTextSize(Fahrzeuganzeige[i][9], 714.000000, 0.000000);
    }


    // public


    public UpdateVehicleAnzeigeTimer(vehicleid)
    {
    new engine, lights, alarm, doors, bonnet, boot, objective, string[256], Float: health;
    GetVehicleHealth(vehicleid,health);
    GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
    format(string,sizeof(string),"Fahrzeugname: ~w~%s",VehicleNames[GetVehicleModel(vehicleid) - 400]);
    TextDrawSetString(Fahrzeuganzeige[vehicleid][1],string);
    format(string,sizeof(string),"Motor: ~g~ %s",GetVehicleEngineState(vehicleid));
    TextDrawSetString(Fahrzeuganzeige[vehicleid][4],string);
    format(string,sizeof(string),"Licht: ~g~ %s",GetVehicleLightState(vehicleid));
    TextDrawSetString(Fahrzeuganzeige[vehicleid][5],string);
    format(string,sizeof(string),"Status: ~r~ %s",GetVehicleCarlockState(vehicleid));
    TextDrawSetString(Fahrzeuganzeige[vehicleid][9],string);
    format(string,sizeof(string),"Zustand:~w~%f (%i%%)",health,floatround(health,floatround_round));
    TextDrawSetString(Fahrzeuganzeige[vehicleid][14],string);
    return 1;
    }


    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);
    SetPVarInt(i,"IsPlayerDriverTextDrawCheckVehicleID",GetPlayerVehicleID(i));
    for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
    {
    updatevehicleanzeigetimer[GetPlayerVehicleID(i)] = SetTimerEx("UpdateVehicleAnzeigeTimer",500,true,"i",GetPlayerVehicleID(i));
    TextDrawShowForPlayer(i,Fahrzeuganzeige[GetPlayerVehicleID(i)][r]);
    }
    }
    }
    if(GetPVarInt(i,"ImFahrzeug")==1)
    {
    if(!IsPlayerInAnyVehicle(i) || GetPlayerState(i) != PLAYER_STATE_DRIVER)
    {
    new vid;
    SetPVarInt(i,"ImFahrzeug",0);
    for(new r=0; r<MAX_FAHRZEUGANZEIGETEXT; r++)
    {
    vid = GetPVarInt(i,"IsPlayerDriverTextDrawCheckVehicleID");
    KillTimer(updatevehicleanzeigetimer[vid]);
    TextDrawHideForPlayer(i,Fahrzeuganzeige[vid][r]);
    }
    SetPVarInt(i,"IsPlayerDriverTextDrawCheckVehicleID",0);
    }
    }
    }
    return 1;
    }


    stock GetVehicleEngineState(vehicleid)
    {
    new Status[128], engine, light, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid,engine,light,alarm,doors,bonnet,boot,objective);
    if(engine == 0)
    {
    Status = "Ausgeschaltet";
    }
    else if(engine == 1)
    {
    Status = "Eingeschaltet";
    }
    return Status;
    }


    stock GetVehicleLightState(vehicleid)
    {
    new Status[128], engine, light, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid,engine,light,alarm,doors,bonnet,boot,objective);
    if(light == 0)
    {
    Status = "Ausgeschaltet";
    }
    else if(light == 1)
    {
    Status = "Eingeschaltet";
    }
    return Status;
    }


    stock GetVehicleCarlockState(vehicleid)
    {
    new Status[128], engine, light, alarm, doors, bonnet, boot, objective;
    GetVehicleParamsEx(vehicleid,engine,light,alarm,doors,bonnet,boot,objective);
    if(doors == 0)
    {
    Status = "Aufgeschlossen";
    }
    else if(doors == 1)
    {
    Status = "Abgeschlossen";
    }
    return Status;
    }


    Wo ist der Bug??