[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hi, wie kann ich korrekt abfragen ob der Spieler in der Legit Admin Liste oder als RCON Admin angemeldet ist?



    if(!LegitAdmin(playerid) || (!IsPlayerAdmin(playerid))) return
    SendClientMessage(playerid, COLOR_RED, Rcon_Fail);


    Der Spieler soll den Befehl NICHT ausführen können wenn er kein Legit Admin ist oder kein RCON Admin ist. (Also er muss eines von beiden sein)


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hi, wie kann ich korrekt abfragen ob der Spieler in der Legit Admin Liste oder als RCON Admin angemeldet ist?


    if(!LegitAdmin(playerid) || (!IsPlayerAdmin(playerid))) return SendClientMessage(playerid, COLOR_RED, Rcon_Fail);


    Der Spieler soll den Befehl NICHT ausführen können wenn er kein Legit Admin ist oder kein RCON Admin ist. (Also er muss eines von beiden sein)

    Du meinst wohl: Der Spieler soll den Befehl nicht ausführen können wen er kein legit Admin ist UND kein RCON Admin ist ;)

  • Du musst das "oder" mit einem "und" ersetzen. Also

    Code
    if(!LegitAdmin(playerid) || (!IsPlayerAdmin(playerid)))

    zu


    Code
    if(!LegitAdmin(playerid) && (!IsPlayerAdmin(playerid)))

    Heißt: Wenn der Spieler NICHT legit Admin ist UND gleichzeitig NICHT als RCON Admin angemeldet ist, dann soll der Befehl NICHT ausgeführt werden

  • Beitrag von Renz ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Da war der Andi schneller^^ ().
  • Du musst das "oder" mit einem "und" ersetzen. Also

    Code
    if(!LegitAdmin(playerid) || (!IsPlayerAdmin(playerid)))


    zu


    Code
    if(!LegitAdmin(playerid) && (!IsPlayerAdmin(playerid)))

    Heißt: Wenn der Spieler NICHT legit Admin ist UND gleichzeitig NICHT als RCON Admin angemeldet ist, dann soll der Befehl NICHT ausgeführt werden


    && = und
    | | = oder



    In diesem Fall war

    Code
    if(!LegitAdmin(playerid) || (!IsPlayerAdmin(playerid)))

    schon richtig.
    Ansonsten wird halt abgefragt, ob Spieler LegitAdmin und RconAdmin ist.




    Also:


    Code
    if(LegitAdmin(playerid) || IsPlayerAdmin(playerid))
    {
        //ausführung
    
    
    }
    else {
        SendClientMessage(playerid, FARBE, "Du bist kein Admin!");
    }
  • Schönen guten Morgen,
    vllt. liegt es an der Uhrzeit aber ich habe aktuell das Problem das er in der Datenbank immer nur einen Eintrag anlegt und keine weiteren.
    Ich kann so jetzt keinen Fehler auf die schnelle finden.



    Code: 1
    format(query, sizeof(query), "INSERT INTO `"tabelle_charakter"` (`Vorname`, `Nachname`, `GB_D`, `GB_M`, `GB_J`, `Skin`, `Bargeld`, `AccountID`) VALUES ('%s','%s','%d','%d','%d','%d','%0.2f','%d')",Vorname,Nachname,Tag,Monat,Jahr,NeulingSkin,NeulingBargeld,Account[playerid][a_id]);
    mysql_query(MySQL,query);


    Code: 2
    #define NeulingSkin 19
    #define NeulingBargeld 250.50


    1.png3.png



    Wenn ich den Eintrag lösche wird problemlos ein neuer Eintrag angelegt.
    Aber er legt irgendwie nie mehr als einen Eintrag an.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Das ist eine gute Frage, ich habe das bisher noch nicht getestet gehabt.
    Aber bei dem Account ist es der selbe Fall.


    Er legt immer nur einen Eintrag an.
    Die Verbindung zu der Datenbank besteht und von der Struktur müsste es ja auch stimmen oben.

    „Auge um Auge - und die ganze Welt wird blind sein.“
    - Mahatma Gandhi

  • Wie setzt ich am besten, nachdem die MySQL funktion das car gespawnt hab, eine Variable mit der gespawnten Vehicle ID?
    Wäre nämlich gut wenn das [î] im Vehicle[î][fData] nach dem Spawn zum Vehicle[vehicleId][fData] wird


    mal n kleiner push ^^

    SA:MP in 2020?

  • @fishy Du kannst in deinem Enum einfach einen neuen Eintrag machen der z.B. s_id für serverid heißt und verknüpfst diese dann einfach mit CreateVehicle.



    enum playercarInfo {
    s_id,
    // usw...
    }


    // Bei dir dann z.B.:
    Vehicle[i][s_id] = CreateVehicle(...); // So ist dann jedes Auto mit der s_id verknüpft.


    RTL - Das N steht für Niveau!
    MfG,
    StreetS


    Jegliche Freundesanfragen, die für mich keinen Sinn ergeben, werden professionell Ignoriert. (Gleiche mit Skype!)
    Wer es nicht kapiert wird in Breadfish & Skype blockiert.


    - Stolzer PAWN Scripter der Klasse Beherrscht

  • Wieso sagt er mir immer, dass ich keine Befugnisse habe, trotz ich den Schlüssel ganz klar auf einen der pHaus Slots habe. pHaus wurde mit pHaus[3] erstellt.



    command(garage, playerid, params[])
    {
    new Float:x, Float:y, Float:z, string[128], mainstring[2000];
    GetPlayerPos(playerid, x, y, z);
    for(new i=0;i<MAX_HAUS;i++){
    if(HausInfo[i][h_erstellt] == 1){
    printf("%d", i);
    if(IsPlayerInRangeOfPoint(playerid, 5.0, HausInfo[i][g_x], HausInfo[i][g_y], HausInfo[i][g_z])){
    for(new ii=0;ii<3;ii++){
    if(Spieler[playerid][pHaus][ii] == i){
    if(IsPlayerInAnyVehicle(playerid)){
    ShowPlayerDialog(playerid, DIALOG_GARAGE, DIALOG_STYLE_LIST, "Test", "Fahrzeug reinstellen","Weiter","Abbruch");
    }
    else{
    for(new g=0;g<3;g++){
    if(HausInfo[i][g_slot][ii] == 0 && HausInfo[i][g_fahrzeug][ii] == 0){
    format(string, sizeof(string), "Frei\n");
    strcat(mainstring, string);
    }
    else if(HausInfo[i][g_slot][ii] != 0 && HausInfo[i][g_fahrzeug][ii] != 0){
    format(string, sizeof(string), "%d - %s\n", HausInfo[i][g_fahrzeug][ii], VehicleNames[GetVehicleModel(HausInfo[i][g_fahrzeug][ii]) - 400]);
    strcat(mainstring, string);
    }
    }
    ShowPlayerDialog(playerid, DIALOG_GARAGE_RAUS, DIALOG_STYLE_LIST, "Test", string, "Rausholen", "Abbruch");
    }
    }
    }
    return SendClientMessage(playerid, -1, ""#SERVERF" Du hast keine Befugniss für diese Garage!");
    }
    }
    }
    return 1;
    }

  • Hi, wieso erhalte ich 2 Warnings?



    CMD:sloc(playerid,params[])
    {
    new Float:pos1, Float:pos2, Float:pos3, int;
    if(sscanf(params,"fffd",floatstr(params),pos1,pos2,pos3,int))
    return SendClientMessage(playerid,-1,"Use: /sloc x y z interiorid");
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid),floatstr(params),pos1,pos2, pos3); //warning hier
    LinkVehicleToInterior(GetPlayerVehicleID(playerid),int);
    }
    else
    {
    SetPlayerPos(playerid,floatstr(params),pos1,pos2,pos3); //Warning hier
    SetPlayerInterior(playerid,int);
    }
    return 1;
    }


    warning 202: number of arguments does not match definition


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Hi, wieso erhalte ich 2 Warnings?


    CMD:sloc(playerid,params[]) { new Float:pos1, Float:pos2, Float:pos3, int; if(sscanf(params,"fffd",floatstr(params),pos1,pos2,pos3,int)) return SendClientMessage(playerid,-1,"Use: /sloc x y z interiorid"); if(IsPlayerInAnyVehicle(playerid)) { SetVehiclePos(GetPlayerVehicleID(playerid),floatstr(params),pos1,pos2, pos3); //warning hier LinkVehicleToInterior(GetPlayerVehicleID(playerid),int); } else { SetPlayerPos(playerid,floatstr(params),pos1,pos2,pos3); //Warning hier SetPlayerInterior(playerid,int); } return 1;}


    warning 202: number of arguments does not match definition

    Das bedeutet das du zuviele/zuwenige argumente gesetzt hast