Text time in der art.

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
  • Ich möchte einen Text time oder ähnliche machen wie und was muss amchen per Befehl


    Beschreibung:
    Text1: Hallo
    nach 10sek.
    Text2: Wie gehts

    Einmal editiert, zuletzt von DerOdin ()

  • Wenn du jetzt so einen Werbungstext für alle meinst dann hier ein Beispiel ^^


    new gWerbungCount = 1;


    public OnGameModeInit()
    {
    SetTimer("Werbung", 1800000, 1); //Alle 30Minuten ruft er eine Werbung auf
    return 1;
    }


    public Werbung()
    {
    switch(gWerbungCount)
    {
    case 1: //Wenn die Definition 'gWerbungCount' den Wert 1 hat
    {
    gWerbungCount++; //Zählt eins rauf
    //Werbungstexte...
    SendClientMessageToAll(0xFFFFFF00, "Zivilist sein ist langweilig? Dann bewerbe dich in einer Fraktion!");
    }
    case 2: //Wenn die Definition 'gWerbungCount' den Wert 2 hat
    {
    gWerbungCount++; //Zählt eins rauf
    //Werbungstexte...
    SendClientMessageToAll(0xFFFFFF00, "Unsere IP lautet: xx.xx.xx.xx!");
    }
    default: //Wenn die Definition 'gWerbungCount' keine der aufgelisteten Werte hat!
    {
    gWerbungCount = 1; //Setzt Wert wieder auf 1...
    //Werbungstexte...
    SendClientMessageToAll(0xFFFFFF00, "Besucht uns auf unserer Webseite auch!");
    }
    }
    }


    //Wenn du mehr Texte einfügen willst, dann einfach weiterzählen, also:
    // case 3:
    // case 4:
    // case 5:
    // usw...

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Nein Wie das mit den Tutorial von GF


    Da komtm ja erst der eine text dan ca. 30sek der 2text

  • Danke Eugen, einmal nicht aufgepasst ^^


    Nebenbei gemerkt, funktioniert meine Variante auch als Tut. Ich gebe dir bis morgen 8Uhr die Chance es selbst herauszufinden und dieses Thema zu schließen. Ansonsten wird es dir wer anderer, oder Ich, ab 8Uhr schreiben. Somit bitte ich dich Odin nicht hierher reinzuschauen sofern es doch jemand geschrieben hat.. Den du sollst Scripten können!

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Ich möchte einen Text time oder ähnliche machen wie und was muss amchen per Befehl


    Beschreibung:
    Text1: Hallo
    nach 10sek.
    Text2: Wie gehts

  • wenn du jetz langsam keine genauen erklärungen gibst werd ich dat teil schließen lassen.... kann echt net angehen...

    Zitat

    naja aufm homeserver mit kumpel getestet und nix laggt von daher sollte nen richtiger server mit sowas keine probs haben

    *an Kopf schlag
    sowas kommt Raus wenn man erst absendet ohne nachzudenken. Bitte Leute Hirn einschalten beim Posten...

  • Erklärung(BEISPIEL)


    Bei eingaben von /test Komt ein text und ca. 10sek. später soll slap 500meter kommen

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Das soll aber kommen wen man ein Befehl wie /text eingibt

  • So Odin, da ich kb hab bis 8Uhr zu warten hier hasse deinen Code:


    forward Werbung(playerid);


    new gWerbungCount[MAX_PLAYERS];
    new gWerbungTimer[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    gWerbungCount[playerid] = 0:
    return 1;
    }


    public OnPlayerDisconnect(playerid)
    {
    if(gWerbungCount[playerid] != 0) KillTimer(gWerbungTimer[playerid]);
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/text", false))
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(gWerbungCount[playerid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Du siehst dir gerade den Text an!");
    gWerbungCount[playerid] = 1;
    gWerbungTimer[playerid] = SetTimerEx("Werbung", 1000, 1, "d", playerid); //Jede Sekunde erscheint ein neuer Text!
    return 1;
    }
    return 0;
    }


    public Werbung(playerid)
    {
    switch(gWerbungCount[playerid])
    {
    case 1: //Text #1
    {
    //Deine Texte für Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Text #2");
    }
    case 2: //Text#2
    {
    //Deine Texte für Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Text #2");
    }
    case 3: //Text#3
    {
    //Deine Texte für Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Text #3");
    }
    //Wenn du mehr Texte einfügen willst, dann einfach weiterzählen, also:
    // case 4:
    // case 5:
    // case 6:
    // case 7:
    // usw...
    default: //Letzer Text
    {
    gWerbungCount[playerid] = 0; //Setzt Wert wieder auf 0 und es wird kein Text mehr angezeigt...
    //Dein letzter Text für den Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Letzter Text...");
    }
    }
    gWerbungCount[playerid]++; //Zählt eins rauf
    }


    Hab die Definitionen von vorher gelassen, damit du siehst was anders is...

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • if(!strcmp(cmdtext, "/text", false))
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(gWerbungCount[playerid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Du siehst dir gerade den Text an!");
    gWerbungCount[playerid] = 1;
    gWerbungTimer[playerid] = SetTimerEx("Werbung", 1000, 1, "d", playerid); //Jede Sekunde erscheint ein neuer Text!
    return 1;
    }


    Für Anjemanden senden z.b.
    if(!strcmp(cmdtext, "/text [id]", false))
    {
    if(!IsPlayerConnected(zielid)) return 1;
    if(gWerbungCount[zielid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Du must dir diesen Text lesen!");
    gWerbungCount[ziehid] = 1;
    gWerbungTimer[zielid] = SetTimerEx("Werbung", 1000, 1, "d", zielrid); //Jede Sekunde erscheint ein neuer Text!
    return 1;
    }


    Oder lieg ich darin falsch?

  • Ne am besten so:


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(text, strlen("text"), cmdtext);
    return 0;
    }
    dcmd_text(playerid, params[])
    {
    if(!IsPlayerConnected(playerid)) return 1;
    new zielid, string[128];
    if(sscanf(params, "u", zielid)) return SendClientMessage(playerid, 0xFFFFFF00, "VERWENDUNG: /text [Spieler ID/Name]");
    if(!IsPlayerConnected(zielid)) return SendClientMessage(playerid, 0xFFFFFF00, "Ungültige SpielerID!");
    if(gWerbungCount[zielid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Spieler liest bereits Text!");
    gWerbungCount[zielid] = 1;
    gWerbungTimer[zielid] = SetTimerEx("Werbung", 1000, 1, "d", zielid); //Jede Sekunde erscheint ein neuer Text!
    format(string, sizeof(string), "Du zeigst den Text für SpielerID %d!", zielid);
    return SendClientMessage(playerid, 0xFFFFFF00, string");
    }


    Sollte dann stehen "undefined dcmd" oder sowas, dann das gaanz oben ins Script einfügen:
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    Sollte ansonsten "undefined sscanf" oder sowas stehen, dann bitte auf folgenden Link gehen und den ganzen stock-Code in dein Script oben einfügen:
    http://wiki.sa-mp.com/wiki/Sscanf

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • dcmd hab ich drin wen jetzt das was du honen rein machen kommt nix
    Also der Startet das nicht

  • Versteh dich nicht..

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • Versteh dich nicht..


    Hab was vergessen mit ein zufügen aber jetzt macht der eine entloseschleife die sich mehr mals Wiederhollt

  • Achja genau, dass hier fehlt..


    unter default:


    KillTimer(gWerbungTimer[playerid]);

    Mfg Templer


    >>Dein Breadfish-Thema im Unterforum ScriptingBase / Scriptingwünsche wurde nicht richtig beantworter?<<
    >>Es handelt sich um ein Programmier Problem und du nicht einfach weiter kommst wo der Fehler sein könnte?<<
    Dann melde dich bei mir über die PN-Funktion indem du den Link zu deinem Breadfish-Themen Problem schickst.
    Voraussetzung:
    Thema älter als 1 Tag und im Breadfish Forum gespostet!

  • DANKE DIR 10000x Danke!!!!



    Nochmal zusammen fassung:


    Ganz oben:
    new gWerbungCount[MAX_PLAYERS];
    new gWerbungTimer[MAX_PLAYERS];



    Darunder:
    forward Werbung(playerid);



    Unter public OnPlayerConnect(playerid) (Wen Loginsystem vorhanden ist):

    gWerbungCount[playerid] = 0:



    Wenn nicht sollte das da stehen:
    {
    gWerbungCount[playerid] = 0:
    return 1;
    }



    Unter public OnPlayerDisconnect(playerid) (selbe wie oben):
    Wen login:
    if(gWerbungCount[playerid] != 0) KillTimer(gWerbungTimer[playerid]);
    Wen nicht
    {
    if(gWerbungCount[playerid] != 0) KillTimer(gWerbungTimer[playerid]);
    }


    unter: public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/text", false))
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(gWerbungCount[playerid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Du siehst dir gerade den Text an!");
    gWerbungCount[playerid] = 1;
    gWerbungTimer[playerid] = SetTimerEx("Werbung", 1000, 1, "d", playerid); //Jede Sekunde erscheint ein neuer Text!
    return 1;
    }
    return 0;
    }




    AM besten ganz unten am GM!!!
    public Werbung(playerid)
    {
    switch(gWerbungCount[playerid])
    {
    case 1: //Text #1
    {
    //Deine Texte für Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Text #2");
    }
    case 2: //Text#2
    {
    //Deine Texte für Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Text #2");
    }
    case 3: //Text#3
    {
    //Deine Texte für Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Text #3");
    }
    //Wenn du mehr Texte einfügen willst, dann einfach weiterzählen, also:
    // case 4:
    // case 5:
    // case 6:
    // case 7:
    // usw...
    default: //Letzer Text
    {
    gWerbungCount[playerid] = 0; //Setzt Wert wieder auf 0 und es wird kein Text mehr angezeigt...
    //Dein letzter Text für den Spieler
    SendClientMessage(playerid, 0xFFFFFF00, "Letzter Text...");
    KillTimer(gWerbungTimer[playerid]);
    }
    }
    gWerbungCount[playerid]++; //Zählt eins rauf
    }



    Wen ihr jemand sogesagt das zeigen wollt müsst ihr Folgenes machen
    {
    if(!strcmp(cmdtext, "/text", false))
    {
    if(!IsPlayerConnected(playerid)) return 1;
    if(gWerbungCount[playerid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Du siehst dir gerade den Text an!");
    gWerbungCount[playerid] = 1;
    gWerbungTimer[playerid] = SetTimerEx("Werbung", 1000, 1, "d", playerid); //Jede Sekunde erscheint ein neuer Text!
    return 1;
    }
    return 0;
    }


    Rausnehmen und durch folgenes Ersetzen:
    dcmd_tebet(playerid, params[])
    {
    if(!IsPlayerConnected(playerid)) return 1;
    new zielid, string[128];
    if(sscanf(params, "u", zielid)) return SendClientMessage(playerid, 0xFFFFFF00, "VERWENDUNG: /gebet [Spieler ID/Name]");
    if(!IsPlayerConnected(zielid)) return SendClientMessage(playerid, 0xFFFFFF00, "Ungültige SpielerID!");
    if(ggebetCount[zielid] != 0) return SendClientMessage(playerid, 0xFFFFFF00, "Spieler liest bereits Text!");
    ggebetCount[zielid] = 1;
    ggebetTimer[zielid] = SetTimerEx("gebet", 1000, 1, "d", zielid); //Jede Sekunde erscheint ein neuer Text!
    format(string, sizeof(string), "Du zeigst den Text für SpielerID %d!", zielid);
    return SendClientMessage(playerid, 0xFFFFFF00, "Start");
    }


    Sollte irgenwas mit undefined dcmd Stehen Über den New bla bla.... Das einfügen
    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    Fertig