SISTEMA DE JBL - EduzinMods - 07/12/2023
ALGUEM CONSEGUE DEIXA ESSA FILTERSCRIPT EM CMD ? PQ TA EM STRCPM
Código PHP: #include <a_samp> #include <streamer>
#define MAX_JBL 30 //Máixmo de JBL's que podem está conectadas simultaneamente #define D_JBL 777 //ID da Dialog JBL
enum JBL_Info { Text3D:TextJBL[MAX_JBL], JblUsed[MAX_JBL], Float:xJBL[MAX_JBL], Float:yJBL[MAX_JBL], Float:zJBL[MAX_JBL], StringMusica[100] }; new InfoJBL[JBL_Info], JBL[MAX_PLAYERS], OuvindoMusica[MAX_PLAYERS];
public OnGameModeInit() { SetTimer("ChamadaJBL", 1000, true); for(new j; j < MAX_JBL; j++) { InfoJBL[JblUsed][j] = -1; InfoJBL[xJBL][j] = -1; InfoJBL[yJBL][j] = -1; InfoJBL[zJBL][j] = -1; InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0); } return 1; }
public OnPlayerConnect(playerid) { JBL[playerid] = -1; return 1; }
public OnPlayerDisconnect(playerid, reason) { if(JBL[playerid] > -1) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D } } DestroyDynamicObject(JBL[playerid]); JBL[playerid] = -1; } return 1; }
public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[128], idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/LigarJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { if(GetPlayerInterior(playerid) != 0) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é permitido usar esse comando em interiores"); } if(IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não pode usar esse comando em veículos"); } if(JBL[playerid] > -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL já está ligada em algum lugar"); } new stringj[1200]; strcat(stringj,"{FFFFFF}Funk\n"); strcat(stringj,"Trap\n"); strcat(stringj,"Reggae\n"); strcat(stringj,"Sertanejo\n"); strcat(stringj,"Funk Pesadao\n"); strcat(stringj,"Sertanejo 2"); strcat(stringj,"Os Barões da Pisadinha - Tá Rocheda\n"); strcat(stringj,"Os Barões da Pisadinha ft. Luan Estilizado - Galera do Interior\n"); strcat(stringj,"Os Barões da Pisadinha - Só Basta você me Ligar Ft. Xand Avião\n"); strcat(stringj,"Do Fundo da Grota - Baitaca\n"); strcat(stringj,"Kawe - Gigante\n"); strcat(stringj,"MC Hariel - Espancando Recalque (GR6 Explode) DJ Pedro\n"); strcat(stringj,"Hungria Hip Hop - Um Pedido\n"); strcat(stringj,"Childish\n"); strcat(stringj,"Internet Money - Lemonade\n"); strcat(stringj,"Pop Smoke - Enjoy Yourself ft. KAROL G\n"); strcat(stringj,"TA COM SAUDADE QUER TBT - MC Talibã e MC Rennan\n"); strcat(stringj,"MC Luan da Bs e MC Vitin LC - Bipolar\n"); strcat(stringj,"Grupo Revelação Oficial - Deixa Acontecer\n"); strcat(stringj,"Zé Neto e Cristiano - WHISKY E GELO\n"); strcat(stringj,"Aviões - Inquilina\n"); strcat(stringj,"Roses (Imanbek Remix)\n"); strcat(stringj,"Stereo Love - Original\n"); strcat(stringj,"Rap Das Armas\n"); strcat(stringj,"I'm an Albatraoz\n"); strcat(stringj,"Fogo na Babilonia\n"); strcat(stringj,"Cerveja de Garrafa - Atitude 67\n"); strcat(stringj,"Deixa Acontecer - Grupo Revelação\n"); strcat(stringj,"Cheia de Manias - Raça Negra"); return ShowPlayerDialog(playerid, D_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL - Playlist", stringj, "Tocar", "Fechar"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } if(strcmp(cmd, "/PararJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você parou de ouvir musica da JBL"); OuvindoMusica[playerid] = 0; StopAudioStreamForPlayer(playerid); return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } if(strcmp(cmd, "/DesligarJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { if(JBL[playerid] == -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não ligou sua JBL"); } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(InfoJBL[JblUsed][j], X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você desligou sua JBL"); DestroyDynamicObject(InfoJBL[JblUsed][j]); JBL[playerid] = -1; InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { StopAudioStreamForPlayer(i); OuvindoMusica[i] = 0; } } return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não está próximo da sua JBL"); } } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL não foi encontrada"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } return 0; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == D_JBL) { if(response) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Já tem uma JBL tocando nesse local"); } } } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == -1) { new String1[128], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(String1, sizeof(String1), "| JBL | O(A) Jogador(a) %s[%d] ligou sua JBL", Nome, playerid); SendClientMessageToAll(0xFFFF00FF, String1); ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]); GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7); JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0); InfoJBL[JblUsed][j] = JBL[playerid]; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); new strp[80]; format(strp, sizeof(strp), "{FF00FF}JBL {FFFFFF}Ligada\nJogador(a): %s[%d]", Nome, playerid); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0); Streamer_Update(playerid); switch(listitem) { case 0: { format(InfoJBL[StringMusica][j], 100, "http://51.161.13.49:8162/stream?icy=https"); } case 1: { format(InfoJBL[StringMusica][j], 100, "http://158.69.4.114:8150/stream?icy=https"); } case 2: { format(InfoJBL[StringMusica][j], 100, "http://95.216.153.146:8030/elflow128kbps.mp3?icy=https"); } case 3: { format(InfoJBL[StringMusica][j], 100, "http://192.95.37.228:8020/mp3?icy=https"); } case 4: { format(InfoJBL[StringMusica][j], 100, "http://51.89.173.53:8376/stream?icy=https"); } case 5: { format(InfoJBL[StringMusica][j], 100, "http://185.33.21.111/sertanejo_128?icy=https"); } case 6: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5fi1batjo85mo5v/TaRocheda.mp3"); } case 7: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/apiacgvhcu1dlsq/GaleraDoInterior.mp3"); } case 8: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xmzfao1b53v6nd2/SoBastaVoceMeLigar.mp3"); } case 9: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/ci73wbvt4auuco2/Baitaca.mp3"); } case 10: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/z03wo3a9e80q06r/Gigante.mp3"); } case 11: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xgwrfimts7yqyen/EspancandoRecalque.mp3"); } case 12: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/0rqa3f9w7qkjp50/UmPedido.mp3"); } case 13: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/wvuu1orf810khlk/Childish.mp3"); } case 14: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5xlcn4ra7cd400s/Lemonade.mp3"); } case 15: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/k68sqj0stkg8too/EnjoyYourself.mp3"); } case 16: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/2etlj6ozb7oqnec/TaComSaudadeQuerTBT.mp3"); } case 17: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/96pw316ogwzxff0/Bipolar.mp3"); } case 18: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/uyutzsqzl323crv/DeixaAcontecer.mp3"); } case 19: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/b9lhnkcz60fcoea/WhiskyeGelo.mp3"); } case 20: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/1go2fdn2xneav6g/Inquilina.mp3"); } case 21: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1s_DrW_8Hlqg0ALLsijYfq8_0kvhyK7oE&export=download"); } case 22: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1-9z8mEMYuevvVo-MMfP5hBx8yB4me3_y&export=download"); } case 23: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1a0P8xFLrk3lUUyyRk7_eYMfIQX4qYGSc&export=download"); } case 24: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1-_b0p6A3AyhdAKerLRn5stYUKoabH5CW&export=download"); } case 25: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1tfOXMi2B-ZOWBDihtNV2Ob2FzRqfKmrT&export=download"); } case 26: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1n5jo1VJmuVdFSXCf_oMRVEJ3Md0P59au&export=download"); } case 27: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1EomyjO7inB-FGN-Qcywyc1OBVH4gCyEE&export=download"); } case 28: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1URS2aeyC-egYhGFQSQ3E4tUNc-ShcKMq&export=download"); } } return 1; } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é possivel colocar uma JBL pois já tem muitas JBL's ligadas no servidor"); } } return 1; }
forward ChamadaJBL(); public ChamadaJBL() { for (new i = 0, g = GetPlayerPoolSize(); i <= g; i++) { if(IsPlayerConnected(i)) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(i, 20.0, XB, YB, ZB) && OuvindoMusica[i] == 0) { PlayAudioStreamForPlayer(i, InfoJBL[StringMusica][j], XB, YB, ZB, 20.0, 1); OuvindoMusica[i] = 120; break; } } } if(OuvindoMusica[i] > 0) { OuvindoMusica[i] --; } } } return 1; }
stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }
strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; }
new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
RE: SISTEMA DE JBL - GuiLopeS - 07/12/2023
(07/12/2023 21:28)EduzinMods Escreveu: Código PHP: ALGUEM CONSEGUE DEIXA ESSA FILTERSCRIPT EM CMD ? PQ TA EM STRCPM
#include <a_samp> #include <streamer>
#define MAX_JBL 30 //Máixmo de JBL's que podem está conectadas simultaneamente #define D_JBL 777 //ID da Dialog JBL
enum JBL_Info { Text3D:TextJBL[MAX_JBL], JblUsed[MAX_JBL], Float:xJBL[MAX_JBL], Float:yJBL[MAX_JBL], Float:zJBL[MAX_JBL], StringMusica[100] }; new InfoJBL[JBL_Info], JBL[MAX_PLAYERS], OuvindoMusica[MAX_PLAYERS];
public OnGameModeInit() { SetTimer("ChamadaJBL", 1000, true); for(new j; j < MAX_JBL; j++) { InfoJBL[JblUsed][j] = -1; InfoJBL[xJBL][j] = -1; InfoJBL[yJBL][j] = -1; InfoJBL[zJBL][j] = -1; InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0); } return 1; }
public OnPlayerConnect(playerid) { JBL[playerid] = -1; return 1; }
public OnPlayerDisconnect(playerid, reason) { if(JBL[playerid] > -1) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D } } DestroyDynamicObject(JBL[playerid]); JBL[playerid] = -1; } return 1; }
public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[128], idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/LigarJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { if(GetPlayerInterior(playerid) != 0) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é permitido usar esse comando em interiores"); } if(IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não pode usar esse comando em veículos"); } if(JBL[playerid] > -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL já está ligada em algum lugar"); } new stringj[1200]; strcat(stringj,"{FFFFFF}Funk\n"); strcat(stringj,"Trap\n"); strcat(stringj,"Reggae\n"); strcat(stringj,"Sertanejo\n"); strcat(stringj,"Funk Pesadao\n"); strcat(stringj,"Sertanejo 2"); strcat(stringj,"Os Barões da Pisadinha - Tá Rocheda\n"); strcat(stringj,"Os Barões da Pisadinha ft. Luan Estilizado - Galera do Interior\n"); strcat(stringj,"Os Barões da Pisadinha - Só Basta você me Ligar Ft. Xand Avião\n"); strcat(stringj,"Do Fundo da Grota - Baitaca\n"); strcat(stringj,"Kawe - Gigante\n"); strcat(stringj,"MC Hariel - Espancando Recalque (GR6 Explode) DJ Pedro\n"); strcat(stringj,"Hungria Hip Hop - Um Pedido\n"); strcat(stringj,"Childish\n"); strcat(stringj,"Internet Money - Lemonade\n"); strcat(stringj,"Pop Smoke - Enjoy Yourself ft. KAROL G\n"); strcat(stringj,"TA COM SAUDADE QUER TBT - MC Talibã e MC Rennan\n"); strcat(stringj,"MC Luan da Bs e MC Vitin LC - Bipolar\n"); strcat(stringj,"Grupo Revelação Oficial - Deixa Acontecer\n"); strcat(stringj,"Zé Neto e Cristiano - WHISKY E GELO\n"); strcat(stringj,"Aviões - Inquilina\n"); strcat(stringj,"Roses (Imanbek Remix)\n"); strcat(stringj,"Stereo Love - Original\n"); strcat(stringj,"Rap Das Armas\n"); strcat(stringj,"I'm an Albatraoz\n"); strcat(stringj,"Fogo na Babilonia\n"); strcat(stringj,"Cerveja de Garrafa - Atitude 67\n"); strcat(stringj,"Deixa Acontecer - Grupo Revelação\n"); strcat(stringj,"Cheia de Manias - Raça Negra"); return ShowPlayerDialog(playerid, D_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL - Playlist", stringj, "Tocar", "Fechar"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } if(strcmp(cmd, "/PararJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você parou de ouvir musica da JBL"); OuvindoMusica[playerid] = 0; StopAudioStreamForPlayer(playerid); return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } if(strcmp(cmd, "/DesligarJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { if(JBL[playerid] == -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não ligou sua JBL"); } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(InfoJBL[JblUsed][j], X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você desligou sua JBL"); DestroyDynamicObject(InfoJBL[JblUsed][j]); JBL[playerid] = -1; InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { StopAudioStreamForPlayer(i); OuvindoMusica[i] = 0; } } return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não está próximo da sua JBL"); } } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL não foi encontrada"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } return 0; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == D_JBL) { if(response) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Já tem uma JBL tocando nesse local"); } } } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == -1) { new String1[128], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(String1, sizeof(String1), "| JBL | O(A) Jogador(a) %s[%d] ligou sua JBL", Nome, playerid); SendClientMessageToAll(0xFFFF00FF, String1); ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]); GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7); JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0); InfoJBL[JblUsed][j] = JBL[playerid]; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); new strp[80]; format(strp, sizeof(strp), "{FF00FF}JBL {FFFFFF}Ligada\nJogador(a): %s[%d]", Nome, playerid); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0); Streamer_Update(playerid); switch(listitem) { case 0: { format(InfoJBL[StringMusica][j], 100, "http://51.161.13.49:8162/stream?icy=https"); } case 1: { format(InfoJBL[StringMusica][j], 100, "http://158.69.4.114:8150/stream?icy=https"); } case 2: { format(InfoJBL[StringMusica][j], 100, "http://95.216.153.146:8030/elflow128kbps.mp3?icy=https"); } case 3: { format(InfoJBL[StringMusica][j], 100, "http://192.95.37.228:8020/mp3?icy=https"); } case 4: { format(InfoJBL[StringMusica][j], 100, "http://51.89.173.53:8376/stream?icy=https"); } case 5: { format(InfoJBL[StringMusica][j], 100, "http://185.33.21.111/sertanejo_128?icy=https"); } case 6: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5fi1batjo85mo5v/TaRocheda.mp3"); } case 7: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/apiacgvhcu1dlsq/GaleraDoInterior.mp3"); } case 8: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xmzfao1b53v6nd2/SoBastaVoceMeLigar.mp3"); } case 9: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/ci73wbvt4auuco2/Baitaca.mp3"); } case 10: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/z03wo3a9e80q06r/Gigante.mp3"); } case 11: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xgwrfimts7yqyen/EspancandoRecalque.mp3"); } case 12: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/0rqa3f9w7qkjp50/UmPedido.mp3"); } case 13: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/wvuu1orf810khlk/Childish.mp3"); } case 14: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5xlcn4ra7cd400s/Lemonade.mp3"); } case 15: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/k68sqj0stkg8too/EnjoyYourself.mp3"); } case 16: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/2etlj6ozb7oqnec/TaComSaudadeQuerTBT.mp3"); } case 17: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/96pw316ogwzxff0/Bipolar.mp3"); } case 18: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/uyutzsqzl323crv/DeixaAcontecer.mp3"); } case 19: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/b9lhnkcz60fcoea/WhiskyeGelo.mp3"); } case 20: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/1go2fdn2xneav6g/Inquilina.mp3"); } case 21: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1s_DrW_8Hlqg0ALLsijYfq8_0kvhyK7oE&export=download"); } case 22: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1-9z8mEMYuevvVo-MMfP5hBx8yB4me3_y&export=download"); } case 23: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1a0P8xFLrk3lUUyyRk7_eYMfIQX4qYGSc&export=download"); } case 24: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1-_b0p6A3AyhdAKerLRn5stYUKoabH5CW&export=download"); } case 25: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1tfOXMi2B-ZOWBDihtNV2Ob2FzRqfKmrT&export=download"); } case 26: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1n5jo1VJmuVdFSXCf_oMRVEJ3Md0P59au&export=download"); } case 27: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1EomyjO7inB-FGN-Qcywyc1OBVH4gCyEE&export=download"); } case 28: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1URS2aeyC-egYhGFQSQ3E4tUNc-ShcKMq&export=download"); } } return 1; } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é possivel colocar uma JBL pois já tem muitas JBL's ligadas no servidor"); } } return 1; }
forward ChamadaJBL(); public ChamadaJBL() { for (new i = 0, g = GetPlayerPoolSize(); i <= g; i++) { if(IsPlayerConnected(i)) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(i, 20.0, XB, YB, ZB) && OuvindoMusica[i] == 0) { PlayAudioStreamForPlayer(i, InfoJBL[StringMusica][j], XB, YB, ZB, 20.0, 1); OuvindoMusica[i] = 120; break; } } } if(OuvindoMusica[i] > 0) { OuvindoMusica[i] --; } } } return 1; }
stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }
strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; }
new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Converti pra ti, na verdade era apenas trocar por exempo: "if(strcmp(cmd, "/PararJBL", true) == 0)" por "CMD:pararjbl (playerid, params[])", mas também retirei aquelas variaveis que não eram necessarias e a função "strtok" que não é necessária e/ou o sscanf pode substituir ela.
Código PHP: #include <a_samp> #include <streamer> #include <zcmd>
#define MAX_JBL 30 //Máixmo de JBL's que podem está conectadas simultaneamente #define D_JBL 777 //ID da Dialog JBL
enum JBL_Info { Text3D:TextJBL[MAX_JBL], JblUsed[MAX_JBL], Float:xJBL[MAX_JBL], Float:yJBL[MAX_JBL], Float:zJBL[MAX_JBL], StringMusica[100] }; new InfoJBL[JBL_Info], JBL[MAX_PLAYERS], OuvindoMusica[MAX_PLAYERS];
public OnGameModeInit() { SetTimer("ChamadaJBL", 1000, true); for(new j; j < MAX_JBL; j++) { InfoJBL[JblUsed][j] = -1; InfoJBL[xJBL][j] = -1; InfoJBL[yJBL][j] = -1; InfoJBL[zJBL][j] = -1; InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0); } return 1; }
public OnPlayerConnect(playerid) { JBL[playerid] = -1; return 1; }
public OnPlayerDisconnect(playerid, reason) { if(JBL[playerid] > -1) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D } } DestroyDynamicObject(JBL[playerid]); JBL[playerid] = -1; } return 1; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == D_JBL) { if(response) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Já tem uma JBL tocando nesse local"); } } } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == -1) { new String1[128], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(String1, sizeof(String1), "| JBL | O(A) Jogador(a) %s[%d] ligou sua JBL", Nome, playerid); SendClientMessageToAll(0xFFFF00FF, String1); ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]); GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7); JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0); InfoJBL[JblUsed][j] = JBL[playerid]; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); new strp[80]; format(strp, sizeof(strp), "{FF00FF}JBL {FFFFFF}Ligada\nJogador(a): %s[%d]", Nome, playerid); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0); Streamer_Update(playerid); switch(listitem) { case 0: { format(InfoJBL[StringMusica][j], 100, "http://51.161.13.49:8162/stream?icy=https"); } case 1: { format(InfoJBL[StringMusica][j], 100, "http://158.69.4.114:8150/stream?icy=https"); } case 2: { format(InfoJBL[StringMusica][j], 100, "http://95.216.153.146:8030/elflow128kbps.mp3?icy=https"); } case 3: { format(InfoJBL[StringMusica][j], 100, "http://192.95.37.228:8020/mp3?icy=https"); } case 4: { format(InfoJBL[StringMusica][j], 100, "http://51.89.173.53:8376/stream?icy=https"); } case 5: { format(InfoJBL[StringMusica][j], 100, "http://185.33.21.111/sertanejo_128?icy=https"); } case 6: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5fi1batjo85mo5v/TaRocheda.mp3"); } case 7: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/apiacgvhcu1dlsq/GaleraDoInterior.mp3"); } case 8: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xmzfao1b53v6nd2/SoBastaVoceMeLigar.mp3"); } case 9: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/ci73wbvt4auuco2/Baitaca.mp3"); } case 10: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/z03wo3a9e80q06r/Gigante.mp3"); } case 11: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xgwrfimts7yqyen/EspancandoRecalque.mp3"); } case 12: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/0rqa3f9w7qkjp50/UmPedido.mp3"); } case 13: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/wvuu1orf810khlk/Childish.mp3"); } case 14: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5xlcn4ra7cd400s/Lemonade.mp3"); } case 15: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/k68sqj0stkg8too/EnjoyYourself.mp3"); } case 16: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/2etlj6ozb7oqnec/TaComSaudadeQuerTBT.mp3"); } case 17: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/96pw316ogwzxff0/Bipolar.mp3"); } case 18: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/uyutzsqzl323crv/DeixaAcontecer.mp3"); } case 19: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/b9lhnkcz60fcoea/WhiskyeGelo.mp3"); } case 20: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/1go2fdn2xneav6g/Inquilina.mp3"); } case 21: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1s_DrW_8Hlqg0ALLsijYfq8_0kvhyK7oE&export=download"); } case 22: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1-9z8mEMYuevvVo-MMfP5hBx8yB4me3_y&export=download"); } case 23: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1a0P8xFLrk3lUUyyRk7_eYMfIQX4qYGSc&export=download"); } case 24: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1-_b0p6A3AyhdAKerLRn5stYUKoabH5CW&export=download"); } case 25: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1tfOXMi2B-ZOWBDihtNV2Ob2FzRqfKmrT&export=download"); } case 26: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1n5jo1VJmuVdFSXCf_oMRVEJ3Md0P59au&export=download"); } case 27: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1EomyjO7inB-FGN-Qcywyc1OBVH4gCyEE&export=download"); } case 28: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1URS2aeyC-egYhGFQSQ3E4tUNc-ShcKMq&export=download"); } } return 1; } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é possivel colocar uma JBL pois já tem muitas JBL's ligadas no servidor"); } } return 1; }
forward ChamadaJBL(); public ChamadaJBL() { for (new i = 0, g = GetPlayerPoolSize(); i <= g; i++) { if(IsPlayerConnected(i)) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(i, 20.0, XB, YB, ZB) && OuvindoMusica[i] == 0) { PlayAudioStreamForPlayer(i, InfoJBL[StringMusica][j], XB, YB, ZB, 20.0, 1); OuvindoMusica[i] = 120; break; } } } if(OuvindoMusica[i] > 0) { OuvindoMusica[i] --; } } } return 1; }
stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }
CMD:ligarjbl (playerid, params[]) { if(IsPlayerAdmin(playerid)) { if(GetPlayerInterior(playerid) != 0) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é permitido usar esse comando em interiores"); } if(IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não pode usar esse comando em veículos"); } if(JBL[playerid] > -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL já está ligada em algum lugar"); } new stringj[1200]; strcat(stringj,"{FFFFFF}Funk\n"); strcat(stringj,"Trap\n"); strcat(stringj,"Reggae\n"); strcat(stringj,"Sertanejo\n"); strcat(stringj,"Funk Pesadao\n"); strcat(stringj,"Sertanejo 2"); strcat(stringj,"Os Barões da Pisadinha - Tá Rocheda\n"); strcat(stringj,"Os Barões da Pisadinha ft. Luan Estilizado - Galera do Interior\n"); strcat(stringj,"Os Barões da Pisadinha - Só Basta você me Ligar Ft. Xand Avião\n"); strcat(stringj,"Do Fundo da Grota - Baitaca\n"); strcat(stringj,"Kawe - Gigante\n"); strcat(stringj,"MC Hariel - Espancando Recalque (GR6 Explode) DJ Pedro\n"); strcat(stringj,"Hungria Hip Hop - Um Pedido\n"); strcat(stringj,"Childish\n"); strcat(stringj,"Internet Money - Lemonade\n"); strcat(stringj,"Pop Smoke - Enjoy Yourself ft. KAROL G\n"); strcat(stringj,"TA COM SAUDADE QUER TBT - MC Talibã e MC Rennan\n"); strcat(stringj,"MC Luan da Bs e MC Vitin LC - Bipolar\n"); strcat(stringj,"Grupo Revelação Oficial - Deixa Acontecer\n"); strcat(stringj,"Zé Neto e Cristiano - WHISKY E GELO\n"); strcat(stringj,"Aviões - Inquilina\n"); strcat(stringj,"Roses (Imanbek Remix)\n"); strcat(stringj,"Stereo Love - Original\n"); strcat(stringj,"Rap Das Armas\n"); strcat(stringj,"I'm an Albatraoz\n"); strcat(stringj,"Fogo na Babilonia\n"); strcat(stringj,"Cerveja de Garrafa - Atitude 67\n"); strcat(stringj,"Deixa Acontecer - Grupo Revelação\n"); strcat(stringj,"Cheia de Manias - Raça Negra"); return ShowPlayerDialog(playerid, D_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL - Playlist", stringj, "Tocar", "Fechar"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } CMD:pararjbl (playerid, params[]) { if(IsPlayerAdmin(playerid)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você parou de ouvir musica da JBL"); OuvindoMusica[playerid] = 0; StopAudioStreamForPlayer(playerid); return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } CMD:desligarjbl (playerid, params[]) { if(IsPlayerAdmin(playerid)) { if(JBL[playerid] == -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não ligou sua JBL"); } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(InfoJBL[JblUsed][j], X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você desligou sua JBL"); DestroyDynamicObject(InfoJBL[JblUsed][j]); JBL[playerid] = -1; InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { StopAudioStreamForPlayer(i); OuvindoMusica[i] = 0; } } return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não está próximo da sua JBL"); } } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL não foi encontrada"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } }
Mas ta ai o codigo e outra coisa quando for postar um codigo coloque em em php ou em code fica melhor a visualização, se precisar de mais alguma coisa só falar.
Só um adendo, os comandos do ZCMD devem estar fora de qualquer callback.
Att: GuiLopeS
RE: SISTEMA DE JBL - Aranha - 07/12/2023
(07/12/2023 21:28)EduzinMods Escreveu: ALGUEM CONSEGUE DEIXA ESSA FILTERSCRIPT EM CMD ? PQ TA EM STRCPM
#include <a_samp>
#include <streamer>
#define MAX_JBL 30 //Máixmo de JBL's que podem está conectadas simultaneamente
#define D_JBL 777 //ID da Dialog JBL
enum JBL_Info
{
Text3D:TextJBL[MAX_JBL],
JblUsed[MAX_JBL],
Float:xJBL[MAX_JBL],
Float:yJBL[MAX_JBL],
Float:zJBL[MAX_JBL],
StringMusica[100]
};
new InfoJBL[JBL_Info], JBL[MAX_PLAYERS], OuvindoMusica[MAX_PLAYERS];
public OnGameModeInit()
{
SetTimer("ChamadaJBL", 1000, true);
for(new j; j < MAX_JBL; j++)
{
InfoJBL[JblUsed][j] = -1;
InfoJBL[xJBL][j] = -1; InfoJBL[yJBL][j] = -1; InfoJBL[zJBL][j] = -1;
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);
}
return 1;
}
public OnPlayerConnect(playerid)
{
JBL[playerid] = -1;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(JBL[playerid] > -1)
{
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] == JBL[playerid])
{
InfoJBL[JblUsed][j] = -1;
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D
}
}
DestroyDynamicObject(JBL[playerid]);
JBL[playerid] = -1;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[128], idx; cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/LigarJBL", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
if(GetPlayerInterior(playerid) != 0)
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é permitido usar esse comando em interiores");
}
if(IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não pode usar esse comando em veículos");
}
if(JBL[playerid] > -1)
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL já está ligada em algum lugar");
}
new stringj[1200];
strcat(stringj,"{FFFFFF}Funk\n");
strcat(stringj,"Trap\n");
strcat(stringj,"Reggae\n");
strcat(stringj,"Sertanejo\n");
strcat(stringj,"Funk Pesadao\n");
strcat(stringj,"Sertanejo 2");
strcat(stringj,"Os Barões da Pisadinha - Tá Rocheda\n");
strcat(stringj,"Os Barões da Pisadinha ft. Luan Estilizado - Galera do Interior\n");
strcat(stringj,"Os Barões da Pisadinha - Só Basta você me Ligar Ft. Xand Avião\n");
strcat(stringj,"Do Fundo da Grota - Baitaca\n");
strcat(stringj,"Kawe - Gigante\n");
strcat(stringj,"MC Hariel - Espancando Recalque (GR6 Explode) DJ Pedro\n");
strcat(stringj,"Hungria Hip Hop - Um Pedido\n");
strcat(stringj,"Childish\n");
strcat(stringj,"Internet Money - Lemonade\n");
strcat(stringj,"Pop Smoke - Enjoy Yourself ft. KAROL G\n");
strcat(stringj,"TA COM SAUDADE QUER TBT - MC Talibã e MC Rennan\n");
strcat(stringj,"MC Luan da Bs e MC Vitin LC - Bipolar\n");
strcat(stringj,"Grupo Revelação Oficial - Deixa Acontecer\n");
strcat(stringj,"Zé Neto e Cristiano - WHISKY E GELO\n");
strcat(stringj,"Aviões - Inquilina\n");
strcat(stringj,"Roses (Imanbek Remix)\n");
strcat(stringj,"Stereo Love - Original\n");
strcat(stringj,"Rap Das Armas\n");
strcat(stringj,"I'm an Albatraoz\n");
strcat(stringj,"Fogo na Babilonia\n");
strcat(stringj,"Cerveja de Garrafa - Atitude 67\n");
strcat(stringj,"Deixa Acontecer - Grupo Revelação\n");
strcat(stringj,"Cheia de Manias - Raça Negra");
return ShowPlayerDialog(playerid, D_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL - Playlist", stringj, "Tocar", "Fechar");
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão");
}
}
if(strcmp(cmd, "/PararJBL", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você parou de ouvir musica da JBL");
OuvindoMusica[playerid] = 0;
StopAudioStreamForPlayer(playerid);
return 1;
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão");
}
}
if(strcmp(cmd, "/DesligarJBL", true) == 0)
{
if(IsPlayerAdmin(playerid))
{
if(JBL[playerid] == -1)
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não ligou sua JBL");
}
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] == JBL[playerid])
{
new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(InfoJBL[JblUsed][j], X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z))
{
SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você desligou sua JBL");
DestroyDynamicObject(InfoJBL[JblUsed][j]);
JBL[playerid] = -1;
InfoJBL[JblUsed][j] = -1;
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
{
StopAudioStreamForPlayer(i);
OuvindoMusica[i] = 0;
}
}
return 1;
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não está próximo da sua JBL");
}
}
}
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL não foi encontrada");
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão");
}
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == D_JBL)
{
if(response)
{
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] > -1)
{
new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB);
if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB))
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Já tem uma JBL tocando nesse local");
}
}
}
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] == -1)
{
new String1[128], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome));
format(String1, sizeof(String1), "| JBL | O(A) Jogador(a) %s[%d] ligou sua JBL", Nome, playerid);
SendClientMessageToAll(0xFFFF00FF, String1);
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0);
InfoJBL[JblUsed][j] = JBL[playerid];
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
new strp[80]; format(strp, sizeof(strp), "{FF00FF}JBL {FFFFFF}Ligada\nJogador(a): %s[%d]", Nome, playerid);
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0);
Streamer_Update(playerid);
switch(listitem)
{
case 0:
{
format(InfoJBL[StringMusica][j], 100, "http://51.161.13.49:8162/stream?icy=https");
}
case 1:
{
format(InfoJBL[StringMusica][j], 100, "http://158.69.4.114:8150/stream?icy=https");
}
case 2:
{
format(InfoJBL[StringMusica][j], 100, "http://95.216.153.146:8030/elflow128kbps.mp3?icy=https");
}
case 3:
{
format(InfoJBL[StringMusica][j], 100, "http://192.95.37.228:8020/mp3?icy=https");
}
case 4:
{
format(InfoJBL[StringMusica][j], 100, "http://51.89.173.53:8376/stream?icy=https");
}
case 5:
{
format(InfoJBL[StringMusica][j], 100, "http://185.33.21.111/sertanejo_128?icy=https");
}
case 6:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5fi1batjo85mo5v/TaRocheda.mp3");
}
case 7:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/apiacgvhcu1dlsq/GaleraDoInterior.mp3");
}
case 8:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xmzfao1b53v6nd2/SoBastaVoceMeLigar.mp3");
}
case 9:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/ci73wbvt4auuco2/Baitaca.mp3");
}
case 10:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/z03wo3a9e80q06r/Gigante.mp3");
}
case 11:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xgwrfimts7yqyen/EspancandoRecalque.mp3");
}
case 12:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/0rqa3f9w7qkjp50/UmPedido.mp3");
}
case 13:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/wvuu1orf810khlk/Childish.mp3");
}
case 14:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5xlcn4ra7cd400s/Lemonade.mp3");
}
case 15:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/k68sqj0stkg8too/EnjoyYourself.mp3");
}
case 16:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/2etlj6ozb7oqnec/TaComSaudadeQuerTBT.mp3");
}
case 17:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/96pw316ogwzxff0/Bipolar.mp3");
}
case 18:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/uyutzsqzl323crv/DeixaAcontecer.mp3");
}
case 19:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/b9lhnkcz60fcoea/WhiskyeGelo.mp3");
}
case 20:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/1go2fdn2xneav6g/Inquilina.mp3");
}
case 21:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1s_DrW_8Hlqg0ALLsijYfq8_0kvhyK7oE&export=download");
}
case 22:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1-9z8mEMYuevvVo-MMfP5hBx8yB4me3_y&export=download");
}
case 23:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1a0P8xFLrk3lUUyyRk7_eYMfIQX4qYGSc&export=download");
}
case 24:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1-_b0p6A3AyhdAKerLRn5stYUKoabH5CW&export=download");
}
case 25:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1tfOXMi2B-ZOWBDihtNV2Ob2FzRqfKmrT&export=download");
}
case 26:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1n5jo1VJmuVdFSXCf_oMRVEJ3Md0P59au&export=download");
}
case 27:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1EomyjO7inB-FGN-Qcywyc1OBVH4gCyEE&export=download");
}
case 28:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1URS2aeyC-egYhGFQSQ3E4tUNc-ShcKMq&export=download");
}
}
return 1;
}
}
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é possivel colocar uma JBL pois já tem muitas JBL's ligadas no servidor");
}
}
return 1;
}
forward ChamadaJBL();
public ChamadaJBL()
{
for (new i = 0, g = GetPlayerPoolSize(); i <= g; i++)
{
if(IsPlayerConnected(i))
{
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] > -1)
{
new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB);
if(IsPlayerInRangeOfPoint(i, 20.0, XB, YB, ZB) && OuvindoMusica[i] == 0)
{
PlayAudioStreamForPlayer(i, InfoJBL[StringMusica][j], XB, YB, ZB, 20.0, 1); OuvindoMusica[i] = 120;
break;
}
}
}
if(OuvindoMusica[i] > 0)
{
OuvindoMusica[i] --;
}
}
}
return 1;
}
stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new Float:a;
GetPlayerPos(playerid, x, y, a);
GetPlayerFacingAngle(playerid, a);
if (GetPlayerVehicleID(playerid)) {
GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
}
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
Código: #include <a_samp>
#include <streamer>
#include <zcmd>
#define MAX_JBL 30 //Máixmo de JBL's que podem está conectadas simultaneamente
#define D_JBL 777 //ID da Dialog JBL
enum JBL_Info
{
Text3D:TextJBL[MAX_JBL],
JblUsed[MAX_JBL],
Float:xJBL[MAX_JBL],
Float:yJBL[MAX_JBL],
Float:zJBL[MAX_JBL],
StringMusica[100]
};
new InfoJBL[JBL_Info], JBL[MAX_PLAYERS], OuvindoMusica[MAX_PLAYERS];
public OnGameModeInit()
{
SetTimer("ChamadaJBL", 1000, true);
for(new j; j < MAX_JBL; j++)
{
InfoJBL[JblUsed][j] = -1;
InfoJBL[xJBL][j] = -1; InfoJBL[yJBL][j] = -1; InfoJBL[zJBL][j] = -1;
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);
}
return 1;
}
public OnPlayerConnect(playerid)
{
JBL[playerid] = -1;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(JBL[playerid] > -1)
{
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] == JBL[playerid])
{
InfoJBL[JblUsed][j] = -1;
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D
}
}
DestroyDynamicObject(JBL[playerid]);
JBL[playerid] = -1;
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == D_JBL)
{
if(response)
{
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] > -1)
{
new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB);
if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB))
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Já tem uma JBL tocando nesse local");
}
}
}
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] == -1)
{
new String1[128], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome));
format(String1, sizeof(String1), "| JBL | O(A) Jogador(a) %s[%d] ligou sua JBL", Nome, playerid);
SendClientMessageToAll(0xFFFF00FF, String1);
ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0);
GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]);
GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7);
JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0);
InfoJBL[JblUsed][j] = JBL[playerid];
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
new strp[80]; format(strp, sizeof(strp), "{FF00FF}JBL {FFFFFF}Ligada\nJogador(a): %s[%d]", Nome, playerid);
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0);
Streamer_Update(playerid);
switch(listitem)
{
case 0:
{
format(InfoJBL[StringMusica][j], 100, "http://51.161.13.49:8162/stream?icy=https");
}
case 1:
{
format(InfoJBL[StringMusica][j], 100, "http://158.69.4.114:8150/stream?icy=https");
}
case 2:
{
format(InfoJBL[StringMusica][j], 100, "http://95.216.153.146:8030/elflow128kbps.mp3?icy=https");
}
case 3:
{
format(InfoJBL[StringMusica][j], 100, "http://192.95.37.228:8020/mp3?icy=https");
}
case 4:
{
format(InfoJBL[StringMusica][j], 100, "http://51.89.173.53:8376/stream?icy=https");
}
case 5:
{
format(InfoJBL[StringMusica][j], 100, "http://185.33.21.111/sertanejo_128?icy=https");
}
case 6:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5fi1batjo85mo5v/TaRocheda.mp3");
}
case 7:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/apiacgvhcu1dlsq/GaleraDoInterior.mp3");
}
case 8:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xmzfao1b53v6nd2/SoBastaVoceMeLigar.mp3");
}
case 9:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/ci73wbvt4auuco2/Baitaca.mp3");
}
case 10:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/z03wo3a9e80q06r/Gigante.mp3");
}
case 11:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xgwrfimts7yqyen/EspancandoRecalque.mp3");
}
case 12:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/0rqa3f9w7qkjp50/UmPedido.mp3");
}
case 13:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/wvuu1orf810khlk/Childish.mp3");
}
case 14:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5xlcn4ra7cd400s/Lemonade.mp3");
}
case 15:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/k68sqj0stkg8too/EnjoyYourself.mp3");
}
case 16:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/2etlj6ozb7oqnec/TaComSaudadeQuerTBT.mp3");
}
case 17:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/96pw316ogwzxff0/Bipolar.mp3");
}
case 18:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/uyutzsqzl323crv/DeixaAcontecer.mp3");
}
case 19:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/b9lhnkcz60fcoea/WhiskyeGelo.mp3");
}
case 20:
{
format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/1go2fdn2xneav6g/Inquilina.mp3");
}
case 21:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1s_DrW_8Hlqg0ALLsijYfq8_0kvhyK7oE&export=download");
}
case 22:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1-9z8mEMYuevvVo-MMfP5hBx8yB4me3_y&export=download");
}
case 23:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1a0P8xFLrk3lUUyyRk7_eYMfIQX4qYGSc&export=download");
}
case 24:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1-_b0p6A3AyhdAKerLRn5stYUKoabH5CW&export=download");
}
case 25:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1tfOXMi2B-ZOWBDihtNV2Ob2FzRqfKmrT&export=download");
}
case 26:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1n5jo1VJmuVdFSXCf_oMRVEJ3Md0P59au&export=download");
}
case 27:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1EomyjO7inB-FGN-Qcywyc1OBVH4gCyEE&export=download");
}
case 28:
{
format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1URS2aeyC-egYhGFQSQ3E4tUNc-ShcKMq&export=download");
}
}
return 1;
}
}
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é possivel colocar uma JBL pois já tem muitas JBL's ligadas no servidor");
}
}
return 1;
}
forward ChamadaJBL();
public ChamadaJBL()
{
for (new i = 0, g = GetPlayerPoolSize(); i <= g; i++)
{
if(IsPlayerConnected(i))
{
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] > -1)
{
new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB);
if(IsPlayerInRangeOfPoint(i, 20.0, XB, YB, ZB) && OuvindoMusica[i] == 0)
{
PlayAudioStreamForPlayer(i, InfoJBL[StringMusica][j], XB, YB, ZB, 20.0, 1); OuvindoMusica[i] = 120;
break;
}
}
}
if(OuvindoMusica[i] > 0)
{
OuvindoMusica[i] --;
}
}
}
return 1;
}
stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
{
new Float:a;
GetPlayerPos(playerid, x, y, a);
GetPlayerFacingAngle(playerid, a);
if (GetPlayerVehicleID(playerid)) {
GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
}
x += (distance * floatsin(-a, degrees));
y += (distance * floatcos(-a, degrees));
}
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
CMD:ligarjbl(playerid)
{
if(IsPlayerAdmin(playerid))
{
if(GetPlayerInterior(playerid) != 0)
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é permitido usar esse comando em interiores");
}
if(IsPlayerInAnyVehicle(playerid))
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não pode usar esse comando em veículos");
}
if(JBL[playerid] > -1)
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL já está ligada em algum lugar");
}
new stringj[1200];
strcat(stringj,"{FFFFFF}Funk\n");
strcat(stringj,"Trap\n");
strcat(stringj,"Reggae\n");
strcat(stringj,"Sertanejo\n");
strcat(stringj,"Funk Pesadao\n");
strcat(stringj,"Sertanejo 2");
strcat(stringj,"Os Barões da Pisadinha - Tá Rocheda\n");
strcat(stringj,"Os Barões da Pisadinha ft. Luan Estilizado - Galera do Interior\n");
strcat(stringj,"Os Barões da Pisadinha - Só Basta você me Ligar Ft. Xand Avião\n");
strcat(stringj,"Do Fundo da Grota - Baitaca\n");
strcat(stringj,"Kawe - Gigante\n");
strcat(stringj,"MC Hariel - Espancando Recalque (GR6 Explode) DJ Pedro\n");
strcat(stringj,"Hungria Hip Hop - Um Pedido\n");
strcat(stringj,"Childish\n");
strcat(stringj,"Internet Money - Lemonade\n");
strcat(stringj,"Pop Smoke - Enjoy Yourself ft. KAROL G\n");
strcat(stringj,"TA COM SAUDADE QUER TBT - MC Talibã e MC Rennan\n");
strcat(stringj,"MC Luan da Bs e MC Vitin LC - Bipolar\n");
strcat(stringj,"Grupo Revelação Oficial - Deixa Acontecer\n");
strcat(stringj,"Zé Neto e Cristiano - WHISKY E GELO\n");
strcat(stringj,"Aviões - Inquilina\n");
strcat(stringj,"Roses (Imanbek Remix)\n");
strcat(stringj,"Stereo Love - Original\n");
strcat(stringj,"Rap Das Armas\n");
strcat(stringj,"I'm an Albatraoz\n");
strcat(stringj,"Fogo na Babilonia\n");
strcat(stringj,"Cerveja de Garrafa - Atitude 67\n");
strcat(stringj,"Deixa Acontecer - Grupo Revelação\n");
strcat(stringj,"Cheia de Manias - Raça Negra");
return ShowPlayerDialog(playerid, D_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL - Playlist", stringj, "Tocar", "Fechar");
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão");
}
return 1;
}
CMD:pararjbl(playerid)
{
if(IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você parou de ouvir musica da JBL");
OuvindoMusica[playerid] = 0;
StopAudioStreamForPlayer(playerid);
return 1;
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão");
}
return 1;
}
CMD:DesligarJBL(playerid)
{
if(IsPlayerAdmin(playerid))
{
if(JBL[playerid] == -1)
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não ligou sua JBL");
}
for(new j; j < MAX_JBL; j++)
{
if(InfoJBL[JblUsed][j] == JBL[playerid])
{
new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(InfoJBL[JblUsed][j], X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z))
{
SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você desligou sua JBL");
DestroyDynamicObject(InfoJBL[JblUsed][j]);
JBL[playerid] = -1;
InfoJBL[JblUsed][j] = -1;
DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]);
InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z))
{
StopAudioStreamForPlayer(i);
OuvindoMusica[i] = 0;
}
}
return 1;
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não está próximo da sua JBL");
}
}
}
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL não foi encontrada");
}
else
{
return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão");
}
return 1;
}
RE: SISTEMA DE JBL - White_Blue - 08/12/2023
(07/12/2023 21:28)EduzinMods Escreveu: ALGUEM CONSEGUE DEIXA ESSA FILTERSCRIPT EM CMD ? PQ TA EM STRCPM
Código PHP: #include <a_samp> #include <streamer>
#define MAX_JBL 30 //Máixmo de JBL's que podem está conectadas simultaneamente #define D_JBL 777 //ID da Dialog JBL
enum JBL_Info { Text3D:TextJBL[MAX_JBL], JblUsed[MAX_JBL], Float:xJBL[MAX_JBL], Float:yJBL[MAX_JBL], Float:zJBL[MAX_JBL], StringMusica[100] }; new InfoJBL[JBL_Info], JBL[MAX_PLAYERS], OuvindoMusica[MAX_PLAYERS];
public OnGameModeInit() { SetTimer("ChamadaJBL", 1000, true); for(new j; j < MAX_JBL; j++) { InfoJBL[JblUsed][j] = -1; InfoJBL[xJBL][j] = -1; InfoJBL[yJBL][j] = -1; InfoJBL[zJBL][j] = -1; InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0); } return 1; }
public OnPlayerConnect(playerid) { JBL[playerid] = -1; return 1; }
public OnPlayerDisconnect(playerid, reason) { if(JBL[playerid] > -1) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D } } DestroyDynamicObject(JBL[playerid]); JBL[playerid] = -1; } return 1; }
public OnPlayerCommandText(playerid, cmdtext[]) { new cmd[128], idx; cmd = strtok(cmdtext, idx); if(strcmp(cmd, "/LigarJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { if(GetPlayerInterior(playerid) != 0) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é permitido usar esse comando em interiores"); } if(IsPlayerInAnyVehicle(playerid)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não pode usar esse comando em veículos"); } if(JBL[playerid] > -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL já está ligada em algum lugar"); } new stringj[1200]; strcat(stringj,"{FFFFFF}Funk\n"); strcat(stringj,"Trap\n"); strcat(stringj,"Reggae\n"); strcat(stringj,"Sertanejo\n"); strcat(stringj,"Funk Pesadao\n"); strcat(stringj,"Sertanejo 2"); strcat(stringj,"Os Barões da Pisadinha - Tá Rocheda\n"); strcat(stringj,"Os Barões da Pisadinha ft. Luan Estilizado - Galera do Interior\n"); strcat(stringj,"Os Barões da Pisadinha - Só Basta você me Ligar Ft. Xand Avião\n"); strcat(stringj,"Do Fundo da Grota - Baitaca\n"); strcat(stringj,"Kawe - Gigante\n"); strcat(stringj,"MC Hariel - Espancando Recalque (GR6 Explode) DJ Pedro\n"); strcat(stringj,"Hungria Hip Hop - Um Pedido\n"); strcat(stringj,"Childish\n"); strcat(stringj,"Internet Money - Lemonade\n"); strcat(stringj,"Pop Smoke - Enjoy Yourself ft. KAROL G\n"); strcat(stringj,"TA COM SAUDADE QUER TBT - MC Talibã e MC Rennan\n"); strcat(stringj,"MC Luan da Bs e MC Vitin LC - Bipolar\n"); strcat(stringj,"Grupo Revelação Oficial - Deixa Acontecer\n"); strcat(stringj,"Zé Neto e Cristiano - WHISKY E GELO\n"); strcat(stringj,"Aviões - Inquilina\n"); strcat(stringj,"Roses (Imanbek Remix)\n"); strcat(stringj,"Stereo Love - Original\n"); strcat(stringj,"Rap Das Armas\n"); strcat(stringj,"I'm an Albatraoz\n"); strcat(stringj,"Fogo na Babilonia\n"); strcat(stringj,"Cerveja de Garrafa - Atitude 67\n"); strcat(stringj,"Deixa Acontecer - Grupo Revelação\n"); strcat(stringj,"Cheia de Manias - Raça Negra"); return ShowPlayerDialog(playerid, D_JBL, DIALOG_STYLE_LIST, "{FFFFFF}JBL - Playlist", stringj, "Tocar", "Fechar"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } if(strcmp(cmd, "/PararJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você parou de ouvir musica da JBL"); OuvindoMusica[playerid] = 0; StopAudioStreamForPlayer(playerid); return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } if(strcmp(cmd, "/DesligarJBL", true) == 0) { if(IsPlayerAdmin(playerid)) { if(JBL[playerid] == -1) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não ligou sua JBL"); } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == JBL[playerid]) { new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(InfoJBL[JblUsed][j], X, Y, Z); if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z)) { SendClientMessage(playerid, 0xFFFF00FF, "| INFO | Você desligou sua JBL"); DestroyDynamicObject(InfoJBL[JblUsed][j]); JBL[playerid] = -1; InfoJBL[JblUsed][j] = -1; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel("{FFFFFF}JBL", -1, -999.0, -98383.3, -9292.0, 10.0);//Text3D for(new i; i < MAX_PLAYERS; i++) { if(IsPlayerInRangeOfPoint(i, 20.0, X, Y, Z)) { StopAudioStreamForPlayer(i); OuvindoMusica[i] = 0; } } return 1; } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não está próximo da sua JBL"); } } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Sua JBL não foi encontrada"); } else { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Você não tem permissão"); } } return 0; }
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == D_JBL) { if(response) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(playerid, 20.0, XB, YB, ZB)) { return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Já tem uma JBL tocando nesse local"); } } } for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] == -1) { new String1[128], Nome[MAX_PLAYER_NAME]; GetPlayerName(playerid, Nome, sizeof(Nome)); format(String1, sizeof(String1), "| JBL | O(A) Jogador(a) %s[%d] ligou sua JBL", Nome, playerid); SendClientMessageToAll(0xFFFF00FF, String1); ApplyAnimation(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0); GetPlayerPos(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]); GetXYInFrontOfPlayer(playerid, InfoJBL[xJBL][j], InfoJBL[yJBL][j], 0.7); JBL[playerid] = CreateDynamicObject(2226, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j] - 0.9, 0.0, 0, 0); InfoJBL[JblUsed][j] = JBL[playerid]; DestroyDynamic3DTextLabel(InfoJBL[TextJBL][j]); new strp[80]; format(strp, sizeof(strp), "{FF00FF}JBL {FFFFFF}Ligada\nJogador(a): %s[%d]", Nome, playerid); InfoJBL[TextJBL][j] = CreateDynamic3DTextLabel(strp, -1, InfoJBL[xJBL][j], InfoJBL[yJBL][j], InfoJBL[zJBL][j]-0.5, 10.0); Streamer_Update(playerid); switch(listitem) { case 0: { format(InfoJBL[StringMusica][j], 100, "http://51.161.13.49:8162/stream?icy=https"); } case 1: { format(InfoJBL[StringMusica][j], 100, "http://158.69.4.114:8150/stream?icy=https"); } case 2: { format(InfoJBL[StringMusica][j], 100, "http://95.216.153.146:8030/elflow128kbps.mp3?icy=https"); } case 3: { format(InfoJBL[StringMusica][j], 100, "http://192.95.37.228:8020/mp3?icy=https"); } case 4: { format(InfoJBL[StringMusica][j], 100, "http://51.89.173.53:8376/stream?icy=https"); } case 5: { format(InfoJBL[StringMusica][j], 100, "http://185.33.21.111/sertanejo_128?icy=https"); } case 6: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5fi1batjo85mo5v/TaRocheda.mp3"); } case 7: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/apiacgvhcu1dlsq/GaleraDoInterior.mp3"); } case 8: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xmzfao1b53v6nd2/SoBastaVoceMeLigar.mp3"); } case 9: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/ci73wbvt4auuco2/Baitaca.mp3"); } case 10: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/z03wo3a9e80q06r/Gigante.mp3"); } case 11: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/xgwrfimts7yqyen/EspancandoRecalque.mp3"); } case 12: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/0rqa3f9w7qkjp50/UmPedido.mp3"); } case 13: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/wvuu1orf810khlk/Childish.mp3"); } case 14: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/5xlcn4ra7cd400s/Lemonade.mp3"); } case 15: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/k68sqj0stkg8too/EnjoyYourself.mp3"); } case 16: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/2etlj6ozb7oqnec/TaComSaudadeQuerTBT.mp3"); } case 17: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/96pw316ogwzxff0/Bipolar.mp3"); } case 18: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/uyutzsqzl323crv/DeixaAcontecer.mp3"); } case 19: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/b9lhnkcz60fcoea/WhiskyeGelo.mp3"); } case 20: { format(InfoJBL[StringMusica][j], 100, "https://dl.dropboxusercontent.com/s/1go2fdn2xneav6g/Inquilina.mp3"); } case 21: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1s_DrW_8Hlqg0ALLsijYfq8_0kvhyK7oE&export=download"); } case 22: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1-9z8mEMYuevvVo-MMfP5hBx8yB4me3_y&export=download"); } case 23: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1a0P8xFLrk3lUUyyRk7_eYMfIQX4qYGSc&export=download"); } case 24: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1-_b0p6A3AyhdAKerLRn5stYUKoabH5CW&export=download"); } case 25: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1tfOXMi2B-ZOWBDihtNV2Ob2FzRqfKmrT&export=download"); } case 26: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/0/uc?id=1n5jo1VJmuVdFSXCf_oMRVEJ3Md0P59au&export=download"); } case 27: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/1/uc?id=1EomyjO7inB-FGN-Qcywyc1OBVH4gCyEE&export=download"); } case 28: { format(InfoJBL[StringMusica][j], 100, "https://drive.google.com/u/2/uc?id=1URS2aeyC-egYhGFQSQ3E4tUNc-ShcKMq&export=download"); } } return 1; } } return SendClientMessage(playerid, 0xFF4500FF, "| ERRO | Não é possivel colocar uma JBL pois já tem muitas JBL's ligadas no servidor"); } } return 1; }
forward ChamadaJBL(); public ChamadaJBL() { for (new i = 0, g = GetPlayerPoolSize(); i <= g; i++) { if(IsPlayerConnected(i)) { for(new j; j < MAX_JBL; j++) { if(InfoJBL[JblUsed][j] > -1) { new Float:XB, Float:YB, Float:ZB; GetDynamicObjectPos(InfoJBL[JblUsed][j], XB, YB, ZB); if(IsPlayerInRangeOfPoint(i, 20.0, XB, YB, ZB) && OuvindoMusica[i] == 0) { PlayAudioStreamForPlayer(i, InfoJBL[StringMusica][j], XB, YB, ZB, 20.0, 1); OuvindoMusica[i] = 120; break; } } } if(OuvindoMusica[i] > 0) { OuvindoMusica[i] --; } } } return 1; }
stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance) { new Float:a; GetPlayerPos(playerid, x, y, a); GetPlayerFacingAngle(playerid, a); if (GetPlayerVehicleID(playerid)) { GetVehicleZAngle(GetPlayerVehicleID(playerid), a); } x += (distance * floatsin(-a, degrees)); y += (distance * floatcos(-a, degrees)); }
strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string[index] <= ' ')) { index++; }
new offset = index; new result[20]; while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Basta pegar o código do comando e usar sscanf e seu processador de comando.
|