Szerző Téma: PlaySoundForAll  (Megtekintve 3354 alkalommal)

Nem elérhető maark

  • 565
    • Profil megtekintése
PlaySoundForAll
« Dátum: 2010. június 01. - 16:42:57 »
0 Show voters
Ugyebár ismerjük a PlayerPlaySound függvényt ami csak egy adott játékosnak adja be a hangot/zenét
Én most készítettem egy PlaySoundForAll-t
Eloször szükségünk van erre:
 

stock PlaySoundForAll(soundid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
new Float:p[3];
GetPlayerPos(i, p[0], p[1], p[2]);
PlayerPlaySound(i, soundid, p[0], p[1], p[2]);
}
}

 
És ha ezzel megvagyunk máris használhatjuk az új függvényünket: PlaySoundForAll(soundid);
Példa:
 
public OnPlayerCommandText(playerid, cmdtext[])
{
        if(strcmp(cmdtext, \"/sound\", true, 10) == 0)
        {
PlaySoundForAll(1002);
           return 1;
}
return 0;
}

 
A soundid-hez ajánlanék pár linket:
http://wiki.sa-mp.com/wiki/SoundID
http://forum.sa-mp.com/index.php?topic=94209.0
Ez az elso ilyen stock munkám szóval ha esetleg hibás lenne azt írjátok meg mert szeretnék tanulni belole :)
« Utoljára szerkesztve: 2011. november 22. - 19:45:33 írta APC »

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
PlaySoundForAll
« Válasz #1 Dátum: 2010. június 01. - 16:57:10 »
0 Show voters
Nem szükséges lekérdezni a pozíciót hanem 0.0-ákkal helyettesíteni oket.
MAX_PLAYERS definíció (500 játékos) helyett GetMaxPlayers() kéne alkalmazni ami a férohelyet kérdezi le.

PlaySoundForAll
« Válasz #2 Dátum: 2010. június 01. - 17:17:01 »
0 Show voters
Muszáj kritizálni szegényt most talált fel egy új függvényt elég jó dolog!!!

Nem elérhető Depi

  • 2259
  • Még mindig TrYp. :)
    • Profil megtekintése
PlaySoundForAll
« Válasz #3 Dátum: 2010. június 01. - 17:22:52 »
0 Show voters
\" post=\"57552\" timestamp=\"1275405421\"]
Muszáj kritizálni szegényt most talált fel egy új függvényt elég jó dolog!!!
 
[/quote]
Te tényleg ekkorra hülye vagy lol ? Nem kritizálta,hanem kiegészitette,meg segített neki hogy jobb legyen...Mert amit Eps írt,az helyesebb az tény és való.

PlaySoundForAll
« Válasz #4 Dátum: 2010. június 01. - 17:29:28 »
0 Show voters
Nem vagyok hülye more tudom hogy egészítettem nem bolond epsilon-se de akkor is!
XDXDXD :D :D :D :D :D :D :D :D :D :D :D
Igazad van elnéztem a tényeket xd

Nem elérhető maark

  • 565
    • Profil megtekintése
PlaySoundForAll
« Válasz #5 Dátum: 2010. június 01. - 17:52:12 »
0 Show voters
Idézetet írta: Epsilon date=1275404230\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1869\" data-ipsquote-contentclass=\"forums_Topic
Nem szükséges lekérdezni a pozíciót hanem 0.0-ákkal helyettesíteni őket.
MAX_PLAYERS definíció (500 játékos) helyett GetMaxPlayers() kéne alkalmazni ami a férőhelyet kérdezi le.
 
Köszi :) tényleg egyszerűbb
« Utoljára szerkesztve: 2010. június 01. - 18:38:30 írta Epsilon »

PlaySoundForAll
« Válasz #6 Dátum: 2010. június 01. - 19:53:19 »
0 Show voters
Amugy a playerplaysound-nál a pozíciók nem a playerhez képest vannak?
azaz ha pl plaPlayerplaySound(12, 0.0, 0.0, 4.0); --> akkor enm fölötte játsza le?? :O
vagy én ezt nem értem..
nekem eddig mindíg 0.0, 0.0., 0.0 volt, és jó volt.. szal.. Infot kérek xD

Nem elérhető Kiss

  • 1962
    • Profil megtekintése
PlaySoundForAll
« Válasz #7 Dátum: 2010. június 01. - 21:38:16 »
0 Show voters
most tanulmányozom, szóval lenne egy kérdésem: Azt h kell értelmezni h csak egy adott embernek? aki pl megjött a szervere és még nem spawnolt?

Nem elérhető krisk

  • 2380
    • Profil megtekintése
