Beiträge von Jeffry

    Versuche es mal so:
    ocmd:carinfo(playerid,params[])
    {
    if(isACop(playerid))return SendClientMessage(playerid,COLOR_RED,"Nein");
    new string[145],vid,Float:x,Float:y,Float:z,pID;
    if(sscanf(params,"d",vid)) return SendClientMessage(playerid,-1,"/carinfo [CARID]");
    if(vid == INVALID_VEHICLE_ID) return SendClientMessage(playerid,-1,"Ungültige Fahrzeug ID");
    GetVehiclePos(vid,x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,8,x,y,z)) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe des Fahrzeugs das du abrufen möchtest!");
    pID = GetVehicleBesitzer(vid);
    for(new id = 0; id < sizeof(cInfo); i++)
    {
    if(cInfo[id][id_x]==vid)
    {
    if(cInfo[id][fraktion]==1)
    {
    format(string,sizeof(string),"Fahrzeug Besitzer: LSPD & Letzter Fahrer: %s. [Fahrzeug ID %i]",LastDriver[vid],vid);
    SendClientMessage(playerid,COLOR_BUSBLUE,string);
    }
    else if(cInfo[id][besitzer] == pID)
    {
    GetPlayerName(pID, string, MAX_PLAYER_NAME);
    format(string,sizeof(string),"Fahrzeug Besitzer: %s & Letzter Fahrer: %s. [Fahrzeug ID %i]",string,LastDriver[vid],vid);
    SendClientMessage(playerid,COLOR_BUSBLUE,string);
    }
    else
    {
    SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht der Fraktion 1 oder einem Spieler.");
    }
    return 1;
    }
    }
    return 1;
    }

    Dann liegt es daran, dass du bei OnPlayerConnect dem Spieler ein Textdraw anzeigen lassen willst, welches noch nicht existiert, also die Variable den Wert 0 hat.
    Da das erste Textdraw auch die ID 0 hat, wird dir dies angezeigt.


    Du kannst da einen kleinen Trick nutzen, damit dies nicht passiert, bzw. keine sichtbaren Auswirkungen hat, und zwar, als erste Zeile in OnGameModeInit:
    TextDrawCreate(-100.000000, -100.000000, " "); //Dummy


    Somit wäre dies die ID 0, und das sieht niemand, da es außerhalb des Bildschirms ist.

    Das TextDrawShowForAll bringt bei OnGameModeInit nichts, da ist ja noch kein Spieler online.
    Du musst bei OnPlayerConnect, oder OnPlayerSpawn, oder OnPlayerRequestClass (je nach dem wo du das Textdraw anzeigen lassen willst), das Textdraw dem Spieler anzeigen.


    TextDrawShowForPlayer(playerid, Textdraw0);


    Gleich für 1,2,3.

    Versuche es so:
    ocmd:carinfo(playerid,params[])
    {
    if(isACop(playerid))return SendClientMessage(playerid,COLOR_RED,"Nein");
    new string[128],vid,Float:x,Float:y,Float:z,pID;
    if(sscanf(params,"d",vid)) return SendClientMessage(playerid,-1,"/carinfo [CARID]");
    if(vid == INVALID_VEHICLE_ID) return SendClientMessage(playerid,-1,"Ungültige Fahrzeug ID");
    GetVehiclePos(vid,x,y,z);
    if(!IsPlayerInRangeOfPoint(playerid,8,x,y,z)) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe des Fahrzeugs das du abrufen möchtest!");
    pID = GetVehicleBesitzer(vid);
    for(new id = 0; id < sizeof(cInfo); i++)
    {
    if(cInfo[id][id_x]==vid)
    {
    if(cInfo[id][fraktion]==1)
    {
    format(string,sizeof(string),"Fahrzeug Besitzer: LSPD & Letzter Fahrer: %s. [Fahrzeug ID %i]",LastDriver[vid],vid);
    SendClientMessage(playerid,COLOR_BUSBLUE,string);
    }
    else
    {
    return SendClientMessage(playerid,-1,"Dieses Fahrzeug gehört nicht der Fraktion 1.");
    }
    }
    }
    return 1;
    }


    id_x musst du eventuell zu dem anpassen, was vor CreateVehicle der Fahrzeuge steht.

    Lösche die Zeile mit dem Error ebenfalls. Die besagt ja, dass die Variable nicht existiert, was ja stimmt, da du sie gelöscht hast. Somit muss die Verwendung in der angegebenen Zeile auch weg.

    stock IsPlayerInGangZone(playerid,gangzoneid)
    {
    new Float:Pos[3];
    GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
    printf("%f >= %f", Pos[0], GangZoneInfo[gangzoneid][pos1]);
    printf("%f <= %f", Pos[0], GangZoneInfo[gangzoneid][pos3]);
    printf("%f >= %f", Pos[1], GangZoneInfo[gangzoneid][pos2]);
    printf("%f <= %f", Pos[1], GangZoneInfo[gangzoneid][pos4]);
    if( Pos[0] >= GangZoneInfo[gangzoneid][pos1] && Pos[0] <= GangZoneInfo[gangzoneid][pos3] && Pos[1] >= GangZoneInfo[gangzoneid][pos2] && Pos[1] <= GangZoneInfo[gangzoneid][pos4] ) return 1;
    else return 0;
    }


    Versuche es so.
    Ich habe 2 und 3 vertauscht.

    dcmd_setfraktion(playerid,params[])
    {
    if(!IstSpielerAdmin(playerid, 5)) return SendClientMessage(playerid,ROT,"Du bist kein Admin!");
    new pid, frakid, string[145], name[MAX_PLAYER_NAME];
    if(sscanf(params,"ud",pid,frakid)) return SendClientMessage(playerid,GELB,"Verwendung : /setfraktion [ID][Fraktions ID]");
    if(!IsPlayerConnected(pid)) return SendClientMessage(playerid,ROT,"Ungültiger Spieler");
    if(IstSpielerInFraktion(pid,frakid)) return SendClientMessage(playerid,ROT,"Der Spieler ist bereits in der Fraktion");
    sSpieler[pid][Fraktion] = frakid;
    GetPlayerName(pid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du hast dem Spieler %s (ID: %d) die Fraktion %s.", name, playerid, fInfo[frakid][f_name]);
    SendClientMessage(playerid,HELLBLAU,string);
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    format(string, sizeof(string), "Du wurdest der Fraktion %s von %s zugewiesen!", fInfo[frakid][f_name], name);
    SendClientMessage(pid,HELLBLAU,string);
    return 1;
    }