Beiträge von Jeffry

    Also wenn ein Spieler auf dem Server kommt, kriegt er immer nur die ID womit er sich registiert hat, aber ich speicher keine ID ab vom Spieler.


    Was meinst du damit? :wacko:



    Zwecks des Neons:
    Ich tippe mal darauf, dass du die Neonbalken nicht löschst, wenn ein Fahrzeug mit Neon gelöscht wird.

    printf(">>>>> Create3DTexte Fertig <<<<<");
    Der print fehlt in deinem Log. Hast du ihn vergessen, oder wird er nicht angezeigt?
    Wenn er nicht angezeigt wird, poste bitte den zusammenhängenden Code von dem Laden der ganzen Sachen und dem Create3DTexte();.

    new neuerCP = random(sizeof(Muellfuhr_Stationen));
    SetPlayerCheckpoint(playerid,Muellfuhr_Stationen[neuerCP][M_fx],Muellfuhr_Stationen[neuerCP][M_fy],Muellfuhr_Stationen[neuerCP][M_fz],Muellfuhr_Stationen[neuerCP][M_fRad]);

    Die Position hinter dem Fahrzeug musst du ja nicht in das Array packen, die kannst du ja berechnen (bzw. musst du sogar) wenn der Spieler in den Checkpoint fährt.
    Sprich du kannst dann einfach in dein Array alle Checkpoints machen, und über random eben den nächsten Anzeigen lassen, irgendeinen.

    Ja, da war ein Klammerfehler drin. Du hast eine } vergessen.
    Außerdem hast du das dcmd_register(...) in OnPlayerCommandText gepackt, das ist falsch. Du kannst das wie eine Funktion sehen, daher muss es außerhalb von Callbacks stehen, ich habe es dir mal ganz unten hingeschrieben.
    Nur die Einzeiler (dcmd(register, 8, cmdtext);) müssen bei OnPlayerCommandText hin.


    Code:

    Spoiler anzeigen
    //By JustMe.77
    #include <a_samp>
    #include <YSI\y_ini>
    #include <sscanf2>
    #include <Dini>
    #include <dudb>

    Spoiler anzeigen
    //Farben

    Spoiler anzeigen
    #define ROT 0xFF000FFF
    #define GELB 0xFFFF00FF

    Spoiler anzeigen
    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1

    Spoiler anzeigen
    new level[MAX_PLAYERS];
    new logged[MAX_PLAYERS];

    Spoiler anzeigen
    public OnPlayerConnect(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnGameModeInit()
    {
    // Don't use these lines if it's a filterscript
    SetGameModeText("Hoe v0.1");
    AddPlayerClass(30,1914.8494,-2456.0183,13.5391,185.3171,24,200,25,100,34,100); //Spawnpunkt
    AddPlayerClass(48,1914.8494,-2456.0183,13.5391,185.3171,24,200,25,100,34,100);//Spawnpunkt
    AddPlayerClass(91,1914.8494,-2456.0183,13.5391,185.3171,24,200,25,100,34,100); //Spawnpunkt
    AddPlayerClass(93,1914.8494,-2456.0183,13.5391,185.3171,24,200,25,100,34,100);//Spawnpunkt

    UsePlayerPedAnims(); //Laufstil

    return 1;
    }

    Spoiler anzeigen
    public OnGameModeExit()
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerDisconnect(playerid, reason)
    {
    return 1;
    }
    public OnPlayerSpawn(playerid)
    {
    // Give players full armour (100%) when they spawn.
    SetPlayerArmour(playerid, 100.0);
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerDeath(playerid, killerid, reason)
    {
    SendDeathMessage(killerid, playerid, reason);
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleSpawn(vehicleid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleDeath(vehicleid, killerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerText(playerid, text[])
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(register, 8, cmdtext);
    dcmd(login, 5, cmdtext);

    if(!strcmp("/heal", cmdtext, true))
    {
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    return 1;
    }

    if(!strcmp("/kill", cmdtext, true))
    {
    SetPlayerHealth(playerid, 0);
    return 1;
    }

    if (strcmp(cmdtext, "/kungfu", true) == 0)
    {
    SetPlayerFightingStyle (playerid, FIGHT_STYLE_KUNGFU);
    SendClientMessage(playerid, 0xFFFFFFAA, "You have changed your fighting style to Kungfu!");
    return 1;
    }

    if(strcmp("/setday",cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,GELB,"/setday [Wetter ID]");
    return 1;
    }

    if(strcmp("/setday 0",cmdtext, true, 10) == 0)
    {
    SetWeather(0);
    SendClientMessage(playerid,GELB,"Wetter umgeändert in EXTRASUNNY LA ");
    return 1;
    }

    if(strcmp("/setday 1",cmdtext, true, 10) == 0)
    {
    SetWeather(1);
    SendClientMessage(playerid,GELB,"Wetter umgeändert in SUNNY LA ");
    return 1;
    }

    if(strcmp("/setday 2",cmdtext, true, 10) == 0)
    {
    SetWeather(7);
    SendClientMessage(playerid,GELB,"Wetter umgeändert in CLOUDY SF");
    return 1;
    }

    if(strcmp("/settime",cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,GELB,"/settime [TIME-ID]");
    return 1;
    }

    if(strcmp("/settime 0",cmdtext, true, 10) == 0)
    {
    SetPlayerTime(playerid, 0, 0); // Midnight
    SendClientMessage(playerid,GELB,"Zeit umgeändert auf Mitternacht");
    return 1;
    }

    if(strcmp("/settime 1",cmdtext, true, 10) == 0)
    {
    SetPlayerTime(playerid, 12, 0); // Midnight
    SendClientMessage(playerid,GELB,"Zeit umgeändert auf Mittag");
    return 1;
    }

    if(strcmp("/money",cmdtext, true, 10) == 0)
    {
    GivePlayerMoney(playerid, 50000);
    SendClientMessage(playerid,GELB,"Du hast 50.000 $ erhalten");
    return 1;
    }

    if (strcmp("/restart", cmdtext, true, 10) == 0)
    {
    SendClientMessage(playerid,ROT,"Server wird gestartet");
    SendRconCommand("gmx");
    return 1;
    }
    return 0;
    }

    Spoiler anzeigen
    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerExitVehicle(playerid,vehicleid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerEnterCheckpoint(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerLeaveCheckpoint(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerEnterRaceCheckpoint(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnRconCommand(cmd[])
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerRequestSpawn(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnObjectMoved(objectid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerObjectMoved(playerid, objectid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleMod(playerid, vehicleid, componentid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleRespray(playerid, vehicleid, color1, color2)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerSelectedMenuRow(playerid, row)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerExitedMenu(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {

    }

    Spoiler anzeigen
    public OnRconLoginAttempt(ip[], password[], success)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerUpdate(playerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerStreamIn(playerid, forplayerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerStreamOut(playerid, forplayerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnVehicleStreamOut(vehicleid, forplayerid)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    {
    return 1;
    }

    Spoiler anzeigen
    public OnPlayerTakeDamage(playerid, issuerid, Float: amount, weaponid)
    {
    PlayerPlaySound(issuerid,17802,0.0,0.0,0.0); //Hitsound
    return 1;
    }

    Spoiler anzeigen
    dcmd_register(playerid, params[])
    {
    new file[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), "\\Users\\%s.ini", pname);
    if(!strlen(params)) return SendClientMessage(playerid, ROT, "USAGE:/register [password]");
    if(dini_Exists(file)) return SendClientMessage(playerid, ROT, "You are already registered!");
    dini_Create(file);
    dini_IntSet(file, "hashPW", udb_hash(params));
    dini_Set(file, "password", params);
    dini_IntSet(file, "level", 0);
    dini_IntSet(file, "score", GetPlayerScore(playerid));
    dini_IntSet(file, "money", GetPlayerMoney(playerid));
    new string[128];
    format(string, 128, "You succesfully registered the nickname %s with password %s", pname, params);
    SendClientMessage(playerid, ROT, string);
    logged[playerid] = 1;
    SendClientMessage(playerid, ROT, "You have been automatically logged in!");
    return 1;
    }

    Spoiler anzeigen
    dcmd_login(playerid, params[])
    {
    new file[128];
    new string[128], pname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pname, sizeof(pname));
    format(file, sizeof(file), "\\Users\\%s.ini", pname);
    if(!strlen(params)) return SendClientMessage(playerid, ROT, "USAGE: /login [password]");
    if(!dini_Exists(file)) return SendClientMessage(playerid, ROT, "You are not registered!");
    if(logged[playerid]) return SendClientMessage(playerid, ROT, "You are already logged in!");
    new tmp;
    tmp = dini_Int(file, "hashPW");
    if(udb_hash(params) != tmp)
    {
    format(string, 256, "You specified the wrong password for %s!", pname);
    SendClientMessage(playerid, ROT, string);
    }
    else
    {
    logged[playerid] = 1;
    level[playerid] = dini_Int(file, "level");
    SetPlayerScore(playerid, dini_Int(file, "score"));
    GivePlayerMoney(playerid, dini_Int(file, "money")-GetPlayerMoney(playerid));
    SendClientMessage(playerid, ROT, "You have succesfully logged in!");
    printf("%s (%i) logged in with password %s", pname, playerid, params);
    }
    return 1;
    }

    stock CreatePlayerVehicle(playerid, vehmodel, Float:posx, Float:posy, Float:posz, Float:posa, numberplate[], preis, neon, color1, color2)
    {
    new mainQuery[1537], secondQuery[256];
    for(new slot=0;slot<MAX_PLAYER_VEHICLES;slot++)
    {
    if(PrivateVehicle[playerid][slot][modelid] == 0)
    {
    format(PrivateVehicle[playerid][slot][vehBesitzer], 24, "%s", GetName(playerid));
    PrivateVehicle[playerid][slot][modelid] = vehmodel;
    PrivateVehicle[playerid][slot][vehPosX] = posx;
    PrivateVehicle[playerid][slot][vehPosY] = posy;
    PrivateVehicle[playerid][slot][vehPosZ] = posz;
    PrivateVehicle[playerid][slot][vehPosA] = posa;
    PrivateVehicle[playerid][slot][vehInterior] = GetPlayerInterior(playerid);
    PrivateVehicle[playerid][slot][vehWorld] = GetPlayerVirtualWorld(playerid);
    PrivateVehicle[playerid][slot][vehColor1] = color1;
    PrivateVehicle[playerid][slot][vehColor2] = color2;
    PrivateVehicle[playerid][slot][vehPaintjob] = -1;
    PrivateVehicle[playerid][slot][vehSpoiler] = 0;
    PrivateVehicle[playerid][slot][vehHood] = 0;
    PrivateVehicle[playerid][slot][vehRoof] = 0;
    PrivateVehicle[playerid][slot][vehSideskirt] = 0;
    PrivateVehicle[playerid][slot][vehLamps] = 0;
    PrivateVehicle[playerid][slot][vehNitro] = 0;
    PrivateVehicle[playerid][slot][vehExhaust] = 0;
    PrivateVehicle[playerid][slot][vehWheels] = 0;
    PrivateVehicle[playerid][slot][vehStereo] = 0;
    PrivateVehicle[playerid][slot][vehHydraulics] = 0;
    PrivateVehicle[playerid][slot][vehFrontBumper] = 0;
    PrivateVehicle[playerid][slot][vehRearBumper] = 0;
    PrivateVehicle[playerid][slot][vehVentRight] = 0;
    PrivateVehicle[playerid][slot][vehVentLeft] = 0;
    PrivateVehicle[playerid][slot][vehPreis] = preis;
    PrivateVehicle[playerid][slot][vehHealth] = 1000.0;
    PrivateVehicle[playerid][slot][vehNeonID] = neon;
    PrivateVehicle[playerid][slot][vehTankKM] = 0;
    PrivateVehicle[playerid][slot][vehKMStandCount] = 0;
    PrivateVehicle[playerid][slot][vehKMStand] = 0;
    format(PrivateVehicle[playerid][slot][vehNumberPlate], 16, numberplate);
    PrivateVehicle[playerid][slot][vehID] = CreateVehicleEx(PrivateVehicle[playerid][slot][modelid], PrivateVehicle[playerid][slot][vehPosX], PrivateVehicle[playerid][slot][vehPosY], PrivateVehicle[playerid][slot][vehPosZ], PrivateVehicle[playerid][slot][vehPosA], PrivateVehicle[playerid][slot][vehColor1], PrivateVehicle[playerid][slot][vehColor2], -1, false);
    new playerName[MAX_PLAYER_NAME+1], nPlate[32], cutName[24+1];
    GetPlayerName(playerid, playerName, sizeof(playerName));
    strmid(cutName, playerName, 0, 1, sizeof(cutName));
    format(nPlate, sizeof(nPlate), "%s",GetName(playerid));
    SetVehicleNumberPlate(PrivateVehicle[playerid][slot][vehID], nPlate);
    SetVehicleHealth(PrivateVehicle[playerid][slot][vehID], PrivateVehicle[playerid][slot][vehHealth]);
    strdel(mainQuery, 0, sizeof(mainQuery));
    strcat(mainQuery, "INSERT INTO `script_vehicles` (`vehBesitzer`, `slot`, `modelid`, `vehPosX`, `vehPosY`, `vehPosZ`, `vehPosA`, `vehHealth`, `vehColor1`, `vehColor2`, ");
    strcat(mainQuery, "`vehPaintjob`, `vehSpoiler`, `vehHood`, `vehRoof`, `vehSideskirt`, `vehLamps`, `vehNitro`, `vehExhaust`, `vehWheels`, `vehStereo`, `vehHydraulics`, ");
    strcat(mainQuery, "`vehFrontBumper`, `vehRearBumper`, `vehVentRight`, `vehVentLeft`, `vehPreis`, `vehNeonID`, `vehNumberPlate`, `vehFuel`, `vehKMStand`, `vehInterior`, ");
    strcat(mainQuery, "`vehWorld`) VALUES (");
    format(secondQuery, sizeof(secondQuery), "'%s', '%d', '%d', '%f', '%f', '%f', '%f', '%f', '%d', '%d', ",
    PrivateVehicle[playerid][slot][vehBesitzer], slot, PrivateVehicle[playerid][slot][modelid], PrivateVehicle[playerid][slot][vehPosX],
    PrivateVehicle[playerid][slot][vehPosY], PrivateVehicle[playerid][slot][vehPosZ], PrivateVehicle[playerid][slot][vehPosA],
    PrivateVehicle[playerid][slot][vehHealth], PrivateVehicle[playerid][slot][vehColor1], PrivateVehicle[playerid][slot][vehColor2]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "'%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d', ",
    PrivateVehicle[playerid][slot][vehPaintjob], PrivateVehicle[playerid][slot][vehSpoiler], PrivateVehicle[playerid][slot][vehHood],
    PrivateVehicle[playerid][slot][vehRoof], PrivateVehicle[playerid][slot][vehSideskirt], PrivateVehicle[playerid][slot][vehLamps],
    PrivateVehicle[playerid][slot][vehNitro], PrivateVehicle[playerid][slot][vehExhaust], PrivateVehicle[playerid][slot][vehWheels],
    PrivateVehicle[playerid][slot][vehStereo], PrivateVehicle[playerid][slot][vehHydraulics]);
    strcat(mainQuery, secondQuery);
    format(secondQuery, sizeof(secondQuery), "'%d', '%d', '%d', '%d', '%d', '%d', '%s', '%f', '%f', '%d', '%d')",
    PrivateVehicle[playerid][slot][vehFrontBumper], PrivateVehicle[playerid][slot][vehRearBumper], PrivateVehicle[playerid][slot][vehVentRight],
    PrivateVehicle[playerid][slot][vehVentLeft], PrivateVehicle[playerid][slot][vehPreis], PrivateVehicle[playerid][slot][vehNeonID],
    PrivateVehicle[playerid][slot][vehNumberPlate], PrivateVehicle[playerid][slot][vehFuel], PrivateVehicle[playerid][slot][vehKMStand],
    PrivateVehicle[playerid][slot][vehInterior], PrivateVehicle[playerid][slot][vehWorld]);
    strcat(mainQuery, secondQuery);
    mysql_function_query(myCon, mainQuery, false, "", "");
    SetVehicleToRespawn(PrivateVehicle[playerid][slot][vehID]);
    Vehicle[PrivateVehicle[playerid][slot][vehID]][vehFuel] = VehicleData[vehmodel-400][vehMaxTank];
    return slot;
    }
    }
    return -1;
    }



    case DIALOG_GUTSCHEIN_UBB:
    {
    if(response)
    {
    new type = listitem+1, slot;
    switch(type)
    {
    case 1: { slot = CreatePlayerVehicle(playerid, 560, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 2: { slot = CreatePlayerVehicle(playerid, 559, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 3: { slot = CreatePlayerVehicle(playerid, 411, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 4: { slot = CreatePlayerVehicle(playerid, 451, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 5: { slot = CreatePlayerVehicle(playerid, 541, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 6: { slot = CreatePlayerVehicle(playerid, 477, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 7: { slot = CreatePlayerVehicle(playerid, 429, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 8: { slot = CreatePlayerVehicle(playerid, 415, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    case 9: { slot = CreatePlayerVehicle(playerid, 506, -1706.9330,11.5702,3.2606,316.5364,GetName(playerid),0,0,0,0); }
    }
    if(slot == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Fahrzeug konnte nicht erstellt werden.");
    SetPVarInt(playerid, "slotID", slot);
    SetVehicleParamsEx(GetPlayerVehicleID(playerid), VEHICLE_PARAMS_OFF, VEHICLE_PARAMS_OFF, alarm, doors, bonnet, boot, objective);
    ShowPlayerDialog(playerid, DIALOG_GUTSCHEIN_UBB2, DIALOG_STYLE_LIST, "Unterbodenbeleichtung", "Blau\nGrün\nWeiss\nPink\nGelb\nRot", "Auswählen", "");
    return 1;
    }
    }



    case DIALOG_GUTSCHEIN_UBB2:
    {
    if(response)
    {
    new vehSlot = GetPVarInt(playerid, "slotID");
    new type = listitem+1;
    switch(type)
    {
    case 1: // Blau
    {
    PrivateVehicle[playerid][vehSlot][vehNeon1] = CreateDynamicObject(18648, 0, 0, 0, 0, 0, 0, 0);
    PrivateVehicle[playerid][vehSlot][vehNeon2] = CreateDynamicObject(18648, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon1], PrivateVehicle[playerid][vehSlot][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon2], PrivateVehicle[playerid][vehSlot][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 2: // Grün
    {
    PrivateVehicle[playerid][vehSlot][vehNeon1] = CreateDynamicObject(18649, 0, 0, 0, 0, 0, 0, 0);
    PrivateVehicle[playerid][vehSlot][vehNeon2] = CreateDynamicObject(18649, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon1], PrivateVehicle[playerid][vehSlot][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon2], PrivateVehicle[playerid][vehSlot][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 3: // Weiß
    {
    PrivateVehicle[playerid][vehSlot][vehNeon1] = CreateDynamicObject(18652, 0, 0, 0, 0, 0, 0, 0);
    PrivateVehicle[playerid][vehSlot][vehNeon2] = CreateDynamicObject(18652, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon1], PrivateVehicle[playerid][vehSlot][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon2], PrivateVehicle[playerid][vehSlot][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 4: // Pink
    {
    PrivateVehicle[playerid][vehSlot][vehNeon1] = CreateDynamicObject(18651, 0, 0, 0, 0, 0, 0, 0);
    PrivateVehicle[playerid][vehSlot][vehNeon2] = CreateDynamicObject(18651, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon1], PrivateVehicle[playerid][vehSlot][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon2], PrivateVehicle[playerid][vehSlot][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 5: // Gelb
    {
    PrivateVehicle[playerid][vehSlot][vehNeon1] = CreateDynamicObject(18650, 0, 0, 0, 0, 0, 0, 0);
    PrivateVehicle[playerid][vehSlot][vehNeon2] = CreateDynamicObject(18650, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon1], PrivateVehicle[playerid][vehSlot][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon2], PrivateVehicle[playerid][vehSlot][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    case 6: // Rot
    {
    PrivateVehicle[playerid][vehSlot][vehNeon1] = CreateDynamicObject(18647, 0, 0, 0, 0, 0, 0, 0);
    PrivateVehicle[playerid][vehSlot][vehNeon2] = CreateDynamicObject(18647, 0, 0, 0, 0, 0, 0, 0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon1], PrivateVehicle[playerid][vehSlot][vehID], -0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    AttachDynamicObjectToVehicle(PrivateVehicle[playerid][vehSlot][vehNeon2], PrivateVehicle[playerid][vehSlot][vehID], 0.8, 0.0, -0.70, 0.0, 0.0, 0.0);
    }
    }
    new query[256];
    PrivateVehicle[playerid][vehSlot][vehNeonID] = type;
    format(query, sizeof(query), "UPDATE `script_vehicles` SET `vehNeonID` = '%d' WHERE `vehBesitzer` = '%s' AND `Slot` = '%d'",type,PrivateVehicle[playerid][vehSlot][vehBesitzer],vehSlot);
    mysql_function_query(myCon, query, false, "", "");
    SendClientMessage(playerid, COLOR_WHITE, "* Dein Gutschein wurde erfolgreich eingelöst.");
    SendClientMessage(playerid, COLOR_WHITE, "* Das Fahrzeug wurde geliefert, Du findest es auf der Map.");
    SetPlayerCheckpointEx(playerid, -1706.9330,11.5702,3.2606, 5.0, CP_UBBCAR, INVALID_CHECKPOINT_TYPE);
    return 1;
    }
    }


    So sollte es passen.

    stock GetPosHinterFahrzeug(vehicleid, Float:dist, &Float:x, &Float:y, &Float:z) //©Jeffry
    {
    if(GetVehicleModel(vehicleid) != 0)
    {
    new Float:a;
    GetVehicleZAngle(vehicleid, a);
    GetVehiclePos(vehicleid, x, y, z);
    x -= (dist * floatsin(-a, degrees));
    y -= (dist * floatcos(-a, degrees));
    return true;
    }
    return false;
    }



    Zwecks den Random Checkpoints:
    Kannst du schon machen, das wird dann aber etws komplizierter bei allen Abfragen. Ich würde dir raten, mach es erst mal ohne random, und wenn das geht kannst du es immernoch anpassen.

    Du musst bei CreatePlayerVehicle den Slot returnen. Dann, bei der Auswahl des Fahrzeugs, wo es erstellt wird, speicherst du die Rückgabe von CreatePlayerVehicle in eine Spielervariable.


    Und bei der Schleife beim Neon hinzufügen fragst du dann an ob vehSlot == Spielervariable ist.


    Falls du mit dem Code nicht klar kommst poste bitte dein CreatePlayerVehicle noch, dann mache ich dir das heute Mittag kurz.