Musik abspielen in Range

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, liebe Leute :)


    Ich habe auf meinem Skript eine Bar erstellt. Und dort soll dauerhaft ein Lied laufen und wenn es endet wieder an gehen.
    Es soll jeder gleichzeitig hören, der in der Bar ist.


    Derzeit habe ich das so:



    //Bei OnPlayerConnect:
    SetTimerEx("Sprunkbar_Musik", 322000, 1, "i", playerid);


    //Erster Versuch
    forward Sprunkbar_Musik(playerid);
    public Sprunkbar_Musik(playerid)
    {
    if(IsPlayerInRangeOfPoint(playerid, 20.0, 508.6749, -87.2109, 998.9609))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(i, "http://webupload.voxa-network.com/music/sprunkbar_musik.mp3", 508.6749, -87.2109, 998.9609, 40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }
    return 0;
    }


    //Zweiter Versuch
    forward Sprunkbar_Musik(playerid);
    public Sprunkbar_Musik(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    PlayAudioStreamForPlayer(i, "http://webupload.voxa-network.com/music/sprunkbar_musik.mp3", 508.6749, -87.2109, 998.9609, 40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }
    return 0;
    }

    Ist das so richtig? Denn, der die Musik startet erst nach 5 Minuten und wenn ich den Timer auf 1 Millisekunde habe, geht das Lied die ganze Zeit an.

  • Tipp:
    Die Bar ist doch bestimmt ein Interior, oder?
    Muss man mit Enter, /enter, /exit das Gebäude betreten oder verlassen?
    Wenn dann bau das da ein.
    Wenn nicht, dann schreib es nochmal und wir finden eine Lösung!


    Nochmal durchgelesen, anscheinend ja doch kein Interior.

    //Ganz oben:
    new IsNearBar[MAX_PLAYERS];


    //Bei OnGameModeInit:
    SetTimer("Sprunkbar_Musik", 3333, 1);


    forward Sprunkbar_Musik();
    public Sprunkbar_Musik()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerInRangeOfPoint(i, 20.0, 508.6749, -87.2109, 998.9609)&&IsNearBar[i]==0)//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(i, "http://webupload.voxa-network.com/music/sprunkbar_musik.mp3", 508.6749, -87.2109, 998.9609, 40.0, 1);
    IsNearBar[i] = 1;
    }
    else if(IsNearBar[i]==1){
    StopAudioStreamForPlayer(i);
    IsNearBar[i] = 0;
    }
    }
    return 1;
    }
    Beim Einloggen Variable auf 0 setzen.


    Ps. Per Handy geschrieben.

    3 Mal editiert, zuletzt von Kevin1 ()

  • Kommt ein Fehler:



    D:\Voxa's Zeugs\San Andreas Multiplayer\Project-Southside\Project-Southside Serverskript\gamemodes\prs.pwn(56362) : error 017: undefined symbol "playerid"


    > if(IsPlayerInRangeOfPoint(playerid, 20.0, 508.6749, -87.2109, 998.9609) && IsNearBar[i] == 0)//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen


  • forward Sprunkbar_Musik(playerid);
    public Sprunkbar_Musik(playerid)


    Totaler Schwachsinn ...
    In den Zeilen 12 und 14 waren Fehler.
    1. playerid statt i
    2. Rechtschreibung


    Hab's oben korrigiert.