Admincar bug

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
  • Hey ho,
    ich habt das GNE script. Dort gibt es den Befehl "/supmobil" mit dem Befehl erstellt man ein Auto wo ein Textdraw ( ich bin nicht sicher ob das ein Textdraw ist :D ) drauf ist in diesem Fall : " Admin Car von [AdminName]" Alles ist super und klappt auch doch einen Bug gibt es.
    Gehen wir mal davon aus das ich 10 User auf dem Server habe. Ich erstell mir also ein Admin Car und fahr damit durch die Gegend um zu gucken was los ist ( alles nur beispiele ) Nun steige ich aus ohne das Admin Car zu zerstören und dann kommt der Bug. Wenn jetzt User 1 ( Mr.X) sich ein Autokaufen will also vom Autohaus steht dann da " Admin Car von Mr.XY" (Mr.XY ist user 2 :) ) Dieses Auto kann er dann nicht fahren aber hat dafür gezahlt :x wie kann ich das beheben ?


    Kommen wir zum Befehl :

    if(strcmp(cmd, "/acar", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pAdmin] >= 1||PlayerInfo[playerid][pSupporter] >= 1)
    {
    if(acar[playerid] != 0)
    {
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(acar[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(acar[playerid],VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective);
    DestroyVehicle(acar[playerid]);
    Delete3DTextLabel(suptext[playerid]);
    SendClientMessage(playerid, COLOR_GREY, "Fahrzeug vernichtet.");
    acar[playerid] = 0;
    }
    else
    {
    ShowPlayerDialog(playerid, DIALOG_ACAR, DIALOG_STYLE_LIST, "Fahrzeug Auswahl", "1. Comet\n2. Sultan\n3. Bus\n4. NRG\n5. Boot\n6. Heli\n7. Fahrzeug ID", "Auswahl", "Abbrechen");
    }
    }
    else return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Admin.");
    }
    return 1;
    }


    Hier sind mal die Funktionen also vom erstellen und vom "anklatschen" des Labels:

    Function SupLabel(playerid)
    {
    if(acar[playerid] != 0)
    {
    Delete3DTextLabel(suptext[playerid]);
    format(stringx, sizeof(stringx), "Admin Car von %s", MeinName(playerid));
    suptext[playerid] = Create3DTextLabel(stringx, 0xFF00FFFF, 0.0, 0.0, 0.0, 30.0, 0, 1);
    Attach3DTextLabelToVehicle(suptext[playerid], acar[playerid], 0.0, 0.0, 0.3);
    }
    else KillTimer(suplabeltimer[playerid]);
    return 1;
    }


    Function CreateAcar(playerid, carid) {
    new Float:cX, Float:cY, Float:cZ, Float:cZa, rand1, rand2;
    GetPlayerPos(playerid, cX, cY, cZ);
    GetPlayerFacingAngle(playerid, cZa);
    rand1 = random(126);
    rand2 = random(126);
    acar[playerid] = CreateVehicle(carid, cX, cY, cZ, cZa, rand1, rand2, 0);
    PutPlayerInVehicle(playerid, acar[playerid], 0);


    format(stringx, sizeof(stringx), "Admin Car von %s", MeinName(playerid));
    suptext[playerid] = Create3DTextLabel(stringx, 0xFF009BFF, 0.0, 0.0, 0.0, 30.0, 0, 1);
    Attach3DTextLabelToVehicle(suptext[playerid], acar[playerid], 0.0, 0.0, 0.3);
    suplabeltimer[playerid] = SetTimerEx("SupLabel", 10000, 1, "i", playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(acar[playerid],engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(acar[playerid],VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective);


    return 1;
    }

  • Nimm einfach den Timer raus ist sowieso totaler Schwachsinn da einen Timer zu nehmen..


    Einfach beim Befehl zerstören /deletesubmobil oder so) und dann bei onplayerdisconnect
    fertig


    Sollte funktionieren ohne Probleme

    ik bin der vito c: