Beiträge von Jeffry

    public FahrzeugUpdater()
    {
    new model;
    for(new i=0;i<MAX_VEHICLES;i++)
    {
    model = GetVehicleModel(i);
    if(model == 0) continue;
    if(Motor[i] == true)
    {
    vFahrzeug[i][Tank] -= FahrzeugInfoModel[model-400][ftverbrauch];
    }
    }
    return true;
    }
    Mache es so, du musst es abfangen, wenn das Fahrzeug nicht existiert.

    Ok, also da das Label erstellt wird lass dir mal die Details ausgeben, es kann eigentlich nur noch sein, dass die Position falsch ist:

    HausInfo[ho][hLabel]=Create3DTextLabel(str,COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ],0,1);
    printf("ho: %d / Erstellte Label ID: %d", ho, _:HausInfo[ho][hLabel]);
    printf("Label Details: Color: %d / Pos: %f / %f / %f => 0, 1", COLOR_AO,HausInfo[ho][hPosX],HausInfo[ho][hPosY],HausInfo[ho][hPosZ]);
    printf("Label Text: %s |ENDE", str);


    Was wird dir so geprintet?

    printf("Der Spieler %s wurde von %s gekillt. Waffe: %d",Spieler[playerid][pName],Spieler[killerid][pName],weaponname,kill);
    Zu
    if(killerid!=INVALID_PLAYER_ID) printf("Der Spieler %s wurde von %s gekillt. Waffe: %s",Spieler[playerid][pName],Spieler[killerid][pName],weaponname);
    else printf("Der Spieler %s hat sich selbst getötet. ",Spieler[playerid][pName]);


    Zwischen den Variablen und den prints musst du dann noch den Waffenname auslesen.

    Erstelle in deinem /pawno/ Ordner eine Datei "pawn.cfg" und schreibe dort "-d3" rein (ohne Anführungszeichen). Dann speichere die Datei, und öffne die pawno.exe. Dann wähle deinen Code auf, über "Öffnen", und kompiliere ihn. Du bekommst dann eine mehrzeilige Meldung mit vielen Zahlen im Compiler. Dann starte den Server erneut, und poste nochmal den Log, bzw. lese dort die Zeile des Fehlers aus.


    Das "-d3" ist eine Compiler-Option und schält den Debug Modus an (daher die Meldung im Compiler).
    Für das Crashdetect Plugin bedeutet das, dass es genauere Informationen ausgeben kann, wie zum Beispiel die genaue Zeile des Errors, den es ausgibt.

    Eins ist mir grade noch aufgefallen, du fragst hier ja den Spielername ab, des NPCs:
    if(!strcmp(botname,"Speisen Verkäufer",true))


    Das wird nicht klappen, da Spielernamen, auch nicht die von NPCs, keine Leerzeichen und keine Umlaute (ä,ö,ü) beinhalten dürfen.
    Du musst den NPC irgendwie in der Art Speissen_Verkauf nennen, oder so.

    Du hattest das Negationszeichen ( ! ) nur vor dem ersten PlayerToPoint. Entweder du machst eine Klammer um alle PlayerToPoints und setzt davor das Negationszeichen, oder du machst es so:
    if(strcmp(cmd, "/essen", true) == 0)
    {
    if(PlayerToPoint(5, playerid,1722.7767,-1647.5708,20.0554)||PlayerToPoint(5, playerid,1722.7767,-1647.5708,20.0554)||PlayerToPoint(5, playerid,1714.7401,-1646.4735,20.0554)||PlayerToPoint(5, playerid,1704.9991,-1647.5897,20.0554)||PlayerToPoint(5, playerid,1721.4783,-1655.6741,20.0554))
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerNPC(i))
    {
    new botname[MAX_PLAYER_NAME];
    GetPlayerName(i,botname,sizeof(botname));
    if(!strcmp(botname,"Speisen Verkäufer",true))
    {
    ApplyAnimation(i,"PED","IDLE_CHAT",4.1,1,1,1,0,4000,1);
    }
    }
    }
    ShowPlayerDialog(playerid,DIALOG_Markt4,DIALOG_STYLE_LIST,"Jahrmarkt von -","Pommes 50$\nCurrywurst & Pommes 100$\nSpanferkel 150$\nMaiskolben 50$\nFleischspieß 150$\nGebratene Pilze 50$","Auswählen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Sie sind nicht am Markt Stand!");
    return 1;
    }
    return 1;
    }

    Ich will ja nicht falsches behaupten da ich es mit "ackslimit 8000" nie getestet habe, aber mir wurde damals gesagt das der Wert nur zwischen 3000 oder 5000 stehen sollte.

    Prinzipiell ist es egal, du kannst (bitte nicht machen!!) es auch auf 1000000 stellen, man muss eben bedenken, dass dies auf die Performanz des Servers gehen kann (nicht muss).
    Siehe hier: http://forum.sa-mp.com/showpost.php?p=2999041&postcount=11


    Daher hast du Recht, dass es zwischen 3000 und 5000 sein sollte, einfach um Probleme zu verhindern. Es sollte auch nicht vorkommen, dass ein Wert über 5000 überschritten wird. Zu Anfangs war es ja auf 1000 gesetzt, das hat massive Probleme verursacht, daher wurde es vom Standard auf 3000 gesetzt. Manche kommen da aber hin und wieder drüber, daher ist 5000 dann in Ordnung. 8000 macht auch keinen Unterschied, sowieso nicht, wenn ~3500 der maximal erreichte Wert ist. Ich würde mal ganz lapidar sagen, alles unter 10000 kann man noch durchgehen lassen, besser ist es aber drunter zu sein.

    if(SpielerInfo[playerid][Team] == 1 || SpielerInfo[playerid][Team] == 5)
    {
    //Kann einnehmen
    }
    else
    {
    //Nicht erlaubt
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Du kannst diese Zone nicht einnehmen, nur Team 1 und 5 dürfen das.");
    }

    Bis wohin kommt er so?
    if(Spieler[playerid][pAdmin] > 0 && Spieler[playerid][pAdminOnduty] == 1)
    {
    printf("4/1");
    SetPlayerColor(playerid,ROT);
    printf("4/11");
    format(string,24,"["#SERVERTAG"]%s",Spieler[playerid][pName]);
    printf("4/12");
    SetPlayerName(playerid,string);
    printf("4/13");
    AdminDienst[playerid] = Create3DTextLabel(""#HTML_RED"["#SERVERTAG"] "#HTML_WHITE" Team Mitglied im Dienst",0x0F87B53E,30.0,40.0,50.0,20.0,GetPlayerVirtualWorld(playerid),1);
    printf("4/2");
    }

    Ah, so rum hast du es gemacht.
    Aber auch da brauchst du - wenn auch nur Dummy-Weise - eine "ID" Spalte, damit phpMyAdmin weiß, wo es den Wert aktualisieren soll.


    Füge eine Spalte ID hinzu, setze sie auf UNIQUE und schreibe eine 1 rein. Kannst sie auch Dummy nennen. Hauptsache du hast eine Unique-Spalte.