Beiträge von Dachdecker

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    Hallo liebe Scripter,



    Ich möchte meine Fahrzeuge per Befehl parken lassen, weiß aber gerade ehrlich gesagt nicht wie.


    Das Fraktionsfahrzeugeerstellen und -loeschen system wurde mir empfohlen:



    ocmd:fferstellen(playerid, params[])
    {
    //Zuerst fragen wir ab, ob wir noch Fahrzeuge erstellen können
    if(GetVehicleModel(MAX_VEHICLES-1) != 0) return SendClientMessage(playerid, Weiss, "Es können keine weiteren Fahrzeuge erstellt werden, Limit (MAX_VEHICLES) erreicht.");



    //Wir deklarieren die benötigten temporären Variablen.
    new tmp[20], idx, model, fID, color1 = -1, color2 = -1;



    //Anschließend teilen wir mit strtok2 die eingegebenen Paramater auf und wandeln sie in eine Zahl um.
    //Falls etwas falsches eingegeben wurde, geben wir eine entsprechende Meldung zurück.
    tmp = strtok2(params, idx);
    if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, Weiss, "Verwendung: /fferstellen [Model] [FraktionsID] [opt:Farbe1] [opt:Farbe2]");
    model = strval(tmp);
    //Eine solche Abfrage kann man auch für nachfolgende FraktionsID (fID) machen, falls gewünscht.
    if(model < 400 || model > 611) return SendClientMessage(playerid, Weiss, "Error: Model ID existiert nicht.");
    tmp = strtok2(params, idx);
    if(!strlen(tmp) || !IsNumeric(tmp)) return SendClientMessage(playerid, Weiss, "Verwendung: /fferstellen [Model] [FraktionsID] [opt:Farbe1] [opt:Farbe2]");
    fID = strval(tmp);
    tmp = strtok2(params, idx);
    if(strlen(tmp) && IsNumeric(tmp)) color1 = strval(tmp);
    tmp = strtok2(params, idx);
    if(strlen(tmp) && IsNumeric(tmp)) color2 = strval(tmp);



    //Sind alle Parameter korrekt übergeben worden, dann suchen wir uns einen freien Index in den wir das Fraktions-Fahrzeug speichern können.
    for(new i=0; i<Max_FraktionsFahrzeuge; i++)
    {
    //Frei:
    if(FFVehInfo[i][ff_vID] == 0)
    {
    //Daten werden übergeben
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid, x, y, z);
    GetPlayerFacingAngle(playerid, a);
    FFVehInfo[i][ff_ModelID] = model;
    FFVehInfo[i][ff_x] = x;
    FFVehInfo[i][ff_y] = y;
    FFVehInfo[i][ff_z] = z;
    FFVehInfo[i][ff_a] = a;
    FFVehInfo[i][ff_Farbe1] = color1;
    FFVehInfo[i][ff_Farbe2] = color2;
    FFVehInfo[i][ff_FraktionsID] = fID;



    //und anschließend wird dann das Fahrzeug erstellt und der Spieler in das Fahrzeug gesetzt.
    FFVehInfo[i][ff_vID] = CreateVehicle(FFVehInfo[i][ff_ModelID], FFVehInfo[i][ff_x], FFVehInfo[i][ff_y], FFVehInfo[i][ff_z], FFVehInfo[i][ff_a], FFVehInfo[i][ff_Farbe1], FFVehInfo[i][ff_Farbe2], -1);
    PutPlayerInVehicle(playerid, FFVehInfo[i][ff_vID], 0);
    //Zuletzt wird die Datei angelegt und das Fahrzeug gespeichert.
    new FrakName[64];
    switch(fID)
    {
    case 1: FrakName = "San Andreas Police Department";
    case 2: FrakName = "Bundeswehr";
    case 3: FrakName = "Terroristen";
    case 4: FrakName = "Hitman";
    }
    new path[64];
    format(path, sizeof(path), "/FraktionsFahrzeuge/%s_%d_%d.ini",FrakName, model, i);
    dini_Create(path);
    SpeicherFrakVehCheck(FFVehInfo[i][ff_vID]);



    return SendClientMessage(playerid, Weiss, "Fraktionsfahrzeug erstellt und gespeichert.");
    }
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Limit für Fraktions-Fahrzeuge erreicht.");
    }



    ocmd:ffloeschen(playerid, params[])
    {
    //Wir deklarieren die benötigte temporäre Variable.
    new vid;
    //Wenn der Spieler keine Vehicle-ID eingibt wird die gelöscht, in der sich der Spieler befindet,
    //ansonsten die eingegebene ID.
    if(!IsNumeric(params) || !strlen(params)) return SendClientMessage(playerid, 0xFF0000FF, "Error: Nutze: /ffloeschen [Vehicle ID]");
    vid = strval(params);
    if(vid <= 0) return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    for(new i=0; i<Max_FraktionsFahrzeuge; i++)
    {
    //Eingegebene ID und die des Fraktions-Fahrzeugs stimmen überein.
    if(FFVehInfo[i][ff_vID] == vid)
    {
    //Daten werden entfernt
    FFVehInfo[i][ff_ModelID] = 0;
    FFVehInfo[i][ff_x] = 0.0;
    FFVehInfo[i][ff_y] = 0.0;
    FFVehInfo[i][ff_z] = 0.0;
    FFVehInfo[i][ff_a] = 0.0;
    FFVehInfo[i][ff_Farbe1] = 0;
    FFVehInfo[i][ff_Farbe2] = 0;
    FFVehInfo[i][ff_FraktionsID] = -1;
    //und anschließend in der Datenbank gelöscht.
    new path[64];
    format(path, sizeof(path), "/FraktionsFahrzeuge/%d.ini", i);
    dini_Remove(path);



    DestroyVehicle(FFVehInfo[i][ff_vID]);
    FFVehInfo[i][ff_vID] = 0;
    return SendClientMessage(playerid, 0x00FF00FF, "Fahrzeug gelöscht.");
    }
    }
    return SendClientMessage(playerid, 0xFF0000FF, "Error: Vehicle-ID ist kein Fraktions-Fahrzeug.");
    }

    Beispiel:

    if(val < 10000000 && > 1)
    {


    }
    else
    {
    SendClientMessage(playerid, Rot, "Du darfst nicht mehr als 10.000.000 $ und nicht weniger als 1$ überweisen");
    }

    vllt klappt es auch mit :
    if(val < 10000000 && > 1) continue;

    Was genau meinst mit der Befehl wurde nicht gefunden ?
    nach dem hier:


    if(!(Spieler[playerid][pFraktion] == 2 || Spieler[playerid][pFraktion] == 4 || Spieler[playerid][pFraktion] == 6 || Spieler[playerid][pFraktion] == 1 || Spieler[playerid][pFraktion] == 3 || Spieler[playerid][pFraktion] == 5))return SendClientMessage(playerid, COLOR_GREY, "Du bist in keiner Fraktion.");


    Kann Fraktion 2,4,6,1,3,5 ( 1,2,3,4,5,6 )
    diesen Befehl nutzen

    Erstell dir lieber eine Function (stock) wo du einfach die Fraktionen reinschreibst, die den Befehl benutzen dürfen. Das von Eli ist bissel unschön bei jedem Befehl

    Hallo ihr Lieben,


    Ich habe ein Business System gemacht und so ein paar Probleme.


    Ein Problem ist: Ich will den Namen des Besitzers ändern, aber der Name wird falsch gespeichert: Beispiel: Ich gebe ein "Dachdecker" gespeichert wird "achdecker"
    anderes Problem: Create3DTextLabels werden nicht erstellt für die Businesses. ( BusinessLaden und Speichern wo Laden und Speichern? )


    Könnt ihr mir helfen? Ich verstehe nicht, wieso es nicht richtig funktioniert



    if(dialogid == BusinessEdit6)
    {
    if(response)
    {
    if(strval(inputtext) > 3 || strval(inputtext) < 20)
    {
    new path[64], ID=GetPVarInt(playerid, "EingegebeneBizID");
    for(new i = 0; i<Max_Businesses; i++)
    {
    format(path, sizeof(path), "/Businesses/%d.ini",ID);

    dini_Set(path, "BizBesitzer", inputtext);
    print(inputtext);
    BusinessInfo[ID][B_Besitzer] = strmid(BusinessInfo[ID][B_Besitzer] , dini_Get(path,"BizBesitzer"),false,strlen(dini_Get(path,"BizBesitzer")),MAX_PLAYER_NAME);
    printf("Der Business Besitzer wurde auf %s geändert", BusinessInfo[ID][B_Besitzer]);
    SpeichereBusinesses();
    BusinessLaden();
    return 1;
    }
    }
    else
    {
    ShowPlayerDialog(playerid, BusinessEdit6, DIALOG_STYLE_INPUT, "Business editieren", "Der Name war zu lang (zwischen 3-20 Zeichen)\nGeben Sie den neuen Besitzer ein", "Bestätigen", "Abbrechen");
    }
    }
    }

    Ich lasse die Labels ja bei BusinessLaden(); laden


    Ich lösche nirgendwo labels



    format(BizString, sizeof(BizString), "%s\nBesitzer: %s\nInteilhaber: %s\nLevel: %d\nKasse: %d\nPakete: %d\nBusinessID: %d",BusinessInfo[i][B_Name], BusinessInfo[i][B_Besitzer], BusinessInfo[i][B_Inteilhaber],BusinessInfo[i][B_Level], BusinessInfo[i][B_Kasse], BusinessInfo[i][B_Pakete], BusinessInfo[i][B_ID]); print(BizString);
    Unbenannt.png

    entweder so:

    command(members, playerid, params[])
    {
    new string[256] = "Name\tRang\tRangname";
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][pMember] == PlayerInfo[i][pMember])
    {
    format(string, sizeof(string), "%s\n%s\t%i\t%s", string, pName(i), PlayerInfo[i][pRang], /*Funktion erstellen wo der Rangname ausgelesen wird*/);
    }
    }
    ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_TABLIST_HEADERS, "Member(s) online", string, "OK", "");
    return 1;
    }


    oder so



    command(members, playerid, params[])
    {
    new string[256] = "Name\tRang\tRangname";
    for(new i=GetPlayerPoolSize(); i!=-1; i--)
    {
    if(PlayerInfo[playerid][pMember] == PlayerInfo[i][pMember])
    {
    format(string, sizeof(string), "%s\n%s\t%i\t%s", string, pName(i), PlayerInfo[i][pRang], /*Funktion erstellen wo der Rangname ausgelesen wird*/);
    }
    }
    ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_TABLIST_HEADERS, "Member(s) online", string, "OK", "");
    return 1;
    }

    Ich hab das Problem, das GTA im Singleplayer startet und wenn ich es schließe, dann nochmal starte es im Multiplayer Startet. Was ist da das Problem?


    Habe mehrfach die EXE getauscht und neue Ordner genommen, also am GTA kann es net liegen.....

    Mal son Beispiel

    command(members, playerid, params[])
    {
    new string[256];
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[playerid][pMember] == PlayerInfo[i][pMember])
    {
    format(string, sizeof(string), "%s\n%s", string, pName(i));
    }
    }
    ShowPlayerDialog(playerid, 9999, DIALOG_STYLE_LIST, "Member(s) online", string, "OK", "");
    return 1;
    }