Beiträge von Jeffry

    Du hast die Größenabfrage falsch herum gemacht und ich habe es immer schön mitkopiert. :whistling:


    if(health > 400 && mSchaden[playerid] == 0)
    zu:
    if(health < 400 && mSchaden[playerid] == 0)

    Nein, du nutzt hier nur "Name":
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Name(pID));
    Ebenso bei SpielerSpeichern.


    Entweder du änderst das zu NamePlayer, oder du schaust dir mal die "Name" Funktion an, bzw änderst diese zu dem gleichen wie NamePlayer.

    Ok, da haben wir doch das Problem.
    Poste bitte mal deine "Name" Funktion. Die gibt nämlich nichts zurück, deshalb klappt auch dein SpielerSpeichern nicht.

    Debugge es bitte mal und poste dann was im Log steht wenn du in das Fahrzeug einsteigst:
    printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
    if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
    if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
    {
    printf("Entfernt.");
    SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }

    Kopiere den Code von oben nochmal, ich hatte da einen Parameter vergessen und poste den Log nochmal.
    Nebenbei kannst du mir noch beantworten, ob du im Compiler eine mehrzeilige Meldung mit vielen Zahlen hast?

    Willkommen auf Breadfish!


    tmptime = (gettime()+3600)+(60*zeit);
    zu:
    tmptime = gettime()+(60*zeit);



    Und
    new restzeit = (GetPVarInt(playerid,"Timeban") - time - 3600)/60;
    zu:
    new restzeit = (GetPVarInt(playerid,"Timeban") - time)/60;



    Dann dürfte es klappen.

    Wie ist es denn bei dir aufgebaut? Sind alle Jobs Bestatter, außer der 33? Wenn nicht, ändere es zu:
    if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }


    Oder hast du eventuell noch andere Job IDs für Bestatter?

    Was wird so geprintet?
    ocmd:ban(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Du hast kein Admin Level 3.");
    new pID, reason[128],string[144],name[MAX_PLAYER_NAME],pIDname[MAX_PLAYER_NAME];
    if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,GELB,"Tippe: /ban [id] [grund]");
    GetPlayerName(playerid,name,sizeof(name));
    format(string,sizeof(string),"Du wurdest von %s gebannt. Grund: %s",name,reason);
    SendClientMessage(pID,ROT, string);
    GetPlayerName(pID,pIDname,sizeof(pIDname));
    format(string,sizeof(string),"Du hast den Spieler %s erfolgreich gesperrt.",pIDname);
    SendClientMessage(playerid,-1,string);
    SetPVarInt(pID,"Gesperrt",1);
    new Spieler[128];
    printf("Account suche");
    format(Spieler,sizeof(Spieler),"/Accounts/%s.txt",Name(pID));
    printf("Spieler: %s -> %d", Spieler, fexist(Spieler));
    printf("reason: %s", reason);
    dini_Set(Spieler,"bangrund",reason);
    dini_Set(Spieler,"banadmin",Name(playerid));
    printf("Dini Bearbeitung");
    SetTimerEx("Gebannt",200,false,"d",pID);
    Log("BanLog",string);
    return 1;
    }


    Werden eigentlich die anderen stats gespeichert?

    Wie sieht es aus, wenn du es so debuggst?
    new FuelDropVar = GetPVarInt(playerid,"FuelDrop");
    printf("Aufruf: %d playerid: %d FuelDropVar: %d (soll: %d)",gettime(),playerid,FuelDropVar,FuelDropRate[vehicleid]);
    SetPVarInt(playerid,"FuelDrop",FuelDropVar+1);
    if(FuelDropRate[vehicleid] == FuelDropVar)
    {
    printf("Tank runter");
    SetPVarInt(playerid,"FuelDrop",0);
    centerTank[vehicleid] -= FuelDropValue[vehicleid];
    if(centerTank[vehicleid] < 0) centerTank[vehicleid] = 0;
    if(wingTankLimit[vehicleid] != 0)
    {
    leftTank[vehicleid] -= FuelDropValue[vehicleid];
    if(leftTank[vehicleid] < 0) leftTank[vehicleid] = 0;
    rightTank[vehicleid] -= FuelDropValue[vehicleid];
    if(rightTank[vehicleid] < 0) rightTank[vehicleid] = 0;
    }
    }

    Unter die Includes:
    new mSchaden[MAX_PLAYERS];


    forward VehicleHealth();
    public VehicleHealth()
    {
    for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new Float:health;
    new veh = GetPlayerVehicleID(playerid);
    GetVehicleHealth(veh, health);
    if(health > 400 && mSchaden[playerid] == 0)
    {
    mSchaden[playerid] = 1;
    SendClientMessage(playerid,0xFF0000FF,"Du hast einen Motorschaden!");
    }
    }
    }
    }
    return 1;
    }


    Und beim Befehl:
    if(mSchaden[playerid] == 1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Motoschaden!");

    Steht der Ban im BanLog?
    Hast du dein SpielerSpeichern geändert?


    Wird es denn gespeichert, wenn du den Spieler nicht kickst, sprich den Timer der gestartet wird mal auskommentierst und gleich nach dem Befehl in die Datei schaust?

    forward IsARomero(carid);
    public IsARomero(carid)
    {
    new modelid = GetVehicleModel(carid);
    if(modelid == 442)
    {
    return 1;
    }
    return 0;
    }

    if(IsARomero(GetPlayerVehicleID(playerid)))
    {
    if(PlayerInfo[playerid][pJob] == 33 || IsPlayerNPC(playerid))
    {
    SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    }

    Ja, genau wie ich gesagt hatte.
    SetTimer("Gebannt",1450,false);
    zu:
    SetTimerEx("Gebannt",1450,false,"d",pID);


    Und:
    stock SpielerSpeichern(playerid){
    if(!GetPVarInt(playerid,"loggedin"))return 1;
    new pfad[64];
    format(pfad,64,"/Accounts/%s.txt",Name(playerid));
    dini_IntSet(pfad,"Alter Name",GetPVarInt(playerid,"Alter Name"));
    dini_IntSet(pfad,"Level",GetPlayerScore(playerid)),dini_IntSet(pfad,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(pfad,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(pfad,"Gesperrt",GetPVarInt(playerid,"Gesperrt")),dini_IntSet(pfad,"Warns",GetPVarInt(playerid,"Warns"));
    dini_IntSet(pfad,"IP",GetPVarInt(playerid,"IP")),dini_IntSet(pfad,"Name",GetPVarInt(playerid,"Name"));
    dini_IntSet(pfad,"Tode",GetPVarInt(playerid,"Tode"));
    dini_IntSet(pfad,"Kills",GetPVarInt(playerid,"Kills")),dini_IntSet(pfad,"Banned1",GetPVarInt(playerid,"Banned1"));
    dini_IntSet(pfad,"Kick1",GetPVarInt(playerid,"Kick1")),dini_IntSet(pfad,"Donator",GetPVarInt(playerid,"Donator"));
    dini_IntSet(pfad,"Clan",GetPVarInt(playerid,"Clan"));
    dini_IntSet(pfad,"Respektpunkte",GetPVarInt(playerid,"Respektpunkte")),dini_IntSet(pfad,"Mute",GetPVarInt(playerid,"Mute"));
    return 1;
    }
    Da du es bei /ban direkt in die Datei speicherst, brauchst du es bei SpielerSpeichern nicht mehr.