Musikstream 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
  • Leute, lest doch die seite in der wiki durch.....ihr brauch IsPlayerInRangeOfPoint gar nicht...


    Wenn mich nicht alles täuscht braucht man es doch, da die Musik zwar wenn man mehr Parameter in die Funktion baut an dieser bestimmten Stelle/Zone anfängt aber nicht wieder von alleine aufhört ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • warum so viel ?
    leute verwendet mal das hier


    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z,40.0, 1);//1 leiser oder gangz weg/aus


    so dann so verwenden



    SetTimerEx("Audio_Timer", 1000, 1, "i", playerid);
    forward Audio_Timer(playerid);
    public Audio_Timer(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z,40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }
    return 1;
    }

  • if(!IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z,40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }


    Wenn, dann mich auch bitte richtig verbessern:


    if(IsPlayerInRangeOfPoint(playerid, 40.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    PlayAudioStreamForPlayer(playerid, "http://somafm.com/tags.pls", X, Y, Z, 40.0, 1);//1 leiser oder gangz weg/aus
    return 1;
    }


    mfg. :thumbup:

    ast2ufdyxkb1.png


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


  • :D das dann ! da nicht mehr hingehört weiß ich auch vergessen wollte grad edit :S :P

  • @Kaliber
    Perfekt genau so will ich das haben klappt wunderbar so :)


    bedanke mich dan mal an alle die mir geholfen haben was ja anscheint nicht ganz so einfach war :D aber es funktioniert jetzt wunderbar :)
    jetzt aber mal eine kurze verständnissfrage zum ersten code von Kaliber


    Spoiler anzeigen
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22

    Spoiler anzeigen
    //Oben im Script
    new bool:InZone[MAX_PLAYERS];

    Spoiler anzeigen
    //Bei OnPlayerConnect
    SetTimerEx("Audio_Timer", 1000, 1, "i", playerid);

    Spoiler anzeigen
    //Der Callback
    forward Audio_Timer(playerid);
    public Audio_Timer(playerid)
    {
    if(!IsPlayerInRangeOfPoint(playerid, 20.0, X, Y, Z))//20.0 = Radius von dem Gebiet | X,Y,Z durch koordinaten von dem Gebiet ersetzen
    {
    if(InZone[playerid] == false) return 1;
    InZone[playerid] = false;
    StopAudioStreamForPlayer(playerid);
    return 1;
    }
    if(InZone[playerid] == true) return 1;
    PlayAudioStreamForPlayer(playerid, "http://XXX.de/fetteBeats.mp3");
    InZone[playerid] = true;
    return 1;
    }


    new bool:InZone[MAX_PLAYERS];
    heisst also
    der "boool" (was auch immer das sein sollte) heisst in dem beispielt jetzt "inZone" das könnte auch heissen "metalmusikzone"?


    SetTimerEx("Audio_Timer", 1000, 1, "i", playerid);
    heisst also
    der Audio_timer ist der name von dem Audiotimer den könnte man auch umbenennen in ähm sagenwir mal metalmusiktimer? ich geh ma davon aus das die 1000 dan die zeitangabe ist und es in millisekunden ist also 1 sekunde in dme beispiel?


    und im nächsten fall wird einfach gekuckt ob der jenige in der "inZone" ist oder nicht jenachdem passiert etwas?
    jetz ne andere frage :D ja ich will schonwieder weiter gehen xD



    wenn ich jetzt 2 zonen habe ich sag mal 2 diskos :D müsste ich dan alles von vorne machen und den bool "inZone"umbenennen und den ganzen code kopieren und alles was "inZone" ist auf das andere stellen? zb auf "diskozone"? ich will eine weitere zone haben mit einer anderen musik :D

  • Also ein bool ist ein Array, dass entweder die Ausgabe wahr oder falsch hat.


    Also kann man es auf true oder false stellen.
    Ist, wie wenn man eine Variable auf 0 und 1 setzt.


    new bool:metalmusikzone[MAX_PLAYERS];


    Das MAX_PLAYERS bedeutet, dass der Bool für alle Spieler erstellt wird und für jeden Spieler einzeln geändert werden kann, sonst würden ja alle die Musik bekommen.


    SetTimerEx würde ich nicht verwenden, man kann auch einen Timer machen, ist aber auch egal.
    Dieser Timer kann umbenannt werden, dann muss der Callback & sein Forward
    ("public Audio_Timer(playerid)") auch geändert werden.

    the ones who are crazy enough to think that they can change the world, are the ones who do
    - Steve Jobs