AlexCelTare Posted December 16, 2021 Posted December 16, 2021 (edited) Salut baieti, am si eu nevoie de putin ajutor, vreau sa fac o comanda, ca atunci cand playerul da /enablemusic sa ii cante muzica in toate locatiile astea. Dar problema e, ca, doar un steram merge, cel de la sfarsit, restul, primele 2, nu se aud deloc. // playerid // url // coordonates X Y Z // distance { if (strcmp("/enablemusic", cmdtext, true) == 0) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6", -2130.5364,-2061.0081,63.3233, 30.0, 1); PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7", -2218.7273,-2154.1978,43.6795, 20.0, 1); PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0", -2197.3599,-2254.3499,30.8057, 20.0, 1); return 1; } return 0; } multumesc! Edited December 16, 2021 by AlexCelTare
Banditul Posted December 16, 2021 Posted December 16, 2021 Din pacate poti avea doar un sigur stream care sa functioenze per player la un moment. Daca pornesti mai multe in acelasi timp doar ultimul va functiona Ti-as recomanda eventual sa folosesti streamer mai exact https://github.com/samp-incognito/samp-streamer-plugin/wiki/Natives-(Areas) Te poti folosi de areas de la streamer pentru a crea anumite zone pe serverul tau si in momentul in care playerul intra/iese din acea forma pe care o creezi sa pornesti/opresti muzica si desigur bazat eventual pe o variabila gen Player[playerid][HasPlayerMusicEnabled] astfel poti avea muzica in acele zone
AlexCelTare Posted December 16, 2021 Author Posted December 16, 2021 6 minutes ago, Banditul said: Din pacate poti avea doar un sigur stream care sa functioenze per player la un moment. Daca pornesti mai multe in acelasi timp doar ultimul va functiona Ti-as recomanda eventual sa folosesti streamer mai exact https://github.com/samp-incognito/samp-streamer-plugin/wiki/Natives-(Areas) Te poti folosi de areas de la streamer pentru a crea anumite zone pe serverul tau si in momentul in care playerul intra/iese din acea forma pe care o creezi sa pornesti/opresti muzica si desigur bazat eventual pe o variabila gen Player[playerid][HasPlayerMusicEnabled] astfel poti avea muzica in acele zone ok l-am instalat streamer plugin ul, dar nu sunt asa pro cu scriptingul,abia ce stiu si eu basics, crezi ca imi poti face tu aceasta comanda? Daca doresti te rog
Banditul Posted December 16, 2021 Posted December 16, 2021 As putea traduce codul pe care il ai in ceva asemanator cu enum pData { // date aici STREAMER_TAG_AREA: MusicZone[3], // alte date aici eventual } new Player[MAX_PLAYERS][pData]; if (strcmp("/enablemusic", cmdtext, true) == 0) { Player[playerid][MusicZone][0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0, playerid: playerid); Player[playerid][MusicZone][1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0, playerid: playerid); Player[playerid][MusicZone][2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0, playerid: playerid); return 1; } if (strcmp("/disablemusic", cmdtext, true) == 0) { DestroyDynamicArea(Player[playerid][MusicZone][0]); DestroyDynamicArea(Player[playerid][MusicZone][1]); DestroyDynamicArea(Player[playerid][MusicZone][2]); Player[playerid][MusicZone][0] = 0; Player[playerid][MusicZone][1] = 0; Player[playerid][MusicZone][2] = 0; return 1; } public OnPlayerEnterDynamicArea(playerid, areaid) { if (areaid == Player[playerid][MusicZone][0]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6"); } else if (areaid == Player[playerid][MusicZone][1]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7"); } else if (areaid == Player[playerid][MusicZone][2]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0"); } } public OnPlayerLeaveDynamicArea(playerid, areaid) { StopAudioStreamForPlayer(playerid); } Stiu ti-am complicat logica si codul dar cel putin asa as vizualiza ce incerci sa faci si anume sa creezi 3 zone pentru player in care sa asculte muzica in momentul in care activeaza acest lucru. Acum, poate un cerc nu este potrivit pentru acea zona poate ai nevoie de un dreptunghi sau altceva pentru asta. In cazul in care doresti ca acest lucru sa fie mai general si daca consideri ca acele poziti cu muzica sunt pentru toate lumea si nu vor diferi poti folosi codul de mai jos. Desigur poate fi facut mai usor de organizat in cazul in care ai mai multe zone cu muzica dar e ceva de baza, sper ca se intelege. enum pData { // date aici HasMusicEnabled, // alte date aici eventual } new Player[MAX_PLAYERS][pData]; if (strcmp("/enablemusic", cmdtext, true) == 0) { if (Player[playerid][HasMusicEnabled] == false) // Desigur acel Player[][] este cea ce foloseti tu pentru a stoca informatii despre player { Player[playerid][HasMusicEnabled] = true; } else { Player[playerid][HasMusicEnabled] = false; } return 1; } new MusicAreas[3]; public OnGameModeInit() { MusicAreas[0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0); MusicAreas[1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0); MusicAreas[2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0); } public OnPlayerEnterDynamicArea(playerid, areaid) { if (Player[playerid][HasMusicEnabled] == true) { if (areaid == MusicAreas[0]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6"); } else if (areaid == MusicAreas[1]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7"); } else if (areaid == MusicAreas[2]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0"); } } } public OnPlayerLeaveDynamicArea(playerid, areaid) { StopAudioStreamForPlayer(playerid); } Daca ai intrebari ma poti intreba oricand. Ti-as sugera citesti eventual linkul pe care ti l-am oferit despre cum cum functioneaza streamer si poate ca tema sa citesti despre arrays ( nu neaparat in limbajul pawn )
AlexCelTare Posted December 16, 2021 Author Posted December 16, 2021 3 minutes ago, Banditul said: As putea traduce codul pe care il ai in ceva asemanator cu enum pData { // date aici STREAMER_TAG_AREA: MusicZone[3], // alte date aici eventual } new Player[MAX_PLAYERS][pData]; if (strcmp("/enablemusic", cmdtext, true) == 0) { Player[playerid][MusicZone][0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0, playerid: playerid); Player[playerid][MusicZone][1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0, playerid: playerid); Player[playerid][MusicZone][2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0, playerid: playerid); return 1; } if (strcmp("/disablemusic", cmdtext, true) == 0) { DestroyDynamicArea(Player[playerid][MusicZone][0]); DestroyDynamicArea(Player[playerid][MusicZone][1]); DestroyDynamicArea(Player[playerid][MusicZone][2]); Player[playerid][MusicZone][0] = 0; Player[playerid][MusicZone][1] = 0; Player[playerid][MusicZone][2] = 0; return 1; } public OnPlayerEnterDynamicArea(playerid, areaid) { if (areaid == Player[playerid][MusicZone][0]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6"); } else if (areaid == Player[playerid][MusicZone][1]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7"); } else if (areaid == Player[playerid][MusicZone][2]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0"); } } public OnPlayerLeaveDynamicArea(playerid, areaid) { StopAudioStreamForPlayer(playerid); } Stiu ti-am complicat logica si codul dar cel putin asa as vizualiza ce incerci sa faci si anume sa creezi 3 zone pentru player in care sa asculte muzica in momentul in care activeaza acest lucru. Acum, poate un cerc nu este potrivit pentru acea zona poate ai nevoie de un dreptunghi sau altceva pentru asta. In cazul in care doresti ca acest lucru sa fie mai general si daca consideri ca acele poziti cu muzica sunt pentru toate lumea si nu vor diferi poti folosi codul de mai jos. Desigur poate fi facut mai usor de organizat in cazul in care ai mai multe zone cu muzica dar e ceva de baza, sper ca se intelege. enum pData { // date aici HasMusicEnabled, // alte date aici eventual } new Player[MAX_PLAYERS][pData]; if (strcmp("/enablemusic", cmdtext, true) == 0) { if (Player[playerid][HasMusicEnabled] == false) // Desigur acel Player[][] este cea ce foloseti tu pentru a stoca informatii despre player { Player[playerid][HasMusicEnabled] = true; } else { Player[playerid][HasMusicEnabled] = false; } return 1; } new MusicAreas[3]; public OnGameModeInit() { MusicAreas[0] = CreateDynamicCircle(-2130.5364,-2061.0081,63.3233, 30.0); MusicAreas[1] = CreateDynamicCircle(-2218.7273,-2154.1978,43.6795, 20.0); MusicAreas[2] = CreateDynamicCircle(-2197.3599,-2254.3499,30.8057, 20.0); } public OnPlayerEnterDynamicArea(playerid, areaid) { if (Player[playerid][HasMusicEnabled] == true) { if (areaid == MusicAreas[0]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/0ggegbx6"); } else if (areaid == MusicAreas[1]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/57dvvuy7"); } else if (areaid == MusicAreas[2]) { PlayAudioStreamForPlayer(playerid, "https://uploadir.com/u/qvov4zt0"); } } } public OnPlayerLeaveDynamicArea(playerid, areaid) { StopAudioStreamForPlayer(playerid); } Daca ai intrebari ma poti intreba oricand. Ti-as sugera citesti eventual linkul pe care ti l-am oferit despre cum cum functioneaza streamer si poate ca tema sa citesti despre arrays ( nu neaparat in limbajul pawn ) imi da erorile astea: E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(41) : error 010: invalid function or declaration E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(43) : error 010: invalid function or declaration E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(47) : error 010: invalid function or declaration E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(52) : error 010: invalid function or declaration E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(58) : error 017: undefined symbol "CreateDynamicCircle" E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(59) : error 017: undefined symbol "CreateDynamicCircle" E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(60) : error 017: undefined symbol "CreateDynamicCircle" E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(63) : warning 235: public function lacks forward declaration (symbol "OnPlayerEnterDynamicArea") E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(65) : warning 213: tag mismatch E:\diverse\SAMP\myserver configuration\filterscripts\enablemusic.pwn(81) : warning 235: public function lacks forward declaration (symbol "OnPlayerLeaveDynamicArea")
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now