Beiträge von Jeffry

    Also eine simple Zeile ist länger, als 6 Zeilen wo man mit jedem Komma und jedem Sonderzeichen zu kämpfen hat...ok


    Du hast das Array mit den Spalten, das macht es im Endeffekt mehr Code. Da jedes Query unterschiedlich ist, muss ich für jedes Query die Spalten neu dort angeben, das macht es eher mehr Code, als weniger.


    Eigentlich ja eher nicht.
    Wieso auch....wenn man es so macht wie ich es gezeigt habe


    MySQL_Update(handle,rows,"Test","Name","dfws",money,x,name);
    oder:
    MySQL_Update(handle,rows,"Test","Name","dfws",alter,x,name);
    Auf den ersten Blick sehe ich hier nicht, welches davon richtig ist, und welches falsch ist. Sowas kann schnell passieren und man merkt es nicht. Das bezieht sich auch auf die Wartbarkeit. Ich muss immer hin und her scrollen, zwischen dem rows Array und der Zeile hier, um herauszufinden, dann entweder alter oder money richtig ist. Bei einem Query mit 100 Attributen wird das lustig.


    Du findest eine Zeile wo du klar siehst welche Variable zu was gehört unübersichtlicher als 6 oder mehr Zeilen, die voll geschrieben sind mit Sonderzeichen und Feldern...alles klar ?(


    Also ich sehe da nichts klar, da ich immer hin und her scrollen muss, wenn ich wissen will, welcher Wert denn nun kommt.
    Da bevorzuge ich sowas:
    format(query, sizeof(query), "UPDATE users SET ");
    format(query, sizeof(query), "%s `Alter` = '%i', ", query, pInfo[playerid][pAlter] );
    format(query, sizeof(query), "%s Personalausweis = '%i', ", query, pInfo[playerid][pPerso] );
    format(query, sizeof(query), "%s Spawnchange = '%i' ", query, pInfo[playerid][pSpawnchange] );
    format(query, sizeof(query), "%s WHERE id = '%i' ", query, pInfo[playerid][pDB] );
    Da sehe ich ganz genau, was zu was gehört.


    Es stehen beide Zeichen indirekt dafür:


    Nur weiß das kaum einer.


    Ich hoffe dir ist bewusst, dass man nicht gezwungen ist diese Funktionen zu verwenden, aber in den Meisten Fällen kann dies sehr praktisch sein.


    Natürlich bin ich mir dessen bewusst, ich habe lediglich meine Meinung und mögliche Probleme dargestellt. Ich finde nicht, dass es praktisch ist, da wie gesagt jedes Query unterschiedlich ist (hätte ich zwei mal das gleiche Query, könnte ich es über eine Funktion lösen), daher ist es im Endeffekt mehr Schreibarbeit und vor allem bei langen Queries wird das ziemlich unübersichtlich, wenn du da sowas stehen hast:
    MySQL_Update(handle,rows,"Test","Name","dddfdfdsfsdfdfdfdsfdfddddddddddfdfsdfdfdfdfdfdsssdddddddddddddddddddddddddddddddddddddws",...);
    Das wird ein Spaß herauszufinden, welche Spalte dann vielleicht den falschen Typ hat oder ob vielleich doch eine Spalte fehlt. Das passiert dir bei der Methode oben nicht, und wenn, dann siehst du es sofort ;)

    Ahh, na dann:
    public IstAmHaus(playerid)
    {
    if(GetPlayerState(playerid) < 1 || GetPlayerState(playerid) > 3) return 0;
    for(new i=0; i<MAX_HAUS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,HausInfo[i][hausx],HausInfo[i][hausy],HausInfo[i][hausz]))
    {
    printf("AnHaus (playerid %d) = %d (%f/%f/%f)", playerid, i, HausInfo[i][hausx],HausInfo[i][hausy],HausInfo[i][hausz]);
    AnHaus[playerid] = i;
    return 1;
    }
    }
    return 0;
    }

    So dürfte es klappen:

    Spoiler anzeigen
    public OnPlayerDeath(playerid, killerid, reason)
    {
    if(IsPlayerNPC(killerid))return true;
    new string[600],Float:Pos[3],string2[350], dropcount = 0;
    new bool:KickBereits[MAX_PLAYERS];
    GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
    Spieler[playerid][Funkgerat] = 0;
    Spieler[playerid][TotKord][0] = Pos[0];
    Spieler[playerid][TotKord][1] = Pos[1];
    Spieler[playerid][TotKord][2] = Pos[2];
    RemovePlayerAttachedObject(playerid,9);
    RemovePlayerAttachedObject(playerid,7);
    RemovePlayerAttachedObject(playerid,1);
    RemovePlayerAttachedObject(playerid,2);
    Spieler[playerid][pTot] = 1;
    ImShamalInterior[playerid] = 0;
    ShamalID[playerid] = -1;
    if(IsPlayerConnected(killerid) && killerid != INVALID_PLAYER_ID)
    {
    format(string,sizeof(string),"Mord : Angreifer: %s * Opfer: %s",Spieler[killerid][pName],Spieler[playerid][pName]);
    Log("DeathMatchLogsqllog",string);
    }
    if(minigamespieler[playerid] == 1)
    {
    SpawnPlayerEx(playerid);
    }
    if(runterseil[playerid] == 1)
    {
    for(new sh=0;sh<=MAX_HOHE;sh++)
    {
    DestroyObject(seil[playerid][sh]);
    DisablePlayerCheckpoint(playerid);
    }
    runterseil[playerid] = 0;
    }
    for(new i_slot=0,gun,ammo;i_slot<13;i_slot++)
    {
    GetPlayerWeaponData(playerid,i_slot,gun,ammo);
    if(gun != 0 && ammo != 0)
    {
    dropcount++;
    CreateDroppedGun(playerid,gun,ammo,Pos[0]+random(2)-random(2),Pos[1]+random(2)-random(2),Pos[2]);
    }
    }
    if(Paintball[playerid] != 0)
    {
    if(IsPlayerConnected(killerid) && !IsPlayerNPC(killerid) && killerid != INVALID_PLAYER_ID)
    {
    if(Paintball[killerid] == 1)
    {
    GameTextForPlayer(killerid,"~g~Kill",1000,4);
    GameTextForPlayer(playerid,"~r~Tot",1000,4);
    for(new i = 0; i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i) && Spieler[i][Eingeloggt] == 1)
    {
    if(Paintball[i] == 1)
    {
    format(string,sizeof(string),""#HTML_RED"Paintball "#HTML_WHITE"%s wurde von %s gekillt",Spieler[playerid][pName],Spieler[killerid][pName]);
    SendClientMessage(i,GRAU,string);
    }
    }
    }
    return true;
    }
    if(Paintball[killerid] == 2)
    {
    new team[6];
    if(TDPPaintballTeam[killerid] != TDPPaintballTeam[playerid])
    {
    GameTextForPlayer(killerid,"~g~Team Kill",1000,4);
    GameTextForPlayer(playerid,"~r~Team Kill",1000,4);
    switch(TDPPaintballTeam[playerid])
    {
    case 1:
    {
    team="Weiß"; TDMPaintballTeamPoints[1]++;
    }
    case 2:
    {
    team="Blau"; TDMPaintballTeamPoints[0]++;
    }
    }
    }
    else
    {
    GameTextForPlayer(killerid,"~r~Team Kill",1000,4);
    GameTextForPlayer(playerid,"~r~Team Kill",1000,4);
    switch(TDPPaintballTeam[playerid])
    {
    case 1:
    {
    team="Weiß"; TDMPaintballTeamPoints[1] += 2;
    }
    case 2:
    {
    team="Blau"; TDMPaintballTeamPoints[0] += 2;
    }
    }
    }
    for(new i = 0; i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i) && Paintball[i] == 2 && Spieler[i][Eingeloggt] == 1)
    {
    format(string,sizeof(string),""#HTML_RED"Paintball (Team): "#HTML_WHITE"%s wurde von %s getötet",Spieler[playerid][pName],Spieler[killerid][pName]);
    SendClientMessage(i,GRAU,string);
    format(string,sizeof(string),""#HTML_RED"Team Weiß: "#HTML_WHITE"%d/40 | "#HTML_RED"Team Blau: "#HTML_WHITE"%d/40",TDMPaintballTeamPoints[0],TDMPaintballTeamPoints[1]);
    SendClientMessage(i,GRAU,string);
    if(TDMPaintballTeamPoints[0] >= 40)
    {
    TDMPaintballTeamPoints[0] = 0;
    TDMPaintballTeamPoints[1] = 0;
    SendClientMessage(i,GRAU,""#HTML_RED"Paintball Sieg: "#HTML_WHITE"Team Weiß hat gewonnen");
    if(Spieler[i][pFraktion] != 0)
    {
    SetPlayerSkinEx(i,Spieler[i][pFraktSkin]);
    SetPlayerPosEx(i,PAINTBALLARENA);
    SetPlayerInterior(i,0);
    SetPlayerVirtualWorld(i,0);
    }
    else if(Spieler[i][pFraktion] == 0)
    {
    SetPlayerSkinEx(i,Spieler[i][pSkin]);
    SetPlayerPosEx(i,PAINTBALLARENA);
    SetPlayerInterior(i,0);
    SetPlayerVirtualWorld(i,0);
    }
    Paintball[i] = 0;
    }
    if(TDMPaintballTeamPoints[1] >= 40)
    {
    TDMPaintballTeamPoints[0] = 0;
    TDMPaintballTeamPoints[1] = 0;
    SendClientMessage(i,GRAU,""#HTML_RED"Paintball Sieg: "#HTML_WHITE"Team Blau hat gewonnen");
    if(Spieler[i][pFraktion] != 0)
    {
    SetPlayerSkinEx(i,Spieler[i][pFraktSkin]);
    SetPlayerPosEx(i,PAINTBALLARENA);
    SetPlayerInterior(i,0);
    SetPlayerVirtualWorld(i,0);
    }
    else if(Spieler[i][pFraktion] == 0)
    {
    SetPlayerSkinEx(i,Spieler[i][pSkin]);
    SetPlayerPosEx(i,PAINTBALLARENA);
    SetPlayerInterior(i,0);
    SetPlayerVirtualWorld(i,0);
    }
    Paintball[i] = 0;
    }
    }
    }
    }
    return true;
    }
    return true;
    }
    if(GetPlayerState(killerid) == 2)
    {
    if(GetPlayerState(killerid) == PLAYER_STATE_DRIVER)
    {
    format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Totparken",Spieler[killerid][pName]);
    SendClientMessageToAll(ROT,string);
    format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: Totparken\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
    ShowPlayerDialog(playerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
    SetTimerEx("FixKick",2500,0,"i",killerid);
    }
    }
    if(killerid != INVALID_PLAYER_ID)
    {
    if(Spieler[killerid][pHitman] == 1 && playerid != INVALID_PLAYER_ID)
    {
    RemovePlayerAttachedObject(playerid,0);
    SetPlayerName(playerid,Spieler[playerid][pName]);
    SpawnPlayerEx(playerid);
    }
    if(Spieler[killerid][pHitman] == 1 && playerid != INVALID_PLAYER_ID)
    {
    if(Spieler[playerid][pContract][0] == 1)
    {
    format(string,sizeof(string),""#HTML_RED"Auftragskill: "#HTML_WHITE"Du wurdest soeben von einem Hitman ausgeschaltet!");
    SendClientMessage(playerid,GRAU,string);
    ACMoney(killerid,Spieler[playerid][pContract][0]);
    Spieler[playerid][pContract][0] = 0;
    Spieler[playerid][pContract][1] = 0;
    SetPlayerHealth(playerid, -2);
    SpawnPlayerEx(playerid);
    for(new player = 0; player < MAX_PLAYERS; player++)
    {
    if(IsPlayerConnected(player) && !IsPlayerNPC(player) && Spieler[player][pHitman] != 0)
    {
    format(string,sizeof(string),""#HTML_RED"Auftragskill erledigt: "#HTML_WHITE"Der Spieler %s (Auftragssumme: %d$) wurde soeben von einem Hitman ausgeschaltet!",
    Spieler[playerid][pName],Spieler[playerid][pContract][1]);
    }
    }
    }
    }

    if(GetPlayerLevel(playerid) == NEULINGLEVEL && Paintball[playerid] == 0)
    {
    if(istEinAdmin(playerid,1)) return SendClientMessage(killerid,WEISS,"Du hast so eben ein Neuling getötet!");
    format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Neulings Kill",Spieler[killerid][pName]);
    SendClientMessageToAll(ROT,string);
    format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: DM / SDM auf einen Neuling\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
    ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
    SetTimerEx("FixKick",2500,0,"i",killerid);
    KickBereits[playerid] = true;
    SpawnPlayerEx(playerid);
    }
    if(InNoDMZone(playerid) != -1)
    {
    format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: No DM Zonen Kill",Spieler[killerid][pName]);
    SendClientMessageToAll(ROT,string);
    format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: No DM Zonen Kill\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
    ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
    SetTimerEx("FixKick",2500,0,"i",killerid);
    SpawnPlayerEx(playerid);
    }
    if(Spieler[killerid][pEingesperrt] == 1)
    {
    SendClientMessage(killerid,WEISS,""#HTML_RED"Info: "#HTML_WHITE"Knast DM ist verboten!");
    knastDM[killerid] += 1;
    if(knastDM[killerid] == 3)
    {
    format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Knast Deathmatch",Spieler[killerid][pName]);
    SendClientMessageToAll(ROT,string);
    format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: Knast DM\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
    ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
    SaveAccount(killerid);
    SetTimerEx("FixKick",2500,0,"i",killerid);
    SpawnPlayerEx(playerid);
    }
    }
    if(GetPlayerLevel(killerid) == NEULINGLEVEL && Paintball[killerid] == 0)
    {
    if(KickBereits[playerid] == true) return true;
    format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Der Spieler %s wurde vom Server gekickt. Grund: Kill als Neuling",Spieler[killerid][pName]);
    SendClientMessageToAll(ROT,string);
    format(string,sizeof(string),"Hallo %s\ndu wurdest vom "#SERVERTAG" System gekickt!\nDer Grund dafür war: DM / SDM als Neuling\nSolltest du zu Unrecht gekickt wurden sein, melde dich im Forum oder im Teamspeak 3 Server\nForum: "#WEBURL"\nTeamspeak: "#TSIP"\nMit freundlichen Grüßen\nDein "#SERVERTAG" Team",Spieler[killerid][pName]);
    ShowPlayerDialog(killerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Ok","");
    SetTimerEx("FixKick",2500,0,"i",killerid);
    KickBereits[killerid] = false;
    SpawnPlayerEx(playerid);
    }
    if(IstNixGutWaffe(GetPlayerWeapon(killerid)) == 1 && GetPlayerWeapon(killerid) != 0)
    {
    if(!istEinAdmin(killerid,6))
    {
    format(string,sizeof(string),""#HTML_RED""#ANTI" "#HTML_WHITE"Das System hat den Spieler %s gebannt. Grund: Fakekill",Spieler[playerid][pName]);
    SendClientMessageToAll(LEUCHTENDESROT,string);
    format(string,sizeof(string),"%s,\nDu wurdest so eben wegen Fakekill vom Server gebannt.\nSolltest du zu Unrecht gebannt wurden sein, melde dich bitte im Teamspeak Server oder im Forum.\nMit freundlichen Grüssen\n"#SERVERTAG" Team\n\nForum: "#WEBURL"\nTeamspeak: "TSIP"",Spieler[playerid][pName]);
    ShowPlayerDialog(playerid,DIALOG_SONSTIGES,DIALOG_STYLE_MSGBOX,""#SERVERNAME"",string,"Verlassen","");
    BanUser(playerid,"System","Fakekill");
    BansHeute +=1;
    }
    }
    }
    if(inFS[playerid] == 1)
    {
    KillTimer(TaxiTimer[playerid]); inFS[playerid] = 0;
    for(new i = 0; i<5;i++)
    {
    DriveschoolQuestion[playerid][i] = 0;
    }
    for(new i = 0; i<4;i++)
    {
    DriveschoolQuestion2[playerid][i] = 0;
    }
    for(new i = 0; i<3;i++)
    {
    DriveschoolQuestion3[playerid][i] = 0;
    }
    for(new i = 0; i<3;i++)
    {
    DriveschoolQuestion4[playerid][i] = 0;
    }
    for(new i = 0; i<2;i++)
    {
    DriveschoolQuestion5[playerid][i] = 0;
    }
    for(new i = 0; i<16;i++)
    {
    fscp[playerid][i] = 0;
    }
    for(new i = 0; i<14;i++)
    {
    fscp2[playerid][i] = 0;
    }
    for(new i = 0; i<14;i++)
    {
    fscp3[playerid][i] = 0;
    }
    for(new i = 0; i<8;i++)
    {
    fscp4[playerid][i] = 0;
    }
    for(new i = 0; i<5;i++)
    {
    fscp6[playerid][i] = 0;
    }
    PlayerTextDrawHide(playerid,Anzeige[playerid][0]);
    PlayerTextDrawHide(playerid,Anzeige[playerid][1]);
    PlayerTextDrawHide(playerid,Anzeige[playerid][3]);
    PlayerTextDrawHide(playerid,Anzeige[playerid][2]);
    fahrschulauto[playerid] = 0;
    DestroyVehicle(fahrschulauto[playerid]);
    fahrschulauto2[playerid] = 0;
    DestroyVehicle(fahrschulauto2[playerid]);
    FSFehler[playerid] = 0;
    SendClientMessage(playerid,GRAU,""#HTML_RED"Durchgefallen: "#HTML_WHITE"Du bist gestorben, daher hast du die Prüfung nicht bestanden!");
    }
    for(new i= 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i) && !IsPlayerNPC(i))
    {
    if(GetPlayerState(i) == PLAYER_STATE_SPECTATING && Spieler[i][pTV] == playerid)
    {
    TogglePlayerSpectating(i,0);
    Spieler[i][pTV] = -1;
    }
    }
    }
    SpawnPlayerEx(playerid);
    return true;
    }


    Du hast mehrmals mit killerid auf einen Index zugegriffen, der nicht existiert, da killerid INVALID_PLAYER_ID war.

    Dann schreibe das Laden so und poste dann was im Server Log steht:
    public LoadFactionCars()
    {
    if(!fexist(FACTION_CAR_FILE))
    {
    new File:tfFile=fopen(FACTION_CAR_FILE,io_write);
    fclose(tfFile);
    }
    new File:fFile=fopen(FACTION_CAR_FILE,io_read),Content[1024],fc;
    while(fread(fFile,Content) && fc<sizeof(FactionCars))
    {
    sscanf(Content,"dffffdddddddddddddddddddddd",
    FactionCars[fc][fVehid],
    FactionCars[fc][fPos][0],
    FactionCars[fc][fPos][1],
    FactionCars[fc][fPos][2],
    FactionCars[fc][fPos][3],
    FactionCars[fc][fCol][0],
    FactionCars[fc][fCol][1],
    FactionCars[fc][fFaction][0],
    FactionCars[fc][fFaction][1],
    FactionCars[fc][fFaction][2],
    FactionCars[fc][fFaction][3],
    FactionCars[fc][fFaction][4],
    FactionCars[fc][fTuning][0],
    FactionCars[fc][fTuning][1],
    FactionCars[fc][fTuning][2],
    FactionCars[fc][fTuning][3],
    FactionCars[fc][fTuning][4],
    FactionCars[fc][fTuning][5],
    FactionCars[fc][fTuning][6],
    FactionCars[fc][fTuning][7],
    FactionCars[fc][fTuning][8],
    FactionCars[fc][fTuning][9],
    FactionCars[fc][fTuning][10],
    FactionCars[fc][fTuning][11],
    FactionCars[fc][fTuning][12],
    FactionCars[fc][fTuning][13],
    FactionCars[fc][fPrice]);
    printf("%d|Content: %s", fc, Content);
    if(FactionCars[fc][fVehid] >= 400 && FactionCars[fc][fVehid] <= 611)
    {
    FactionCars[fc][fCarid] = CreateVehicle(FactionCars[fc][fVehid],FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2],FactionCars[fc][fPos][3],FactionCars[fc][fCol][0],FactionCars[fc][fCol][1],-255);
    switch(FactionCars[fc][fFaction][0])
    {
    case 1: SetVehicleNumberPlate(FactionCars[fc][fCarid], "SAPD");
    case 2: SetVehicleNumberPlate(FactionCars[fc][fCarid], "FBI");
    case 3: SetVehicleNumberPlate(FactionCars[fc][fCarid], "ARMY");
    case 4: SetVehicleNumberPlate(FactionCars[fc][fCarid], "ARZT");
    case 5: SetVehicleNumberPlate(FactionCars[fc][fCarid], "LCN");
    case 6: SetVehicleNumberPlate(FactionCars[fc][fCarid], "YAKUZA");
    case 7: SetVehicleNumberPlate(FactionCars[fc][fCarid], "PRÄSIDENT");
    case 8: SetVehicleNumberPlate(FactionCars[fc][fCarid], "HITMAN");
    case 9: SetVehicleNumberPlate(FactionCars[fc][fCarid], "SAN NEWS");
    case 10: SetVehicleNumberPlate(FactionCars[fc][fCarid], "TAXI");
    case 11: SetVehicleNumberPlate(FactionCars[fc][fCarid], "FAHRLEHRER");
    case 12: SetVehicleNumberPlate(FactionCars[fc][fCarid], "HACKER");
    case 13: SetVehicleNumberPlate(FactionCars[fc][fCarid], "Crips");
    case 14: SetVehicleNumberPlate(FactionCars[fc][fCarid], "GROVE");
    case 15: SetVehicleNumberPlate(FactionCars[fc][fCarid], "LS BIKER");
    case 16: SetVehicleNumberPlate(FactionCars[fc][fCarid], "LS VAGOS");
    case 17: SetVehicleNumberPlate(FactionCars[fc][fCarid], "AZTECAS");
    case 18: SetVehicleNumberPlate(FactionCars[fc][fCarid], "LOCOS");
    case 19: SetVehicleNumberPlate(FactionCars[fc][fCarid], "TEXANER");
    case 20: SetVehicleNumberPlate(FactionCars[fc][fCarid], "TERROR");
    case 21: SetVehicleNumberPlate(FactionCars[fc][fCarid], "WHEELMEN");
    case 22: SetVehicleNumberPlate(FactionCars[fc][fCarid], "SWAT");
    case 23: SetVehicleNumberPlate(FactionCars[fc][fCarid], "RUSSEN");
    case 24: SetVehicleNumberPlate(FactionCars[fc][fCarid], "O-AMT");
    }
    SetVehicleToRespawn(FactionCars[fc][fCarid]);
    printf("Fahrzeug %d (Idx: %d) steht: %f / %f / %f", FactionCars[fc][fCarid], fc, FactionCars[fc][fPos][0],FactionCars[fc][fPos][1],FactionCars[fc][fPos][2]);
    SetVehicleToRespawn(FactionCars[fc][fCarid]);
    printf("%d gehört zu: %d", FactionCars[fc][fCarid], FactionCars[fc][fFaction][0]);
    SetVehicleToRespawn(FactionCars[fc][fCarid]);
    fLockCar(FactionCars[fc][fCarid]);
    FactionCars[fc][fLock] = true;
    printf("Allowed: %d", IsAllowedFactionToTune(FactionCars[fc][fFaction][0]));
    if(IsAllowedFactionToTune(FactionCars[fc][fFaction][0]))
    {
    if(FactionCars[fc][fTuning][0] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][0]); }
    if(FactionCars[fc][fTuning][1] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][1]); }
    if(FactionCars[fc][fTuning][2] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][2]); }
    if(FactionCars[fc][fTuning][3] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][3]); }
    if(FactionCars[fc][fTuning][4] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][4]); }
    if(FactionCars[fc][fTuning][5] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][5]); }
    if(FactionCars[fc][fTuning][6] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][6]); }
    if(FactionCars[fc][fTuning][7] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][7]); }
    if(FactionCars[fc][fTuning][8] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][8]); }
    if(FactionCars[fc][fTuning][9] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][9]); }
    if(FactionCars[fc][fTuning][10] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][10]); }
    if(FactionCars[fc][fTuning][11] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][11]); }
    if(FactionCars[fc][fTuning][12] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][12]); }
    if(FactionCars[fc][fTuning][13] != 0) { AddVehicleComponent(FactionCars[fc][fCarid],FactionCars[fc][fTuning][13]); }
    }
    fc++;
    }
    }
    fclose(fFile);
    return printf(" '%d' Fraktionsfahrzeuge wurden geladen & erstellt.",fc);
    }

    SQL
    SELECT name FROM users WHERE id = '%d'


    Das Query, angepasst an deine Tabelle, mit der db_id des Besitzers des Fahrzeugs mit deinem MySQL Plugin per Query absenden und das Result dann auslesen. Dann hast du den Besitzer.

    #pragma unused M_OnPlayerCommandText
    In den Code einfügen.


    Jetzt die Frage:
    Wird es nicht gespeichert, oder wird es nicht geladen? Füge dem Fahrzeug mal Tunings hinzu und speichere es dann. Stehen die Daten in der Datei dann drin?

    Also er setzt dir nur einmal den Score, und den setzt er auf 1. Ich verstehe daher nicht, wie du 5000 bekommst. Höchstens, dass es von einem anderen Filterscript kommt.
    Suche mal alle deine Codes und Includes nach SetPlayerScore ab, ob da irgendwas den Score erhöht.


    Zwecks den Warnungen:
    SpielerInfo[playerid][sWeaponLic] == 1;
    zu:
    SpielerInfo[playerid][sWeaponLic] = 1;
    Das hat damit aber nichts zu tun.


    Die anderen Warnungen sind:
    - color ist bereits definiert, da kannst du die Variable einfach umbenennen.
    - Fehlerhafte/Doppelte Hooks
    - Falsche Einrückung des Codes.

    Nimm das
    #include <ForAllPlayers>
    aus deinem Code raus.


    Dann füge unter den Includes das ein:
    #define ForAllPlayers(%0) for(new index_%0=0,%0=ConnectedPlayerList[0]; index_%0<ConnectedPlayers; index_%0++,%0=ConnectedPlayerList[index_%0])


    new ConnectedPlayers;
    new ConnectedPlayerList[MAX_PLAYERS+1];


    Das hier fügst du bei OnPlayerConnect ein:
    if(!IsPlayerNPC(playerid)) AddPlayer(playerid);


    Das bei OnPlayerDisconnect:
    if(!IsPlayerNPC(playerid)) RemovePlayer(playerid);


    Und das hier ganz unten im Gamemode:
    stock AddPlayer(playerid){
    if(ConnectedPlayers>=MAX_PLAYERS || playerid<0 || playerid>=MAX_PLAYERS) return 0;
    ConnectedPlayerList[ConnectedPlayers++]=playerid;
    return 1;
    }


    stock RemovePlayer(playerid){
    for(new i;i<ConnectedPlayers;i++){
    if(ConnectedPlayerList[i]==playerid){
    ConnectedPlayers--;
    ConnectedPlayerList[i]=ConnectedPlayerList[ConnectedPlayers];
    return 1;
    }
    }return 0;
    }

    formatEx(str,"%s", VehicleFriendlyNames[GetVehicleModel(veh)-400]), TextDrawSetString(Tacho[i][Name],str);
    TextDrawSetString(Tacho[i][besitz],str);
    formatEx(str,"%s", GetAutoBesitzer(i,vehicleid),TextDrawSetString(Tacho[i][besitz],str));
    zu:
    GetAutoBesitzer(i,veh);

    Das müsstest du dann halt ändern zu:
    stock GetPlayerBanTime(playername[],&hour=0,&minu=0)
    {
    format(tbDir,sizeof(tbDir),foxBanFile,playername);
    if(dini_Exists(tbDir))
    {
    new seco=(dini_Int(tbDir,"fbTime")+dini_Int(tbDir,"fbDuration"))-Time();
    hour=seco/3600;
    minu=(seco-hour*3600) / 60;
    return 1;
    }
    return 0;
    }

    dcmd_tban(playerid,params[]) //tban
    {
    new pID,pIdName[MAX_PLAYER_NAME],pName[MAX_PLAYER_NAME],banTime,reason[64],string[128];
    if(PlayerInfo[playerid][pAdmin] <= 2) { return 1; }
    if(sscanf(params,"uds",pID,banTime,reason)) { return SendClientMessage(playerid,COLOR_GRAD1,"Benutzung: /tban [Spieler / ID] [Zeit in Stunden] [Grund]"); }
    if(!IsPlayerConnected(pID)) { return SendClientMessage(playerid,COLOR_GRAD1,"Falsche ID!"); }
    if(banTime < 1 || banTime > 24) { return SendClientMessage(playerid,COLOR_GRAD1,"Minimale Zeit: 1 Stunde / Maximale Zeit: 24 Stunden(1 Tag.)"); }
    GetPlayerName(pID,pIdName,sizeof(pIdName));
    GetPlayerName(playerid,pName,sizeof(pName));
    format(string,sizeof(string),"AdminSystem: %s wurde von %s für %d Stunden gebannt, Grund: %s",pIdName,pName,banTime,reason);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    printf("AdminSystem(TIMEBAN): Admin: %s(%i) - Timebanned Player: %s(%i) - Timeban Reason: %s",pName,playerid,pIdName,pID,reason);
    pBanner[pID] = pName;
    TBan(pID,banTime*60);
    return 1;
    }

    Mogly1: Das ist das gleiche. ! ist äquivalent zu == 0.


    Debugge die Funktion so, dann weißt du an welchem Haus du bist:
    public IstAmHaus(playerid){


    for(new i=0; i<MAX_HAUS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,HausInfo[i][hausx],HausInfo[i][hausy],HausInfo[i][hausz]))
    {
    printf("AnHaus (playerid %d) = %d (%f/%f/%f)", playerid, i, HausInfo[i][hausx],HausInfo[i][hausy],HausInfo[i][hausz]);
    AnHaus[playerid] = i;
    return 1;
    }
    }
    return 0;
    }