PlaySoundForAll
« Válasz #8 Dátum: 2010. június 09. - 21:59:36 »
0 Show voters
A függvény maga hibás. A PlayPlayerSound(); függvényben a Float:x, Float:y, Float:z az offset, magyarul a játékostól való távolság. (példa: Ha a koordináták {0.0,0.0,5.0} akkor a hang a játékos pozíciójához képes 5 lábbal feljebb fog hallatszani.
edit: Most nézem már tengerimalac is írta, igaza van.
« Utoljára szerkesztve: 2010. június 09. - 22:01:40 írta krisk »

PlaySoundForAll
« Válasz #9 Dátum: 2010. június 09. - 22:44:13 »
0 Show voters
Idézetet írta: krisk date=1276113576\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1869\" data-ipsquote-contentclass=\"forums_Topic
A függvény maga hibás. A PlayPlayerSound(); függvényben a Float:x, Float:y, Float:z az offset, magyarul a játékostól való távolság. (példa: Ha a koordináták {0.0,0.0,5.0} akkor a hang a játékos pozíciójához képes 5 lábbal feljebb fog hallatszani.
edit: Most nézem már tengerimalac is írta, igaza van.
 
Aki nem értené:
A három nulla azért jó, mert akkor a játékos pozícióján fogja lejátszani, egyébként JÓ MESSZE a játékostól...
(Mivel a függvényben a játékos vektorait adja meg)
Helyes kivitelezés:
 
AllPlaySound(id,Float:x=0.0,Float:y=0.0,Float:z=0.0){for(new i=0;i<GetMaxPlayers();i++)if(IsPlayerConnected(i))PlayerPlaySound(i,id,x,y,z);return 1;}
« Utoljára szerkesztve: 2010. június 09. - 22:47:22 írta GameStar »

Nem elérhető krisk

  • 2380
    • Profil megtekintése
PlaySoundForAll
« Válasz #10 Dátum: 2010. június 20. - 19:39:59 »
0 Show voters
Tök mindegy meiket használod. Ha konstannsal használod:
 - Lassabb, mert végignézi az összes játékost 500-ig
 - Gyors, mert konstans.
Ha változót akkor:
 - Lassabb, mert változó.
 - Gyorsabb, mert nem nézi meg az összes játékost 500-ig.
Használjátok a foreach-ot, vagy írtam egy egyszerubbet.
 

#define forplayers(%1,%2) for ( new i = %1 ; i < %2 ; i++) if(IsPlayerConnected(i)
« Utoljára szerkesztve: 2010. június 20. - 19:53:01 írta krisk »

PlaySoundForAll
« Válasz #11 Dátum: 2010. július 30. - 21:33:29 »
0 Show voters
és a zenét hogy kell kikapcsolni?

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
PlaySoundForAll
« Válasz #12 Dátum: 2010. augusztus 01. - 10:49:01 »
0 Show voters
Idézetet írta: krisk date=1277055599\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"1869\" data-ipsquote-contentclass=\"forums_Topic
Tök mindegy meiket használod. Ha konstannsal használod:
 - Lassabb, mert végignézi az összes játékost 500-ig
 - Gyors, mert konstans.
Ha változót akkor:
 - Lassabb, mert változó.
 - Gyorsabb, mert nem nézi meg az összes játékost 500-ig.
Használjátok a foreach-ot, vagy írtam egy egyszerubbet.
 

#define forplayers(%1,%2) for ( new i = %1 ; i < %2 ; i++) if(IsPlayerConnected(i)

 

De a konstans nem feltétlenül 500. Hoppá..
Ezenkívül Gamestar kódjában akár 500 (max férohely) x is meghívódhat a függvény FELESLEGESEN. (elég lenne egyszer)
 
// Használat: StopMusic(playerid);
#define StopMusic(%1) PlayerPlaySound(%1,1063,0.0,0.0,0.0)

 
Másold a szkripted elejére, majd használd feltüntetett módon.

Nem elérhető skyLine

  • Globális moderátor
  • 2171
  • 2020
  • Vaterán
    • Profil megtekintése
PlaySoundForAll
« Válasz #13 Dátum: 2011. február 28. - 20:35:35 »
0 Show voters
Milyen zenék vannak benne?  ??? :D
Amúgy nem hittem el elsõre :D
Szép grat!

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
PlaySoundForAll
« Válasz #14 Dátum: 2011. február 28. - 20:46:38 »
0 Show voters
Ezek a hangok nem zenék, ezeket hallhatod a single playerben is.

http://forum.sa-mp.com/showthread.php?t=69572

Ha letöltöd ezt a programot, meghallgathatod õket, és elvileg kiad egy kis kódot, ami lejátsza neked a hangot a játékban.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal