Problem mit public

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,
    ich habe ein kleines Problem.
    Alles was in meiner public passiert (hinter dem Timer)
    passiert bei dem Spieler mit ID 0.
    Nicht bei dem ausführenden Spieler.
    public reptimer(playerid)
    {
    new string[256];
    new Float:health;
    new veh;
    veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    MoveObject(adacgate, -2047.22949219,141.51855469,25.80463982,3);
    //--------------------------------------------
    if(health >1000)
    {
    format(string, sizeof(string), "vehicle_%d.sav", GetPlayerVehicleID(playerid)); // Put the location of the file inside the (" ").
    dini_IntSet(string,"panne",(0));
    SendClientMessage(playerid,COLOR_GREEN,"------Rechnung------");
    SendClientMessage(playerid,COLOR_GREEN,"--------0$---------");
    SendClientMessage(playerid,COLOR_GREEN,"--------------------");
    SendClientMessage(playerid,COLOR_GREEN,"Dein Auto ist bereits repariert!");
    }
    //--------------------------------------------
    ............


    return 1;
    }



    Woran liegt das?
    Er repariert das falsche Auto (das von Spieler 0)
    Er zieht das Geld dem falschen Spieler ab, und die "Rechnung" bekommt auch der falsche. -.-

  • if(strcmp(cmd, "/rep", true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, -2047.59106445,145.85472107,28.20585251))
    {
    SendClientMessage(playerid,COLOR_RED,"Auto wird repariert. Bitte warten.");
    MoveObject(adacgate, -2047.23022461,141.51875305,29.80463982,3);
    SetTimer("reptimer",3500,false);


    }
    return 1;
    }
    Ein ganz normaler Timer ?(

  • Ok dei Fehler ist:
    Der Timer leitet die Variable "playerid" nicht weiter, die für die Funktion wichtig ist.
    Änder mal den Timer auf:
    SetTimerEx("reptimer",3500,false, "i", playerid);


    dann wird die Variable übergeben, und die Funtion reptimer kann korrekt arbeiten ;)