[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
  • Hallo!


    Ich möchte einen /admins Befehl machen.
    Wie bekomme ich es hin, das mir angezeigt wird ob der Spieler Online, Offline oder AFK ist?

    ocmd:admins(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    ShowPlayerDialog(playerid, 8, DIALOG_STYLE_TABLIST_HEADERS, "ARP Team",
    "Rang\tName\tOnlinestatus\tTickets\n\
    {FF0000}Projektleiter\tAllrounder18\t{40FF00}Online\tkA\n\
    {00a4b3}Manager\tKolho\t{40FF00}Online\tkA\n\
    {00a4b3}Manager\tFlo20\t{40FF00}Online\tkA\n",
    "Zurück", "");
    }
    else
    {
    ShowPlayerDialog(playerid, 8, DIALOG_STYLE_TABLIST_HEADERS, "ARP Team",
    "Rang\tName\tOnlinestatus\tTickets\n\
    {FF0000}Projektleiter\tAllrounder18\t{FF0000}Offline\tkA\n\
    {00a4b3}Manager\tKolho\t{FF0000}Offline\tkA\n\
    {00a4b3}Manager\tFlo20\t{FF0000}Offline\tkA\n",
    "Zurück", "");
    }
    return 1;
    }

    Kann ich diesen Befehl irgendwie auch kürzer schreiben, bzw. kann ich es irgendwie machen das ich ingame Mitglieder in die Liste einfügen kann?


    MfG

  • Wie bekomme ich es hin, das mir angezeigt wird ob der Spieler Online, Offline oder AFK ist?

    Mit welcher Variable prüfst du denn, ob jemand AFK ist? :)



    Moin.

    Wenn man über 100 Zeilen Code + Logik Fragen hat...daaann ist das keine kleine Scripting Frage mehr ^^


    Eröffne da mal lieber einen eigenen Thread xD

    ast2ufdyxkb1.png


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

  • Beitrag von Sub Royal ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Bei Problemen gerne mal im Ticketsystem oder per PN melden ().
  • @Kaliber
    Ich hab da och keine Variable.

    Ahh jaa okay :D

    C
    //Pack oben in dein Skript
    #define IsPlayerAFK(%0) ((gettime()-AFK[%0])>5)
    
    
    //Das auch oben irgendwo hin
    new AFK[MAX_PLAYERS];
    
    
    //Und das unter OnPlayerUpdate
    AFK[playerid] = gettime();


    So jetzt hast ein AFK System :)


    Und dann den Befehl so:


    Also die Tickets hab ich aus dem Befehl weggelassen, weil ich da keine Infos hatte.


    Wenn du die noch haben magst, kannst du es gerne selbst probieren oder mir sagen, in welcher Variable du die speicherst, welchen Wert das haben soll, wenn der Spieler offline ist.

    ast2ufdyxkb1.png


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

  • Danke, ich bekom folgendeFehler.



    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc(33) : error 001: expected token: "-identifier-", but found "state"
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc(37) : error 001: expected token: "-identifier-", but found "["
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc(37) : error 029: invalid expression, assumed zero
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc(37) : warning 215: expression has no effect
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc(37) : error 001: expected token: ";", but found "]"
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/stocks.inc(37) : fatal error 107: too many error messages on one line

  • Danke, ich bekom folgendeFehler.

    Ohh, jaa da war ja was, state ist ja ein Keyword :rolleyes:


    Dann nehmen wir halt Deutsch :)


    ast2ufdyxkb1.png


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

  • Ich hab alles geschrieben wie du meintest, edoch wnn ichd e Befehl eingeb kommt nix.

    Hast du crashdetect drinnen?


    Vielleicht meckert der wegen der String-Größe mach mal:


    new string[512] = "Rang\tName\tOnlinestatus";

    ast2ufdyxkb1.png


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

  • Hast du denn auch das ShowPlayerDialog eingefügt, so wie ich das gezeigt hatte?


    Hab den Beitrag nochmal nacheditiert.


    Kannst du ja auch einfach mal kurz davor den String printen :)

    ast2ufdyxkb1.png


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

  • Okay...dafuq, die Funktion will kein Array returnen...


    Dämlicher Pawn Compiler :S


    Dann mach es so:


    ast2ufdyxkb1.png


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

  • Wäre es irgendwie möglich die Namen und Räge ingame einzufügen in die Liste?

    Ja klar, wenn du das willst.

    C
    //Machst in dein Spieler Enum einfach
    pAdminRang
    
    
    //Nennen wir das hier mal SpielerInfo

    Das kannst du ja dann beliebig setzen.


    Und das sähe dann so aus:


    //Edit:
    Schau dir doch das Makro an, es sind 5 Sekunden.

    ast2ufdyxkb1.png


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

  • Dann kommt folgendes.

    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/spielerbefehle.inc(88) : error 017: undefined symbol "projektleiter"
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/spielerbefehle.inc(88) : warning 215: expression has no effect
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/spielerbefehle.inc(88) : error 001: expected token: ";", but found "]"
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/spielerbefehle.inc(88) : error 029: invalid expression, assumed zero
    C:\Users\Alexander\Documents\meinserver\ARP2.0\pawno\include\../include/core/spielerbefehle.inc(88) : fatal error 107: too many error messages on one line

  • Mir fällt gerade ein, da du das offline machen magst, kannst du das so nicht direkt machen.


    Du musst ne query Abfrage machen aus der Datenbank, wo alle Admins gespeichert sind.


    Und dann sowas wie:


    ast2ufdyxkb1.png


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

  • Meinst du ungefähr so?


    mysql_tquery(handle,"SELECT Admin FROM `accounts`", "OnQueryLoaded", "d", playerid);
    Was ich anstatt OnQueryLoaded", "d", playerid); scheiben müsste weiß ich net.



    Admin ist eben wo drin steht welcher Admin rang es ist.

  • Du solltest dir dringend nochmal die Grundlagen durchlesen und in Ruhe, erst mal ein den Basics feilen, bevor du direkt so große Sachen machen willst :)


    SELECT Name,Admin FROM `accounts` So müsstest du das machen, da du ja auch noch den Namen von dem Spieler benötigst, wie du in meinem Skript siehst.


    Und anstatt OnQueryLoaded brauchst einen eigenen Callback.


    C
    mysql_tquery(handle,"SELECT Name, Admin FROM `accounts`", "AdminList", "d", playerid);
    
    
    forward AdminList(playerid);
    public AdminList(playerid)
    {
        //Das hier ist dann der Callback, hier dann den anderen Code rein
    }

    ast2ufdyxkb1.png


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