GameTextForPlayer

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
  • Es geht nicht dass wenn ich in diesem Bereich bin, dass dann eine Nachricht kommt, ich will aber eine nachricht in bildschirmmitte angezeigt bekommen.
    und nicht im chat-fenster.



    hier mein script, muss ich das eig in dieses public geben oder in ein anderes?


    public OnPlayerText(playerid, text[])
    {
    //--------------------------BSN-Drive--------------------------------


    if(PlayerToPoint(10.0, playerid, 1184.1770,-914.9766,43.2861))
    {
    GameTextForPlayer(playerid, "Hallo", 6000, 0);
    }



    if (PlayerToPoint(2.0, playerid,1184.1770,-914.9766,43.2861))
    {
    GameTextForPlayer(playerid, "~g~Zum parken am BSN gib /parken ein. Dies kostet $25", 5000, 0);
    }


    return 1;
    }

    Reallife-Server
    62.141.35.206:7777
    TeamSpeak
    85.131.199.220:9995

  • Ich habe es z.B. in meinem Script so: forward blabla();
    SetTimer("gametexts",ms,1); //ms = Zeit in ms. Alle (ms) wird überprüft, ob sich der Spieler bei deinen Koordinaten befindet


    public gametexts() {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(PlayerToPoint(radius,i,x,y,z)) {
    GameTextForPlayer (i, "Dein Text", Anzeigelänge in ms,0); }
    else if(PlayerToPoint(radius,i,x,y,z)) {
    GameTextForPlayer (i, "Dein Text", Anzeigelänge in ms,0); }
    else if(PlayerToPoint(radius,i,x,y,z)) {
    GameTextForPlayer (i, "Dein Text", Anzeigelänge in ms,0); }
    else if(PlayerToPoint(radius,i,x,y,z)) {
    GameTextForPlayer (i, "Dein Text", Anzeigelänge in ms,0); }
    ...
    ...
    ...
    So kannst du viele stellen übersichtlich in dein Script einfügen.




    GER-Clan - Seit 2007 - WIEDER DA!

  • ich würds so machen
    //ganz oben
    forward OnPlayerText();
    // OnGameModeINit
    public OnPlayerText(playerid, text[])
    {
    if(PlayerToPoint(10.0, playerid, 1184.1770,-914.9766,43.2861))
    {
    GameTextForPlayer(playerid, "Hallo", 6000, 0);
    }
    if (PlayerToPoint(2.0, playerid,1184.1770,-914.9766,43.2861))
    {
    GameTextForPlayer(playerid, "~g~Zum parken am BSN gib /parken ein. Dies kostet $25", 5000, 0);
    }
    return 1;
    }
    //timer
    SetTimer("OnPlayerText",ms,1);

    Einmal editiert, zuletzt von Polarized ()

  • Bei beiden Methode schreit er mir immer das ich playerid nicht deklariert habe, hab ich aber denn im OnPlayerCommandText geht es.


    Wie kann ich das wenn deklarieren damit das in dem neuem public auch geht?



    als probe machte in im PlayerCommandText eine if-Schleife drüber mit PlayerToPoint und einer /mv um zu testen ob es überhaupt geht, aber danke das geht einwandfrei.


    nur bitte ich um hilfe damit diese playerid in den publics nicht mehr undefiniert sind.
    Was muss ich da umstellen?



    edit:


    So, funktioniert einigermaßen mit meinem Zeugs, nur ich schaffe es nicht, dass wenn er bei dem Radius um den Punkt die Meldung "Tippen Sie /fastfood ein um etwas zu essen" bekommt.


    public OnPlayerCommandText(playerid, cmdtext[])
    {


    //--------------------------BSN-Drive--------------------------------
    if(PlayerToPoint(10.0, playerid, 1184.1770,-914.9766,43.2861)) //diese Schleife gier geht nicht
    {
    GameTextForPlayer(playerid, "Tippen Sie /fastfood um etwas zu essen", 3000, 0);
    }


    if(PlayerToPoint(10.0, playerid, 1184.1770,-914.9766,43.2861))
    {
    GameTextForPlayer(playerid, "Danke fuer das nutzen des BSN-Drive", 3000, 0);
    if(strcmp(cmdtext, "/fastfood", true) ==0)
    {
    SetPlayerHealth(playerid, 100.0);
    }
    }
    return 1;
    }




    achja und was muss ich einfügen, damit er nach dem /fastfood wie gefreezet ist und erst ca 3 sec später wieder gehen kann. Weis das einer?

    Reallife-Server
    62.141.35.206:7777
    TeamSpeak
    85.131.199.220:9995

    Einmal editiert, zuletzt von Wolve ()

  • vielleicht mit nem Timer

    forward unfreez();//ganz oben


    if(strcmp(cmdtext, "/fastfood", true) ==0)
    {
    TogglePlayerControllabl(playerid,0);
    SetTimer("unfreez",3*1000,0);
    SetPlayerHealth(playerid, 100.0);
    }


    public unfreez()//ganz unten Ürgendwo dazwischen Quwtschen
    {
    TogglePlayerControllabl(playerid,1);
    return 1;
    }



    :thumbup: or :thumbdown: _ :?: :?: :?:

    I'm Sorry For Your Mistake!
    but it's yours


  • forward unfreez(playerid);//ganz oben


    if(strcmp(cmdtext, "/fastfood", true) ==0)
    {
    TogglePlayerControllabl(playerid,0);
    SetTimerEx("unfreez",3*1000,0,"i",playerid);
    SetPlayerHealth(playerid, 100.0);
    GameTextForPlayer(playerid, "Tippen Sie /fastfood um etwas zu essen", 3000, 0);


    }


    public unfreez(playerid)//ganz unten Ürgendwo dazwischen Quwtschen
    {
    TogglePlayerControllabl(playerid,1);
    GameTextForPlayer(playerid, "Danke fuer das nutzen des BSN-Drive", 3000, 0);
    return 1;
    }


    So wärs logisch
    DIe Version von mario_DE geht nicht richtig weil nur "SetTimer" verwendet wird und nicht "SetTimerEx"