Beiträge von Jeffry

    Das kannst du so machen:
    if(newkeys & KEY_CROUCH)
    {
    if(IsPlayerInRangeOfPoint(playerid,15.0,2518.39, 1827.70, 13.40))
    {
    static bool:isOpen;
    if(!isOpen)
    {
    MoveObject(tor15,2518.24, 1833.53, 13.40, 4);
    MoveObject(tor16,2518.40, 1812.90, 13.40, 4);
    SendClientMessage(playerid,COLOR_WHITE,"Du hast das Tor geöffnet.");
    isOpen = true;
    }
    else
    {
    MoveObject(tor15,/*Koordinaten zu*/, 4);
    MoveObject(tor16,/*Koordinaten zu*/, 4);
    SendClientMessage(playerid,COLOR_WHITE,"Du hast das Tor geschlossen.");
    isOpen = false;
    }
    }
    }

    Wie sieht der Teil von OnPlayerConnect aus, bei dem du abfragst, ob der Spieler gebannt ist?
    Speicherst du die pVar auch in der Spielerdatei/Datenbank und lädst es, bevor du es abfrägst? Wenn nein, mach das.

    if(dialogid == DIALOG_BUG_MELDEN)
    {
    if(strlen(inputtext) < 5) return SendClientMessage(playerid, 0xFF0000FF,"Dein Bug-Report ist zu kurz!");
    static b_count;
    if(b_count == sizeof Bugs) return SendClientMessage(playerid, 0xFF0000FF, "ERROR: Es ist leider kein Platz für einen Bug mehr frei!.");
    format(Bugs[b_count], MAX_BUG_LEN, inputtext);
    SendClientMessage(playerid, 0xFFFFFFFF, "Bug gemeldet. Danke!");
    SetPVarString(playerid,"Bugmlder",inputtext);
    savebugs(playerid,inputtext);
    b_count++;
    valstr(string,b_count);
    for(new u=0; u<MAX_PLAYERS; u++) PlayerTextDrawSetString(u,Bugs_2[u],string);
    return 1;
    }


    Außerdem ist es keine sonderlich gute Idee, für jeden Spieler ein Textdraw zu haben, das die gleiche Zahl anzeigt. Könntest es auch mit einem normalen Textdraw machen. Geht zwar, ist aber nicht wirklich toll.

    Wie gesagt, die darfst du nicht kompilieren.


    Füge einfach
    #include <colors>
    in deinen Gamemode ein und kompiliere den.


    Die Include brauchst du nur zu speichern, aber nicht kompilieren.

    Das Problem ist ohne dieses Anticheat Include funktioniert alles !


    Der Anti Cheat an sich hat sehr viele Probleme (je nach dem wie viele bereits behoben sind), und wenn es ohne den geht dann liegt es wohl daran, ja.
    Ich kann mir vorstellen, dass da ein Hook nicht klappt, oder eine Funktion nicht richtig aufgerufen oder durchgeführt wird. Am besten du kontaktierst ErikSon direkt, oder du debuggst das alles mal, aber das ist, je nach dem wie groß dein Code ist, ein ziemlicher Aufwand.



    Crocky:
    Dann musst du es so schreiben:

    Spoiler anzeigen
    ocmd:carinfo(playerid, params[])
    {
    new vID;
    if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
    if(sscanf(params, "d", vID)) return SendClientMessage(playerid,ROT,"/carinfo [VehicleID]");
    //Abfragen ob der Spieler online ist...
    new id, pID;
    for(new p = 0; p<MAX_PLAYERS; p++)
    {
    if(IsPlayerConnected(p))
    {
    for(new i=0; i<MaxVeh;i++)
    {
    if(PlayerCar[p][i][CarId] == vID)
    {
    id = i;
    pID = p;
    break;
    }
    }
    }
    }
    new str[512];
    format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
    format(str, sizeof(str), "%sModel ID: %d\n", str, PlayerCar[pID][id][CarModel]);
    format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
    format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
    //...
    ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
    return 1;
    }

    Debugge den Anfang der Funktion mal so:
    stock s_SetVehicleToRespawn(vID,id)
    {
    printf("vID: %d", vID);
    switch(id)
    {
    case -1:
    {
    for(new i=0;i<MAX_VEHICLES - 1;i++)
    {
    printf("i: %d", i);
    if(FahrzeugInfo[i][fz_ID] == vID)
    {
    printf("Typ: %d", FahrzeugInfo[i][fz_Typ]);
    switch(FahrzeugInfo[i][fz_Typ])
    {
    case 0:
    {
    DestroyVehicle(FahrzeugInfo[i][fz_ID]);


    Was steht im Log, wenn du den Befehl ausführst?

    ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Bitte gebe deine E-Mail an:", "Ok", "");


    Bei OnDialogResponse:
    if(dialogid == DIALOG_EMAIL)
    {
    if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_EMAIL, DIALOG_STYLE_INPUT, "E-Mail", "Bitte gebe deine E-Mail an:", "Ok", "");
    //Hier dann den inputtext in die Variable speichern...
    }

    Naja, um an den Index zu kommen:
    new id;
    for(new i=0; i<MaxVeh;i++)
    {
    if(PlayerCar[playerid][i][CarId] == GetPlayerVehicleID(playerid))
    {
    id = i;
    break;
    }
    }
    //Und dann hier eben alles auslesen, zum Beispiel "PlayerCar[playerid][id][CarOwner]" oder so...



    Pr0x: Das scheint ein Sprite zu sein, sonst wüsste ich nicht wie das geht. Kannst ja mal schauen ob du da eins findest.



    EDIT:
    Crocky:
    Das was du mir geschickt hast, etwas erweitert:

    Spoiler anzeigen
    ocmd:carinfo(playerid, params[])
    {
    new pID;
    if(!Spieler[playerid][Team] == 7)return SendClientMessage(playerid,ROT,"Du bist kein Ordnungsbeamter!");
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid,ROT,"/carinfo [Spieler]");
    //Abfragen ob der Spieler online ist...
    new id;
    for(new i=0; i<MaxVeh;i++)
    {
    if(PlayerCar[pID][i][CarId] == GetPlayerVehicleID(pID))
    {
    id = i;
    break;
    }
    }
    new str[512];
    format(str, sizeof(str), "Besitzer: %s (ID: %D)\n", SpielerName(pID), pID);
    format(str, sizeof(str), "%sTank: %d\n", str, PlayerCar[pID][id][CarTank]);
    format(str, sizeof(str), "%sPreis: %d\n", str, PlayerCar[pID][id][CarPreis]);
    //...
    ShowPlayerDialog(playerid, DIALOG_CARINFO, DIALOG_STYLE_MSGBOX, "Carinfo", str, "Ok", "");
    return 1;
    }


    Das sollte reichen damit du den Rest fertig machen kannst. Ansonsten einfach hier Bescheid geben.
    PMs kann ich dir keine mehr schicken, da du es auf "Nur Freunde" umgestellt hast.

    Du hast vor pkwlic zwei Kommata, in deinem Code aber nicht. Du hast den Code wohl nochmal geändert, schau mal nochmal nach, ob der Code wirklich so ist, wie du ihn gepostet hast, denn so ist er richtig, da ist nur 1 Komma, in deinem Log sind da zwei.

    Jetzt hast du den Code ja wieder weg gemacht, kanns mir nicht nochmal anschauen. Aber was du machen kannst, was auf jeden Fall geht, ziehe den Login Dialog Teil vor den Bug Dialog nach ganz oben.


    Schau auch mal nach, ob du vielleicht zwei mal einen Dialog mit der ID 1 deklariert hast.

    Versuchst du die Include zu kompilieren? Wenn ja, das darfst bzw brauchst du nicht zu machen, du inkludierst sie ja mit
    #include <colors>
    In deinem Gamemode.


    Oder was machst du?

    Ok, setze mal nach:
    //Bug melden
    einen print:
    printf("dialogid = %d / %d / %d", dialogid, DIALOG_LOGIN, response);


    Und dann vor:
    if(dialogid == DIALOG_LOGIN)
    das hier:
    printf("vor: dialogid = %d / %d response: %d", dialogid, DIALOG_LOGIN, response);


    Was steht dann im Log?