Szerző Téma: Ha egy játékos egy adott ponton van játssza le neki a zenét  (Megtekintve 2206 alkalommal)

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Dátum: 2014. május 07. - 07:27:11 »
0 Show voters
Üdv!
Hogyan lehetne megoldani azt hogyha a játékos egy adott koordinátán tartózkodik akkor indítsa el neki a zenét 1x es ha távolabb megy akkor halkuljon a zene?

Nem elérhető skyLine

  • Globális moderátor
  • 2171
  • 2020
  • Vaterán
    • Profil megtekintése
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #1 Dátum: 2014. május 07. - 09:12:43 »
0 Show voters
PlayAudioStreamForPlayer
Magyar változata.
Például:
 
PlayAudioStreamForPlayer(playerid, \"http://1in.kz/s/music/1304141195_hollywood-undead-undead.mp3\", 1241.1140, 178.7975, 19.9406, 15, 1);
« Utoljára szerkesztve: 2014. május 07. - 09:15:46 írta SkyLinE »

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #2 Dátum: 2014. május 11. - 15:52:00 »
0 Show voters
És ezt hova tegyem? Mert ha az OnPlayerConnect alá teszem akkor nem mûködik, ha más public alá ahol nincs definiálva a playerid errort ír stb.

Nem elérhető TwisT3R

  • 576
  • Küklopsz
  • Discord: TwisT3R#7833
    • Profil megtekintése
    • Firing Squad Clan
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #3 Dátum: 2014. május 11. - 21:04:17 »
0 Show voters

    if(IsPlayerInRangeOfPoint(playerid, hatótávolság pl 10.0, X, Y, Z))
    {
        PlayAudioStreamForPlayer(playerid, \"zene directlink\", X, Y, Z, hatótávolság pl 10.0, 1);
    }
    return 1;
}

BarnyBoy

  • Vendég
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #4 Dátum: 2014. május 11. - 21:37:19 »
0 Show voters
Így folyamatosan elindítja, már próbáltam.

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #5 Dátum: 2014. május 11. - 22:34:49 »
0 Show voters
Streamer plugin aréna függvényeivel meglehet csinálni valahogy így:
Azt, hogy a zene elhalkuljon azt SAMP-ba nem lehet megcsinálni, mert nincs rá függvény.
 
public OnGameModeInit()
{
new d_zenearena = CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
//értelemszerûen a téglalap átlójának két pontját kell megadni, Z koordináta itt nem kell!
//-1 minden játékosnál meghívódik
//worldid virtuális világ -1, az összesben virtuális világban meghívódik
//interiorid -1 az összes interiorban meghívódik
}
public OnPlayerEnterDynamicArea(playerid, areaid) //amikor belép a zónába ez a függvény meghívásra kerül
{
if(areaid == d_zenearena)
{
PlayAudioStreamForPlayer(playerid, \"http://somafm.com/tags.pls\"); //lejátszuk neki a zenét
return 1;
}
return 1;
}
public OnPlayerLeaveDynamicArea(playerid, areaid) //amikor kilépbelép a zónából ez a függvény meghívásra kerül
{
if(areaid == d_zenearena)
{
StopAudioStreamForPlayer(playerid); //leállítjuk a zenét
return 1;
}
return 1;
}
« Utoljára szerkesztve: 2014. május 11. - 22:37:59 írta bbTamas »

Nem elérhető Flash

  • 5726
  • (っ◕‿◕)っ
    • Profil megtekintése
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #6 Dátum: 2014. május 11. - 22:40:30 »
0 Show voters
   if(IsPlayerInRangeOfPoint(playerid, 10.0, X, Y, Z) && GetPVarInt(playerid, \"zeneelinditva\")) {
        PlayAudioStreamForPlayer(playerid, \"zene directlink\", X, Y, Z, hatótávolság pl 10.0, 1);
SetPVarInt(playerid, \"zeneelinditva\", 1);
    }

 
Azt meg találd ki hogy hol nullázod le a PVar értékét :)
[mod]Javítottam a sima code taget pawn code tagre![/mod]
« Utoljára szerkesztve: 2014. május 16. - 20:18:54 írta Dfoglalo »

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #7 Dátum: 2014. május 15. - 17:29:44 »
0 Show voters
Helló, láttam sok segítséget aki segíteni próbált neked de próbáld meg úgy, hogy:
 

public OnPlayerUpdate(playerid)
{
    if(IsPlayerInRangeOfPoint(playerid, 5, X, Y, Z))
    {
          PlayAudioStreamForPlayer(playerid, \"http://1in.kz/s/music/1304141195_hollywood-undead-undead.mp3\", X, Y, Z, 15, 1);
    }
    else if(IsPlayerInRangeOfPoint(playerid, 6, X, Y, Z))
    {
          StopAudioStreamForPlayer(playerid);
    }
}

 
Ha minden igaz akkor így mûködik. :)
El magyarázom!
Ha az 5-ös körzetben van akkor el indítja neki ott a zenét.
Ha az 5-ös körzetet elhagyja és át lép a 6-os körzetbe akkor a zene megáll!
Remélem bírtam segíteni, és jól :)
[mod]Javítottam a sima code taget pawn code tagre![/mod]
« Utoljára szerkesztve: 2014. május 16. - 20:19:09 írta Dfoglalo »

Nem elérhető kos

  • 292
    • Profil megtekintése
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #8 Dátum: 2014. május 24. - 15:35:24 »
0 Show voters
Hali, én ezt használom.
OnGameModeInit alá akár:
 

PlayAudioStreamForAll(\"LINK\",1958.3783,1343.1572,15.3746,60.0,1);

 


stock PlayAudioStreamForAll(url[],Float:x,Float:y,Float:z,Float:dist,on)
{
for(new i; i < MAX_PLAYERS; i++ )
{
    if(IsPlayerConnected(i))
    {
        StopAudioStreamForPlayer(i);
PlayAudioStreamForPlayer(i,url,x,y,z,dist,on);
    }
}
return 1;
}

 
netán ha leáll a zene, mert vége a számnak, akkor ajánlom megspécizni egy timerrel egy 1-2ms es timerrel, hogy ellenõrizze megy e még a zene ott ahol hallgattad, vagy már nem...
Remélem segítettem  :smokin:
Az OnPlayerUpdate(t) nem ajánlom, mert floodolná nagyon is a dolgokat  ???
De számlálással már nem pl.:
new bool:Inditva[MAX_PLAYERS]

 
Ugyanis így sem kizárt, de így sem árt megspécizni egy kis timerrel, mert itt is idönként leállhat a lejátszás, ha zónában vagy egy ideig.
[mod]Javítottam a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. május 24. - 19:03:33 írta Dfoglalo »

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #9 Dátum: 2014. május 07. - 07:27:11 »
0 Show voters
Üdv!
Hogyan lehetne megoldani azt hogyha a játékos egy adott koordinátán tartózkodik akkor indítsa el neki a zenét 1x es ha távolabb megy akkor halkuljon a zene?

Nem elérhető skyLine

  • Globális moderátor
  • 2171
  • 2020
  • Vaterán
    • Profil megtekintése
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #10 Dátum: 2014. május 07. - 09:12:43 »
0 Show voters
PlayAudioStreamForPlayer
Magyar változata.
Például:
 
PlayAudioStreamForPlayer(playerid, \"http://1in.kz/s/music/1304141195_hollywood-undead-undead.mp3\", 1241.1140, 178.7975, 19.9406, 15, 1);
« Utoljára szerkesztve: 2014. május 07. - 09:15:46 írta SkyLinE »

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #11 Dátum: 2014. május 11. - 15:52:00 »
0 Show voters
És ezt hova tegyem? Mert ha az OnPlayerConnect alá teszem akkor nem mûködik, ha más public alá ahol nincs definiálva a playerid errort ír stb.

Nem elérhető TwisT3R

  • 576
  • Küklopsz
  • Discord: TwisT3R#7833
    • Profil megtekintése
    • Firing Squad Clan
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #12 Dátum: 2014. május 11. - 21:04:17 »
0 Show voters

    if(IsPlayerInRangeOfPoint(playerid, hatótávolság pl 10.0, X, Y, Z))
    {
        PlayAudioStreamForPlayer(playerid, \"zene directlink\", X, Y, Z, hatótávolság pl 10.0, 1);
    }
    return 1;
}

BarnyBoy

  • Vendég
Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #13 Dátum: 2014. május 11. - 21:37:19 »
0 Show voters
Így folyamatosan elindítja, már próbáltam.

Ha egy játékos egy adott ponton van játssza le neki a zenét
« Válasz #14 Dátum: 2014. május 11. - 22:34:49 »
0 Show voters
Streamer plugin aréna függvényeivel meglehet csinálni valahogy így:
Azt, hogy a zene elhalkuljon azt SAMP-ba nem lehet megcsinálni, mert nincs rá függvény.
 
public OnGameModeInit()
{
new d_zenearena = CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
//értelemszerûen a téglalap átlójának két pontját kell megadni, Z koordináta itt nem kell!
//-1 minden játékosnál meghívódik
//worldid virtuális világ -1, az összesben virtuális világban meghívódik
//interiorid -1 az összes interiorban meghívódik
}
public OnPlayerEnterDynamicArea(playerid, areaid) //amikor belép a zónába ez a függvény meghívásra kerül
{
if(areaid == d_zenearena)
{
PlayAudioStreamForPlayer(playerid, \"http://somafm.com/tags.pls\"); //lejátszuk neki a zenét
return 1;
}
return 1;
}
public OnPlayerLeaveDynamicArea(playerid, areaid) //amikor kilépbelép a zónából ez a függvény meghívásra kerül
{
if(areaid == d_zenearena)
{
StopAudioStreamForPlayer(playerid); //leállítjuk a zenét
return 1;
}
return 1;
}
« Utoljára szerkesztve: 2014. május 11. - 22:37:59 írta bbTamas »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal