10.11.2012, 01:27
Can someone help me edit this FS so that people can hear the music from far away... I need this for party rooms and events in my RP server, currently the range is so small you have to be next to it to even hear it.
Here is the FS Script:
I tried just making all the 20 into 200 and it didn't seem to work any better.
Please and Thanks,
jakejohnsonusa
Here is the FS Script:
Код:
/* Boombox filterscript created by Soumi. Copyright Soumi 2012. Commands: - /boombox : It will open a dialog where you can choose a radio station to play. After choosing the radio station, it will create a boombox object and starts playing the radio station for the players in range of 20.0. - /radiostation : To switch to another radio station. - /turnoff : To turn off the boombox. P.S : - If a player leaves the boombox range, the audio stream will stop for him. - If a player enters the boombox range, the audio stream will start playing for him. */ #define filterscript #include <a_samp> #include <zcmd> #include <sscanf2> #include <streamer> // Colors defines #define GREY 0xCECECEFF #define WHITE 0xFFFFFFFF #define RED 0xAA3333AA #define GOLD 0xB8860BAA #define ACTION_COLOR 0xC2A2DAAA #define GREEN 0x33AA33AA #define ORANGE 0xFF9900AA #define GUARDS_RADIO 0x33CCFFAA #define DOCTORS_RADIO 0xFFC0CBAA #define YELLOW 0xFFFF00AA #define BRONZE 0x800000AA #define SILVER 0xF5F5F5FF // Player Stats enum PlayerInfo { BoomBoxObject, Float: BoomBoxObjectX, Float: BoomBoxObjectY, Float: BoomBoxObjectZ, BoomBoxStatus, BoomBoxLink[512], ListeningToBoomBox, } new PlayerStat[MAX_PLAYERS][PlayerInfo]; forward OneSecondPlayerCheck(playerid); #if defined FILTERSCRIPT public OnFilterScriptInit() { print("\n--------------------------------------"); print(" Boombox filterscript by Soumi "); print("--------------------------------------\n"); LoadGangs(); return 1; } public OnFilterScriptExit() { return 1; } #else main() { print("\n--------------------------------------"); print(" Boombox filterscript by Soumi "); print("--------------------------------------\n"); } #endif public OnPlayerConnect(playerid) { PlayerStat[playerid][BoomBoxStatus] = -1; PlayerStat[playerid][ListeningToBoomBox] = -1; SetTimerEx("OneSecondPlayerCheck", 1000, true, "d", playerid); return 1; } public OnPlayerDisconnect(playerid, reason) { if(PlayerStat[playerid][BoomBoxStatus] == playerid) { DestroyDynamicObject(PlayerStat[playerid][BoomBoxObject]); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ])) { StopAudioStreamForPlayer(i); PlayerStat[i][ListeningToBoomBox] = 0; } } } return 1; } public OneSecondPlayerCheck(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerStat[i][BoomBoxStatus] == i && PlayerStat[playerid][ListeningToBoomBox] == -1) { if(IsPlayerInRangeOfPoint(i, 20.0, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ])) { PlayAudioStreamForPlayer(playerid, PlayerStat[i][BoomBoxLink], PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ], 10.0, 1); PlayerStat[playerid][ListeningToBoomBox] = i; } } if(PlayerStat[i][BoomBoxStatus] == i && PlayerStat[playerid][ListeningToBoomBox] == i) { if(!IsPlayerInRangeOfPoint(i, 20.0, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ])) { StopAudioStreamForPlayer(playerid); PlayerStat[playerid][ListeningToBoomBox] = -1; } } } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 8888) { if(!response) return 1; else if(response) { switch(listitem) { case 0: { if(PlayerStat[playerid][BoomBoxStatus] != playerid) { GetPlayerPos(playerid, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ]); PlayerStat[playerid][BoomBoxObject] = CreateDynamicObject(2103 ,PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ] -1,0.0000000,0.00000000,0.00000000); PlayerStat[playerid][BoomBoxStatus] = playerid; format(PlayerStat[playerid][BoomBoxLink], 512, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=313797"); SendClientMessage(playerid, GREEN, "Boombox turned [ON]."); SendClientMessage(playerid, WHITE, "Use /radiostation to switch to another radio station!"); } else if(PlayerStat[playerid][BoomBoxStatus] == playerid) { format(PlayerStat[playerid][BoomBoxLink], 512, "http://yp.shoutcast.com/sbin/tunein-station.pls?id=313797"); SendClientMessage(playerid, GREEN, "Radio station changed."); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ])) { PlayAudioStreamForPlayer(i, PlayerStat[i][BoomBoxLink], PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ], 10.0, 1); } } } } case 1: { if(PlayerStat[playerid][BoomBoxStatus] != playerid) { GetPlayerPos(playerid, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ]); PlayerStat[playerid][BoomBoxObject] = CreateDynamicObject(2103 ,PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ] -1,0.0000000,0.00000000,0.00000000); PlayerStat[playerid][BoomBoxStatus] = playerid; format(PlayerStat[playerid][BoomBoxLink], 512, "http://www.sky.fm/mp3/tophits.pls"); SendClientMessage(playerid, GREEN, "Boombox turned [ON]."); SendClientMessage(playerid, WHITE, "Use /radiostation to switch to another radio station!"); } else if(PlayerStat[playerid][BoomBoxStatus] == playerid) { format(PlayerStat[playerid][BoomBoxLink], 512, "http://www.sky.fm/mp3/tophits.pls"); SendClientMessage(playerid, GREEN, "Radio station changed."); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ])) { PlayAudioStreamForPlayer(i, PlayerStat[i][BoomBoxLink], PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ], 10.0, 1); } } } } } } } return 1; } //-----------------------------------------------------------------------[Commands]------------------------------------------------------------------------------ COMMAND:boombox(playerid, params[]) { if(PlayerStat[playerid][BoomBoxStatus] == playerid) return SendClientMessage(playerid, GREY, "You can't use this command now."); if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, GREY, "You can't use this command now."); ShowPlayerDialog(playerid, 8888, DIALOG_STYLE_LIST, "Radio Stations:","SomaFM\nSkyFM","Play","Quit"); return 1; } COMMAND:radiostation(playerid, params[]) { if(PlayerStat[playerid][BoomBoxStatus] == -1) return SendClientMessage(playerid, GREY, "You can't use this command now."); ShowPlayerDialog(playerid, 8888, DIALOG_STYLE_LIST, "Radio Stations:","SomaFM\nWWOZ","Play","Quit"); return 1; } COMMAND:turnoff(playerid, params[]) { if(PlayerStat[playerid][BoomBoxStatus] == -1) return SendClientMessage(playerid, GREY, "You can't use this command now."); SendClientMessage(playerid, RED, "Boombox turned [OFF]."); DestroyDynamicObject(PlayerStat[playerid][BoomBoxObject]); StopAudioStreamForPlayer(playerid); PlayerStat[playerid][BoomBoxStatus] = -1; for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, PlayerStat[playerid][BoomBoxObjectX], PlayerStat[playerid][BoomBoxObjectY], PlayerStat[playerid][BoomBoxObjectZ])) { StopAudioStreamForPlayer(i); PlayerStat[i][ListeningToBoomBox] = -1; } } return 1; }
Please and Thanks,
jakejohnsonusa