SendTimeMessage

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
  • Ja, guten Mittag liebe Community,


    so ich mach auch mal wieder was :)
    Es war eine Idee von Fipsi alias F4GG0T und ich werde es mal vorstellen:


    Was ist SendTimeMessage ?
    SendTimeMessage ist eine Funktion die es erlaubt, verschiedene Texte nach einer gewissen Zeit auszugeben, sprich sowas:


    SendTimeMessage(playerid,0xFF4800FF,10,"hi1","hi2","hi3");


    //playerid würde direkt die Nachricht "hi1" durch eine SendClientMessage mit dieser Farbe erhalten und nach 10 Sekunden "hi2" und nach weiteren 10 Sekunden "hi3"


    Gibt es eine Grenze an Texten hintereinander ?
    Nein, die gibt es nicht direkt, ihr könnt folgendes machen:


    #define MAX_ARGS 10 //Jetzt könnte man 10 Texte nutzen
    #include <tm> //wichtig über die Include schreiben


    Als kleine Information 1 Text ("hi1" wäre ein Text) kann momentan nur 64 Zeichen enthalten, wenn ihr das erhöhen wollt einfach folgendes schreiben:


    #define MAX_STRING 128 //Jetzt hättet ihr 128 Zeichen zur Verfügung
    #include <tm> //wichtig über die Include schreiben


    Aufbau der Funktion:
    SendTimeMessage(playerid,farbe,time(in Sekunden),text1,text2,text3....);
    oder
    SendTimeMessageToAll(farbe,time(in Sekunden),text1,text2,text3....);


    2 Extra Callbacks:
    Also ich habe mal 2 zusätzliche Callbacks gemacht, ich erkläre sie anhand eines Beispiels:


    public OnGlobalMessageSend(text[]) //Wird aufgerufen wenn eine globale Message sendet wird
    {
    if(!strcmp(text,"hallo",true)) return 0; //z.B. wenn hallo gesendet wird, wird hallo nicht gesendet, da wir mit return 0; beenden !
    return 1;
    }


    public OnLocalMessageSend(playerid, text[]) //Wird aufgerufen wenn eine Locale Message sendet wird
    {
    if(!strcmp(text,"hallo",true)) return 0; //z.B. wenn hallo gesendet wird, wird hallo nicht gesendet, da wir mit return 0; beenden !
    return 1;
    }


    Download:
    Source-Code: Pastebin
    Direkter-Download: Mediafire


    Würde mich über paar Feedbacks freuen :)


    mfg. :thumbup:


    Edits
    //Edit: Neuer Source-Code
    //Edit²: Verbessert + Neuer DownloadLink
    //Edit³: Extra Callbacks

    ast2ufdyxkb1.png


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

    4 Mal editiert, zuletzt von Schwabbel ()

  • Ich glaube ein Wunder ist geschehen :D
    Zum ersten mal etwas, was man nutzen könnte!
    Von mir kriegste 8/10 Punkten ;)


    MfG


    //edit:
    Ich korrigiere, 10/10 Punkten ich hatte einen Link gefunden zu getarg.
    Ich dachte die Funktion getarg wär veraltet, deswegen war ich ein wenig verwirrt.
    Die Wiki page

  • Auch wenn eine dynamische Parameterliste etwas schönes ist, so könnte man aber auch folgendes machen:


    stock SendTimeMessage(playerid, color, milliseconds, message[]) return SetTimerEx("SendClientMessage", milliseconds, false, "dds", playerid, color, message);

  • Auch wenn eine dynamische Parameterliste etwas schönes ist, so könnte man aber auch folgendes machen:


    Leider hat das bei mir nicht gefunzt ;(


    Also ich wollte über SetTimerEx Strings halt übergeben, doch das hat irgendwie total gefailt...weiß auch nicht, dann bin ich auf die wiki Seite gegangen und lese sowas:



    und da musste ich das irgendwie umgehen und kam dann so auf meine Variante ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Simple umsetzung.


    Ich verstehe euer Problem nicht, eine Simple Umsetzung ist doch gut...wtf :huh:


    Danke für die Ideen, werde vielleicht eine V.2 rausbringen ;)



    fatal error 100: cannot read from file: "tm"
    Oben #include <tm> drin
    und in Pawno -> includes tm.inc drin


    Sicher, dass du die Pawno.exe geöffnet hast, wo du in den Include Order die Inlcude getan hast ? ^^


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Simple Umsetzung heißt ja nicht das das schlecht ist? Ist nur ne Tatsache ;)


    Sprich du würdest es besser und komplizierter machen ?


    Schick mir mal deine Version bitte per PN, würde mich mal interessieren wie du das meinst ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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

  • Das nachzumachen ist kein Problem,fals du das meinst,aber ich glaube ich formuliere mich mal neu:
    Mit Simpel ist gemeint,das du den Code simpel gehalten hast und es somit für jeden verständlich ist wie es funktioniert.
    Zu Besser,nunja,ich würde von anfang an mehr funktionen rein machen,es sei denn ich relase etwas wo ich mir nicht sicher bin wie es ankommt,dann kleine Beta raushauen :D

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