[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 Leute, kann mir mal kurz jemand noch einmal das mysql_function_query erklären? Verstehe es nicht so ganz nach dem Tutorial von der Seite hier. Jedenfalls ist mein Problem halt das wenn ich einfach nur fragen möchte ob der Account existiert oder nicht extra ein public erstellen möchte. Verstehe nämlich nicht wie ich das dann einbinden soll. Ich wollte nämlich dann abfragen:


    if(CheckAccount(playerid) == 1)


    Würde ja mit dem stock gut klappen. Aber mit dem stock und dem public? Weil so würde ich ja den stock aufrufen. Aber wie kann ich damit dann das public abfragen. Frage ich nur das public ab, dann wird der stock ja nicht ausgeführt. Hoffentlich hats jemand verstanden und kann mir helfen.


    MFG und Danke im Voraus


    Acrio

  • Wieso kriege ich immer nur Skin ID 101, nachdem man sich registriert hat?

    SetSpawnInfo(playerid,101,101,-50.1974,-288.3651,5.4297,178.9876,0,0,0,0,0,0);


    SetSpawnInfo(playerid, team, skin, Float:x, Float:y, Float:z, Float:Angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
    Das zweite '101' steht für skin.

  • geht ja trotzdem nicht^^

    Liberty Reallife ♥


    SA-MP Server IP:

    Liberty-Reallife.de:7777 oder 176.57.142.127:777 | Version: 0.3z

    ____________________________________________________


    Forum:

    ____________________________________________________


    TeamSpeak³ Server IP:
    Liberty Reallife.de:9987 oder 176.57.142.172:9987

    ____________________________________________________


    TeamSpeak³ Server Passwort:

    ts-lr


  • Man sollte wenigstens paar Kentnisse über SQL-Befehle haben.



    new query[64],pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
    mysql_format(dbhandle,query,64,"SELECT `passwort` FROM `accounts` WHERE `spielername` = '%e' LIMIT 1;",pName);
    mysql_tquery(dbhandle,query,"CheckAccount","i",playerid);


    [tabmenu]


    [tab='dbhandle ']
    dbhandle = Ist die Verbindungskennung , welche du an eine variabel weitergibt mit
    mysql_connect(HOST[], USER[], DATABASE[], PASSWORD[], PORT);
    [tab='query']
    Hier kommt dein SQL-Befehl den du an den MySQL Server senden möchtest rein
    [tab=' CheckAccount']
    Dies ist das Callback, welches aufgerufen wird sobald das gesendete query verarbeitet wurde
    [tab='i']
    Die jeweiligen Datentypen der Argumente
    i,d = integer
    s = string
    f = float
    x = hexdezimal
    c = Für eine einzelnen Buchstaben (character)
    [tab='playerid']
    Somit wird die Funktion aufgerufen, da diese nur 1 Argument hat mit dem wert, welcher sich hinter playerid verbirgt.
    [/tabmenu]




    forward CheckAccount(playerid);
    public CheckAccount(playerid) {
    new res[2];
    cache_get_data(res[0],res[1]);
    switch(res[0]){
    case false:{
    print("Spieler nicht gefunden");
    }
    case true:{
    print("Spieler gefunden");
    }
    }
    return 1;
    }



    mit cache_get_data wird zurückgegeben wie oft der Eintrag in der Datenbank vorkommt, sollte er nicht vorkommen so wird logischerweise 0(false) zurück geben.
    Durch das LIMIT 1 im query wird nur nach einem Datensatz gesucht der die WHERE -Clausel erfüllt und somit kann in dem Fall auch maximal nur 1(true) zurück gegeben werden.

  • Danke Prototype, die paar Kenntnisse habe ich eigentlich. Mit den alten mysql versionen kam ich super klar. Aber das Argument was einmal kam, das mit dem cache etc. alles etwas schneller wird wollte ich halt wechseln. Dann war ich halt am überlegen wie ich das machen soll mit dem callback. Naja, danke für deine Antwort...

  • Brauche mal Hilfe...
    Durch das break, lässt der keine Waffen mehr fallen, ich benutze den break weil das sonst gespammt wird.


    for(new i_slot = 0, gun, ammo; i_slot != 12; i_slot++)
    {
    GetPlayerWeaponData(playerid, i_slot, gun, ammo);
    if(gun != 0 && ammo != 0) CreateDroppedGun(gun, ammo, pPosX+random(2)-random(2), pPosY+random(2)-random(2), pPosZ);
    format(string, sizeof(string), "* %s lässt seine Waffen fallen.",PlayerName(playerid));
    ProxDetector(20, playerid, string, COLOR_PURPLE);
    break;
    }


    Kann wer helfen?

  • Gaaanz kurze Frag bez. MySQL.


    Wenn man mysql_format() benutzt um einen Query zu formatieren, ist es da noch nötig vor der Formatierung, nen String zu escapen ? Weil es ja die %e Escape-Funktion in msql_format gibt, denke ich wäre das unnötig oder ?


    Edit1. habs das hier übersehen. Wäre also geklärt. ^^
    Edit2. Edit1 editiert

    Code
    %e  Escapes data directly without the need to call mysql_escape_string() before

    2 Mal editiert, zuletzt von Makaveli ()