Spieler hört Musik nicht

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
  • Huhu zusammen,
    was ist hier daran falsch?
    Der Spieler der zuerst auf den Server connectet, bei uns ID 1, da
    ID 0 für den Bot vergeben ist, hört die Musik.
    Jedoch der Spieler der danach kommt, hört sie nicht mehr ?


    new Float:pX4, Float:pY4, Float:pZ4, Float:FA4;
    GetPlayerPos(playerid, pX4, pY4, pZ4);
    for(new i = 0; i < MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)){
    if(IsPlayerInRangeOfPoint(i, 5, pX4, pY4, pZ4)) {
    StopAudioStreamForPlayer(i);
    PlayAudioStreamForPlayer(i, "http://listen.technobase.fm/dsl.pls");
    SendClientMessage(playerid,0x00FFFAFF,"Du hast TechnoBase.FM eingeschaltet!");
    return 1;
    }
    else {
    StopAudioStreamForPlayer(i);
    }
    }
    }


    Wo soll da der Fehler sein ? :o

  • Naja bei mir kann ich dafür sprechen ja.
    Das Problem ist aber nicht die Lautstärke sondern,
    dass die Spieler nach dem 1. Spieler den Stream gar nicht mehr hören.


    Dass heißt, der 1. Spieler der mit ID: 1 Connectet, hört diese Musik.
    Der 2. Spieler der mit ID: 2 usw. Connectet, hört diese Musik gar nicht.

  • Hm Fail, lag tatsächlich daran :o


    Noch ne andere Frage, wie kann ich es machen, wenn der Spieler aus dem Rage draußen ist,
    dass er dann die Musik nicht mehr hört? :o


    Wenn ich das richtig verstanden habe streamst du die music beim login ein oder wie dann musst du nur den stream abspielen


    sollte das doch so gemeint sein wie es dem code entspricht



    benötigst du noch eine spielervariabel
    new bool:ListenMusic[MAX_PLAYERS char];



    new Float:Pos[3],i;
    GetPlayerPos(playerid, Pos[0],Pos[1],Pos[2]);
    for(; i < MAX_PLAYERS; ++i) {
    if(!IsPlayerConnected(i))continue;
    if(IsPlayerInRangeOfPoint(i, 5, Pos[0],Pos[1],Pos[2])) {
    if(ListenMusic{i})continue;
    ListenMusic{i} = true;
    StopAudioStreamForPlayer(i);
    PlayAudioStreamForPlayer(i, "http://listen.technobase.fm/dsl.pls");
    SendClientMessage(playerid,0x00FFFAFF,"Du hast TechnoBase.FM eingeschaltet!");
    }else if(ListenMusic{i}) {
    ListenMusic{i} = false;
    StopAudioStreamForPlayer(i);
    }
    }


    damit kannst du zuzüglich abprüfen ob der spieler in der nähe ist wenn ja wird das ganze nur einmal eingestreamt und du bekommst nur einmal die message
    sonst überspringt er immer die id in der for-schleife sollte er in der nähe sein. sollte er nicht mehr in der nähe sein bleibt die id noch auf 1 das kann man abfragen und diese zurück setzen und den audiostream abschalten.