[INC] Easy Functions 0.1 by HappyMeal

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,
    heute nacht hatte ich extreme langeweile und hab mal meine aller erste Incluce angefangen.
    Nix großes aber kann nützlich sein wenn man beim Scripten Zeit sparen will.


    Ich habe ein paar Funktionen verkürzt.
    Unzwar folgende:

    SCM = SendClientMessage
    GT = GameTextForPlayer
    GETNAME = GetPlayerName(playerid);
    TSFP = TextDrawShowForPlayer
    THFP = TextDrawHideForPlayer
    FREEZE = TogglePlayerControllable
    SETFARBE = SetPlayerColor
    SETINT = SetPlayerInterior
    PLAYMUSIK = PlayerPlaySound
    KICK = Kick(playerid);
    BAN = Ban(playerid);


    TEXTBOX = DIALOG_STYLE_INPUT ( Zeigt einen Dialog an in dem man etwas schreiben kann )
    BUTTON = DIALOG_STYLE_MSGBOX ( Zeigt einen Dialog an mit 2 Buttons )
    LISTE = DIALOG_STYLE_LIST ( Zeigt einen Dialog mit einer Liste an )
    SPD = ShowPlayerDialog ( Zeigt den kompletten Dialog an )


    ARMOR = 1242
    HERZ = 1240
    Beispiel:
    [pwn]AddStaticPickup(ARMOR,12, X,Y,Z); // Zeigt dann eine Rüstung als Icon an
    [/pwn]


    Außerdem enthält diese Include eine ClearChat Funktion !
    Einfach wo ihr den Chat sauber haben wollt diese Funktion rein:

    ClearChatbox(playerid, 10); // 10 ist die anzahl der SendClientMessage die in den Chat gesendet werden


    Wie gesagt echt nix großes. Ich kenn mich normaler weise überhaupt nicht mit Includes aus.
    Von daher ist dieses mein erster versuch.
    Es wird auf jeden fall eine weitere Version dieser Esay Functions folgen.



    How to install:


    Ganz oben zu den Includes machen:
    #include "easyfunc"



    Viel Spass.
    Auf feedback bin ich nicht so drauf :D
    Da es was kleines und einfaches ist.




    VERSION 1.0 Released


    Neue Funktion:


    AFK(playerid,zeit); // Freezt einen Spieler für die Zeit (Millisekunden) die ihr eingibt.
    Sollte die Funktion BACK(playerid); nicht ausglößt werden so wird er nach der Zeit gekickt.
    BACK(playerid);
    Beispiel ist folgender Befehl:


    if(strcmp(cmdtext,"/nichtda",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new string[64];
    format(string, sizeof(string), "Du bist nun AFK ! In %d Millisekunden wirst du gekickt...",zeit);
    SCM(playerid, COLOR_DBLUE, string);
    AFK(playerid,60000); //60 Sekunden
    }
    return 1;
    }
    if(strcmp(cmdtext,"/wiederda",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    SCM(playerid, COLOR_DBLUE,"Du bist nun nicht mehr AFK");
    BACK(playerid);
    }
    return 1;
    }


    Viel Spaß.

    2 Mal editiert, zuletzt von HappyMeal | gta-replay.de ()

  • Naja ist wirklich meine erste Include.
    Wusste halt nicht was ich machen soll :D
    Vieleicht kanns der ein oder andere ja gebrauchen

  • #define GETNAME GetPlayerName(playerid);


    Wenn das funktioniert ess ich nen Besen. Ohne Salz.

  • Neue Funktion:


    AFK(playerid,zeit); // Freezt einen Spieler für die Zeit (Millisekunden) die ihr eingibt.
    Sollte die Funktion BACK(playerid); nicht ausglößt werden so wird er nach der Zeit gekickt.
    BACK(playerid);
    Beispiel ist folgender Befehl:


    if(strcmp(cmdtext,"/nichtda",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    new string[64];
    format(string, sizeof(string), "Du bist nun AFK ! In %d Millisekunden wirst du gekickt...",zeit);
    SCM(playerid, COLOR_DBLUE, string);
    AFK(playerid,60000); //60 Sekunden
    }
    return 1;
    }
    if(strcmp(cmdtext,"/wiederda",true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    SCM(playerid, COLOR_DBLUE,"Du bist nun nicht mehr AFK");
    BACK(playerid);
    }
    return 1;
    }


    Viel Spaß.

  • stock AFK(playerid,Zeit)
    {
    TogglePlayerControllable(playerid, 0);
    ktimer = SetTimer("afklang",Zeit,0);
    }
    stock BACK(playerid)
    {
    KillTimer(ktimer);
    TogglePlayerControllable(playerid, 1);


    }
    public afklang(playerid)
    {
    SCM(playerid,COLOR_RED,"Du warst zu lange AfK ! Du wurdest gekickt");
    KICK
    }
    Funktioniert 100%-ig nicht so wie du es willst.

  • Wird selbst mit SetTimerEx nicht funktionieren da jeder Timer in Pawn nur Callbacks ausführen kann, keine "normalen" Funktionen.

  • Ja, über diesen Umweg kann man Funktionen auch per Timer direkt aufrufen, aber nicht wenn sie nicht als Callback gekennzeichnet ist.
    stock printSomething()
    {
    print("bla");
    }


    main()
    {
    SetTimer("printSomething", 1000, 0);
    }


    Würde nicht funktionieren.

  • Als Verbesserung wäre gut: die Zeit in Sekunden angeben.
    also #define zeit 60 //sekunden


    Bei AFK(playerid,zeit*1000); //dann wird die zeit( hier 60 sekunden) mit 1'000 multipliziert, damit es wieder Millisekunden sind.

  • hat nix mit profi zu tuhen.
    Sondern einfach nur um Zeit zu Sparen.