Beiträge von Jeffry

    new time = gettime()-3600;


    Das stimmt nicht.
    Hast du bei deinem tban Befehl das +3600 noch dran oder nicht?
    Wenn ja:
    new time = gettime()+3600;


    Wenn nein:
    new time = gettime();



    Wenn es so noch immer nicht klappt, poste bitte den Befehl und das aktuelle OnPlayerConnect nochmal.




    EDIT:
    Domain_26: Super! :thumbup: (PS: Nicht wahrscheinlich, sondern auf jeden Fall ;)).

    Du musst den Befehl aussplitten, sonst klappt das nicht:
    new cmd[20], idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp(cmd, "/admin", true, 6) == 0 || strcmp(cmd, "/a", true, 2) == 0)
    {
    if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid, rot,"Du hast keine Berechtigung!");
    new tmp[20];
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,gelb,"* Verwendung: /a(dmin) [text]");
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    new string[100];
    format(string,sizeof(string),"{32CD32}**AChat: %s: %s",name,cmdtext[strlen(cmd)+1]);
    for(new ii=0; ii<MAX_PLAYERS; ii++) if(IsPlayerAnAdmin(playerid,1))SendClientMessage(ii,GetPlayerColor(playerid),string);
    print("Adminchat wurde ausgeführt");
    return 1;
    }


    Ganz unten in dem Gamemode:
    stock strtok(const string[], &index) //©Jeffry
    {
    new result[20], length = strlen(string), i = index;
    while ((i < length) && (string[i] == ' ')) i++;
    strmid(result,string,i,((index = strfind(string, " ", false, i)) == -1) ? (index = length) : (index) , 20);
    index++;
    return result;
    }

    Das liegt dann daran, dass der Wert hiervon noch 0 ist.
    GetPVarInt(playerid,"Timeban")


    Das musst du zuvor aus der Spielerdatei laden.



    Außerdem musst du beim Laden des Grundes und des Admins den Wert in eine Variable schreiben, sonst bringt es nichts.


    Versuch das mal zu realisieren, wenn du mit der Erklärung nicht klar kommst, poste nochmal den Code wie du ihn bis dahin hast, dann kann ich es dir machen.

    Alle Objekte? Ich hoffe du meinst alle Objekte mit der angegebenen Model ID, sonst wäre die Map ja leer.
    public OnPlayerConnect(playerid)
    {
    //Spawn Bahnhof LS
    RemoveBuildingForPlayer(playerid, 4025, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 4070, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 4071, 0.0, 0.0, 0.0, 6000.0);
    RemoveBuildingForPlayer(playerid, 4072, 0.0, 0.0, 0.0, 6000.0);
    return 1;
    }
    Würde alle Default-Objekte mit den 4 Model IDs entfernen, im ganzen Spiel.

    Es gibt die Sekunden seit 01.01.1970 zurück, normalerweise in GMT Zeit, und wir sind ja gerade GMT+1.
    Wenn du das beibehalten willst, dann musst du hier die Änderung machen, die anderen zwei Änderungen kannst du dann vergessen:


    new time = gettime();
    zu:
    new time = gettime()+3600;


    PS: Vergesse nicht, dass wir in einem halben Jahr wieder Sommerzeit haben, also GMT+2.

    In diesem Fall ist es relativ egal.
    Wenn man aber Vehicles auch entfernt und wieder erstellt, muss man das jedes mal zurücksetzen, und immer die Vehicle ID abfragen, das kann schneller zu Fehler führen. Leichter und ressourcenschonender ist es hier mit dem Spieler zu arbeiten, anstatt dem Fahrzeug.

    Das ist komisch.
    Hast du im Compiler eine mehrzeilige Meldung mit vielen Zahlen? Wenn nein, dann nimm die Print Zeile mit dem Job und füge sie über die andere Print Zeile ein, die die kommt. Kommt der Job Print dann?


    Wenn du eine mehrzeilige Meldung hast, dann füge unter den Includes
    #pragma dynamic 100000
    ein.

    Wie sonst? Nur, dass das strval da nicht hingehört.


    ocmd:ueberweisung(playerid,params[])
    {
    new string[128],pID,uberweisunggeld;
    if(sscanf(params,"ui",pID,uberweisunggeld))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Nutze /uberweisung [ID/NAME] [GELD]");
    if(pID == playerid)return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Du kannst dir nicht selber Geld überweisen!");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Der Spieler ist nicht Online!");
    if(uberweisunggeld > sInfo[playerid][sBankgeld])return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto");
    format(string,sizeof(string),"Du hast %s %i$ überwiesen! Kontostand: %i$",SpielerName(pID),uberweisunggeld,sInfo[playerid][sBankgeld]);
    SendClientMessage(playerid,FARBE_ORANGE,string);
    format(string,sizeof(string),"Du hast von %s %i$ Überwiesen bekommen! Kontostand: %i$",SpielerName(playerid),uberweisunggeld,sInfo[pID][sBankgeld]);
    SendClientMessage(pID,FARBE_ORANGE,string);
    sInfo[playerid][sBankgeld] -= uberweisunggeld;
    sInfo[pID][sBankgeld] += uberweisunggeld;
    SpielerSpeichern(pID);
    SpielerSpeichern(playerid);
    return 1;
    }


    Probiere es aus.

    Klammersetzung und der ganze Aufbau passt nicht.


    So ist es besser:
    if(strcmp(cmdtext, "/repair", true) == 0)
    {
    if(GetPlayerMoney(playerid)<10000) return SendClientMessage(playerid,COLOR_RED,"Um Dein Auto zu reparieren brauchst du 10.000$!");
    SendClientMessage(playerid, 0x6CAFF9FF, "Du hast dein Auto Repariert!");
    SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
    PlayerPlaySound(playerid,1057,0,0,0);
    GivePlayerMoney(playerid, -10000);
    return 1;
    }

    Naja, das bringt nur nichts, wenn der Code nicht aufgerufen wird.
    Füge den Bestatter Code
    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;
    }
    }


    mal ganz als erstes bei OnPlayerStateChange ein, also direkt unter die erste öffnende geschwungene Klammer. Geht es dann?

    Ich habe es so getestet, in einem Filterscript, das geht bei mir:
    #include <a_samp>


    new pdtor1;
    public OnFilterScriptInit()
    {
    pdtor1 = CreateObject(980,1539.80004883,-1627.80004883,15.19999981,0.00000000,0.00000000,90.20056152); //
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmdtext, "/pdweg", true) == 0)
    {
    CreateExplosion(1539.80004883,-1627.80004883,15.19999981, 7, 10);
    DestroyObject(pdtor1);
    SetTimer("pdwiederda",5000,0);
    return 1;
    }
    return 0;
    }


    forward pdwiederda();
    public pdwiederda()
    {
    printf("Objekt wieder erstellt.");
    pdtor1 = CreateObject(980,1539.80004883,-1627.80004883,15.19999981,0.00000000,0.00000000,90.20056152); //
    return 1;
    }


    Versuch das mal bei dir. Kommt der print?


    Hast du eventuell eine mehrzeilige Meldung mit vielen Zahlen im Compiler?
    Oder hast du das Limit an Objekten überschritten?