GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Benceee - 2012. július 22. - 11:57:22

Cím: PlayAudioStreamForPlayer
Írta: Benceee - 2012. július 22. - 11:57:22
Hali.
Van PlayAudioStreamForPlayer függvényünk. Ha egy adott pozíción szeretnénk hallani, akkor nagyon jó. De azt hogy lehet megoldani, hogy aki nincs indításnál a körzetben, hanem csak késõbb jön, az is hallja? Mert õ sajnos nem hallja.
Cím: PlayAudioStreamForPlayer
Írta: Bazsi - 2012. július 22. - 12:26:53
játszd le mindenkinek for függvénnyel, csak ezzel meg az a baj, hogy nekem régebben bekresseltette...
 
for(new i; i < MAX_PLAYERS; i++)PlayAudioStreamForPlayer(i,\"http://asdasd.hu\",x,y,z,tavolsag,1);

 
Lehet, hogy már javítva lett és nem kressel be :D
Cím: PlayAudioStreamForPlayer
Írta: Pedró - 2012. július 22. - 12:32:02
Idézetet írta: Benceee date=1342951042\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"24831\" data-ipsquote-contentclass=\"forums_Topic
Hali.
Van PlayAudioStreamForPlayer függvényünk. Ha egy adott pozíción szeretnénk hallani, akkor nagyon jó. De azt hogy lehet megoldani, hogy aki nincs indításnál a körzetben, hanem csak késõbb jön, az is hallja? Mert õ sajnos nem hallja.
 
IsPlayerInRangeOfPoint
meg
1-2 változó :D
Cím: PlayAudioStreamForPlayer
Írta: TengeriMalac - 2012. július 22. - 12:35:36
Mivel ForPlayer, ezért amikor beér abba a körzetbe, ahol hallania kéne, el kell indítani.
Szerintem használj idõzítõt, vagy ami mégjobb, DynamicArea-t, stramer pluginból.
Ellenõrizd, hogy a játékos közel van-e a ponthoz.
Utána indítsd el PlayAudioStreamForPlayer(..)-rel.
Ha kilép, vagy eltávolodik a ponttól, akkor StopAudioStreamForPlayer(..)
 

new zenearea;
zenearea = CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
public OnPlayerEnterDynamicArea(playerid, areaid) {
    if(areaid == zenearea) PlayAudioStreamForPlayer(...);
}
public OnPlayerLeaveDynamicArea(playerid, areaid) {
    if(areaid == zenearea) StopAudioStreamForPlayer(...);
}

 
Vagy valami ilyesmi.
Vagy megoldható IsPlayerInRangeOfPoint-tal is
Cím: PlayAudioStreamForPlayer
Írta: Benceee - 2012. július 22. - 13:54:35
Alapból ez bennevan a függvénybe. El is halkul ha távolabb megyek. De ha megy a zene, és cska utána megyek be a körzetbe, akkor én nem hallom.
Cím: PlayAudioStreamForPlayer
Írta: CANNONN - 2012. július 22. - 17:18:31
Hátha mûködik. :D Nem teszteltem.
 

#include a_samp
#include foreach
forward ZeneEllenor();
new bool:RBekapcsolva[MAX_PLAYERS] = false;
 
public OnFilterScriptInit()
{
SetTimer(\"ZeneEllenor\", 1000, true);
return 1;
}
public ZeneEllenor()
{
foreach(Player, i)
{
if(IsPlayerConnected(i))
{
   if(IsPlayerInRangeOfPoint(i, 7.0, 0, 0, 0))
   {
      if(RBekapcsolva == false) PlayAudioStreamForPlayer(i,\"http://....\", 0, 0, 0, 7.0, 1), RBekapcsolva = true;
   }
}
}
return 1;
}