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]);}}
public OnPlayerCommandText(playerid, cmdtext[]){ if(strcmp(cmdtext, \"/sound\", true, 10) == 0) {PlaySoundForAll(1002); return 1;}return 0;}
\" 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ó.
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.
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.
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;}
#define forplayers(%1,%2) for ( new i = %1 ; i < %2 ; i++) if(IsPlayerConnected(i)
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)
// Használat: StopMusic(playerid);#define StopMusic(%1) PlayerPlaySound(%1,1063,0.0,0.0,0.0)