[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
  • BlueG, müsste auch die neueste Version sein. ;)

    new query[128];
    mysql_format(query,sizeof(query),"SELECT * FROM `bans` WHERE `Name`='%e'",PlayerInfo[playerid][pName]);
    mysql_pquery(handle,query, "BanCheck", "d", playerid);
    public BanCheck(playerid) {
    if(cache_get_row_count() == 1)
    {
    Kick(playerid)
    }
    }


    Das sollte funktionieren, der Query war nicht richtig formatiert in meinem schnellen Beispiel.

  • new query[128];mysql_format(query,sizeof(query),"SELECT * FROM `bans` WHERE `Name`='%e'",PlayerInfo[playerid][pName]);mysql_pquery(handle,query, "BanCheck", "d", playerid);public BanCheck(playerid) {if(cache_get_row_count() == 1){Kick(playerid)}}
    Das sollte funktionieren, der Query war nicht richtig formatiert in meinem schnellen Beispiel.


    Danke für die Hilfe..funkltioniert leider immer noch nicht könnte auch sein das es an phpmyAdmin liegt. Seit dem ich grade eben den PC gestartet hab zeigt er mir folgende Meldung:


    Zitat


    XML-Verarbeitungsfehler: Fehler beim Verarbeiten einer Referenz auf eine externe Entität Adresse: jar:file:///C:/Program%20Files%20(x86)/Mozilla%20Firefox/omni.ja!/chrome/toolkit/content/global/netError.xhtml?e=connectionFailure&u=http://localhost/phpmyadmin/&c=UTF-8&f=regular&d=Firefox%20kann%20keine%20Verbindung%20zu%20dem%20Server%20unter%20localhost%20aufbauen. Zeile Nr. 10, Spalte 3:


    %netErrorAppDTD;
    --^

  • Danke, was neues dazugelernt :) !


    Noch eine Frage, ich habe mir ein Befehl erstellt, mit dem ich Spieler markieren kann. Wie kann ich das so einrichten, das ich mehrere IDs hintereinander im Befehl eingeben kann?
    z.B /amark 1 3 5 6 9 12 11 10
    (Markiert ID 1,3,5,6,9,12,11 und 10)



    CMD:amark(playerid,params[])
    {



    if(!CheckAdminName(playerid)) return 0;
    new pID, tmp[20], idx;
    tmp = strtok(params, idx);
    if(!strlen(tmp)) return SendClientMessage(playerid,0x6FFFFFFF,"ERROR:: /mark [ID]");
    if(IsNumeric(tmp)) pID = strval(tmp);
    else pID = ReturnPlayerID(tmp);
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,0x6FFFFFFF,"The Player is not online");
    SetPlayerMarkerForPlayer( playerid, pID, 0xFF0033FF );
    return 1;
    }


    Mit freundlichen Grüßen
    JustMe.77 8)

  • Wie kann ich das so einrichten, das ich mehrere IDs hintereinander im Befehl eingeben kann?

    Du kannst dein "tmp" bzw. dein "params" am Komma aufteilen.
    Nutze dazu die "strexplode" Funktion von hier: http://forum.sa-mp.com/showthread.php?t=362764


    Danach kannst du durch den Output loopen, per Schleife, und wenn strlen von Output[ i ] > 0 ist, dann kannst du über ReturnPlayerID die playerid auslesen, wie gehabt.

  • Was für eine Fehlermeldung kommt denn


    Na eben diese:


    XML-Verarbeitungsfehler: Fehler beim Verarbeiten einer Referenz auf eine externe Entität Adresse: jar:file:///C:/Program%20Files%20(x86)/Mozilla%20Firefox/omni.ja!/chrome/toolkit/content/global/netError.xhtml?e=connectionFailure&u=http://localhost/phpmyadmin/&c=UTF-8&f=regular&d=Firefox%20kann%20keine%20Verbindung%20zu%20dem%20Server%20unter%20localhost%20aufbauen. Zeile Nr. 10, Spalte 3:
    %netErrorAppDTD;
    --^


  • Hi, weiß jemand wie ich bei Zamaroth's Textdraw Editor, den Hintergrund eines Textdraws ändere bei dem ich eine Model ID verwende?
    Wenn ich z.B. ein Skin verwende, ist um den Skin immer eine schwarze Box, die möchte ich weg machen, weiß aber nicht wie..


    Mit freundlichen Grüßen
    JustMe.77 8)

  • if(dialogid == 107)
    {
    if(response)
    {
    if(inputtext[3])
    {


    if(SetSpawnInfo(playerid, 0, inputtext, 314.5553, -1774.3304, 4.7110, 180.0000, 0, 0, 0, 0, 0, 0))
    {
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "");
    SendClientMessage(playerid, COLOR_LIGHTBLUE, "(( Der Vorgang war erfolgreich! Du wurdest eingeloggt und gespawnt. ))");
    SpawnPlayer(playerid);
    }
    else
    {
    Kick(playerid);
    }
    }
    }
    }


    Was mach ich falsch? Es kommt immer ein Error, weil eine Variable falsch ist...

  • Erklären kann ich es dir nicht, aber schaue dir mal das hier an (ganz unten wird die 3D-Drehung erklärt), vielleicht hilft dir das:
    https://wiki.delphigl.com/index.php/Quaternion


    Die Werte kannst du nutzen, um die Rotation des Fahrzeugs in alle drei Richtungen zu berechnen.
    Hier etwas dazu: http://forum.sa-mp.com/showthread.php?t=167645
    Vor allem die Posts darunter scheinen hilfreich.

  • Hi, wollte Fragen, wie ich abfragen kann ob man bereits einen Account hat oder nicht.
    Hab dies so gemacht, leider funktioniert das nicht.



    if(playertextid == Textdraw42[playerid]) //Einloggen
    {
    if(cache_get_row_count() == 0) return SendClientMessage(playerid, COLOR_WHITE, "Du musst dir erst einen Account erstellen!");
    if(strlen(PlayerInfo[playerid][ppassword]) <= 5) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
    {
    new query[128];
    mysql_format(db_handle, query, sizeof(query), "SELECT id FROM accounts WHERE name = '%e'", PlayerInfo[playerid][pname]);
    mysql_pquery(db_handle, query, "OnUserCheck", "d", playerid);
    }
    }
    if(playertextid == Textdraw49[playerid]) //Registrieren
    {
    if(cache_get_row_count() == 1) return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
    if(strlen(PlayerInfo[playerid][ppassword]) <= 5) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
    {
    new query[256];
    mysql_format(db_handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pname], PlayerInfo[playerid][ppassword]);
    mysql_pquery(db_handle, query, "OnUserRegister", "d", playerid);
    }
    }


    und dazu bekomm ich noch diese Debugs angezeigt.



    [20:53:28] [DEBUG] cache_get_row_count - connection: 1
    [20:53:28] [WARNING] cache_get_row_count - no active cache
    [20:53:28] [DEBUG] mysql_format - connection: 1, len: 256, format: "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))"
    [20:53:28] [DEBUG] mysql_pquery - connection: 1, query: "INSERT INTO users (name, password) VALUES ('Xtendary', MD5('1234", callback: "OnUserRegister", format: "d"
    [20:53:28] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - starting query execution
    [20:53:28] [ERROR] CMySQLQuery::Execute[OnUserRegister] - (error #1146) Table 'db_samp.users' doesn't exist
    [20:53:28] [DEBUG] CMySQLQuery::Execute[OnUserRegister] - error will be triggered in OnQueryError


    Mit freundlichen Grüßen
    Grapefruit


  • forward IstAccountVorhanden(playerid);


    //Abfrage - senden
    mysql_format(db_handle, query, sizeof(query), "SELECT id FROM accounts WHERE name = '%e'", PlayerInfo[playerid][pname]);
    mysql_pquery(db_handle, query, "IstAccountVorhanden", "d", playerid);


    //Abfrage - wiedergeben
    public IstAccountVorhanden(playerid)
    {
    new num_rows,num_fields;
    cache_get_data(num_rows, num_fields, db_handle);
    if(num_rows)
    {
    return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
    }
    return SendClientMessage(playerid, COLOR_WHITE, "Du musst dir erst einen Account erstellen!");
    }



  • Es gibt doch diese "Skin-Dialoge". Wo du Models in einen Dialog laden kannst. Ich hab nur absolut keine Ahnung wie die heißen. Würde die gerne nutzen. Hat jemand einen SAMP Wiki Link für mich?


    #edit: super, jetzt hab ichs auch gefunden. :D

  • Guten Tag,


    wie mache ich einen Teamausgleich?


    Beispiel:


    Team 1: 25
    Team 2: 24
    system checkt: In Team 1 sind mehr als in Team 2. Somit geht der Spieler Automatisch zu Team 2.


    -> Ich hatte schon Vermutungen mit If abfage und < > aber genau komme ich einfach nicht drauf.

    Mit freundlichen Grüßen
    [KoSoVa] :klugs:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen