Beiträge von D4rkZ3r0x

    Dazu würde ich zuerst ein enum erstellen:

    enum Checkpoint{
    Float:X,
    Float:Y,
    Float:Z,
    Float:R // Radius
    }


    Dann musst du die Koordinaten in ein Array speichern:

    new CPInfo[][Checkpoint] {
    {X,Y,Z,R},
    ...
    };
    new CheckpointCount[MAX_PLAYERS]; // Speichert lediglich die Checkpointnummer jedes Spielers


    Nun gehst du zu deiner Funktion und kannst den ersten Checkpoint anzeigen lassen:

    ocmd:checkpoint(playerid,params)
    {
    CheckpointCount[playerid]=1;
    SetPlayerCheckpoint(playerid,CPInfo[0][X],CPInfo[0][Y],CPInfo[0][Z],CPInfo[0][R]);
    ...
    }


    Nun gehst du zu der Funktion OnPlayerEnterCheckpoint und prüfst ob er in deinem Checkpoint ist:

    public OnPlayerEnterCheckpoint(playerid)
    {
    if(CheckpointCount[playerid]!=0)
    {
    DisablePlayerCheckpoint(playerid);
    CheckpointCount[playerid]++;
    SetPlayerCheckpoint(playerid,CPInfo[CheckpointCount][X],CPInfo[CheckpointCount][Y],CPInfo[CheckpointCount][Z],CPInfo[CheckpointCount][R]);
    }
    }


    Ich hoffe ich konnte dir helfen, falls nicht kannst du dich gerne bei mir melden :D


    /Edit: Die [pwn] anzeige hat wieder gespackt -.-

    Du gehst InGame an die gewünschte Stelle, gibst /save [TEXT_ZUM_WIEDERERKENNEN] ein und gehts unter Eigene Dokumente\GTA San Andreas User Files\SAMP\savedpositions.txt
    Da findest du die Koordinaten vor, mit deinem Text den du hinter das /save geschrieben hast.
    Diese nimmst du, gehst ins Script und machst

    SetPlayerPos(playerid,X,Y,Z); //X,Y,Z durch die Koordinaten ersetzen.


    Dann spawnt er so wie gewünscht.

    Am besten benutzt du dafür eine Variable

    new LSPDCars[50];


    Dann erstellst du die ganzen Cars im OnGameModeInit Callback.

    LSPDCars[1] = AddStaticVehicleEx(...);

    Als Speicherfunktion kann ich dir nur MySQL ans Herz legen. Erstens ist es einfacher als die ganzen Dateien und zweitens ist es Ressourcenschonender.
    Ich persönlich benutze das MySQL Plugin von gstylezzz und bin sehr zufrieden damit :)


    Ich hoffe ich konnte dir helfen.

    Okay Danke :D


    Hier ist einmal die Funktion StripNewLine:



    stock StripNewLine(str[])
    {
    new
    l = strlen(str);
    while (l-- && str[l] <= ' ') str[l] = '\0';
    }


    Die Time funktion finde ich leider immer noch nicht, ich suche schon die ganze Zeit :(

    Das ist auch kein Klammerfehler! Nicht wenn viele Errors auf einmal kommne ist es immer gleich ein Klammerfehler.
    strtok ist einfach nicht definiert.


    Füge das ganz hinten im Script ein



    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Das findet man auch ganz einfach auf der Wiki-Seite Strtok.


    Such mal nach dem "Time" im Script, ich weiß nicht genau das das noch ist...

    Warum machst du es nicht mit einem Optionalen String, den du dann in einen Integer umwandelst?
    Das ist viel einfacher und funktioniert bei mir auch :)



    ocmd:medis(playerid, params[])
    {
    if(IstInFraktion(playerid) != FRAK_Medic) { return SendInfoMsg(playerid, "Du bist kein Medic!"); }
    if(Duty[playerid] != 2) return SendInfoMsg(playerid, "Du bist nicht im Dienst! (/duty)");
    new Auswahl[20],Anzahl2[5],tmpstr[128];
    if(sscanf(params,"sz",Auswahl,Anzahl2)) { SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show] <Anzahl>"); return 1; }
    printf("Auswahl: %s", Auswahl);

    new Anzahl = strval(Anzahl2);


    if(!strcmp(Auswahl, "medikamente", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
    if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Medikamente [Anzahl]");
    printf("Auswahl: %s | Anzahl", Auswahl, Anzahl);
    new MediAnzahl = SpielerVariablen[playerid][Medikamente]+Anzahl;
    if(MediAnzahl > 1200) {
    format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Medikamente mitnehmen! (Höchstens 1200)",1200-SpielerVariablen[playerid][Medikamente]);
    }
    new MediPreis = Anzahl*3;
    if(Spieler[playerid][Geld] < MediPreis) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Medikament 3$)", MediPreis);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][Medikamente] += Anzahl;
    format(tmpstr, sizeof tmpstr, "Du hast dir %d Medikamente für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,MediPreis,SpielerVariablen[playerid][Medikamente]);
    SendBlueMsg(playerid, tmpstr);
    return 1;
    }
    else if(!strcmp(Auswahl, "spritzen", true)) {
    if(!IsPlayerInRangeOfPoint(playerid, 3.0,1418.4304,3.8823,1001.4976)) return SendInfoMsg(playerid, "Du bist nicht am Medikamenten Center!");
    if(Anzahl <= 0) return SendNutzMsg(playerid, "/medis Spritzen [Anzahl]");
    new SpritzenAnzahl = SpielerVariablen[playerid][Spritzen]+Anzahl;
    if(SpritzenAnzahl >= 1000) {
    format(tmpstr, sizeof tmpstr, "Du kannst nurnoch maximal %d Spritzen mitnehmen! (Höchstens 1000)",1000-SpielerVariablen[playerid][Medikamente]);
    }
    new SpritzenPreis = Anzahl*4;
    if(Spieler[playerid][Geld] < SpritzenPreis) {
    format(tmpstr, sizeof tmpstr, "Du hast nicht genug Geld! Du benötigst %d $ (Pro Spritzen 4$)", SpritzenPreis);
    SendInfoMsg(playerid, tmpstr);
    return 1;
    }
    SpielerVariablen[playerid][Spritzen] += Anzahl;
    format(tmpstr, sizeof tmpstr, "Du hast dir %d Spritzen für %d$ gekauft. Du hast nun %d Medikamente", Anzahl,SpritzenPreis,SpielerVariablen[playerid][Spritzen]);
    SendBlueMsg(playerid, tmpstr);
    return 1;
    }
    else if(!strcmp(Auswahl, "show", true)) {
    format(tmpstr, sizeof tmpstr, "Medikamente: %d/1200 \nSpritzen: %d/1000", SpielerVariablen[playerid][Medikamente],SpielerVariablen[playerid][Spritzen]);
    ShowPlayerDialog(playerid, DIALOG_UNUSED, DIALOG_STYLE_MSGBOX, "Medikamente u. Spritzen:", tmpstr, "Ok", "");
    return 1;
    }
    else {
    SendNutzMsg(playerid, "/medis [Medikamente/Spritzen/Show]");
    return 1;
    }
    }