Beiträge von marvin01921

    Ich habe nach langen rumprobieren festgestellt das man einen Spieler nicht freezen ("TogglePlayerControll..") kann.
    Gibts eine Möglichkeit ihn trotzdem zu freezen oder die Camera so zu setzen das man ihn nicht sieht aber ein Haus oder so?

    Ich habe ein Login Menü erstellt aber da kommt nichts wenn ich auf einen Draufklicke.

    Login = CreateMenu("Wilkommen",2,253.333343, 147.674072,100,150);
    AddMenuItem(Login,0, "Einloggen");
    AddMenuItem(Login,0, "Neu Anmelden");
    AddMenuItem(Login,0, "Verlassen");
    Errors kommen keine aber Dialoge auch nicht.


    new Menu:CuMenu = GetPlayerMenu(playerid);
    if(CuMenu == Login)
    {
    switch(row)
    {
    case 0:
    {
    new Spielerdata[128];
    format(Spielerdata,sizeof(Spielerdata),"/Spieler/%s.txt",SpielerName(playerid));
    if(!dini_Exists(Spielerdata))
    {
    SCM(playerid,WEISS,"Du hast noch keinen Benutzer.");
    }
    else
    {
    SPD(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Wilkommen","Bitte gebe das Passwort ein.","Einloggen","Abbrechen");
    }
    }
    case 1:
    {
    new Spielerdata[128];
    format(Spielerdata,sizeof(Spielerdata),"/Spieler/%s.txt",SpielerName(playerid));
    if(dini_Exists(Spielerdata))
    {
    SCM(playerid,WEISS,"Du hast bereits ein Benutzer.");
    }
    else
    {
    new str[30];
    format(str,sizeof(str),"Wilkommen %s auf %s.\nBitte gebe nun ein Passwort ein,\num Spielen zu können.");
    SPD(playerid,DIALOG_REGISTER_START,DIALOG_STYLE_INPUT,"Willkommen",str,"Anmelden","Abbrechen");
    }
    }
    case 2:
    {
    SCM(playerid,WEISS,"Ok, du kannst später wiederkommen.");
    Kick(playerid);
    }
    }
    }

    Ich bin an einem Autosystem am arbeiten und breuchte eine Hilfe wie man abfragen kann ob der Spieler das Auto gehört.
    Angefangen habe ich mit if(!strcmp(AutoStats[GetPlayerVehicleID][Key],SpielerName(playerid),0,strlen(AutoStats[GetPlayerVehicleID][Key])))
    aber da kommt ein error: error 076: syntax error in the expression, or invalid function call.
    Währe nett wenn jemand eine bessere möglichkeit findet oder das Problem lösen kann.

    Ich scripte schon länger und mich nervt es, dass die Schriften nicht transparent barsind.
    Viele werden wohl den SA-MP Colorpicker kennen, den benutze ich auch, wenn ich hellrot mache kommt auf dem server knallrot vor.
    Ist das änderbar oder geht das nicht?

    Um es kurz zu machen, ist die Adminabfrage schon falsch( Ist der Spierler Rank 1336 oder kleiner) würde ich lieber schreiben " if(pDaten[playerid][Adminlevel] < 1336" mit dem RconAdmin würde ich weg lassen. Es gibt sämtliche RconAdmin hacks.
    Umgearbeitet:

    if(strcmp(cmdtext, "/vfix", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(pDaten[playerid][AdminLevel] < 1336)return SendClientMessage(playerid,ROT,"Diesen befehel darf nur ein Admin nutzen");
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    RepairVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid,WEIS,"Fahrzeug repariert!");
    }
    }
    }
    return 1;
    }

    Unnötig! eine schleife wie im GF? einfach statt
    "public Zeitenrechnung()"


    machst du
    "public Zeitenrechnung(playerid)
    und
    "forward Zeitenrechnung(playerid);"


    Nein, um die schleife wirst du nicht rumkommen denn du hast zwar im public und im forward playerid definiert aber der forward weiß nicht wer. Es macht alles viel schwerer weil er muss dann mit SetTimerEx playerid in den Timer bringen.
    Und wie bringt man alle existierenden ID in SetTimerEx? Genau! mit der for(new i ... ) schleife. Er muss ja jeden Spieler berechnen und nicht nur einen.

    Zitat

    Warum das nicht? Das pragma unused teilt dem Compiler lediglich mit, dass es aufgrund der nicht verwendeten Variable keinen Warning ausgeben soll.
    Ansonsten sollte es theoretisch nichts ändern. Aber da das ja ursprünglich das Problem war, würde ich ebenfalls auf eine der 3 anderen Methoden zurückgreifen.]


    Ganz einfach wie Robby sagte wenn er pragma drinn hat und er verschreibt sich mit einem Befehl oder so bekommt er kein Error oder Warning. Das ist ein einfacher eingriff
    in die Compiler, dass er nicht ausgeben soll.

    Moin Adrian, eig. ist der error nicht schwer zu übersehen. Du sagt dem Server er soll was im enum von "playerid" umschreiben, dabei weiß er nicht wer playerid ist. Um es kurz zu fassen,
    musst du eine schleife erstellen der alle 60 sekunden jeden Spieler bearbeitet. ganz einfach:public Zeitenrechnung()
    {
    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    pInfo[spielzeitminuten] +=1; //alle 60000 wird einmal +1 gemacht.
    if(pInfo[i][spielzeitminuten] ==60)
    {
    pInfo[i][spielzeitstunden] +=1;
    pInfo[i][spielzeitminuten] ==0;
    }
    if(pInfo[i][spielzeitstunden] ==24)
    {
    pInfo[i][spielzeitstunden] ==0;
    pInfo[i][spielzeittage] +=1;
    }
    return 1;
    }
    }
    return 1;
    }


    ich habe folgendes hinzugefügt: Er soll bei ID 0 anfangen und soll seinen enum berechnen. dann soll er eine ID weiter auf 1 und so weiter. Falls du noch weiter arbeiten willst, bedenke es gibt kein "playerid" du musst dort "i" einsetzten. Falls noch schwirikkeiten vorkommen sollen PN an mich.

    Danke für die schnelle antwort und auch für den script musste etwas umändern, da du ein paar Fehler selber hattest (gettime, io_read,...) aber danke es hat mir geholfen und es funktioniert auch sehr gut. Es geht einfacher mit dem stock: AdminLog(playerid,cmdtext);

    Hatte ich auch mal auch Erfahrung damit. Es gibt 4 Möglichkeiten:

    • neuere Version von Dini installieren, wenn es crossover ist(2 includes oder mehr zusammen) alle mal updaten
    • ignorieren
    • oder mit pragma es entfernen(nicht empfohlen)
    • pawn compiler updaten(hab ich bei mir gemacht und es funzt wieder)

    Moin erstmal, nur eine kurze frage wie man ein Admin Log ertsllen kann.Ich habe schon vieles versucht mit dini und so ein zeug aber ohne erfolg.
    Der Admin-Log sollte folgendes beinhalten:


    Wäre nett wenn jemand sowas zusammen stellen könnte. Ingame die Letzten 10 Befehle anzeigen lassen ist optional.Tipps oder Includes sind auch sehr wilkommen.

    Sry wenn ich etwas undeutlich war aber der Error wird auch nicht damit behoben, SpielerAuto ist bereits definiert.
    enum PlayerCarInfo
    {
    bool:exists = false,
    modelid,
    Float:Posix,
    Float:Posiy,
    Float:Posiz,
    Float:Posirot,
    Farbe1,
    Farbe2
    };
    new SpielerAuto[MAX_PLAYERS][MAX_PLAYER_CARS][PlayerCarInfo];


    aber der Error entsteht bei "CreateVehicle"

    {
    SpielerAuto[playerid][v][modelid] = dini_Int(Autodata,"modelid");
    if(SpielerAuto[playerid][v][exists] == true)
    {
    SpielerAuto[playerid][v] = CreateVehicle(SpielerAuto[playerid][v][modelid],SpielerAuto[playerid][v][Posix],SpielerAuto[playerid][v][Posiy],SpielerAuto[playerid][v][Posiz],SpielerAuto[playerid][v][Posirot],SpielerAuto[playerid][v][Farbe1],SpielerAuto[playerid][v][Farbe2],-1);
    }
    }

    Bin kein Profiskripter, aber habe auch schon genug Erfahrung. So weit ich weiß, haben BOT's keine ID's. Wenn ich falsch liege bitte mich verbessern!