[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
  • Kann mir jemand ein beispiel für eine Abfrage schicken ob sich drei leute an einen gewissen ort befinden wenn Sie einen Befehl eingebeN ?


    Naja...da gibt es mehrere Möglichkeiten das zu realisieren.


    Entweder du lässt sie einen Command eingeben, dann setzt du einen boolean für die playerid auf true und freezt sie.


    Dann kannst du ja ganz einfach dadurch loopen und schauen wer alles an dem Ort ist und noch connected ist.


    Oder du machst einfach eine Schleife durch alle Spieler und schaust ob diese Spieler an diesem Punkt sind.


    /sit und möchte ihn in einem Timer benutzen


    Schau dir am besten nochmal den Wiki eintrag dazu an, besonders den "time" Parameter: ApplyAnimation


    Für sit selbst gibt es mehrere Animationen, ich geb dir einfach mal 2:


    "BEACH", "ParkSit_M_loop"
    //oder
    "PED","SEAT_IDLE"


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Und wie kann ich diese durchzählen ?


    Naja, einfach so:


    new ids[MAX_PLAYERS],counter;
    for(new i,l=GetPlayerPoolSize()+1; i<l; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,x,y,z)) //Hier halt deine Position angeben
    {
    ids[counter++] = i;
    }
    }
    //Naja und counter hat jetzt die Anzahl der Personen die da sind und in ids sind die Playerids aufgelistet:
    //Wenn du die nun alle an eine Position setzen willst, machst du das z.B. so:
    for(new i; i<counter; i++)
    {
    SetPlayerPos(ids[i],x,y,z); //Hier setzt du dann alle Spieler die da standen an eine gewisse Position
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Kaliber:
    Ich glaube er meinte 3 bestimmte Personen.
    Wenn du es mit bestimmten Personen (z.B Bankraub etc.) machen möchtest, musst du den Personen, die z.B am Bankraub teilnehmen eine Variable zuweisen.
    Danach gehst du mit einer Schleife durch alle Spieler und fragst dann anhand der zugewiesenen Variablen ab, ob die Personen sich am Punkt befinden.

  • Hallo,


    if(clickedid == Textdraw15) //Register
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, handle);
    if(num_rows == 1) return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
    if(strlen(PlayerInfo[playerid][dPassword]) <= 6) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
    {
    new query[500];
    mysql_escape_string(pName(playerid), pName(playerid));
    format(query, sizeof(query), "INSERT INTO Accounts (Username, Password) VALUES ('%s', MD5('%s'))", pName(playerid), PlayerInfo[playerid][dPassword]);
    mysql_pquery(handle, query);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast dir erfolgreich ein Account erstellt!");
    }
    }


    Wie könnte ich Abfragen ob der Spieler bereits einen Account besitzt? So funktioniert das nämlich nicht, weil ja kein SELECT ausgeführt wird.


    Mit freundlichen Grüßen
    Grapefruit :)

  • Nabend,
    Ich hätt kurz die Frage warum der Actor nicht sitzen bleibt sondern steht wenn ich in den selben Interior komme.

    ApplyActorAnimation(CityHallActor,"BEACH","ParkSit_M_loop",4.1,0,0,0,0,0);

    Danke im Voraus


    //EDIT::
    Habs gefunden musste nach 4.1 die 0 auf 1 setzen.

  • Schnelle Frage:
    Ich benutze zcmd als Befehlprozessor und wollte ein Befehl, den ich bereits erstellt habe nochmal aufrufen per OnPlayerCommandText.
    Aber da ja zcmd das nicht mehr benutzt, weiß ich nicht was der nun benutzt. Habt ihr ne Idee?
    Weil, wenn ich das versuche, geht der Command Ingame nicht.


    Beispiel:
    OnPlayerCommandText(playerid,"/housecontrol sell");

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • if(clickedid == Textdraw15) //Register
    {
    new query[500];
    mysql_format(handle, query, sizeof(query), "SELECT Username FROM Accounts WHERE Username = '%e'", pName(playerid));
    mysql_pquery(handle, query, "AccountCheck", "d", playerid);
    }


    forward AccountCheck(playerid);
    public AccountCheck(playerid)
    {
    new num_rows, num_fields;
    cache_get_data(num_rows, num_fields, handle);
    if(num_rows == 1) return SendClientMessage(playerid, COLOR_WHITE, "Du hast bereits einen Account!");
    if(strlen(PlayerInfo[playerid][dPassword]) <= 6) return SendClientMessage(playerid, COLOR_WHITE, "Dein Passwort ist zu kurz mind. 6 Zeichen!");
    new query[500];
    mysql_format(handle, query, sizeof(query), "INSERT INTO Accounts (Username, Password) VALUES ('%e', MD5('%e'))", pName(playerid), PlayerInfo[playerid][dPassword]);
    mysql_pquery(handle, query);
    SendClientMessage(playerid, COLOR_WHITE, "Du hast dir erfolgreich ein Account erstellt!");
    return 1;
    }

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