Beiträge von Jeffry

    pAllowNeon,
    fehlt im Enum zu PlayerInfo.


    Der Befehl muss so aussehen:
    if (strcmp("/opark", cmd, true, 10) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid) && GetVehicleModel(GetPlayerVehicleID(playerid)) == 525 && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pMember] == 24||PlayerInfo[playerid][pLeader] == 24)
    {
    if(!IsTrailerAttachedToVehicle(GetPlayerVehicleID(playerid)))
    {
    SendClientMessage(playerid, COLOR_GREY, " An deinem Abschleppwagen ist kein Auto angehängt!");
    return 1;
    }
    new trail_car = GetVehicleTrailer(GetPlayerVehicleID(playerid));
    new fcarid = IsAFrakCar(trail_car);
    new Float:X,Float:Y,Float:Z,Float:z_rot;
    GetVehiclePos(trail_car, X,Y,Z);
    GetVehicleZAngle(trail_car, z_rot);
    if(IsADtCar(trail_car))
    {
    new carowner = GetDtCarOwner(trail_car);
    printf("carowner: %d", carowner);
    new slot = GetDtCarOwnerSlot(carowner,trail_car);
    printf("slot: %d", slot);
    PlayerCar[carowner][slot][CarPos_x] = X;
    PlayerCar[carowner][slot][CarPos_y] = Y;
    PlayerCar[carowner][slot][CarPos_z] = Z;
    PlayerCar[carowner][slot][CarArrest] = 1;
    PlayerCar[carowner][slot][CarRotate] = z_rot;
    printf("Abgeschleppt");
    new fkasse = 2000 + random(2999);
    FraktionsKasse[23] += fkasse;
    if(carowner != 555)
    {
    OnPlayerCarUpdate(carowner);
    SendClientMessage(carowner, COLOR_WHITE, " Ihr Fahrzeug wurde abgeschleppt, Fahren zu zur Ordnungsamt Base, um ihr auto wieder Freizukaufen.");
    PlayerInfo[carowner][pRest] = 1;
    SetTimerEx("PlayerCarSpawn",1000,0,"i",carowner);
    }
    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    }
    else if(fcarid != -1)
    {
    FactionCars[fcarid][fPos][0] = X;
    FactionCars[fcarid][fPos][1] = Y;
    FactionCars[fcarid][fPos][2] = Z;
    FactionCars[fcarid][fPos][3] = z_rot;
    DetachTrailerFromVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid, COLOR_YELLOW, " Du hast das Fahrzeug erfolgreich abgeschleppt!");
    //Hier weitere Dinge...
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du hast kein oder kein erlaubtes Fahrzeug dabei!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied des Ordnungsamtes!");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst einen Abschleppwagen fahren!");
    }
    return 1;
    }

    Naja, wenn du mehrere Fahrzeuge in einer Garage hast, dann ja. Ein enum für die geparkten Fahrzeuge, und eins für die Garagen. Dann gibst du den geparkten Fahrzeugen die Garagen-ID mit, damit du weißt, wo es drin ist.

    Könnte daran gelegen haben, dass da ein strtok wohl fehlt.
    Versuche es mal so:

    Spoiler anzeigen
    if(strcmp(cmd, "/heal", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /heal [ID/NAME] [Preis]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /heal [ID/NAME] [Preis]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 1000)
    {
    SendClientMessage(playerid, COLOR_GREY, " Behandlungspreis nicht weniger als: 1€ und höher als 3000€ !"); return 1;
    }
    if (giveplayerid == playerid)
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du kannst dich leider nicht selber Heilen!");
    return 1;
    }
    if (IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new giveambu = GetPlayerVehicleID(giveplayerid);
    new playambu = GetPlayerVehicleID(playerid);
    if(gTeam[playerid] == TEAM_CYAN || PlayerInfo[playerid][pMember]== 4||PlayerInfo[playerid][pLeader] == 4 )//model
    {
    if (IsAnAmbulance(playambu) && playambu == giveambu)
    {
    new Float:tempheal;
    GetPlayerHealth(giveplayerid,tempheal);
    if(tempheal >= 160)
    {
    SendClientMessage(playerid, TEAM_GREEN_COLOR," Diese Person ist schon Geheilt.");
    return 1;
    }
    format(string, sizeof(string), "~y~Du heilst: ~n~~w~%s~n~~g~€%d", giveplayer,moneys);
    GameTextForPlayer(playerid, string, 5000, 1);
    GivePlayerMoney(playerid,moneys);
    GivePlayerMoney(giveplayerid,-moneys);
    new hp = 0;
    if(PlayerInfo[playerid][pPainPerk] > 0)
    {
    hp = 20 * PlayerInfo[playerid][pPainPerk];
    hp += 100;
    SetPlayerHealth(giveplayerid, hp);
    }
    else
    {
    hp = 100;
    SetPlayerHealth(giveplayerid, 100);
    }
    PlayerPlaySound(playerid, 1150, 0.0, 0.0, 0.0);
    PlayerPlaySound(giveplayerid, 1150, 0.0, 0.0, 0.0);
    format(string, sizeof(string), "Du wurdest für €%d geheilt.",moneys);
    SendClientMessage(giveplayerid, TEAM_GREEN_COLOR,string);
    if(STDPlayer[giveplayerid] > 0)
    {
    STDPlayer[giveplayerid] = 0;
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Du bist nun nicht mehr an STD erkrankt. Die Ärzte konnten dich retten! !");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Nicht im Rettungswagen / Rettungshelikopter!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du darfst diesen Befehl nicht benutzen !");
    return 1;
    }
    }
    }
    else
    {
    format(string, sizeof(string), " %d ist kein aktiver Spieler.", giveplayerid);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    return 1;
    }

    /parken zu machen als Befehl


    mit ein Enum zu arbeiten


    Die beiden Dinge sind zwei völlig unterschiedliche Teile, wenn du in einem enum die Werte speicherst, brauchst du trotzdem einen Befehl.


    Die Frage für dich ist nur: Mit oder ohne enum. An sich ist das egal, nur mit einem enum (und was dazu gehört) ist es sicherlich strukturierter und besser aufgebaut. Daher würde ich dir dazu raten.

    Beim Laden:
    VehicleInfo[index][vID] = index;
    zu:
    VehicleInfo[index][vID] = Auto;


    Und beim anderen Laden:
    VehicleInfo[Auto][vID] = ID;
    zu:
    VehicleInfo[vehicleid][vID] = Auto;


    Das wird nicht viel ändern, aber dann passt der Teil schonmal.
    Poste dann bitte mal den MySQL Log, der kommt, wenn du das Auto abholen willst. Mache dazu den mysql_debug an.

    (l == SPRACHE_GERMAN) ? (SendClientMessage(playerid, COLOR_RED, errmsg[0])) : (SendClientMessage(playerid, COLOR_RED, errmsg[1]));
    Das ist keine Zulässige Anweisung. Das müsste in einem Parameter stehen, oder in einem return Wert (etc). Aber als Anweisung (expression) ist es nicht möglich.


    Nutze einfach:
    if(!response)
    {
    if(l == SPRACHE_GERMAN) SendClientMessage(playerid, 1, errmsg[0]);
    else SendClientMessage(playerid, 1, errmsg[1]);
    Kick(playerid);
    return false;
    }
    Das ist auch wesentlich leichter zu lesen. Du solltest dir nicht angewöhnen alles in eine Zeile zu schreiben, das ist ein ganz schlechter Programmierstil.

    Dann schreibe das Speichern so:
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    dini_IntSet(Spielerdatei,"Führerschein",GetPVarInt(playerid,"Führerschein"));
    dini_IntSet(Spielerdatei,"WantedLevel",GetPlayerWantedLevel(playerid));
    dini_IntSet(Spielerdatei,"Skin",GetPVarInt(playerid,"Skin"));
    }
    return 1;
    }


    Und bei OnPlayerModelSelection fügst du nach SetPlayerSkin das ein:
    SetPVarInt(playerid,"Skin",modelid);

    Ok, zu den obigen Änderungen, die ich dir bereits gegeben habe, kommt jetzt das hier (mach zuerst das vom ersten Post, falls noch nicht gemacht).

    Spoiler anzeigen
    NeonObject[2],
    Wieder aus dem enum entfernen.

    Spoiler anzeigen
    new PlayerCarNeon[MAX_PLAYERS][MaxVeh][4];
    Nach dem enum irgendwo einfügen.

    Spoiler anzeigen
    Der Dialog:
    if(dialogid == neondialog)
    {
    if(response)
    {
    new vID = GetPlayerVehicleID(playerid);
    for(new slot = 0; slot < MaxVeh; slot++)
    {
    if(Dtc_PlayerHaveCar[playerid][slot])
    {
    if(PlayerCar[playerid][slot][CarId] == vID)
    {
    if(listitem != 12)
    {
    SendClientMessage(playerid, 0xFFFFFFAA, "Neonlichter installiert!");
    SetupPlayerCarNeon(playerid, slot, 0); //Erst die alten entfernen, falls welche dran sind.
    }
    else SendClientMessage(playerid, 0xFFFFFFAA, "Neonlichter entfernt!");
    SetupPlayerCarNeon(playerid, slot, listitem+1);
    OnPlayerCarUpdate(playerid);
    return 1;
    }
    }
    }
    }
    return 1;
    }

    Spoiler anzeigen
    Unten im Gamemode:
    stock SetupPlayerCarNeon(playerid, slot, id)
    {
    new vID = GetPlayerVehicleID(playerid);
    switch(id)
    {
    case 1:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18648,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18648,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], , -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 2:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18647,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18647,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 3:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18649,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18649,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 4:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18652,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18652,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 5:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18651,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18651,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 6:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18650,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18650,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 7:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18648,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18648,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][2] = CreateObject(18649,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][3] = CreateObject(18649,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][2], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][3], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 8:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18648,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18648,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][2] = CreateObject(18652,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][3] = CreateObject(18652,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][2], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][3], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 9:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18647,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18647,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][2] = CreateObject(18652,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][3] = CreateObject(18652,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][2], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][3], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 10:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18647,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18647,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][2] = CreateObject(18650,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][3] = CreateObject(18650,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][2], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][3], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 11:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18649,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18649,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][2] = CreateObject(18652,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][3] = CreateObject(18652,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][2], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][3], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 12:
    {
    PlayerCarNeon[playerid][slot][0] = CreateObject(18652,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][1] = CreateObject(18652,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][2] = CreateObject(18650,0,0,0,0,0,0);
    PlayerCarNeon[playerid][slot][3] = CreateObject(18650,0,0,0,0,0,0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][0], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][1], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][2], vID, -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachObjectToVehicle(PlayerCarNeon[playerid][slot][3], vID, 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    default:
    {
    if(PlayerCar[playerid][slot][NeonID] > 0)
    {
    DestroyObject(PlayerCarNeon[playerid][slot][0]);
    DestroyObject(PlayerCarNeon[playerid][slot][1]);
    if(PlayerCar[playerid][slot][NeonID] > 6)
    {
    DestroyObject(PlayerCarNeon[playerid][slot][2]);
    DestroyObject(PlayerCarNeon[playerid][slot][3]);
    }
    }
    PlayerCar[playerid][slot][NeonID] = 0;
    return 1;
    }
    }
    PlayerCar[playerid][slot][NeonID] = id;
    return 1;
    }

    Spoiler anzeigen
    Und diese Funktionen so abändern:
    Function PlayerCarSpawn(playerid,Slot)
    {
    if(IsPlayerConnected(playerid))
    {
    if(Dtc_PlayerHaveCar[playerid][Slot])
    {
    PlayerCar[playerid][Slot][CarId] = CreateVehicle(PlayerCar[playerid][Slot][CarModel],PlayerCar[playerid][Slot][CarPos_x],PlayerCar[playerid][Slot][CarPos_y],PlayerCar[playerid][Slot][CarPos_z],PlayerCar[playerid][Slot][CarRotate],PlayerCar[playerid][Slot][CarC1],PlayerCar[playerid][Slot][CarC2], 60000);/*vehicle spawn*/
    CarTuning(playerid,Slot);
    new strings[15];
    new name[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, name, sizeof name);
    format(str, sizeof str, "/Autos/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    //format(strings, sizeof(strings), "%s", dini_Get(str, "CarPlate"));
    format(strings, sizeof(strings), "%s", dini_Get(str, "Plate"));
    SetVehicleNumberPlate(PlayerCar[playerid][Slot][CarId], strings);
    SetVehicleToRespawn(PlayerCar[playerid][Slot][CarId]);
    format(PlayerCar[playerid][x][Plate], 64, strings);
    SetupPlayerCarNeon(playerid, x, PlayerCar[playerid][Slot][NeonID]);
    }
    }
    }

    Spoiler anzeigen
    Function OnPlayerBuyCar(playerid,Model,Preis,Autohaus)//CARSYS
    {
    if(IsPlayerConnected(playerid) && !Dtc_PlayerHaveCar[playerid][Dtc_PlayerKey[playerid]])
    {
    CallRemoteFunction("M_GivePlayerMoney","id",playerid,-Preis);
    if(Autohaus == 2) //Billig Autohaus
    {
    SBizzInfo[1][sbTill] += Preis/4; //Billig Autohaus
    }
    if(Autohaus == 3) // luxus
    {
    SBizzInfo[0][sbTill] += Preis/4; // luxus
    }
    /*if(Autohaus == 7) // VIP-Autohaus
    {
    SBizzInfo[2][sbTill] += Preis/10; // VIP-Autohaus
    }*/
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Du hast dir ein Auto gekauft.");

    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Gehe zu der KFZ Stelle und hole dir ein Kennzeichen.");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "*Fahre vorsichtig..Und denk an die StraßenVerkehrsOrdnung!");
    SendClientMessage(playerid,COLOR_GRAD2,"Navigation gesetzt!");
    SetParkPlatz(playerid,Autohaus);
    new name[MAX_PLAYER_NAME], str[128];
    GetPlayerName(playerid, name, sizeof name);
    format(str, sizeof str, "/Autos/%s%d.dtcar", name,Dtc_PlayerKey[playerid]);
    new File: hFile = fopen(str, io_write);
    if (hFile)
    {
    new var[32];
    format(var, 32, "CarId=0\n");fwrite(hFile, var);
    format(var, 32, "CarModel=%d\n",Model);fwrite(hFile, var);
    format(var, 32, "CarPos_x=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_x]);fwrite(hFile, var);
    format(var, 32, "CarPos_y=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_y]);fwrite(hFile, var);
    format(var, 32, "CarPos_z=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarPos_z]);fwrite(hFile, var);
    format(var, 32, "CarRotate=%.3f\n",PlayerCar[playerid][Dtc_PlayerKey[playerid]][CarRotate]);fwrite(hFile, var);
    format(var, 32, "CarNitro=0\n");fwrite(hFile, var);
    format(var, 32, "CarHyd=0\n");fwrite(hFile, var);
    format(var, 32, "CarWheel=0\n");fwrite(hFile, var);
    format(var, 32, "CarAusp=0\n");fwrite(hFile, var);
    format(var, 32, "CarSideL=0\n");fwrite(hFile, var);
    format(var, 32, "CarSideR=0\n");fwrite(hFile, var);
    format(var, 32, "CarFB=0\n");fwrite(hFile, var);
    format(var, 32, "CarRB=0\n");fwrite(hFile, var);
    format(var, 32, "CarSpoiler=0\n");fwrite(hFile, var);
    format(var, 32, "CarRoof=0\n");fwrite(hFile, var);
    format(var, 32, "CarHood=0\n");fwrite(hFile, var);
    format(var, 32, "CarVents=0\n");fwrite(hFile, var);
    format(var, 32, "CarLamps=0\n");fwrite(hFile, var);
    format(var, 32, "CarPJ=-1\n");fwrite(hFile, var);
    format(var, 32, "CarC1=-1\n");fwrite(hFile, var);
    format(var, 32, "CarC2=-1\n");fwrite(hFile, var);
    format(var, 32, "Preis=%d\n",Preis);fwrite(hFile, var);
    format(var, 32, "CarArrest=0\n");fwrite(hFile, var);
    format(var, 32, "Plate=[GDG]\n");fwrite(hFile, var);
    format(var, 32, "NeonID=0\n");fwrite(hFile, var);
    fclose(hFile);
    }
    OnPlayerCarLogin(playerid);
    }
    }


    Ich hoffe, dass da keine Fehler drin sind, da ich es natürlich nicht kompilieren konnte. Falls welche drin sind, oder falls es nicht funktioniert, sag Bescheid.

    Wenn du den Befehl eingibst, dann sollte der print eigentlich kommen, sonst würde SetPlayerPos nicht aufgerufen werden, somit würdest du auch nicht teleportiert werden.
    Sicher, dass du den Code kompiliert hast, und den Server neu gestartet hast?

    Dann poste bitte mal was im Server Log steht, wenn du es so schreibst und den Befehl dann eingibst:
    if(strcmp(cmd, "/exitgarage", true) == 0 || strcmp(cmd, "/exitga", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new Seat[MAX_PLAYERS], InCar[MAX_PLAYERS];
    new i = GetPlayerVirtualWorld(playerid), vehicleid;
    if(i == 0) return SendClientMessage(playerid, GREY, "You are not inside a garage.");
    if(GarageInfo[i][GarageLocked]) return SendClientMessage(playerid, GREY, "You've been locked inside the garage, tough luck.");
    if(IsPlayerInRangeOfPoint(playerid, 30.0, GarageInfo[i][GarageInsideX], GarageInfo[i][GarageInsideY], GarageInfo[i][GarageInsideZ]) && GetPlayerVirtualWorld(playerid) == i)
    {
    if(GetPlayerState(playerid) == 2)
    {
    vehicleid = GetPlayerVehicleID(playerid);
    for(new j = 0; j < MAX_PLAYERS; j++)
    {
    if(IsPlayerInVehicle(j, vehicleid))
    {
    InCar[j] = vehicleid;
    Seat[j] = GetPlayerVehicleSeat(playerid);
    SetPlayerInterior(j, 0);
    SetPlayerVirtualWorld(j, 0);
    SetPVarInt(j, "InGarage", 0);
    }
    }
    SetVehiclePos(vehicleid, GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ]);
    SetVehicleZAngle(vehicleid, GarageInfo[i][GarageExitA]);
    SetVehicleWorld(vehicleid, 0);
    SetVehicleInterior(vehicleid, 0);
    }
    printf("Position: %f / %f / %f / %f", GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ], GarageInfo[i][GarageExitA]);
    SetPlayerPosEx(playerid, GarageInfo[i][GarageExitX], GarageInfo[i][GarageExitY], GarageInfo[i][GarageExitZ]);
    SetPlayerFacingAngle(playerid, GarageInfo[i][GarageExitA]);
    SetPlayerInterior(playerid, 0);
    SetPlayerVirtualWorld(playerid, 0);
    if(vehicleid != 0)
    {
    for (new j = 0; j < MAX_PLAYERS; j++)
    {
    if (InCar[j] == 0) continue;
    if (InCar[j] == vehicleid)
    {
    PutPlayerInVehicle(j, vehicleid, Seat[j]);
    }
    }
    PutPlayerInVehicle(playerid, vehicleid, 0);
    }
    SetPVarInt(playerid, "InGarage", 0);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, GREY, "You are not near a garage exit.");
    return 1;
    }
    }
    return 1;
    }

    Ja, so in etwa.


    i ist der Zähler über den Index von lspdcar, also dem Array. Der Zähler geht einfach von 0 bis sizeof davon.
    Daher muss man auf den Index des Arrays zugreifen, da dort der Wert drin steht.

    Create3DTextLabel("/Essen - Hungerbar",0xFF0000FF,1200.2184,-912.0904,48.0625,10.0,0,0);
    CreateDynamicPickup(1240,1,1200.2184,-912.0904,48.0625,0,0,-1,100.0);


    Beim Create3DTextLabel hast du die Koordinaten nach der Farbe vergessen.
    Bei CreateDynamicPickup den Typ (die 1).

    Dann musst du das bei dem existierenden OnPlayerPickUpPickup einfügen:
    if(pickupid == skinChangePickup)
    {
    ShowModelSelectionMenu(playerid, skinlist, "Select Skin");
    return 1;
    }


    Das Pickup musst du natürlich erstellen und mit new unter den Includes deklarieren, sonst geht es nicht.
    Das Pickup erstellst du mit CreatePickup, Typ 1.
    https://wiki.sa-mp.com/wiki/CreatePickup