//COMANDOS CMD:down(playerid) { if(IsPlayerInRangeOfPoint(playerid, 2.5, -801.2491,-389.6520,1402.1588)) SetPlayerPos(playerid,2268.0032,2448.8892,3.5313); SetPlayerInterior(playerid, 0); SetPlayerInterior(playerid, 5); SetPlayerVirtualWorldEx(playerid, 911); return 1; } CMD:up(playerid) { if(IsPlayerInRangeOfPoint(playerid, 2.5, 2268.0032,2448.8892,3.5313)) SetPlayerPos(playerid,-801.2173,-389.4684,1402.1588); SetPlayerInterior(playerid, 5); SetPlayerVirtualWorldEx(playerid, 2); return 1; } //comandos de teste a cima 911 CMD:reconnectmysql(playerid) { if(IsPlayerAdminLevelOK(playerid, 1)) { mysql_reconnect(conn); if(mysql_errno() == 0) { SysMsg(playerid, "MySQL re-connected."); } } else return SysMsg(playerid, CMDFMSG); return true; } CMD:register(playerid) { if(Logged{playerid}) return SysMsg(playerid,"Você já está logado; você não precisa se registrar."); SysMsg(playerid, "O registro só está disponível on-line em greensiderp.com/register."); return true; } CMD:versao(playerid) { SysMsgF(playerid, "[Game Mode] %s - %s (/creditos)", GAMEMODE, VERSION); new hours, minutes, days, uptime; uptime = gServerUptime; if(uptime > 1440) { do { uptime -= 1440; days += 1; } while(uptime > 1440); } if(uptime > 60) { do { uptime -= 60; hours += 1; } while(uptime > 60); } minutes = uptime; SysMsgF(playerid, "Tempo de serviço do servidor: %i dias %i horas e %i minutos", days, hours, minutes); SysMsg(playerid, "Ver /statistics para algumas estatísticas interessantes relacionadas ao servidor!"); return true; } CMD:statistics(playerid) { if(!Logged{playerid}) return true; #define query1 "SELECT COUNT(id) FROM masters" #define query2 "SELECT COUNT(id) FROM players" #define query3 "SELECT players FROM ucpplayerscron ORDER BY players DESC LIMIT 1" #define query4 "SELECT COUNT(id) FROM houses" #define query5 "SELECT COUNT(id) FROM bizz" #define query6 "SELECT COUNT(id) FROM hfurniture" mysql_format(conn, mquery, sizeof(mquery), "SELECT (%s) AS macount, (%s) AS charcount, (%s) AS highestplayercount, (%s) AS housecount, (%s) AS bizzcount, (%s) AS furncount", query1, query2, query3, query4, query5, query6); mysql_pquery(conn, mquery, "LoadStatisticsNumbers", "i", playerid); return true; } GREENSIDE::LoadStatisticsNumbers(playerid) { if(!cache_num_rows()) return SysMsg(playerid, "Error."); gstr[0] = EOS; #define MSG1 "Contagem de jogador mais alta: {FFFFFF}%i{A9C4E4}\nTotal de contas Master: {FFFFFF}%s{A9C4E4}\nTotal Character criados: {FFFFFF}%s{A9C4E4}\nTotal de Casas: {FFFFFF}%s{A9C4E4}\nTotal Negocio: {FFFFFF}%i{A9C4E4}\n" #define MSG2 "Total de mensagens de bate-papo enviadas: {FFFFFF}%s{A9C4E4}\nTotal de comandos enviados: {FFFFFF}%s{A9C4E4}\nTotal de /me feitos: {FFFFFF}%s{A9C4E4}\n\n" #define MSG3 "Estatísticas do plugin de streamer:\nTotal Objetos: {FFFFFF}%s{A9C4E4}\nTotal de Map Icons: {FFFFFF}%i{A9C4E4}\nTotal de Pickups: {FFFFFF}%s{A9C4E4}\nTotal de 3D Text labels: {FFFFFF}%s{A9C4E4}\n\nObjects visiveis para você: {FFFFFF}%i{A9C4E4}" new pcount, macount, charcount, housecount, bizzcount, furncount; pcount = cache_get_field_content_int(0, "highestplayercount"); macount = cache_get_field_content_int(0, "macount"); charcount = cache_get_field_content_int(0, "charcount"); housecount = cache_get_field_content_int(0, "housecount"); bizzcount = cache_get_field_content_int(0, "bizzcount"); furncount = cache_get_field_content_int(0, "furncount"); format(sgstr, sizeof(sgstr), MSG1, pcount, format_cash(macount), format_cash(charcount), format_cash(housecount), bizzcount); strcat(gstr, sgstr); format(tgstr, sizeof(tgstr), "Total Furniture: {FFFFFF}%s{A9C4E4}\n\n", format_cash(furncount)); strcat(gstr, tgstr); format(sgstr, sizeof(sgstr), MSG2, format_cash(totalchat), format_cash(totalcmds), format_cash(totalmes)); strcat(gstr, sgstr); format(sgstr, sizeof(sgstr), MSG3, format_cash(CountDynamicObjects()), CountDynamicMapIcons(), format_cash(CountDynamicPickups()), format_cash(CountDynamic3DTextLabels()), Streamer_CountVisibleItems(playerid, STREAMER_TYPE_OBJECT)); strcat(gstr, sgstr); Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Stats do servidor", gstr, "Fechar", ""); return true; } CMD:uptime(playerid) return cmd_versao(playerid); /*CMD:credits(playerid) { if(!Logged{playerid}) return true; SendClientMessage(playerid, COLOR_WHITE, " "); SendClientMessage(playerid, COLOR_LIGHTRED, "Red County Roleplay"); SendClientMessage(playerid, COLOR_WHITE, "Coded by Alec Rae | 2009-2013 | alec@redcountyrp.com"); SendClientMessage(playerid, COLOR_WHITE, "Coded by Tommy Breshears | 2013 - Present"); SendClientMessage(playerid, COLOR_WHITE, "Coded with the assistance of Adam Booth | 2013 - 2014"); SendClientMessage(playerid, COLOR_WHITE, "Special thanks to Lionel, BigD, Peach and MP2 for certain script additions."); SendClientMessage(playerid, COLOR_WHITE, "Red County Roleplay makes use of plugins and libraries created by Incognito, Y_Less, MP2, BlueG and Zeex"); SendClientMessage(playerid, COLOR_WHITE, " "); return true; } CMD:changelog(playerid) { if(!Logged{playerid}) return true; new changelog[3200]; strcat(changelog, "{FF0000}2.3.11 R1 - 1 de junho de 2017{FFFFFF}\n"); strcat(changelog, "/cinfo now shows phone signal.\n"); strcat(changelog, "Added an engine start delay for helicopters/planes.\n"); strcat(changelog, "Personal vehicles with their windows rolled down can now be unlocked by anybody.\n"); strcat(changelog, "The type of fuel in a player's fuel can will now show in /inventario.\n"); strcat(changelog, "Changed the warehouse interior to a blank space with only one wall object at the entrance. This will allow users to add bottom floors to their homes and etc.\n"); strcat(changelog, "Fixed a bug where certain vehicle mods couldn't be removed with /removemods.\n"); strcat(changelog, "Fixed a bug where /stopguestfurnish would save incorrect values.\n"); strcat(changelog, "Fixed a bug where cancelling the repositioning of a clothing object wouldn't reapply its color if one was assigned.\n"); strcat(changelog, "Fixed a bug where incorrect businesses were marked as 'Mall' businesses.\n"); strcat(changelog, "Fixed some issues where the pizza vehicles could be put into repair garages, causing them to be removed permanently.\n"); strcat(changelog, "Fixed a handful of issues with the impound system.\n"); strcat(changelog, "Fixed a bug where being put in jail could send you to prison after a relog.\n"); strcat(changelog, "Fixed bugs that prevented the engine oil alert textdraw from appearing.\n"); strcat(changelog, "Fixed /resetvest once more.\n\n"); strcat(changelog, "{FF0000}2.3.11 - May 12th 2016{FFFFFF}\n"); strcat(changelog, "Phone SMS history will now show a list of numbers players have sent/received texts to/from.\n"); strcat(changelog, "Added pagination to SMS history lists and modified the list slightly.\n"); strcat(changelog, "Guest furnish access no longer disappears after logging out and must now be manually revoked.\n"); strcat(changelog, "Internally remade phone contacts and increased the contacts limit based on donator level.\n"); strcat(changelog, "Executing a downed player now requires one headshot instead of two.\n"); strcat(changelog, "Flats will no longer show up in the unowned property list.\n"); strcat(changelog, "Trunks can now be used on motorbikes with very limited weapon storage space.\n"); strcat(changelog, "Fixed a bug where taxis could be called from indoors, giving incorrect beacons.\n"); strcat(changelog, "Fixed a bug where armor vests could disappear after reconnecting.\n"); strcat(changelog, "Fixed a bug where Taxi signs could get stuck on vehicles.\n"); strcat(changelog, "Fixed a bug where the scrap vehicle timer wouldn't end when a player disconnected, occasionally causing incorrect vehicle deletions.\n"); strcat(changelog, "Fixed more bugs with the weed system.\n\n"); strcat(changelog, "{FF0000}2.3.10 - April 20th 2016{FFFFFF}\n"); strcat(changelog, "Too large to show here. View at http://redcountyrp.com/changelog/server\n\n"); strcat(changelog, "{FF0000}Find a full list of previous updates at http://redcountyrp.com/changelog/server!{FFFFFF}"); ShowMessage(playerid, "Latest Updates", changelog, "Fechar!"); return true; }*/ CMD:limparchat(playerid, params[]) { if(!Logged{playerid}) return true; for(new i = 0; i < 20; i++) SendClientMessage(playerid, COLOR_WHITE, " "); return true; } CMD:characters(playerid, params[]) { if(!Logged{playerid}) return true; if(!MasterAccountLogged{playerid}) return SysMsg(playerid, "Você deve estar logado em uma Conta Mester primeiro."); mysql_format(conn, mquery, sizeof(mquery), "SELECT Name FROM players WHERE MasterAccount = %i ORDER BY id ASC LIMIT 4", MasterAccount[playerid]); mysql_pquery(conn, mquery, "ShowCharacters", "d", playerid); return true; } CMD:contamaster(playerid, params[]) { if(!Logged{playerid}) return true; if(!MasterAccountLogged{playerid}) return SysMsg(playerid, "Você deve estar logado em uma conta Master primeiro. (/malogin)"); mysql_format(conn, mquery, sizeof(mquery), "SELECT EMail, RecentIP, LastLog, State FROM masters WHERE id = %i", MasterAccount[playerid]); mysql_pquery(conn, mquery, "MAInfo", "d", playerid); return true; } CMD:ma(playerid, params[]) return cmd_contamaster(playerid, params); CMD:donation(playerid, params[]) { if(!Logged{playerid}) return true; mysql_format(conn, mquery, sizeof(mquery), "SELECT DonationCash, DonationWLevel, DonationPLevel, DonationDLevel, DonationCarModel, RefundXP FROM players WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "ProcessDonation", "d", playerid); return true; } CMD:transferdonatorlevel(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsDonator[playerid]) return SysMsg(playerid, "Você não é um usuario donate."); new accountname[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", accountname)) return SysMsg(playerid, "Use: /transferdonatorlevel [Nome_Sobrenome]"); new sqlid = MySQLCheckAccount(accountname, playerid); if(sqlid == 0) return SysMsg(playerid, "O nome não foi encontrado. Inclua primeiro nome, sobrenome e um sublinhado (Nome_Sobrenome)."); mysql_format(conn, mquery, sizeof(mquery), "SELECT IsDonator FROM players WHERE id = %i", sqlid); mysql_pquery(conn, mquery, "CheckDonationTransfer", "iis", playerid, sqlid, accountname); return true; } GREENSIDE::CheckDonationTransfer(playerid, sqlid, accountname[]) { new donatorlevel = cache_get_field_content_int(0, "IsDonator"); if(donatorlevel > 0) return SysMsg(playerid, "Essa conta já é Donate."); mysql_format(conn, mquery, sizeof(mquery), "SELECT AmountDonated FROM players WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "ProcessDonationTransfer", "iisi", playerid, sqlid, accountname); return true; } GREENSIDE::ProcessDonationTransfer(playerid, sqlid, accountname[]) { new donatorlevel = IsDonator[playerid]; new amountdonated = cache_get_field_content_int(0, "AmountDonated"); IsDonator[playerid] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET IsDonator = %i, AmountDonated = %i WHERE id = %i", donatorlevel, amountdonated, sqlid); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET IsDonator = 0, AmountDonated = 0 WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM `ignore` WHERE PlayerSQLID=%i", SQLID[playerid]); mysql_pquery(conn, mquery); foreach(new i: Player) { if(SQLID[i] == sqlid) { IsDonator[i] = donatorlevel; SendClientMessageF(i, COLOR_WHITE, "%s deu level de Donate para você.", NameEx(playerid), donatorlevel); } } SendClientMessageF(playerid, COLOR_WHITE, "Você transferiu seu level de donate %i para %s. Você não é mais um usuario Donate nessa conta.", donatorlevel, accountname); return true; } CMD:mudarspawn(playerid, params[]) { if(!Logged{playerid}) return true; new spawnid, bizzid = -1; if(sscanf(params, "iI(-1)", spawnid, bizzid)) return SysMsg(playerid,"Use: /mudarspawn [spawn id] - 1:Noob, 2:Facção HQ, 3:casa, 4:Motel, 5:Casa visitante, 6:Caravana 7:Negocio"); if(spawnid < 1 || spawnid > 7) return SysMsg(playerid,"Use: /mudarspawn [spawn id] - 1:Noob, 2:Facção HQ, 3:Casa, 4:Motel, 5:Casa visitante, 6:Caravana, 7:Negocio"); if(spawnid == 1) { if(MySpawnID[playerid] == 1) return SysMsg(playerid,"Você já está no spawn de noob."); ShowMessage(playerid, "Ponto de Spawn", "Agora você irá spawna no spawn de noob.", "Ok"); MySpawnID[playerid] = 1; BizzSpawn[playerid] = 0; mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]); return true; } else if(spawnid == 2) { if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em nenhuma facção."); new locations[256], title[100]; if(strlen(FACTIONS[Faction[playerid]][FactionSpawn1Name]) > 1) { strcat(locations, "1 - "); strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn1Name]); strcat(locations, "\n"); } if(strlen(FACTIONS[Faction[playerid]][FactionSpawn2Name]) > 1) { strcat(locations, "2 - "); strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn2Name]); strcat(locations, "\n"); } if(strlen(FACTIONS[Faction[playerid]][FactionSpawn3Name]) > 1) { strcat(locations, "3 - "); strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn3Name]); strcat(locations, "\n"); } if(strlen(FACTIONS[Faction[playerid]][FactionSpawn4Name]) > 1) { strcat(locations, "4 - "); strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn4Name]); strcat(locations, "\n"); } if(strlen(FACTIONS[Faction[playerid]][FactionSpawn5Name]) > 1) { strcat(locations, "5 - "); strcat(locations, FACTIONS[Faction[playerid]][FactionSpawn5Name]); strcat(locations, "\n"); } format(title, 100, "Seleciona %s Spawn", GetFactionNameFromId(Faction[playerid])); Dialog_Show(playerid, FactionSubSpawn, DIALOG_STYLE_LIST, title, locations, "Selecionar", "Cancelar"); return true; } else if(spawnid == 3) { if(HasHouseKey[playerid][0] != -1 || HasHouseKey[playerid][1] != -1) { new hid = bizzid; if(hid != 0 && hid != 1 && hid != -1) return SysMsg(playerid, "Número da casa inválida. Os números de casa válidos são 0 ou 1."); if(hid == -1) { for(new v = 0; v < MAX_HOUSE_PER_PLAYER; v++) { if(HasHouseKey[playerid][v] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", v, HouseData[HasHouseKey[playerid][v]][HouseDescription]); } } SysMsg(playerid, "Use: /mudarspawn 3 [Número da casa acima]"); return true; } if(HasHouseKey[playerid][hid] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot."); if(MySpawnID[playerid] == 3 && SpawnAtHouse[playerid] == hid) return SysMsg(playerid,"Você já está spawnando nesta casa."); SpawnAtHouse[playerid] = hid; format(gstr, sizeof(gstr),"Agora você irá spawnar na sua casa. [%s]",HouseData[HasHouseKey[playerid][SpawnAtHouse[playerid]]][HouseDescription]); ShowMessage(playerid, "Ponto de Spawn", gstr, "Ok"); MySpawnID[playerid] = 3; mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, SpawnAtHouse = %i WHERE id = %i", MySpawnID[playerid], hid, SQLID[playerid]); return true; } SysMsg(playerid,"Você não tem uma casa."); } else if(spawnid == 4) { if(RentRoom[playerid] > 0) { if(MySpawnID[playerid] == 4) return SysMsg(playerid,"Você já está spawnando em um quarto de Motel."); ShowMessage(playerid, "Ponto de Spawn", "Agora você irá spawnar em um quarto de Motel.", "Ok"); MySpawnID[playerid] = 4; BizzSpawn[playerid] = 0; mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]); return true; } SysMsg(playerid,"Você não tem um quarto de Motel alugado."); } else if(spawnid == 5) { new ghouse = IsHouseGuest(playerid); if(ghouse == 0) return SysMsg(playerid,"Você não está vivendo de convidado na casa de alguém."); MySpawnID[playerid] = 5; BizzSpawn[playerid] = 0; mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]); format(gstr, sizeof(gstr),"Agora você irá spawna em %s.",HouseData[ghouse][HouseDescription]); ShowMessage(playerid, "Ponto de Spawn", gstr, "Ok"); return true; } else if(spawnid == 6) { for(new x = 1, v = GetVehiclePoolSize(); x <= v; x++) { if(VehicleData[x][VehicleOwnerSQLID] == SQLID[playerid] && SQLID[playerid] > 0) { if(VehicleData[x][VehicleModel] == 508) { MySpawnID[playerid] = 6; BizzSpawn[playerid] = 0; mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]); ShowMessage(playerid, "Ponto de Spawn", "Agora você irá spawnar na sua Caravana.", "Ok"); return true; } } } SysMsg(playerid,"Você não é dono de uma Caravana."); return true; } else if(spawnid == 7) { if(PlayerBizzID[playerid][0] == -1 && PlayerBizzID[playerid][1] == -1) return SysMsg(playerid, "Você não tem nenhum negocio para spawnar."); if(bizzid != 0 && bizzid != 1 && bizzid != -1) return SysMsg(playerid, "Número de negócio inválido. Os números de negócios válidos são 1 ou 2."); if(bizzid == -1) { for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++) { if(PlayerBizzID[playerid][v] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Business ID: %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]); } } SysMsg(playerid, "Use: /mudarspawn 7 [ID do negócio acima]"); return true; } new b = PlayerBizzID[playerid][bizzid]; MySpawnID[playerid] = 7; BizzSpawn[playerid] = BizzData[b][BizzSQLID]; mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]); SendClientMessageF(playerid, COLOR_BLUE, "Agora você irá spawnar em %s!", BizzData[b][BizzDescription]); } return true; } CMD:mudarspawniniciante(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /mudarspawniniciante [spawn id] - 1:Blueberry Caravans Parque, 2:Norte Caravan Parque, 3:Montgomery Caravans parque, 4:Fort Carson, 5:Angel Pine"); new spawnid = strval(params); if(spawnid < 1 || spawnid > 5) return SysMsg(playerid,"ID de Spawn inválido, 1 - 5 somente."); if(spawnid == NoobSpawnID[playerid]) return SysMsg(playerid,"Seu spawn de iniciante já está neste local."); NoobSpawnID[playerid] = spawnid; MySQLUpdateInt(SQLID[playerid], "NoobSpawnID", NoobSpawnID[playerid], "players"); ShowMessage(playerid, "Ponto de spawn iniciante", "Seu local de spawn iniciante foi alterado", "Ok"); return true; } CMD:login(playerid, params[]) { if(MasterAccount[playerid] == 0) return SysMsg(playerid, "Você precisa se registar antes de fazer login no servidor."); if(Logged{playerid}) return SysMsg(playerid, "Você já fez Login."); ShowLoginBox(playerid); return true; } CMD:logout(playerid, params[]) { if(!Logged{playerid}) return true; if(HasJustDied[playerid] == 1) return SysMsg(playerid,"Você não pode sair quando está no hospital."); if(IsAFK{playerid}) return SysMsg(playerid,"Você não pode sair quando se estiver AFK."); if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Você não pode sair quando se estiver algemado."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode sair quando se estiver empatado."); if(AdminJailData[playerid][0] == 1) return SysMsg(playerid,"Você não pode usar isso se estiver em Admin Jail!"); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você só pode sair se estiver a pé."); new Float:Health; GetPlayerHealth(playerid, Health); if(Health < 30) return SysMsg(playerid, "Você não pode usar este comando quando está gravemente ferido."); if(SpawnCheckTimer[playerid] != 0) KillTimer(SpawnCheckTimer[playerid]); ClearPlayerData(playerid, 3); PauseAC(playerid); TogglePlayerSpectating(playerid, 1); TogglePlayerControllable(playerid, false); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); SetPlayerScore(playerid, 0); SetPlayerName(playerid, MasterAccountName[playerid]); SetPlayerColor(playerid, 0xBFFFBC00); LoginScreenID[playerid][0] = random(sizeof(ClassSelectionData)); LoginScreenID[playerid][1] = 120; InterpolateCameraPos(playerid, ClassSelectionData[LoginScreenID[playerid][0]][0], ClassSelectionData[LoginScreenID[playerid][0]][1], ClassSelectionData[LoginScreenID[playerid][0]][2], ClassSelectionData[LoginScreenID[playerid][0]][6], ClassSelectionData[LoginScreenID[playerid][0]][7], ClassSelectionData[LoginScreenID[playerid][0]][8], 120000, CAMERA_MOVE); InterpolateCameraLookAt(playerid, ClassSelectionData[LoginScreenID[playerid][0]][3], ClassSelectionData[LoginScreenID[playerid][0]][4], ClassSelectionData[LoginScreenID[playerid][0]][5], ClassSelectionData[LoginScreenID[playerid][0]][9], ClassSelectionData[LoginScreenID[playerid][0]][10], ClassSelectionData[LoginScreenID[playerid][0]][11], 120000, CAMERA_MOVE); // Play login screen music switch(random(8)) { case 0: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_gt7afvhjasdftu.mp3"); case 1: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_5tf76yhasf6tds.mp3"); case 2: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_gr5dqty6h3qxw6.mp3"); case 3: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_oikicjwya8cq78.mp3"); case 4: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_sed65tcs57gpjn.mp3"); case 5: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_qd3w6758hjxcsa.mp3"); case 6: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_5r4atgsdh7a56r.mp3"); case 7: PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/login_mnb12580gdcbtu.mp3"); } mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM masters WHERE id = %i LIMIT 1", MasterAccount[playerid]); mysql_pquery(conn, mquery, "LoginMasterAccount", "d", playerid); return true; } //Organizar ordem de comandos //==================== 1 Comandos de facções gerais ==========// //Comandos de facções gerais CMD:mostrarcracha(playerid, params[]) //mostrarcracha { if(!Logged{playerid}) return true; new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /mostrarcracha [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso."); new hasbadge = 0; if(Faction[playerid] == FACTION_COP) { format(gstr, sizeof(gstr),"[SASP Distintivo] %s - %s, %s(Rank %i", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); if(strlen(FactionCustomRank[playerid]) > 1) { strcat(gstr, ", Sub Rank: "); strcat(gstr, FactionCustomRank[playerid]); } strcat(gstr, ")"); SendClientMessage(playa,COLOR_YELLOW,gstr); hasbadge = 1; } else if(Faction[playerid] == FACTION_SACFD) { format(gstr, sizeof(gstr),"[SACFD Distintivo] %s - %s, %s(Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); if(strlen(FactionCustomRank[playerid]) > 1) { strcat(gstr, ", Sub Rank: "); strcat(gstr, FactionCustomRank[playerid]); } strcat(gstr, ")"); SendClientMessage(playa,COLOR_YELLOW,gstr); hasbadge = 1; } else if(Faction[playerid] == FACTION_NEWS) { format(gstr, sizeof(gstr),"[News Corp. Distintivo] %s - %s, %s(Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); if(strlen(FactionCustomRank[playerid]) > 1) { strcat(gstr, ", Sub Rank: "); strcat(gstr, FactionCustomRank[playerid]); } strcat(gstr, ")"); SendClientMessage(playa,COLOR_YELLOW,gstr); hasbadge = 1; } else if(Faction[playerid] == FACTION_TRUCKING) { format(gstr, sizeof(gstr),"[Licença Camionista] %s - %s, %s (Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); if(strlen(FactionCustomRank[playerid]) > 1) { strcat(gstr, ", Sub Rank: "); strcat(gstr, FactionCustomRank[playerid]); } strcat(gstr, ")"); SendClientMessage(playa,COLOR_YELLOW,gstr); hasbadge = 1; } else if(Faction[playerid] == FACTION_PROP) { format(gstr, sizeof(gstr),"[Silver Trading Employee ID] %s - %s, %s (Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); if(strlen(FactionCustomRank[playerid]) > 1) { strcat(gstr, ", Sub Rank: "); strcat(gstr, FactionCustomRank[playerid]); } strcat(gstr, ")"); SendClientMessage(playa,COLOR_YELLOW,gstr); hasbadge = 1; } else if(Faction[playerid] == FACTION_RESEARCH) { if(IsPlayerMasked{playerid}) SendClientMessageF(playa,COLOR_YELLOW, "[Distintivo Federal Agent] %s - %s, %s (Rank %i)", FactionCustomRank[playerid], GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); else SendClientMessageF(playa,COLOR_YELLOW, "[Distintivo Federal Agente] %s - %s, %s (Rank %i)", NameEx(playerid), GetFactionName(playerid), GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionRank[playerid]); hasbadge = 1; } if(hasbadge == 0) return SysMsg(playerid,"Sua facção não tem crachás."); if(playa == playerid) format(gstr, sizeof(gstr),"* %s olha para o distintivo. *", NameRP(playerid)); else format(gstr, sizeof(gstr),"* %s mostra seu distintivo para %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:duty(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(ADuty[playerid] == 1) return SysMsg(playerid, "Você não pode entrar em serviço se estiver administrando."); if(isnull(params)) return SysMsg(playerid,"Use: /duty ['on' ou 'off']"); if(strcmp("on",params,true) == 0) { if(Duty[playerid] == 1) return SysMsg(playerid,"Você já está em serviço."); if(Faction[playerid] == FACTION_COP) { if(IsPlayerInRangeOfPoint(playerid,2.5,-796.7911,-420.2244,1601.9928) || IsPlayerInRangeOfPoint(playerid,1.75,324.928,305.504,999.148) || IsFactionVehicle(GetPlayerVehicleID(playerid)) == FACTION_COP) { Duty[playerid] = 1; format(gstr, sizeof(gstr),"[Radio - 9112 MHz] Central Dispatcher: %s %s está na delegacia de polícia e agora está entrando em serviço.", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid)); ReportCrime(gstr); } else return SysMsg(playerid,"Você só pode mudar de serviço em uma estação de polícia."); } else if(Faction[playerid] == FACTION_SACFD) { foreach(new i: Player) if(Faction[i] == FACTION_SACFD) SendClientMessageF(i, COLOR_BLUE, "SACFD Mensagem: %s agora está em serviço.",NameEx(playerid)); Duty[playerid] = 1; } else if(Faction[playerid] == FACTION_NEWS) { foreach(new i: Player) if(Faction[i] == FACTION_NEWS) SendClientMessageF(i,COLOR_PINK,"SANews Mensagem: %s agora está em serviço.",NameEx(playerid)); Duty[playerid] = 1; } return true; } if(strcmp("off",params,true) == 0) { if(Duty[playerid] == 0) return SysMsg(playerid, "Você já está fora do serviço."); if(Faction[playerid] == FACTION_COP) { if(IsPlayerInRangeOfPoint(playerid,2.5,-796.7911,-420.2244,1601.9928) || IsPlayerInRangeOfPoint(playerid,1.75,324.928,305.504,999.148) || IsFactionVehicle(GetPlayerVehicleID(playerid)) == FACTION_COP) { format(gstr, sizeof(gstr),"[Radio - 9112 MHz] Central Dispatcher: %s %s está saindo da delegacia de polícia e agora está fora de serviço.", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid)); ReportCrime(gstr); Duty[playerid] = 0; } else return SysMsg(playerid,"Você só pode mudar de serviço em uma estação de polícia."); } else if(Faction[playerid] == FACTION_SACFD) { foreach(new i: Player) if(Faction[i] == FACTION_SACFD) SendClientMessageF(i, COLOR_BLUE, "SACFD Mensagem: %s está fora de serviço.",NameEx(playerid)); Duty[playerid] = 0; } else if(Faction[playerid] == FACTION_NEWS) { foreach(new i: Player) if(Faction[i] == FACTION_NEWS) SendClientMessageF(i,COLOR_PINK,"SANews Mensagem: %s está fora de serviço.",NameEx(playerid)); Duty[playerid] = 0; } else if(Duty[playerid] == 0) return SysMsg(playerid,"Você já está fora de serviço."); return true; } SysMsg(playerid,"Use: /duty ['on' ou 'off']"); return true; } CMD:callsign(playerid, params[])//callsing { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid, "Use: /callsign [Unidade Label]"); if(!IsCop(playerid) && Faction[playerid] != FACTION_SACFD) return SysMsg(playerid, "Você precisa ser um membro do SASP ou SACFD para usar este comando."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro de um veículo para usar esse comando."); if(IsFactionVehicle(GetPlayerVehicleID(playerid)) != Faction[playerid]) return SysMsg(playerid, "Você precisa estar em um veículo de facção para definir a callsign da unidade."); if(strlen(params) >= 10 && strlen(params) < 1) return SysMsg(playerid, "Os callsign das unidades devem ter entre 1 e 8 caracteres."); for(new fiv = 0, x = GetVehiclePoolSize(); fiv <= x; fiv++) { if(strmatch(FVehicleData[fiv][FVGovUnit], params)) return SendClientMessage(playerid, COLOR_GREY, "Esta callsign de unidade já está em uso, use outro."); } new vehid = GetPlayerVehicleID(playerid); format(FVehicleData[vehid][FVGovUnit], 12, params); for(new l = 0; l < 10; l++) FVehicleData[vehid][FVGovUnit][l] = toupper(FVehicleData[vehid][FVGovUnit][l]); if(FVehicleData[vehid][FVGovUnitTog]) { UpdateDynamic3DTextLabelText(FVehicleData[vehid][FVGovUnit3DText], COLOR_SIGN, FVehicleData[vehid][FVGovUnit]); } else { new Float:sX, Float:sY, Float:sZ; GetVehicleModelInfo(GetVehicleModel(FVehicleData[vehid][FactionVehID]), VEHICLE_MODEL_INFO_SIZE, sX, sY, sZ); FVehicleData[vehid][FVGovUnit3DText] = CreateDynamic3DTextLabel(FVehicleData[vehid][FVGovUnit], COLOR_SIGN, 0.0, (-sY + 1.6) / 2.0, -0.2, 25.0, INVALID_PLAYER_ID, vehid, 1, -1, -1, -1, 25); FVehicleData[vehid][FVGovUnitTog] = 1; } Streamer_Update(playerid); SendClientMessageF(playerid, COLOR_BLUE, "Você editou com sucesso o callsign da unidade para o veiculo %s, use /togcallsign para ativá-lo.", GetVehicleNameEx(GetVehicleModel(vehid))); return true; } CMD:togcallsign(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsCop(playerid) && Faction[playerid] != FACTION_SACFD) return SysMsg(playerid, "Você precisa ser um membro do SASP ou SACFD para usar esse comando."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro de um veículo para usar esse comando."); if(IsFactionVehicle(GetPlayerVehicleID(playerid)) != Faction[playerid]) return SysMsg(playerid, "Você precisa estar em um veículo de facção para definir o rótulo de unidade."); new vehid = GetPlayerVehicleID(playerid); if(FVehicleData[vehid][FVGovUnitTog] == 1) { DestroyDynamic3DTextLabel(FVehicleData[vehid][FVGovUnit3DText]); FVehicleData[vehid][FVGovUnit3DText] = Text3D:INVALID_3DTEXT_ID; SendClientMessage(playerid, COLOR_BLUE, "Você removeu com sucesso a callsign da unidade."); FVehicleData[vehid][FVGovUnitTog] = 0; } else { new Float:sX, Float:sY, Float:sZ; GetVehicleModelInfo(GetVehicleModel(FVehicleData[vehid][FactionVehID]), VEHICLE_MODEL_INFO_SIZE, sX, sY, sZ); FVehicleData[vehid][FVGovUnit3DText] = CreateDynamic3DTextLabel(FVehicleData[vehid][FVGovUnit], COLOR_SIGN, 0.0, (-sY + 1.6) / 2.0, -0.2, 25.0, INVALID_PLAYER_ID, vehid, 1, -1, -1, -1, 25); SendClientMessageF(playerid, COLOR_BLUE, "Você adicionou com sucesso uma callsign a unidade", GetVehicleNameEx(GetVehicleModel(vehid))); Streamer_Update(playerid); FVehicleData[vehid][FVGovUnitTog] = 1; } return true; } CMD:fanuncio(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(FactionRank[playerid] < 3) return SysMsg(playerid,"Você não tem o Rank suficiente."); if(FadvertSpamTime > 0) return SysMsg(playerid, "Outro fanuncio não pode ser feito no momento."); if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativados."); if(isnull(params)) { SysMsg(playerid,"Use: /fanuncio [mensagem]"); SysMsg(playerid,"Exemplo: '/fanuncio Isto é um teste' irá mostrar como: [Anúncio da Facção] Isto é um teste [Seu Nome_Sobrenome]"); return true; } new AdCost = strlen(params) * 8; if(IsDonator[playerid] < 3) { GivePlayerCash(playerid, -AdCost); format(gstr, sizeof(gstr),"Você fez uma anúncio na facção com %i characters, isso irá custa $%i. ($8/Letras)",strlen(params),AdCost); } else if(IsDonator[playerid] == 3) { AdCost = AdCost / 2; GivePlayerCash(playerid, -AdCost); format(gstr, sizeof(gstr),"Você fez uma anúncio na facção com %i characters, isso irá custa $%i. ($8/Letras)",strlen(params),AdCost); } else if(IsDonator[playerid] >= 4) { format(gstr, sizeof(gstr),"Você fez um anúncio de facção %i characters, não custando nada.",strlen(params),AdCost); } SendClientMessage(playerid,COLOR_WHITE,gstr); FadvertSpamTime = 60; foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessageF(i, COLOR_GREEN, "[Faction Advert] %s [%s]", params, GetFactionName(playerid)); format(gstr, sizeof(gstr), "[Admin] ^^ Anúncio de facção por %s (ID %i)", NameEx(playerid), playerid); AdminBroadcast(gstr, 0); AddToLog("advert", gstr); return true; } CMD:membros(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid, "Faça o login primeiro."); new faction; if(sscanf(params, "i", faction)) { if(Faction[playerid] == 0) return SysMsg(playerid, "Você não esta uma facção."); MemberBrowsing[playerid] = Faction[playerid]; MemberListIndex[playerid] = 0; mysql_format(conn, mquery, sizeof(mquery), "SELECT Online,Name,FactionRank,FactionCustomRank FROM players WHERE Faction = %i ORDER BY FactionRank DESC LIMIT 20 OFFSET %i", Faction[playerid], MemberListIndex[playerid] * 20); mysql_pquery(conn, mquery, "DisplayFactionMemberList", "dd", playerid, MemberListIndex[playerid]); return true; } if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, AUTHMSG); if(faction == 0) return SysMsg(playerid, "Facção não pode ser 0. Por favor, veja /FIDS para uma facção válida."); MemberBrowsing[playerid] = faction; MemberListIndex[playerid] = 0; mysql_format(conn, mquery, sizeof(mquery), "SELECT Online,Name,FactionRank,FactionCustomRank FROM players WHERE Faction = %i ORDER BY FactionRank DESC LIMIT 20 OFFSET %i", faction, MemberListIndex[playerid] * 20); mysql_pquery(conn, mquery, "DisplayFactionMemberList", "dd", playerid, MemberListIndex[playerid]); return true; } CMD:faconline(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); mysql_pquery(conn, "SELECT COUNT(id) AS members, Faction FROM players WHERE Faction != 0 GROUP BY Faction", "LoadFactionOnline", "i", playerid); return true; } GREENSIDE::LoadFactionOnline(playerid) { new members[MAX_FACTIONS]; for(new i = 0, r = cache_num_rows(); i < r; i++) { members[cache_get_field_content_int(i, "Faction")] = cache_get_field_content_int(i, "members"); } gstr[0] = EOS; new membercount = 0; for(new i = 1; i < MAX_FACTIONS; i++) { if(IsFactionActive(i) == 1) { foreach(new p: Player) { if(Logged{p} && Faction[p] == i) { membercount ++; } } format(sgstr, sizeof(sgstr), "[{00B837}%i{FFFFFF}/{00B837}%i{FFFFFF}] %s\n", membercount, members[i], FACTIONS[i][FactionName]); strcat(gstr, sgstr); membercount = 0; } } Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_LIST, "Lista de facções", gstr, "Fechar!", ""); return true; } CMD:sairfaccao(playerid, params[])//sairfaccao { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não tem Faction para sair."); if(QuitFromFaction[playerid] != 0) return SysMsg(playerid,"Você já está desistindo, use '/accept quitfaction'."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Saia deste veículo primeiro."); QuitFromFaction[playerid] = Faction[playerid]; if(strlen(FactionCustomRank[playerid]) >= 1) FactionCustomRank[playerid][0] = 0; SendClientMessageF(playerid,COLOR_WHITE, "Você tem certeza de que quer sair: %s. Escreva '/accept quitfaction' para confirmar.", GetFactionName(playerid)); return true; } CMD:ranks(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção para usar esse comando."); new f = Faction[playerid], col[12]; SendClientMessageF(playerid, COLOR_WHITE, "Facção rank de {096483}%s", FACTIONS[f][FactionName]); for(new x = FACTIONS[f][FactionUberLeaderRank] - 1; x != -1; x--) { if(strlen(FactionRanks[f][x])) { if(x + 1 == FACTIONS[f][FactionUberLeaderRank]) col = "328332"; else if(x + 1 == FACTIONS[f][FactionLeaderRank]) col = "4C924C"; else col = "FFFFFF"; SendClientMessageF(playerid, COLOR_WHITE, "{%s} Rank %i: %s", col, x + 1, FactionRanks[f][x]); } } return true; } CMD:removesubrank(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso."); new pname[32], playa; if(sscanf(params, "s[32]", pname)) return SysMsg(playerid,"Use: /removesubrank [ID / Nome_Sobrenome]"); playa = GetPlayerIDs(pname); if(!InvalidPlayer(playa)) { if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esta pessoa não está na mesma facção que você."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionCustomRank = '' WHERE id = %i", SQLID[playa]); mysql_pquery(conn, mquery); FactionCustomRank[playa][0] = EOS; SendClientMessageF(playerid,COLOR_ORANGE, "Você removeu o sub-rank de %s.", NameEx(playa)); SendClientMessageF(playa,COLOR_ORANGE, "%s removeu seu sub-rank.", NameEx(playerid)); IsESU{playa} = false; return true; } else if(strfind(pname, "_", true) != -1) { new sqlid = MySQLCheckAccount(pname, playerid); if(sqlid == 0) return SysMsg(playerid, "Nome não encontrado na base de dados, por favor, tente novamente"); if(sqlid == SQLID[playerid]) return SysMsg(playerid, "Name cannot be your account."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionCustomRank = '' WHERE id = %i", sqlid); mysql_pquery(conn, mquery); SendClientMessageF(playerid,COLOR_ORANGE, "Você removeu o sub-rank de %s.", RPName(pname)); return true; } return true; } CMD:skin(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão."); if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Saia do veiculo primeiro."); if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK) return SysMsg(playerid,"Por favor, agite-se antes de mudar a skin."); new MaxNumber = GetFactionMaxSkins(Faction[playerid]); new f = Faction[playerid]; if(isnull(params)) return SysMsgF(playerid,"Use: /skin [número] Por %s existem %i Skins, Use os números 1 para %i.",GetFactionName(playerid), MaxNumber, MaxNumber); if(!IsNumeric(params)) return SysMsg(playerid,"O número da pele deve ser um número."); new slot = strval(params); if(slot < 1 || slot > MaxNumber) return SysMsg(playerid,"Número inválido"); new allowChange = 0; switch(Faction[playerid]) { case FACTION_COP: if(IsPlayerInRangeOfPoint(playerid, 2.0,-786.8459,-401.8096,1802.0253) || IsPlayerInRangeOfPoint(playerid,2.0,324.203002, 309.210266, 999.14840)) allowChange = 1; case FACTION_SACFD: { if(IsPlayerInRangeOfPoint(playerid, 2.0, 2385.5320,230.0867,2004.1659) || IsPlayerInRangeOfPoint(playerid, 2.0,2385.8569,224.3492,2004.1659)) allowChange = 1; new Float:vPos[3]; GetVehiclePos(GetNearestVehicle(playerid), vPos[0], vPos[1], vPos[2]); if(IsPlayerInRangeOfPoint(playerid, 4.0, vPos[0], vPos[1], vPos[2]) && IsFactionVehicle(GetNearestVehicle(playerid)) == FACTION_SACFD) allowChange = 1; } default: allowChange = 1; } if(allowChange == 0) return SysMsg(playerid, "Você precisa estar na área de troca de skins."); SetPlayerSkinEx(playerid, FACTIONS[f][FactionSkins][slot - 1]); Clothes[playerid][4] = FACTIONS[f][FactionSkins][slot - 1]; cPlayersSkin[playerid] = FACTIONS[f][FactionSkins][slot - 1]; MySQLUpdateInt(SQLID[playerid], "SkinSet5", Clothes[playerid][4], "players"); MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players"); return true; } CMD:gunrack(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veículo para usar este comando."); new faction = IsFactionVehicle(GetPlayerVehicleID(playerid)), veh = GetPlayerVehicleID(playerid), option[8], weap[24]; if((Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_PROP) && faction == Faction[playerid]) { if(FVehicleData[veh][FactionVehID] != GetPlayerVehicleID(playerid)) return true; if(sscanf(params, "s[8]S()[24]", option, weap)) return SysMsg(playerid, "Use: /gunrack [pegar/guardar/mostrar] [Gunrack Slot] [nome da arma]"); if(strcmp(option, "pegar", true) == 0 || strcmp(option, "get", true) == 0) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE Gunrack != -1 AND FCarID = %i AND WeaponID = %i AND Deleted = 0 AND WeaponPossession = 0 AND TrunkID = -1 AND HouseID = -1 AND Dropped = 0", FVehicleData[veh][FVSQLID], GetWeaponIdFromName(weap)); mysql_pquery(conn, mquery, "ProcessGunrackTake", "ii", playerid, veh); return true; } else if(strcmp(option, "guardar", true) == 0 || strcmp(option, "place", true) == 0) { if(!strlen(weap)) return SysMsg(playerid, "Use: /gunrack guardar [Gunrack Slot] [Nome da arma]"); new wep = GetWeaponIdFromName(weap); if(wep == -1) return SysMsg(playerid,"Nome da arma inválida."); if(wep < 1 || wep > 47) return SysMsg(playerid,"Arma inválida."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE FCarID = %i AND Gunrack = 1 AND Deleted = 0 AND Dropped = 0", FVehicleData[veh][FVSQLID]); mysql_pquery(conn, mquery, "ProcessGunrackStore", "iii", playerid, veh, wep); return true; } else if(strcmp(option, "mostrar", true) == 0 || strcmp(option, "view", true) == 0) { mysql_format(conn, mquery, sizeof(mquery), "SELECT WeaponID, WeaponAmmo FROM weapons WHERE FCarID = %i AND Gunrack != -1 AND Deleted = 0 AND Dropped = 0", FVehicleData[veh][FVSQLID]); mysql_pquery(conn, mquery, "ProcessGunrackView", "i", playerid); return true; } else cmd_gunrack(playerid, ""); } else SysMsg(playerid, "Você precisa ser um membro do SASP para usar esse comando."); return true; } GREENSIDE::ProcessGunrackTake(playerid, veh) { if(!cache_num_rows()) return SysMsg(playerid, "Você não tem uma arma armazenada no gunrack."); new wep = cache_get_field_content_int(0, "WeaponID"); new slot = GetWeaponSlot(wep); if(WeaponData[playerid][slot][Weapon] != 0) return SysMsg(playerid, "Você já está segurando uma arma nesse slot."); if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você não pode carregar mais armas no momento."); WeaponData[playerid][slot][WeaponID] = cache_get_field_content_int(0, "id"); WeaponData[playerid][slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); WeaponData[playerid][slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][slot][Weapon] = wep; WeaponData[playerid][slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][slot][WeaponType] = GetWeaponType(WeaponData[playerid][slot][Weapon]); WeaponData[playerid][slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); SyncPlayerWeapons(playerid); SetPlayerArmedWeapon(playerid, WeaponData[playerid][slot][Weapon]); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = -1, Gunrack = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][slot][WeaponID]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_DARKBLUE, "Você pegou um(a) %s do gunrack deste(a) %s.",GetWeaponNameFromID(WeaponData[playerid][slot][Weapon]), GetVehicleNameEx(FVehicleData[veh][FVModel])); format(sgstr, sizeof(sgstr),"* %s pegou alguma coisa do porta-arma do %s. *",NameRP(playerid), GetVehicleNameEx(FVehicleData[veh][FVModel])); SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 5000); return true; } GREENSIDE::ProcessGunrackStore(playerid, veh, weapid) { if(cache_num_rows() == 2) return SysMsg(playerid, "Esse gunrack está cheio."); new slot = GetWeaponSlot(weapid); if(WeaponData[playerid][slot][Weapon] != weapid) return SysMsg(playerid, "Você não tem essa arma para guardá-la."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = %i, Gunrack = 1, WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", FVehicleData[veh][FVSQLID], WeaponData[playerid][slot][WeaponAmmo], WeaponData[playerid][slot][WeaponID]); mysql_pquery(conn, mquery); ResetWeaponVariables(playerid, 0, slot); SyncPlayerWeapons(playerid); SendClientMessageF(playerid, COLOR_DARKBLUE, "Você guardou uma %s no gunrack desse(a) %s.",GetWeaponNameFromID(weapid), GetVehicleNameEx(FVehicleData[veh][FVModel])); format(gstr, sizeof(gstr), "* %s guarda alguma coisa no gunrack do(a) %s. *", NameRP(playerid), GetVehicleNameEx(FVehicleData[veh][FVModel])); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 5000); return true; } GREENSIDE::ProcessGunrackView(playerid) { if(!cache_num_rows()) return SysMsg(playerid, "Esse gunrack está vazio."); new wep, ammo; for(new i = 0, x = cache_num_rows(); i < x; i++) { wep = cache_get_field_content_int(i, "WeaponID"); ammo = cache_get_field_content_int(i, "WeaponAmmo"); SendClientMessageF(playerid, COLOR_DARKBLUE, "[Gun Rack Slot %i] Arma: %s [Munições: %i]", i + 1, GetWeaponNameFromID(wep), ammo); } return true; } CMD:m(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); new CarId = GetNearestVehicle(playerid), faction = IsFactionVehicle(CarId); if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(isnull(params)) return SysMsg(playerid,"Use: MEGAPHONE: /m [mensagem]"); if(CarId == 0 || faction == 0 || Faction[playerid] != faction) return SysMsg(playerid,"Você deve estar dentro ou perto de um veículo de facção adequado."); new Float:vpos[3]; GetVehiclePos(CarId, vpos[0], vpos[1], vpos[2]); if(!IsPlayerInVehicle(playerid, CarId) && !IsPlayerInRangeOfPoint(playerid, 4.0, vpos[0], vpos[1], vpos[2])) return SysMsg(playerid, "Você deve estar dentro ou perto de um veículo de facção adequado."); if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 510) return SysMsg(playerid,"Você deve estar dentro ou perto de um veículo de facção adequado."); format(gstr, sizeof(gstr),"[%s] o< %s",NameRP(playerid),params); ProxDetector(100.0,playerid,gstr,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW,COLOR_YELLOW); for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid, 60, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { foreach(new i: Player) { if(IsInHouseID[i] == h) { SendClientMessageF(i,COLOR_YELLOW,"[%s, lado de fora] o< %s",NameRP(playerid),params); } } } } for(new h = 0; h < MAX_BIZZ; h++) { if(IsPlayerInRangeOfPoint(playerid, 60, BizzData[h][oPosX], BizzData[h][oPosY], BizzData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == 0) { foreach(new i: Player) { if(IsInBizzID[i] == h) { SendClientMessageF(i,COLOR_YELLOW,"[%s, lado de fora] o< %s",NameRP(playerid),params); } } } } for(new h = 0; h < MAX_GARAGES; h++) { if(IsPlayerInRangeOfPoint(playerid, 60, GarageData[h][oPosX], GarageData[h][oPosY], GarageData[h][oPosZ])) { foreach(new i: Player) { if(IsInGarageID[i] == h) { SendClientMessageF(i,COLOR_YELLOW,"[%s, lado de fora] o< %s",NameRP(playerid),params); } } } } } else return SysMsg(playerid,"Você não pode usar isso."); return true; } CMD:f(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(FACTIONS[Faction[playerid]][FactionChatToggleOff] == 1) return SysMsg(playerid,"O bate-papo de Faction está desativado para sua facção."); if(ptogf{playerid}) return SysMsg(playerid,"Você tem conversa de facção desativada."); if(isnull(params)) return SysMsg(playerid,"Use: Faction Chat: /f [mensagem]"); if(strlen(FactionCustomRank[playerid]) != 0) format(gstr, sizeof(gstr),"[%s(%s) %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), FactionCustomRank[playerid], NameEx(playerid), params); else format(gstr, sizeof(gstr),"[%s %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params); foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid] && !ptogf{i}) SendSplitMessage(i, 0x80BCFFFF, gstr); return true; } CMD:togf(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!ptogf{playerid}) { ptogf{playerid} = true; SysMsg(playerid,"Você desabilitou o bate-papo da facção."); } else { ptogf{playerid} = false; SysMsg(playerid,"Você habilitou o bate-papo por facção."); } return true; } CMD:fo(playerid, params[]) return cmd_fhc(playerid, params); CMD:fhc(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso."); if(isnull(params)) return SysMsg(playerid,"Use: Faction Chat: /fhc [mensagem]"); foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid] && IsValidLeaderRank(Faction[i], FactionRank[i])) SendSplitMessageF(i, 0x459CFFFF, "[Faction HC(%s) %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params); return true; } CMD:fan(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(ptogf{playerid}) return SysMsg(playerid,"Você tem conversa de facção desativada."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso."); if(isnull(params)) return SysMsg(playerid,"Use: Faction Chat: /fan [mensagem]"); foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendSplitMessageF(i, 0x459CFFFF, "[Faction announcement(%s) %s] %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params); return true; } CMD:d(playerid) return SysMsg(playerid, "/d foi renomeado para /dr. Use isso de agora em diante."); CMD:dr(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(Duty[playerid] == 0 && Faction[playerid] != FACTION_RESEARCH) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(isnull(params)) return SysMsg(playerid,"Use: Department Chat: /dr [mensagem]"); new DeptName[10]; if(Faction[playerid] == FACTION_COP) DeptName = "SASP"; else if(Faction[playerid] == FACTION_SACFD) DeptName = "SACFD"; else if(Faction[playerid] == FACTION_RESEARCH) DeptName = "Agency"; foreach(new i: Player) { if(!Logged{i} || playerid == i) { continue; } if(Faction[i] == FACTION_RESEARCH) { SendSplitMessageF(i, COLOR_ORANGE, "[%s] %s %s diz: %s", DeptName, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameRP(playerid), params); continue; } if(Duty[i] == 1 && (IsCop(i) || Faction[i] == FACTION_SACFD)) { SendSplitMessageF(i, COLOR_ORANGE, "[%s] %s %s diz: %s", DeptName, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameRP(playerid), params); continue; } } format(gstr, sizeof(gstr), "%s diz (dept. radio): %s", NameRP(playerid), params); ProxDetector(15.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); } else SysMsg(playerid, "Você não está na facção correta para usar isso."); return true; } CMD:fcars(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção."); new textBody[3500]; new Vcount = 0; strcat(textBody, "Nome do veículo\tVeículo ID\tClassificação exigida\n"); for(new v = 0, x = GetVehiclePoolSize(); v <= x; v++) { if(IsVehicleSpawned(FVehicleData[v][FactionVehID]) && Faction[playerid] == FVehicleData[v][FVFaction]) { Vcount ++; format(sgstr, sizeof(sgstr), "%s\t%i\t%i\n", GetVehicleNameEx(FVehicleData[v][FVModel]), FVehicleData[v][FactionVehID], FVehicleData[v][FVMinRank]); strcat(textBody, sgstr); } } if(Vcount > 0) { format(tgstr, sizeof(tgstr), "%s - %i Veículos", FACTIONS[Faction[playerid]][FactionName], Vcount); Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_TABLIST_HEADERS, tgstr, textBody, "Pronto", ""); } else SysMsg(playerid, "Nenhum veículo de Faction encontrado para sua Faction."); return true; } CMD:ultimodirigido(playerid, params[])//ultimodirigido { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); new Car = GetPlayerVehicleID(playerid); if(Car == 0 || IsInFactionCar[playerid] == 0) return SysMsg(playerid,"Você não está em um veiculo de facção."); new h, m, temp, fv = IsInFactionCar[playerid]; if(FVehicleData[fv][FactionVehID] == Car) { if(FVehicleData[fv][LastDriver] == 0) return SysMsg(playerid,"Este veículo ainda não foi conduzido."); temp = gettime() - FVehicleData[fv][LastDriverTime]; while(temp > 3600) { temp -= 3600; h++; } while(temp > 60) { temp -= 60; m++; } SendClientMessageF(playerid, COLOR_WHITE, "Esse %s foi conduzido pela última vez %s %i horas %i minutos %i segundos.", GetVehicleName(Car), GetSQLName(FVehicleData[fv][LastDriver]), h, m, temp); } return true; } CMD:addsiren(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo para usar este comando."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid, "Você não tem um rank apropriado para usar este comando."); new vehicleid = GetPlayerVehicleID(playerid); if(IsFactionVehicle(vehicleid) != Faction[playerid]) return SysMsg(playerid, "Você precisa estar em um veiculo de facção."); if(IsPushBike(vehicleid)) return SysMsg(playerid, "Não é possivel adicionar sirene neste veiculo."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, FVehicleData[vehicleid][LocationX], FVehicleData[vehicleid][LocationY], FVehicleData[vehicleid][LocationZ])) return SysMsg(playerid, "Você deve estar perto do ponto de spawn do veículo."); mysql_format(conn, mquery, sizeof(mquery), "SELECT HasSiren FROM fveh WHERE id = %i", FVehicleData[vehicleid][FVSQLID]); mysql_pquery(conn, mquery, "AssignFVehSiren", "dd", playerid, vehicleid); return true; } else SysMsg(playerid, "Você deve estar em uma facção do governo para usar esse comando."); return true; } CMD:buscartelefone(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || IsPlayerAdmin(playerid) || Faction[playerid] == FACTION_RESEARCH) { new pnumber, zone[MAX_ZONE_NAME]; if(sscanf(params, "i", pnumber)) return SysMsg(playerid,"Use: /buscartelefone [número telefonico] *Dará um nome de área com base em seu número de telefone*"); if(pnumber < 100000 || pnumber > 9999999) return SysMsg(playerid,"Número de telefone inválido."); if(!HasPhoneSignal(playerid)) return SysMsg(playerid, "Nenhum sinal de satélite encontrado. [E001]"); foreach(new i: Player) { if(Logged{i} && PhoneData[i][pNumber] == pnumber) { if(PhoneData[i][pPower] == 0) return SysMsg(playerid,"Nenhum sinal de satélite encontrado. [E002]"); if(!HasPhoneSignal(i)) return SysMsg(playerid, "Nenhum sinal de satélite encontrado. [E003]"); if(IsInHouseID[i] != -1) Get2DZone(HouseData[IsInHouseID[i]][oPosX], HouseData[IsInHouseID[i]][oPosY], zone, MAX_ZONE_NAME); else if(IsInBizzID[i] != -1) Get2DZone(BizzData[IsInBizzID[i]][oPosX], BizzData[IsInBizzID[i]][oPosY], zone, MAX_ZONE_NAME); else if(IsInGarageID[i] != -1) Get2DZone(GarageData[IsInGarageID[i]][oPosX], GarageData[IsInGarageID[i]][oPosY], zone, MAX_ZONE_NAME); else GetPlayer2DZone(i, zone, MAX_ZONE_NAME); if(Faction[playerid] == FACTION_RESEARCH) SendClientMessageF(playerid, COLOR_WHITE, "O numero do telefone %i foi localizado dentro de %s. (%s de você)", pnumber, zone, GetNSEWBetweenPlayers(playerid, i)); else SendClientMessageF(playerid, COLOR_WHITE, "O numero do telefone %i foi localizado dentro de %s.", pnumber, zone); return true; } } for(new i = 0; i < MAX_GUNS; i++) { if(WeaponDrop[i][Type] == 6) { if(WeaponDrop[i][DropPhonePower] == 1) { if(WeaponDrop[i][DropPhoneNumber] == pnumber) { Get2DZone(WeaponDrop[i][wX], WeaponDrop[i][wY], zone, MAX_ZONE_NAME); SendClientMessageF(playerid, COLOR_WHITE, "O numero do telefone %i foi localizado dentro de %s.", pnumber, zone); return true; } } } } SysMsg(playerid,"Nenhum sinal de satélite encontrado. [E004]"); } else SysMsg(playerid,"Você precisa ser um membro do SASP ou Aperture."); return true; } CMD:equipar(playerid)//equipar { if(!Logged{playerid}) return true; gstr[0] = EOS; if(IsCop(playerid) && (IsPlayerInRangeOfPoint(playerid,3.5,651.307861, -570.924926, 1004.765808) || IsPlayerInRangeOfPoint(playerid,3.5,327.232574, 307.493316, 999.148437) || IsPlayerInRangeOfPoint(playerid,2.0,1234.5601,767.7869,1010.8853) || IsPlayerInRangeOfPoint(playerid, 2.0, -330.4111,1793.7444,999.3145))) { if(HasTaser{playerid}) return SysMsg(playerid, "Você não pode usar este comando se estiver com um Taser equipado."); if(FactionRank[playerid] < 2) return SysMsg(playerid, "Você precisa ser rank 2 para isso."); gstr[0] = EOS; strcat(gstr, "Oficial de patrulha\nDetective"); if(FactionRank[playerid] > 3) strcat(gstr, "\nShotgun\nMP5"); if(FactionRank[playerid] > 6) strcat(gstr, "\nM4\nSPAS-12\nSniper"); if(strfind(FactionCustomRank[playerid], "SID") != -1 || IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) strcat(gstr, "\nGPS montável"); strcat(gstr, "\nDesarmar"); Dialog_Show(playerid, PoliceEquip, DIALOG_STYLE_LIST, "Police Cache de equipamento", gstr, "Selecionar", "Sair"); return true; } else if(Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_COP) { new vid = GetPlayerVehicleID(playerid), closest; if(vid == 0) closest = GetClosestVehicle(playerid); new Float:vpos[3]; GetVehiclePos(closest, vpos[0], vpos[1], vpos[2]); new isESUVeh = 0; switch(GetVehicleModel(closest)) { case 427, 528, 433, 544, 407: isESUVeh = 1; } if(IsFactionVehicle(closest) == FACTION_SACFD || (IsFactionVehicle(vid) == FACTION_COP && IsESU{playerid} && isESUVeh) || (IsFactionVehicle(closest) == FACTION_COP && IsESU{playerid} && IsPlayerInRangeOfPoint(playerid, 7.0, vpos[0], vpos[1], vpos[2]) && isESUVeh)) { format(gstr, sizeof(gstr), "Extintor de incêndio\nPole\nMachado de Fogo\nPá\nCamera\n"); if(FactionRank[playerid] > 4) strcat(gstr, "\nMotosserra"); strcat(gstr, "\nDesarmar"); Dialog_Show(playerid, FireEquip, DIALOG_STYLE_LIST, "Cache de equipamento", gstr, "Selecionar", "Sair"); return true; } } else if(Faction[playerid] == FACTION_NEWS) { if(IsPlayerInRangeOfPoint(playerid, 5.0, 1221.7062, 229.4432, 1019.5291) || IsFactionVehicle(GetNearestVehicle(playerid)) == Faction[playerid]) { new wep, ammo; GetPlayerWeaponData(playerid, GetWeaponSlot(43), wep, ammo); if(wep != 0) return SysMsg(playerid, "Você já tem uma camera."); GivePlayerWeaponEx(playerid,43,1000, 3); //Camera SendClientMessage(playerid, COLOR_BLUE, "Camera recebida."); return true; } } else SysMsg(playerid, "Eu acho que não amigo."); return true; } CMD:ammobox(playerid) { if(Faction[playerid] != FACTION_RESEARCH) return true; if(!IsPlayerInRangeOfPoint(playerid, 2.5, 248.341934, 1859.595825, 14.084012)) return true; Inventory[playerid][AmmoBox][AMMOBOX_PISTOL] = 10; Inventory[playerid][AmmoBox][AMMOBOX_SMG] = 10; Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN] = 10; Inventory[playerid][AmmoBox][AMMOBOX_RIFLE] = 10; Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT] = 10; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET AmmoBoxPistol = 10, AmmoBoxSMG = 10, AmmoBoxShotgun = 10, AmmoBoxRifle = 10, AmmoBoxAssaultR = 10 WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery); return true; } CMD:armas(playerid)//armas { if(!Logged{playerid}) return true; gstr[0] = EOS; if(Faction[playerid] == FACTION_RESEARCH) { if(IsPlayerInRangeOfPoint(playerid, 2.5, 248.341934, 1859.595825, 14.084012) || IsPlayerInRangeOfPoint(playerid, 2.5, 250.1942,1898.0831,1100.2180)) { format(sgstr, sizeof(sgstr), "GPS montável\nCamera\nLata de spray\nCassetete\nFaca\nKatana\n9mm\nPistola silenciada\nDesert Eagle\nShotgun\nSPAS-12\nUzi\nTec9\nMP5\nAK-47\nM4\nCountry Rifle\nSniper Rifle\nPára-quedas\nGás lacrimogêneo\nDesarmar"); Dialog_Show(playerid, APWeapons, DIALOG_STYLE_LIST, "Cache de armas de abertura", sgstr, "Selecionar", "Sair"); return true; } } else SysMsg(playerid, "Eu acho que não amigo."); return true; } CMD:health(playerid) { if(!Logged{playerid}) return true; if(Cash[playerid] < 100) return SysMsg(playerid, "Você precisa de $100 para isso.");//saude if(IsCop(playerid)) { if(IsPlayerInRangeOfPoint(playerid, 2.0, 653.7676, -570.6655, 1004.7658) || IsPlayerInRangeOfPoint(playerid, 2.0, 320.981262, 308.219970, 999.148437) || IsPlayerInRangeOfPoint(playerid,2.0, 1234.5601, 767.7869, 1010.8853) || IsPlayerInRangeOfPoint(playerid, 2.0, -330.4867, 1792.1184, 999.3145)) { Dialog_Show(playerid, HealthDialog, DIALOG_STYLE_MSGBOX, "Selecione tipo de colete", "Selecione tipo de colete", "Colete leve", "Colete pesado"); return true; } } else if(Faction[playerid] == FACTION_SACFD) { if(IsPlayerInRangeOfPoint(playerid, 2.0, 2374.1396, 235.2579, 2004.1659) || IsPlayerInRangeOfPoint(playerid, 2.0, -754.2998,-423.5245,1440.0979)) { RestrictedVest{playerid} = true; SetPlayerHealthEx(playerid, 100.0); SetPlayerArmourEx(playerid, 50.0, 1); GivePlayerCash(playerid, -100); SendClientMessage(playerid, COLOR_BLUE, "> Saúde e colete restauradas. (-$100)"); return true; } } else if(Faction[playerid] == FACTION_RESEARCH) { if(IsPlayerInRangeOfPoint(playerid,2.0,243.29104,1858.558349,14.084012) || IsPlayerInRangeOfPoint(playerid, 2.0, 247.9519,1894.1075,1100.2180) || IsPlayerInRangeOfPoint(playerid, 2.0, 1010.9411, -1138.9850, 2025.2595)) { Dialog_Show(playerid, HealthDialog, DIALOG_STYLE_MSGBOX, "Selecione tipo de colete", "Selecione tipo de colete", "Colete leve", "Colete pesado"); return true; } } return true; } CMD:alias(playerid, params[])//apelido { if(Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid)) { if(IsPlayerInRangeOfPoint(playerid, 3.0, -219.4361,-316.4091,2030.7196) || IsPlayerInRangeOfPoint(playerid, 3.0, 248.341934, 1859.595825, 14.084012) || IsPlayerInRangeOfPoint(playerid, 3.0, 656.1666, -568.3339, 1001.1180) && Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid)) { if(Faction[playerid] == FACTION_COP && strfind(FactionCustomRank[playerid], "SID") == -1) return SysMsg(playerid, "Você deve ser um membro SID para usar isso."); if(sscanf(params, "s[24]", hmData[playerid][hmNewName])) return SysMsg(playerid,"Use: /alias [Nome_Sobrenome]"); if(strcmp(GetName(playerid),hmData[playerid][hmNewName],false) == 0) return SysMsg(playerid,"Você já está usando esse nome."); if(!IsValidRoleplayName(hmData[playerid][hmNewName])) return SysMsg(playerid,"Esse nome não é RP."); if(strcmp(hmData[playerid][hmNewName], hmData[playerid][hmOldName], true)) // IF NEW NAME IS NOT THEIR REAL NAME { if(MySQLCheckAccount(hmData[playerid][hmNewName], playerid) != 0) return SysMsg(playerid,"Você não pode usar um nome que já existe"); // CHECK IF EXISTS, IF NEW NAME IS REAL NAME, WORK. } if(strlen(hmData[playerid][hmNewName]) > 24) return SysMsg(playerid,"Error: O comprimento máximo do nome é de 24 caracteres."); if(hmData[playerid][hmActive] == 1) return SysMsg(playerid, "Você não pode usar isso quando você já está alias. Volte ao seu nome original e depois alias de novo."); format(hmData[playerid][hmOldName], MAX_PLAYER_NAME, GetName(playerid)); if(hmData[playerid][hmActive] == 0) { format(hmData[playerid][hmOldName], MAX_PLAYER_NAME, GetName(playerid)); } if(SetPlayerName(playerid, hmData[playerid][hmNewName]) != 1) return SysMsg(playerid, "Esse nome é muito curto, muito longo, em uso, o mesmo ou contém caracteres inválidos."); SendClientMessageF(playerid,COLOR_DARKBLUE,"Você mudou seu apelido para: %s. Use /removealiaspara retornar ao seu nome original.", hmData[playerid][hmNewName]); if(Faction[playerid] == FACTION_RESEARCH) { foreach(new i: Player) { if(Faction[i] == FACTION_RESEARCH && i != playerid) { SendClientMessageF(i,COLOR_DARKBLUE,"%s mudou seu apelido para %s.", hmData[playerid][hmOldName], hmData[playerid][hmNewName]); } } } if(!strcmp(hmData[playerid][hmNewName], hmData[playerid][hmOldName], true)) { hmData[playerid][hmActive] = 0; return true; } hmData[playerid][hmActive] = 1; } else return SysMsg(playerid, "Você é precisa estar em estar na bancada para ser capaz de usar este comando."); } else return SysMsg(playerid, CMDFMSG); return true; } CMD:removealias(playerid) { if(Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid)) { if(IsPlayerInRangeOfPoint(playerid, 3.0, -219.4361,-316.4091,2030.7196) || IsPlayerInRangeOfPoint(playerid, 3.0, 248.341934, 1859.595825, 14.084012) || IsPlayerInRangeOfPoint(playerid, 3.0, 656.1666, -568.3339, 1001.1180) && Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid)) { if(Faction[playerid] == FACTION_COP && strfind(FactionCustomRank[playerid], "SID") == -1) return SysMsg(playerid, "Você deve ser o SID do membro para usar este."); if(strlen(hmData[playerid][hmOldName]) < 4) return SysMsg(playerid, "Você não está alias."); SetPlayerName(playerid, hmData[playerid][hmOldName]); hmData[playerid][hmActive] = 0; hmData[playerid][hmOldName][0] = 0; hmData[playerid][hmNewName][0] = 0; SendClientMessage(playerid, COLOR_BLUE, "Você voltou ao nome do seu personagem."); } else return SysMsg(playerid, "Você precisa estar no banco de trabalho para poder usar esse comando."); } else return SysMsg(playerid, CMDFMSG); return true; } CMD:attachgps(playerid, params[]) { if(!Logged{playerid}) return true; if(HasGPSMount[playerid] != -1) return SysMsg(playerid, "Você não possui um GPS montável em você."); if(Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH) { new vid = GetPlayerVehicleID(playerid), closest; if(vid == 0) { closest = GetClosestVehicle(playerid); new Float:vpos[3]; GetVehiclePos(closest, vpos[0], vpos[1], vpos[2]); if(closest == VehicleData[closest][IdVehicle] && IsPlayerInRangeOfPoint(playerid, 3.0, vpos[0], vpos[1], vpos[2])) { HasGPSMount[playerid] = VehicleData[closest][VehSQLID]; MySQLUpdateInt(SQLID[playerid], "GPSMount", VehicleData[closest][VehSQLID], "players"); SendClientMessage(playerid, COLOR_WHITE, "Você montou o dispositivo GPS no veículo, você pode acompanhá-lo usando /ping"); format(gstr, sizeof(gstr),"* %s pega um pequeno dispositivo e o planta sob o veículo *",NameRP(playerid)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000); OnePlayAnim(playerid, "BOMBER","BOM_Plant_Loop",4.0, 0, 0, 0, 0, 0); // Place Bomb return true; } } } return true; } CMD:ping(playerid, params[]) { if(!Logged{playerid}) return true; if(HasGPSMount[playerid] < 1) return SysMsg(playerid, "Você não montou um GPS em um veículo"); if(Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH) { for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(VehicleData[v][VehSQLID] == HasGPSMount[playerid]) { new zone[MAX_ZONE_NAME]; if(!IsVehicleSpawned(VehicleData[v][IdVehicle])) { format(sgstr,sizeof(sgstr),"* %s tira um dispositivo e empurra alguns botões *", NameRP(playerid)); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); PlayerPlaySound(playerid, SOUND_CHECKPOINT, 0.0, 0.0, 0.0); SysMsg(playerid,"{FFFFFF}*** To dispositivo não recebeu resposta ***"); return true; } GetVehicle2DZone(VehicleData[v][IdVehicle], zone, MAX_ZONE_NAME); format(sgstr,sizeof(sgstr),"* %s tira um dispositivo e empurra alguns botões *", NameRP(playerid)); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(sgstr,sizeof(sgstr),"{FFFFFF}*** O veículo foi localizado em {FF0000}%s {FFFFFF}***",zone); SendClientMessage(playerid,COLOR_WHITE,sgstr); PlayerPlaySound(playerid, SOUND_CHECKPOINT, 0.0, 0.0, 0.0); return true; } } } return true; } //==================== Fim ==================================// //2 Elite Trucking //Elite Trucking CMD:limpaneve(playerid, params[])//limpaneve { if(!Logged{playerid}) return true; new year, month, day; getdate(year, month, day); if(month != 12 && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Este comando só pode ser usado em dezembro."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo para usar este comando."); if(Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_TRUCKING || IsPlayerAdmin(playerid)) { new vehicleid = GetPlayerVehicleID(playerid); if(IsFactionVehicle(vehicleid) != Faction[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo de facção."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && (GetPlayerVehicleSeat(playerid) != 1 && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)) return SysMsg(playerid,"Você precisa estar no acento de condução or front passenger."); new modelid = GetVehicleModel(vehicleid); if(!SnowPlow{vehicleid}) { if(VehObject[vehicleid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Este veículo já tem um objeto anexado a ele."); if(modelid == 554) //yosemite { VehObject[vehicleid] = CreateVehicleObject(19601, vehicleid, 0.0, 2.7, -0.6, 0.0, 0.0, 180.0); SnowPlow{vehicleid} = true; } else if(modelid == 524) //cement truck { VehObject[vehicleid] = CreateVehicleObject(19601, vehicleid, 0.0, 4.15, -1.45, 0.0, 0.0, 180); SnowPlow{vehicleid} = true; } else SysMsg(playerid, "Você não está em um veículo adequado para usar isso."); } else { DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 3"); VehObject[vehicleid] = INVALID_OBJECT_ID; SnowPlow{vehicleid} = false; } } else SysMsg(playerid, "Você não pode usar este comando."); return true; } CMD:trailers(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Só os camionistas podem usar este comando."); if(FactionRank[playerid] < 3) return SysMsg(playerid,"ocê deve ser pelo menos Rank 3 para usar isso."); if(!IsPlayerInRangeOfPoint(playerid, 1.5, 611.9290, 1653.3989, 6.9922)) return SysMsg(playerid,"Você não está na garagem.."); format(gstr, sizeof(gstr), "Artigo Trailer 1"); strcat(gstr, "\nArtigo Trailer 2"); strcat(gstr, "\nArtigo Trailer 3"); strcat(gstr, "\nTrailer de Petrol"); strcat(gstr, "\nTrailer de utilidade"); Dialog_Show(playerid, TruckingTrailers, DIALOG_STYLE_LIST, "Trailers", gstr, "Selecionar", "Cancelar"); return true; } CMD:checkcombustivel(playerid, params[])//checkcombustivel { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_TRUCKING || IsPlayerAdmin(playerid)) { if(IsPlayerInRangeOfPoint(playerid, 3.5, 673.5842,1833.3052,5.1829) || IsFactionVehicle(GetPlayerVehicleID(playerid)) == FACTION_TRUCKING) { new subinfo[150]; gstr[0] = EOS; for(new v = 0; v < MAX_FUEL_STATIONS; v++) { format(subinfo, sizeof(subinfo), "%s Posto de gasolina (Gasolina: %i / %i Gal. - Diesel: %i / %i Gal.)\n\n", FuelStations[v][StationDescription], FuelStations[v][PetrolAmount], FuelStations[v][PetrolAmountMax], FuelStations[v][DieselAmount], FuelStations[v][DieselAmountMax]); strcat(gstr, subinfo); } Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Fuel Supply", gstr, "Done", ""); } else return SysMsg(playerid,"Você não está no escritório Elite Trucking Gas Management ou um caminhão de facções."); } else SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando."); return true; } CMD:entregacombustivel(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando."); if(FactionRank[playerid] < 3) return SysMsg(playerid,"Você deve ser pelo menos o ranking 3."); if(!IsPlayerInRangeOfPoint(playerid, 30.0, 673.5842,1833.3052,5.1829)) return SysMsg(playerid,"Você não está no escritório Elite Trucking Gas Management."); new vehicleid = GetPlayerVehicleID(playerid); if(!IsTruck(vehicleid)) return SysMsg(playerid,"Você precisa estar em um truck."); if(DeliveringFuel[playerid] > 0) return SysMsg(playerid,"Você já está fornecendo combustível."); if(GetVehicleTrailer(vehicleid) > 0) return SysMsg(playerid,"Por favor, retire todos os trailers antes de começar."); if(isnull(params)) return SysMsg(playerid,"Use: /entregacombustivel [gasolina/diesel]"); if(strcmp("gasolina", params, true) == 0) { DeliveringFuel[playerid] = 1; DeliveringFuelVeh[playerid][0] = vehicleid; DeiveringFuelAmount[playerid] = 0; IsTrucking[playerid] = 1; DeiveringFuelType[playerid] = FUEL_GASOLINA; SetPlayerCheckpointEx(playerid, -1021.005554, -661.875671, 32.007812, 7.0); SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA GASOLINA] Dirija até a fábrica de produtos químicos e pegue seu petroleiro."); return true; } else if(strcmp("diesel", params, true) == 0) { DeliveringFuel[playerid] = 1; DeliveringFuelVeh[playerid][0] = vehicleid; DeiveringFuelAmount[playerid] = 0; IsTrucking[playerid] = 1; DeiveringFuelType[playerid] = FUEL_DIESEL; SetPlayerCheckpointEx(playerid, -1021.005554, -661.875671, 32.007812, 7.0); SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA DIESEL] Dirija até a fábrica de produtos químicos e pegue seu petroleiro."); return true; } SysMsg(playerid,"Use: /entregacombustivel [gasolina/diesel]"); return true; } CMD:finalizarcombustivel(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando."); if(DeliveringFuel[playerid] == 0) return SysMsg(playerid,"Você não está fornecendo combustível."); if(DeliveringFuel[playerid] == 1) { DisablePlayerCheckpoint(playerid); DeiveringFuelAmount[playerid] = 0; DeiveringFuelType[playerid] = 0; DeliveringFuel[playerid] = 0; DeliveringFuelVeh[playerid][0] = 0; DeliveringFuelVeh[playerid][1] = 0; IsTrucking[playerid] = 0; SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA DE COMBUSTÍVEL] Trabalho cancelado."); return true; } SetPlayerCheckpointEx(playerid, 585.711547, 1664.336669, 6.992187, 10.0); DeliveringFuel[playerid] = 3; SendClientMessage(playerid, COLOR_WHITE, "[ENTREGA DE COMBUSTÍVEL] Dirija até a sede da Trucking para terminar e receber o pagamento."); return true; } CMD:reabastecerposto(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando."); if(DeliveringFuel[playerid] != 2) return SysMsg(playerid,"Você não está fornecendo combustível."); if(EngineStatus[GetPlayerVehicleID(playerid)] == 1) return SysMsg(playerid,"Desligue o motor antes de descarregar o combustível."); new fuelstation = -1; for(new i = 0; i < MAX_FUEL_STATIONS; i++) { if(IsPlayerInRangeOfPoint(playerid, 40.0, FuelStations[i][SignX], FuelStations[i][SignY], FuelStations[i][SignZ])) { fuelstation = i; break; } } if(fuelstation == -1) return SysMsg(playerid,"Você não está perto de um posto de combustível. (Red County, Bone County e Angel Pine)"); new fuelamount; if(sscanf(params, "i", fuelamount)) return SysMsg(playerid,"Use: /reabastecerposto [Quantidade]"); if(fuelamount < 1) return SysMsg(playerid,"O valor deve ser um número e maior que 0."); if(fuelamount > DeiveringFuelAmount[playerid]) return SysMsg(playerid,"Você não tem combustível suficiente no seu trailer de petroleiros."); switch(DeiveringFuelType[playerid]) { case FUEL_GASOLINA: { if(fuelamount + FuelStations[fuelstation][PetrolAmount] > FuelStations[fuelstation][PetrolAmountMax]) return SysMsg(playerid,"Este posto de gasolina não consegue suportar muita gasolina."); FuelStations[fuelstation][PetrolAmount] += fuelamount; DeiveringFuelAmount[playerid] -= fuelamount; UpdateFuelStationSign(fuelstation); format(gstr, sizeof(gstr), "Você adicionou %i Galões de petróleo para o posto de gasolina %s. Você pode terminar com /finalizarcombustivel a qualquer momento.", fuelamount, FuelStations[fuelstation][StationDescription]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "[ENTREGA GASOLINA]\n%i / 10000 Galões", DeiveringFuelAmount[playerid]); UpdateDynamic3DTextLabelText(DeliveringFuelLabel[playerid], COLOR_WHITE, gstr); } case FUEL_DIESEL: { if(fuelamount + FuelStations[fuelstation][DieselAmount] > FuelStations[fuelstation][DieselAmountMax]) return SysMsg(playerid,"Este posto de gasolina não consegue suportar tanto diesel."); FuelStations[fuelstation][DieselAmount] += fuelamount; DeiveringFuelAmount[playerid] -= fuelamount; UpdateFuelStationSign(fuelstation); format(gstr, sizeof(gstr), "Você abasteceu %i galões de diesel para o posto de gasolina %s. Você pode terminar com /finalizarcombustivel a qualquer momento.", fuelamount, FuelStations[fuelstation][StationDescription]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "[ENTREGA DIESEL]\n%i / 8000 Gallons", DeiveringFuelAmount[playerid]); UpdateDynamic3DTextLabelText(DeliveringFuelLabel[playerid], COLOR_WHITE, gstr); } } return true; } CMD:estregarestoque(playerid, params[])//estregarestoque { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid,"Somente os caminhoneiros podem usar esse comando."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o rank 2."); if(!IsPlayerInRangeOfPoint(playerid, 3.0, 608.5102,1651.6327,6.9922)) return SysMsg(playerid,"Você não está no escritório Elite Trucking."); if(DeliveringStock[playerid] > 0) return SysMsg(playerid,"Você já está entregando estoque."); new bcount; gstr[0] = EOS; for(new b = 0; b < MAX_BIZZ; b++) { if(BizzData[b][BizzRequestStock] == 1 && BizzData[b][BizzETDelivering] == 0)// { strcat(gstr, BizzData[b][BizzDescription]); strcat(gstr, "\n"); bcount ++; if(bcount == 40) break; } } if(bcount > 0) { SendClientMessage(playerid,COLOR_GOLD,"Selecione até 3 empresas para reabastecer ao mesmo tempo..."); Dialog_Show(playerid, StockDelivery, DIALOG_STYLE_LIST, "Lista de empresas que solicitam uma entrega", gstr, "Adicionar", "Cancelar"); } else SysMsg(playerid,"Não há empresas que solicitou um reabastecimento."); return true; } CMD:verchamadas(playerid, params[])//verchamadas { if(Faction[playerid] != FACTION_TRUCKING && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Você deve estar no Elite Trucking para usar este comando."); new calls = 0; foreach(new i: Player) { if(HasActiveTruckingCall{i}) { sgstr[0] = EOS; strunpack(sgstr, TruckingCallMsg[i]); SendClientMessageF(playerid, COLOR_WHITE, "[Elite Trucking Hotline]: [PN: %i] [Nome: %s] %s", PhoneData[i][pNumber], NameRP(i), sgstr); calls++; } } if(calls == 0) return SysMsg(playerid, "Sem chamadas activas."); return true; } CMD:limparchamada(playerid, params[]) { new playa = -1; if(Faction[playerid] != FACTION_TRUCKING && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Você deve estar no Elite Trucking para usar este comando."); if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /limparchamada [playerID ou name]"); if(!HasActiveTruckingCall{playa}) return SysMsg(playerid, "Essa pessoa nem sequer tem uma ligação para limpar."); HasActiveTruckingCall{playa} = false; strdel(TruckingCallMsg[playa], 0, 128); format(gstr, sizeof(gstr), "Você limpou a chamada de %s.", NameRP(playa)); return true; } //==================== Fim ==================================// //3 SACFD //SACFD CMD:heal(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH) { new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /heal [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode se curar."); if(!Dead{playa}) return SysMsg(playerid, "Este jogador não está abatido."); if(DeathTimer[playa] == 0) return SysMsg(playerid, "O temporizador de morte deste jogador expirou. Eles não podem ser curados."); new injuriescount = 0, injuries[100], namestring[64]; gstr[0] = EOS; strcat(gstr, "Tipo de lesão\tLocalização\tArma\n"); for(new hit = 0; hit < HitCount[playa]; hit++) { if(Injuries[playa][hit][pBodypart] > 0) { switch(Injuries[playa][hit][pWeaponID]) { // Blunt Weapons case 0,1,2,3,5,6,7,10,11,12,13,14,15,41,42,43,44,45,46: { format(injuries, sizeof(injuries), "Traumatismo craniano\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID])); } // Stab Weapons case 4, 8, 9: { format(injuries, sizeof(injuries), "Ferida da facada\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID])); } // Gunshot Wounds case 22..34,38: { format(injuries, sizeof(injuries), "Ferimento de bala\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID])); } // Explosion/Burn case 16,17,18,35,36,37,39,40,51: { format(injuries, sizeof(injuries), "Explosão/Queimadura\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID])); } default: { format(injuries, sizeof(injuries), "Desconhecido\t%s\t%s\n", ReturnBodyPartName(Injuries[playa][hit][pBodypart]), GetWeaponNameFromID(Injuries[playa][hit][pWeaponID])); // Unknown wound } } injuriescount ++; strcat(gstr, injuries); } } format(namestring, sizeof(namestring), "Lesões de %s", NameRP(playa)); if(injuriescount > 0) { Healing[playerid] = playa; Dialog_Show(playerid, HealDialog, DIALOG_STYLE_TABLIST_HEADERS, namestring, gstr, "Fechar", ""); } else if(injuriescount == 0 && Dead{playa}) RevivePlayer(playa); else SysMsgF(playerid, "%s não tem quaisquer lesões.", NameRP(playa)); } else SysMsg(playerid,"Você precisa ser um membro do SACFD."); return true; } CMD:maca(playerid, params[])//maca //retcher { if(!Logged{playerid}) return true; new action[9], playa = -1; if(sscanf(params, "s[9]U(-1)", action, playa)) return SysMsg(playerid,"Use: /maca [equipar/dropar/pegar/guardar/carregar/descarregar/sair/intoambu]"); new Float:pX,Float:pY,Float:pZ, Float:oX,Float:oY,Float:oZ; GetPlayerPos(playerid, pX, pY, pZ); if(strcmp("equipar", action, true) == 0) { if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso."); if(StretcherEquipped[playerid] > 0) return SysMsg(playerid,"Você já tem uma maca."); if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 416) return SysMsg(playerid,"Você deve estar na parte de trás de uma ambulância para obter uma maca."); if(GetPlayerVehicleSeat(playerid) != 2 && GetPlayerVehicleSeat(playerid) != 3) return SysMsg(playerid,"Você deve estar na parte de trás de uma ambulância para obter uma maca."); StretcherEquipped[playerid] = CreateDynamicObject(1997, pX, pY + 1.5, pZ - 1.0, 0.0, 0.0, 100.0);//2146 StretcherHolding[playerid] = 1; RemovePlayerFromVehicle(playerid); format(gstr, sizeof(gstr),"* Paramédico %s puxa uma maca para fora da ambulância. *",NameEx(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } if(strcmp("dropar", action, true) == 0) { new Float:pXb, Float:pYb; new Float:Ang = GetXYInFrontOfPlayer(playerid, pXb, pYb, 1.7); if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(StretcherHolding[playerid] == 0) return SysMsg(playerid,"Você precisa ter uma maca."); if(StretcherPlayerID[playerid] != -1) return SysMsg(playerid,"Você não pode deixar a maca com alguém sobre ela."); DestroyDynamicObjectEx(StretcherEquipped[playerid], "StretcherEquipped[playerid] 0"); StretcherEquipped[playerid] = CreateDynamicObject(1997, pXb, pYb, pZ-1.0, 0.0, 0.0, Ang+180); StretcherHolding[playerid] = 0; StretcherTimer[playerid] = SetTimerEx("DestroyStretcher", 600000, 0, "ii", playerid, StretcherEquipped[playerid]); foreach(new p: Player) Streamer_Update(p); format(gstr, sizeof(gstr),"* Paramédico %s trava as rodas da maca no lugar. *",NameEx(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } if(strcmp("pegar", action, true) == 0) { GetDynamicObjectPos(StretcherEquipped[playerid],oX,oY,oZ); new Float:distance = DistanceBetweenPoints(pX,pY,pZ,oX,oY,oZ); if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você precisa ter uma maca."); if(StretcherPlayerID[playerid] != -1) return SysMsg(playerid,"Você não pode deixar a maca com alguém sobre ela."); if(StretcherHolding[playerid] == 2) return SysMsg(playerid,"Você já tem uma maca"); if(distance > 5) return SysMsg(playerid,"Você não está perto o suficiente."); KillTimer(StretcherTimer[playerid]); StretcherTimer[playerid] = -1; StretcherHolding[playerid] = 2; format(gstr, sizeof(gstr),"* Paramédico %s destrava as rodas na maca *",NameEx(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } if(strcmp("guardar", action, true) == 0) { if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser rank 2 para usar este comando."); if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você não tem uma maca para guardar."); if(StretcherPlayerID[playerid] >= 0) return SysMsg(playerid,"Descarregue a maca antes de guardar."); new Float:vX, Float:vY, Float:vZ; for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(GetVehicleModel(v) == 416) { GetVehiclePos(v, vX, vY, vZ); if(IsPlayerInRangeOfPoint(playerid, 10.0, vX, vY, vZ)) { DestroyDynamicObjectEx(StretcherEquipped[playerid], "StretcherEquipped[playerid] 1"); StretcherEquipped[playerid] = 0; StretcherHolding[playerid] = 0; format(gstr, sizeof(gstr),"* Paramédico %s coloca a maca na parte de trás da ambulância. *",NameEx(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } SysMsg(playerid,"Você deve estar perto de uma ambulância para arrumar uma maca."); return true; } if(strcmp("carregar", action, true) == 0) { if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso."); if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você deve ter uma maca para carregar alguém sobre ela."); if(StretcherPlayerID[playerid] >= 0) return SysMsg(playerid,"Você já tem alguém carregado na maca."); if(sscanf(params, "s[8]u", action, playa)) return SysMsg(playerid,"Use: /maca carregar [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso com você mesmo."); if(StretcherEquipped[playa] > 0) return SysMsg(playerid,"Você não pode colocar alguém com uma maca em uma maca."); if(StretcherHolding[playerid] == 0) return SysMsg(playerid, "Você precisa segurar a maca."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para colocá-lo em uma maca."); StretcherPlayerID[playerid] = playa; OnePlayAnim(playa,"BEACH", "bather", 4.0, 1, 0, 0, 1, -1); format(gstr, sizeof(gstr),"* Paramédico %s agora está puxando a maca com %s sobre. *",NameEx(playerid),NameRP(StretcherPlayerID[playerid])); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s agora em sua maca. Você pode tirá-los usando '/maca descarregar'",NameEx(StretcherPlayerID[playerid])); SendClientMessage(playerid,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"%s colocou você na maca. Use '/maca sair' se você não quer estar com isso.",NameEx(playerid)); SendClientMessage(StretcherPlayerID[playerid],COLOR_WHITE,gstr); return true; } if(strcmp("descarregar", action, true) == 0) { if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso."); if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"You must have a stretcher to load someone on it."); if(StretcherPlayerID[playerid] == -1) return SysMsg(playerid,"You don't even have someone loaded on the stretcher."); if(StretcherHolding[playerid] == 0) return SysMsg(playerid, "You need to be holding the stretcher"); new Float:playerpos[4]; TogglePlayerControllable(StretcherPlayerID[playerid], 1); GetPlayerPos(playerid, playerpos[0], playerpos[1], playerpos[2]); GetXYInFrontOfPlayer(playerid, playerpos[0], playerpos[1], -2); SetPlayerPos(StretcherPlayerID[playerid], playerpos[0], playerpos[1], playerpos[2]); ClearAnimations(StretcherPlayerID[playerid]); format(gstr, sizeof(gstr),"%s has been removed from the stretcher.",NameEx(StretcherPlayerID[playerid])); SendClientMessage(playerid,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"%s has removed you from their stretcher.",NameEx(playerid)); SendClientMessage(StretcherPlayerID[playerid],COLOR_WHITE,gstr); StretcherPlayerID[playerid] = -1; return true; } if(strcmp("sair", action, true) == 0) { foreach(new i: Player) { if(StretcherPlayerID[i] == playerid) { new Float:playerpos[4]; TogglePlayerControllable(playerid, 1); GetPlayerPos(i, playerpos[0], playerpos[1], playerpos[2]); GetXYInFrontOfPlayer(i, playerpos[0], playerpos[1], 6.0); SetPlayerPos(playerid, playerpos[0], playerpos[1], playerpos[2]); ClearAnimations(playerid); format(gstr, sizeof(gstr),"%s saiu da maca.",NameEx(playerid)); SendClientMessage(i,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Você saiu da maca de %s.",NameEx(i)); SendClientMessage(playerid,COLOR_WHITE,gstr); StretcherPlayerID[i] = -1; return true; } } SysMsg(playerid,"Você não está em uma maca tão claramente não pode sair de um."); return true; } if(strcmp("intoambu", action, true) == 0)//observar { if(Faction[playerid] != FACTION_SACFD && !IsESU{playerid}) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você precisa ser o rank 2 para usar isso."); if(StretcherEquipped[playerid] == 0) return SysMsg(playerid,"Você deve ter uma maca."); if(StretcherPlayerID[playerid] == -1) return SysMsg(playerid,"Você nem tem alguém carregado na maca."); new Float:vX, Float:vY, Float:vZ; for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(GetVehicleModel(v) == 416) { GetVehiclePos(v, vX, vY, vZ); if(IsPlayerInRangeOfPoint(playerid, 10.0, vX, vY, vZ)) { new seatid = 2; foreach(new i: Player) { if(GetPlayerVehicleID(i) == v) { if(GetPlayerVehicleSeat(i) == 2) seatid = 3; if(GetPlayerVehicleSeat(i) == 3 && seatid == 3) seatid = -1; } } if(seatid == -1) return SysMsg(playerid,"Não há assentos livres na parte de trás desta ambulância."); PutPlayerInVehicle(StretcherPlayerID[playerid], v, seatid); TogglePlayerControllable(StretcherPlayerID[playerid], 1); format(gstr, sizeof(gstr),"* Paramédico %s empurra a maca com %s na parte de trás da ambulância. *",NameEx(playerid),NameRP(StretcherPlayerID[playerid])); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); DestroyDynamicObjectEx(StretcherEquipped[playerid], "StretcherEquipped[playerid] 2"); StretcherEquipped[playerid] = 0; StretcherPlayerID[playerid] = -1; StretcherHolding[playerid] = 0; return true; } } } SysMsg(playerid,"Você deve estar perto de uma ambulância, para colocar uma maca dentro."); return true; } return true; } CMD:str(playerid, params[]) return cmd_maca(playerid, params); CMD:acriarfogo(playerid, params[]) { if(!Logged{playerid}) return true; if((Faction[playerid] == FACTION_SACFD && FactionRank[playerid] > 8) || IsPlayerAdminLevelOK(playerid, 3)) { //if(GetPlayerInterior(playerid) > 0) return SysMsg(playerid, "You cannot create a fire here."); if(isnull(params)) return SysMsg(playerid,"Use: /criarfogo [pequeno/med/grande]"); if(strcmp("pequeno", params, true) == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 2.5); PlaceFire(x, y, z, 1, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), true); return true; } if(strcmp("med", params, true) == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 2.5); PlaceFire(x, y, z, 2, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), true); return true; } if(strcmp("grande", params, true) == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 2.5); PlaceFire(x, y, z, 3, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), true); return true; } } return true; } CMD:criarfogo(playerid, params[]) { if(!Logged{playerid}) return true; if((Faction[playerid] == FACTION_SACFD && FactionRank[playerid] > 8) || IsPlayerAdminLevelOK(playerid, 2)) { //if(GetPlayerInterior(playerid) > 0) return SysMsg(playerid, "You cannot create a fire here."); if(isnull(params)) return SysMsg(playerid,"Use: /criarfogo [pequeno/med/gramde]"); if(strcmp("pequeno", params, true) == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 2.5); PlaceFire(x, y, z, 1, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false); return true; } if(strcmp("med", params, true) == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 2.5); PlaceFire(x, y, z, 2, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false); return true; } if(strcmp("grande", params, true) == 0) { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); GetXYInFrontOfPlayer(playerid, x, y, 2.5); PlaceFire(x, y, z, 3, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false); return true; } } return true; } CMD:scba(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_SACFD || (Faction[playerid] == FACTION_COP && IsESU{playerid})) { new playerskin = GetPlayerSkin(playerid); if(Faction[playerid] == FACTION_SACFD && (playerskin != 277 && playerskin != 278 && playerskin != 279)) return SendClientMessage(playerid, COLOR_WHITE, "Você precisa de seu equipamento de bunker em primeiro lugar!"); if(Faction[playerid] == FACTION_COP && IsESU{playerid} && (playerskin != 277 && playerskin != 278 && playerskin != 279)) SetPlayerSkinEx(playerid, 279); if(scba[playerid] == 0) { new index = GetFreePlayerObjectIndex(playerid); if(index != -1) { AttachedObjects[playerid][index][aoModelID] = 1008; AttachedObjects[playerid][index][aoBone] = 1; SetPlayerAttachedObject(playerid, index, 19816, 1, -0.012000, -0.187999, 0.000000, -0.499998, -91.499885, 8.499999, 1.162999, 1.238000, 1.291000); SendClientMessage(playerid, COLOR_WHITE, "Seu SCBA está agora ligado"); OnePlayAnim(playerid,"PARACHUTE","PARA_Land",4,0,0,0,0,0); scba[playerid] = 1; } else return SysMsg(playerid, "Você tem muitos objetos em seu personagem. Remova um para usar este comando."); } else if(scba[playerid] == 1) { if(smask[playerid] == 1) return SendClientMessage(playerid, COLOR_WHITE, "Você precisa tirar sua máscara primeiro."); for(new index = 0; index < 6; index++) { if(AttachedObjects[playerid][index][aoModelID] == 1008) { AttachedObjects[playerid][index][aoModelID] = 0; AttachedObjects[playerid][index][aoBone] = 0; SendClientMessage(playerid, COLOR_WHITE, "Seu SCBA está agora desligado."); RemovePlayerAttachedObject(playerid, index); OnePlayAnim(playerid,"PARACHUTE","PARA_Land",4,0,0,0,0,0); scba[playerid] = 0; SetPlayerSkinEx(playerid, Clothes[playerid][4]); return true; } } SendClientMessage(playerid, COLOR_GREY, "Atualmente, você não possui equipamentos SCUBA equipados."); scba[playerid] = 0; } } else return SysMsg(playerid, "Você precisa ser um membro do SACFD ou ESU para usar esse comando."); return true; } CMD:smask(playerid, params[]) { if(smask[playerid] == 0) { if(scba[playerid] == 0) return SendClientMessage(playerid, COLOR_WHITE, "Você precisa do seu SCBA primeiro!"); new index = GetFreePlayerObjectIndex(playerid); if(index != -1) { OnePlayAnim(playerid,"goggles","goggles_put_on",4,0,0,0,0,0); AttachedObjects[playerid][index][aoModelID] = 19472; AttachedObjects[playerid][index][aoBone] = 2; SetPlayerAttachedObject(playerid,index,19472,2,-0.033000,0.124999,0.002999,-84.900085,-171.599990,2.100000,1.255001,1.124000,1.293001); SendClientMessage(playerid, COLOR_WHITE, "Sua máscara SCBA está agora ligada"); smask[playerid] = 1; CanPlayerChoke{playerid} = false; } else return SendClientMessage(playerid, COLOR_GREY, "Você tem muitos objetos em seu personagem. Remova um para usar este comando."); } else if(smask[playerid] == 1) { for(new index = 0; index < 6; index++) { if(AttachedObjects[playerid][index][aoModelID] == 19472) { AttachedObjects[playerid][index][aoModelID] = 0; AttachedObjects[playerid][index][aoBone] = 0; RemovePlayerAttachedObject(playerid, index); SendClientMessage(playerid, COLOR_WHITE, "Sua máscara SCBA está agora desligada."); smask[playerid] = 0; OnePlayAnim(playerid,"goggles","goggles_put_on",4,0,0,0,0,0); CanPlayerChoke{playerid} = true; PlayerChoking{playerid} = false; return true; } } SendClientMessage(playerid, COLOR_GREY, "Você não possui máscara."); smask[playerid] = 0; } return true; } CMD:detox(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); new playa = -1, method[8]; if(sscanf(params, "s[8]u", method, playa)) return SysMsg(playerid,"Use: /detox [alcool/drogas] [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode se desintoxicar."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para desintoxicá-los."); if(strcmp(method, "drogas", true) == 0) { if(DrugSpamTimer[playa] == 0) return SysMsg(playerid,"Esta pessoa não parece ter nenhum efeito colateral de drogas."); DrugSpamTimer[playa] = 0; SetPlayerWeather(playa, gServerWeather); DrunkLevel[playerid] = 0; SetPlayerDrunkLevel(playa, 0); TextDrawHideForPlayer(playa, WeedEffect); format(gstr, sizeof(gstr),"* Paramédico %s desintoxica %s usando uma injeção de Narcan. *", NameEx(playerid), NameEx(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Paramédico %s desintoxicado você para remover os efeitos das drogas.",NameEx(playerid)); SendClientMessage(playa,COLOR_RED,gstr); format(gstr, sizeof(gstr),"Você desintoxicado %s para remover os efeitos das drogas.",NameEx(playa)); SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr); } else if(strcmp(method, "alcool", true) == 0) { new drunkLevel = GetPlayerDrunkLevel(playa); if(drunkLevel < 100) return SysMsg(playerid,"Esta pessoa não parece estar sob a influência do álcool."); if(drunkLevel > 10000) SetPlayerDrunkLevel(playa, 2500); else SetPlayerDrunkLevel(playa, 0); format(gstr, sizeof(gstr),"* Paramédico %s desintoxica %s para reduzir os níveis de álcool. *", NameEx(playerid), NameEx(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Paramédico %s te desintoxicou.",NameEx(playerid)); SendClientMessage(playa,COLOR_RED,gstr); format(gstr, sizeof(gstr),"Você desintoxicou %s.",NameEx(playa)); SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr); } return true; } CMD:pagermsg(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); if(FactionRank[playerid] < 5) return SysMsg(playerid,"Você precisa ser pelo menos o rank 5."); if(!PagerStatus{playerid}) return SysMsg(playerid, "Seu pager não está ligado."); if(isnull(params)) return SysMsg(playerid,"Use: /pagermsg [mensagem]"); foreach(new t: Player) { if(Logged{t} && Faction[t] == FACTION_SACFD && PagerStatus{t} && Faction[t] == Faction[playerid]) { if(t != playerid && ADuty[playerid] == 0) { format(gstr, sizeof(gstr), "A pager is heard. * BEEP BEEP * ((%s))", NameRP(t)); ProxDetector(20.0,t,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } SendClientMessageF(t, COLOR_ORANGE, "[Pager Msg] %s: %s", GetPlayersFirstName(playerid), params); } } return true; } CMD:pager(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_SACFD) { if(PagerStatus{playerid}) { PagerStatus{playerid} = false; SendClientMessage(playerid,COLOR_GOLD,"Seu pager agora está desligado."); } else { PagerStatus{playerid} = true; SendClientMessage(playerid,COLOR_GOLD,"Seu pager está agora ligado."); } } else return SysMsg(playerid,"Você precisa ser um membro do SACFD."); return true; } CMD:resgate(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /rescue [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode se resgatar."); if(WantsRescue[playa] == 1) return SysMsg(playerid,"Esse jogador já quer ajuda."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você precisa estar proximo ao jogador para fazer isso."); WantsRescue[playa] = playerid+500; format(gstr, sizeof(gstr),"Bombeiro %s quer ajudá-lo. Escreva '/aceitar resgate' se você aceitar.",NameEx(playerid)); SendClientMessage(playa,COLOR_RED,gstr); format(gstr, sizeof(gstr),"Você enviou um pedido de resgate para %s.",NameEx(playa)); SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr); return true; } CMD:cut(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_SACFD) return SysMsg(playerid,"Você precisa ser um membro do SACFD."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /cut [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid,"Esse jogador não está conectado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode se cortar."); if(WantsRescue[playa] != 1) return SysMsg(playerid,"Esse jogador não quer assistência."); new vehid = GetPlayerVehicleID(playa); if(vehid == 0) return SysMsg(playerid,"Esse jogador não está em um veículo."); if(!VehicleHasWindows(vehid)) return SysMsg(playerid,"Esse jogador não pode ser cortado desse veículo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para curá-los."); RemovePlayerFromVehicle(playa); format(gstr, sizeof(gstr),"* Bombeiro %s retira %s fora do %s usando uma grande ferramenta hidráulica. *",NameEx(playerid), NameEx(playa), GetVehicleName(vehid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } //==================== Fim ==================================// //4 SAN //SAN CMD:news(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(isnull(params)) return SysMsg(playerid,"Use: /news [mensagem]"); NewsToggle{playerid} = true; foreach(new i: Player) { if(Logged{i} && NewsToggle{i}) { SendSplitMessageF(i, COLOR_PINK, "[NEWS] %s %s: %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params); } } return true; } CMD:checkweather(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); SendClientMessageF(playerid, COLOR_WHITE, "[Previão do tempo] Atual: %s, Esperado: %s", GetWeatherName(gServerWeather), GetWeatherName(gServerUpcomingWeather)); return true; } CMD:interview(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 para usar isso."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(Interviewer != -1) return SysMsg(playerid,"Já existe uma entrevista."); new playa = -1, showname[20]; if(sscanf(params, "us[20]", playa, showname)) return SysMsg(playerid,"Use: /entrevista [player id ou nome] [mostrar nome]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode entrevistar-se."); InterviewPlayer = playa; Interviewer = playerid; format(InterviewName, 20, showname); SendClientMessageF(InterviewPlayer, COLOR_WHITE, "%s começou uma entrevista com você. Use '/ichat' para entrar no ar!", NameEx(Interviewer)); SendClientMessageF(Interviewer, COLOR_WHITE, "Você começou uma entrevista com %s. Use '/ichat' para conversar durante uma entrevista!", NameEx(InterviewPlayer)); return true; } CMD:ichat(playerid, params[]) { if(!Logged{playerid}) return true; if(InterviewPlayer != playerid && Interviewer != playerid) return SysMsg(playerid,"Você não está em uma entrevista."); if(isnull(params)) return SysMsg(playerid,"Use: /ichat [mensagem]"); NewsToggle{playerid} = true; if(InterviewPlayer == playerid) { foreach(new i: Player) { if(Logged{i} && NewsToggle{i}) { SendSplitMessageF(i, COLOR_PINK, "[ENTREVISTA DE NOTÍCIAS] %s %s: %s", InterviewName, NameEx(playerid), params); } } } else if(Interviewer == playerid) { foreach(new i: Player) { if(Logged{i} && NewsToggle{i}) { SendSplitMessageF(i, COLOR_PINK, "[ENTREVISTA DE NOTÍCIAS] Hospedeiro %s: %s", NameEx(playerid), params); } } } return true; } CMD:endinterview(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(Interviewer == -1) return SysMsg(playerid,"Não há entrevista."); if(Interviewer != playerid) return SysMsg(playerid,"Você não é o anfitrião da entrevista."); format(gstr, sizeof(gstr),"A entrevista foi encerrada por %s.", NameEx(Interviewer)); SendClientMessage(InterviewPlayer,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Você encerrou a entrevista com %s.", NameEx(InterviewPlayer)); SendClientMessage(Interviewer,COLOR_WHITE,gstr); InterviewPlayer = -1; Interviewer = -1; InterviewName[0] = 0; return true; } CMD:starttalkshow(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost != -1) return SysMsg(playerid,"Já existe um programa de entrevistas ao vivo."); TalkshowHost = playerid; SendClientMessage(TalkshowHost, COLOR_WHITE, "Você iniciou um programa de entrevistas. Use /tchat para falar no ar!"); foreach(new i: Player) if(Logged{i} && Faction[i] == FACTION_NEWS && i != playerid) SendClientMessageF(i, COLOR_PINK, "[TALKSHOW ALERTA] %s começou um programa de entrevistas.", NameEx(playerid)); return true; } CMD:endtalkshow(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento."); TalkshowHost = -1; TalkshowPlayer = -1; for(new x = 0; x < sizeof(TalkshowCallers); x++) TalkshowCallers[x] = -1; SendClientMessage(playerid, COLOR_PINK, "Você encerrou o programa de entrevistas."); foreach(new i: Player) if(Logged{i} && Faction[i] == FACTION_NEWS && i != playerid) SendClientMessageF(i, COLOR_PINK, "[TALKSHOW ALERTA] %s terminou seu programa de entrevistas.", NameEx(playerid)); return true; } CMD:callers(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento."); new playa, callers = 0; for(new x = 0; x < sizeof(TalkshowCallers); x++) { if(TalkshowCallers[x] != -1) { playa = TalkshowCallers[x]; callers ++; SendClientMessageF(playerid, COLOR_PINK, "Chamador %i: %s [PN: %i]", callers, PhoneData[playa][pOwnerName], PhoneData[playa][pNumber]); } } return true; } CMD:acceptcaller(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento."); new callernumber; if(sscanf(params, "i", callernumber)) return SysMsg(playerid, "Use: /acceptcaller [Chamador do ID /chamarers]"); if(callernumber < 0 && callernumber > sizeof(TalkshowCallers)) return SysMsgF(playerid, "Chamador ID deve ser maior que 0 e menos de %i", sizeof(TalkshowCallers)); if(TalkshowCallers[callernumber - 1] == -1) return SendClientMessageF(playerid, COLOR_PINK, "Não há ninguém na linha %i", callernumber + 1); TalkshowPlayer = TalkshowCallers[callernumber - 1]; SendClientMessageF(TalkshowPlayer, COLOR_PINK, "Você está agora ao vivo em um talk show com %s. Use /tchat para falar.", NameEx(playerid)); SendClientMessageF(playerid, COLOR_PINK, "%s agora está em live no talk show.", NameEx(TalkshowPlayer)); return true; } CMD:endcall(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento."); if(TalkshowPlayer == -1) return SysMsg(playerid, "Atualmente, você não está em uma chamada com alguém."); SendClientMessage(TalkshowPlayer, COLOR_PINK, "Sua conexão com SAN foi fechada."); SendClientMessageF(TalkshowHost, COLOR_PINK, "Você encerrou a chamada com %s", NameEx(TalkshowPlayer)); TalkshowPlayer = -1; return true; } CMD:denycaller(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost == -1) return SysMsg(playerid, "Não há shows de entrevistas ao vivo no momento."); new callernumber; if(sscanf(params, "i", callernumber)) return SysMsg(playerid, "Use: /acceptcaller [Chamador do ID /chamarers]"); if(callernumber < 0 && callernumber > sizeof(TalkshowCallers)) return SysMsgF(playerid, "Chamador ID deve ser maior que 0 e menos de %i", sizeof(TalkshowCallers)); if(TalkshowCallers[callernumber - 1] == -1) return SendClientMessageF(playerid, COLOR_PINK, "Não há ninguém online %i", callernumber + 1); SendClientMessageF(playerid, COLOR_PINK, "Você negou a chamada de %s.", NameEx(TalkshowCallers[callernumber - 1])); TalkshowCallers[callernumber - 1] = -1; return true; } CMD:toglines(playerid) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você deve ser membro da News Corp."); if(FactionRank[playerid] < 2) return SysMsg(playerid,"Você deve ser pelo menos o ranking 2 to use this."); if(Duty[playerid] == 0) return SysMsg(playerid,"Você deve estar de serviço para usar isso."); if(TalkshowHost == -1) return SysMsg(playerid, "Não há talk shows ao vivo no momento."); SANCallers = !SANCallers; if(SANCallers) SendClientMessage(playerid, COLOR_PINK, "Você abriu as linhas de chamadas da SAN."); else SendClientMessage(playerid, COLOR_PINK, "Você fechou as linhas de chamadas da SAN."); return true; } CMD:tchat(playerid, params[]) { if(!Logged{playerid}) return true; if(TalkshowPlayer != playerid && TalkshowHost != playerid) return SysMsg(playerid, "Você não está em um programa de entrevistas."); if(isnull(params)) return SysMsg(playerid, "Use: /tchat [mensagem]"); NewsToggle{playerid} = true; foreach(new i: Player) { if(Logged{i} && NewsToggle{i}) { if(TalkshowHost == playerid) SendSplitMessageF(i, COLOR_PINK, "[TALK SHOW] Hospedeiro %s: %s", NameEx(playerid), params); else if(TalkshowPlayer == playerid) SendSplitMessageF(i, COLOR_PINK, "[TALK SHOW] Chamador %s: %s", NameEx(playerid), params); } } return true; } //==================== Fim ==================================// //5 Silver Trading //Silver Trading CMD:properties(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid,7.5,1325.923950,183.807281,1858.25976) && Faction[playerid] != FACTION_PROP) return SysMsg(playerid,"Você deve estar nos escritórios Silver Trading para usar esse comando."); Dialog_Show(playerid, STPropertiesMenu, DIALOG_STYLE_LIST, "Selecionar tipo de lista", "Veja Silver Trading Properties\nVer casas livre", "Selecionar", "Cancelar"); return true; } CMD:addp(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG); new idx = 0, forsale, price; if(sscanf(params, "ii", forsale, price)) return SysMsg(playerid,"Use: /addp [à venda? 0/1/2] [$preço]"); if(forsale < 0 || forsale > 2) return SysMsg(playerid,"O parâmetro de venda deve ser 1(não), 2(sim), ou 0(escondido de /properties)."); if(price < 1 || price > 100000000) return SysMsg(playerid,"parâmetro de preço deve estar entre 1 e 100,000,000."); for(idx = 0; idx < MAX_HOUSES; idx++) { if(IsPlayerInRangeOfPoint(playerid, 0.75, HouseData[idx][oPosX], HouseData[idx][oPosY], HouseData[idx][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[idx][HouseExtVW]) { HouseData[idx][HouseOwnerSQLID] = -5; MySQLUpdateInt(HouseData[idx][HouseSQLID], "OwnerSQLID", -5, "houses"); if(forsale != 0) { mysql_format(conn, mquery, sizeof(mquery), "REPLACE INTO traders (Type, ForSale, Price, SQLID, Description) VALUES (1, %i, %i, %i, '%e')", forsale - 1, price, HouseData[idx][HouseSQLID], HouseData[idx][HouseDescription]); mysql_pquery(conn, mquery); } SendClientMessageF(playerid, COLOR_WHITE, "A casa '%s' agora está em Silver Trading por $%i", HouseData[idx][HouseDescription], price); return true; } } for(idx = 0; idx < MAX_BIZZ; idx++) { if(IsPlayerInRangeOfPoint(playerid, 0.75, BizzData[idx][oPosX], BizzData[idx][oPosY], BizzData[idx][oPosZ])) { BizzData[idx][BizzOwnerSQLID] = -5; MySQLUpdateInt(BizzData[idx][BizzSQLID], "OwnerSQLID", -5, "bizz"); if(forsale != 0) { mysql_format(conn, mquery, sizeof(mquery), "REPLACE INTO traders (Type, ForSale, Price, SQLID, Description) VALUES (2, %i, %i, %i, '%e')", forsale - 1, price, BizzData[idx][BizzSQLID], BizzData[idx][BizzDescription]); mysql_pquery(conn, mquery); } SendClientMessageF(playerid, COLOR_WHITE, "A empresa '%s' agora está em Silver Trading por $%i", BizzData[idx][BizzDescription], price); return true; } } return true; } CMD:getprop(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG); new idx; for(idx = 0; idx < MAX_HOUSES; idx++) { if(IsPlayerInRangeOfPoint(playerid, 0.75, HouseData[idx][oPosX], HouseData[idx][oPosY], HouseData[idx][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[idx][HouseExtVW] && HouseData[idx][HouseOwnerSQLID] == -5) { HouseData[idx][HouseOwnerSQLID] = SQLID[playerid]; MySQLUpdateInt(HouseData[idx][HouseSQLID], "OwnerSQLID", SQLID[playerid], "houses"); mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM traders WHERE SQLID=%i AND Type=1", HouseData[idx][HouseSQLID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr), "A casa '%s' agora é sua.", HouseData[idx][HouseDescription]); SendClientMessage(playerid, COLOR_WHITE, gstr); return true; } } for(idx = 0; idx < MAX_BIZZ; idx++) { if(IsPlayerInRangeOfPoint(playerid, 0.75, BizzData[idx][oPosX], BizzData[idx][oPosY], BizzData[idx][oPosZ]) && BizzData[idx][BizzOwnerSQLID] == -5) { BizzData[idx][BizzOwnerSQLID] = SQLID[playerid]; MySQLUpdateInt(BizzData[idx][BizzSQLID], "OwnerSQLID", SQLID[playerid], "bizz"); mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM traders WHERE SQLID=%i AND Type=2", BizzData[idx][BizzSQLID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr), "A empresa '%s' agora é sua.", BizzData[idx][BizzDescription]); SendClientMessage(playerid, COLOR_WHITE, gstr); return true; } } return true; } CMD:lockbizzes(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG); new toggle = 0; if(sscanf(params, "i", toggle)) return SysMsg(playerid, "Use: /fecharbizzes [0 para desbloquear, 1 para bloqueio]"); if(toggle != 0 && toggle != 1) return cmd_lockbizzes(playerid, ""); for(new b = MAX_BIZZ; b != 0; b--) { if(BizzData[b][BizzOwnerSQLID] == -5) { if(toggle == 0) { if(BizzData[b][BizzLocked]) { BizzData[b][BizzLocked] = false; } } else { if(!BizzData[b][BizzLocked]) { BizzData[b][BizzLocked] = true; } } } } if(toggle == 1) SysMsg(playerid, "Todos os negócios Silver Trading estam bloqueados."); else SysMsg(playerid, "Todos os negócios da Silver Trading foram desbloqueados."); return true; } CMD:lockhouses(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_PROP) return SysMsg(playerid, AUTHMSG); new toggle = 0, idx; if(sscanf(params, "i", toggle)) return SysMsg(playerid, "Use: /lockhouses [0 para desbloquear, 1 para bloqueio]"); if(toggle == 0) { for(idx = 0; idx < MAX_HOUSES; idx++) { if(HouseData[idx][HouseOwnerSQLID] == -5) { HouseData[idx][HouseLocked] = 0; MySQLUpdateInt(HouseData[idx][HouseSQLID], "HouseLocked", HouseData[idx][HouseLocked], "houses"); } } SysMsg(playerid, "Todas as casas Silver Trading foram desbloqueadas."); toggle = 1; } else { for(idx = 0; idx < MAX_HOUSES; idx++) { if(HouseData[idx][HouseOwnerSQLID] == -5) { HouseData[idx][HouseLocked] = 1; MySQLUpdateInt(HouseData[idx][HouseSQLID], "HouseLocked", HouseData[idx][HouseLocked], "houses"); } } SysMsg(playerid, "Todas as casas Silver Trading foram bloqueadas."); toggle = 0; } return true; } //==================== Fim ==================================// //6 General government faction commands (sasp, ap, fd, etc) //General government faction commands (sasp, ap, fd, etc) CMD:beanbag(playerid, params[])//bala de borracha { if(IsPlayerAdmin(playerid) || IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH) { if(GetPlayerWeapon(playerid) != 25) return SysMsg(playerid, "Você deve estar segurando uma shotgun para usar isso."); HasRubberBullets{playerid} = !HasRubberBullets{playerid}; if(HasRubberBullets{playerid}) SendClientMessage(playerid, COLOR_YELLOW, "Bala de borracha ativada."); else SendClientMessage(playerid, COLOR_YELLOW, "Bala de borracha desativada."); } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:cuff(playerid, params[])//algemar { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH) { new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /algemar [Identificação ou parte do nome ou ID do Estrangeiro]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsCuffed[playa] == 1) return SysMsg(playerid,"Esse jogador já está algemado."); if(playa == playerid) return SysMsg(playerid,"Você não pode se algemar."); if(ADuty[playa] == 1) return SysMsg(playerid, "Você não pode prender um admin em serviço."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador algema-los."); IsCuffed[playa] = 1; SetPlayerToFacePlayer(playerid, playa); OnePlayAnim(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 0); SetPlayerSpecialAction(playa, SPECIAL_ACTION_CUFFED); if(AttachedObjects[playa][6][aoModelID] != 0) { RemovePlayerAttachedObject(playa, 6); } AttachedObjects[playa][6][aoModelID] = 19415; AttachedObjects[playa][6][aoBone] = 6; SetPlayerAttachedObject(playa, 6, 19418, 6, -0.011, 0.028, -0.022, -15.600012, -33.699977, -81.700035, 1.0, 1.0, 1.0); SendClientMessageF(playa, COLOR_RED, "%s te algemou.",NameRP(playerid)); SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você algemou %s.",NameEx(playa)); format(gstr, sizeof(gstr),"* %s colocou algemas em %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:uncuff(playerid, params[])//desalgemar { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdminLevelOK(playerid, 1)) { new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /uncuff [Identificação ou parte do nome ou ID do Estrangeiro]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(playa == playerid && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você não pode retira as algemas de si mesmo."); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsCuffed[playa] == 0) return SysMsg(playerid,"Esse jogador não está algemado."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para retirar a algemas dele(a)."); IsCuffed[playa] = 0; SetPlayerSpecialAction(playa, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playa, 6); if(PlayerToBeDetained[playerid] == playa) { PlayerToBeDetained[playerid] = -1; PlayerToBeDetainedSeat[playerid] = -1; } SendClientMessageF(playa,COLOR_RED, "%s removeu suas algemas.",NameRP(playerid)); SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Você removeu as algemas de %s.",NameEx(playa)); format(gstr, sizeof(gstr),"* %s remove as algemas das mãos %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:taser(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdmin(playerid)) { if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não pode usar a Taser enquanto estiver em um veículo."); HasTaser{playerid} = !HasTaser{playerid}; new slot = GetWeaponSlot(24), weps, ammo; GetPlayerWeaponData(playerid, slot, weps, ammo); PauseAC(playerid); if(HasTaser{playerid}) { format(gstr, sizeof(gstr),"* %s pega um teaser em seu coldre. *", NameRP(playerid)); if(weps != WEAPON_SILENCED) GivePlayerWeapon(playerid, WEAPON_SILENCED, 5); if(weps != 0) { PreTaserWeapon[playerid] = weps; PreTaserAmmo[playerid] = ammo; WeaponData[playerid][slot][Weapon] = WEAPON_SILENCED; } } else { format(gstr, sizeof(gstr)," *%s coloca o taser de volta ao coldre. *", NameRP(playerid)); if(PreTaserWeapon[playerid] != 0) { if(PreTaserWeapon[playerid] != WEAPON_SILENCED) GivePlayerWeapon(playerid, PreTaserWeapon[playerid], PreTaserAmmo[playerid]); WeaponData[playerid][slot][Weapon] = PreTaserWeapon[playerid]; WeaponData[playerid][slot][WeaponAmmo] = PreTaserAmmo[playerid]; PreTaserWeapon[playerid] = 0; PreTaserAmmo[playerid] = 0; } else { ResetWeaponVariables(playerid, 0, slot); SyncPlayerWeapons(playerid); PreTaserWeapon[playerid] = 0; PreTaserAmmo[playerid] = 0; } } ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:laser(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsCop(playerid) && Faction[playerid] != FACTION_RESEARCH) return SysMsg(playerid,"Você não é capaz de usar o laser"); if(GetPlayerWeapon(playerid) != 23 && GetPlayerWeapon(playerid) != 31) return SysMsg(playerid,"Você não possui a arma correta para usar o laser"); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar este comando enquanto algemado."); if(CallerID[playerid] >= 1) return SysMsg(playerid, "Você não pode anexar um laser enquanto você está no telefone."); if(!HasLaser{playerid}) { SendClientMessage(playerid, 0xFFFFFFFF, "O seu laser está agora ligado à sua arma.."); OnePlayAnim(playerid,"RIFLE","RIFLE_load",4,0,0,0,0,0); HasLaser{playerid} = true; } else { SendClientMessage(playerid, 0xFFFFFFFF, "Seu laser foi removido de sua arma."); OnePlayAnim(playerid,"RIFLE","RIFLE_load",4,0,0,0,0,0); HasLaser{playerid} = false; RemovePlayerAttachedObject(playerid,6); } return true; } CMD:removemask(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || IsPlayerAdminLevelOK(playerid, 1)) { new Float:ClosestDistance = 99999.99, Float:tmpDistance, ClosestPlayer = -1; new Float:x1, Float:y1, Float:z1; GetPlayerPos(playerid, x1, y1, z1); foreach(new x: Player) { if(x != playerid && IsSpectating[x] == -1 && IsPlayerMasked{x} && MaskHideName{x}) { new Float:x3, Float:y3, Float:z3; GetPlayerPos(x, x3, y3, z3); tmpDistance = floatsqroot(floatpower(floatabs(floatsub(x3, x1)), 2) + floatpower(floatabs(floatsub(y3, y1)), 2) + floatpower(floatabs(floatsub(z3, z1)) ,2)); if(tmpDistance < ClosestDistance) { ClosestDistance = tmpDistance; ClosestPlayer = x; } } } if(ClosestDistance > 10.0) return SysMsg(playerid,"Você não está perto de ninguém mascarado."); new RandomHit = random(4); if(RandomHit == 0) { format(gstr, sizeof(gstr),"* %s tenta remover a mascara do jogador próximo e falha. *",NameEx(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } format(gstr, sizeof(gstr),"* %s remove a mascara de uma pessoa próxima. *",NameEx(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); foreach(new i: Player) { if(ClosestPlayer != i) ShowPlayerNameTagForPlayer(i, ClosestPlayer, 1); } IsPlayerMasked{ClosestPlayer} = false; MaskHideName{ClosestPlayer} = false; DeleteMaskLabel(ClosestPlayer); MaskLabelNumber[ClosestPlayer] = 0; SendClientMessage(ClosestPlayer, COLOR_LIGHTRED, "Sua máscara foi removida."); return true; } else SysMsg(playerid,"Você precisa ser um membro da polícia."); return true; } CMD:detain(playerid, params[])//deter { if(!Logged{playerid}) return true; if(IsCop(playerid)) { if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você deve estar a pé para deter alguém."); if(PlayerToBeDetained[playerid] != -1) return SysMsg(playerid,"Você só pode ter uma pessoa detida ao mesmo tempo, coloque o detido na unidade."); new playa = -1, seatid, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]i", name, seatid)) return SysMsg(playerid,"Use: /detain [Identificação ou parte do nome ou ID do Estrangeiro] [ID do assento] *Dica: 1, 2 & 3 São assentos de passageiros*"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsCuffed[playa] == 0) return SysMsg(playerid,"Esse jogador não está algemado. Por favor, use: /cuff primeiro."); if(seatid < 1 || seatid > 4) return SysMsg(playerid,"A identificação do assento inválido."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,6.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para detê-lo."); format(gstr, sizeof(gstr),"* Oficial %s detém %s. *",NameEx(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você deteu %s. Ele(a) serão colocados no id do assento %i do seu próximo carro.",NameEx(playa),seatid); SendClientMessage(playerid,COLOR_BLUE,gstr); PlayerToBeDetained[playerid] = playa; PlayerToBeDetainedSeat[playerid] = seatid; TogglePlayerControllable(playa,0); LoopingAnim(playa,"WUZI","CS_Dead_Guy", 3.0,0,0,0,0,0); } else SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:mdc(playerid) { if((IsPlayerAdmin(playerid)) || Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(CanUseMDC(playerid)) { PlayerPlayNearbySound(playerid, MDC_OPEN); if(Faction[playerid] == FACTION_COP || (IsPlayerAdmin(playerid)) || Faction[playerid] == FACTION_RESEARCH) Dialog_Show(playerid, MDC_Home, DIALOG_STYLE_LIST, "MDC - Painel", "Pesquisa por nome\nBuscar Placa\nBoletim de todos os pontos\nChamadas recentes do 911", "Selecione", "Sair"); else Dialog_Show(playerid, MDC_Home, DIALOG_STYLE_LIST, "MDC - Painel", "Chamadas recentes do 911\nSolicitar backup", "Selecione", "Sair"); SetPlayerChatBubble(playerid, "* Logs into the Mobile Data Computer *", COLOR_EMOTE, 15, 10000); } else return SysMsg(playerid,"Você só pode usar no computador da sua facção ou veiculos equipados com MDC."); } else return SysMsg(playerid, "Você precisa ser um membro de uma facção do governo para usar este comando."); return true; } CMD:forcein(playerid, params[])//puxa de dentro do veiculo { if(!Logged{playerid}) return true; if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser um motorista para forçar um jogador dentro."); new playa = -1, seatid, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]i", name, seatid)) return SysMsg(playerid,"Use: /forcein [Identificação ou parte do nome ou ID do Estrangeiro] [seat id] *Dica: 1, 2 & 3 São assentos de passageiros*"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(playa == playerid) return SysMsg(playerid,"Você não pode forçar você mesmo."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsCuffed[playa] == 0) return SysMsg(playerid,"Esse jogador não está algemado. Por favor, use: /cuff primeiro."); if(seatid < 1 || seatid > 4) return SysMsg(playerid,"O ID do assento inválido."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,6.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para forçá-los."); format(gstr, sizeof(gstr),"* O oficial %s puxa %s de dentro do veiculo. *",NameEx(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); PutPlayerInVehicle(playa, GetPlayerVehicleID(playerid), seatid); return true; } CMD:take(playerid, params[]) //pegar { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdminLevelOK(playerid, 1)) { new playa = -1, object[10], itemAmount = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]s[10]I(-1)", name, object, itemAmount)) return SysMsg(playerid,"Use: /take [Identificação ou parte do nome ou ID do Estrangeiro] [arma/marijuana/cocaina/moonshine/maleta] [quantidade (se necessário)]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:tX, Float:tY, Float:tZ; GetPlayerPos(playa, tX, tY, tZ); if(!IsPlayerInRangeOfPoint(playerid, 5.5, tX, tY, tZ)) return SysMsg(playerid,"Você deve estar perto do jogador."); if(strcmp("arma", object, true) == 0) { new wCount = 0; for(new i = 0; i < MAX_TOTAL_WEAPONS; i++) { if(WeaponData[playa][i][Weapon] > 0) { new substr[50]; if(wCount == 0) format(gstr, sizeof(gstr), GetWeaponNameFromID(WeaponData[playa][i][Weapon])); else { format(substr, 50, "\n%s", GetWeaponNameFromID(WeaponData[playa][i][Weapon])); strcat(gstr, substr); } wCount ++; } } if(wCount == 0) { SysMsg(playerid,"Esse jogador não tem armas.."); return true; } else { if(wCount > 1) strcat(gstr, "\nPegue todas as armas"); TakeGunPlayer[playerid] = playa; new caption[128]; format(caption, 128, "Pegue uma arma de %s:", NameRP(playa)), Dialog_Show(playerid, WeaponTake, DIALOG_STYLE_LIST, caption, gstr, "Pegar", "Cancelar"); } return true; } if(strcmp("marijuana", object, true) == 0) { if(itemAmount == -1) return SysMsg(playerid,"Use: /take [ID ou nome do jogador] marijuana [Quantidade]"); if(itemAmount < 1 || itemAmount > Inventory[playa][Weed]) return SysMsg(playerid,"Quantidade Inválida, deve ser 1 a quantidade de marijuana que o jogador tem (/revistar)."); Inventory[playa][Weed] -= itemAmount; MySQLUpdateInt(SQLID[playa], "Weed", Inventory[playa][Weed], "players"); format(gstr, sizeof(gstr),"* %s toma algumas drogas de %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s tomou %i grama(s) de marijuana de você.", NameRP(playerid), itemAmount); SendClientMessage(playa, COLOR_ORANGE, gstr); format(gstr, sizeof(gstr),"Você pegou %i grama(s) de marijuana de %s.", itemAmount, NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); return true; } if(strcmp("Cocaina", object, true) == 0) { if(itemAmount == -1) return SysMsg(playerid,"Use: /take [ID ou nome do jogador] Cocaina [Quantidade]"); if(itemAmount < 1 || itemAmount > Inventory[playa][Cocaine]) return SysMsg(playerid,"Quantidade Inválida, deve ser 1 a quantidade de cocaina que o jogador tem (/revistar)."); Inventory[playa][Cocaine] -= itemAmount; MySQLUpdateInt(SQLID[playa], "Cocaine", Inventory[playa][Cocaine], "players"); format(gstr, sizeof(gstr),"* %s toma algumas drogas de %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s tomou %i grama(s) de cocaina de você.", NameRP(playerid), itemAmount); SendClientMessage(playa, COLOR_ORANGE, gstr); format(gstr, sizeof(gstr),"Você pegou %i grama(s) de cocaine de %s.", itemAmount, NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); return true; } if(strcmp("MoonShine", object, true) == 0) { if(itemAmount == -1) return SysMsg(playerid,"Use: /take [ID ou nome do jogador] MoonShine [Quantidade]"); if(itemAmount < 1 || itemAmount > Inventory[playa][MoonShine]) return SysMsg(playerid,"Quantidade Inválida, deve ser 1 a quantidade de MoonShine que o jogador tem (/revistar)."); Inventory[playa][MoonShine] -= itemAmount; MySQLUpdateInt(SQLID[playa], "MoonShine", Inventory[playa][MoonShine], "players"); format(gstr, sizeof(gstr),"* %s toma algumas drogas de %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s tomou %i litro(s) de Moon Shine de você.", NameRP(playerid), itemAmount); SendClientMessage(playa, COLOR_ORANGE, gstr); format(gstr, sizeof(gstr),"Você pegou %i litro(s) de Moon Shine de %s.", itemAmount, NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); return true; } if(strcmp("maleta", object, true) == 0) { if(Inventory[playa][Briefcase] == 0) return SysMsg(playerid, "Esse jogador não tem uma maleta."); Inventory[playa][Briefcase] = 0; BriefcaseWeapon[playa] = 0; BriefcaseCash[playa] = 0; BriefcaseLocked[playa] = 0; BriefcaseCode[playa] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasBriefcase = 0, BriefcaseWeapon = 0, BriefcaseCash = 0, BriefcaseWeed = 0, BriefcaseCocaine = 0, BriefcaseCode = 0, BriefcaseLocked = 0 WHERE id = %i", SQLID[playa]); mysql_pquery(conn, mquery); if(BriefcaseHolding[playa] > 0) { BriefcaseHolding[playa] = 0; RemovePlayerAttachedObject(playa, HOLD_OBJECT_BRIEFCASE); } format(gstr, sizeof(gstr),"* %s pega a maleta de %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s pegou sua maleta e seus conteúdos.", NameRP(playerid)); SendClientMessage(playa, COLOR_ORANGE, gstr); format(gstr, sizeof(gstr),"Você pegou a maleta de %s e todos os conteúdos contido dentro dela.", NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); return true; } } else SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:siren(playerid, params[])//adicionar sirene { if(!Logged{playerid}) return true; new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == 0) return SysMsg(playerid,"Você precisa estar em um veiculo de facção."); if(IsFactionVehicle(vehicleid) != Faction[playerid]) return SysMsg(playerid,"Você precisa estar em um veiculo de facção."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && (GetPlayerVehicleSeat(playerid) != 1 && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)) return SysMsg(playerid,"Você precisa estar no acento de condução or front passenger."); new modelid = GetVehicleModel(vehicleid); if(!Siren{vehicleid}) { if(VehObject[vehicleid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Este veículo já tem um objeto anexado a ele."); if(IsCop(playerid)) { switch(modelid) { case 596: //LSPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 598: //LVPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.5, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 490: //FBI RANCH { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.5, 1.15, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 560: //SULTAN { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.25, 0.85, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 426: //PREMIER { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.0, 0.875, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 541: //Bullet { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 411: //Infernus { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.98, 0.24, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 402: //buffalo { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.55, 0.3, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 579: //buffalo { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.6, -10.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 413: //PONY { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.2, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 597: //SFPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 415: //CHEETAH { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 0.2, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 445: //admiral { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.004999, 0.739999, 0.309999, 0.000000, 0.000000, 0.000000); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 421: //Washington { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.000000, 0.799999, 0.239999, 0.000000, 0.000000, 0.000000); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 599: //Police Ranger { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 0.5, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 427: //Enforcer { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 1.655, 0.7, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 405: //Sentinel { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.7, 0.25, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 482: //Burrito { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.6, 0.95, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 457: //Caddy { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.3, 0.3, 1.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 470: //Patriot { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.75, 0.2, 1.13, 0, 0, 0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 525: //Towtruck { VehObject[vehicleid] = CreateVehicleObject(19803, vehicleid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } default: SysMsg(playerid,"Este veículo não pode ter uma sirene."); } } else if(Faction[playerid] == FACTION_SACFD) { switch(modelid) { case 407: //FireTruck { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.0,-3.01,1.350000,0.0,0.0,0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 544: //FireTruck LA (Ladder) { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0,2.850001,1.500000,0.0,0.0,0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 416: // Ambulance { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0,-3.525001,1.350000,0.0,0.0,0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 525: // Towtruck { VehObject[vehicleid] = CreateVehicleObject(19803, vehicleid, 0.0,-0.449999,1.425000,0.0,0.0,0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 433: // Barracks { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0,1.275000,1.725000,0.0,0.0,0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 552: //Utility { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.375, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 554: //Yosemite { VehObject[vehicleid] = CreateVehicleObject(19419, vehicleid, 0.0, 0.0, 1.049999, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 427: //Enforcer { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 1.655, 0.7, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 490: //FBI RANCH { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.5, 1.15, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 597: //SFPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } default: SysMsg(playerid,"Este veículo não pode ter uma sirene."); } } else if(Faction[playerid] == FACTION_RESEARCH) { switch(modelid) { case 596: //LSPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 598: //LVPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.5, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 560: //SULTAN { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.25, 0.85, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 426: //PREMIER { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.45, 0.0, 0.875, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 541: //Bullet { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 411: //Infernus { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.98, 0.24, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 482: //burrito { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.0, 0.995, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 402: //buffalo { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.55, 0.3, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 579: //buffalo { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.6, 0.6, -10.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 413: //PONY { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.2, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 597: //SFPD { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, -1.75, 0.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 415: //CHEETAH { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 0.2, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 428: //securi { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.65, 1.35, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 405: //SENTINEL { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.75, 0.25, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 421: //WASHINTON { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0.0, 0.9, 0.225, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 490: //FBI RANCH { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, 0.5, 1.15, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 470: //Patriot { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.75, 0.2, 1.13, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 433: //Barracks { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.65, 015, 1.74, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 429: //Banshee { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.5, -1.27, 0.6, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 424: //BF Injection { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.64, 0.16, 0.92, -10.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 582: //Newsvan { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, -0.7, 1.05, 1.18, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 503: //hotrin { VehObject[vehicleid] = CreateVehicleObject(18646, vehicleid, 0, 0.75, 0.45, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } case 525: //Towtruck { VehObject[vehicleid] = CreateVehicleObject(19803, vehicleid, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {4BB74C}Adicionada{FFFFFF}. Warning: Isso pode não ser exibido corretamente se você tiver um mods de veiculos intalados."); } default: SysMsg(playerid,"Este veículo não pode ter uma sirene."); } } else return SysMsg(playerid, "Esta facção não tem este recurso."); Siren{vehicleid} = true; } else { if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(VehObject[vehicleid] != INVALID_OBJECT_ID && Siren{vehicleid}) { if(Faction[playerid] == FACTION_SACFD && GetVehicleModel(vehicleid) == 554) { DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 4"); VehObject[vehicleid] = CreateVehicleObject(19420, vehicleid, 0.0, 0.0, 1.049999, 0.0, 0.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Sirene {8B0000}Off"); } else { DestroyDynamicObjectEx(VehObject[vehicleid], "VehObject[vehicleid] 5"); VehObject[vehicleid] = INVALID_OBJECT_ID; SendClientMessage(playerid, COLOR_WHITE, "> Sirene {8B0000}Deparada"); } Siren{vehicleid} = false; } } } return true; } CMD:viewmyimpounds(playerid, params[])//ver veiculos apreendidos { if(!Logged{playerid}) return true; if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não pode coletar um veículo imobilizado enquanto estiver dentro de um."); if(!IsPlayerInRangeOfPoint(playerid, 3.0, 619.476257, -592.645996, 17.233013)) return SysMsg(playerid,"Você precisa estar na garagem do depósito. (Dillimore)."); new sub[300], count; gstr[0] = EOS; for(new v = 0, x = MAX_VEHICLES; v < x; v++) { if(ImpoundData[v][iModel] > 399) { if(ImpoundData[v][iOwnerSQLID] == SQLID[playerid] || ImpoundData[v][iFaction] == Faction[playerid] && Faction[playerid] != 0) { if(ImpoundData[v][iImpoundTime] > 0) format(sub, 100, "%s - %i minutos restantes - $%i taxa de liberação - Razão: '%s'\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundTime], ImpoundData[v][iImpoundFee], ImpoundData[v][iImpoundReason]); else format(sub, 100, "%s - $%i taxa de liberação - Razão: '%s'\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundFee], ImpoundData[v][iImpoundReason]); strcat(gstr, sub); ClothingSelected[playerid][count] = v; count ++; } } } if(count == 0) return SysMsg(playerid,"Você não tem veículos confiscados."); Dialog_Show(playerid, MyImpounds, DIALOG_STYLE_LIST, "Meus veículos apreendidos", gstr, "Desaprender", "Sair"); return true; } CMD:payparkingticket(playerid, params[]) { if(!Logged{playerid}) return true; new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == 0) return SysMsg(playerid, "Você deve estar no seu veículo."); if(VehicleData[vehicleid][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve estar no seu veículo."); if(VehicleData[vehicleid][TicketAmount] == 0) return SysMsg(playerid, "Este veículo não tem ticket de estacionamento para pagar."); if(Cash[playerid] < VehicleData[vehicleid][TicketAmount]) return SysMsg(playerid, "Você não tem dinheiro suficiente para pagar este ticket."); GivePlayerCash(playerid, -VehicleData[vehicleid][TicketAmount]); format(gstr, sizeof(gstr),"Você pagou o ticket de estacionamento de $%i do seu %s.", VehicleData[vehicleid][TicketAmount], GetVehicleName(vehicleid)); SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr); FACTIONS[FACTION_COP][FactionBankBalance] += floatround(0.4 * VehicleData[vehicleid][TicketAmount]); MySQLUpdateInt(FACTION_COP, "BankBalance", FACTIONS[FACTION_COP][FactionBankBalance], "factions"); format(gstr, sizeof(gstr),"%s pagou o seu ticket de estacionamento de $%i. Uma porcentagem do dinheiro foi adicionada ao banco da facção.", NameEx(playerid), VehicleData[vehicleid][TicketAmount]); PoliceMessage(gstr); VehicleData[vehicleid][TicketAmount] = 0; MySQLUpdateInt(VehicleData[vehicleid][VehSQLID], "TicketAmount", 0, "vehicles"); return true; } CMD:psa(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(Faction[playerid] == FACTION_RESEARCH && FactionRank[playerid] < 8) return SysMsg(playerid,"Você precisa ser o Rank 8+ para enviar um Aperture PSA."); if(Faction[playerid] == FACTION_SACFD && !IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank apropriado para usar este comando to send an SACFD PSA."); if(IsCop(playerid) && !IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um rank apropriado para usar este comando to send an SASP PSA."); if(isnull(params)) return SysMsg(playerid,"Use: /psa [mensagem]"); new psa[196]; format(psa, sizeof(psa), "PSA de %s %s: %s", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), params); SendClientMessageToAllLogged(COLOR_BLUE, psa); } return true; } CMD:pan(playerid, params[])//auto falante da prisão { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP) { new tannoy2[196], loc[12]; if(!IsPlayerInRangeOfPoint(playerid, 2.0, -1337.6696, -48.7392, 17.7579)) return SysMsg(playerid,"Você deve estar na sala de controle para usar o tannoy."); if(sscanf(params, "s[12]s[196]", loc, tannoy2)) return SysMsg(playerid,"Use: /pan [dentro/fora/ambos] [mensagem]"); if(strcmp("dentro", loc, true) == 0) { foreach(new i: Player) { if(Logged{i} && GetPlayerInterior(i) == 6 && GetPlayerVirtualWorld(i) == 6164) { SendClientMessageF(i, 0x3DAD2FFF, "Prisão - Microfone o< %s", tannoy2); } } } if(strcmp("fora", loc, true) == 0) { foreach(new i: Player) { if(Logged{i} && IsPlayerInRangeOfPoint(i, 75.0, 173.2664, 1412.5975, 31.3242)) { SendClientMessageF(i, 0x3DAD2FFF, "Prisão - Microfone o< %s", tannoy2); } } } if(strcmp("ambos", loc, true) == 0) { foreach(new i: Player) { if(Logged{i} && ((GetPlayerInterior(i) == 6 && GetPlayerVirtualWorld(i) == 6164) || IsPlayerInRangeOfPoint(i, 75.0, 173.2664,1412.5975,31.3242))) { SendClientMessageF(i, 0x3DAD2FFF, "Prisão - Microfone o< %s", tannoy2); } } } } else return SysMsg(playerid,"Você precisa ser um membro do SASP para usar esse comando."); return true; } CMD:lockdown(playerid, params[])//fecha celar = toda prisão { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_COP) return SysMsg(playerid, "Você deve ser um membro do SASP."); new cellstr[64]; if(!IsPlayerInRangeOfPoint(playerid, 2.0, -1337.6696, -48.7392, 17.7579)) return SysMsg(playerid, "Você deve estar no microfone da prisão para começar um bloqueio"); { if(PrisonLockdown == 0) { PrisonLockdown = 1; foreach(new i: Player) if(Logged{i} && IsInPrison(i) || IsPlayerInRangeOfPoint(i, 75.0, -694.249816, 456.985992, 5.0055)) SendClientMessage(i, 0x3DAD2FFF, "Prisão - Microfoneo< A prisão está agora sob bloqueio!"); for(new w = 0; w < sizeof(PrisonDoorsLock); w++) PrisonDoorsLock[w] = 1; for(new p = 0; p < 16; p++) { PrisonCellsLock[p] = 1; format(cellstr, sizeof(cellstr), "Celas %i\nFechadas", p+1); DestroyDynamic3DTextLabel(PrisonCellsText[p]); PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID; PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5); } } else if(PrisonLockdown == 1) { PrisonLockdown = 0; foreach(new i: Player) if(Logged{i} && IsInPrison(i) || IsPlayerInRangeOfPoint(i, 75.0, -694.249816, 456.985992, 5.0055)) SendClientMessage(i, 0x3DAD2FFF, "Prisão - Microfoneo< A prisão não está mais bloqueada. Volte para suas atividades regulares."); for(new w = 0; w < sizeof(PrisonDoorsLock); w++) PrisonDoorsLock[w] = 0; for(new p = 0; p < 16; p++) { PrisonCellsLock[p] = 0; format(cellstr, sizeof(cellstr), "Celas %i\nDesbloqueadas", p+1); DestroyDynamic3DTextLabel(PrisonCellsText[p]); PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID; PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 55); } } } return true; } CMD:wanted(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP || Faction[playerid] == FACTION_RESEARCH) { if(!CanUseMDC(playerid)) return SysMsg(playerid,"Você deve estar em um computador."); new count = 0; SendClientMessage(playerid, COLOR_WHITE, "Pessoas:"); foreach(new i: Player) { if(Logged{i}) { if(PoliceFineAmount[i] > 0) { SendClientMessageF(playerid, COLOR_LIGHTBLUE, " %s(%i) - Multa a pagar: $%i.",NameEx(i), i, PoliceFineAmount[i]); count++; } } } if(!count) SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nenhum"); } else SysMsg(playerid, "Você deve estar em uma facção do governo para usar este comando."); return true; } CMD:cases(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei"); new count = 0; SendClientMessage(playerid, COLOR_WHITE, "Pessoas na prisão:"); foreach(new i: Player) { if(Logged{i}) { if(IsJailed[i] > 0) { SendClientMessageF(playerid, COLOR_LIGHTBLUE, "%s (%i) - %i minutos restantes na cela %i.", NameEx(i), i, JailTime[i], JailCell[i]); count++; } } } if(count == 0) SendClientMessage(playerid, COLOR_LIGHTBLUE, "Nenhum"); return true; } CMD:swat(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_COP) return SysMsg(playerid,"Você precisa ser um membro do SASP."); if(FactionRank[playerid] < 3) return SysMsg(playerid,"Você não tem um rank alto suficiente para fazer isso."); if(!IsPlayerInRangeOfPoint(playerid,1.75, -779.4825,-394.8364,1805.5311) && GetVehicleModel(GetPlayerVehicleID(playerid)) != 427) return SysMsg(playerid,"Você não está no arsenal/Enforcer."); if(SwatMode[playerid] == 0) { if(!WeaponCheck(playerid, 31)) return SysMsg(playerid, "Você não pode pegar essa arma. Ou tens duas pistolas ou uma arma primária e uma pistola na tua pessoa."); SwatMode[playerid] = 1; GivePlayerWeaponEx(playerid, 17, 10, 3); //Tear Gas GivePlayerWeaponEx(playerid, 31, GetDefaultWeaponAmmo(31), 3); SetPlayerArmourEx(playerid, 125, 1); SetPlayerSkinEx(playerid, 285); TogglePlayerControllable(playerid, 0); SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid); SendClientMessage(playerid, COLOR_WHITE, "Você está agora em serviço de S. W. A. T. Use /swat para sair."); foreach(new i: Player) if(Faction[i] == FACTION_COP && RadioPoweredOn[playerid]) SendClientMessageF(i, 0x967100FF, "[Radio - 9112 MHz] Central Dispatcher: S.W.A.T Operative %s está agora disponível!", NameEx(playerid)); } else { SetPlayerSkinEx(playerid, Clothes[playerid][4]); cPlayersSkin[playerid] = Clothes[playerid][4]; MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "Você não está mais no serviço de S. W. A. T."); ResetPlayerWeaponsEx(playerid); SyncPlayerWeapons(playerid); SetPlayerArmourEx(playerid, 100, 1); SetPlayerArmedWeapon(playerid, 0); SwatMode[playerid] = 0; } return true; } CMD:speed(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || IsPlayerAdmin(playerid)) { new Float:vPos[3], Count = 0; for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { GetVehiclePos(v, vPos[0], vPos[1], vPos[2]); if(IsVehicleSpawned(v) && IsPlayerInRangeOfPoint(playerid, 40.0, vPos[0], vPos[1], vPos[2]) && GetVehicleSpeed(v, 0) > 0 && VehicleHasDriver(v)) { Count++; SendClientMessageF(playerid, COLOR_WHITE, "[Came portátil da velocidade] %s %s - %i MPH", VehicleColors[CarColor[v][0]], GetVehicleName(v), GetVehicleSpeed(v, 0)); } } if(Count == 0) SysMsg(playerid, "Nenhum veículo detectado"); if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) LoopingAnim(playerid, "PED", "gang_gunstand", 4.0, 1, 1, 1, 1, 1); format(gstr, sizeof(gstr),"* Oficial %s aponta seu detector de velocidade ao %s. *", NameEx(playerid), GetVehicleName(GetNearestVehicle(playerid))); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 4); } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:revokelicense(playerid, params[])//remover e suspender licença { if(!Logged{playerid}) return true; if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei"); //if(FactionRank[playerid] < 2) return SysMsg(playerid, "Você não tem um rank alto suficiente para fazer isso to revoke licenses."); new playa = -1, type[24], hours; if(sscanf(params, "us[24]i", playa, type, hours)) return SysMsg(playerid,"Use: /revokelicense [ID ou nome do jogador] [carro/moto/barco/aviao/heli/veiculo grande] [horas para suspender (até 12, use 0 para revogar)]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:Pos[3]; GetPlayerPos(playa, Pos[0], Pos[1], Pos[2]); if(!IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2])) return SysMsg(playerid,"Você deve estar perto do jogador."); if(hours < 0 || hours > 12) return SysMsg(playerid,"As horas devem ser de 0 a 12."); new lic = -1, sqlname[24], vehname[24], susname[32]; if(strcmp("carro", type, true) == 0) { lic = 0; sqlname = "LicenseCar"; susname = "LicenseSuspendTime_Car"; vehname = "CAR"; } else if(strcmp("veiculo grande", type, true) == 0) { lic = 1; sqlname = "LicenseLargeVehicle"; susname = "LicenseSuspendTime_LargeVehicle"; vehname = "LARGE VEHICLE"; } else if(strcmp("moto", type, true) == 0) { lic = 2; sqlname = "LicenseBike"; susname = "LicenseSuspendTime_Bike"; vehname = "BIKE"; } else if(strcmp("barco", type, true) == 0) { lic = 3; sqlname = "LicenseBoat"; susname = "LicenseSuspendTime_Boat"; vehname = "BOAT"; } else if(strcmp("heli", type, true) == 0) { lic = 4; sqlname = "LicenseHelicopter"; susname = "LicenseSuspendTime_Helicopter"; vehname = "HELI"; } else if(strcmp("aviao", type, true) == 0) { lic = 5; sqlname = "LicensePlane"; susname = "LicenseSuspendTime_Plane"; vehname = "PLANE"; } else return SysMsg(playerid,"Nenhum nome dessa licença."); if(Licenses[playa][lic] == 0) return SysMsg(playerid,"Essa pessoa não tem licença."); if(LicenseSuspendTime[playa][lic] > 0 && hours > 0) return SysMsg(playerid,"Já suspenderam esta licença."); if(hours == 0) { Licenses[playa][lic] = 0; LicenseSuspendTime[playa][lic] = 0; MySQLUpdateInt(SQLID[playa], susname, LicenseSuspendTime[playa][lic], "players"); MySQLUpdateInt(SQLID[playa], sqlname, Licenses[playa][lic], "players"); format(gstr, sizeof(gstr),"Oficial %s revogou sua licença de %s. (Você deve resistir ao teste)", NameEx(playerid), vehname); SendClientMessage(playa,COLOR_WHITE, gstr); format(gstr, sizeof(gstr),"Você revogou a licença de %s de %s.", NameEx(playa), vehname); SendClientMessage(playerid,COLOR_WHITE, gstr); } else { LicenseSuspendTime[playa][lic] = hours * 60; MySQLUpdateInt(SQLID[playa], susname, LicenseSuspendTime[playa][lic], "players"); format(gstr, sizeof(gstr),"Oficial %s suspendeu sua licença de %s por %i horas.", NameEx(playerid), vehname, hours); SendClientMessage(playa,COLOR_WHITE, gstr); format(gstr, sizeof(gstr),"Você suspendeu a licença de %s de %s por %i horas.", NameEx(playa), vehname, hours); SendClientMessage(playerid,COLOR_WHITE, gstr); } return true; } CMD:drag(playerid, params[])//comando de arrastar - testar { if(!Logged{playerid}) return true; if(IsDragging[playerid] != -1) return SysMsg(playerid,"Você já está arrastando alguém."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não pode arrastar de dentro de um veículo."); if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /drag [ID ou nome do jogador]"); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(playa == playerid) return SysMsg(playerid, "Você não pode arrastar-se."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsCop(playerid) && IsCuffed[playa] == 0) return SysMsg(playerid,"O jogador deve estar algemado para arrastá-los."); if(IsJailed[playa] == 1) return SysMsg(playerid,"Você não pode arrastar alguém que está na cadeia."); if(IsPlayerInAnyVehicle(playa)) return SysMsg(playerid,"Você não pode arrastá-los se esta pessoa estiver dentro de um veículo."); if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você deve estar perto do jogador to drag them."); if(ADuty[playa] == 1) return SysMsg(playerid, "Você não pode usar este comando com um administrador em serviço."); foreach(new i: Player) { if(IsDragging[i] == playerid) return SysMsg(playerid, "Você não pode arrastar alguém que já está arrastando alguém."); } new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,4.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para arrastá-lo."); IsDragging[playerid] = playa; TogglePlayerControllable(playa, 0); format(gstr, sizeof(gstr),"* %s agarra %s e começa a arrastá-lo. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s está arrastando você.", NameRP(playerid)); SendClientMessage(playa,COLOR_BLUE,gstr); } return true; } CMD:stopdrag(playerid, params[]) { if(!Logged{playerid}) return true; if(IsDragging[playerid] == -1) return SysMsg(playerid,"Você não está arrastando ninguém."); new playa = IsDragging[playerid]; TogglePlayerControllable(playa, 1); IsDragging[playerid] = -1; if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { format(gstr, sizeof(gstr),"* %s solta %s e deixa ele(a) ir. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s já não está te arrastando.", NameRP(playerid)); SendClientMessage(playa,COLOR_BLUE,gstr); } return true; } CMD:stinger(playerid, params[])//colocar jacafé { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH) { //if(FactionRank[playerid] < 2) return SysMsg(playerid, "Você não tem um rank alto suficiente para fazer isso to place a Stinger."); if(StingerObjectID[playerid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Você já colocou um jacaré no chão."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "Você não pode implantar um jacaré dentro de um veículo."); new Float:X, Float:Y, Float:Z, Float:Ang; GetPlayerPos(playerid, X, Y, Z); Ang = GetXYInFrontOfPlayer(playerid, X, Y, 5.0); StingerObjectID[playerid] = CreateDynamicObject(2892, X, Y, Z-1, 0.0, 0.0, Ang, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), -1, 300.0); StingerAreaID[playerid] = CreateDynamicRectangle(X-2, Y-6, X+2, Y+6); format(gstr, sizeof(gstr),"* Oficial %s implanta uma faixa de Spike no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_BLUE, "Stinger implantado! Use /rstinger para remover."); } return true; } CMD:rstinger(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || IsPlayerAdminLevelOK(playerid, 1)) { if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "Você não pode limpar um stinger de dentro de um veículo."); foreach(new i: Player) { new Float:X, Float:Y, Float:Z; GetDynamicObjectPos(StingerObjectID[i], X, Y, Z); if(IsPlayerInRangeOfPoint(i, 10.0, X, Y, Z)) { DestroyDynamicObjectEx(StingerObjectID[i], "StingerObjectID[i] 1"); StingerObjectID[i] = INVALID_OBJECT_ID; DestroyDynamicArea(StingerAreaID[i]); StingerAreaID[i] = -1; SendClientMessage(playerid, COLOR_BLUE, "Stinger removido."); return true; } } SysMsg(playerid, "Você não está perto de um stinger."); } else SysMsg(playerid, "Você deve estar no SASP ou no Aperture para usar esse comando."); return true; } CMD:rb(playerid) { if(!Logged{playerid}) return true; if((IsPlayerAdmin(playerid)) || IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_TRUCKING) { //if(FactionRank[playerid] < 3) return SysMsg(playerid, "Você não tem um rank alto suficiente para fazer isso to place a Roadblock."); if(RoadBlockCount[playerid] >= MAX_PLAYERROADBLOCKS) return SysMsg(playerid, "Você já colocou o número máximo de bloqueios rodoviários. Use /removerb."); new blocks[9], count; //increase this number whenever adding a roadblock to RBData otherwise it will not show up here and probably return an array index error. for(new x = 0; x < sizeof(RBData); x++) { blocks[x] = RBData[x][RBModel]; count ++; } //ShowModelSelectionMenu(playerid, "Place Roadblock", MODEL_SELECTION_ROADBLOCK, blocks, count, 0.0, 0.0, 0.0); } else SysMsg(playerid, "Você deve estar no SASP/Aperture/SACFD para usar este comando."); return true; } CMD:moverb(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_TRUCKING || IsPlayerAdminLevelOK(playerid, 1)) { SelectingRoadblock{playerid} = true; SelectObject(playerid); return true; } else SysMsg(playerid, "Você deve estar no SASP/Aperture/SACFD para usar este comando."); return true; } CMD:roadblock(playerid) return cmd_rb(playerid); CMD:removerb(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH || Faction[playerid] == FACTION_TRUCKING || IsPlayerAdminLevelOK(playerid, 1)) { RemovingRoadblock{playerid} = true; SelectObject(playerid); } else SysMsg(playerid, "Você deve estar no SASP/Aperture/SACFD para usar este comando."); return true; } CMD:ram(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_SACFD || IsCop(playerid) || Faction[playerid] == FACTION_RESEARCH) { // HOUSES new Float:percChance[2], Float:randChos = random(100), ef = 0; percChance[0] = 0.4; percChance[1] = 0.6; for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { if(HouseData[h][HouseOwnerSQLID] == -5) return SysMsg(playerid,"Você não pode derrubar essa porta."); if(HouseData[h][HouseLocked] == 0) return SysMsg(playerid, "A porta da casa não está trancada."); foreach(new i: Player) { if(Logged{i}) { if(IsInHouseID[i] == h) { SendClientMessage(i, COLOR_EMOTE, "**Um som alto é ouvido na porta.**"); PlayerPlaySound(i, 6603, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ]); } if(IsPlayerInRangeOfPoint(i, 20.0, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ])) { PlayerPlaySound(i, 6603, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]); } } } while(randChos > 0) { ef = random(2); randChos = floatsub(randChos, percChance[ef]); } if(ef == 1) { format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { HouseData[h][HouseLocked] = 0; MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses"); format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"A porta da %s está agora aberta.",HouseData[h][HouseDescription]); SendClientMessage(playerid,COLOR_WHITE,gstr); } return true; } } // BIZZes for(new b = 0; b < MAX_BIZZ; b++) { if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,BizzData[b][oPosX],BizzData[b][oPosY],BizzData[b][oPosZ])) { if(BizzData[b][BizzOwnerSQLID] == -5) return SysMsg(playerid,"Você não pode abaixar esta porta."); if(!BizzData[b][BizzLocked]) return SysMsg(playerid, "O negócio não está fechado."); foreach(new i: Player) { if(Logged{i}) { if(IsInBizzID[i] == b) { SendClientMessage(i, COLOR_EMOTE, "**Um som alto é ouvido na porta.**"); PlayerPlaySound(i, 6603, BizzData[b][iPosX], BizzData[b][iPosY], BizzData[b][iPosZ]); } if(IsPlayerInRangeOfPoint(i, 20.0, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ])) { PlayerPlaySound(i, 6603, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ]); } } } while(randChos > 0) { ef = random(2); randChos = floatsub(randChos, percChance[ef]); } if(ef == 1) { format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { BizzData[b][BizzLocked] = false; MySQLUpdateInt(BizzData[b][BizzSQLID], "Locked", BizzData[b][BizzLocked], "bizz"); format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"A porta da %s está agora aberta.",BizzData[b][BizzDescription]); SendClientMessage(playerid,COLOR_WHITE,gstr); } return true; } } //garages for(new g = 0; g < MAX_GARAGES; g++) { if(IsPlayerInRangeOfPoint(playerid,DOOR_PROXIMITY,GarageData[g][oPosX],GarageData[g][oPosY],GarageData[g][oPosZ])) { if(!GarageData[g][GarageLocked]) return SysMsg(playerid, "A garagem não está fechada."); foreach(new i: Player) { if(Logged{i}) { if(IsInGarageID[i] == g) { SendClientMessage(i, COLOR_EMOTE, "**Um som alto é ouvido na porta.**"); PlayerPlaySound(i, 6603, GarageData[g][iPosX], GarageData[g][iPosY], GarageData[g][iPosZ]); } if(IsPlayerInRangeOfPoint(i, 20.0, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ])) { PlayerPlaySound(i, 6603, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]); } } } while(randChos > 0) { ef = random(2); randChos = floatsub(randChos, percChance[ef]); } if(ef == 1) { format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { GarageData[g][GarageLocked] = false; MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "bizz"); format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"A garagem de %s está agora aberta.",HouseData[GarageData[g][gHouseID]][HouseDescription]); SendClientMessage(playerid,COLOR_WHITE,gstr); } return true; } } //house furniture doors if(IsInHouseID[playerid] != -1) { new h = IsInHouseID[playerid], Float:x, Float:y, Float:z; for(new f = 0; f < MAX_HFURNITURE; f++) { if(IsValidDoorObject(HouseData[h][FurnModel][f])) { GetDynamicObjectPos(HouseData[h][FurnObject][f], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z)) { if(!HouseData[h][DoorOpen][f] && HouseData[h][DoorLocked][f]) { while(randChos > 0) { ef = random(2); randChos = floatsub(randChos, percChance[ef]); } if(ef == 1) { format(gstr, sizeof(gstr),"* %s tenta abrir a porta, mas falha. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { ProcessHouseDoorRam(playerid, h, f); format(gstr, sizeof(gstr),"* %s tenta abrir a porta e consegue. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); break; } } } } } } } else SysMsg(playerid, "Você deve estar no SASP, SACFD ou Aperture para usar isso."); return true; } CMD:backup(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Your Radio is not powered on. (/ron)"); if(Faction[playerid] == 0) return SysMsg(playerid,"Você deve estar em uma facção."); if(Duty[playerid] != 1) return SysMsg(playerid, "Você deve estar de plantão."); if(Dead{playerid} && IsHeadshotted(playerid)) return SysMsg(playerid,"Você não pode fazer isso depois de ser ferido por um tiro na cabeça."); if(Faction[playerid] == FACTION_SACFD || IsCop(playerid)) { if(isnull(params)) return SysMsg(playerid, "Use: /backup [SASP/fd]"); new freq, faction = -1, zone[MAX_ZONE_NAME]; GetPlayer2DZone(playerid, zone, MAX_ZONE_NAME); format(BackupLocation[playerid], MAX_ZONE_NAME, zone); if(strcmp(params, "SASP", true) == 0) { freq = FACTIONS[FACTION_COP][FactionRadioChannel]; faction = FACTION_COP; BackupType[playerid] = 2; } else if(strcmp(params, "fd", true) == 0) { freq = FACTIONS[FACTION_SACFD][FactionRadioChannel]; faction = FACTION_SACFD; BackupType[playerid] = 1; } if(faction == -1) return SysMsg(playerid, "Use: /backup [SASP/fd]"); format(sgstr, sizeof(sgstr), "[Radio - %i MHz] Departmental Dispatcher: %s %s de %s está solicitando backup em %s.", freq, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), FACTIONS[Faction[playerid]][FNameShort], zone); foreach(new i: Player) { if(IsPlayerNPC(i) || !Logged{i}) continue; if(RadioPoweredOn[i] == 1 && RadioFrequency[i] == freq && Faction[i] == faction) { SendClientMessage(i, 0x967100FF, sgstr); } } if(!IsPlayerInAnyVehicle(playerid)) format(sgstr, sizeof(sgstr),"* %s pressiona um botão no rádio. *", NameRP(playerid)); else format(sgstr, sizeof(sgstr),"* %s pressiona um botão no computador de dados móveis. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } stock IsHeadshotted(playerid) { for(new hit = 0; hit < HitCount[playerid]; hit++) { if(Injuries[playerid][hit][pBodypart] == 9) { return true; } } return false; } CMD:backupcancel(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid,"Você deve estar em uma facção."); if(Faction[playerid] == FACTION_SACFD || IsCop(playerid)) { new freq; switch(BackupType[playerid]) { case 1: freq = FACTIONS[FACTION_SACFD][FactionRadioChannel]; case 2: freq = FACTIONS[FACTION_COP][FactionRadioChannel]; } format(gstr, sizeof(gstr), "[Radio - %i MHz] Departmental Dispatcher: %s %s de %s já não precisa de backup.", freq, GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), FACTIONS[Faction[playerid]][FNameShort]); foreach(new i: Player) { if(IsPlayerNPC(i) || !Logged{i}) continue; if(RadioPoweredOn[i] == 1 && RadioFrequency[i] == freq) { SendClientMessage(i, 0x967100FF, gstr); } } BackupType[playerid] = 0; } return true; } CMD:bkcancel(playerid, params[]) return cmd_backupcancel(playerid, params); CMD:cctv(playerid, params[]) { if(!Logged{playerid}) return true;//parei aqui if(UsingCCTV{playerid} || (Faction[playerid] == FACTION_COP && IsPlayerInRangeOfPoint(playerid, 2.5, -789.2172,-418.8984,1601.9958)) || Faction[playerid] == FACTION_RESEARCH && IsPlayerInRangeOfPoint(playerid, 2.5, 1034.3674,-1115.4692,2025.2595)) { gstr[0] = EOS; strcat(gstr, "Blueberry Norte\n"); strcat(gstr, "Blueberry sul\n"); strcat(gstr, "Blueberry Truck Terminal\n"); strcat(gstr, "Bone County Leste Gas Station\n"); strcat(gstr, "Dillimore Norte\n"); strcat(gstr, "Dillimore Oeste\n"); strcat(gstr, "El Quebrados Central\n"); strcat(gstr, "El Quebrados Leste\n"); strcat(gstr, "Fort Carson Central\n"); strcat(gstr, "Fort Carson Leste\n"); strcat(gstr, "Fort Carson Gas Station\n"); strcat(gstr, "Fort Carson Medical Center\n"); strcat(gstr, "Fort Carson Entrada norte\n"); strcat(gstr, "Hunter Quarry Intersection\n"); strcat(gstr, "Las Barrancas Sul\n"); strcat(gstr, "Las Barrancas\n"); strcat(gstr, "Las Payasadas\n"); strcat(gstr, "Montgomery Leste\n"); strcat(gstr, "Montgomery Hospital\n"); strcat(gstr, "Montgomery Sul\n"); strcat(gstr, "Palomino Creek Leste\n"); strcat(gstr, "Palomino Creek Main St\n"); strcat(gstr, "Palomino Creek Sul\n"); strcat(gstr, "Pay Toll Leste\n"); strcat(gstr, "Pay Toll West\n"); strcat(gstr, "Tiera Robada Junção\n"); strcat(gstr, "Tiera Robada Sul\n"); if(!UsingCCTV{playerid}) { if(Faction[playerid] == FACTION_COP) { SetPlayerCameraPos(playerid, 263.7805, 109.5896, 1005.817); SetPlayerCameraLookAt(playerid, 253.7805, 109.5896, 1005.817); } else if(Faction[playerid] == FACTION_PROP) { SetPlayerCameraPos(playerid, 263.7805, 109.5896, 1005.817); SetPlayerCameraLookAt(playerid, 253.7805, 109.5896, 1005.817); } } Dialog_Show(playerid, CCTVMenu, DIALOG_STYLE_LIST, "CCTV - Lista de câmeras", gstr, "Ver", "Sair"); UsingCCTV{playerid} = true; FadeColorForPlayer(playerid, 63, 71, 76, 100, 63, 71, 76, 100, 1, 10); } else SysMsg(playerid, "SASP apenas. Você deve estar em uma sala CCTV."); return true; } CMD:elm(playerid) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(IsCop(playerid) || Faction[playerid] == FACTION_SACFD || Faction[playerid] == FACTION_RESEARCH) { if(VehID == 0) return SysMsg(playerid,"Você precisa estar em um veiculo de facção."); if(IsFactionVehicle(VehID) != Faction[playerid]) return SysMsg(playerid,"Você precisa estar em um veiculo de facção."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER && (GetPlayerVehicleSeat(playerid) != 1 && GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)) return SysMsg(playerid,"Você precisa estar no acento de condução ou passageiro da frente."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(!ELMs{VehID}) { ToggleVehicleLights(VehID, 1); EmergencyLights[VehID] = 0; ELMs{VehID} = true; SendClientMessage(playerid, COLOR_WHITE, "> Luzes de emergência {4BB74C}On"); ShowInfoText(playerid,"~g~Luzes de emergência ON",1000); } else if(ELMs{VehID}) { EmergencyLights[VehID] = 0; ToggleVehicleLights(VehID, VehicleLights[VehID]); new panels, doors, lights, tires; GetVehicleDamageStatus(VehID, panels, doors, lights, tires); UpdateVehicleDamageStatus(VehID, panels, doors, 0, tires); SendClientMessage(playerid, COLOR_WHITE, "> Luzes de emergência {8B0000}Off"); ShowInfoText(playerid,"~r~Luzes de emergência Off",1000); ELMs{VehID} = false; } } else SysMsg(playerid,"Somente certas facções podem usar esse recurso."); return true; } CMD:jail(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid)) { new playa = -1, time, cellid, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]ii", name, time, cellid)) return SysMsg(playerid,"Use: /jail [ID ou nome do jogador] [tempo] [número do cela, 1-4]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsDragging[playerid] == playa) return SysMsg(playerid,"Você não pode encarcerar a pessoa que está arrastando."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to jail them."); if(time < 1) return SysMsg(playerid,"O tempo deve ser superior a 0 minutos"); if(time > 60) return SysMsg(playerid,"O tempo deve ser inferior a 60 minutos"); if(cellid < 1) return SysMsg(playerid,"O número da cela deve ser 1, 2, 3 ou 4"); if(cellid > 4) return SysMsg(playerid,"O número da cela deve ser 1, 2, 3 ou 4"); JailTime[playa] = time; MySQLUpdateInt(SQLID[playa], "JailTime", JailTime[playa], "players"); JailPlayer(playa, cellid); IsJailed[playa] = 1; JailCell[playa] = cellid; SendClientMessageF(playa,COLOR_DARKBLUE,"Oficial %s prendeu você podoe %i Minuto(s)",NameEx(playerid),time); foreach(new i: Player) { if(Logged{i} && (IsCop(i))) SendClientMessageF(i,COLOR_DARKBLUE,"Oficial %s prendeu %s",NameEx(playerid),NameEx(playa)); } SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você prendeu %s por %i Minuto(s)",NameEx(playa),time); AddToMDC(SQLID[playa], playerid, MDC_TYPE_JAIL, time, ""); foreach(new i: Player) { if(PlayerToBeDetained[i] == playa) { PlayerToBeDetained[i] = -1; PlayerToBeDetainedSeat[i] = -1; break; } } } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:unjail(playerid, params[]) { new playa = -1; if(!Logged{playerid}) return true; if(!IsCop(playerid)) return true; { if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /unjail [ID ou nome do jogador]"); if(IsJailed[playa] == 0) return SysMsg(playerid,"Este jogador não está preso."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,4.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para liberá-los."); UnJailPlayer(playa); MySQLUpdateInt(SQLID[playa], "JailTime", 0, "players"); SendClientMessageF(playa, COLOR_RED, "Oficial %s o liberou da prisão.",NameRP(playerid)); foreach(new i: Player) { if(Logged{i} && (IsCop(i))) SendClientMessageF(i,COLOR_DARKBLUE,"Oficial %s liberou %s da prisão.",NameEx(playerid),NameRP(playa)); } SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você liberou %s da prisão.",NameEx(playa)); } return true; } CMD:timeleft(playerid, params[]) { if(!Logged{playerid}) return true; if(PlayerImprisoned{playerid}) return SendClientMessageF(playerid, COLOR_WHITE, "Você tem {FFA900}%i{FFFFFF} minutos restantes na prisão.", PrisonTime[playerid]); if(IsJailed[playerid] == 1) return SendClientMessageF(playerid, COLOR_WHITE, "Você tem {FFA900}%i{FFFFFF} minutos restantes na prisão.", JailTime[playerid]); else return SysMsg(playerid, "Você não está em Jail ou em Prisão."); } CMD:prison(playerid, params[]) { if(!Logged{playerid}) return true; if(IsCop(playerid)) { new playa = -1, time, cellid, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]ii", name, time, cellid)) return SysMsg(playerid,"Use: /prison [ID ou nome do jogador] [horas] [número da cela]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsDragging[playerid] == playa) return SysMsg(playerid,"Você não pode aprisionar a pessoa que você está arrastando."); if(playerid == playa) return SysMsg(playerid,"Você não pode se aprisionar."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to imprison them."); if(time < 1) return SysMsg(playerid,"O tempo deve ser superior a 1 hora."); if(time > 2) return SysMsg(playerid,"O tempo não deve ser mais do que 2 horas."); if(cellid < 1 || cellid > 16) return SysMsg(playerid,"Números de cela variam de 1 a 16 apenas."); cellid --; PrisonTime[playa] = time*60; ImprisonPlayer(playa, cellid); PlayerImprisoned{playa} = true; if(Cash[playa] > 0) { BankBalance[playa] += Cash[playa]; SetPlayerCash(playa, 0); } SetPlayerArmourEx(playa, 0.0, 1); Inventory[playa][Fags] = 0; Inventory[playa][Lighter] = 0; Inventory[playa][Weed] = 0; Inventory[playa][MoonShine] = 0; Inventory[playa][Cocaine] = 0; Inventory[playa][AmmoBox][0] = 0; Inventory[playa][AmmoBox][1] = 0; Inventory[playa][AmmoBox][2] = 0; Inventory[playa][AmmoBox][3] = 0; Inventory[playa][AmmoBox][4] = 0; Inventory[playa][AmmoBox][5] = 0; Inventory[playa][Rope] = 0; Inventory[playa][RollingPaper] = 0; Inventory[playa][Bong] = 0; Inventory[playa][Briefcase] = 0; BriefcaseWeapon[playa] = 0; BriefcaseCash[playa] = 0; BriefcaseWeed[playa] = 0; BriefcaseCocaine[playa] = 0; BriefcaseCode[playa] = 0; BriefcaseLocked[playa] = 0; Inventory[playa][MedKit] = 0; Inventory[playa][Toolbox] = 0; Inventory[playa][WeedSeed] = 0; Inventory[playa][Water] = 0; mysql_pqueryf(conn, "UPDATE players SET HasFags = 0, HasLighter = 0, Weed = 0, Cocaine = 0, Moonshine = 0, AmmoBoxPistol = 0, AmmoBoxShotgun = 0, AmmoBoxSMG = 0, AmmoBoxRifle = 0, AmmoBoxAssaultR = 0,\ HasRope = 0, RollingPaper = 0, Bong = 0, HasMedKit = 0, HasToolbox = 0, HasWater = 0, HasWeedSeed = 0, PrisonTime = %i, Bank = %i WHERE id = %i", PrisonTime[playa], BankBalance[playa], SQLID[playa]); if(IsPlayerMasked{playa}) cmd_unmask(playa, ""); AddToMDC(SQLID[playa], playerid, MDC_TYPE_JAIL, (time * 60), ""); SendClientMessageF(playa,COLOR_RED, "%s o aprisionou por %i horas.",NameEx(playerid),time); SendClientMessage(playa, COLOR_WHITE, "Nota: Certos itens não são autorizados na prisão, eles foram tirados de você. Qualquer dinheiro que você tenha agora estará no seu banco."); SendClientMessage(playa, COLOR_WHITE, "Artigos confiscados: Cigarros, isqueiros, Drogas/itens de drogas, munição, armas, corda, líquidos, Ferramentas, bolsas/maletas, celular, radio"); foreach(new i: Player) if(Logged{i} && IsCop(i)) SendClientMessageF(i,COLOR_DARKBLUE, "Oficial %s aprisionou %s.",NameEx(playerid),NameEx(playa)); SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Você aprisionou %s por %i horas.",NameEx(playa),time); foreach(new i: Player) { if(PlayerToBeDetained[i] == playa) { PlayerToBeDetained[i] = -1; PlayerToBeDetainedSeat[i] = -1; break; } } } else return SysMsg(playerid,"Você precisa ser membro da Polícia do Estado."); return true; } CMD:isolate(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] != FACTION_COP) return SysMsg(playerid, "Você deve estar no SASP para isolar os jogadores."); new playa = -1, time, isoid; if(sscanf(params, "iii", playa, time, isoid)) return SysMsg(playerid,"Use: /isolate [player id] [tempo em minutos] [número do quarto]"); if(Isolated[playa] == 1) return SysMsg(playerid, "Esse jogador já está isolado."); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsDragging[playerid] == playa) return SysMsg(playerid,"Não pode isolar a pessoa que está arrastando."); if(playerid == playa) return SysMsg(playerid,"Não pode se isolar."); if(time > PrisonTime[playa]) return SysMsg(playerid, "Você não pode isolar alguém por mais tempo que sua sentença de prisão."); if(isoid > 3) return SysMsg(playerid, "Você deve selecionar o quarto 0-3."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to isolate them."); SendClientMessageF(playa,COLOR_RED, "Oficial correcional %s colocou você em isolamento por %i minutos.",NameEx(playerid),time); foreach(new i: Player) if(Logged{i} && Faction[i] == FACTION_COP) SendClientMessageF(i,COLOR_DARKBLUE, "Oficial correcional %s colocou %s na solitária.",NameEx(playerid),NameEx(playa)); IsolationTime[playa] = time; MySQLUpdateInt(SQLID[playa], "IsolationTime", IsolationTime[playa], "players"); IsolatePlayer(playa, isoid); Isolated[playa] = 1; return true; } CMD:editprison(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP) { new playa = -1, etime; if(sscanf(params, "ui", playa, etime)) return SysMsg(playerid,"Use: /editprison [ID ou nome do jogador] [minutos]"); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(!PlayerImprisoned{playa}) return SysMsg(playerid,"Esse jogador não está na prisão."); if(etime < 1) return SysMsg(playerid,"O tempo deve ser superior a 1 hora."); if(etime > 120) return SysMsg(playerid,"O tempo não deve ser superior a 2 horas."); PrisonTime[playa] = etime; MySQLUpdateInt(SQLID[playa], "PrisonTime", PrisonTime[playa], "players"); SendClientMessageF(playa,COLOR_RED, "Seu tempo de prisão foi alterado por %i minutos por %s.",etime,NameEx(playerid)); SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Mudou o tempo de prisão de %s para %i minutos.",NameEx(playa),etime); } else return SysMsg(playerid,"Você deve estar no SASP para usar esse comando."); return true; } CMD:releaseprisoner(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP || IsPlayerAdminLevelOK(playerid, 4)) { new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /releaseprisoner [ID ou nome do jogador]"); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(!PlayerImprisoned{playa}) return SysMsg(playerid,"Esse jogador não está na prisão."); ReleaseFromPrison(playa); SendClientMessageF(playa, COLOR_RED, "Você foi libertado da prisão por %s.",NameEx(playerid)); SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você liberou %s da prisão.",NameEx(playa)); if(IsPlayerAdminLevelOK(playerid, 0)) foreach(new p: Player) if(Faction[p] == FACTION_COP) SendClientMessageF(p, COLOR_LIGHTBLUE, "[Polícia - Mensagem] %s foi libertado da prisão por %s %s.", NameEx(playa), GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid)); } else return SysMsg(playerid,"Você deve ser um membro do SASP para usar este comando."); return true; } CMD:prisoners(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP || IsPlayerAdminLevelOK(playerid, 1)) { new prisoner[48], count = 0; gstr[0] = EOS; strcat(gstr, "{A58977}Green Palms Correctional Facility Prisoners {B0B9CE}(( Online Players ))\n\n{FFFFFF}"); foreach(new i: Player) { if(Logged{i} && PlayerImprisoned{i}) { format(prisoner, sizeof(prisoner), "%s - %i minutos restantes\n", NameEx(i), PrisonTime[i]); strcat(gstr, prisoner); count ++; } } if(count == 0) SysMsg(playerid, "Ninguém está na prisão agora."); else ShowMessage(playerid, "Prisioneiros:", gstr, "Pronto"); } else return SysMsg(playerid,"Você deve ser um membro do SASP para usar este comando."); return true; } CMD:celldoor(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP) { if(GetPlayerInterior(playerid) != 6 && GetPlayerVirtualWorld(playerid) != 6164) return SysMsg(playerid, "Você só pode interagir com as portas das celas se você estiver na sala principal da prisão."); new number[4], action[7], cellid = -1; if(sscanf(params, "s[4]s[7]", number, action)) return SysMsg(playerid,"Use: /celldoor [número de célula ou 'todas'] [(f)echar/(a)brir]"); if(IsNumeric(number)) { cellid = strval(number); if(cellid < 1 || cellid > 16) return SysMsg(playerid, "O número da cela deve estar entre 1 e 20, ou use 'all' para fechar/abrir todos de uma vez."); cellid --; if(!IsPlayerInRangeOfPoint(playerid, 5.0, PrisonCellsOut[cellid][0], PrisonCellsOut[cellid][1], PrisonCellsOut[cellid][2])) return SysMsg(playerid, "Você deve estar mais perto da porta celular primeiro."); new cellstr[50]; if(strcmp("fechar", action, true) == 0 || strcmp("F", action, true) == 0) { if(PrisonCellsLock[cellid] == 1) return SysMsg(playerid, "Essa porta cela já está trancada."); PrisonCellsLock[cellid] = 1; format(cellstr, sizeof(cellstr), "Cela %i\nFechada", cellid+1); DestroyDynamic3DTextLabel(PrisonCellsText[cellid]); PrisonCellsText[cellid] = Text3D:INVALID_3DTEXT_ID; PrisonCellsText[cellid] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[cellid][0], PrisonCellsOut[cellid][1], PrisonCellsOut[cellid][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5); format(cellstr, sizeof(cellstr), "Cela %i {8B0000}Fechada", cellid+1); SendClientMessage(playerid, COLOR_WHITE, cellstr); return true; } else if(strcmp("abrir", action, true) == 0 || strcmp("A", action, true) == 0) { if(PrisonCellsLock[cellid] == 0) return SysMsg(playerid, "Essa porta cela já está aberta."); PrisonCellsLock[cellid] = 0; DestroyDynamic3DTextLabel(PrisonCellsText[cellid]); PrisonCellsText[cellid] = Text3D:INVALID_3DTEXT_ID; PrisonCellsText[cellid] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[cellid][0], PrisonCellsOut[cellid][1], PrisonCellsOut[cellid][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5); format(cellstr, sizeof(cellstr), "Cela %i {4BB74C}Aberta", cellid+1); SendClientMessage(playerid, COLOR_WHITE, cellstr); return true; } else return SysMsg(playerid, "Use 'abrir' ou 'fecha'. Você também pode usar A e F."); } else { if(strcmp("all", number, true) == 0 || strcmp("A", number, true) == 0) { new changed = 0, p, cellstr[22]; if(strcmp("fechar", action, true) == 0 || strcmp("F", action, true) == 0) { for(p = 0; p < 16; p++) { if(PrisonCellsLock[p] == 0) { changed ++; PrisonCellsLock[p] = 1; format(cellstr, sizeof(cellstr), "Cela %i\nFechada", p+1); DestroyDynamic3DTextLabel(PrisonCellsText[p]); PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID; PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5); } } if(changed == 0) return SysMsg(playerid, "Todas as cela já estão bloqueadas."); SendClientMessage(playerid, COLOR_WHITE, "Todas as cela {8B0000}Fechadas"); return true; } else if(strcmp("abrir", action, true) == 0 || strcmp("A", action, true) == 0) { for(p = 0; p < 16; p++) { if(PrisonCellsLock[p] == 1) { changed ++; PrisonCellsLock[p] = 0; format(cellstr, sizeof(cellstr), "Cela %i\nAberta", p+1); DestroyDynamic3DTextLabel(PrisonCellsText[p]); PrisonCellsText[p] = Text3D:INVALID_3DTEXT_ID; PrisonCellsText[p] = CreateDynamic3DTextLabel(cellstr, COLOR_WHITE, PrisonCellsOut[p][0], PrisonCellsOut[p][1], PrisonCellsOut[p][2], 5.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, 6164, -1, -1, 5); } } if(changed == 0) return SysMsg(playerid, "Todas as cela já estão desbloqueadas."); SendClientMessage(playerid, COLOR_WHITE, "Todas as cela foram {4BB74C}Aberta"); return true; } else return SysMsg(playerid, "Use qualquer um 'abrir' ou 'fechar'. Você também pode usar A e F."); } } } else return SysMsg(playerid,"Você precisa ser um membro do SASP para usar esse comando."); return true; } CMD:fine(playerid, params[])//multar { if(!Logged{playerid}) return true; if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei."); new playa = -1, cash, reason[64]; if(sscanf(params, "uiS()[64]", playa, cash, reason)) return SysMsg(playerid,"Use: /fine [ID ou nome do jogador] [valor] [Opcional: razão]"); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to fine them."); if(cash < 1) return SysMsg(playerid,"A multa deve ser maior do que $0"); switch(PlayerLevel[playa]) { case 0,1: if(cash > 10000) return SysMsg(playerid,"O valor máximo para jogadores de nível 1 é $10,000."); case 2,3: if(cash > 20000) return SysMsg(playerid,"O valor máximo para jogadores de nível 2 e 3 é $20,000."); case 4,5: if(cash > 30000) return SysMsg(playerid,"O valor máximo para jogadores de nível 4 e 5 é $30,000."); default: if(cash > 60000) return SysMsg(playerid,"O valor máximo é $60,000."); } if(strlen(reason) > 63) return SysMsg(playerid,"A razão foi muito longa."); if(isnull(reason)) format(reason, sizeof(reason), "Não especificado"); if(PoliceFineAmount[playa] < 0) { PoliceFineAmount[playa] = 0; } PoliceFineAmount[playa] += cash; MySQLUpdateInt(SQLID[playa], "PoliceFine", PoliceFineAmount[playa], "players"); AddToMDC(SQLID[playa], playerid, MDC_TYPE_FINE, cash, reason); if(PlayerToBeDetained[playerid] == playa) { PlayerToBeDetained[playerid] = -1; PlayerToBeDetainedSeat[playerid] = -1; } if(IsCop(playerid)) format(gstr, sizeof(gstr),"Oficial %s te aplicou um multa $%s, use '/aceitar multa' para pagar. [Razão: %s]",NameEx(playerid),format_cash(cash),reason); SendClientMessage(playa,COLOR_RED,gstr); format(gstr, sizeof(gstr),"Você multou %s por $%s [Razão: %s]",NameEx(playa),format_cash(cash),reason); SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr); return true; } CMD:warning(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei"); new playa = -1, reason[50]; if(sscanf(params, "us[50]", playa, reason)) return SysMsg(playerid,"Use: /avisaring [ID ou nome do jogador] [razão]"); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador to warn them."); if(strlen(reason) < 2 || strlen(reason) > 50) return SysMsg(playerid,"A razão foi muito longa/curta."); SendClientMessageF(playa, COLOR_RED, "Aviso oficial do oficial %s: %s",NameEx(playerid),reason); SendClientMessageF(playa, COLOR_RED, "Isto será em seu registro criminal."); SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você advertiu %s: %s",NameEx(playa),reason); return true; } CMD:pticket(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei"); new vehicleid = GetNearestVehicle(playerid); new regplate[MAX_REG_PLATE], ticketAmount; if(sscanf(params, "s[8]i", regplate, ticketAmount)) return SysMsg(playerid,"Use: Tickt de estacionamento: /pticket [placa de matrícula] [Quantidade]"); if(!strmatch(VehicleData[vehicleid][RegPlate], regplate) || strlen(VehicleData[vehicleid][RegPlate]) <= 0) return SysMsg(playerid, "Você não está no alcance desse veículo ou a placa não existe."); if(ticketAmount < 1 || ticketAmount > 1000) return SysMsg(playerid,"O valor deve estar entre $1 e $1000."); VehicleData[vehicleid][TicketAmount] += ticketAmount; MySQLUpdateInt(VehicleData[vehicleid][VehSQLID], "TicketAmount", ticketAmount, "vehicles"); format(gstr, sizeof(gstr),"Você definiu um $%i ticket por %s [%s, Proprietário: %s]", ticketAmount, VehicleData[vehicleid][RegPlate], GetVehicleNameEx(VehicleData[vehicleid][VehicleModel]), GetSQLName(VehicleData[vehicleid][VehicleOwnerSQLID])); SendClientMessage(playerid,COLOR_LIGHTBLUE,gstr); return true; } CMD:impound(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 50.0, 619.4, -592.6, 17.2)) return SysMsg(playerid,"Você precisa estar perto da Garagem do Impound (Dillimore)."); if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei"); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veiculo."); new vehicleid = GetPlayerVehicleID(playerid); new impoundid = GetVehicleTrailer(vehicleid); if(GetVehicleModel(vehicleid) != 525 || impoundid == 0) return SysMsg(playerid, "Você deve ter o veículo ligado a um reboque, para apreendê-lo."); if(IsRentalCar(impoundid) || IsServerCar(impoundid)) return SysMsg(playerid, "Não pode confiscar os veículos do servidor."); new cashAmount, impoundHours, reason[64]; if(sscanf(params, "iis[64]", cashAmount, impoundHours, reason)) return SysMsg(playerid,"Use: /impound [valor da multa] [horas] [razão]"); if(cashAmount < 0 || cashAmount > 1000) return SysMsg(playerid,"O valor deve estar entre $1 e $1000."); if(impoundHours < 1 || impoundHours > 24) return SysMsg(playerid,"O tempo de depósito deve estar entre 1 e 24 horas.."); if(strlen(reason) > 19) return SysMsg(playerid,"Razão foi muito longa."); new impound_minutes = impoundHours * 60; if(VehicleData[impoundid][IdVehicle] > 0) { if(VehicleData[impoundid][Impounded]) return SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: VIMP-1)"); VehicleData[impoundid][Impounded] = true; for(new im = 0, x = GetVehiclePoolSize(); im <= x; im++) { if(ImpoundData[im][iSQLID] < 1) { ImpoundData[im][iModel] = VehicleData[impoundid][VehicleModel]; ImpoundData[im][iSQLID] = VehicleData[impoundid][VehSQLID]; ImpoundData[im][iOwnerSQLID] = VehicleData[impoundid][VehicleOwnerSQLID]; ImpoundData[im][iImpoundedBy] = SQLID[playerid]; ImpoundData[im][iImpoundFee] = cashAmount; ImpoundData[im][iImpoundTime] = impound_minutes; ImpoundData[im][iColor1] = VehicleData[impoundid][vColor1]; ImpoundData[im][iColor2] = VehicleData[impoundid][vColor2]; format(ImpoundData[im][iImpoundReason], 64, reason); format(ImpoundData[im][iRegPlate], MAX_REG_PLATE, VehicleData[impoundid][RegPlate]); ImpoundData[im][iVehType] = 1; ImpoundData[im][iFaction] = 0; break; } } new Float:health, panels, doors, lights, tires; GetVehicleHealth(impoundid, health); GetVehicleDamageStatus(impoundid, panels, doors, lights, tires); if(health < 250) health = 250; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Impounded = 1, ImpoundedBy = %i, ImpoundTime = %i, ImpoundFee = %i, ImpoundReason = '%e', DamageHealth = %.2f, DamagePanels = %i, DamageDoors = %i, DamageLights = %i, DamageTires = %i WHERE id = %i", SQLID[playerid], impound_minutes, cashAmount, reason, health, panels, doors, lights, tires, VehicleData[impoundid][VehSQLID]); mysql_pquery(conn, mquery); if(VehicleData[impoundid][ForSale]) { VehicleData[impoundid][ForSale] = false; VehicleData[impoundid][ForSalePrice] = 0; } if(VehicleData[impoundid][ForSaleLabel] != Text3D:INVALID_3DTEXT_ID) DestroyDynamic3DTextLabel(VehicleData[impoundid][ForSaleLabel]); VehicleData[impoundid][ForSaleLabel] = Text3D:INVALID_3DTEXT_ID; VehicleData[impoundid][IdVehicle] = 0; } else if(FVehicleData[vehicleid][FactionVehID] > 0) { FVehicleData[impoundid][FImpounded] = true; mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET Impounded = 1, ImpoundedBy = %i, ImpoundTime = %i, ImpoundFee = %i, ImpoundReason = '%e' WHERE id = %i", SQLID[playerid], impound_minutes, cashAmount, reason, FVehicleData[impoundid][FVSQLID]); mysql_pquery(conn, mquery); for(new im = 0, x = GetVehiclePoolSize(); im <= x; im++) { if(ImpoundData[im][iSQLID] < 1) { ImpoundData[im][iModel] = FVehicleData[impoundid][FVModel]; ImpoundData[im][iSQLID] = FVehicleData[impoundid][FVSQLID]; ImpoundData[im][iOwnerSQLID] = 0; ImpoundData[im][iImpoundedBy] = SQLID[playerid]; ImpoundData[im][iImpoundFee] = cashAmount; ImpoundData[im][iImpoundTime] = impound_minutes; ImpoundData[im][iColor1] = FVehicleData[impoundid][FVCol1]; ImpoundData[im][iColor2] = FVehicleData[impoundid][FVCol2]; format(ImpoundData[im][iImpoundReason], 64, reason); format(ImpoundData[im][iRegPlate], MAX_REG_PLATE, FVehicleData[impoundid][FVRegPlate]); ImpoundData[im][iVehType] = 2; ImpoundData[im][iFaction] = FVehicleData[impoundid][FVFaction]; break; } } } else return SysMsg(playerid, "Você não pode apreender este veículo."); SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Você apreendeu o %s por %i horas (%i minutos) e aplicou $%i de multa.", GetVehicleName(impoundid), impoundHours, impound_minutes, cashAmount); SendClientMessageF(playerid, COLOR_LIGHTBLUE, "Motivo da apreenção: %s", reason); DetachTrailerFromVehicle(vehicleid); DestroyVehicleEx(impoundid, "impoundid"); ClearVehicleData(impoundid); return true; } CMD:viewimpounds(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 3.0, 619.476257, -592.645996, 17.233013)) return SysMsg(playerid,"Você precisa estar na garagem do depósito. (Dillimore)."); if(!IsCop(playerid)) return SysMsg(playerid,"Você precisa ser um oficial de aplicação da lei"); ShowImpoundList(playerid, 0); return true; } //==================== Fim ==================================// //7 House commands e furniture //House commands CMD:light(playerid) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] == -1 && IsInBizzID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa ou empresa para usar esse comando."); new lighttype; if(IsInHouseID[playerid] != -1) lighttype = 1; else if(IsInBizzID[playerid] != -1) lighttype = 2; if(lighttype == 1) { new h = IsInHouseID[playerid]; HouseData[h][HouseLights] = !HouseData[h][HouseLights]; if(HouseData[h][HouseLights]) { format(tgstr, sizeof(tgstr), "* %s pressiona o interruptor e liga a luz. *", NameRP(playerid)); ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); foreach(new i: Player) { if(IsInHouseID[i] == h) { SetPlayerTime(i, 12, 0); } } } else { format(tgstr, sizeof(tgstr), "* %s pressiona o interruptor e desligar a luz. *", NameRP(playerid)); ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); foreach(new i: Player) { if(IsInHouseID[i] == h) { SetPlayerTime(i, gServerHour, gServerMinute); } } } } else if(lighttype == 2) { new b = IsInBizzID[playerid]; if(BizzData[b][BizzOwnerSQLID] != SQLID[playerid] && !IsBizzMod(playerid, b) && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "Somente proprietários de empresas/Os gerentes podem usar esse comando."); BizzData[b][BizzLights] = !BizzData[b][BizzLights]; if(BizzData[b][BizzLights]) { format(tgstr, sizeof(tgstr), "* %s ressiona o interruptor e liga a luz. *", NameRP(playerid)); ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); foreach(new i: Player) { if(IsInBizzID[i] == b) { SetPlayerTime(i, 12, 0); } } } else { format(tgstr, sizeof(tgstr), "* %s ressiona o interruptor e desliga a luz. *", NameRP(playerid)); ProxDetector(20.0, playerid, tgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); foreach(new i: Player) { if(IsInBizzID[i] == b) { SetPlayerTime(i, gServerHour, gServerMinute); } } } } return true; } CMD:comprarcasa(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) >= MAX_HOUSE_PER_PLAYER) return SysMsg(playerid,"Você não pode ter mais casas."); for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid,1.0,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { if(HouseData[h][HouseOwnerSQLID] == 0) { if(Cash[playerid] < HouseData[h][HousePrice]) return SysMsg(playerid,"Você não tem dinheiro suficiente para comprar esta casa."); HouseData[h][HouseOwnerSQLID] = SQLID[playerid]; HasHouseKey[playerid][0] = -1; HasHouseKey[playerid][1] = -1; ProcessHouseKey(playerid); if(HasHouseKey[playerid][0] == h) SpawnAtHouse[playerid] = 0; else if(HasHouseKey[playerid][1] == h) SpawnAtHouse[playerid] = 1; MySpawnID[playerid] = 3; GivePlayerCash(playerid, -HouseData[h][HousePrice]); mysql_pqueryf(conn, "UPDATE players SET GuestHouseID = 0 WHERE GuestHouseID = %i", HouseData[h][HouseSQLID]); mysql_pqueryf(conn, "UPDATE houses SET OwnerSQLID = %i WHERE id = %i", SQLID[playerid], HouseData[h][HouseSQLID]); mysql_pqueryf(conn, "UPDATE players SET MySpawnID = %i, SpawnAtHouse = %i WHERE id = %i", MySpawnID[playerid], SpawnAtHouse[playerid], SQLID[playerid]); foreach(new i: Player) if(HouseData[h][HouseSQLID] == GuestHouseID[i]) GuestHouseID[i] = 0; SendClientMessageF(playerid,COLOR_GOLD, "Você comprou %s por $%s.",HouseData[h][HouseDescription],format_cash(HouseData[h][HousePrice])); ShowInfoText(playerid,"~w~PROPRIEDADE ADQUIRIDA",5000); UpdateHousePickup(h); UnlockAchievement(playerid, 9); break; } else if(HouseData[h][HouseOwnerSQLID] == -5) return SysMsg(playerid,"Esta propriedade está atualmente nas mãos da Silver Trading, confira lá para ver se está à venda."); else return SysMsg(playerid,"Esta propriedade já foi comprada."); } } return true; } CMD:sellmyhouse(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem casa para vender."); new id, conf[8]; if(sscanf(params, "is[8]", id, conf)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "CASA ID: %i - %s ($%s)", x, HouseData[HasHouseKey[playerid][x]][HouseDescription], format_cash(HouseData[HasHouseKey[playerid][x]][HousePrice] / 2)); } } return SendClientMessage(playerid, COLOR_WHITE, "Use '/vendermyhouse [ID de cima] confirmar' se você deseja vender sua casa."); } if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot."); if(id != 0 && id != 1) return SysMsg(playerid, "ID de casa inválido."); if(strmatch(conf, "confirmar")) { new h = HasHouseKey[playerid][id]; if(!IsPlayerInRangeOfPoint(playerid, 4.5, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ])) return SysMsg(playerid, "Você não está em sua casa."); new houseValue = HouseData[h][HousePrice] / 2; HouseData[h][HouseOwnerSQLID] = 0; HouseData[h][HouseLocked] = 0; HasHouseKey[playerid][0] = -1; HasHouseKey[playerid][1] = -1; ProcessHouseKey(playerid); SpawnAtHouse[playerid] = 0; if(MySpawnID[playerid] == 3) { MySpawnID[playerid] = 1; MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players"); } GivePlayerCash(playerid, houseValue); MySQLUpdateInt(HouseData[h][HouseSQLID], "OwnerSQLID", HouseData[h][HouseOwnerSQLID], "houses"); format(gstr, sizeof(gstr),"Você vendeu sua casa (%s) por $%s.",HouseData[h][HouseDescription],format_cash(houseValue)); SendClientMessage(playerid,COLOR_GOLD,gstr); ShowInfoText(playerid,"~w~PROPRIEDADE VENDIDA",5000); SendClientMessage(playerid,COLOR_GOLD,"Todos os convidados da sua casa (caso existam) foram despejados."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = 0 WHERE GuestHouseID = %i", HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SpawnAtHouse = 0 WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery); foreach(new i: Player) if(HouseData[h][HouseSQLID] == GuestHouseID[i]) GuestHouseID[i] = 0; UpdateHousePickup(h); } return true; } CMD:movein(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem uma casa."); new playa = -1, id; if(sscanf(params, "iu", id, playa)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid,"Use: /movein [Casa ID de cima] [ID ou nome do jogador]"); } if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo."); if(id != 0 && id != 1) return SysMsg(playerid, "Casa ID inválida."); if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot."); if(!IsPlayerInRangeOfPoint(playerid,5.0, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa))) return SysMsg(playerid,"Você deve estar perto do jogador para convidá-los a se mudarem."); OfferedMoveinFrom[playa][0] = playerid; OfferedMoveinFrom[playa][1] = id; SendClientMessageF(playa, COLOR_WHITE, "%s está oferecendo você para se mudar para sua casa (%s). Use '/aceitar mudança' para confirmar.", NameEx(playerid), HouseData[HasHouseKey[playerid][id]][HouseDescription]); if(GuestHouseID[playa] >= 1) SendClientMessage(playa, COLOR_WHITE, "Nota: Como convidado, você só pode ficar em uma casa por vez, então mudar para esta casa irá expulsá-lo da sua outra casa."); SendClientMessageF(playerid, COLOR_WHITE, "Você ofereceu %s para entrar em sua casa (%s). Espere o mesmo aceitar a proposta.", NameEx(playa), HouseData[HasHouseKey[playerid][id]][HouseDescription]); return true; } CMD:moveout(playerid, params[]) { if(!Logged{playerid}) return true; new ghouse = IsHouseGuest(playerid); if(ghouse == 0) return SysMsg(playerid,"Você não está morando na casa de outra pessoa."); if(HouseData[ghouse][HouseSQLID] == GuestHouseID[playerid]) { mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = 0 WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery); GuestHouseID[playerid] = 0; } if(MySpawnID[playerid] == 5) { MySpawnID[playerid] = 1; MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players"); } SendClientMessageF(playerid,COLOR_GOLD,"Você se mudou para fora %s.", HouseData[ghouse][HouseDescription]); foreach(new i: Player) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[i][x] == ghouse && Logged{i}) { SendClientMessageF(i, COLOR_WHITE, "%s acabou de sair de sua casa. (%s)", NameEx(playerid), HouseData[ghouse][HouseDescription]); return true; } } } return true; } CMD:evictguest(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid, "Você não tem uma casa."); new id, guest[MAX_PLAYER_NAME + 1]; if(sscanf(params, "is[25]", id, guest)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid, "Use: /evictguest [Casa ID de cima] [Nome_Sobrenome] (use /vervisitante para descobrir quem fica em sua casa)"); } if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida."); if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa nesse slot."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id,GuestHouseID FROM players WHERE Name = '%e'", guest); mysql_pquery(conn, mquery, "ProcessGuestEviction", "ii", playerid, HasHouseKey[playerid][id]); return true; } CMD:housemusic(playerid, params[]) { if(IsInHouseID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa."); if(IsHouseOwner(playerid, IsInHouseID[playerid]) || IsInHouseID[playerid] == IsHouseGuest(playerid)) { new musicLink[200]; if(sscanf(params, "s[200]", musicLink)) return SysMsg(playerid, "Use: /housemusic [link/stop]"); new h = IsInHouseID[playerid]; if(strcmp(musicLink, "stop") == 0) { foreach(new i: Player) { if(Logged{i} && IsInHouseID[i] == h) { StopAudioStreamForPlayer(i); } } HouseData[h][HMusicPlaying] = 0; HouseData[h][HMusic][0] = EOS; } else { foreach(new i: Player) { if(Logged{i} && IsInHouseID[i] == h) { PlayAudioStreamForPlayerEx(i, musicLink); ListeningBoom[i] = -1; } } format(HouseData[h][HMusic], 200, musicLink); HouseData[h][HMusicPlaying] = 1; } return true; } else SysMsg(playerid,"Você deve estar em sua própria casa."); return true; } CMD:housestore(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa."); new item[10], itemname[20], amount, h = IsInHouseID[playerid]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid]) { if(sscanf(params, "s[10]S()[20]", item)) return SysMsg(playerid,"Use: /housestore [item] [quantidade/nome] - Itens: Dinheiro, Arma, Marijuana, Cocaina, MoonShine, Colete, Celular"); if(strcmp("dinheiro", item, true) == 0 || strcmp("Money", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore dinheiro [quantidade $]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de caixa deve ser superior a zero."); if(amount > Cash[playerid]) return SysMsg(playerid,"Você não tem tanto dinheiro para armazenar."); HouseData[h][StoredCash] += amount; GivePlayerCash(playerid, -amount); MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCash", HouseData[h][StoredCash], "houses"); format(gstr, sizeof(gstr),"* %s armazena algum dinheiro em sua casa.",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você armazenou $%s na sua casa.", format_cash(amount)); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); format(gstr, sizeof(gstr),"[%s] %s(%i) colocou $%i na identificação na casa ID %i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, h, Cash[playerid]); AddToLog("cash", gstr); return true; } if(strcmp("arma", item, true) == 0 || strcmp("Gun", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore arma [nome da arma]"); new wid = GetWeaponIdFromName(itemname); if(wid == -1) return SysMsg(playerid,"Nome da arma inválido."); if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida."); if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida."); new Slot = GetWeaponSlot(wid); if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não possui essa arma."); if(WeaponData[playerid][Slot][WeaponOrigin] == 3) return SysMsg(playerid, "Você não pode armazenar armas de facção em sua casa."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE HouseID = %i AND Deleted = 0 AND Dropped = 0", HouseData[h][HouseSQLID]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() >= 10) return SysMsg(playerid, "Não há mais espaço na sua casa para armas."); cache_delete(result); new ammo = WeaponData[playerid][Slot][WeaponAmmo]; mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 0, HouseID = %i, WeaponAmmo = %i WHERE id = %i", HouseData[h][HouseSQLID], WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); ResetWeaponVariables(playerid, 0, Slot); SetPlayerArmedWeapon(playerid, 0); SyncPlayerWeapons(playerid); format(gstr, sizeof(gstr),"* %s guardar uma %s em sua arma. *",NameRP(playerid),GetWeaponNameFromID(wid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você armazenou uma %s com %i munição em sua casa.",GetWeaponNameFromID(wid), ammo); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("marijuana", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore marijuana [Quantidade]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de marijuana deve ser maior que zero."); if(amount > Inventory[playerid][Weed]) return SysMsg(playerid,"Você não tem muito marijuana para armazenar."); HouseData[h][StoredWeed] += amount; Inventory[playerid][Weed] -= amount; MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredWeed", HouseData[h][StoredWeed], "houses"); MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); format(gstr, sizeof(gstr),"* %s armazena algumas marijuana em sua casa.",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você armazenou %ig de marijuana em sua casa. Agora você tem %ig no seu inventário.", amount, Inventory[playerid][Weed]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("Cocaina", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore cocaina [Quantidade]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de cocaína deve ser maior que zero."); if(amount > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Você não tem muita cocaína para armazenar."); HouseData[h][StoredCocaine] += amount; Inventory[playerid][Cocaine] -= amount; MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCocaine", HouseData[h][StoredCocaine], "houses"); MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); format(gstr, sizeof(gstr),"* %s armazena alguma cocaína em sua casa.",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você armazenou %ig de cocaína em sua casa. Agora você tem %ig no seu inventário.", amount, Inventory[playerid][Cocaine]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("MoonShine", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /housestore MoonShine [Quantidade]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de MoonShine deve ser maior que zero."); if(amount > Inventory[playerid][MoonShine]) return SysMsg(playerid,"Você não tem tanto MoonShine para armazenar."); HouseData[h][StoredMoonShine] += amount; Inventory[playerid][MoonShine] -= amount; MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredMoonShine", HouseData[h][StoredMoonShine], "houses"); MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players"); format(gstr, sizeof(gstr),"* %s armazena algum MoonShine em sua casa.",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você armazenou %i L de MoonShine em sua casa. Agora você tem %i L no seu inventário.", amount, Inventory[playerid][MoonShine]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("colete", item, true) == 0 || strcmp("armor", item, true) == 0) { new Float:carmour; GetPlayerArmour(playerid, carmour); if(VestType[playerid] == 0 || carmour == 0) return SysMsg(playerid, "Você não possui colete."); if(RestrictedVest{playerid}) return SysMsg(playerid, "Você não pode armazenar este colete em sua casa."); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO storedarmor (ArmorType, ArmorAmount, HouseID) VALUES (%i, %f, %i)", VestType[playerid], carmour, HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s armazena um colete em sua casa.",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(VestType[playerid] == 1) SendClientMessageF(playerid, COLOR_LIGHTRED, "Você armazenou um colete leve em sua casa."); else SendClientMessage(playerid, COLOR_LIGHTRED, "Você armazenou um colete pesado em sua casa."); SetPlayerArmourEx(playerid, 0.0, 1); VestType[playerid] = 0; return true; } if(strcmp("phone", item, true) == 0 || strcmp("celular", item, true) == 0 || strcmp("telefone", item, true) == 0) { if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um celular."); if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto toca."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto você o está usando."); new phone = PhoneData[playerid][pID]; HouseData[h][StoredPhone] = phone; mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET StoredPhone = %i WHERE id = %i", phone, HouseData[h][HouseSQLID]); mysql_tquery(conn, mquery); ClearPhoneData(playerid); mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 0 WHERE id = %i", phone); mysql_tquery(conn, mquery); format(gstr, sizeof(gstr),"* %s armazena um celular em sua casa. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid,COLOR_LIGHTRED, "Você armazenou seu celular em sua casa."); return true; } } else return SysMsg(playerid, "Você não está em sua própria casa."); return true; } CMD:houseget(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em sua própria casa."); new item[10], itemname[20], amount, h = IsInHouseID[playerid]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid]) { if(sscanf(params, "s[10]S()[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget [item] [quantidade/nome] - Itens: Dinheiro, Armas, Marijuana, Cocaina, Moonshine, Colete, Celular"); if(strcmp("dinheiro", item, true) == 0 || strcmp("Money", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget dinheiro [quantidade $]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de caixa deve ser superior a zero."); if(amount > HouseData[h][StoredCash]) return SysMsg(playerid,"Você não tem tanto dinheiro armazenado na casa."); HouseData[h][StoredCash] -= amount; GivePlayerCash(playerid, amount); MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCash", HouseData[h][StoredCash], "houses"); format(gstr, sizeof(gstr),"* %s pega algum dinheiro de sua casa. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você pegou $%s da sua casa.", format_cash(amount)); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); format(gstr, sizeof(gstr),"[%s] %s(%i) pegou $%i da sua casa ID %i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, h, Cash[playerid]); AddToLog("cash", gstr); return true; } if(strcmp("arma", item, true) == 0 || strcmp("Gun", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget arma [nome da arma]"); new wid = GetWeaponIdFromName(itemname); if(wid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida."); if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida."); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE WeaponID = %i AND HouseID = %i AND Deleted = 0 AND Dropped = 0", wid, HouseData[h][HouseSQLID]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() == 0) { SysMsg(playerid, "Essa arma não está armazenada em sua casa."); cache_delete(result); return true; } if(!WeaponCheck(playerid, wid)) return SysMsg(playerid, "Você não pode pegar essa arma."); new Slot = GetWeaponSlot(wid); if(WeaponData[playerid][Slot][Weapon] == wid) return SysMsg(playerid,"Você já possui essa arma."); if(cache_num_rows()) { WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id"); WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID"); WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]); WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); } cache_delete(result); SyncPlayerWeapons(playerid); SetPlayerArmedWeapon(playerid, wid); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 1, HouseID = -1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s pegou uma %s de sua casa. *",NameRP(playerid),GetWeaponNameFromID(wid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você pegou uma %s com %i munições da sua arma.",GetWeaponNameFromID(wid), WeaponData[playerid][Slot][WeaponAmmo]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("marijuana", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget marijuana [Quantidade]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de erva daninha deve ser maior que zero."); if(amount > HouseData[h][StoredWeed]) return SysMsg(playerid,"Você não tem muita Weed armazenada na casa."); if(Inventory[playerid][Weed] + amount > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar tanto Weed."); HouseData[h][StoredWeed] -= amount; Inventory[playerid][Weed] += amount; MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredWeed", HouseData[h][StoredWeed], "houses"); MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); format(gstr, sizeof(gstr),"* %s pega algumas gramas de Marijuana da sua casa *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você pegou %ig de marijuana de sua casa. Agora você tem %ig no seu inventário.", amount, Inventory[playerid][Weed]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("Cocaina", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget cocaina [Quantidade]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"A quantidade de cocaína deve ser superior a zero."); if(amount > HouseData[h][StoredCocaine]) return SysMsg(playerid,"Você não tem muita cocaína armazenada na casa."); if(Inventory[playerid][Cocaine] + amount > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar muita Cocaína."); HouseData[h][StoredCocaine] -= amount; Inventory[playerid][Cocaine] += amount; MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredCocaine", HouseData[h][StoredCocaine], "houses"); MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); format(gstr, sizeof(gstr),"* %s pega um pouco de cocaina de sua casa. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você pegou %ig de cocaína da sua casa. Você agora tem %ig no seu inventário.", amount, Inventory[playerid][Cocaine]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("MoonShine", item, true) == 0) { if(sscanf(params, "s[10]s[20]", item, itemname)) return SysMsg(playerid,"Use: /houseget MoonShine [Quantidade]"); if(!IsNumeric(itemname)) return SysMsg(playerid,"O valor deve ser um número."); amount = strval(itemname); if(amount < 1) return SysMsg(playerid,"Quantidade de aguardente deve ser maior que zero."); if(amount > HouseData[h][StoredMoonShine]) return SysMsg(playerid,"Você não tem essa quantidade de MoonShine guardado na casa."); if(Inventory[playerid][MoonShine] + amount > DRUG_MAX_MOONSHINE) return SysMsg(playerid,"Você não pode carregar tanta MoonShine."); HouseData[h][StoredMoonShine] -= amount; Inventory[playerid][MoonShine] += amount; MySQLUpdateInt(HouseData[h][HouseSQLID], "StoredMoonShine", HouseData[h][StoredMoonShine], "houses"); MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players"); format(gstr, sizeof(gstr),"* %s pega algum litro de MoonShine de sua casa. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você pegou %i L de MoonShine da sua casa. Você agora tem %i L no seu inventário.", amount, Inventory[playerid][MoonShine]); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); return true; } if(strcmp("colete", item, true) == 0 || strcmp("armor", item, true) == 0) { mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE HouseID = %i", HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 1); return true; } if(strcmp("phone", item, true) == 0 || strcmp("celular", item, true) == 0 || strcmp("telefone", item, true) == 0) { if(Inventory[playerid][MobilePhone] == 1) return SysMsg(playerid, "Você já tem um celular em seu inventário."); if(HouseData[h][StoredPhone] == 0) return SysMsg(playerid, "Esta casa não tem um celular armazenado nele"); format(gstr, sizeof(gstr),"* %s pega um celular de sua casa. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid,COLOR_LIGHTRED, "Você tirou um celular de sua casa."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 1, PhonePossessor = %i WHERE id = %i", SQLID[playerid], HouseData[h][StoredPhone]); mysql_tquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET StoredPhone = 0 WHERE id = %i", HouseData[h][HouseSQLID]); mysql_tquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i AND PhonePossession = 1", HouseData[h][StoredPhone]); mysql_tquery(conn, mquery, "LoadPlayerPhone", "d", playerid); HouseData[h][StoredPhone] = 0; return true; } } else return SysMsg(playerid, "You are not in your house."); return true; } CMD:houseview(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em sua própria casa."); new h = IsInHouseID[playerid]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid]) { SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Inventário da casa: $%s, %ig marijuana, %ig cocaina, %iL moonshine", format_cash(HouseData[h][StoredCash]), HouseData[h][StoredWeed], HouseData[h][StoredCocaine], HouseData[h][StoredMoonShine]); if(HouseData[h][StoredPhone] >= 1) SendClientMessage(playerid, COLOR_LIGHTGREEN, "Existe um telefone celular armazenado nesta casa."); SendClientMessage(playerid, COLOR_LIGHTGREEN, "Use /houseviewguns para ver as armas dentro de sua casa. Use /houseget colete para ver o colete em sua casa."); return true; } SysMsg(playerid, "Você não está em sua casa."); return true; } CMD:houseviewguns(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em sua própria casa."); new h = IsInHouseID[playerid]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid]) { mysql_format(conn, mquery, sizeof(mquery), "SELECT id,WeaponID,WeaponAmmo FROM weapons WHERE WeaponPossession = 0 AND HouseID = %i AND Deleted = 0 AND TrunkID = -1 AND FCarID = -1 AND Dropped = 0", HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery, "ShowHouseGuns", "d", playerid); return true; } else SysMsg(playerid, "Você não está em sua casa."); return true; } //House furniture commands CMD:guestfurnish(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid, "Você não possui uma casa."); new id, playa = -1; if(sscanf(params, "iu", id, playa)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid, "Use: /guestfurnish [Casa ID] [ID ou nome do jogador]"); } if(playa == playerid) return SysMsg(playerid, "Não pode ser você mesmo."); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida."); if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot."); if(EditingHouseFurn[playa] != -1) return SysMsg(playerid, "Este jogador já está fornecendo uma casa."); new h = HasHouseKey[playerid][id]; EditingHouseFurn[playa] = HouseData[h][HouseSQLID]; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestFurnish = %i WHERE id = %i", HouseData[h][HouseSQLID], SQLID[playa]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_WHITE, "Você deu a %s acesso para mecher nos móveis de sua casa. (%s)", NameEx(playa), HouseData[h][HouseDescription]); SendClientMessageF(playa, COLOR_WHITE, "%s lhe deu acesso para usar móveis de sua casa. (%s)", NameEx(playerid), HouseData[h][HouseDescription]); SendClientMessage(playa, COLOR_WHITE, "Você pode remover seu acesso a qualquer momento usando /stopguestfurnish."); return true; } CMD:grantfurnish(playerid, params[]) return cmd_guestfurnish(playerid, params); CMD:stopguestfurnish(playerid, params[]) { if(!Logged{playerid}) return true; if(EditingHouseFurn[playerid] == -1) return SysMsg(playerid, "Você não está editando a mobília da casa de outra casa."); SendClientMessageF(playerid, COLOR_WHITE, "Você não tem mais acesso a mobiliário de %s.", HouseData[GetHouseArrayFromID(EditingHouseFurn[playerid])][HouseDescription]); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestFurnish = -1 WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery); EditingHouseFurn[playerid] = -1; return true; } CMD:revokefurnish(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem uma casa."); new id, name[MAX_PLAYER_NAME+1]; if(sscanf(params, "is[25]", id, name)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid, "Use: /revokefurnish [Casa ID de cima] [Nome_Sobrenome] *use /viewguestfurnishers para ver os convidados atuais.*"); } if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida."); if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa neste slot."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id,Online FROM players WHERE Name = '%e' AND GuestFurnish = %i", name, HouseData[HasHouseKey[playerid][id]][HouseSQLID]); mysql_pquery(conn, mquery, "ProcessFurnishRevoke", "iis", playerid, id, name); return true; } GREENSIDE::ProcessFurnishRevoke(playerid, houseid, name[]) { if(!cache_num_rows()) return SysMsg(playerid, "Este usuário não possui acesso de móveis em sua casa."); new id, online; id = cache_get_field_content_int(0, "id"); online = cache_get_field_content_int(0, "Online"); if(online == 1) { foreach(new i: Player) { if(SQLID[i] == id) { EditingHouseFurn[i] = -1; SendClientMessageF(i, COLOR_WHITE, "%s revogou sua permissão para editar seus móveis de casa. (%s)", NameEx(playerid), HouseData[houseid][HouseDescription]); } } } mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestFurnish = -1 WHERE id = %i", id); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_WHITE, "Você revogou a edição de %s para gerênciar os furnitures de sua casa.", name); return true; } CMD:viewguestfurnishers(playerid, params[]) { if(isnull(params) || !IsNumeric(params)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid, "Use: /viewguestfurnishers [Casa ID de cima]"); } if(strval(params) != 0 && strval(params) != 1) return SysMsg(playerid, "Casa inválida."); mysql_format(conn, mquery, sizeof(mquery), "SELECT Name FROM players WHERE GuestFurnish = %i", HouseData[HasHouseKey[playerid][strval(params)]][HouseSQLID]); mysql_pquery(conn, mquery, "ViewHouseFurnishers", "i", playerid); return true; } GREENSIDE::ViewHouseFurnishers(playerid) { if(!cache_num_rows()) return SysMsg(playerid, "Não há ninguem com acesso de mecher nos móveis de sua casa."); gstr[0] = EOS; new name[MAX_PLAYER_NAME+1]; for(new i = 0, x = cache_num_rows(); i < x; i++) { cache_get_field_content(i, "Nome", name); format(tgstr, sizeof(tgstr), "%s\n", name); strcat(gstr, tgstr); } Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_LIST, "Mobiliário", gstr, "Pronto!", ""); return true; } CMD:payfurn(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params) || IsNumeric(params)) return SysMsg(playerid, "Use: /pagarfurn ['Dinheiro' ou 'Banco'] *Isso mudará de onde você será cobrado quando comprar novos móveis.*"); if(strcmp("banco", params, true) == 0) { BuyFurnFrom[playerid] = 0; SysMsg(playerid, "Money will now be taken from your bank account when you purchase furniture."); } else if(strcmp("dinheiro", params, true) == 0) { BuyFurnFrom[playerid] = 1; SysMsg(playerid, "O dinheiro agora será retirado do seu dinheiro em mãos quando comprar móveis."); } else cmd_payfurn(playerid, ""); return true; } CMD:searchf(playerid, params[]) { if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid, "Você deve estar dentro de sua própria casa para usar esse comando."); if(BuyFurnFrom[playerid] == -1) return SysMsg(playerid, "Você não definiu a partir do qual gostaria de tirar dinheiro para comprar móveis. Por favor, use /pagarfurn para definir isso."); if(GetFreeHouseFurnitureForHouse(playerid) >= GetMaxFurnitureForPlayer(playerid)) return SysMsgF(playerid, "Você atingiu seu limite de mobiliário de %i e não pode comprar mais.", GetMaxFurnitureForPlayer(playerid)); if(PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID || PlayerPlaceFurniture[playerid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Você já está editando um objeto."); if(isnull(params)) return SysMsg(playerid, "Use: /searchf [item name]"); new results; gstr[0] = EOS; strcat(gstr, "Nome da mobília\tValor\n"); for(new x = 0; x < MAX_FURNITURE; x++) { if(strfind(FurniData[x][fuName], params, true) != -1) { format(gstr, sizeof(gstr), "%s%s\t$%s\n", gstr, FurniData[x][fuName], format_cash(FurniData[x][fPrice])); results ++; } } if(results != 0) Dialog_Show(playerid, FurniturePurchase3, DIALOG_STYLE_TABLIST_HEADERS, "Compre móveis", gstr, "Selecionar", "Cancelar"); else SysMsg(playerid, "Não foi possível encontrar nenhum objeto com esse nome"); return true; } CMD:buyf(playerid, params[]) { if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid, "Você deve estar dentro de sua própria casa para usar esse comando."); if(BuyFurnFrom[playerid] == -1) return SysMsg(playerid, "Você não definiu a partir do qual gostaria de tirar dinheiro para comprar móveis. Por favor, use /pagarfurn para definir isso."); if(GetFreeHouseFurnitureForHouse(playerid) >= GetMaxFurnitureForPlayer(playerid)) return SysMsgF(playerid, "Você atingiu seu limite de mobiliário de %i e não pode comprar mais.",GetMaxFurnitureForPlayer(playerid)); if(PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID || PlayerPlaceFurniture[playerid] != INVALID_OBJECT_ID) return SysMsg(playerid, "Você já está editando um objeto."); if(isnull(params)) return Dialog_Show(playerid, FurniturePurchase, DIALOG_STYLE_LIST, "Selecione uma categoria de mobiliário", GetHouseCategoryList(), "Selecionar", "Cancelar"); for(new x = 0; x < MAX_FURNITURE; x++) { if(strmatch(FurniData[x][fuName], params)) { if(BuyFurnFrom[playerid] == 1) { if(Cash[playerid] < FurniData[x][fPrice]) return SysMsg(playerid, "Você não tem o dinheiro necessário para este item."); } else { if(BankBalance[playerid] < FurniData[x][fPrice]) return SysMsg(playerid, "Você não tem o dinheiro necessário para este item."); } for(new slot = 0; slot < GetMaxFurnitureForPlayer(playerid); slot++) { if(HouseData[IsInHouseID[playerid]][FurnModel][slot] == 0) { mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO hfurniture (Model,Placed,Xpos,Ypos,Zpos,Xrot,Yrot,Zrot,HouseSQLID) VALUES (%i,0,0.0,0.0,0.0,0.0,0.0,0.0,%i)", FurniData[x][fModel], HouseData[IsInHouseID[playerid]][HouseSQLID]); mysql_pquery(conn, mquery, "InsertHouseFurni", "dd", playerid, slot); new h = IsInHouseID[playerid]; HouseData[h][FurnObject][slot] = 0; HouseData[h][FurnModel][slot] = FurniData[x][fModel]; HouseData[h][FurnPlaced][slot] = 0; if(BuyFurnFrom[playerid] == 0) //take money from the player's bank { BankBalance[playerid] -= FurniData[x][fPrice]; mysql_pqueryf(conn, "UPDATE players SET Bank = %i WHERE id = %i", BankBalance[playerid], SQLID[playerid]); } else GivePlayerCash(playerid, -FurniData[x][fPrice]); //take money from their wallet. break; } } SendClientMessageF(playerid, COLOR_WHITE, "Você comprou um {BCDCBC}%s{FFFFFF} por {BCDCBC}$%i{FFFFFF}.", params, FurniData[x][fPrice]); return true; } } SysMsg(playerid, "Não foi possível encontrar um objeto de mobília com esse nome."); return true; } CMD:selectf(playerid, params[]) return cmd_selectfurniture(playerid, params); CMD:selectfurniture(playerid, params[]) { if(!Logged{playerid} || PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID) return true; if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para usar esse recurso."); SelectObject(playerid); return true; } CMD:sfl(playerid, params[]) return cmd_selectflist(playerid, params); CMD:selectflist(playerid, params[]) { if(!Logged{playerid} || PlayerBuyFurniture[playerid][0] != INVALID_OBJECT_ID) return true; if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para usar esse recurso."); new Float:dist; if(sscanf(params, "f", dist)) return SysMsg(playerid, "Usgae: /selectflist [radius]"); if(dist <= 0.0) return SysMsg(playerid, "A distância deve ser maior do que 0."); new count = 0, mfurniture[MAX_HFURNITURE], desc[MAX_HFURNITURE][32], h = IsInHouseID[playerid], Float:x, Float:y, Float:z; for(new f = 0; f < MAX_HFURNITURE; f++) { if(HouseData[h][FurnModel][f] > 0 && HouseData[h][FurnPlaced][f] == 1) { GetDynamicObjectPos(HouseData[h][FurnObject][f], x, y, z); if(IsPlayerInRangeOfPoint(playerid, dist, x, y, z)) { mfurniture[count] = HouseData[h][FurnModel][f]; format(desc[count], 32, "%s", GetHouseFurnitureName(HouseData[h][FurnModel][f])); count++; } } } if(count > 0) { ShowModelSelectionMenu(playerid, "Selecione Móveis", MODEL_SELECTION_SFURNITURE, mfurniture, count, 0.0, 0.0, 90.0); SFRadius[playerid] = dist; } else SysMsg(playerid, "Você não está perto o suficiente para qualquer item."); return true; } CMD:placef(playerid, params[]) return cmd_placefurniture(playerid, params); CMD:placefurniture(playerid, params[]) { if(!Logged{playerid}) return true; if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para colocar móveis."); new count = 0, mfurniture[MAX_HFURNITURE], desc[MAX_HFURNITURE][64]; for(new i = 0; i < MAX_HFURNITURE; i++) { if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 0) { mfurniture[count] = HouseData[IsInHouseID[playerid]][FurnModel][i]; format(desc[count], 64, "%s", GetHouseFurnitureName(HouseData[IsInHouseID[playerid]][FurnModel][i])); count++; } } if(count > 0) ShowModelSelectionMenu(playerid, "Colocar mobilia", MODEL_SELECTION_FURNITURE, mfurniture, count, 0.0, 0.0, 90.0); //ShowMessage(playerid,"inventário da casa","Você Não tem nenhum item no invenrário da casa.", "OK"); return true; } CMD:removef(playerid, params[]) return cmd_removefurniture(playerid, params); CMD:removefurniture(playerid, params[])//apagar do inventário { if(!Logged{playerid}) return true; if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para móveis remotos."); new count = 0, mfurniture[MAX_HFURNITURE], desc[MAX_HFURNITURE][64]; for(new i = 0; i < MAX_HFURNITURE; i++) { if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 0) { mfurniture[count] = HouseData[IsInHouseID[playerid]][FurnModel][i]; format(desc[count], 64, "%s", GetHouseFurnitureName(HouseData[IsInHouseID[playerid]][FurnModel][i])); count++; } } if(count > 0) ShowModelSelectionMenu(playerid, "Remove Furniture", MODEL_REMOVE_FURNITURE, mfurniture, count, 0.0, 0.0, 90.0); //ShowMessage(playerid,"House Item Inventory","You do not have any unplaced items to throw out.", "OK"); return true; } CMD:removeallf(playerid, params[]) return cmd_removeallfurniture(playerid, params); CMD:removeallfurniture(playerid, params[]) { if(!Logged{playerid}) return true; if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para remover móveis."); new count = 0; for(new i = 0; i < MAX_HFURNITURE; i++) { if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 0) { count = 1; break; } } if(count == 1) Dialog_Show(playerid, FurnitureRemoveAll, DIALOG_STYLE_MSGBOX, "Mobília", "Tem certeza de que deseja descartar todos os seus móveis não colocados?\nO mobiliário que já está colocado dentro de sua casa não é afetado.", "Sim", "Deixa pra lá"); else ShowMessage(playerid,"Inventário do item da casa", "Você não tem itens não colocados para jogar fora.", "OK"); return true; } CMD:pickupallf(playerid, params[]) return cmd_pickupallfurniture(playerid, params); CMD:pickupallfurniture(playerid, params[]) { if(!Logged{playerid}) return true; if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa para pegar móveis."); new count = 0; for(new i = 0; i < MAX_HFURNITURE; i++) { if(HouseData[IsInHouseID[playerid]][FurnModel][i] > 0 && HouseData[IsInHouseID[playerid]][FurnPlaced][i] == 1) { count = 1; break; } } if(count == 1) Dialog_Show(playerid, FurniturePickupAll, DIALOG_STYLE_MSGBOX, "Mobília", "Você tem certeza de que deseja guardar todos os móveis do seu lugar?\nVocê pode então colocá-los novamente usando /placefurniture.", "Sim", "Deixa pra lá"); else ShowMessage(playerid,"Inventário do item da casa", "Você não tem itens colocados para guardar.", "OK"); return true; } CMD:frickedf(playerid) { if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG); new Float:x, Float:y, Float:z, count = 0; for(new h = 0; h < MAX_HOUSES; h++) { for(new f = 0; f < MAX_HFURNITURE; f++) { if(HouseData[h][FurnPlaced][f] == 1) { GetDynamicObjectPos(HouseData[h][FurnObject][f], x, y, z); if(IsPointInRangeOfPoint(x, y, z, 0.0, 0.0, 0.0, 10.0)) { count ++; } } } } printf("%i", count); return true; } CMD:reloadoutdoorfurniture(playerid) { if(!Logged{playerid}) return true; new h = GetHouseForExteriorEdit(playerid); if(h == -1) return SysMsg(playerid, "Não foi possível encontrar um exterior de casa para você editar."); for(new f = 0; f < MAX_EHFURNITURE; f++) { if(EFurnData[h][EFurnPlaced][f]) { if(EFurnData[h][EFurnObject][f] != INVALID_OBJECT_ID) DestroyDynamicObjectEx(EFurnData[h][EFurnObject][f], "EFurnData[h][EFurnObject][f]"); EFurnData[h][EFurnObject][f] = INVALID_OBJECT_ID; EFurnData[h][EFurnPlaced][f] = false; EFurnData[h][EFurnSQLID][f] = 0; EFurnData[h][EFurnModel][f] = 0; } } mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM efurniture WHERE HouseSQLID = %i", HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery, "LoadExteriorHouseFurniture"); return true; } CMD:reloadmyfurniture(playerid, params[]) { if(!CanFurnishHouse(playerid, IsInHouseID[playerid])) return SysMsg(playerid,"Você deve estar em sua própria casa."); new b = IsInHouseID[playerid]; foreach(new i: Player) { if(PlayerPlaceFurniture[i] != INVALID_OBJECT_ID || PlayerEditFurniture[i] != INVALID_OBJECT_ID || PlayerBuyFurniture[i][0] != INVALID_OBJECT_ID) { if(IsInHouseID[i] == IsInHouseID[playerid] && i != playerid) { return SysMsg(playerid, "Alguém em sua casa está editando ou comprando móveis de casa, como tal, você não pode recarregar o mobiliário até finalizar."); } } } if(HouseData[b][InsideID] == 31) //warehouse int { //freeze the player for 3 seconds TogglePlayerControllable(playerid, false); TeleportTimer[playerid] = 3; BeingTeleported{playerid} = true; } for(new f = 0; f < MAX_HFURNITURE; f++) { if(HouseData[b][FurnObject][f] != INVALID_OBJECT_ID) { DestroyDynamicObjectEx(HouseData[b][FurnObject][f], "HouseData[b][FurnObject][f] 1"); } HouseData[b][FurnSQLID][f] = 0; HouseData[b][FurnModel][f] = 0; HouseData[b][FurnPlaced][f] = 0; HouseData[b][FurnObject][f] = INVALID_OBJECT_ID; HouseData[b][DoorOpen][f] = false; HouseData[b][DoorLocked][f] = false; for(new i = 0; i < MAX_TEXTURESLOTS; i++) { FurnitureIndex[b][f][i] = -1; } } for(new w = 0; w < MAX_WEED_PLANTS; w++) { WeedData[b][PlantGrowth][w] = 0; WeedData[b][PlantWater][w] = 0; WeedData[b][PlantPotObj][w] = INVALID_OBJECT_ID; WeedData[b][PlantSQLID][w] = 0; WeedData[b][PlantFurnIndex][w] = 0; } mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM hfurniture WHERE HouseSQLID = %i LIMIT %i", HouseData[b][HouseSQLID], MAX_HFURNITURE); mysql_tquery(conn, mquery, "LoadHouseFurniture"); SendClientMessage(playerid, COLOR_WHITE, "Você {44C300}recarregou{FFFFFF} seus furniture."); Streamer_Update(playerid); return true; } CMD:reloadfurniture(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG); for(new x = 0; x < MAX_FURNITURE; x++) { FurniData[x][fuName][0] = 0; FurniData[x][fModel] = 0; FurniData[x][fPrice] = 0; FurniData[x][fSubCategory] = 0; } mysql_pquery(conn, "SELECT * FROM furniture ORDER BY Name ASC", "LoadFurniture", ""); SendClientMessage(playerid, COLOR_WHITE, "Você {44C300}recarregou{FFFFFF} todos os objetos."); return true; } CMD:updatef(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG); for(new h = 0; h < MAX_HOUSES; h++) { mysql_format(conn, mquery, sizeof(mquery), "UPDATE hfurniture SET insideid = %i WHERE HouseSQLID = %i", HouseData[h][InsideID], HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery); } SendClientMessage(playerid, COLOR_RED, "Inside ID's atualizado."); return true; } CMD:emptyfurniture(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return true; mysql_pquery(conn, "SELECT HouseSQLID FROM hfurniture GROUP BY HouseSQLID", "ProcessFurnitureEmpty"); return true; } CMD:furniturelimit(playerid, params[]) { SendClientMessageF(playerid, COLOR_GREY, "Seu limite de móveis é %i. Você pode encontrar mais sobre os limites da mobília vendo a página da doação no Web site.", GetMaxFurnitureForPlayer(playerid)); return true; } CMD:furniturecount(playerid, params[]) { if(IsInHouseID[playerid] == -1) return SysMsg(playerid,"Você deve estar em uma casa para usar este recurso."); new h = IsInHouseID[playerid]; if(!CanFurnishHouse(playerid, h)) return SysMsg(playerid, "Você deve estar em uma casa que você pode fornecer para usar este comando."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM hfurniture WHERE HouseSQLID = %i", HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery, "ShowFurnitureCount", "d", playerid); return true; } //end of house and furniture cmds //==================== Fim ==================================// //8 business commands //business commands CMD:makebizz(playerid, params[]) { if(!IsPlayerAdminLevelOK(playerid, 5)) return SysMsg(playerid, AUTHMSG);//if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG); new Float:X,Float:Y,Float:Z, NewBizzCost, NewPayout, Description[50], bType; if(sscanf(params, "iiis[50]", NewBizzCost, bType, NewPayout, Description)) return SysMsg(playerid,"Use: /makebizz [custo] [tipo] [payday] [desc]"); if(NewBizzCost < 1) return SysMsg(playerid,"O custo deve ser > 0"); if(NewPayout < 1) return SysMsg(playerid,"Pagamento inválido."); if(bType < 0 || bType > 22) return SysMsg(playerid, "Tipo inválido"); GetPlayerPos(playerid,X,Y,Z); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO bizz (Description,oPosX,oPosY,oPosZ) VALUES ('%e',%f,%f,%f)", Description,X,Y,Z); mysql_pquery(conn, mquery, "InsertNewBusiness", "iiii", playerid, NewBizzCost, NewPayout, bType); return true; } CMD:editbizz(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG); new bizzid = -1; for(new b = 0; b < MAX_BIZZ; b++) { if(IsPlayerInRangeOfPoint(playerid,4.5,BizzData[b][oPosX],BizzData[b][oPosY],BizzData[b][oPosZ])) { bizzid = b; break; } } if(bizzid == -1) return SysMsg(playerid,"Você não está perto de nenhuma empresa."); new element[10], value; if(sscanf(params, "s[10]IS", element)) return SysMsg(playerid,"Use: /editbizz [opções] [valor] Elemento: Valor, Dono, Payday, Tipo, Nome"); if(strcmp("valor", element, true) == 0) { if(sscanf(params, "s[10]i", element, value)) return SysMsg(playerid,"Use: /editbizz valor [valor]"); if(value < 1) return SysMsg(playerid,"O custo deve ser > 0"); MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "Price", value, "bizz"); BizzData[bizzid][BizzPrice] = value; SysMsgF(playerid, "Bizz Price Is Now $%i.", BizzData[bizzid][BizzPrice]); format(gstr, sizeof(gstr), "Negocio editado #%i preço para $%i", BizzData[bizzid][BizzSQLID], value); AdminLog(playerid, 0, "", gstr); return true; } else if(strcmp("payday", element, true) == 0) { if(sscanf(params, "s[10]i", element, value)) return SysMsg(playerid,"Use: /editbizz payday [valor]"); if(value < 1) return SysMsg(playerid,"Novo pagamento deve ser maior do que 0."); MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "Payout", value, "bizz"); BizzData[bizzid][Payout] = value; SysMsgF(playerid, "O pagamendo do negocio agora é $%i.", BizzData[bizzid][Payout]); format(gstr, sizeof(gstr), "Negocio editado #%i payday agora é $%i", BizzData[bizzid][BizzSQLID], value); AdminLog(playerid, 0, "", gstr); return true; } else if(strcmp("tipo", element, true) == 0) { if(sscanf(params, "s[10]i", element, value)) return SysMsg(playerid,"Use: /editbizz tipo [tipo de negocio]"); if(value < 0) return SysMsg(playerid,"O ID deve ser superior a >= 0."); new Float:pPos[3]; GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]); BizzData[bizzid][oPosX] = pPos[0]; BizzData[bizzid][oPosY] = pPos[1]; BizzData[bizzid][oPosZ] = pPos[2]; BizzData[bizzid][BizzType] = value; mysql_format(conn, mquery, sizeof(mquery), "UPDATE bizz SET oPosX=%f, oPosY=%f, oPosZ=%f, BizzType = %i WHERE id=%i", pPos[0], pPos[1], pPos[2], BizzData[bizzid][BizzType], BizzData[bizzid][BizzSQLID]); mysql_pquery(conn, mquery); DestroyDynamicPickup(BizzData[bizzid][BizzPickup]); BizzData[bizzid][BizzPickup] = CreateDynamicPickup(1272,23,BizzData[bizzid][oPosX],BizzData[bizzid][oPosY],BizzData[bizzid][oPosZ], -1, -1, -1, 10); UpdateBizzLabel(bizzid); SysMsgF(playerid, "O negocio agora é %i e XYZ foi atualizada.", BizzData[bizzid][BizzType]); return true; } else if(strcmp("dono", element, true) == 0) { new newowner[20]; if(sscanf(params, "s[10]s[20]", element, newowner)) return SysMsg(playerid,"Use: /editbizz dono [valor]"); if(strcmp("ninguem", newowner, true) == 0) { new i = 0; foreach(new p: Player) { for(i = 0; i < MAX_BIZZ_PER_PLAYER; i++) { if(PlayerBizzID[p][i] == bizzid) { PlayerBizzID[p][i] = -1; break; } } } MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "OwnerSQLID", 0, "bizz"); BizzData[bizzid][BizzOwnerSQLID] = 0; format(gstr, sizeof(gstr), "Negocio editado #%i Dono: ninguem", bizzid); AdminLog(playerid, 0, "", gstr); return true; } new accid = MySQLCheckAccount(newowner, playerid); if(accid == 0) return SysMsg(playerid, "Nenhum nome da conta encontrado."); new posID = GetPlayerID(playerid, newowner); new bizzCount = 0; if(posID >= 0) { foreach(new i: Player) { for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++) { if(PlayerBizzID[i][b] == bizzid) { PlayerBizzID[i][b] = -1; } } } for(new i = 0; i < MAX_BIZZ_PER_PLAYER; i++) { if(PlayerBizzID[posID][i] != -1) { bizzCount ++; } } if(bizzCount +1 > MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"Esse novo proprietário não pode ter mais negócios."); for(new i = 0; i < MAX_BIZZ_PER_PLAYER; i++) { if(PlayerBizzID[posID][i] == -1) { PlayerBizzID[posID][i] = bizzid; break; } } } MySQLUpdateInt(BizzData[bizzid][BizzSQLID], "OwnerSQLID", accid, "bizz"); BizzData[bizzid][BizzOwnerSQLID] = accid; UpdateBizzLabel(bizzid); SysMsgF(playerid, "O negocio agora é %s.", GetSQLName(BizzData[bizzid][BizzOwnerSQLID])); format(gstr, sizeof(gstr), "Negocio editado #%i para o dono %s", BizzData[bizzid][BizzSQLID], GetSQLName(BizzData[bizzid][BizzOwnerSQLID])); AdminLog(playerid, 0, "", gstr); return true; } else if(strcmp("nome", element, true) == 0) { new newname[60]; if(sscanf(params, "s[10]s[60]", element, newname)) return SysMsg(playerid,"Use: /editbizz nome [valor]"); MySQLUpdateString(BizzData[bizzid][BizzSQLID], "Description", newname, "bizz"); format(BizzData[bizzid][BizzDescription], 60, newname); UpdateBizzLabel(bizzid); SysMsgF(playerid, "Nome do negocio agora é %s.", BizzData[bizzid][BizzDescription]); format(gstr, sizeof(gstr), "Negocio editado #%i nome para %s",BizzData[bizzid][BizzSQLID], BizzData[bizzid][BizzDescription]); AdminLog(playerid, 0, "", gstr); return true; } else SysMsg(playerid,"*Use: /editbizz [opções] [valor] Elemento: Valor, Dono, Payday, Tipo, Nome"); return true; } CMD:badvert(playerid, params[]) { if(!Logged{playerid}) return true; if(AdvertSpamTime[playerid] > 0) return SysMsg(playerid, "or favor, aguarde entre postar anúncios."); if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativado."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você precisa de um telefone celular para enviar um anúncio."); new b = IsInBizzID[playerid]; if(b <= 0) { for(new x = 0; x < MAX_BIZZ; x++) { if(IsPlayerInRangeOfPoint(playerid, 2.0, BizzData[x][oPosX], BizzData[x][oPosY], BizzData[x][oPosZ])) { b = x; break; } } } if(b <= 0) return SysMsg(playerid, "Você deve estar em um negócio para usar este comando."); if(BizzData[b][BizzOwnerSQLID] == SQLID[playerid] || IsBizzMod(playerid, b)) { if(isnull(params)) { SysMsg(playerid,"Use: /badvert [mensagem]"); SysMsg(playerid,"Examplo: '/badvert Isso é um teste' vai mostrar como: [Anúncio de negócio] Isso é um teste [Nome do negócio]"); return true; } if(strlen(params) < 30) return SysMsg(playerid, "Seu anúncio é muito curto. Seja criativo e seja apenas IC."); new AdCost = strlen(params) * 8; if(IsDonator[playerid] < 3) { GivePlayerCash(playerid, -AdCost); AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio comercial %i caracteres longos, custando-lhe $%i ($8/letra).",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } else if(IsDonator[playerid] == 3) { AdCost = AdCost / 2; GivePlayerCash(playerid, -AdCost); AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio comercial %i caracteres longos, custando-lhe $%i. ($8/letra)",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } else if(IsDonator[playerid] == 4) { AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio comercial %i caracteres longos, custando-lhe $%i. ($8/letra)",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } FACTIONS[FACTION_NEWS][FactionBankBalance] += floatround(1 * AdCost); MySQLUpdateInt(FACTION_NEWS, "BankBalance", FACTIONS[FACTION_NEWS][FactionBankBalance], "factions"); format(gstr, sizeof(gstr),"[Anúncio comercial] %s [%s]", params, BizzData[b][BizzDescription]); foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessage(i, COLOR_GREEN, gstr); format(gstr, sizeof(gstr), "[Admin] ^^ Bizz Anúncio de %s (ID %i)", NameEx(playerid), playerid); AdminBroadcast(gstr, 0); AddToLog("advert", gstr); return true; } else SysMsg(playerid, "Você deve possuir ou ser um gerente desse negócio para usar esse comando."); return true; } CMD:enterfee(playerid, params[]) { if(!Logged{playerid}) return true; for(new h = 0; h < MAX_BIZZ; h++) { if(IsPlayerInRangeOfPoint(playerid, 2.5, BizzData[h][oPosX], BizzData[h][oPosY], BizzData[h][oPosZ])) { if(BizzData[h][BizzOwnerSQLID] == SQLID[playerid]) { if(BizzData[h][BizzType] == BIZZ_TYPE_STATIC && BizzData[h][IsSpecial] == 0) return SysMsg(playerid,"Você não pode ter uma taxa de entrada para este bizz."); if(isnull(params)) return SysMsg(playerid,"Use: /enterfee [Quantidade]"); if(!IsNumeric(params)) return SysMsg(playerid,"Quantidade inválida."); if(strval(params) < 0) return SysMsg(playerid,"Quantidade inválida, Deve ser um mínimo de $0."); if(strval(params) > 25) return SysMsg(playerid,"Quantidade inválida, Só pode ser um máximo de $25."); BizzData[h][EnterFee] = strval(params); MySQLUpdateInt(BizzData[h][BizzSQLID], "EnterFee", BizzData[h][EnterFee], "bizz"); SendClientMessageF(playerid, COLOR_LIGHTRED, "A nova taxa de entrada para %s é agora $%i.",BizzData[h][BizzDescription], BizzData[h][EnterFee]); UpdateBizzLabel(h); break; } } } return true; } CMD:bizzmusic(playerid, params[]) { if(IsInBizzID[playerid] == -1) return SysMsg(playerid, "Você deve estar em um negócio."); if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] != SQLID[playerid] && !IsBizzMod(playerid, IsInBizzID[playerid])) return SysMsg(playerid,"Você deve possuir o negócio."); new musicLink[200], bizz = IsInBizzID[playerid]; if(sscanf(params, "s[200]", musicLink)) return SysMsg(playerid, "Use: /bizzmusic [link/parar]"); if(strcmp(musicLink, "parar") == 0) { foreach(new i: Player) { if(Logged{i} && IsInBizzID[i] == IsInBizzID[playerid]) { StopAudioStreamForPlayer(i); } } BizzData[bizz][BMusicPlaying] = 0; } else { foreach(new i: Player) { if(Logged{i} && IsInBizzID[i] == IsInBizzID[playerid]) { StopAudioStreamForPlayer(i); PlayAudioStreamForPlayerEx(i, musicLink); } format(BizzData[bizz][BMusic], 200, musicLink); BizzData[bizz][BMusicPlaying] = 1; } } return true; } CMD:mybizz(playerid, params[]) { if(!Logged{playerid}) return true; new Bcount = 0, substr[128], bid; gstr[0] = EOS; for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++) { if(PlayerBizzID[playerid][v] != -1) { if(Bcount != 0) strcat(gstr, "\n"); bid = PlayerBizzID[playerid][v]; if(BizzData[bid][BizzType] > 0 || BizzData[bid][IsSpecial] == 1) { new locked[9]; if(BizzData[bid][BizzLocked]) format(locked, sizeof(locked), "Fechado"); else format(locked, sizeof(locked), "Aberto"); if(IsBizzStockable(bid) > 0) format(substr, sizeof(substr), "%s - $%s Pagamento - Porta %s - $%s Ganhos para coletar - %i%% Estoque", BizzData[bid][BizzDescription], format_cash(BizzData[bid][Payout]), locked, format_cash(BizzData[bid][BizzEarnings]), BizzData[bid][BizzStock]); else format(substr, sizeof(substr), "%s - $%s Pagamento - Door %s - $%s Ganhos para coletar", BizzData[bid][BizzDescription], format_cash(BizzData[bid][Payout]), locked, format_cash(BizzData[bid][BizzEarnings])); strcat(gstr, substr); } else { format(substr, sizeof(substr), "%s - $%s Pagamento (Negócio padrão)", BizzData[bid][BizzDescription], format_cash(BizzData[bid][Payout])); strcat(gstr, substr); } Bcount ++; } } if(Bcount > 0) { strcat(gstr, "\n"); new Sbizzid = -1; Sbizzid = GetBizzID("Red County Sweeping Co."); if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid]) { format(substr, sizeof(substr), "Red County Sweeping Co - $200 por trabalho - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings])); strcat(gstr, substr); } Sbizzid = GetBizzID("Red County Trucking LTD"); if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid]) { format(substr, sizeof(substr), "Red County Trucking LTD - $200 por trabalho - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings])); strcat(gstr, substr); } Sbizzid = GetBizzID("Montgomery Pizza Stack"); if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid]) { format(substr, sizeof(substr), "Montgomery Pizza Stack - $200 por trabalho - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings])); strcat(gstr, substr); } Sbizzid = GetBizzID("Red County Transport LTD"); if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid]) { format(substr, sizeof(substr), "Red County Transport LTD - $10 por ponto de ônibus - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings])); strcat(gstr, substr); } Sbizzid = GetBizzID("Bone County Gestão de resíduos"); if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid]) { format(substr, sizeof(substr), "Bone County Gestão de resíduos - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings])); strcat(gstr, substr); } Sbizzid = GetBizzID("Bone County Coal Mine"); if(Sbizzid != -1 && BizzData[Sbizzid][BizzOwnerSQLID] == SQLID[playerid]) { format(substr, sizeof(substr), "Bone County Coal Mine - $%s.", format_cash(BizzData[Sbizzid][BizzEarnings])); strcat(gstr, substr); } ShowMessage(playerid, "Meus negócios", gstr, "OK"); } else SysMsg(playerid,"Você não tem negócios."); return true; } CMD:collectearning(playerid, params[]) { if(!Logged{playerid}) return true; new text[128], Bcount = 0, bizz, TotalEarn = 0, becount = 0; for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++) { if(PlayerBizzID[playerid][b] != -1) { bizz = PlayerBizzID[playerid][b]; if(GetPlayerVirtualWorld(playerid) == BizzData[bizz][BizzVW] || IsPlayerInRangeOfPoint(playerid, 3.0, BizzData[bizz][oPosX], BizzData[bizz][oPosY], BizzData[bizz][oPosZ])) { becount++; if(BizzData[bizz][BizzEarnings] > 0) { Bcount ++; TotalEarn += BizzData[bizz][BizzEarnings]; format(text, 128, "%s - Você recebeu $%s deste negócio.", BizzData[bizz][BizzDescription], format_cash(BizzData[bizz][BizzEarnings])); SendClientMessage(playerid, COLOR_ORANGE, text); GivePlayerCash(playerid, BizzData[bizz][BizzEarnings]); BizzData[bizz][BizzEarnings] = 0; MySQLUpdateInt(BizzData[bizz][BizzSQLID], "BizzEarnings", 0, "bizz"); } } } } if(TotalEarn >= 5000) UnlockAchievement(playerid,24); if(becount == 0) return SysMsg(playerid,"Você precisa estar dentro ou no exterior de um negócio para usar este comando."); else if(Bcount == 0) return SysMsg(playerid,"Nenhum de seus negócios tem ganhos para retirar."); return true; } CMD:collectearnings(playerid, params[]) return cmd_collectearning(playerid, params); CMD:requeststock(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInBizzID[playerid] == -1) return SysMsg(playerid,"Você deve estar dentro de sua empresa para solicitar mais estoque."); new bizz = IsInBizzID[playerid]; if(IsBizzMod(playerid, bizz) || BizzData[bizz][BizzOwnerSQLID] == SQLID[playerid]) { if(BizzData[bizz][BizzLocked]) return SysMsg(playerid,"Esse negócio já está fechado."); if(IsBizzStockable(bizz) == 0) return SysMsg(playerid,"Este negócio não requer estoque."); if(BizzData[bizz][BizzStock] > 50) return SysMsg(playerid,"Você só pode solicitar mais ações se o nível de estoque for inferior a cinquenta por cento."); if(BizzData[bizz][BizzETDelivering] == 1) return SysMsg(playerid,"Uma entrega já está em andamento."); new fee = IsBizzStockable(bizz); if(fee > BankBalance[playerid]) return SysMsgF(playerid, "Sua conta bancária precisa de pelo menos $%s para solicitar um reabastecimento.", format_cash(fee)); BankBalance[playerid] -= fee; BizzData[bizz][BizzRequestStock] = 1; BizzData[bizz][BizzETDelivering] = 0; MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players"); MySQLUpdateInt(BizzData[bizz][BizzSQLID], "RequestStock", BizzData[bizz][BizzRequestStock], "bizz"); SendClientMessageF(playerid, COLOR_WHITE, "Você solicitou com sucesso um reabastecimento para %s a um custo de $%s do seu banco.", BizzData[bizz][BizzDescription], format_cash(fee)); return true; } return true; } CMD:manageactors(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInBizzID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma empresa para usar esse comando."); new b = IsInBizzID[playerid]; if(BizzData[b][BizzOwnerSQLID] != SQLID[playerid] && !IsBizzMod(playerid, b)) return SysMsg(playerid, "Você não possui esse negócio."); if(IsDonator[playerid] == 0 || IsDonator[playerid] == 1) format(tgstr, sizeof(tgstr), "Actor 1"); if(IsDonator[playerid] == 2) format(tgstr, sizeof(tgstr), "Actor 1\nActor 2"); if(IsDonator[playerid] == 3) format(tgstr, sizeof(tgstr), "Actor 1\nActor 2\nActor 3"); if(IsDonator[playerid] == 4) format(tgstr, sizeof(tgstr), "Actor 1\nActor 2\nActor 3\nActor 4"); Dialog_Show(playerid, ActorMenu, DIALOG_STYLE_LIST, "Actors", tgstr, "Okay", "Cancelar"); return true; } CMD:addmanager(playerid, params[]) { new bcount = 0, bizzid, playa = -1; for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++) { if(PlayerBizzID[playerid][v] != -1) { if(sscanf(params, "iu", bizzid, playa)) SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]); bcount ++; } } if(bcount == 0) return SysMsg(playerid, "Você não possui negócios."); if(sscanf(params, "iu", bizzid, playa)) return SysMsg(playerid, "Use: /addmanager [o negócio ID (Veja acima)] [ID ou nome do jogador]"); if(bizzid > 1) return SysMsg(playerid, "O ID da empresa não pode ser superior a 1."); if(bizzid < 0) return SysMsg(playerid, "ID comercial não pode ser inferior a 0."); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode se tornar um moderador de negócios."); if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não está logado/registrado."); if(IsBizzMod(playa, PlayerBizzID[playerid][bizzid])) return SysMsg(playerid, "Este jogador já é um gerente para sua empresa. Se você quiser removê-los, então use /removemanager."); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO bizzmods (BizzID, ModSQLID) VALUES (%i, %i)", BizzData[PlayerBizzID[playerid][bizzid]][BizzSQLID], SQLID[playa]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_BLUE, "%s foi adicionado como gerente para o seu negócio: %s", NameEx(playa), BizzData[PlayerBizzID[playerid][bizzid]][BizzDescription]); SendClientMessageF(playa, COLOR_BLUE, "%s tornou-se um gerente de seus negócios: %s", NameEx(playerid), BizzData[PlayerBizzID[playerid][bizzid]][BizzDescription]); return true; } CMD:removemanager(playerid, params[]) { new bcount = 0, bizzid, fullname[MAX_PLAYER_NAME]; for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++) { if(PlayerBizzID[playerid][v] != -1) { if(sscanf(params, "is[24]", bizzid, fullname)) SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]); bcount ++; } } if(bcount == 0) return SysMsg(playerid, "Você não possui negócios."); if(sscanf(params, "is[24]", bizzid, fullname)) return SysMsg(playerid,"Use: /removemanager [negocio ID (Veja acima)] [Nome_Sobrenome] *Por favor, note que isso varre o banco de dados, não jogadores no jogo*"); if(bizzid > 1) return SysMsg(playerid, "ID do negócio não pode ser maior do que 1."); new sqlid = MySQLCheckAccount(fullname, playerid); if(sqlid == 0) return SysMsg(playerid, "O nome não foi encontrado. Por favor inclua o primeiro nome, sobrenome e um sublinhado."); new b = PlayerBizzID[playerid][bizzid]; mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM bizzmods WHERE BizzID = %i AND ModSQLID = %i", BizzData[b][BizzSQLID], sqlid); mysql_pquery(conn, mquery, "ProcessManagerRemoval", "ddds", playerid, sqlid, b, fullname); return true; } CMD:viewmanagers(playerid, params[]) { new bcount = 0, bizzid; for(new v = 0; v < MAX_BIZZ_PER_PLAYER; v++) { if(PlayerBizzID[playerid][v] != -1) { if(sscanf(params, "i", bizzid)) SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", v, BizzData[PlayerBizzID[playerid][v]][BizzDescription]); bcount ++; } } if(bcount == 0) return SysMsg(playerid, "Você não possui negócios."); if(sscanf(params, "i", bizzid)) return SysMsg(playerid,"Use: /viewmanagers [ID do negocio (veja acima)]"); if(bizzid > 1) return SysMsg(playerid, "ID do negócio não pode ser maior do que 1."); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM bizzmods WHERE BizzID = %i", BizzData[PlayerBizzID[playerid][bizzid]][BizzSQLID]); mysql_pquery(conn, mquery, "ShowManagerList", "d", playerid); return true; } CMD:reloadbizz(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return SysMsg(playerid, AUTHMSG); for(new b = 0; b < MAX_BIZZ; b++) { DestroyDynamicPickup(BizzData[b][BizzPickup]); DeleteBizzLabel(b); BizzData[b][BizzDescription][0] = 0; BizzData[b][BizzSQLID] = 0; BizzData[b][oPosX] = 0; BizzData[b][oPosY] = 0; BizzData[b][oPosZ] = 0; BizzData[b][iPosX] = 0; BizzData[b][iPosY] = 0; BizzData[b][iPosZ] = 0; BizzData[b][Payout] = 0; BizzData[b][BizzPrice] = 0; BizzData[b][BizzType] = 0; BizzData[b][EnterFee] = 0; BizzData[b][BizzEarnings] = 0; BizzData[b][BizzLocked] = false; BizzData[b][BizzStock] = 0; BizzData[b][BizzRequestStock] = 0; BizzData[b][IsSpecial] = 0; BizzData[b][BizzOwnerSQLID] = 0; BizzData[b][InteriorID] = 0; BizzData[b][BizzVW] = 0; BizzData[b][ExitVW] = 0; BizzData[b][BizzPickup] = 0; BizzData[b][BizzLabel] = Text3D:INVALID_3DTEXT_ID; BizzData[b][BizzLights] = false; for(new x = 0; x < 4; x++) { if(BizzData[b][BizzActorSpawned][x] == 1) DestroyActor(BizzData[b][BizzActor][x]); BizzData[b][BizzActor][x] = -1; BizzData[b][BizzActorSpawned][x] = 0; BizzData[b][BizzActorSkin][x] = 0; BizzData[b][BizzActorX][x] = 0; BizzData[b][BizzActorY][x] = 0; BizzData[b][BizzActorZ][x] = 0; BizzData[b][BizzActorAngle][x] = 0; BizzData[b][BizzActorAnim][x] = -1; } } mysql_tquery(conn, "SELECT * FROM bizz", "LoadBizzes"); SetTimer("ProcessBKeys", 1000, 0); SendClientMessage(playerid, COLOR_WHITE, "Todas as empresas foram {44C300}recarregadas."); AdminLog(playerid, 0, "", "Reloaded todas as empresas do banco de dados"); return true; } CMD:buybizz(playerid, params[]) { if(!Logged{playerid}) return true; new bizzCount = 0; for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++) { if(PlayerBizzID[playerid][biz] != -1) { bizzCount ++; } } if(bizzCount +1 > MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"Você não pode ter mais negócios."); for(new h = 0; h < MAX_BIZZ; h++) { if(IsPlayerInRangeOfPoint(playerid,2.5,BizzData[h][oPosX],BizzData[h][oPosY],BizzData[h][oPosZ])) { if(BizzData[h][BizzOwnerSQLID] == 0) { if(Cash[playerid] < BizzData[h][BizzPrice]) return SysMsg(playerid,"Você não tem dinheiro suficiente para comprar este negócio."); BizzData[h][BizzOwnerSQLID] = SQLID[playerid]; MySQLUpdateInt(BizzData[h][BizzSQLID], "OwnerSQLID", SQLID[playerid], "bizz"); GivePlayerCash(playerid, -BizzData[h][BizzPrice]); for(new i = 0; i < MAX_BIZZ_PER_PLAYER; i++) { if(PlayerBizzID[playerid][i] == -1) { PlayerBizzID[playerid][i] = h; break; } } UpdateBizzLabel(h); SendClientMessageF(playerid,COLOR_GOLD,"Você comprou %s por $%s.",BizzData[h][BizzDescription],format_cash(BizzData[h][BizzPrice])); SendClientMessageF(playerid,COLOR_GOLD,"Agora vai receber um extra de $%s Todos os payday.",format_cash(BizzData[h][Payout])); ShowInfoText(playerid,"~g~business ACQUIRED",5000); UnlockAchievement(playerid, 59); break; } else if(BizzData[h][BizzOwnerSQLID] == -5) return SysMsg(playerid,"Este negócio está atualmente nas mãos da Silver Trading, confira lá para ver se está à venda."); else return SysMsg(playerid,"Este negócio não está à venda."); } } return true; } CMD:sellbizz(playerid, params[]) { if(!Logged{playerid}) return true; new bizzCount = 0; for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++) { if(PlayerBizzID[playerid][biz] != -1) { bizzCount ++; } } if(bizzCount == 0) return SysMsg(playerid,"Você não tem empresas para vender."); new bool:soldBizz = false; for(new h = 0; h < MAX_BIZZ; h++) { if(IsPlayerInRangeOfPoint(playerid, 3.5, BizzData[h][oPosX], BizzData[h][oPosY], BizzData[h][oPosZ])) { for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++) { if(PlayerBizzID[playerid][b] == h) { new bizzValue = BizzData[h][BizzPrice] / 2; if(sscanf(params, "s[8]", params)) return SendClientMessageF(playerid, COLOR_WHITE, "Use [/venderbizz confirmar] para confirmar que você deseja vender %s por $%s.", BizzData[h][BizzDescription], format_cash(bizzValue)); if(strmatch(params, "confirmar")) { GivePlayerCash(playerid, bizzValue); for(new id = 0; id < MAX_BIZZ_PER_PLAYER; id++) { if(PlayerBizzID[playerid][id] == h) { PlayerBizzID[playerid][id] = -1; break; } } BizzData[h][BizzOwnerSQLID] = 0; MySQLUpdateInt(BizzData[h][BizzSQLID], "OwnerSQLID", 0, "bizz"); mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM bizzmods WHERE BizzID = %i", BizzData[h][BizzSQLID]); mysql_pquery(conn, mquery); if(MySpawnID[playerid] == 7 && BizzData[h][BizzSQLID] == BizzSpawn[playerid]) { MySpawnID[playerid] = 1; BizzSpawn[playerid] = 0; mysql_pqueryf(conn, mquery, "UPDATE players SET MySpawnID = %i, BizzSpawn = %i WHERE id = %i", MySpawnID[playerid], BizzSpawn[playerid], SQLID[playerid]); } UpdateBizzLabel(h); SendClientMessageF(playerid, COLOR_GOLD, "Você vendeu seu negócio (%s) por $%s.",BizzData[h][BizzDescription],format_cash(bizzValue)); ShowInfoText(playerid,"~g~negócio vendido",5000); soldBizz = true; break; } } } } } if(soldBizz == false) SysMsg(playerid, "You are not at your business."); return true; } //end of business commands //==================== Fim ==================================// //9 Clothing/holster commands //Clothing/holster commands CMD:clothing(playerid) { gstr[0] = EOS; new count = 0; for(new t; t < MAX_TOYS; t++) { if(ToyInfo[playerid][t][tMask] == 1) { if(!ToyInfo[playerid][t][MaskWorn]) format(sgstr, sizeof(sgstr), "%s\n", GetMaskDescription(ToyInfo[playerid][t][tModelID])); else format(sgstr, sizeof(sgstr), "{2735FF}%s{FFFFFF}\n", GetMaskDescription(ToyInfo[playerid][t][tModelID])); strcat(gstr, sgstr); ClothingSelected[playerid][count] = ToyInfo[playerid][t][tID]; count ++; } } if(count == 0) Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Roupas - Error", "Você atualmente não possui nenhum objeto de roupa para usar.", "Fechar", ""); else Dialog_Show(playerid, ClothingMenu, DIALOG_STYLE_LIST, "Itens", gstr, "Selecionar", "Cancelar"); return true; } CMD:holster(playerid, params[]) { if(!Logged{playerid}) return true; if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você tem atualmente muitas armas coldreed para coldre outro."); if(GetPlayerWeapon(playerid) == 0) return SysMsg(playerid, "Você precisa estar segurando uma arma para coldre-lo."); new test = 0; new wep = GetPlayerWeapon(playerid); for(new p; p < sizeof(unholsterWeap); p++) { if(wep == unholsterWeap[p]) { return SysMsg(playerid, "Não pode guardar esta arma."); } } if(WeaponData[playerid][GetWeaponSlot(wep)][Weapon] != wep) return SysMsg(playerid, "Esta arma não pode ser estofada devido a ser uma arma não permanente."); new t = -1; for(t = 0; t < MAX_TOYS; t++) { if(ToyInfo[playerid][t][tModelID] == dropObjectID[wep]) { SetPVarInt(playerid, "isHolster", t); for(new l; l < sizeof(HolsterTog); l++) { if(wep == HolsterTog[l]) { if(IsHolsterTogged[playerid][GetWeaponSlot(wep)] == 1) format(gstr, sizeof(gstr), "{00FF00}Mostrar coldres %s{FFFFFF}\nColuna\nCabeça\nBraço esquerdo\nBraço direito\nMão esquerda\nMão direita\nCoxa esquerda\nCoxa direita\nPé esquerdo\nPé direito\nPanturilha direita\nPanturilha direita\nAntebraço esquerdo\nAntebraço direito\nOmbro esquerdo\nOmbro direito", WeaponNames[wep]); else format(gstr, sizeof(gstr), "{FF0000}Ocultar coldre %s{FFFFFF}\nColuna\nCabeça\nBraço esquerdo\nBraço direito\nMão esquerda\nMão direita\nCoxa esquerda\nCoxa direita\nPé esquerdo\nPé direito\nPanturilha direita\nPanturilha direita\nAntebraço esquerdo\nAntebraço direito\nOmbro esquerdo\nOmbro direito", WeaponNames[wep]); test = 1; SetPVarInt(playerid, "isHolstered", 1); } } break; } } if(GetPVarType(playerid, "isHolster") == 0) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM toys WHERE tPlayer = %i AND tModelID = %i", SQLID[playerid], dropObjectID[wep]); mysql_pquery(conn, mquery, "NewHolsterCheck", "dd", playerid, wep); } if(test == 0) format(gstr, sizeof(gstr), "{FFFFFF}Coluna\nCabeça\nBraço esquerdo\nBraço direito\nMão esquerda\nMão direita\nCoxa esquerda\nCoxa direita\nPé esquerdo\nPé direito\nPanturilha direita\nPanturilha direita\nAntebraço esquerdo\nAntebraço direito\nOmbro esquerdo\nOmbro direito"); Dialog_Show(playerid, HolsterBone, DIALOG_STYLE_LIST, "{FFFFFF}Coldre | Selecione a parte.", gstr, "Selecionar", ""); format(gstr, sizeof(gstr), "Você optou por guardar o seu %s, por favor, selecione o osso que você deseja anexá-lo.", WeaponNames[wep]); SendClientMessage(playerid, COLOR_YELLOW, gstr); return true; } CMD:resetmask(playerid, params[]) { if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /resetmask [playerid ou parte do nome]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); gstr[0] = EOS; new count = 0; for(new t = 0; t < MAX_TOYS; t++) { if(ToyInfo[playa][t][tMask] == 1) { if(!ToyInfo[playa][t][MaskWorn]) format(gstr, sizeof(gstr), "%s%s (ID %i)\n", gstr, GetMaskDescription(ToyInfo[playa][t][tModelID]), ToyInfo[playa][t][tID]); else format(gstr, sizeof(gstr), "%s{2735FF}%s{FFFFFF} (ID %i)\n", gstr, GetMaskDescription(ToyInfo[playa][t][tModelID]), ToyInfo[playa][t][tID]); ClothingSelected[playerid][count] = ToyInfo[playa][t][tID]; count ++; } } if(count == 0) return SendClientMessage(playerid, COLOR_WHITE, "Error:Que o jogador não tem objetos de vestuário."); Dialog_Show(playerid, ClothingAdminReset, DIALOG_STYLE_LIST, "Redefinir escala de máscara", gstr, "Selecionar", "Cancelar"); ResettingMask[playerid] = playa; return true; } CMD:resetallholsters(playerid, params[]) { if(!Logged{playerid}) return true; new conf[12]; if(sscanf(params, "s[12]", conf)) return SendSplitMessage(playerid, COLOR_WHITE, "Para redefinir todos os dados do holster, escreva '/resetallholsters confirmar'. Isso limpará as posições para cada arma anexada que você possui e você precisará relogar depois que estiver pronto."); if(strmatch(conf, "confirm")) { mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM toys WHERE tPlayer = %i AND tMask = 0", SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessage(playerid, COLOR_WHITE, "Você "COL_NICEGREEN"resetou{FFFFFF} todos os seus dados do coldre. Por favor, use /logout e re-selecionar seu personagem."); return true; } return true; } CMD:editvest(playerid, params[]) { if(!Logged{playerid}) return true; if(AttachedObjects[playerid][7][aoModelID] == -1000 || AttachedObjects[playerid][7][aoModelID] == -1001) { for(new t = 0; t < MAX_TOYS; t++) { if(ToyInfo[playerid][t][tModelID] == AttachedObjects[playerid][7][aoModelID]) { ToyBeingEdited[playerid] = t; } } if(ToyBeingEdited[playerid] == -1) return SysMsg(playerid, "Ocorreu um erro and you cannot edit your vest."); EditingAttachedObject[playerid] = 1; EditAttachedObject(playerid, 7); SendClientMessage(playerid, COLOR_WHITE, " "); SendClientMessage(playerid, COLOR_WHITE, "Selecione uma opção de [Mover] [Girar] ou [Escala] então arraste o [X] [Y] e [Z] botões para editar."); SendClientMessage(playerid, COLOR_WHITE, "Pressione o botão Save para terminar ou pressione a tecla de escape para cancelar."); return true; } SysMsg(playerid, "Você não tem um colete."); return true; } CMD:resetvest(playerid) { if(!Logged{playerid}) return true; if(VestType[playerid] == 0) return SysMsg(playerid, "Você deve estar usando um colete para usar este comando."); new Float:armor; GetPlayerArmour(playerid, armor); if(floatround(armor) == 0) return SysMsg(playerid, "Você deve estar usando um colete para usar este comando."); mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM toys WHERE tPlayer = %i AND tModelID = -1000 OR tPlayer = %i AND tModelID = -1001", SQLID[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); for(new id = 0; id < MAX_TOYS; id++) { if(ToyInfo[playerid][id][tModelID] == -1000 || ToyInfo[playerid][id][tModelID] == -1001) { ClearToyData(playerid, id); } } if(AttachedObjects[playerid][7][aoToyID] != 0) { RemovePlayerAttachedObject(playerid, 7); AttachedObjects[playerid][7][aoScale][0] = 1.0; AttachedObjects[playerid][7][aoScale][1] = 1.0; AttachedObjects[playerid][7][aoScale][2] = 1.0; AttachedObjects[playerid][7][aoOffset][0] = 0.0; AttachedObjects[playerid][7][aoOffset][1] = 0.0; AttachedObjects[playerid][7][aoOffset][2] = 0.0; AttachedObjects[playerid][7][aoRot][0] = 0.0; AttachedObjects[playerid][7][aoRot][1] = 0.0; AttachedObjects[playerid][7][aoRot][2] = 0.0; } GivePlayerVest(playerid); return true; } CMD:vestoff(playerid, params[]) { new Float:armor; GetPlayerArmour(playerid, armor); if(armor == 0 && (AttachedObjects[playerid][7][aoModelID] == -1000 || AttachedObjects[playerid][7][aoModelID] == -1001)) { RemovePlayerAttachedObject(playerid, 7); AttachedObjects[playerid][7][aoModelID] = 0; AttachedObjects[playerid][7][aoBone] = 0; SendClientMessage(playerid, COLOR_WHITE, "> Vest Removed"); } else return SysMsg(playerid, "Você não pode remover o objeto colete se você tiver alguma quantidade de armadura. Se você deseja tirar o colete, guarde-o em uma casa ou no porta-malas do veículo."); return true; } CMD:removevest(playerid, params[]) return cmd_vestoff(playerid, params); CMD:mask(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Mask] == 0) return SysMsg(playerid,"Você não tem uma máscara."); if(PlayerImprisoned{playerid}) return SysMsg(playerid,"Você não pode se mascarar na prisão."); if(IsPlayerMasked{playerid}) return SysMsg(playerid,"Você já está em máscaras. (/unmask)"); if((Faction[playerid] != FACTION_COP && Faction[playerid] != FACTION_RESEARCH) && PlayerLevel[playerid] < 8) return SysMsg(playerid, "Você precisa ter pelo menos o nível 8 para usar esse comando."); foreach(new i: Player) if(i != playerid) if(ADuty[i] == 0) ShowPlayerNameTagForPlayer(i, playerid, 0); MaskLabelNumber[playerid] = MaskStrangerNumber; MaskStrangerNumber ++; IsPlayerMasked{playerid} = true; MaskHideName{playerid} = true; FormatHealthLabelText(playerid, HealthVar[playerid], ArmourVar[playerid], 1); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO strangers (StrangerID, PlayerName, Timestamp, SQLID, IP) VALUES (%i, '%e', %i, %i, '%e')", MaskLabelNumber[playerid], GetName(playerid), gettime(), SQLID[playerid], PlayerIP[playerid]); mysql_pquery(conn, mquery); UnlockAchievement(playerid, 46); format(gstr, sizeof(gstr), "* %s coloca uma máscara. *", NameRP(playerid)); ProxDetector(15.0, playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_LIGHTRED, "Você está agora mascarado, use /unmask para removê-lo."); return true; } CMD:unmask(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Mask] == 0) return SysMsg(playerid,"Você não tem uma máscara."); if(!IsPlayerMasked{playerid}) return SysMsg(playerid,"Você não está usando uma Máscara. (/mask)"); if(MaskHideName{playerid}) { MaskHideName{playerid} = false; MaskLabelNumber[playerid] = 0; foreach(new i: Player) { if(i != playerid) { ShowPlayerNameTagForPlayer(i, playerid, 1); } } } DeleteMaskLabel(playerid); format(gstr, sizeof(gstr),"* %s tira a máscara. *", NameRP(playerid)); ProxDetector(5.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_LIGHTRED, "Você removeu sua máscara."); IsPlayerMasked{playerid} = false; return true; } //end of clothing/holster commands //==================== Fim ==================================// //10 Animation Commands //Animation Commands CMD:animlist(playerid, params[]) { SendClientMessage(playerid,COLOR_YELLOW,"___________________________________________________________________________________________________________________"); SendClientMessage(playerid, COLOR_RED, "Available Animation comandos:"); SendClientMessage(playerid, COLOR_WHITE, "/caircosta /cairfrente /caircosta2 /ferido2 /metepe /empurrar /empurrarabaixado /renderse /bomba /bebado /rir /salda /cruzarbracos /deitar(2) /dormir /armagolpe"); SendClientMessage(playerid, COLOR_WHITE, "/basket /cabecada /medico /sprayanim /apontar /kungfu /box /colocandomascara /guardarcelular /pegarcelular /bat /acendercigarro /tapcig"); SendClientMessage(playerid, COLOR_WHITE, "/cobrar /crack /fumaranim /(sentarc)sentarcao /chat /dancar /xingar /strip /cover /vomitar /comendo /sentar(2) /recarregar /jogarperto "); SendClientMessage(playerid, COLOR_WHITE, "/cobrirosto /maoestomago /rolartras /carjacked /carjack /cansado /tapavirando /sejogafrente /carrofechado /jogarlonge"); SendClientMessage(playerid, COLOR_WHITE, "/agitar /dedodomeio /gritando /faca /cop /cotovelada /joelhocabeca /chutepulando /bicuda /pegapeso /colocarnochao /sinaltransito "); SendClientMessage(playerid, COLOR_WHITE, "/gopearnochao /aim /mijar /escorar /car /gcantar /bracobalcao /darbebida /lavarmaos /oculos /deitarcama"); SendClientMessage(playerid, COLOR_WHITE, "/passarcartao /abaixarmaodireita /taxid /taxie /cocarsaco /copmove /bravo /agitar2 /saque /cadeira"); SendClientMessage(playerid, COLOR_WHITE, "/fbeber /viratchau /rap /awwyeah /drogado /caixaeletronico /observado /gritar /olhavolta /afastar /espingarda"); SendClientMessage(playerid, COLOR_WHITE, "/taxi /trotar /sorrateiro /dj /halt /bracojanela /flex"); SendClientMessage(playerid,COLOR_YELLOW,"\n"); return true; } CMD:deitarcama(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "INT_HOUSE","BED_In_R",4.0,0,0,0,1,1); //CMD: /inbedleft return true; } CMD:inbedright(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "INT_HOUSE","BED_In_L",4.0,0,0,0,1,1); //CMD: /inbedright return true; } CMD:carjacked(playerid, params[]) { if(isnull(params)) return SysMsg(playerid,"Use: /carjacked [1-2]"); if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); switch(strval(params)) { case 1: LoopingAnim(playerid,"PED","CAR_jackedLHS",4.0,0,1,1,1,0); case 2: LoopingAnim(playerid,"PED","CAR_jackedRHS",4.0,0,1,1,1,0); default: SysMsg(playerid,"Use: /carjacked [1-2 only]"); } return true; } CMD:renderse(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "ROB_BANK","SHP_HandsUp_Scr", 4.0, 0, 1, 1, 1, 0); return true; } CMD:pegarcelular(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USECELLPHONE); if(AttachedObjects[playerid][6][aoModelID] != 0) { RemovePlayerAttachedObject(playerid, 6); } AttachedObjects[playerid][6][aoModelID] = 330; AttachedObjects[playerid][6][aoBone] = 6; SetPlayerAttachedObject(playerid, 6, 330, 6); return true; } CMD:guardarcelular(playerid, params[]) { if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); SetPlayerSpecialAction(playerid,SPECIAL_ACTION_STOPUSECELLPHONE); RemovePlayerAttachedObject(playerid, 6); AttachedObjects[playerid][6][aoModelID] = 0; AttachedObjects[playerid][6][aoBone] = 0; return true; } CMD:bebado(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","WALK_DRUNK",4.1,1,1,1,1,1); return true; } CMD:bomba(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); ClearAnimations(playerid); LoopingAnim(playerid, "BOMBER","BOM_Plant_Loop",4.0,1,0,0,1,0); // Place Bomb return true; } CMD:rir(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "RAPPING", "Laugh_01", 4.0, 0, 0, 0, 0, 0); // Laugh return true; } CMD:chorar(playerid) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"GRAVEYARD","mrnM_loop", 4.0, 1, 0, 0, 0, 0); return true; } CMD:colocandomascara(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "SHOP", "ROB_Shifty", 4.0, 0, 0, 0, 0, 0); // Rob Lookout return true; } CMD:apontar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "SHOP", "ROB_Loop_Threat", 4.0, 1, 0, 0, 0, 0); // Rob return true; } CMD:cruzarbracos(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "COP_AMBIENT", "Coplook_loop", 4.0, 0, 1, 1, 1, -1); // Arms crossed return true; } CMD:deitar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"BEACH", "bather", 4.0, 1, 0, 0, 0, 0); // Lay down return true; } CMD:cover(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "ped", "cower", 3.0, 1, 0, 0, 0, 0); // Taking Cover return true; } CMD:vomitar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "FOOD", "EAT_Vomit_P", 3.0, 0, 0, 0, 0, 0); // Vomit return true; } CMD:comendo(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); // Eat Burger return true; } CMD:acenar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "ON_LOOKERS", "wave_loop", 4.0, 1, 0, 0, 0, 0); // Wave return true; } CMD:acenar2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "KISSING", "gfwave2", 4.0, 1, 0, 0, 0, 0); return true; } CMD:slapass(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "SWEET", "sweet_ass_slap", 4.0, 0, 0, 0, 0, 0); return true; } CMD:cobrar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "DEALER", "DEALER_DEAL", 4.0, 0, 0, 0, 0, 0); return true; } CMD:crack(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "CRACK", "crckdeth2", 4.0, 1, 0, 0, 0, 0); return true; } CMD:ferido(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "CRACK", "crckidle1", 4.0, 1, 0, 0, 0, 0); return true; } CMD:dormir(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "CRACK", "crckidle2", 4.0, 1, 0, 0, 0, 0); return true; } CMD:fumaranim(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /fumaranim [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"SMOKING", "M_smklean_loop", 4.0, 1, 0, 0, 0, 0); case 2: LoopingAnim(playerid,"SMOKING", "F_smklean_loop", 4.0, 1, 0, 0, 0, 0); case 3: LoopingAnim(playerid,"SMOKING","M_smkstnd_loop", 4.0, 1, 0, 0, 0, 0); case 4: LoopingAnim(playerid,"SMOKING","M_smk_out", 4.0, 1, 0, 0, 0, 0); default: SysMsg(playerid,"Use: /fumaranim [1-4]"); } return true; } CMD:sentarchao(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"BEACH", "ParkSit_M_loop", 4.0, 1, 0, 0, 0, 0); return true; } CMD:sentarc(playerid, params[]) return cmd_sentarchao(playerid, params); CMD:chat(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","IDLE_CHAT",4.0,1,0,0,1,1); return true; } CMD:xingar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"PED","fucku",4.0,0,0,0,0,0); return true; } CMD:fucku2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "RIOT", "riot_fuku", 4.0, 0, 0, 0, 0, 0); return true; } CMD:kungfu(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(!FightStyleLearned[playerid]{FS_KUNGFU}) return SysMsg(playerid,"You must learn Kung Fu primeiro."); LoopingAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0); return true; } CMD:sentar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","SEAT_down",4.1,0,0,0,1,0); return true; } CMD:fsentar(playerid) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"SUNBATHE","SBATHE_F_LieB2Sit",4.1,0,0,0,1,0); return true; } CMD:eatsit(playerid) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "FOOD", "FF_Sit_Loop", 4.0, 1, 0, 0, 0, 0); return true; } CMD:bbat(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /bbat [1-2]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "CRACK", "Bbalbat_Idle_01",4.0,1,0,0,0,0); case 2: LoopingAnim(playerid, "CRACK", "Bbalbat_Idle_02",4.0,1,0,0,0,0); } return true; } CMD:seat(playerid, params[]) return cmd_sentar(playerid, params); CMD:fseat(playerid) return cmd_fsentar(playerid); CMD:sinaltransito(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /direct [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "POLICE","CopTraf_Come",4.0,1,0,0,0,0); case 2: LoopingAnim(playerid, "POLICE","CopTraf_Away",4.0,1,0,0,0,0); case 3: LoopingAnim(playerid, "POLICE","CopTraf_Stop",4.0,1,0,0,0,0); case 4: LoopingAnim(playerid, "POLICE","CopTraf_Left",4.0,1,0,0,0,0); default: SysMsg(playerid,"Use: /direct [1-4]"); } return true; } CMD:oculos(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "goggles","goggles_put_on",4.0,0,0,0,0,0); return true; } CMD:sit2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "INT_HOUSE","LOU_In",4.0,0,0,0,1,0); return true; } CMD:cadeira(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /cadeira [1-6]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "INT_OFFICE", "OFF_Sit_Type_Loop", 4.0, 1, 0, 0, 1, 0); case 2: LoopingAnim(playerid, "INT_OFFICE", "OFF_Sit_Bored_Loop", 4.0, 1, 0, 0, 1, 0); case 3: LoopingAnim(playerid, "INT_OFFICE", "OFF_Sit_In", 4.0, 0, 0, 0, 1, 1); case 4: LoopingAnim(playerid, "JST_BUISNESS", "girl_02", 4.0, 0, 0, 0, 1, 1); case 5: LoopingAnim(playerid, "MISC", "seat_talk_01", 4.0, 0, 0, 0, 1, 1); case 6: LoopingAnim(playerid, "MISC", "seat_talk_02", 4.0, 0, 0, 0, 1, 1); default: SysMsg(playerid,"Use: /chairsit [1-6]"); } return true; } CMD:caircosta(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "You may not perform this action in a vehicle."); LoopingAnim(playerid,"PED","KO_skid_front",4.1,0,1,1,1,0); return true; } CMD:caircosta2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid, "You may not perform this action in a vehicle."); LoopingAnim(playerid,"PED", "BIKE_fall_off",4.1,0,1,1,1,0); return true; } CMD:cairfrente(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "PED","FLOOR_hit_f", 4.0, 1, 0, 0, 0, 0); return true; } CMD:injured(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "SWEET", "Sweet_injuredloop", 4.0, 1, 0, 0, 0, 0); return true; } CMD:salda(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /salda [1-3]"); switch(strval(params)) { case 1: OnePlayAnim(playerid,"GANGS","hndshkba",4.0,0,0,0,0,0); case 2: OnePlayAnim(playerid,"GANGS","hndshkda",4.0,0,0,0,0,0); case 3: OnePlayAnim(playerid,"GANGS","hndshkfa_swt",4.0,0,0,0,0,0); default: SysMsg(playerid,"Use: /salda [1-3]"); } return true; } CMD:gcantar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /gsign [1-10]"); switch(strval(params)) { case 1: OnePlayAnim(playerid, "GHANDS", "gsign1", 3.5, 0, 1, 1, 1, 1); case 2: OnePlayAnim(playerid, "GHANDS", "gsign1LH", 3.5, 0, 1, 1, 1, 1); case 3: OnePlayAnim(playerid, "GHANDS", "gsign2", 3.5, 0, 1, 1, 1, 1); case 4: OnePlayAnim(playerid, "GHANDS", "gsign2LH", 3.5, 0, 1, 1, 1, 1); case 5: OnePlayAnim(playerid, "GHANDS", "gsign3", 3.5, 0, 1, 1, 1, 1); case 6: OnePlayAnim(playerid, "GHANDS", "gsign3LH", 3.5, 0, 1, 1, 1, 1); case 7: OnePlayAnim(playerid, "GHANDS", "gsign4", 3.5, 0, 1, 1, 1, 1); case 8: OnePlayAnim(playerid, "GHANDS", "gsign4LH", 3.5, 0, 1, 1, 1, 1); case 9: OnePlayAnim(playerid, "GHANDS", "gsign5", 3.5, 0, 1, 1, 1, 1); case 10: OnePlayAnim(playerid, "GHANDS", "gsign5LH", 3.5, 0, 1, 1, 1, 1); default: cmd_gcantar(playerid, ""); } return true; } CMD:salute(playerid) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "GHANDS", "gsign5LH", 3.5, 0, 0, 0, 0, 0); return true; } CMD:rap(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /rap [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"RAPPING","RAP_A_Loop",4.0,1,0,0,0,0); case 2: LoopingAnim(playerid,"RAPPING","RAP_C_Loop",4.0,1,0,0,0,0); case 3: LoopingAnim(playerid,"GANGS","prtial_gngtlkD",4.0,1,0,0,0,0); case 4: LoopingAnim(playerid,"GANGS","prtial_gngtlkH",4.0,1,0,0,1,1); default: SysMsg(playerid,"Use: /rap [1-4]"); } return true; } CMD:empurrar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"GANGS","shake_cara",4.0,0,0,0,0,0); return true; } CMD:metepe(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"POLICE","Door_Kick",4.0,0,0,0,0,0); return true; } CMD:empurrarabaixado(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"GANGS","shake_carSH",4.0,0,0,0,0,0); return true; } CMD:sprayanim(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"SPRAYCAN","spraycan_full",4.0,0,0,0,0,0); return true; } CMD:cabecada(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"WAYFARER","WF_Fwd",4.0,0,0,0,0,0); return true; } CMD:medico(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"MEDIC","CPR",4.0,0,0,0,0,0); return true; } CMD:cobrirosto(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","KO_shot_face",4.0,0,1,1,1,0); return true; } CMD:maoestomago(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","KO_shot_stom",4.0,0,1,1,1,0); return true; } CMD:sejogafrente(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","EV_dive",4.0,0,1,1,1,0); return true; } CMD:cansado(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"FAT","IDLE_tired",3.0,1,0,0,0,0); return true; } CMD:tapavirando(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"PED","BIKE_elbowL",4.0,0,0,0,0,0); return true; } CMD:rolartras(playerid) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PED","BIKE_fallR",4.0,0,1,1,1,0); return true; } CMD:carrofechado(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"PED","CAR_doorlocked_LHS",4.0,0,0,0,0,0); return true; } CMD:carjack(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /carjack [1-4]"); switch(strval(params)) { case 1: OnePlayAnim(playerid,"PED","CAR_pulloutL_LHS",4.0,0,0,0,0,0); case 2: OnePlayAnim(playerid,"PED","CAR_pulloutL_RHS",4.0,0,0,0,0,0); case 3: OnePlayAnim(playerid,"PED","CAR_pullout_LHS",4.0,0,0,0,0,0); case 4: OnePlayAnim(playerid,"PED","CAR_pullout_RHS",4.0,0,0,0,0,0); default: SysMsg(playerid,"Use: /carjack [1-4 only]"); } return true; } CMD:hoodfrisked(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"POLICE","crm_drgbst_01",4.0,0,1,1,1,0); return true; } CMD:acendercigarro(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"SMOKING","M_smk_in",3.0,0,0,0,0,0); return true; } CMD:tapcig(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"SMOKING","M_smk_tap",3.0,0,0,0,0,0); return true; } CMD:bracojanela(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(IsBus(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "You cannot use this animation in a bus."); if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 2) OnePlayAnim(playerid, "CAR", "Tap_hand", 4.0,0,1,1,1,0); else return SendClientMessage(playerid, COLOR_RED, "You must be in a vehicle and in the correct seat to use this animation."); return true; } CMD:bat(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"BASEBALL","Bat_IDLE",4.0,1,1,1,1,0); return true; } CMD:box(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(!FightStyleLearned[playerid]{FS_BOXING}) return SysMsg(playerid,"You have not learned Boxing."); LoopingAnim(playerid,"GYMNASIUM","GYMshadowbox",4.0,1,1,1,1,0); return true; } CMD:deitar2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"SUNBATHE","Lay_Bac_in",3.0,0,1,1,1,0); return true; } CMD:agitar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"RIOT","RIOT_CHANT",4.0,1,1,1,1,0); return true; } CMD:dedodomeio(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"RIOT","RIOT_FUKU",2.0,0,0,0,0,0); return true; } CMD:fuckyou(playerid, params[]) return cmd_dedodomeio(playerid, params); CMD:gritando(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"RIOT","RIOT_shout",4.0,1,0,0,0,0); return true; } CMD:cop(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"SWORD","sword_block",50.0,0,1,1,1,1); return true; } CMD:cotovelada(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"FIGHT_D","FightD_3",4.0,0,1,1,0,0); return true; } CMD:joelhocabeca(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"FIGHT_D","FightD_2",4.0,0,1,1,0,0); return true; } CMD:armagolpe(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"FIGHT_D","FightD_IDLE",4.0,1,1,1,1,0); return true; } CMD:gopearnochao(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"FIGHT_B","FightB_G",4.0,0,0,0,0,0); return true; } CMD:chutepulando(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"FIGHT_C","FightC_M",4.0,0,1,1,0,0); return true; } CMD:bicuda(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"FIGHT_D","FightD_G",4.0,0,0,0,0,0); return true; } CMD:jogarperto(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"GRENADE","WEAPON_throwu",4.0,0,0,0,0,0); return true; } CMD:jogarlonge(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid,"GRENADE","WEAPON_throw",4.0,0,0,0,0,0); return true; } CMD:cruzabracos2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"DEALER","DEALER_IDLE",4.0,1,0,0,0,0); return true; } CMD:mijar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING); return true; } CMD:piss(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_PISSING); return true; } CMD:wank(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid,"PAULNMAC","wank_loop",4.0,1,0,0,0,0); if(IsInHouseID[playerid] != -1 && HouseData[IsInHouseID[playerid]][HouseOwnerSQLID] == SQLID[playerid]) UnlockAchievement(playerid, 33); return true; } CMD:faca(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /faca [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"KNIFE","KILL_Knife_Ped_Damage",4.0,0,1,1,1,0); case 2: LoopingAnim(playerid,"KNIFE","KILL_Knife_Ped_Die",4.0,0,1,1,1,0); case 3: OnePlayAnim(playerid,"KNIFE","KILL_Knife_Player",4.0,0,0,0,0,0); case 4: LoopingAnim(playerid,"KNIFE","KILL_Partial",4.0,0,1,1,1,1); default: SysMsg(playerid,"Use: /faca [1-4]"); } return true; } CMD:basket(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /basket [1-6]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"BSKTBALL","BBALL_idleloop",4.0,1,0,0,0,0); case 2: OnePlayAnim(playerid,"BSKTBALL","BBALL_Jump_Shot",4.0,0,0,0,0,0); case 3: OnePlayAnim(playerid,"BSKTBALL","BBALL_pickup",4.0,0,0,0,0,0); case 4: LoopingAnim(playerid,"BSKTBALL","BBALL_run",4.1,1,1,1,1,1); case 5: LoopingAnim(playerid,"BSKTBALL","BBALL_def_loop",4.0,1,0,0,0,0); case 6: LoopingAnim(playerid,"BSKTBALL","BBALL_Dnk",4.0,1,0,0,0,0); default: SysMsg(playerid,"Use: /basket [1-6]"); } return true; } CMD:recarregar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /reload [pistol/rifle]"); if(strcmp("pistol", params, true) == 0) OnePlayAnim(playerid,"COLT45","colt45_reload",4.0,0,0,0,0,0); else if(strcmp("rifle", params, true) == 0) OnePlayAnim(playerid,"UZI","UZI_reload",4.0,0,0,0,0,0); else SysMsg(playerid,"Use: /reload [pistol/rifle]"); return true; } CMD:gwalk(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /gwalk [1/2]"); if(strval(params)) LoopingAnim(playerid,"PED","WALK_gang1",4.1,1,1,1,1,1); else if(strval(params)) LoopingAnim(playerid,"PED","WALK_gang2",4.1,1,1,1,1,1); else SysMsg(playerid,"Use: /gwalk [1/2]"); return true; } CMD:aim(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /aim [1-3]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"PED","gang_gunstand",4.0,1,1,1,1,1); case 2: LoopingAnim(playerid,"PED","Driveby_L",4.0,0,1,1,1,1); case 3: LoopingAnim(playerid,"PED","Driveby_R",4.0,0,1,1,1,1); default: SysMsg(playerid,"Use: /aim [1-3]"); } return true; } CMD:escorar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /escorar [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"GANGS","leanIDLE",4.0,0,1,1,1,0); case 2: LoopingAnim(playerid,"MISC","Plyrlean_loop",4.0,0,1,1,1,0); case 3: LoopingAnim(playerid,"RYDER","Van_Lean_R",4.0,0,1,1,1,0); case 4: LoopingAnim(playerid,"GANGS","leanIDLE",4.0,0,0,1,1,1); default: SysMsg(playerid,"Use: /escorar [1-4]"); } return true; } CMD:car(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /car [1-3]"); switch(strval(params)) { case 1: { ClearAnimations(playerid); LoopingAnim(playerid, "CAR", "Fixn_Car_Out", 4.1, 0, 1, 1, 1, 1); // Twice so that it applies. SetTimerEx("CarAnim1", 125, false, "i", playerid); SetTimerEx("CarAnim2", 1500, false, "i", playerid); } case 2: LoopingAnim(playerid, "CAR", "Fixn_Car_Out", 4.1, 0, 1, 1, 1, 1); case 3: LoopingAnim(playerid, "CAR", "flag_drop", 4.1, 0, 1, 1, 1, 1); default: SysMsg(playerid,"Use: /car [1-3 only]"); } return true; } GREENSIDE::CarAnim1(playerid) { LoopingAnim(playerid, "CAR", "Fixn_Car_Out", 4.1, 0, 1, 1, 1, 1); return true; } GREENSIDE::CarAnim2(playerid) { LoopingAnim(playerid,"CAR", "Fixn_Car_Loop", 4.0, 1, 0, 0, 0, 0); return true; } CMD:clear(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(IsPlayerInAnyVehicle(playerid)) return true; ClearAnimations(playerid); OnePlayAnim(playerid, "CARRY", "crry_prtial", 1.0, 0, 0, 0, 0, 0); return true; } CMD:strip(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /strip [1-7]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"STRIP", "strip_A", 4.1, 1, 1, 1, 1, 1); case 2: LoopingAnim(playerid,"STRIP", "strip_B", 4.1, 1, 1, 1, 1, 1); case 3: LoopingAnim(playerid,"STRIP", "strip_C", 4.1, 1, 1, 1, 1, 1); case 4: LoopingAnim(playerid,"STRIP", "strip_D", 4.1, 1, 1, 1, 1, 1); case 5: LoopingAnim(playerid,"STRIP", "strip_E", 4.1, 1, 1, 1, 1, 1); case 6: LoopingAnim(playerid,"STRIP", "strip_F", 4.1, 1, 1, 1, 1, 1); case 7: LoopingAnim(playerid,"STRIP", "strip_G", 4.1, 1, 1, 1, 1, 1); default: SysMsg(playerid,"Use: /strip [1-7 only]"); } return true; } CMD:dancar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid,"Use: /dancar [1-11]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"DANCING", "DAN_Loop_A", 4.1, 1, 1, 1, 1, 1); case 2: LoopingAnim(playerid,"DANCING", "dnce_M_a", 4.1, 1, 0, 0, 1, 1); case 3: LoopingAnim(playerid,"DANCING", "dnce_M_b", 4.1, 1, 1, 1, 1, 1); case 4: LoopingAnim(playerid,"DANCING", "dnce_M_c", 4.1, 1, 1, 1, 1, 1); case 5: LoopingAnim(playerid,"DANCING", "dnce_M_d", 4.1, 1, 0, 0, 1, 1); case 6: LoopingAnim(playerid,"DANCING", "dnce_M_e", 4.1, 1, 0, 0, 1, 1); case 7: LoopingAnim(playerid,"DANCING", "bd_clap1", 4.1, 1, 1, 1, 1, 1); case 8: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE1); case 9: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE2); case 10: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE3); case 11: SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DANCE4); default: SysMsg(playerid,"Use: /dancar [1-11]"); } return true; } CMD:walk(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /walk [1 - 10]"); switch(strval(params)) { case 1: LoopingAnim(playerid,"PED","WALK_GANG1", 4.1, 1, 1, 1, 1, 1); case 2: LoopingAnim(playerid,"PED","WALK_GANG2", 4.1, 1, 1, 1, 1, 1); case 3: LoopingAnim(playerid,"PED","WALK_FAT", 4.1, 1, 1, 1, 1, 1); case 4: LoopingAnim(playerid,"PED","WALK_FATOLD", 4.1, 1, 1, 1, 1, 1); case 5: LoopingAnim(playerid,"PED","WALK_OLD", 4.1, 1, 1, 1, 1, 1); case 6: LoopingAnim(playerid,"PED","WOMAN_WALKNORM", 4.1, 1, 1, 1, 1, 1); case 7: LoopingAnim(playerid,"PED","WOMAN_WALKSEXY", 4.1, 1, 1, 1, 1, 1); case 8: LoopingAnim(playerid,"MUSCULAR","MUSCLEWALK", 4.1, 1, 1, 1, 1, 1); case 9: LoopingAnim(playerid,"PED","WALK_WUZI", 4.1, 1, 1, 1, 1, 1); case 10: LoopingAnim(playerid, "PED", "WALK_civi", 4.1, 1, 1, 1, 1, 1); default: SysMsg(playerid, "Use: /walk [1 - 10]"); } return true; } CMD:bracobalcao(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "BAR", "BARman_idle", 4.0, 1, 0, 0, 0, 0); return true; } CMD:darbebida(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "BAR", "Barserve_give", 4.0, 0, 0, 0, 0, 0); return true; } CMD:lavarmaos(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "BD_FIRE", "wash_up", 4.0, 0, 0, 0, 0, 0); return true; } CMD:pegapeso(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "Freeweights", "gym_free_pickup", 4.0, 0, 0, 0, 0, 0); return true; } CMD:colocarnochao(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "Freeweights", "gym_free_putdown", 4.0, 0, 0, 0, 0, 0); return true; } CMD:passarcartao(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "HEIST9", "Use_SwipeCard", 4.0, 0, 0, 0, 0, 0); return true; } CMD:abaixarmaodireita(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "MISC", "Case_pickup", 4.0, 0, 0, 0, 0, 0); return true; } CMD:taxid(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "MISC", "Hiker_Pose", 3.5, 1, 0, 0, 0, 0); return true; } CMD:taxie(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "MISC", "Hiker_Pose_L", 3.5, 1, 0, 0, 0, 0); return true; } CMD:cocarsaco(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "MISC", "Scratchballs_01", 4.0, 1, 0, 0, 0, 0); return true; } CMD:copmove(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "POLICE", "Cop_move_FWD", 4.0, 1, 1, 1, 1, 1); return true; } CMD:bravo(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "RIOT", "RIOT_ANGRY", 4.0, 1, 0, 0, 0, 0); return true; } CMD:agitar2(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "RIOT", "RIOT_ANGRY_B", 4.0, 1, 0, 0, 0, 0); return true; } CMD:saque(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "ROB_BANK", "CAT_Safe_Rob", 4.0, 1, 0, 0, 0, 0); return true; } CMD:fbeber(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "BAR", "dnk_stndF_loop", 4.0, 1, 0, 0, 0, 0); return true; } CMD:viratchau(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "BD_FIRE", "bd_gf_wave", 4.0, 0, 0, 0, 0, 0); return true; } CMD:flex(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /flex [1-2]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "benchpress", "gym_bp_celebrate", 4.1, 1, 0, 0, 0, 0); case 2: OnePlayAnim(playerid, "Freeweights", "gym_free_celebrate", 4.1, 0, 0, 0, 0, 0); default: SysMsg(playerid, "Use: /flex [1-2]"); } return true; } CMD:awwyeah(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "CASINO", "manwinB", 4.1, 0, 0, 0, 0, 0); return true; } CMD:drogado(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /drogado [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "CRACK", "crckidle3", 4.1, 1, 0, 0, 0, 0); case 2: LoopingAnim(playerid, "CRACK", "crckidle4", 4.1, 1, 0, 0, 0, 0); case 3: LoopingAnim(playerid, "PAULNMAC", "pnm_loop_A", 4.1, 1, 0, 0, 0, 0); case 4: LoopingAnim(playerid, "PAULNMAC", "pnm_loop_B", 4.1, 1, 0, 0, 0, 0); default: SysMsg(playerid, "Use: /drogado [1-4]"); } return true; } CMD:caixaeletronico(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /caixaeletronico [1-2]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "INT_SHOP", "shop_cashier", 4.1, 1, 0, 0, 0, 0); case 2: LoopingAnim(playerid, "SHOP", "shp_serve_loop", 4.1, 1, 0, 0, 0, 0); default: SysMsg(playerid, "Use: /caixaeletronico [1-2]"); } return true; } CMD:hegebeface(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "PED", "facanger", 4.1, 1, 0, 0, 0, 0); return true; } CMD:observado(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "ON_LOOKERS", "panic_point", 4.1, 0, 0, 0, 0, 0); return true; } CMD:gritar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /shout [1-2]"); switch(strval(params)) { case 1: OnePlayAnim(playerid, "ON_LOOKERS", "shout_01", 4.1, 0, 0, 0, 0, 0); case 2: OnePlayAnim(playerid, "ON_LOOKERS", "shout_02", 4.1, 0, 0, 0, 0, 0); default: SysMsg(playerid, "Use: /shout [1-2]"); } return true; } CMD:olhavolta(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "ON_LOOKERS", "lkaround_loop", 4.1, 1, 0, 0, 0, 0); return true; } CMD:afastar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "PED", "handscower", 4.1, 0, 0, 0, 0, 0); return true; } CMD:espingarda(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "PED", "idle_armed", 4.1, 1, 0, 0, 0, 0); return true; } CMD:taxi(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "PED", "idle_taxi", 4.0, 0, 0, 0, 0, 0); return true; } CMD:trotar(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /trotar [1-2]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "PED", "jog_maleA", 4.1, 1, 1, 1, 1, 1); case 2: LoopingAnim(playerid, "PED", "jog_femaleA", 4.1, 1, 1, 1, 1, 1); default: SysMsg(playerid, "Use: /trotar [1-2]"); } return true; } CMD:sorrateiro(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); LoopingAnim(playerid, "PED", "player_sneak", 4.1, 1, 1, 1, 0, 0); return true; } CMD:dj(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /dj [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "SCRATCHING", "scdlulp", 4.1, 1, 0, 0, 0, 0); case 2: LoopingAnim(playerid, "SCRATCHING", "scdrdlp", 4.1, 1, 0, 0, 0, 0); case 3: LoopingAnim(playerid, "SCRATCHING", "scdrulp", 4.1, 1, 0, 0, 0, 0); case 4: LoopingAnim(playerid, "SCRATCHING", "scshrtl", 4.1, 1, 0, 0, 0, 0); default: SysMsg(playerid, "Use: /dj [1-4]"); } return true; } CMD:halt(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); OnePlayAnim(playerid, "SWAT", "swt_lkt", 4.1, 0, 0, 0, 0, 0); return true; } CMD:blowjob(playerid, params[]) { if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você é incapaz de executar este comando como você está abatido."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid, COLOR_RED, "Você deve estar a pé para realizar esta animação."); if(isnull(params)) return SysMsg(playerid, "Use: /blowjob [1-4]"); switch(strval(params)) { case 1: LoopingAnim(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_W", 4.1, 1, 0, 0, 1, 1); case 2: LoopingAnim(playerid, "BLOWJOBZ", "BJ_COUCH_LOOP_P", 4.1, 1, 0, 0, 1, 1); case 3: LoopingAnim(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_W", 4.1, 1, 0, 0, 1, 1); case 4: LoopingAnim(playerid, "BLOWJOBZ", "BJ_STAND_LOOP_P", 4.1, 1, 0, 0, 1, 1); default: SysMsg(playerid, "Use: /blowjob [1-4]"); } return true; } CMD:facepalm(playerid, params[]) { if(!Logged{playerid}) return true; format(gstr, sizeof(gstr),"* %s suspira e coloca sua mão no rosto. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); UnlockAchievement(playerid, 32); if(!IsPlayerInAnyVehicle(playerid)) OnePlayAnim(playerid, "MISC", "plyr_shkhead", 1.25, 0, 0, 0, 0, 0); return true; } CMD:breathe(playerid, params[]) { new index = GetFreePlayerObjectIndex(playerid); if(index == -1) return SysMsg(playerid, "Você não pode usar esse recurso como você tem muitos objetos anexados."); SetPlayerAttachedObject(playerid, index, 18677, 2, 0, 0.17, -1.6, 0, 0, 0, 1, 1, 1); SetTimerEx("remove_ostick", 3333, 0, "ii", playerid, index); return true; } CMD:vape(playerid) return SysMsg(playerid, "Frick off, hecker."); GREENSIDE::remove_ostick(playerid, index) { RemovePlayerAttachedObject(playerid, index); return true; } //End of animations //==================== Fim ==================================// //11 Fishing //Fishing CMD:fish(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); new fishingType = -1, v, Float:vPos[3], Float:ReeferPos[3]; GetVehiclePos(ReeferID(), ReeferPos[0], ReeferPos[1], ReeferPos[2]); if(GetPlayerState(playerid) == 1 && (IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039) || IsPlayerInRangeOfPoint(playerid, 6.0, -793.7495,-1947.7505,6.7726))) fishingType = 1; if(fishingType == -1) { if(IsPlayerInAnyVehicle(playerid)) v = GetPlayerVehicleID(playerid); else v = GetClosestVehicle(playerid); if(v == INVALID_VEHICLE_ID || !IsBoat(v)) return SysMsg(playerid,"Você deve estar no local de pesca ou em um recife."); GetVehiclePos(v, vPos[0], vPos[1], vPos[2]); } if(v == ReeferID()) fishingType = 2; else if(IsOwnedCar(v) && IsBoat(v) && v != ReeferID()) fishingType = 3; else if(IsPlayerInRangeOfPoint(playerid,5.0,ReeferPos[0], ReeferPos[1], ReeferPos[2]) && !IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039)) fishingType = 2; else if(IsPlayerInRangeOfPoint(playerid,5.0, vPos[0], vPos[1], vPos[2])) fishingType = 3; if(fishingType == -1) return SysMsg(playerid,"Você deve estar no local de pesca ou em um recife."); if(fishingType == 2 && IsPlayerInRangeOfPoint(playerid, 100.0, 2105.352050, -96.437431, 0.725863)) return SysMsg(playerid,"Por favor, leve o reefer para longe da doca antes de pescar."); if(fishingType == 3 && IsPlayerInRangeOfPoint(playerid, 300.0, 2105.352050, -96.437431, 0.725863)) return SysMsg(playerid, "Por favor, leve o barco para longe da Baía Palomino Creek antes de pescar."); if(Inventory[playerid][FishingPermit] == 0) return SysMsg(playerid,"Você não tem uma licença de pesca."); if(Inventory[playerid][FishingRod] == 0) return SysMsg(playerid,"Você não tem uma vara de pescar."); if(FishSpamTime[playerid] != 0) return SysMsg(playerid,"Por favor, aguarde antes de pescar novamente."); if(Inventory[playerid][FishingBait] <= 0) return SysMsg(playerid,"Você não tem nenhuma isca, vá para a loja de pesca para comprar algumas."); if(FishWeight[playerid][0] != -1 && FishWeight[playerid][1] != -1 && FishWeight[playerid][2] != -1 && FishWeight[playerid][3] != -1 && FishWeight[playerid][4] != -1) return SysMsg(playerid,"You can't hold anymore fish."); FishingRodHealth[playerid] --; MySQLUpdateInt(SQLID[playerid], "FishingRodHealth", FishingRodHealth[playerid], "players"); if(FishingRodHealth[playerid] <= 0 && Inventory[playerid][FishingRod] == 1) { Inventory[playerid][FishingRod] = 0; FishingRodHealth[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "FishingRod", Inventory[playerid][FishingRod], "players"); format(gstr, sizeof(gstr),"* A vara de pesca de %s quebra em duas partes. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid,COLOR_DARKBLUE,"Sua vara de pescar quebrou ao meio devido suas condições."); return true; } TogglePlayerControllable(playerid, 0); if(AttachedObjects[playerid][7][aoModelID] == 0) { AttachedObjects[playerid][7][aoModelID] = 18632; AttachedObjects[playerid][7][aoBone] = 6; SetPlayerAttachedObject(playerid, 7, 18632, 6, 0.1, 0.05, 0, 0, 180, 180, 0); } Inventory[playerid][FishingBait] --; MySQLUpdateInt(SQLID[playerid], "FishingBait", Inventory[playerid][FishingBait], "players"); new rand; if(fishingType == 1) { rand = random(5) + 5; format(sgstr, sizeof(sgstr),"* %s começa a pescar fora do cais... *",NameRP(playerid)); } else if(fishingType == 2) { rand = random(10) + 10; format(sgstr, sizeof(sgstr),"* %s começa a pescar fora do Recife... *",NameRP(playerid)); } else if(fishingType == 3) { fishingType = 2; //set type back to 2 to trigger boat fishing rand = random(10) + 10; format(sgstr, sizeof(sgstr),"* %s começa a pescar fora do %s... *",NameRP(playerid), GetVehicleName(v)); } FishSpamTime[playerid] = 1; OnePlayAnim(playerid, "SAMP", "FishingIdle", 10.0, 0, 0, 0, 1, rand*1000); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SetTimerEx("OnPlayerFish",(rand*1000),0,"ii",playerid, fishingType); return true; } CMD:peixes(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Por favor, faça primeiro login."); for(new f = 0; f < 5; f++) { if(FishWeight[playerid][f] == -1) SendClientMessageF(playerid,COLOR_DARKBLUE, "Slot de peixe %i: Nome: n/a Peso: n/a",f+1); else SendClientMessageF(playerid,COLOR_DARKBLUE, "Slot de peixe %i: Nome: %s Peso: %i kg",f+1,FishName[playerid][f],FishWeight[playerid][f]); } SendClientMessageF(playerid,COLOR_DARKBLUE, "Isca de pesca: %i, Meu maior recorde de peixe: %i Kg, Durabilidade da vara: %i %%",Inventory[playerid][FishingBait],BiggestFish[playerid],FishingRodHealth[playerid]); return true; } CMD:showfish(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /showfish [playerID ou name]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); new Float:x, Float:y, Float:z; GetPlayerPos(playa, x, y, z); if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SysMsg(playerid, "Você deve estar mais perto do jogador."); SendClientMessageF(playa, COLOR_DARKBLUE, "%s's fish.", NameRP(playerid)); for(new f = 0; f < 5; f++) { if(FishWeight[playerid][f] == -1) SendClientMessageF(playa, COLOR_DARKBLUE, "Slot de peixe %i: Nome: n/a Peso: n/a", f + 1); else SendClientMessageF(playa, COLOR_DARKBLUE, "Slot de peixe %i: Nome: %s Peso: %i Lbs", f + 1, FishName[playerid][f], FishWeight[playerid][f]); } return true; } CMD:sellfish(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(!IsPlayerInRangeOfPoint(playerid,5.0,2150.601318,-100.634284,2.755812) && !IsPlayerInRangeOfPoint(playerid, 4.5, -800.5269,-1922.8231,9.1117)) return SysMsg(playerid,"Você não está na loja de pesca."); if(FishWeight[playerid][0] == -1 && FishWeight[playerid][1] == -1 && FishWeight[playerid][2] == -1 && FishWeight[playerid][3] == -1 && FishWeight[playerid][4] == -1) return SysMsg(playerid,"Você não tem peixe."); gstr[0] = EOS; for(new f = 0; f < 5; f++) { if(FishWeight[playerid][f] != -1) { new fishValue = 3 * FishWeight[playerid][f]; format(sgstr, sizeof(sgstr), "%s - %iLbs - Vale $%i\n", FishName[playerid][f], FishWeight[playerid][f], fishValue); strcat(gstr, sgstr); } } strcat(gstr, "\nSell All"); Dialog_Show(playerid, FishSell, DIALOG_STYLE_LIST, "Vender peixe", gstr, "Vender", "Cancelar"); return true; } CMD:putback(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); new atFishSpot = 0; if(GetPlayerSurfingVehicleID(playerid) == ReeferID()) atFishSpot = 1; if(GetPlayerVehicleID(playerid) == ReeferID()) atFishSpot = 1; if(GetPlayerState(playerid) == 1 && IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039) || IsPlayerInRangeOfPoint(playerid, 6.0, -793.7495,-1947.7505,6.7726)) atFishSpot = 1; new Float:ReeferPos[3]; GetVehiclePos(ReeferID(), ReeferPos[0], ReeferPos[1], ReeferPos[2]); if(IsPlayerInRangeOfPoint(playerid,5.0,ReeferPos[0], ReeferPos[1], ReeferPos[2]) && !IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039)) atFishSpot = 1; if(atFishSpot == 0) return SysMsg(playerid,"Você deve estar no ponto de pesca ou em um Reefer para colocar o peixe de volta."); if(FishWeight[playerid][0] == -1 && FishWeight[playerid][1] == -1 && FishWeight[playerid][2] == -1 && FishWeight[playerid][3] == -1 && FishWeight[playerid][4] == -1) return SysMsg(playerid,"You have no fish."); new SlotToUse; if(sscanf(params, "i", SlotToUse)) return SysMsg(playerid,"Use: /putback [número do peixe] *Dica: Uses /peixes para ver os números de peixe*"); if(SlotToUse > 5 || SlotToUse < 1) return SysMsg(playerid,"ID de peixe inválido! (1 to 5 only)"); SlotToUse --; if(FishWeight[playerid][SlotToUse] == -1) return SysMsg(playerid,"Nenhum peixe naquele slot."); format(gstr, sizeof(gstr),"* %s lança um %s de volta a água. *",NameRP(playerid),FishName[playerid][SlotToUse]); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você colocou um %i Lb %s de volta na água.",FishWeight[playerid][SlotToUse],FishName[playerid][SlotToUse]); SendClientMessage(playerid,COLOR_SKYBLUE,gstr); FishWeight[playerid][SlotToUse] = -1; FishName[playerid][SlotToUse][0] = EOS; for(new x = 0; x < 5; x++) { mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = %i, Fish%iWeight = %i WHERE id = %i", x + 1, FishName[playerid][x], x+ 1, FishWeight[playerid][x], SQLID[playerid]); mysql_pquery(conn, mquery); } return true; } CMD:putallback(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); new atFishSpot = 0; if(GetPlayerSurfingVehicleID(playerid) == ReeferID()) atFishSpot = 1; if(GetPlayerVehicleID(playerid) == ReeferID()) atFishSpot = 1; if(GetPlayerState(playerid) == 1 && IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039) || IsPlayerInRangeOfPoint(playerid, 6.0, -793.7495,-1947.7505,6.7726)) atFishSpot = 1; new Float:ReeferPos[3]; GetVehiclePos(ReeferID(), ReeferPos[0], ReeferPos[1], ReeferPos[2]); if(IsPlayerInRangeOfPoint(playerid,5.0,ReeferPos[0], ReeferPos[1], ReeferPos[2]) && !IsPlayerInRangeOfPoint(playerid,6.0,2111.0522,-98.3380,2.1039)) atFishSpot = 1; if(atFishSpot == 0) return SysMsg(playerid,"Você deve estar no ponto de pesca ou em um Reefer para colocar o peixe de volta."); if(FishWeight[playerid][0] == -1 && FishWeight[playerid][1] == -1 && FishWeight[playerid][2] == -1 && FishWeight[playerid][3] == -1 && FishWeight[playerid][4] == -1) return SysMsg(playerid,"You have no fish."); new FishCount = 0; for(new F = 0; F < 5; F++) { if(FishWeight[playerid][F] != -1) { FishWeight[playerid][F] = -1; FishName[playerid][F][0] = EOS; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = %i, Fish%iWeight = %i WHERE id = %i", F + 1, FishName[playerid][F], F+ 1, FishWeight[playerid][F], SQLID[playerid]); mysql_pquery(conn, mquery); FishCount++; } } format(gstr, sizeof(gstr),"* %s lança um %s de volta a água. *",NameRP(playerid),FishCount); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Você colocou um %i Lb %s de volta na água.",FishCount); SendClientMessage(playerid,COLOR_SKYBLUE,gstr); return true; } CMD:fcrate(playerid, params[]) { if(!Logged{playerid}) return true; new option[24], value[64]; if(sscanf(params, "s[24]S()[64]", option, value)) return SysMsg(playerid, "Use: /fcrate [take/setup/drop/pickup/store/check]"); if(strcmp(option, "take", true) == 0) { new Float:x, Float:y, Float:z; for(new i = 0; i < MAX_FISHCRATES; i++) { if(FishingCrates[i][CrateVehicle] != 0) { if(Locked{FishingCrates[i][CrateVehicle]}) return SysMsg(playerid, "Esta caixa está firmemente presa ao barco e não pode ser retirada."); GetVehiclePos(FishingCrates[i][CrateVehicle], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) { new index = GetFreePlayerObjectIndex(playerid), v = FishingCrates[i][CrateVehicle]; if(index == -1) return SysMsg(playerid, "Você não tem nenhum slots de objeto livre anexado."); DestroyDynamicObject(VehObject[v]); SetPlayerAttachedObject(playerid, index, GetFishingCrateModelID(FishingCrates[i][CrateType]), 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET FishCrate = 0 WHERE id = %i", VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); FishingCrates[i][CrateVehicle] = 0; FishingCrates[i][FishingCrateObject] = INVALID_OBJECT_ID; HoldingCrate[playerid] = i; CrateIndex[playerid] = index; VehObject[v] = INVALID_OBJECT_ID; format(sgstr, sizeof(sgstr),"* %s pega uma caixa de peixe do %s. *",NameRP(playerid), GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } SysMsg(playerid, "Você não está perto de uma caixa de peixes."); } else if(strcmp(option, "setup", true) == 0) { new v = GetNearestVehicle(playerid); if(v == INVALID_VEHICLE_ID) return SysMsg(playerid, "Você não está perto de um veículo."); if(!IsOwnedCar(v)) return SysMsg(playerid, "O veículo deve ser um veículo próprio."); if(!IsCrateVehicle(v)) return SysMsg(playerid, "Este barco não pode segurar uma caixa."); if(HoldingCrate[playerid] == -1) return SysMsg(playerid, "Você não está segurando uma caixa de pesca."); new c = HoldingCrate[playerid]; FishingCrates[c][CrateVehicle] = v; AttachCrateToVehicle(v, GetFishingCrateModelID(FishingCrates[c][CrateType])); RemovePlayerAttachedObject(playerid, CrateIndex[playerid]); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); HoldingCrate[playerid] = -1; CrateIndex[playerid] = -1; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET FishCrate = %i WHERE id = %i", FishingCrates[c][CrateType], VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); format(sgstr, sizeof(sgstr),"* %s assegura uma caixa de pesca no %s. *",NameRP(playerid), GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else if(strcmp(option, "drop", true) == 0) { if(HoldingCrate[playerid] == -1) return SysMsg(playerid, "Você não está segurando uma caixa de pesca."); new Float:x, Float:y, Float:z, c = HoldingCrate[playerid]; GetPlayerPos(playerid, x, y, z); FishingCrates[c][FishingCrateObject] = CreateDynamicObject(GetFishingCrateModelID(FishingCrates[c][CrateType]), x, y, z - 1.2, 0, 0, 0, GetPlayerVirtualWorld(playerid)); FishingCrates[c][CrateLocX] = x; FishingCrates[c][CrateLocY] = y; FishingCrates[c][CrateLocZ] = z; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); RemovePlayerAttachedObject(playerid, CrateIndex[playerid]); CrateIndex[playerid] = -1; HoldingCrate[playerid] = -1; return true; } else if(strcmp(option, "pickup", true) == 0) { if(HoldingCrate[playerid] != -1) return SysMsg(playerid, "Você já está segurando uma caixa de pesca."); for(new i = 0; i < MAX_FISHCRATES; i++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, FishingCrates[i][CrateLocX], FishingCrates[i][CrateLocY], FishingCrates[i][CrateLocZ]) && IsValidDynamicObject(FishingCrates[i][FishingCrateObject])) { new index = GetFreePlayerObjectIndex(playerid); if(index == -1) return SysMsg(playerid, "Você não tem nenhum slots de objeto livre anexado."); DestroyDynamicObject(FishingCrates[i][FishingCrateObject]); SetPlayerAttachedObject(playerid, index, GetFishingCrateModelID(FishingCrates[i][CrateType]), 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); HoldingCrate[playerid] = i; CrateIndex[playerid] = index; FishingCrates[i][FishingCrateObject] = INVALID_OBJECT_ID; format(sgstr, sizeof(sgstr),"* %s pega uma caixa de pesca. *",NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } SysMsg(playerid, "Você não está perto de uma caixa de peixes."); return true; } else if(strcmp(option, "guardar", true) == 0) { if(sscanf(params, "s[24]s[24]", option, value)) return SysMsg(playerid, "Use: /fcrate guardar [slot 1-5 ou all]"); new Float:x, Float:y, Float:z, c = -1; for(new i = 0; i < MAX_FISHCRATES; i++) { if(FishingCrates[i][CrateVehicle] != 0) { GetVehiclePos(FishingCrates[i][CrateVehicle], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) { c = i; break; } } } if(c == -1) return SysMsg(playerid, "Você não está perto de um veículo com uma caixa dentro dela."); if(GetCurrentCrateSlots(FishingCrates[c][CrateOwner]) == GetMaxCrateSlots(FishingCrates[c][CrateType])) return SysMsg(playerid, "Esta caixa de pesca está cheia."); if(IsNumeric(value)) { new slot = strval(value); if(slot < 1 || slot > 5) return SysMsg(playerid, "Slot deve ser 1-5 ou ALL"); slot --; if(FishWeight[playerid][slot] == -1) return SysMsg(playerid, "Você não tem um peixe nesse slot."); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO fishcrates (FishWeight, CrateOwner) VALUES (%i, %i)", FishWeight[playerid][slot], FishingCrates[c][CrateOwner]); mysql_pquery(conn, mquery); format(sgstr, sizeof(sgstr),"* %s guardar um peixe de %ikg na caixa *",NameRP(playerid), FishWeight[playerid][slot]); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); FishWeight[playerid][slot] = -1; FishName[playerid][slot][0] = EOS; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = '', Fish%iWeight = -1 WHERE id = %i", slot + 1, slot + 1, SQLID[playerid]); mysql_pquery(conn, mquery); return true; } else { new weight, fishcount; for(new f = 0; f < 5; f++) { if(FishWeight[playerid][f] == -1) continue; fishcount ++; weight += FishWeight[playerid][f]; mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO fishcrates (FishWeight, CrateOwner) VALUES (%i, %i)", FishWeight[playerid][f], FishingCrates[c][CrateOwner]); mysql_pquery(conn, mquery); FishWeight[playerid][f] = -1; FishName[playerid][f][0] = EOS; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Fish%iName = '', Fish%iWeight = -1 WHERE id = %i", f + 1, f + 1, SQLID[playerid]); mysql_pquery(conn, mquery); } if(fishcount == 0) return SysMsg(playerid, "Não foi possível armazenar qualquer peixe."); format(sgstr, sizeof(sgstr),"* %s guarda %i peixes totalizando %ikg na caixa *",NameRP(playerid), fishcount, weight); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } else if(strcmp(option, "check", true) == 0) { new Float:x, Float:y, Float:z, c = -1; for(new i = 0; i < MAX_FISHCRATES; i++) { if(FishingCrates[i][CrateVehicle] != 0) { GetVehiclePos(FishingCrates[i][CrateVehicle], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) { c = i; break; } } else if(IsPlayerInRangeOfPoint(playerid, 10.0, FishingCrates[i][CrateLocX], FishingCrates[i][CrateLocY], FishingCrates[i][CrateLocZ])) { c = i; break; } } if(c == -1) return SysMsg(playerid, "Você não está perto de um veículo com uma caixa dentro dela."); SendClientMessage(playerid, COLOR_WHITE, "[CAIXA DE PEIXE]"); mysql_format(conn, mquery, sizeof(mquery), "SELECT SUM(FishWeight) AS weight, COUNT(CrateOwner) as rows FROM fishcrates WHERE CrateOwner = %i", FishingCrates[c][CrateOwner]); mysql_pquery(conn, mquery, "ShowCrateInfo", "i", playerid); return true; } return true; } stock GetCurrentCrateSlots(sqlid) { mysql_format(conn, mquery, sizeof(mquery), "SELECT NULL FROM fishcrates WHERE CrateOwner = %i", sqlid); new Cache:result = mysql_query(conn, mquery); new num = cache_num_rows(); cache_delete(result); return num; } stock GetMaxCrateSlots(type) { switch(type) { case 1: return 100; case 2: return 250; case 3: return 500; } return 100; } GREENSIDE::ShowCrateInfo(playerid) { new weight = cache_get_field_content_int(0, "weight"), count = cache_get_field_content_int(0, "rows"); SendClientMessageF(playerid, COLOR_WHITE, "Peso total: %i (Vale $%s)", weight, format_cash(weight * 3)); SendClientMessageF(playerid, COLOR_WHITE, "Peixe Total: %i", count); } CMD:sellcrate(playerid) { if(!Logged{playerid}) return true; if(HoldingCrate[playerid] == -1) return SysMsg(playerid, "Você não está atualmente na posse de uma caixa de pesca."); if(!IsPlayerInRangeOfPoint(playerid,5.0,2150.601318,-100.634284,2.755812) && !IsPlayerInRangeOfPoint(playerid, 4.5, -800.5269,-1922.8231,9.1117)) return SysMsg(playerid,"Você não está na loja de pesca."); mysql_format(conn, mquery, sizeof(mquery), "SELECT SUM(FishWeight) AS weight, COUNT(CrateOwner) as rows FROM fishcrates WHERE CrateOwner = %i", FishingCrates[HoldingCrate[playerid]][CrateOwner]); mysql_pquery(conn, mquery, "ProcessCrateSale", "i", playerid); return true; } GREENSIDE::ProcessCrateSale(playerid) { new weight = cache_get_field_content_int(0, "weight"), value = (weight * 3), count = cache_get_field_content_int(0, "rows"); SetPVarInt(playerid, "SellingFishWeight", weight); SetPVarInt(playerid, "SellingFishCount", count); format(sgstr, sizeof(sgstr), "Tem certeza que gostaria de vender esta caixa de pesca?\nExistem atualmente %i peixes na caixa que totaliza %ikg, avaliado em $%s.", count, weight, format_cash(value)); Dialog_Show(playerid, FishCrateSell, DIALOG_STYLE_MSGBOX, "Tem certeza?", sgstr, "Sim", "Não"); return true; } CMD:givemeafish(playerid) { if(!IsPlayerAdmin(playerid)) return true; if(FishWeight[playerid][0] != -1 && FishWeight[playerid][1] != -1 && FishWeight[playerid][2] != -1 && FishWeight[playerid][3] != -1 && FishWeight[playerid][4] != -1) return SysMsg(playerid,"You can't hold anymore fish."); OnPlayerFish(playerid, 2); return true; } stock GetFishingCrateModelID(crateid) { switch(crateid) { case 1: return 1271; //small case 2: return 3800; //medium case 3: return 3798; //large } return true; } stock GetFreeFishCrateSlot() { for(new c = 0; c < MAX_FISHCRATES; c++) { if(FishingCrates[c][CrateID] == -1) { return c; } } return true; } stock ClearFishingCrateData(crateid) { FishingCrates[crateid][CrateID] = 0; FishingCrates[crateid][FishingCrateObject] = INVALID_OBJECT_ID; FishingCrates[crateid][CrateOwner] = 0; FishingCrates[crateid][CrateType] = 0; FishingCrates[crateid][CrateVehicle] = 0; FishingCrates[crateid][CrateLocX] = 0.0; FishingCrates[crateid][CrateLocY] = 0.0; FishingCrates[crateid][CrateLocZ] = 0.0; return true; } //FINAL SISTEMA DE PESCA //==================== Fim ==================================// //Death system commands CMD:feridas(playerid, params[]) { new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /feridas [player id ou MaskID]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você deve estar perto do jogador para ver lesões."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você deve estar perto das feridas da exibição do jogador."); ShowInjuriesForPlayer(playerid, playa); return true; } CMD:helpup(playerid, params[])//ajudar levantar { if(!Logged{playerid}) return true; new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /ajudarlevantar [player id ou MaskID]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(!Dead{playa}) return SysMsg(playerid, "Este jogador não está ferido."); if(playa == playerid) return SysMsg(playerid, "Você pode não se ajudar."); if(!IsPlayerInRangeOfPoint(playerid, 5.0, PlayerPosX(playa), PlayerPosY(playa), PlayerPosZ(playa))) return SysMsg(playerid, "Você deve estar perto desse jogador para ajudá-los."); new nlwcount = 0, lwcount = 0; for(new x = 0; x < HitCount[playa]; x++) { switch(Injuries[playa][x][pWeaponID]) { case 22..34,38: lwcount ++; default: nlwcount ++; } } if(lwcount >= 1) return SysMsg(playerid, "Este jogador tem uma ferida letal. Ele(a) precisam de um tratamento médico adequado."); else { RevivePlayer(playa); SetPlayerHealthEx(playa, 50.0); SendClientMessageF(playa, COLOR_WHITE, "%s ajudou você se levantar.", NameRP(playerid)); format(gstr, sizeof(gstr),"* %s ajuda %s a ficar de pé. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } //end of death system commands //cadaver system commands CMD:cadaver(playerid, params[]) { new option[24], corpse; if(sscanf(params, "s[24]i", option, corpse)) return SysMsg(playerid, "Use: /cadaver [feridas/saco/queimar] [corpse ID]"); if(corpse < 0 || corpse > MAX_CORPSES) return SysMsg(playerid, "Cadáver inválido."); if(!CorpseData[corpse][CorpseUsed]) return SysMsg(playerid, "Cadáver inválido."); if(strmatch(option, "feridas")) { new Float:tX,Float:tY,Float:tZ; GetActorPos(CorpseData[corpse][CorpseActor],tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Você deve estar perto dos ferimentos da visão do cadáver."); ShowCorpseInjuriesToPlayer(playerid, corpse); return true; } else if(strmatch(option, "saco"))//colocar saco preto { if(Faction[playerid] == FACTION_SACFD || IsESU{playerid} || Faction[playerid] == FACTION_RESEARCH) { if(!HasBodyBag{playerid}) return SysMsg(playerid, "Você não tem um saco de corpo."); new Float:x, Float:y, Float:z; GetActorPos(CorpseData[corpse][CorpseActor], x, y, z); if(!IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) return SysMsg(playerid, "Você deve estar perto do cadáver para colocar o saco preto."); if(IsValidActor(CorpseData[corpse][CorpseActor])) DestroyActor(CorpseData[corpse][CorpseActor]); if(CorpseData[corpse][CorpseLabel] != Text3D:INVALID_3DTEXT_ID) DestroyDynamic3DTextLabel(CorpseData[corpse][CorpseLabel]); CorpseData[corpse][CorpseBag] = CreateDynamicObject(19944, CorpseData[corpse][CorpsePosX], CorpseData[corpse][CorpsePosY], CorpseData[corpse][CorpsePosZ] - 1.0, 0.0, 0.0, CorpseData[corpse][CorpseRot], CorpseData[corpse][CorpseVW]); CorpseData[corpse][CorpseActor] = INVALID_ACTOR_ID; CorpseData[corpse][CorpseLabel] = Text3D:INVALID_3DTEXT_ID; HasBodyBag{playerid} = false; RemovePlayerAttachedObject(playerid, BodyBagIndex[playerid]); BodyBagIndex[playerid] = -1; ApplyAnimation(playerid, "BOMBER","BOM_Plant",4.0,0,0,0,0,0,1); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); SendClientMessage(playerid, COLOR_BLUE, "Você colocou o cadáver no saco preto."); format(sgstr, sizeof(sgstr), "* %s coloca o cadáver dentro do saco preto, logo o fechando. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else SysMsg(playerid, "Você deve estar no SACFD ou ESU para usar este comando."); } else if(strmatch(option, "queimar")) { if(Inventory[playerid][Lighter] == 0) return SysMsg(playerid, "Você deve ter um isqueiro para queimar um cadáver."); if(Inventory[playerid][FuelCan][0] < 25) return SysMsg(playerid, "Seu combustível tem que estar com 25% de cheio."); new Float:x, Float:y, Float:z; GetActorPos(CorpseData[corpse][CorpseActor], x, y, z); if(!IsPlayerInRangeOfPoint(playerid, 5, x, y, z)) return SysMsg(playerid, "Você não está perto de um cadáver."); new fire = PlaceFire(x, y, z, 3, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid), false); SetTimerEx("DestroyCorpse", 180000, 0, "i", corpse); SetTimerEx("RemoveFire", 200000, 0, "i", fire); Inventory[playerid][Lighter] -= 1; Inventory[playerid][FuelCan][0] -= 25; format(sgstr, sizeof(sgstr), "* %s pega um galão de gasolina e joga um pouco de gasolina sobre o cadáver, logo depois acendendo um fogo e queimando o mesmo. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasLighter = %i, HasFuelCan = %i WHERE id = %i", Inventory[playerid][Lighter], Inventory[playerid][FuelCan][0], SQLID[playerid]); mysql_pquery(conn, mquery); foreach(new i: Player) { if(IsPlayerInRangeOfPoint(i, 10, x, y, z)) { Streamer_Update(i); } } return true; } else return cmd_cadaver(playerid, ""); return true; } CMD:sacopreto(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_SACFD || IsESU{playerid} || Faction[playerid] == FACTION_RESEARCH) { new option[24]; if(sscanf(params, "s[24]", option)) return SysMsg(playerid, "Use: /sacopreto [pegarc/remove/pegar]"); if(strmatch(option, "pegarc")) { if(HasBodyBag{playerid}) return SysMsg(playerid, "Você já pegou um saco preto."); new v = GetNearestVehicle(playerid), faction = IsFactionVehicle(v); if(faction > 0 && faction != Faction[playerid]) return SysMsg(playerid, "Você deve estar perto do porta-malas de um veículo de facção para usar este comando."); if(!TrunkXY(playerid, v)) return SysMsg(playerid, "Você deve estar perto do tronco de um veículo de facção para usar esse comando."); new index = GetFreePlayerObjectIndex(playerid); if(index == -1) return SysMsg(playerid, "Você já está carregando uma bolsa de corpo ou você não tem nenhum slot livre de objetos anexados."); else SetPlayerAttachedObject(playerid, index, 19944, 1, -0.060999, 0.525000, 0.000000, -86.099998, 84.099975, -3.100000, 0.685999, 0.652000, 0.780999); BodyBagIndex[playerid] = index; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); HasBodyBag{playerid} = true; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); SendClientMessage(playerid, COLOR_BLUE, "Você recebeu um saco de corpo da parte de trás do veículo."); format(sgstr, sizeof(sgstr), "* %s pega um cadáver dentro de um saco preto da parte de trás da %s. *", NameRP(playerid), GetVehicleName(v)); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strmatch(option, "remove")) { if(!HasBodyBag{playerid}) return SysMsg(playerid, "Você não tem um saco de corpo em você."); new v = GetNearestVehicle(playerid), faction = IsFactionVehicle(v); if(faction > 0 && faction != Faction[playerid]) return SysMsg(playerid, "Você deve estar perto do porta-malas de um veículo de facção para usar este comando."); if(!TrunkXY(playerid, v)) return SysMsg(playerid, "Você deve estar perto do porta-malas de um veículo de facção para usar este comando."); RemovePlayerAttachedObject(playerid, BodyBagIndex[playerid]); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); BodyBagIndex[playerid] = 0; HasBodyBag{playerid} = false; OnePlayAnim(playerid, "CARRY", "putdwn", 4,0,0,0,0,0); SendClientMessage(playerid, COLOR_BLUE, "Você colocou o saco do corpo de volta no veículo."); format(sgstr, sizeof(sgstr), "* %s coloca um saco de corpo na parte de trás da sua %s. *", NameRP(playerid), GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strmatch(option, "pegar")) { if(HasBodyBag{playerid}) return SysMsg(playerid, "Você já tem um saco de corpo em você."); new Float:x, Float:y, Float:z; for(new c = 0; c < MAX_CORPSES; c++) { GetDynamicObjectPos(CorpseData[c][CorpseBag], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 5.0, x, y, z)) { DestroyCorpse(c); new index = GetFreePlayerObjectIndex(playerid); if(index == -1) return SysMsg(playerid, "Você já está carregando uma bolsa de corpo ou você não tem nenhum slot livre de objetos anexados."); else SetPlayerAttachedObject(playerid, index, 19944, 1, -0.060999, 0.525000, 0.000000, -86.099998, 84.099975, -3.100000, 0.685999, 0.652000, 0.780999); BodyBagIndex[playerid] = index; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); HasBodyBag{playerid} = true; format(sgstr, sizeof(sgstr), "* %s o pega um cadáver que estaria dentro do saco preto no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); return true; } } SysMsg(playerid, "Você não está perto de nenhum saco de corpo."); } else return cmd_sacopreto(playerid, ""); } else SysMsg(playerid, "Você deve estar no SACFD ou um membro da ESU para usar este comando."); return true; } //end of corpse system commands //Job commands CMD:jobs(playerid, params[]) { if(!Logged{playerid}) return true; SendClientMessage(playerid,COLOR_ORANGE,"Estatísticas de trabalho:"); if(Job[playerid] > 0) { new JobName[70]; switch(Job[playerid]) { case JOB_MECHANIC: JobName = "Mecanico"; case JOB_MAINTENANCE: JobName = "Trabalhador da manutenção"; case JOB_DRUGDEALER: JobName = "Traficante de drogas"; case JOB_TAXI: JobName = "Taxista"; } SendClientMessageF(playerid,COLOR_YELLOW,"Você está trabalhando atualmente como: %s (Temporizador de spam do trabalho: %i Minutos)", JobName, JobSpamTime[playerid]); } SendClientMessageF(playerid,COLOR_YELLOW,"VARREDOR DE RUA: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", SweepStat[playerid], SweepLevel[playerid], GetAmountTillJobLevelup(2, SweepLevel[playerid], SweepStat[playerid]), SweepSpamTime[playerid]); SendClientMessageF(playerid,COLOR_YELLOW,"TRUCKER: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", TruckStat[playerid], TruckLevel[playerid], GetAmountTillJobLevelup(1, TruckLevel[playerid], TruckStat[playerid]), TruckSpamTime[playerid]); SendClientMessageF(playerid,COLOR_YELLOW,"ENTREGADOR DE PIZZA: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", DeliverStat[playerid], DeliverLevel[playerid], GetAmountTillJobLevelup(3, DeliverLevel[playerid], DeliverStat[playerid]), DeliverSpamTime[playerid]); SendClientMessageF(playerid,COLOR_YELLOW,"COALMINER: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", CoalmineStat[playerid], CoalmineLevel[playerid], GetAmountTillJobLevelup(4, CoalmineLevel[playerid], CoalmineStat[playerid]), CoalmineSpamTime[playerid]); SendClientMessageF(playerid,COLOR_YELLOW,"LIXEIRO: Tempo completado: %i, Level: %i (%i trabalhos até o nível), Temporizador de Spam: %i minutos", TrashStat[playerid], TrashLevel[playerid], GetAmountTillJobLevelup(5, TrashLevel[playerid], TrashStat[playerid]), TrashSpamTime[playerid]); return true; } CMD:jobinfo(playerid, params[]) { if(!Logged{playerid}) return true; if(IsPlayerInRangeOfPoint(playerid, 2.5, 883.109497, 2261.683105, 238.237808) || IsPlayerInRangeOfPoint(playerid, 2.5, 922.06030, 2380.831787, 246.462112) || IsPlayerInRangeOfPoint(playerid, 2.5, 758.2207,-29.9649,1008.6959) || IsPlayerInRangeOfPoint(playerid, 2.5, 1184.8542,1349.2084,999.1968) || IsPlayerInRangeOfPoint(playerid, 2.5, 1229.5603,186.1047,2091.3569)) { gstr[0] = EOS; strcat(gstr, "TRABALHOS\n"); strcat(gstr, "Mecanico\n"); strcat(gstr, "Trabalhar como um mecânico significa que você pode reparar, modificar e pintar veiculos.\n"); strcat(gstr, "Localização: Dillimore Pay N Spray\n"); strcat(gstr, "Pagamento: $300 BASE por Payday\n\n"); strcat(gstr, "Trabalhador da manutenção\n"); strcat(gstr, "Trabalhar como trabalhador de manutenção significa que você limpa as ruas, pegando lixo.\n"); strcat(gstr, "No prédio principal, você pode entrar em serviço e esvaziar sua bolsa para confirmar seu pagamento.\n"); strcat(gstr, "Seu salário depende da quantidade de lixo que você coleciona e é dada no seu dia de pagamento.\n"); strcat(gstr, "Localização: Palomino Creek Sweeper Building\n"); strcat(gstr, "Pagamento: $50 BASE por dia de pagamento +$10 por cada lixo escolhido +$50 por cada 10 camadas escolhidas ao mesmo tempo.\n\n"); strcat(gstr, "Trabalhos paralelos\n"); strcat(gstr, "Este tipo de trabalho é um trabalho único, embora possa ser repetido, para ganhar dinheiro rápido.\n"); strcat(gstr, "Motorista de ônibus - Blueberry\n"); strcat(gstr, "Mineiro de carvão - Hunter Quarry\n"); strcat(gstr, "Entrega de pizza - Montgomery\n"); strcat(gstr, "Varredor de rua - Palomino Creek\n"); strcat(gstr, "Coletor de lixo - Bone County\n"); strcat(gstr, "Trucking - Blueberry\n"); ShowMessage(playerid, "Informação de emprego", gstr, "Pronto"); } return true; } CMD:pegartrabalho(playerid, params[])//pegartrabalho// { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(PlayerLevel[playerid] < 2) return SysMsg(playerid,"Você precisa ser nível 2 para pegar trabalhos oficiais."); if(Job[playerid] > 0) return SysMsg(playerid,"Você já tem um emprego, use /deixartrabalho primeiro."); if(JobSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos para se candidatar a um novo emprego.", JobSpamTime[playerid]); if(IsPlayerInRangeOfPoint(playerid, 3.5, 723.706787, -464.991302, 16.335937)) //Mechanic Job { Job[playerid] = JOB_MECHANIC; MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players"); if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0; else JobSpamTime[playerid] = 30; SendClientMessage(playerid, COLOR_WHITE, "Seu novo trabalho é um mecânico. Para ver o que você pode fazer, use '/ajuda trabalho'."); MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players"); } if(IsPlayerInRangeOfPoint(playerid, 3.5, 2244.1768, 32.2951, 26.5016)) //Maintenance Worker Job { Job[playerid] = JOB_MAINTENANCE; MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players"); if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0; else JobSpamTime[playerid] = 30; SendClientMessage(playerid, COLOR_WHITE, "Seu novo trabalho é um trabalhador de manutenção. Para ver o que você pode fazer, use '/ajuda trabalho'."); MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players"); } if(IsPlayerInRangeOfPoint(playerid, 3.5, 196.133499, -232.079284, 1.778618)) //Drug Dealer Job { Job[playerid] = JOB_DRUGDEALER; MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players"); if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0; else JobSpamTime[playerid] = 30; SendClientMessage(playerid, COLOR_WHITE, "Seu novo emprego é um traficante. Para ver o que você pode fazer, use '/ajuda trabalho'."); MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players"); } if(IsPlayerInRangeOfPoint(playerid, 3.5, 1235.2996, 173.2005, 2091.3513) && GetPlayerVirtualWorld(playerid) == 40073) //Taxi Job { new count = 0; for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playerid] && IsSuitableTaxiCar(v)) { count++; break; } } if(count != 0) { Job[playerid] = JOB_TAXI; MySQLUpdateInt(SQLID[playerid], "Job", Job[playerid], "players"); if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0; else JobSpamTime[playerid] = 30; SendClientMessage(playerid, COLOR_WHITE, "Seu novo emprego é um taxista. Para ver o que você pode fazer, use '/ajuda trabalho'."); MySQLUpdateInt(SQLID[playerid], "JobSpamTime", JobSpamTime[playerid], "players"); } else return SysMsg(playerid, "Você deve ter um dos seguintes veículos para obter esse trabalho: Taxi, Cabbie, Moonbeam, Admiral ou Premier."); } return true; } CMD:deixartrabalho(playerid, params[])//deixartrabalho // { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Job[playerid] == 0) return SysMsg(playerid,"Você não tem nenhum trabalho para sair."); if(JobSpamTime[playerid] > 0) return SysMsgF(playerid, "Spam do trabalho: Você ainda tem %i minutos antes de sair.", JobSpamTime[playerid]); new oldJobName[40]; switch(Job[playerid]) { case JOB_MECHANIC: oldJobName = "um Mecanico"; case JOB_MAINTENANCE: oldJobName = "um Funcionário de manutenção"; case JOB_DRUGDEALER: oldJobName = "um Traficante de drogas"; case JOB_TAXI: oldJobName = "um Táxista"; } Job[playerid] = 0; if(IsDonator[playerid] >= 2) JobSpamTime[playerid] = 0; else JobSpamTime[playerid] = 30; JobDuty[playerid] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Job = 0, JobSpamTime = %i WHERE id = %i", JobSpamTime[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_WHITE, "Você saiu do trabalho, agora não é mais %s.", oldJobName); return true; } CMD:trabalho(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); new status[10], skin; if(sscanf(params, "s[4]i", status, skin)) return SysMsg(playerid,"Use: /trabalho ['on' ou 'off'] [Roupa de trabalho 1/2/3/4]"); if(Job[playerid] == JOB_MAINTENANCE) { if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2237.668945, 23.48138, 26.45635)) return SysMsg(playerid, "Você deve estar no prédio de manutenção para executar esta ação."); if(strcmp("on",status,true) == 0) { if(JobDuty[playerid] == 1) return SysMsg(playerid, "Você já está em serviço."); if(skin == 0) return SysMsg(playerid,"Use: /trabalho On [Roupas: 1, 2, 3 ou 4]"); if(skin < 1 || skin > 4) return SysMsg(playerid,"Para você trabalhar, deve estar vestido com a roupa 1, 2, 3 ou 4."); switch(skin) { case 1: SetPlayerSkinEx(playerid, 27); case 2: SetPlayerSkinEx(playerid, 16); case 3: SetPlayerSkinEx(playerid, 50); case 4: SetPlayerSkinEx(playerid, 8); } JobDuty[playerid] = 1; SendClientMessage(playerid, COLOR_BLUE, "Agora você está trabalhando com manutenções. Use /picklitter e para parar de trabalhar use (/duty off)."); return true; } else if(strcmp("off",status,true) == 0) { if(JobDuty[playerid] == 0) return SysMsg(playerid, "Você já está fora de serviço."); SetPlayerSkinEx(playerid, cPlayersSkin[playerid]); JobDuty[playerid] = 0; SendClientMessage(playerid, COLOR_BLUE, "Agora você está fora de serviço."); return true; } } if(Job[playerid] == JOB_TAXI) { if(strcmp("on",status,true) == 0) { if(JobDuty[playerid] == 1) return SysMsg(playerid, "Você já está em serviço."); new vehicleid = GetPlayerVehicleID(playerid); if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid, "Você deve estar em um veículo de táxi adequado para entrar em serviço. (Taxi, Cabbie, Premier, Moonbeam ou Admiral)"); switch(GetVehicleModel(vehicleid)) { case 445: vTaxiSign[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.915, 0.0, 0.0, 90.0); case 426: vTaxiSign[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 0.9325, 0.0, 0.0, 90.0); case 418: vTaxiSign[vehicleid] = CreateVehicleObject(19308, vehicleid, 0.0, 0.0, 1.12, 0.0, 0.0, 90.0); } MyTaxiCar[playerid] = vehicleid; JobDuty[playerid] = 1; format(gstr, sizeof(gstr),"[Cabbie Co] %s esta em serviço, ligue para 444, se você precisa de táxi.", NameEx(playerid)); SendClientMessageToAllLogged(COLOR_YELLOW,gstr); SendClientMessage(playerid, COLOR_WHITE, "Agora você então em serviço de {FBFF00}Taxista."); return true; } else if(strcmp("off",status,true) == 0) { if(JobDuty[playerid] == 0) return SysMsg(playerid, "Você não está trabalhando."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo para usar este comando."); if(!IsSuitableTaxiCar(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "Você deve estar em um veículo de táxi adequado."); new v = GetPlayerVehicleID(playerid); if(vTaxiSign[v] != INVALID_OBJECT_ID) DestroyDynamicObjectEx(vTaxiSign[v], "vTaxiSign[v]"); vTaxiSign[v] = INVALID_OBJECT_ID; MyTaxiCar[playerid] = 0; JobDuty[playerid] = 0; SendClientMessage(playerid, COLOR_WHITE, "Agora você está ofera de serviço de {FBFF00}Taxista."); return true; } } return true; } //taxi commands CMD:oferecertarifa(playerid, params[]) { if(!Logged{playerid}) return true; if(Job[playerid] == JOB_TAXI) { new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /oferecertarifa [player id ou nome]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); new vehicleid = GetPlayerVehicleID(playerid); if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid,"Você deve estar em um veículo apropriado para usar isso."); if(TaxiFareID[playerid] > -1) return SysMsg(playerid,"Você já tem uma tarifa."); if(GetPlayerVehicleID(playa) != vehicleid) return SysMsg(playerid,"Essa pessoa precisa estar no mesmo táxi que você."); if(TaxiMeter[playerid] == 1) return SysMsg(playerid,"O taxímetro deve estar desligado."); TaxiForceFare[playerid] = playa; format(gstr, sizeof(gstr),"O taxísta %s está esperando você confirmar o pedido de táxi. Use '/aceitar taxi' para confirmar, ou saia do veiculo. (O valor da viagem será de $%i)", NameEx(playerid), MyFareCharge[playerid]); SendClientMessage(playa,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Você ofereceu a %s uma corrida de táxi, ele(a) precisa aceitar primeiro.", NameEx(playa)); SendClientMessage(playerid,COLOR_WHITE,gstr); } else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso."); return true; } CMD:taximetro(playerid, params[]) { if(!Logged{playerid}) return true; if(TaxiForceFare[playerid] > -1) return SysMsg(playerid,"You cant change the fare while you have a pending customer."); if(Job[playerid] == JOB_TAXI) { new newfare = -1; if(sscanf(params, "i", newfare)) return SysMsg(playerid,"Use: /taximetro [Valor 0-25]"); if(newfare < 0 || newfare > 25) return SysMsg(playerid,"O valor deve ser entre 0 e 25."); if(newfare > MyFareCharge[playerid] && TaxiFareID[playerid] > -1) return SysMsg(playerid,"Você não pode aumentar a tarifa quando você tem um passageiro, sinta-se livre para diminuí-lo se quiser."); if(MyFareCharge[playerid] == newfare) return SysMsg(playerid,"Sua tarifa já está definida."); new oldfare = MyFareCharge[playerid]; MyFareCharge[playerid] = newfare; MySQLUpdateInt(SQLID[playerid], "FareRate", MyFareCharge[playerid], "players"); if(TaxiFareID[playerid] > -1) { format(gstr, sizeof(gstr),"O seu taxista alterou a tarifa para {4BB74C}$%i{FFFFFF}. (Anteriormente era $%i)", MyFareCharge[playerid], oldfare); SendClientMessage(TaxiFareID[playerid],COLOR_WHITE,gstr); } format(gstr, sizeof(gstr),"Sua nova tarifa será incrementada por {4BB74C}$%i{FFFFFF} a partir de agora. (Anteriormente era $%i)", MyFareCharge[playerid], oldfare); SendClientMessage(playerid,COLOR_WHITE,gstr); } else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso."); return true; } CMD:meutaximetro(playerid, params[])//meutaximetro { if(!Logged{playerid}) return true; if(Job[playerid] == JOB_TAXI) { format(gstr, sizeof(gstr),"A tarifa do taxímetro é {4BB74C}$%i", MyFareCharge[playerid]); SendClientMessage(playerid,COLOR_WHITE,gstr); } else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso."); return true; } CMD:cancelartaximetro(playerid, params[])//cancelartaximetro { if(!Logged{playerid}) return true; if(Job[playerid] == JOB_TAXI) { if(TaxiFareID[playerid] == -1) return SysMsg(playerid,"Você não tem uma tarifa para cancelar."); new playa = TaxiFareID[playerid]; TaxiFare[playa] = 0; TaxiFareID[playerid] = -1; TaxiMeter[playerid] = 0; SendClientMessage(playa, COLOR_WHITE, "O motorista cancelou sua tarifa.."); } else return SysMsg(playerid,"Você deve ser um taxista para usar este comando."); return true; } CMD:cancelartaxi(playerid, params[])//canceltaxi { if(!Logged{playerid}) return true; if(PlayerCalledTaxi[playerid] == 0) return SysMsg(playerid,"Você não chamou nenhum Táxi."); new rnd = random(5); foreach(new Taxi: Player) { if(Job[Taxi] == JOB_TAXI && JobDuty[Taxi] == 1) { SetPlayerMarkerForPlayer(Taxi, playerid, 0xFFFFFF00); switch(rnd) { case 0: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Esqueça 'sobre esse chamado, eles não querem mais um táxi'.\" ((uma chamada foi cancelada, marcador removido))"); case 1: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Vocês estão perdendo meus clientes! Pare de ler jornais e vá trabalhar!\" ((uma chamada foi cancelada, marcador removido))"); case 2: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Meu Deusm você mesmo me escuta! Quando uma chamada vem você deve ir buscalos, não ignorar!\" ((uma chamada foi cancelada, marcador removido))"); case 3: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Lá vai outro cliente pagante! Eu seria melhor fazendo isto eu mesmo.\" ((uma chamada foi cancelada, marcador removido))"); case 4: SendClientMessage(Taxi, COLOR_YELLOW, "Central Dispatcher: {FFFFFF}\"Ignore esse trabalho, eles ligaram e cancelaram.\" ((uma chamada foi cancelada, marcador removido))"); } } } PlayerCalledTaxi[playerid] = 0; TaxiFare[playerid] = 0; SendClientMessage(playerid,COLOR_YELLOW,"[Táxi cancelado] Não se esqueça que nosso número é 444 se você precisar de nós novamente!"); return true; } CMD:meteron(playerid, params[]) { if(!Logged{playerid}) return true; if(Job[playerid] == JOB_TAXI) { new vehicleid = GetPlayerVehicleID(playerid); if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid,"Você deve estar em um veículo apropriado para usar isso."); if(TaxiFareID[playerid] == -1) return SysMsg(playerid,"Seu veiculo não tem taxímetro."); if(GetPlayerVehicleID(TaxiFareID[playerid]) != vehicleid) return SysMsg(playerid,"Sua taximetro não está no seu veículo."); if(TaxiMeter[playerid] == 1) return SysMsg(playerid,"O taxímetro já está ligado."); TaxiMeter[playerid] = 1; SendClientMessage(playerid, COLOR_WHITE, "Meter is now on."); format(gstr, sizeof(gstr),"* %s liga o táximetro do veiculo %s. *", NameEx(playerid), GetVehicleName(vehicleid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso."); return true; } CMD:meteroff(playerid, params[]) { if(!Logged{playerid}) return true; if(Job[playerid] == JOB_TAXI) { new vehicleid = GetPlayerVehicleID(playerid); if(!IsSuitableTaxiCar(vehicleid)) return SysMsg(playerid,"Você deve estar em um veículo apropriado para usar isso."); if(TaxiMeter[playerid] == 0) return SysMsg(playerid,"O taxímetro do veiculo já está desligado."); TaxiMeter[playerid] = 0; SendClientMessage(playerid, COLOR_WHITE, "Taxímetro desligado."); format(gstr, sizeof(gstr),"* %s desliga o taxímetro do veiculo %s. *", NameEx(playerid), GetVehicleName(vehicleid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else return SysMsg(playerid, "Você deve ser um motorista de táxi para usar isso."); return true; } CMD:atualizarmapa(playerid, params[])//atualizarmapa { if(!Logged{playerid}) return true; if(Job[playerid] == JOB_TAXI) { new count = 0; foreach(new i: Player) { if(PlayerCalledTaxi[i] == 1 && Logged{i}) { count ++; SetPlayerMarkerForPlayer(i, playerid, COLOR_YELLOW); } } if(count == 0) return SendClientMessage(playerid, COLOR_WHITE, "Nenhum novo cliente foi adicionado ao seu mini-mapa."); SendClientMessage(playerid, COLOR_WHITE, "Seu mini-mapa foi atualizado com todos os novos clientes à espera de um táxi."); } else return SysMsg(playerid,"Você deve ser um motorista de táxi para usar isso."); return true; } CMD:limparchamado(playerid, params[]) { if(!Logged{playerid}) return true; if(Job[playerid] != JOB_TAXI) return SysMsg(playerid,"Você deve estar no RTCR para usar esse recurso."); new playa; if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /limparchamado [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(PlayerCalledTaxi[playa] == 0) return SysMsg(playerid,"Nenhum marcador para remover."); foreach(new i: Player) { if(Logged{i} && Job[i] == JOB_TAXI) { SendClientMessageF(i, COLOR_YELLOW, "(( [TAXI]: %s cancelou o pedido de taxi de %s (( Marcador foi removido ))", NameEx(playerid), NameEx(playa)); SetPlayerMarkerForPlayer(i, playa, 0xFFFFFF00); } } return true; } //mechanic commands//mecanicochamadas CMD:mecanicochamadas(playerid, params[]) { if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você precisa ser um mecanico para usar este comando."); new calls = 0; foreach(new i: Player) { if(HasActiveMechanicCall{i} && i != playerid) { sgstr[0] = EOS; strunpack(sgstr, MechanicCall[i]); SendSplitMessageF(playerid, COLOR_WHITE, "[Pedido de Mecânico]: Número de telefone: %i | Detalhes: %s", PhoneData[i][pNumber], sgstr); calls ++; } } if(calls == 0) return SysMsg(playerid, "Atualmente não existe chamada ativa."); return true; } CMD:limparchamadamecanica(playerid, params[]) { if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você precisa ser um mecanico para usar este comando."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /limparchamadamecanica [playerID ou nome]"); if(!HasActiveMechanicCall{playa}) return SysMsg(playerid, "Essa pessoa não tem uma ligação para limpar."); HasActiveMechanicCall{playa} = false; strdel(MechanicCall[playa], 0, 128); SendClientMessage(playerid, COLOR_WHITE, "Você cancelou a chamada."); return true; } CMD:oferecerpintura(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(Job[playerid] == JOB_MECHANIC) { new myVehicle = GetPlayerVehicleID(playerid); if(myVehicle == 0) return SysMsg(playerid,"Você deve estar em um veículo para oferecer isso."); if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você não deve ser o motorista para oferecer isso."); new playa = -1, color1, color2, Price; if(sscanf(params, "uiii", playa, Price, color1, color2)) return SysMsg(playerid,"Use: /oferecerpintura [ID ou nome do jogador] [preço] [cor primária] [cor secundária]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo."); new theirVehicle = GetPlayerVehicleID(playa); if(myVehicle != theirVehicle) return SysMsg(playerid,"Você deve estar no mesmo veículo que o cliente para oferecer isso."); if(GetPlayerState(playa) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"O cliente deve ser o motorista para oferecer isso."); if(AwaitingSpray[playa] == 1) return SysMsg(playerid,"Outro mecanico já fez essa oferta para um jogador."); if(Price < 0 || Price > 10000) return SysMsg(playerid,"Preço inválidp. [$0 - $10,000 somente]"); if(color1 < 0 || color1 > 255) return SysMsg(playerid,"Cor inválida 1. [0 - 255 somente]"); if(color2 < 0 || color2 > 255) return SysMsg(playerid,"Cor inválida 2. [0 - 255 somente]"); AwaitingSpray[playa] = 1; GoingToSprayVehicleID[playerid] = myVehicle; MechanicSpray[myVehicle][0] = playerid; MechanicSpray[myVehicle][1] = playa; MechanicSpray[myVehicle][2] = color1; MechanicSpray[myVehicle][3] = color2; MechanicSpray[myVehicle][4] = Price; MechanicSpray[myVehicle][5] = myVehicle; SendClientMessageF(playa, COLOR_WHITE, "O mecanico %s ofereceu pintar seu veiculo %s. Ele irá pintar %s(%i) e %s(%i) por $%i.", NameEx(playerid), GetVehicleName(myVehicle), VehicleColors[color1], color1, VehicleColors[color2], color2, Price); SendClientMessage(playa, COLOR_WHITE, "Use '/aceitar spray' para confirmar."); SendClientMessageF(playerid, COLOR_WHITE, "Você ofereceu a %s uma pintura para o veiculo %s. Você pintará %s(%i) e %s(%i) por $%i. Espere o mesmo aceitar a proposta...", NameEx(playa), GetVehicleName(myVehicle), VehicleColors[color1], color1, VehicleColors[color2], color2, Price); } return true; } CMD:respray(playerid, params[]) return cmd_spray(playerid, params); CMD:colourcar(playerid, params[]) return cmd_spray(playerid, params); CMD:colorcar(playerid, params[]) return cmd_spray(playerid, params); CMD:spray(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); new v = GetPlayerVehicleID(playerid); if(Job[playerid] == JOB_MECHANIC || IsPlayerAdmin(playerid)) { new bodyshop = -1; if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(IsPlayerInDynamicArea(playerid, GarageAreas[4])) bodyshop = 5; //airstrip if(IsPlayerInDynamicArea(playerid, GarageAreas[5])) bodyshop = 6; //bayside if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 7; //angel pine if(bodyshop == -1) return SysMsg(playerid,"Você precisa estar em uma garagem de oficina para fazer isso."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo para repinta-lo."); new color1, color2; if(sscanf(params, "iI(-1)", color1, color2)) return SysMsg(playerid,"Use: /spray [Cor primária] [Optional: Cor secundária]"); if(color1 < 0 || color1 > 255) return SysMsg(playerid,"A cor primária, deve ser entre 0 e 255"); if(color2 == -1) color2 = color1; else if(color2 < 0 || color2 > 255) return SysMsg(playerid,"A cor secundária 2, deve ser entre 0 e 255."); if(FVehicleData[v][FVFaction] > 0) { if(FVehicleData[v][FVFaction] != Faction[playerid]) return SysMsg(playerid, "Você não pode pintar veiculo que não faz parte da sua facção"); mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET Col1 = %i, Col2 = %i WHERE id = %i", color1, color2, FVehicleData[v][FVSQLID]); mysql_pquery(conn, mquery); FVehicleData[v][FVCol1] = color1; FVehicleData[v][FVCol2] = color2; ChangeVehicleColorEx(v, color1, color2); ShowInfoText(playerid,"~G~R~R~E~B~S~Y~P~P~R~W~A~G~Y",3000); SendClientMessageF(playerid, COLOR_WHITE, "Cor do veiculo de facção alterado: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2); format(gstr, sizeof(gstr),"* %s começa a repintar o veiculo %s de %s e %s. *", NameRP(playerid), GetVehicleName(v), VehicleColors[color1], VehicleColors[color2]); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else if(VehicleData[v][VehicleOwnerSQLID] > 0) { if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você não é dono deste veículo., por favor use /oferecerpintura para repintar o veículo para o proprietário."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Color1 = %i, Color2 = %i WHERE id = %i", color1, color2, VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); VehicleData[v][vColor1] = color1; VehicleData[v][vColor2] = color2; ChangeVehicleColorEx(v, color1, color2); ShowInfoText(playerid,"~G~R~R~E~B~S~Y~P~P~R~W~A~G~Y",3000); SendClientMessageF(playerid, COLOR_WHITE, "Cor do veículo alterada para: %s(%i) & %s(%i)", VehicleColors[color1], color1, VehicleColors[color2], color2); format(gstr, sizeof(gstr),"* %s começa pintar o veiculo %s de %s e %s. *", NameRP(playerid), GetVehicleName(v), VehicleColors[color1], VehicleColors[color2]); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } SysMsg(playerid, "Você só pode repintar seus próprios veículos com /spray."); } else return SysMsg(playerid, "Você deve ser um mecânico para repintar um veículos."); return true; } CMD:nitro(playerid, params[])//nitro { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você precisa ser mecanico para adicionar nitro em um veiculo."); new VehicleId = GetPlayerVehicleID(playerid); if(VehicleId == 0) return SysMsg(playerid,"Você precisa estar em um veiculo para adicionar nitros."); if(Cash[playerid] < 50) return SysMsg(playerid,"Você precisa de $50 para adicionar nitros."); if(Cash[playerid] - 50 <= 0) return SysMsg(playerid, "Você precisa de $50 para adicionar nitros."); if(IsPlayerInInvalidNosVehicle(VehicleId) != 0) return SysMsg(playerid,"Você não pode adicionar o nitros a este veículo."); if(GetVehicleComponentInSlot(VehicleId, CARMODTYPE_NITRO) != 0) return SysMsg(playerid, "Este veículo já tem nitro. Use /removemods em uma oficina de reparo para remover esta modificação."); AddVehicleComponent(VehicleId, 1010); PlayerPlaySound(playerid,SOUND_CAR_MOD,0,0,0); ShowInfoText(playerid,"~G~Nitro ~W~Adicionado~n~~r~-$50",3000); GivePlayerCash(playerid, -50); format(gstr, sizeof(gstr),"* %s adiciona uma garrafa de nitro no %s. *", NameRP(playerid), GetVehicleName(VehicleId)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(!aspawned{VehicleId}) { if(VehicleData[VehicleId][IdVehicle] == VehicleId && VehicleData[VehicleId][VehicleOwnerSQLID] > 0) { VehicleData[VehicleId][VehicleMod][CARMODTYPE_NITRO] = 1010; MySQLUpdateInt(VehicleData[VehicleId][VehSQLID], "VehicleModNos", 1010, "vehicles"); return true; } if(FVehicleData[VehicleId][FVFaction] > 0 && FVehicleData[VehicleId][FactionVehID] == VehicleId) { FVehicleData[VehicleId][FVMod][CARMODTYPE_NITRO] = 1010; MySQLUpdateInt(FVehicleData[VehicleId][FVSQLID], "FVModNos", 1010, "fveh"); return true; } } return true; } CMD:hyd(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid, "Você deve ser um mecânico para adicionar hidráulica aos veículos.."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo para adicionar hidráulica.."); new VehicleId = GetPlayerVehicleID(playerid); if(CanVehicleHaveHydraulics(VehicleId) == 0) return SysMsg(playerid,"Este veículo não pode ter hidráulica."); if(Cash[playerid] < 500) return SysMsg(playerid,"Você precisa de $500 para adicionar hidráulica."); if(GetVehicleComponentInSlot(VehicleId, CARMODTYPE_HYDRAULICS) != 0) return SysMsg(playerid, "Este veículo já tem hidráulica. Use /removemods em uma garagem de reparo para remover isso."); AddVehicleComponent(VehicleId, 1087); PlayerPlaySound(playerid,SOUND_CAR_MOD,0,0,0); ShowInfoText(playerid,"~R~hidraulica~W~ adicionada~n~~r~-$500",3000); GivePlayerCash(playerid, -500); format(gstr, sizeof(gstr),"* %s adiciona hidráulica ao %s. *", NameRP(playerid), GetVehicleName(VehicleId)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(!aspawned{VehicleId}) { new slot = GetVehicleComponentType(1087); if(VehicleData[VehicleId][IdVehicle] == VehicleId && VehicleData[VehicleId][VehicleOwnerSQLID] > 0) { VehicleData[VehicleId][VehicleMod][slot] = 1087; MySQLUpdateInt(VehicleData[VehicleId][VehSQLID], "Mod10", VehicleData[VehicleId][VehicleMod][slot], "vehicles"); return true; } if(FVehicleData[VehicleId][FVFaction] > 0 && FVehicleData[VehicleId][FactionVehID] == VehicleId) { FVehicleData[VehicleId][FVMod][slot] = 1087; MySQLUpdateInt(FVehicleData[VehicleId][FVSQLID], "FVModHyd", FVehicleData[VehicleId][FVMod][slot], "fveh"); return true; } } return true; } CMD:trocaroleo(playerid, params[]) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(Inventory[playerid][EngineOil] == 0) return SysMsg(playerid,"Você não tem nenhum óleo."); if(Job[playerid] != JOB_MECHANIC) return SysMsg(playerid,"Somente mecanicos podem trocar óleo do motor do veiculo."); if(VehID > 0) { if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Este veículo não tem um motor, portanto, não precisa de uma mudança de óleo."); if(GetVehicleSpeed(VehID, 0) > 0) return SysMsg(playerid,"Por favor, reduza sua velocidade para 0."); if(VehicleBoots[VehID][0] == 0) return SysMsg(playerid,"Você precisa abrir o /capo do veiculo."); if(EngineStatus[VehID] == 1) return SysMsg(playerid,"O motor deve estar desligado para mudar o óleo."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(InCarCharging[playerid] > 0) return SysMsg(playerid,"Por favor, aguarde até que o seu celular esteja carregado completo completamente."); new Float:bonnety, Float:vx, Float:vy, Float:vz, Float:va; GetVehicleEnginePos(GetVehicleModel(VehID), bonnety); if(bonnety == 0 || IsBike(VehID) || IsHelicopter(VehID) || IsPlane(VehID) || IsBoat(VehID)) { Inventory[playerid][EngineOil] = 0; MySQLUpdateInt(SQLID[playerid], "HasEngineOil", Inventory[playerid][EngineOil], "players"); VehicleData[VehID][LastOilMileage] = VehicleData[VehID][Mileage]; MySQLUpdateFloat(VehicleData[VehID][VehSQLID], "LastOilMileage", VehicleData[VehID][LastOilMileage], "vehicles"); ToggleVehicleBonnet(VehID, 0); VehicleBoots[VehID][0] = 0; SendClientMessage(playerid, COLOR_WHITE, "(( OOC a mudança de óleo> Este veículo não suporta mudanças de óleo interactivas. O óleo foi substituído. ))"); } else { RemovePlayerFromVehicle(playerid); SetPlayerAttachedObject(playerid, HOLD_OBJECT_MISC, 2062, 6, 0.05, 0.05, 0.0, 0.0, 0.0, 0.0, 0.15, 0.15, 0.15); GetVehiclePos(VehID, vx, vy, vz); GetVehicleZAngle(VehID, va); new Float:dist = DistanceBetweenPoints(vx, vy, vz, vx, bonnety+vy, vz); vx += (dist * floatsin(-va, degrees)); vy += (dist * floatcos(-va, degrees)); ChangeOilPos[playerid][0] = vx; ChangeOilPos[playerid][1] = vy; ChangeOilPos[playerid][2] = vz; ChangeOilVehID[playerid] = VehID; SetPlayerCheckpointEx(playerid, vx, vy, vz, 1.0); SendClientMessage(playerid, COLOR_WHITE, "> Continue perto do {FF0000}motor{FFFFFF} e use /trocaroleo para trocar o óleo do veiculo."); } } else { if(ChangeOilPos[playerid][0] == 0) return SysMsg(playerid,"Você não está mudando nenhum óleo."); if(ChangeOilVehID[playerid] == 0) return SysMsg(playerid,"Você não está mudando de óleo."); if(!IsPlayerInRangeOfPoint(playerid, 1.5, ChangeOilPos[playerid][0], ChangeOilPos[playerid][1], ChangeOilPos[playerid][2])) return SysMsg(playerid,"Você deve estar perto do motor para mudar o óleo."); TogglePlayerControllable(playerid, 0); SetPlayerToFacePoint(playerid, ChangeOilPos[playerid][0], ChangeOilPos[playerid][1]); OnePlayAnim(playerid, "BD_FIRE", "wash_up", 4.0, 1, 0, 0, 0, 0); SetTimerEx("FinishOilChange", 10000, 0, "dd", playerid, ChangeOilVehID[playerid]); format(gstr, sizeof(gstr),"* %s começa a mudar o olho do veiculo %s. *",NameRP(playerid),GetVehicleName(ChangeOilVehID[playerid])); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); Inventory[playerid][EngineOil] = 0; MySQLUpdateInt(SQLID[playerid], "HasEngineOil", Inventory[playerid][EngineOil], "players"); } return true; } //maintenance worker commands //revisar trabalho CMD:picklitter(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(Job[playerid] != JOB_MAINTENANCE) return SysMsg(playerid,"Somente os Trabalhadores de Manutenção podem realizar esta ação."); if(JobDuty[playerid] == 0) return SysMsg(playerid,"Você deve estar no dever do trabalho para executar esta ação."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veículo."); for(new i = 0; i < MAX_LITTER; i++) { if(LitterPlaced[i] > 0) { new Float:litterpos[3]; GetDynamicObjectPos(LitterPlaced[i], litterpos[0], litterpos[1], litterpos[2]); if(IsPlayerInRangeOfPoint(playerid, 3.0, litterpos[0], litterpos[1], litterpos[2])) { new curpay, litters; MySQLFetchInt(SQLID[playerid], "Litters", litters, "players"); if(litters > 30) return SysMsg(playerid, "O seu saco está cheio, leve-o para o QG e esvazie-o."); OnePlayAnim(playerid, "KNIFE", "knife_4", 2.0, 0, 0, 0, 0, 0); DestroyDynamicObjectEx(LitterPlaced[i], "LitterPlaced[i]"); LitterPlaced[i] = 0; gLitterCount --; litters ++; MySQLUpdateInt(SQLID[playerid], "Litters", litters, "players"); curpay = litters * 10; format(gstr, sizeof(gstr),"* %s usa uma lixeira para colocar algum lixo em uma bolsa. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"Litter Picked! +$10 adicionado ao seu sub-Pay. Você pode coletar este pagamento de $%i a qualquer momento ou continuar a trabalhar.", curpay); SendClientMessage(playerid, COLOR_WHITE, gstr); new bonus, tmp_litter = litters; if(tmp_litter >= 10) { do { tmp_litter -= 10; bonus ++; } while (tmp_litter >= 10); } bonus *= 100; format(gstr, sizeof(gstr),"Current litter bag: %i x Litter, meaning you could get a bonus of $%i for emptying now.", litters, bonus); SendClientMessage(playerid, COLOR_WHITE, gstr); return true; } } } SysMsg(playerid,"You are not near any litter."); return true; } CMD:checklitterbag(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(Job[playerid] != JOB_MAINTENANCE) return SysMsg(playerid,"Only Maintenance Workers can perform this action."); if(JobDuty[playerid] == 0) return SysMsg(playerid,"You must be on job duty to perform this action."); new curpay, litters; MySQLFetchInt(SQLID[playerid], "Litters", litters, "players"); curpay = litters * 10; new bonus, tmp_litter = litters; if(tmp_litter >= 10) { do { tmp_litter -= 10; bonus ++; } while(tmp_litter >= 10); } bonus *= 100; format(gstr, sizeof(gstr),"Current litter bag has %i x Litter. Meaning $%i pay and a bonus of $%i for emptying now.", litters, curpay, bonus); SendClientMessage(playerid, COLOR_WHITE, gstr); return true; } CMD:emptylitterbag(playerid, params[])//REVISAR { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(Job[playerid] != JOB_MAINTENANCE) return SysMsg(playerid,"Somente os trabalhadores de manutenção podem executar esta ação."); if(JobDuty[playerid] == 0) return SysMsg(playerid,"Você deve estar no dever de trabalho para executar esta ação."); if(!IsPlayerInRangeOfPoint(playerid, 3.0, 2237.668945, 23.48138, 26.45635)) return SysMsg(playerid,"Você deve estar no edifício de manutenção para executar esta ação."); new curpay, litters, count; MySQLFetchInt(SQLID[playerid], "Litters", litters, "players"); if(litters == 0) return SysMsg(playerid, "You have no litter to empty."); curpay = litters * 10; count = litters; new bonus; if(litters >= 10) { do { litters -= 10; bonus ++; } while(litters >= 10); } bonus *= 100; new totalpay = curpay + bonus; MySQLUpdateInt(SQLID[playerid], "Litters", 0, "players");//revisar GivePlayerCash(playerid, totalpay); SendClientMessageF(playerid, COLOR_WHITE, "[Trabalhador da manutenção] Litter: %i, Pagamento Base ($10 per litter): $%i, Bonus ($100 per 10 litter): $%i [TOTAL PAY: $%i]", count, curpay, bonus, totalpay); if(count >= 10) UnlockAchievement(playerid, 38); return true; } //end of job commands //Phone commands CMD:p(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(IsPhoneRinging[playerid] == -1) return SysMsg(playerid,"Não há ninguém na linha."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid, "Seu celular está desligado, então você não pode atender a chamada."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está no telefone."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado."); if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(AttachedObjects[playerid][6][aoModelID] != 0) { RemovePlayerAttachedObject(playerid, 6); } AttachedObjects[playerid][6][aoModelID] = 330; AttachedObjects[playerid][6][aoBone] = 6; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); SetPlayerAttachedObject(playerid, 6, 330, 6); } CallerID[playerid] = IsPhoneRinging[playerid]; IsPhoneRinging[playerid] = -1; if(UsingPayPhone[CallerID[playerid]] == 0) LastNumber[playerid] = PhoneData[CallerID[playerid]][pNumber]; SendClientMessage(playerid, COLOR_GREY, "Você pegou seu celular."); SendClientMessage(CallerID[playerid], COLOR_GREY, "Atenderam a chamada..."); format(gstr, sizeof(gstr),"* %s pega seu celular do bolso e atende a chamada... *",NameRP(playerid)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000); return true; } CMD:pickup(playerid, params[]) return cmd_p(playerid, params); CMD:finalizar(playerid)//finalizar { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(!UsingPayPhone[playerid] && PhoneData[playerid][pPower] == 0) return SysMsg(playerid, "Seu telefone está desligado."); if(Inventory[playerid][MobilePhone] == 0 && UsingPayPhone[playerid] == 0) return SysMsg(playerid,"Você não está usando um telefone."); if(CallerID[playerid] != -1 || IsPhoneRinging[playerid] != -1) { new playa = CallerID[playerid]; if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USECELLPHONE) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); AttachedObjects[playerid][6][aoModelID] = 0; AttachedObjects[playerid][6][aoBone] = 0; RemovePlayerAttachedObject(playerid, 6); } if(GetPlayerSpecialAction(playa) == SPECIAL_ACTION_USECELLPHONE) { SetPlayerSpecialAction(playa, SPECIAL_ACTION_STOPUSECELLPHONE); AttachedObjects[playa][6][aoModelID] = 0; AttachedObjects[playa][6][aoBone] = 0; RemovePlayerAttachedObject(playa, 6); } if(UsingPayPhone[playerid] > 0) { PayPhoneInUse[UsingPayPhone[playerid]-1] = 0; UsingPayPhone[playerid] = 0; TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); SendClientMessage(playerid,COLOR_GREY,"[Telefone público] {87CEFF}Você finalizou a chamada."); format(sgstr, sizeof(sgstr),"* %s coloca o telefone no gancho novamente. *",NameRP(playerid)); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { SendClientMessage(playa, COLOR_GREY, "[Celular] {87CEFF}Eles desligaram a linha, a ligação caiu."); SendClientMessage(playerid, COLOR_GREY, "[Celular] {87CEFF}Você finalizou a chamada."); format(sgstr, sizeof(sgstr),"* %s finaliza a chamada. *",NameRP(playerid)); SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 6000); } if(UsingPayPhone[playa] > 0) { PayPhoneInUse[UsingPayPhone[playa]-1] = 0; UsingPayPhone[playa] = 0; TogglePlayerControllable(playa, 1); SetCameraBehindPlayer(playa); SendClientMessage(playa,COLOR_GREY,"[Telefone público] {87CEFF}Você finalizou a chamada."); format(sgstr, sizeof(sgstr),"* %s coloca o telefone no gancho novamente. *",NameRP(playa)); ProxDetector(15.0,playa,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { format(sgstr, sizeof(sgstr),"* %s finaliza a chamada. *",NameRP(playa)); SetPlayerChatBubble(playa, sgstr, COLOR_EMOTE, 15.0, 6000); } MobileSpeaker[playerid] = 0; CallerID[playerid] = -1; CallerID[playa] = -1; IsPhoneRinging[playerid] = -1; IsPhoneRinging[playa] = -1; return true; } if(CallerService[playerid] != -1) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USECELLPHONE) { SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); AttachedObjects[playerid][6][aoModelID] = 0; AttachedObjects[playerid][6][aoBone] = 0; RemovePlayerAttachedObject(playerid, 6); } SendClientMessage(playerid,COLOR_GREY,"[Celular] {87CEFF}Você finalizou a chamada."); format(sgstr, sizeof(sgstr),"* %s finaliza a chamada de seu celular. *",NameRP(playerid)); SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 6000); CallerService[playerid] = -1; return true; } SysMsg(playerid, "Seu celular não está tocando no momento."); return true; } CMD:cf(playerid) return cmd_finalizar(playerid); CMD:retornarchamada(playerid, params[])//retornarchamada { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular está desligado."); if(LastNumber[playerid] == -1) return SysMsg(playerid,"Você não tem um número para ligar de volta."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado."); new numberstr[12]; format(numberstr, 12, "%i", LastNumber[playerid]); cmd_chamar(playerid, numberstr); return true; } CMD:chamar(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular está desligado."); if(!HasPhoneSignal(playerid)) return SysMsg(playerid,"Sem serviço."); if(UsingPayPhone[playerid] > 0) return SysMsg(playerid,"Você já está no telefone."); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu celular foi confiscado e seria devolvido após a sua libertação."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado."); new callnumber = -1; if(isnull(params)) return SysMsg(playerid,"Use: /chamar [número ou nome do contato] (ou /discar)") && SysMsg(playerid,"Números úteis") && SysMsg(playerid,"Linha de emergência - 911") && SysMsg(playerid,"SANews - 726") && SysMsg(playerid,"Taxi Co. - 444") && SysMsg(playerid,"Elite Trucking - 927") && SysMsg(playerid, "Mecânico - 118"); if(IsNumeric(params)) callnumber = strval(params); else { for(new i = 0; i < MAX_PHONECONTACTS; i++) { if(PhoneContacts[playerid][i][cID] != 0 && !isnull(PhoneContacts[playerid][i][ContactName])) { if(strcmp(params, PhoneContacts[playerid][i][ContactName], true) == 0) { callnumber = PhoneContacts[playerid][i][ContactNumber]; break; } } } if(callnumber == -1) return SysMsg(playerid, "Esse nome não foi encontrado na lista de contatos."); } ProcessPhoneCall(playerid, callnumber); return true; } CMD:discar(playerid, params[]) return cmd_chamar(playerid, params);//discar CMD:contatos(playerid)//contatos { if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid, "Seu celular está desligado."); gstr[0] = EOS; new ccount = GetContactsCount(playerid); if(ccount > 0) strcat(gstr, "Ver todos os contatos\n"); if(ccount < GetMaxContactLimitForPlayer(playerid)) strcat(gstr, "Criar um contato\n"); if(ccount > 0) strcat(gstr, "Deleta um contato\nEditar um contato\n"); Dialog_Show(playerid, ContactsMenu, DIALOG_STYLE_LIST, "Menu de contatos", gstr, "Selecionar", "Cancelar"); return true; } CMD:celular(playerid) { if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro."); if(UsingPayPhone[playerid] > 0) return SysMsg(playerid,"Por favor, termine de usar o telefone público antes de usar seu celular."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu celular se estiver na água."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado."); DisplayPhoneMenu(playerid); format(gstr, sizeof(gstr),"* %s pega seu celular do bolso e pressiona alguns botões.. *", NameRP(playerid)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000); return true; } CMD:telefonepublico(playerid, params[])//telefonepublico { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. atenda primeiro."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"De pé!"); if(UsingPayPhone[playerid] == 1) return SysMsg(playerid, "Você está usando um telefone público."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado."); new NumberCalled; if(sscanf(params, "i", NumberCalled)) return SysMsg(playerid,"Use: /telefonepublico [number]"); if(NumberCalled < 1 || NumberCalled > 9999999) return SysMsg(playerid,"Número de rede inválido."); if(NumberCalled == PhoneData[playerid][pNumber]) return SysMsg(playerid,"Você não pode ligar para o seu próprio telefone."); if(!PlayerImprisoned{playerid}) { if(Cash[playerid] < 5 && NumberCalled != 911) return SysMsg(playerid,"You need $5 to make a call."); } if(IsPlayerInRangeOfPoint(playerid, 2.0, 256.7420349121, -81.5554428101, 1.2701275349)) // bb liquor { if(PayPhoneInUse[0] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 251.1188, -77.4623, 2.7296); SetPlayerCameraLookAt(playerid, 260.9838, -78.8487, 1.8581); PayPhoneInUse[0] = 1; UsingPayPhone[playerid] = 1; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 273.56250, -171.4013671875, 1.9214571714)) // bb gym { if(PayPhoneInUse[1] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 291.4234, -175.0688, 4.9296); SetPlayerCameraLookAt(playerid, 281.4782, -174.0235, 3.7109); PayPhoneInUse[1] = 1; UsingPayPhone[playerid] = 2; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1279.6098632813, 263.5825500488, 19.9056930542)) // mont central { if(PayPhoneInUse[2] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 1268.5700, 259.6120, 26.0062); SetPlayerCameraLookAt(playerid, 1277.8419, 259.6120, 22.2601); PayPhoneInUse[2] = 1; UsingPayPhone[playerid] = 3; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1226.0195312500, 330.1572265625, 19.9056930542)) // mont hospital { if(PayPhoneInUse[3] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 1223.7540, 344.2998, 25.0116); SetPlayerCameraLookAt(playerid, 1228.1376, 335.3118, 21.7559); PayPhoneInUse[3] = 1; UsingPayPhone[playerid] = 4; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2270.9658203125, 50.8583984375, 26.1763782501)) // palomino general store { if(PayPhoneInUse[4] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 2262.6542, 46.6263, 32.2843); SetPlayerCameraLookAt(playerid, 2271.7558, 48.3955, 28.5383); PayPhoneInUse[4] = 1; UsingPayPhone[playerid] = 5; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2275.0713, -76.8855, 26.5763)) // palomino library { if(PayPhoneInUse[5] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 2259.4619, -88.2675, 28.9991); SetPlayerCameraLookAt(playerid, 2265.8898, -80.6071, 28.9991); PayPhoneInUse[5] = 1; UsingPayPhone[playerid] = 6; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2334.2177734375, -5.5068359375, 26.1764545441)) // palomino cafe { if(PayPhoneInUse[6] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 2346.5444, 1.2500, 34.0843); SetPlayerCameraLookAt(playerid, 2337.9726, 1.2500, 28.9339); PayPhoneInUse[6] = 1; UsingPayPhone[playerid] = 7; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -155.2096405029, 1208.0728759766, 19.4341907501)) // fort c. king ring { if(PayPhoneInUse[7] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, -135.0444, 1232.8094, 34.4937); SetPlayerCameraLookAt(playerid, -141.9910, 1225.6160, 29.1945); PayPhoneInUse[7] = 1; UsingPayPhone[playerid] = 8; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -205.1318359375, 1128.0488281250, 19.4341907501)) // FC mayor house { if(PayPhoneInUse[8] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, -184.6137, 1126.4040, 24.6929); SetPlayerCameraLookAt(playerid, -194.4891, 1126.2316, 23.1285); PayPhoneInUse[8] = 1; UsingPayPhone[playerid] = 9; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -13.1679687500, 1183.0556640625, 19.7134227753)) // FC beef grill { if(PayPhoneInUse[9] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, -38.0793, 1187.0872, 21.5520); SetPlayerCameraLookAt(playerid, -28.0930, 1186.5639, 22.2496); PayPhoneInUse[9] = 1; UsingPayPhone[playerid] = 10; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1349.6008,232.3512,19.5547)) // mont pizza { if(PayPhoneInUse[10] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 1344.4250,233.1461,21.5547); SetPlayerCameraLookAt(playerid, 1349.6008,232.3512,19.5547); PayPhoneInUse[10] = 1; UsingPayPhone[playerid] = 11; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 711.5770263672, -475.6603393555, 16.0279407501)) // dill paynspray { if(PayPhoneInUse[11] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 705.6245, -482.0432, 21.1359); SetPlayerCameraLookAt(playerid, 712.8022, -475.8037, 18.0457); PayPhoneInUse[11] = 1; UsingPayPhone[playerid] = 12; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 2154.1416, 66.5370, 26.9873)) // palomino bridge { if(PayPhoneInUse[12] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 2151.7534, 64.0967, 28.8964); SetPlayerCameraLookAt(playerid, 2154.1416, 66.5370, 26.9873); PayPhoneInUse[12] = 1; UsingPayPhone[playerid] = 13; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 1256.3623046875, 147.20568847656, 20.088111877441)) // mont driving school { if(PayPhoneInUse[13] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 1248.2823, 152.7991, 24.2069); SetPlayerCameraLookAt(playerid, 1254.1035, 145.3483, 20.9513); PayPhoneInUse[13] = 1; UsingPayPhone[playerid] = 14; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, 673.415954, -589.050598, 16.335937)) // dill south { if(PayPhoneInUse[14] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); SetPlayerCameraPos(playerid, 676.0861, -580.8543, 18.0359); SetPlayerCameraLookAt(playerid, 676.0861, -590.8543, 18.0359); PayPhoneInUse[14] = 1; UsingPayPhone[playerid] = 15; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2097.108642, -2331.721191, 30.625)) // angel pine { if(PayPhoneInUse[15] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[15] = 1; UsingPayPhone[playerid] = 16; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2171.307861, -2353.388427, 30.625)) // angel pine { if(PayPhoneInUse[16] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[16] = 1; UsingPayPhone[playerid] = 17; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2197.533203, -2418.167968, 30.625)) // angel pine { if(PayPhoneInUse[17] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[17] = 1; UsingPayPhone[playerid] = 18; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2177.902099, -2436.297363, 30.625)) // angel pine { if(PayPhoneInUse[18] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[18] = 1; UsingPayPhone[playerid] = 19; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2128.440673, -2446.063720, 30.174999)) // angel pine { if(PayPhoneInUse[20] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[20] = 1; UsingPayPhone[playerid] = 21; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2093.919189, -2477.046875, 30.174999)) // angel pine { if(PayPhoneInUse[21] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[21] = 1; UsingPayPhone[playerid] = 22; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -1572.513427, -2725.353515, 48.293457)) // angel pine { if(PayPhoneInUse[22] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[22] = 1; UsingPayPhone[playerid] = 23; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2451.410156, 2321.001464, 4.073258)) // bayside { if(PayPhoneInUse[23] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[23] = 1; UsingPayPhone[playerid] = 24; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2553.039062, 2320.415527, 5.056630)) // bayside { if(PayPhoneInUse[24] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[24] = 1; UsingPayPhone[playerid] = 25; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -2550.275390, 2320.460449, 5.060738)) // bayside { if(PayPhoneInUse[25] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[25] = 1; UsingPayPhone[playerid] = 26; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 4.0, -673.593444, 2179.334960, 3836.8)) // prison { if(PayPhoneInUse[26] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[26] = 1; UsingPayPhone[playerid] = 27; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 4.0, 1034.3674, -1115.4692, 2025.2595)) // st hideout { if(PayPhoneInUse[27] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[27] = 1; UsingPayPhone[playerid] = 28; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 4.0, 1236.6080, 184.4952, 2091.3687)) // info center { if(PayPhoneInUse[28] == 1) return SysMsg(playerid, "Esse telefone já está sendo usado."); PayPhoneInUse[28] = 1; UsingPayPhone[playerid] = 29; SetCameraBehindPlayer(playerid); } else if(IsPlayerInRangeOfPoint(playerid, 4.0, -801.9138, -1912.3365, 7.0407)) //camp bob payphone { if(PayPhoneInUse[29] == 1) return SysMsg(playerid, "O telefone público já está em uso."); PayPhoneInUse[29] = 1; UsingPayPhone[playerid] = 30; SetCameraBehindPlayer(playerid); } if(UsingPayPhone[playerid] == 0) return SysMsg(playerid, "Você não está perto de qualquer telefone público."); format(gstr, sizeof(gstr),"* %s pega o telefone público e disca alguns números... *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); TogglePlayerControllable(playerid, 0); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); if(AttachedObjects[playerid][6][aoModelID] != 0) { RemovePlayerAttachedObject(playerid, 6); } AttachedObjects[playerid][6][aoModelID] = 330; AttachedObjects[playerid][6][aoBone] = 6; SetPlayerAttachedObject(playerid, 6, 330, 6); if(NumberCalled == 444) //Cabbie Company { Dialog_Show(playerid, TaxiMenu, DIALOG_STYLE_LIST, "Cabbie Co - Selecione o serviço que você precisa", "Taxi", "Selecionar", "Desligar"); CallerService[playerid] = 444; return true; } if(NumberCalled == 911) //Police & EMS { SendClientMessage(playerid, COLOR_WHITE, "Você ligou para a central de emergência de San Andreas. Você precisa de Polícia, Fire ou EMS?"); CallerService[playerid] = 911; return true; } if(NumberCalled == 927) //Elite Trucking { new truckers = 0; foreach(new i: Player) { if(Logged{i} && Faction[i] == FACTION_TRUCKING) { truckers++; } } if(truckers == 0) { SysMsg(playerid, "'Você ligou para Elite Trucking, nosso serviço de ajuda está indisponível no momento. Por favor, ligue de volta mais tarde..'"); TogglePlayerControllable(playerid, 1); PayPhoneInUse[UsingPayPhone[playerid]-1] = 0; UsingPayPhone[playerid] = 0; SetCameraBehindPlayer(playerid); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); AttachedObjects[playerid][6][aoModelID] = 0; AttachedObjects[playerid][6][aoBone] = 0; RemovePlayerAttachedObject(playerid, 6); return true; } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(AttachedObjects[playerid][6][aoModelID] != 0) { RemovePlayerAttachedObject(playerid, 6); } AttachedObjects[playerid][6][aoModelID] = 330; AttachedObjects[playerid][6][aoBone] = 6; SetPlayerAttachedObject(playerid, 6, 330, 6); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); } SendClientMessage(playerid, COLOR_WHITE, "Você está na linha direta Elite Trucking, como podemos ajudá-lo hoje?"); CallerService[playerid] = 927; return true; } if(NumberCalled == 118) //Mechanic { new mechanics = 0; foreach(new i: Player) { if(Logged{i} && Job[i] == JOB_MECHANIC) { mechanics++; } } if(mechanics == 0) return SysMsg(playerid, "'Olá, nós Lamentamos informá-lo que não há atualmente nenhum mecânico em serviço. Por favor, tente novamente mais tarde.'"); if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(AttachedObjects[playerid][6][aoModelID] != 0) { RemovePlayerAttachedObject(playerid, 6); } AttachedObjects[playerid][6][aoModelID] = 330; AttachedObjects[playerid][6][aoBone] = 6; SetPlayerAttachedObject(playerid, 6, 330, 6); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE); } SendClientMessage(playerid, COLOR_WHITE, "'Você ligou para o serviço de mecânico de San Andreas, como podemos ajudá-lo hoje?"); CallerService[playerid] = 118; return true; } foreach(new i: Player) { if(Logged{i}) { if(PhoneData[i][pNumber] == NumberCalled && CallerID[i] == -1 && IsPhoneRinging[i] == -1 && PhoneData[i][pPower] == 1 && Inventory[i][MobilePhone] == 1) { SetPlayerChatBubble(i, " Phone rings *", COLOR_EMOTE, 15.0, 6000); SendClientMessageF(i, COLOR_GREY, "Seu celular está tocando (Número = %i)... Use '/pickup' ou '/p' para atender.", 1000 + UsingPayPhone[playerid]); SendClientMessageF(playerid, COLOR_GREY, "Você está chamando o número %i... Use '/finalizar' ou '/h' para cancelar.", NumberCalled); if(!PlayerImprisoned{playerid}) GivePlayerCash(playerid, -5); CallerID[playerid] = i; IsPhoneRinging[i] = playerid; MobileSpeaker[playerid] = 0; return true; } } } SysMsg(playerid,"Operadora: \"Esse número é inválido ou esta ocupado.\""); TogglePlayerControllable(playerid, 1); PayPhoneInUse[UsingPayPhone[playerid]-1] = 0; UsingPayPhone[playerid] = 0; SetCameraBehindPlayer(playerid); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE); AttachedObjects[playerid][6][aoModelID] = 0; AttachedObjects[playerid][6][aoBone] = 0; RemovePlayerAttachedObject(playerid, 6); return true; } CMD:celularon(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(PhoneData[playerid][pPower] == 1) return SysMsg(playerid,"Seu celular já está ligado."); if(PhoneData[playerid][pBattery] == 0) return SysMsg(playerid,"Seu celular está sem bateria."); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu celular foi confiscado e será devolvido após a sua libertação."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar o celular enquanto estiver algemado.."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o celular enquanto estiver algemado."); PhoneData[playerid][pPower] = 1; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePower = 1 WHERE id = %i", PhoneData[playerid][pID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s pressiona um botão para ligar o celular. *", NameRP(playerid)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000); SendClientMessage(playerid, COLOR_WHITE, "Seu celular está ligado agora."); return true; } CMD:celularoff(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular já está desligado."); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu celular foi confiscado e será devolvido após o seu lançamento."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu celular enquanto está algemado."); if(IsPhoneRinging[playerid] >= 0) return SysMsg(playerid,"Seu celular está tocando. Responda primeiro."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você já está usando seu celular. /finalizar primeiro."); PhoneData[playerid][pPower] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePower = 0 WHERE id = %i", PhoneData[playerid][pID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s preciona um botão e desliga seu celular. *", NameRP(playerid)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000); SendClientMessage(playerid, COLOR_WHITE, "Seu celular está desligado agora."); return true; } CMD:coff(playerid) return cmd_celularoff(playerid);//coff CMD:con(playerid) return cmd_celularon(playerid);//con CMD:ccarregar(playerid, params[])//carregar celular /ccarregar { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(PhoneData[playerid][pBattery] >= 99) return SysMsg(playerid,"Seu celular já está bateria cheia."); new vid = GetPlayerVehicleID(playerid); if(vid > 0 && Inventory[playerid][CarAdapter] == 1) { if(InCarCharging[playerid] == 1) return SysMsg(playerid, "Você não pode recarregar seu celular se já está sendo recarregado."); if(VehicleData[vid][VehicleOwnerSQLID] == SQLID[playerid]) { if(IsPlane(vid) || IsBoat(vid) || IsBike(vid) || IsPushBike(vid)) return SysMsg(playerid,"Você não pode recarregar um celular neste veículo."); if(PhoneData[playerid][pBattery] <= 98) { InCarCharging[playerid] = 1; PhoneData[playerid][pBattery] = floatadd(PhoneData[playerid][pBattery], 1); format(gstr, sizeof(gstr),"* %s começa a recarregar o telefone dentro do carro. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "O seu celular está a carregar, aguarde. Saia do veículo para parar de carregar."); } else { PhoneData[playerid][pBattery] = 100; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s recarrega o celular dentro do carro. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "Seu celular agora está totalmente recarregado."); } return true; } new faction = IsFactionVehicle(vid); if(faction > 0 && Faction[playerid] == faction) { if(PhoneData[playerid][pBattery] <= 98) { InCarCharging[playerid] = 1; PhoneData[playerid][pBattery] = floatadd(PhoneData[playerid][pBattery], 1); format(gstr, sizeof(gstr),"* %s começa carregar seu celular dentro do %s. *", NameRP(playerid),GetVehicleName(vid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "O seu celular está a carregar, aguarde. Saia do veículo para parar de carregar."); } else { PhoneData[playerid][pBattery] = 100; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s recarrega seu celular dentro do %s. *", NameRP(playerid),GetVehicleName(vid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "Seu telefone agora está completamente recarregado."); } return true; } } if(IsInHouseID[playerid] != -1) { if(HouseData[IsInHouseID[playerid]][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuestSQL(playerid) == HouseData[IsInHouseID[playerid]][HouseSQLID]) { PhoneData[playerid][pBattery] = 100; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s recarrega seu telefone dentro de sua casa. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "Seu telefone agora está totalmente recarregado."); return true; } } if(IsPlayerInRangeOfPoint(playerid, 5.0, -2236.320312, 130.603515, 1035.41406)) { PhoneData[playerid][pBattery] = 100; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET Battery = %i WHERE id = %i", floatround(PhoneData[playerid][pBattery]), PhoneData[playerid][pID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s recarrega seu telefone usando o ponto de recarga público na loja. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "Seu celular agora está totalmente carregado."); return true; } SysMsg(playerid,"Você deve estar em uma loja eletrônica, sua casa ou um veículo próprio para recarregar um celular."); return true; } CMD:enviarsms(playerid, params[])//sms { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu telefone está desligado. Ligue-o para enviar mensagens de texto."); if(!HasPhoneSignal(playerid)) return SysMsg(playerid,"Sem serviço."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu telefone celular enquanto estiver na água."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu telefone enquanto está algemado."); new numberOrName[24], TextMsg[170], actualNumber; if(sscanf(params, "s[24]s[170]", numberOrName, TextMsg)) return SysMsg(playerid,"Use: /sms [número de telefone ou nome do contato] [mensagem]"); if(IsNumeric(numberOrName)) actualNumber = strval(numberOrName); else { for(new i = 0; i < MAX_PHONECONTACTS; i++) { if(PhoneContacts[playerid][i][cID] > 0 && !isnull(PhoneContacts[playerid][i][ContactName])) { if(strcmp(numberOrName, PhoneContacts[playerid][i][ContactName], true) == 0) { actualNumber = PhoneContacts[playerid][i][ContactNumber]; break; } } } if(actualNumber <= 0) return SysMsg(playerid, "Esse nome não foi encontrado em sua lista de contatos."); } ProcessTextMessage(playerid, actualNumber, TextMsg); return true; } CMD:sms(playerid, params[]) return cmd_respondersms(playerid, params); CMD:respondersms(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um telefone móvel."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu telefone está desligado. Ligue-o para enviar mensagens de texto."); if(!HasPhoneSignal(playerid)) return SysMsg(playerid,"Sem Serviço."); if(LastSMSNumber[playerid] == 0) return SysMsg(playerid,"Ninguém lhe enviou uma mensagem que você possa responder rapidamente."); if(IsPlayerInWater(playerid)) return SysMsg(playerid,"Você não pode usar seu telefone celular enquanto estiver na água."); if(isnull(params)) return SysMsg(playerid,"Use: /resms [mensagem] *Enviará para a última pessoa que lhe enviou uma mensagem*"); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu telefone enquanto está algemado."); ProcessTextMessage(playerid, LastSMSNumber[playerid], params); return true; } CMD:resms(playerid, params[]) return cmd_respondersms(playerid, params);//resms CMD:celularmostrar(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid, "Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um telefone celular."); PhoneData[playerid][ShowPhonebook] = !PhoneData[playerid][ShowPhonebook]; if(PhoneData[playerid][ShowPhonebook]) { mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET ShowPhonebook = 1 WHERE OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessage(playerid, COLOR_WHITE, "Suas informações agora são exibidas na lista telefônica."); } else { mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET ShowPhonebook = 0 WHERE OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessage(playerid, COLOR_WHITE, "Suas informações não serão mais exibidas na lista telefônica."); } return true; } CMD:getnum(playerid, params[]) return cmd_numero(playerid, params); CMD:number(playerid, params[]) return cmd_numero(playerid, params); CMD:phonebook(playerid, params[]) return cmd_numero(playerid, params); CMD:numero(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][Phonebook] == 0) return SysMsg(playerid,"Você precisa comprar uma lista telefonica em uma Loja de eletronicos."); if(isnull(params)) return SysMsg(playerid,"Use: /numero [Nome]"); if(strlen(params) < 5) return SysMsg(playerid,"Por favor, especifique o nome."); mysql_format(conn, mquery, sizeof(mquery), "SELECT OwnerName,PhoneNumber FROM phones WHERE OwnerName LIKE '%%%e%%' AND ShowPhonebook = 1 LIMIT 25", params); mysql_pquery(conn, mquery, "ProcessPhonebookRequest", "ds", playerid, params); return true; } CMD:celularinfo(playerid)//celularinfo { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular móvel."); SendClientMessageF(playerid, COLOR_WHITE, "[{0098F2}%s's{FFFFFF} Informação do celular]", RPName(PhoneData[playerid][pOwnerName])); SendClientMessageF(playerid,COLOR_WHITE, "Número de celular: %i", PhoneData[playerid][pNumber]); SendClientMessageF(playerid,COLOR_WHITE, "Crédito telefônico: {4BB74C}$%i", PhoneData[playerid][pCredit]); SendClientMessage(playerid,COLOR_WHITE, "Rede telefônica: S.A. Mobile"); switch(floatround(PhoneData[playerid][pBattery])) { case 90..100: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}|{D6FF0A}|{ACFF05}|{66CD00}|{FFFFFF}]", PhoneData[playerid][pBattery]); case 80..89: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}|{D6FF0A}|{ACFF05}|{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 70..79: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}|{D6FF0A}|{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 60..69: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 50..59: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}|{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 40..49: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}|{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 30..39: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}|{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 20..29: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}|{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 10..19: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}|{EB7100}-{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 1..9: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}|{F53500}-{EB7100}-{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); case 0: SendClientMessageF(playerid, COLOR_WHITE, "Bateria do celular: %.1f %% [{F01000}-{F53500}-{EB7100}-{FAA200}-{F5D000}-{FAE500}-{F1F500}-{D6FF0A}-{ACFF05}-{66CD00}-{FFFFFF}]", PhoneData[playerid][pBattery]); } if(PhoneData[playerid][pPower] == 1) SendClientMessage(playerid, COLOR_WHITE, "Status do celular: {16BD00}On"); else SendClientMessage(playerid, COLOR_WHITE, "Status do celular: {F01000}Off"); if(HasPhoneSignal(playerid)) SendClientMessage(playerid, COLOR_WHITE, "Sinal do celular: {16BD00}Serviço completo"); else SendClientMessage(playerid, COLOR_WHITE, "Sinal do celular: {F01000}Sem Serviço"); return true; } CMD:cinfo(playerid) return cmd_celularinfo(playerid);//cinfo CMD:lp(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]); if(isnull(params)) return SysMsg(playerid,"Use: Conversa silenciosa do celular: /lp [chat]"); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) ProcessPhoneChat(playerid, GetPlayerVehicleID(playerid), params, 4.0); else SysMsg(playerid,"Você não está falando em um celular."); return true; } CMD:caltofalante(playerid, params[])//caltofalante { if(!Logged{playerid}) return true; if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você não tem um celular."); if(PhoneData[playerid][pPower] == 0) return SysMsg(playerid,"Seu celular está desligado. Ligue-o para mudar as configurações."); if(isnull(params)) return SysMsg(playerid,"Use: /caltofalante [on/off]"); if(strcmp("on", params, false) == 0) { if(MobileSpeaker[playerid] == 1) return SysMsg(playerid, "Seu alto-falante móvel já está ligado."); MobileSpeaker[playerid] = 1; SendClientMessage(playerid,COLOR_GOLD,"O seu alto-falante móvel está ativado."); SetPlayerChatBubble(playerid, "* Liga o alto-falante do celular. *", COLOR_EMOTE, 15.0, 6000); return true; } else if(strcmp("off", params, false) == 0) { if(MobileSpeaker[playerid] == 0) return SysMsg(playerid, "Your Mobile loudspeaker is already off."); MobileSpeaker[playerid] = 0; SendClientMessage(playerid,COLOR_GOLD,"Your Mobile loudspeaker is now off."); SetPlayerChatBubble(playerid, "* Desliga o alto-falante do celular. *", COLOR_EMOTE, 15.0, 6000); return true; } else SysMsg(playerid,"Use: /caltofalante [on/off]"); return true; } //end of phone commands //Vehicle rental commands CMD:alugarveiculo(playerid) { if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo de aluguel para usar este comando."); if(Licenses[playerid][LICENSE_CAR] != 1) return SysMsg(playerid, "Você deve ter uma carteira de motorista válida para alugar veículos."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você deve ter um celular celular para alugar veículos."); new v = GetPlayerVehicleID(playerid); if(!IsRentalCar(v)) return SysMsg(playerid, "Você deve estar em um veículo de aluguel para usar este comando."); if(RentalCar[playerid] == v) return SysMsg(playerid, "Você já alugou este veículo."); if(RentalCar[playerid] != 0) return SysMsg(playerid, "Você já está alugando um veículo."); foreach(new i: Player) if(RentalCar[i] == v) return SysMsg(playerid, "Este veículo já está sendo alugado por alguém."); if(RentalData[v][RentalPrice] > Cash[playerid]) return SysMsgF(playerid, "Você precisa de $%i para alugar este veículo.", RentalData[v][RentalPrice]); RentalCar[playerid] = RentalData[v][CarID]; GivePlayerCash(playerid, -RentalData[v][RentalPrice]); SendSplitMessageF(playerid, COLOR_WHITE, "Agora você está alugando este {BCDCBC}%s{FFFFFF}. Você será cobrado {4BB74C}$%i{FFFFFF} cada hora até que você devolvê-lo. Você pode deolver o veículo usando {BCDCBC}/devolverveiculo{FFFFFF} no lote do carro alugado.", GetVehicleName(v), RentalData[v][RentalPrice]); return true; } CMD:devolverveiculo(playerid)//devolverveiculo { if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em um veículo alugavel para usar este comando."); new v = GetPlayerVehicleID(playerid); if(IsOwnedCar(v)) return SysMsg(playerid, "Você deve estar em um veículo alugavel para usar este comando."); if(IsFactionVehicle(v)) return SysMsg(playerid, "Você deve estar em um veículo alugavel para usar este comando."); if(RentalCar[playerid] == 0) return SysMsg(playerid, "Você não está alugando este veículo."); foreach(new i: Player) if(RentalCar[i] == v && i != playerid) return SysMsg(playerid, "Este veículo está sendo alugado por outra pessoa.."); if(RentalCar[playerid] != v) return SysMsg(playerid, "Você não está alugando este veículo."); if(!IsPlayerInRangeOfPoint(playerid, 10.0, RentalData[v][rPosX], RentalData[v][rPosY], RentalData[v][rPosZ])) return SysMsg(playerid, "Você não está perto de nenhum centro de locação."); ToggleVehicleLock(v, false); TogglePlayerControllable(playerid, false); RemovePlayerFromVehicle(playerid); SetTimerEx("UnFreezePlayer", 200, 0, "d", playerid); RepairVehicleEx(v); SetVehicleToRespawnEx(v); RentalCar[playerid] = 0; RentalTime[playerid] = 0; RentalRevoked{playerid} = false; new Float:vh, price; GetVehicleHealth(v, vh); price = ((1000 - floatround(vh)) * 3); if(vh < 1000) { SendClientMessageF(playerid, COLOR_RED, "Você foi cobrado um adicional $%s pelos danos causados no veiculo.", format_cash(price)); GivePlayerCash(playerid, -price); } SendClientMessageF(playerid, COLOR_WHITE, "Você devolveu {BCDCBC}%s{FFFFFF} para compania de veiculos alugados.", GetVehicleName(v)); return true; } //end of vehicle rental commands //Sidejob commands CMD:varrer(playerid, params[])//varrer { if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para usar essa função."); if(IsSweeping[playerid] == 1) return SysMsg(playerid,"Você já está limpando."); if(!IsPlayerInRangeOfPoint(playerid,30.0,2248.173828,34.401039,26.484375)) return SysMsg(playerid,"Você precisa estar na estação de limpeza de rua para iniciar."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um varredor."); if(!IsSweeper(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você precisa estar em um veiculo de varredor de rua."); if(SweepSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos antes de trabalhar como varredor novamente.",SweepSpamTime[playerid]); new Float:vhealth; GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth); IsSweeping[playerid] = 1; SweepIndex[playerid] = 1; SidejobDamage[playerid] = floatround(vhealth); if(SidejobDamage[playerid] > 1000) { SidejobDamage[playerid] = 1000; SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000); } SetPlayerCheckpointEx(playerid,2264.321289,38.975631,26.335937,3.0); //varrerCheckPoint1 SweepObjects[playerid][0] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2264.321289, 38.975631, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][1] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2291.153564, 32.220500, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][2] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2291.385009, -10.033596, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][3] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2262.811279, -25.737337, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][4] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2221.316894, -39.803321, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][5] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2224.734130, -97.211372, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][6] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2279.059570, -101.231948, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][7] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2331.573730, -100.848052, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][8] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2354.369384, -30.711990, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][9] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2396.579345, -15.579336, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][10] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2396.870605, 31.072309, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][11] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2450.659179, 39.145729, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][12] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2524.689208, 39.686870, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][13] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2536.922607, 85.697204, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][14] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2475.518310, 113.706550, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][15] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2461.460693, 55.430244, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][16] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2411.414306, 44.014770, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][17] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2396.525878, 80.764770, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][18] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2320.194335, 93.953422, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][19] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2243.012451, 94.132713, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][20] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2221.406250, 54.612068, 25.345, 0.0, 0.0, 0.0); SweepObjects[playerid][21] = CreateDynamicObject(LitterObjects[random(sizeof(LitterObjects))], 2243.154052, 38.083045, 25.345, 0.0, 0.0, 0.0); SendClientMessage(playerid,COLOR_ORANGE,"Ajude a limpar as ruas de Palomino Creek varrendo as estradas."); return true; } CMD:entregar(playerid)//deliver { if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso."); if(IsDelivering[playerid] == 1) return SysMsg(playerid,"Você já está fazendo uma entrega."); if(!IsPlayerInRangeOfPoint(playerid, 30.0, 1387.9158, 264.1994, 19.5669)) return SysMsg(playerid,"Você deve estar na Pizza Stack para iniciar."); if(IsPizzaCar(GetPlayerVehicleID(playerid)) == 0 || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você não estár em um veiculo para entregar."); if(DeliverSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos para entregar novamente.", DeliverSpamTime[playerid]); new homecount = 0, zone[MAX_ZONE_NAME + 1], homesfound[100], town = random(4), townname[50], pizzacount = 0; if(town == 0) townname = "Montgomery"; if(town == 1) townname = "Palomino Creek"; if(town == 2) townname = "Blueberry"; if(town == 3) townname = "Fort Carson"; for(new h = 0; h < MAX_HOUSES; h++) { if(homecount == 99) break; //end the loop if the homecount somehow gets this high to prevent crashing. Get2DZone(HouseData[h][oPosX], HouseData[h][oPosY], zone, MAX_ZONE_NAME); if(strcmp(townname, zone, true) == 0) { //original peach block homes, remove this code when/if the mapping is removed. if(HouseData[h][HouseSQLID] == 74 || HouseData[h][HouseSQLID] == 75 || HouseData[h][HouseSQLID] == 8 || HouseData[h][HouseSQLID] == 70) continue; homesfound[homecount] = h; homecount ++; } } //should never happen but it's just a failsafe. if(homecount == 0) return SysMsg(playerid, "Ocorreu um erro ao tentar encontrar casas para você entregar."); for(new p = 0; p < homecount; p++) { if(pizzacount == 10) break; new randy = random(12); if(randy == 2) { PizzaHomes[playerid][pizzacount] = homesfound[p]; PizzaMarkers[playerid][pizzacount] = CreateDynamicMapIcon(HouseData[homesfound[p]][oPosX], HouseData[homesfound[p]][oPosY], HouseData[homesfound[p]][oPosZ], 29, -1, -1, -1, playerid); pizzacount ++; } } //should never happen but it's just a failsafe. if(pizzacount == 0) return SysMsg(playerid, "Ocorreu um erro ao tentar encontrar casas para você entregar."); new Float:vhealth; GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth); IsDelivering[playerid] = 1; SidejobDamage[playerid] = floatround(vhealth); if(SidejobDamage[playerid] > 1000) { SidejobDamage[playerid] = 1000; SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000); } //apply Temporizador de Spam if(DeliverLevel[playerid] == 1) { if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30; else DeliverSpamTime[playerid] = 60; } else if(DeliverLevel[playerid] == 2) { if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30; else DeliverSpamTime[playerid] = 55; } else if(DeliverLevel[playerid] == 3) { if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30; else DeliverSpamTime[playerid] = 50; } else if(DeliverLevel[playerid] == 4) { if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30; else DeliverSpamTime[playerid] = 45; } else if(DeliverLevel[playerid] == 5) { if(IsDonator[playerid] >= 2) DeliverSpamTime[playerid] = 30; else DeliverSpamTime[playerid] = 40; } SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você foi designado entregar %i pizza homes in {FFFFFF}%s{00FF00}. Use /entregacasas para ver as casas mencionadas.", pizzacount, townname);//observar SendClientMessage(playerid, COLOR_LIGHTGREEN, "Alternativa, procure ícones de pizza no seu minimap para obter uma idéia geral de onde você deve entregar pizzas."); SendClientMessage(playerid, COLOR_LIGHTGREEN, "Use /pegarpizza para pegar uma caixa de pizza do veiculo, siga até o icone da casa para entregar."); return true; } CMD:pegarpizza(playerid)//pegarpizza { if(IsDelivering[playerid] != 1) return SysMsg(playerid, "Você não está entregando pizza."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não deve estar em um veículo."); if(DeliverIndex[playerid] == 1) return SysMsg(playerid, "Você não tem mais pizzas para entregar."); new v = GetNearestVehicle(playerid); if(!IsPizzaCar(v)) return SysMsg(playerid, "O veículo deve ser um Pizzaboy."); if(HasPizza{playerid}) { RemovePlayerAttachedObject(playerid, PizzaIndex[playerid]); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); HasPizza{playerid} = false; PizzaIndex[playerid] = -1; } else { new index = GetFreePlayerObjectIndex(playerid); if(index == -1) return SysMsg(playerid, "Não foi possível encontrar um slot de roupa para anexar uma caixa de pizza. Pegue um item."); SetPlayerAttachedObject(playerid, index, 19571, 1, -0.035999, 0.354000, -0.040999, -90.000000, -0.000000, -90.000000, 1.000000, 1.000000, 1.000000); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); HasPizza{playerid} = true; PizzaIndex[playerid] = index; format(sgstr, sizeof(sgstr),"* %s pega uma caixa de pizza quente do compartimento do veiculo. *",NameRP(playerid)); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } CMD:entregacasas(playerid)//entregacasas { if(!Logged{playerid}) return true; if(IsDelivering[playerid] != 1) return SysMsg(playerid, "Você não está entregando pizza."); gstr[0] = EOS; new homecount = 0; for(new x = 0; x < 10; x++) { if(PizzaHomes[playerid][x] != -1) { format(tgstr, sizeof(tgstr), "%i: %s\n", x + 1, HouseData[PizzaHomes[playerid][x]][HouseDescription]); strcat(gstr, tgstr); homecount ++; } } if(homecount == 0) return SysMsg(playerid, "Não foi possível encontrar quaisquer casas para entregar."); else ShowMessage(playerid, "Casas à espera de entrega", gstr, "Obrigado!"); return true; } CMD:truck(playerid, params[]) { if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso."); if(IsTrucking[playerid] == 1) return SysMsg(playerid,"Você já está transportando."); if(TruckSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos para usar o Truck novamente.",TruckSpamTime[playerid]); if(IsPlayerInRangeOfPoint(playerid,50.0,66.75766,-256.393,1.57867) || (IsPlayerInRangeOfPoint(playerid,50.0,585.711547, 1664.336669, 6.992187) && Faction[playerid] == FACTION_TRUCKING)) { new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == 0) return SysMsg(playerid, "Você precisa estar em um truck."); if(IsTruck(vehicleid) || GetVehicleModel(vehicleid) == 498) { if(Faction[playerid] == FACTION_TRUCKING || IsPlayerAdmin(playerid) || TruckLevel[playerid] == 5) { gstr[0] = EOS; strcat(gstr, "Seleção Random\n"); for(new i = 0; i < sizeof(TruckRoutes); i++) { //vehicle is boxville if(GetVehicleModel(vehicleid) != 498 && TruckRoutes[i][TruckRouteTrailerID] == 0) continue; if(GetVehicleModel(vehicleid) == 498 && TruckRoutes[i][TruckRouteTrailerID] > 0) continue; format(sgstr, sizeof(sgstr), "DE %s PARA %s\n", TruckRoutes[i][TruckRouteStart], TruckRoutes[i][TruckRouteEnd]); strcat(gstr, sgstr); } Dialog_Show(playerid, TruckingRoutes, DIALOG_STYLE_LIST, "Selecionar trabalho", gstr, "Selecionar", "Cancelar"); return true; } if(GetVehicleModel(vehicleid) == 498 && Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid, "Somente Elite Trucking pode usar um Boxville para este trabalho."); new Float:vhealth; GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth); IsTrucking[playerid] = 1; TruckIndex[playerid] = 0; SidejobDamage[playerid] = floatround(vhealth); if(SidejobDamage[playerid] > 1000) { SidejobDamage[playerid] = 1000; SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000); } new randLoad = random(sizeof(TruckRoutes)); TruckRouteId[playerid] = randLoad; SetPlayerCheckpointEx(playerid, TruckRoutes[randLoad][TruckRoutePoints][0], TruckRoutes[randLoad][TruckRoutePoints][1], TruckRoutes[randLoad][TruckRoutePoints][2], 7.0); SendClientMessage(playerid, COLOR_ORANGE, "[TRABALHO TRUCKING]"); SendClientMessageF(playerid, COLOR_ORANGE, "Busque uma carga em: %s", TruckRoutes[randLoad][TruckRouteStart]); SendClientMessageF(playerid, COLOR_ORANGE, "Entregue para: %s", TruckRoutes[randLoad][TruckRouteEnd]); SendClientMessageF(playerid, COLOR_ORANGE, "Transportando: %s", TruckRoutes[randLoad][TruckRouteLoad]); SendClientMessage(playerid, COLOR_WHITE, "Vá para o checkpoint para buscar a carga."); } else return SysMsg(playerid,"Você precisa está em um truck."); return true; } SysMsg(playerid,"Você precisa está no HQ de caminhões para iniciar uma rota."); return true; } CMD:drivebus(playerid, params[]) { if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta."); if(IsDrivingBus{playerid}) return SysMsg(playerid,"Você já está dirigindo uma rota de ônibus."); if(!IsPlayerInRangeOfPoint(playerid,50.0,-29.788593,-306.246978,5.422851)) return SysMsg(playerid,"Você deve estar na estação de ônibus para começar."); if(!IsBus(GetPlayerVehicleID(playerid)) || GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve estar em um ônibus. (como Driver)"); if(HasGPSWaypoint[playerid] == 1) return SysMsg(playerid,"Você não pode fazer um trabalho de ônibus quando o GPS estiver ativo."); IsDrivingBus{playerid} = true; BusRouteIndex[playerid] = 0; SidejobDamage[playerid] = 500; SetPlayerRaceCheckpointEx(playerid,2, -228.403884,-285.622985,1.078125 ,0.0, 0.0, 0.0, 5.0); //BUS_0_PanapticanCutoff SendClientMessage(playerid, COLOR_WHITE, "Motorista de ônibus: Drive Around Red County Parando em paradas de ônibus marcadas. Cada parada de ônibus deixa você $10."); SendClientMessage(playerid, COLOR_WHITE, "Você está dirigindo a rota 101: Red County > Bone County > Red County."); SendClientMessage(playerid, COLOR_WHITE, "Parada de ônibus atual: n/a - Próxima parada: The Panopticon Cutoff (Início do serviço)"); return true; } CMD:coalmine(playerid, params[]) { if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso."); if(IsCoalmining[playerid] > 0) return SysMsg(playerid,"Você já estar em um coalmining."); if(!IsPlayerInRangeOfPoint(playerid,30.0,841.066101, 861.726196, 13.106781)) return SysMsg(playerid,"Você deve estar na pedreira para começar."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um coalmine Dumper."); if(!IsDumper(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você precisa estar em um coalmine Dumper."); if(CoalmineSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i minutos antes de iniciar uma nova rota.",CoalmineSpamTime[playerid]); new Float:vhealth; GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth); IsCoalmining[playerid] = random(2)+1; CoalmineIndex[playerid] = 1; SidejobDamage[playerid] = floatround(vhealth); if(SidejobDamage[playerid] > 1000) { SidejobDamage[playerid] = 1000; SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000); } if(IsCoalmining[playerid] == 1) { SetPlayerCheckpointEx(playerid,815.422424, 847.468750, 10.534412,6.0); //COALMINE_1 SendClientMessage(playerid,COLOR_ORANGE,"Dirija o Coal dentro da Pedreira. Você esta dirigindo na rota número 1."); } else if(IsCoalmining[playerid] == 2) { SetPlayerCheckpointEx(playerid,817.027343, 846.395263, 10.584503,6.0); //COALMINE_1 SendClientMessage(playerid,COLOR_ORANGE,"Dirija o Coal dentro da Pedreira. Você esta dirigindo na rota número 2."); } return true; } CMD:coletarlixo(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para usar esse recurso."); if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser executada enquanto você estiver em algemas."); if(IsTrashMan[playerid] > 0) return SysMsg(playerid,"Você já está coletando lixo."); if(!IsPlayerInRangeOfPoint(playerid,75.0,601.516845, 1224.664794, 11.718750)) return SysMsg(playerid,"Você deve estar na fábrica para começar."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar no caminhão de lixo."); if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 408) return SysMsg(playerid, "Você deve estar no caminhão de lixo."); if(GetPlayerVehicleSeat(playerid) != 0) return SysMsg(playerid, "Você precisa estar em um caminhão de lixo para trabalhar."); if(TrashSpamTime[playerid] > 0) return SysMsgF(playerid, "Você precisa esperar %i antes de coletar lixo novamente.", TrashSpamTime[playerid]); new Float:vhealth; GetVehicleHealth(GetPlayerVehicleID(playerid), vhealth); IsTrashMan[playerid] = 1; TrashIndex[playerid] = 1; SidejobDamage[playerid] = floatround(vhealth); if(SidejobDamage[playerid] > 1000) { SidejobDamage[playerid] = 1000; SetVehicleHealthEx(GetPlayerVehicleID(playerid), 1000); } TrashMissionData[playerid][0] = GetPlayerVehicleID(playerid); SetPlayerCheckpointEx(playerid,167.428207, 1183.789550, 14.757812,6.0); //COALMINE_1 SendClientMessage(playerid,COLOR_ORANGE,"Coletar lixo em todo Fort Carson. Vá para o primeiro ponto."); SendClientMessage(playerid, COLOR_LIGHTGREEN, "Ponto de Lixo 1: Cluckin' Bell"); return true; } //End of sidejob commands //Vehicle commands CMD:savecar(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você não está em um carro."); new v = GetPlayerVehicleID(playerid); if(IsPlayerInDynamicArea(playerid, PCArea)) return SysMsg(playerid, "Você não pode savar a posição de spawnar aqui."); if(IsOwnedCar(VehicleData[v][IdVehicle])) { if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Esse veiculo não é seu."); new Float:vPos[4], vworld = GetVehicleVirtualWorld(v), interior = GetPlayerInterior(playerid); GetVehiclePos(v, vPos[0], vPos[1], vPos[2]); GetVehicleZAngle(v, vPos[3]); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET LastX = %f, LastY = %f, LastZ = %f, LastRot = %f, VWorld = %i, Interior = %i WHERE id = %i", vPos[0], vPos[1], vPos[2], vPos[3], vworld, interior, VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); VehicleData[v][LastX] = vPos[0]; VehicleData[v][LastY] = vPos[1]; VehicleData[v][LastZ] = vPos[2]; VehicleData[v][LastRot] = vPos[3]; VehicleData[v][VirtualWorld] = vworld; VehicleData[v][FuelRemaining] = Fuel[v]; VehicleData[v][VehicleInterior] = interior; SendClientMessage(playerid,COLOR_GOLD,"A posição do veiculo foi salva, ele irá respawnar aqui agora."); return true; } return true; } CMD:removerchaves(playerid, params[])//removerchaves { if(!Logged{playerid}) return true; if(VehicleBorrowKey[playerid] == 0) return SysMsg(playerid,"Você não compartilhou a chave de seu veiculo para alguém."); VehicleBorrowKey[playerid] = 0; VehicleBorrowKeyTime[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "BorrowKey", VehicleBorrowKey[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "BorrowKeyTime", VehicleBorrowKeyTime[playerid], "players"); SendClientMessage(playerid, COLOR_GOLD, "A copia de chave do veiculo foi removida. Você não pode mais usar o veículo que você estava compartilhando."); return true; } CMD:darchave(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não tem carros comprados para compartilha uma chave."); new playa = -1, vid, minutes, slot = 1, ctr; if(sscanf(params, "uii", playa, vid, minutes)) { for(ctr = 0; ctr < MAX_VEH_PER_PLAYER; ctr++) { if(VehicleData[ctr][VehicleOwnerSQLID] == SQLID[playerid]) { if(!VehicleData[ctr][Impounded]) { SendClientMessageF(playerid, COLOR_WHITE, "ID %i - %s", slot, GetVehicleName(ctr)); slot ++; } } } SysMsg(playerid,"Use: /darchave [ID ou nome do jogador] [veiculo ID do /meuscarros] [tempo em minutos]"); return true; } if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode dar uma chave a si mesmo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para dar-lhe as chaves."); if(VehicleBorrowKey[playa] > 0) return SysMsg(playerid,"Esse jogador já tem uma chave compartilhada."); if(VehicleData[vid][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid,"Este veículo não pertence a você. Como tal, você não pode dar a alguém uma chave para ele."); if(minutes < 5 || minutes > 20160) return SysMsg(playerid,"O tempo deve estar entre 5 e 20160 minutos (14 Dias)."); VehicleShareOffer[playa][0] = playerid; VehicleShareOffer[playa][1] = vid; VehicleShareOffer[playa][2] = minutes; SendClientMessageF(playa, COLOR_WHITE, "%s te ofereceu a chave do veiculo %s. Use '/aceitar chave' para confirmar.", NameEx(playerid), GetVehicleName(vid)); SendClientMessageF(playerid, COLOR_WHITE, "Você ofereceu para %s a chave do veiculo %s. Ele precisa aceitar primeiro.", NameEx(playa), GetVehicleName(vid)); return true; } CMD:velocimetro(playerid, params[])//velocimetro //V { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /velocimetro [on/off/tipo]"); if(strcmp("on", params, false) == 0) { if(SpeedoActive[playerid] == 1) return SysMsg(playerid, "O seu velocímetro já está ligado."); SpeedoActive[playerid] = 1; if(GetPlayerVehicleID(playerid) > 0) PlayerTextDrawShow(playerid,SpeedText[playerid]); SendClientMessage(playerid,COLOR_GOLD,"O seu velocímetro agora está ligado."); return true; } else if(strcmp("off", params, false) == 0) { if(SpeedoActive[playerid] == 0) return SysMsg(playerid, "Seu velocímetro já está desligado."); SpeedoActive[playerid] = 0; if(GetPlayerVehicleID(playerid) > 0) PlayerTextDrawHide(playerid,SpeedText[playerid]); SendClientMessage(playerid,COLOR_GOLD,"Seu velocímetro agora está desligado."); UnlockAchievement(playerid,27); return true; } else if(strcmp("tipo", params, false) == 0) { if(SpeedFormat[playerid] == 0) { SpeedFormat[playerid] = 1; MySQLUpdateInt(SQLID[playerid], "SpeedoFormat", SpeedFormat[playerid], "players"); SendClientMessage(playerid,COLOR_GOLD,"Seu velocímetro agora está configurado para mostrar Quilômetros por hora (KM/H)."); UnlockAchievement(playerid,28); } else if(SpeedFormat[playerid] == 1) { SpeedFormat[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "SpeedoFormat", SpeedFormat[playerid], "players"); SendClientMessage(playerid,COLOR_GOLD,"Seu velocímetro agora está configurado para mostrar milhas por hora (MPH)."); } return true; } SysMsg(playerid,"Use: /velocimetro [on/off/tipo]"); return true; } CMD:vercarros(playerid, params[]) { if(!Logged{playerid}) return true; mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "BuyVehicleFromShop", "i", playerid); return true; } CMD:vermotocicletas(playerid, params[])//**viewbikes { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 5.0, 707.712890,-522.316284,16.335937)) return SysMsg(playerid,"Você deve estar na loja de motos em Dillimore."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "BuyBikeFromShop", "i", playerid); return true; } CMD:verbarcos(playerid, params[])//viewboats { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 5.0, -2186.7673, 2413.8621, 5.1563)) return SysMsg(playerid, "Você deve estar na loja do barco nas Docas de Bayside."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "BuyBoatFromShop", "i", playerid); return true; } CMD:verestoque(playerid, params[]) { if(!Logged{playerid}) return true; gstr[0] = EOS; new v = 0; strcat(gstr, "Veiculo\tPreço"); if(IsPlayerInRangeOfPoint(playerid, 5.0, 643.642395, -492.949493, 16.335937)) //mm { for(v = 0; v < sizeof(MicksVehicleData); v++) { format(gstr, sizeof(gstr), "%s\n%s\t$%s", gstr, GetVehicleNameEx(MicksVehicleData[v][0]), format_cash(MicksVehicleData[v][1])); } SetPVarInt(playerid, "ViewingStock", 1); Dialog_Show(playerid, StockView, DIALOG_STYLE_TABLIST_HEADERS, "Motocicletas em Estoque", gstr, "Selecionar", "Fechar"); } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 707.712890,-522.316284,16.335937)) //bike { for(v = 0; v < sizeof(BuyMotorbikeData); v++) { format(gstr, sizeof(gstr), "%s\n%s\t$%s", gstr, GetVehicleNameEx(BuyMotorbikeData[v][0]), format_cash(BuyMotorbikeData[v][1])); } SetPVarInt(playerid, "ViewingStock", 2); Dialog_Show(playerid, StockView, DIALOG_STYLE_TABLIST_HEADERS, "Estoque da Concessionária", gstr, "Selecionar", "Fechar"); } else if(IsPlayerInRangeOfPoint(playerid, 5.0, -2186.7673, 2413.8621, 5.1563)) //boat { for(v = 0; v < sizeof(BuyBoatData); v++) { format(gstr, sizeof(gstr), "%s\n%s\t$%s", gstr, GetVehicleNameEx(BuyBoatData[v][0]), format_cash(BuyBoatData[v][1])); } SetPVarInt(playerid, "ViewingStock", 3); Dialog_Show(playerid, StockView, DIALOG_STYLE_TABLIST_HEADERS, "Estoque da Concessionária", gstr, "Selecionar", "Fechar"); } else return SysMsg(playerid, "Você não está perto de nenhuma concessionária de veículos."); return true; } CMD:colocaravenda(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não tem carros para vender."); new v = GetPlayerVehicleID(playerid); if(v == 0) return SysMsg(playerid,"Você deve estar em um veículo."); if(v == VehicleData[v][IdVehicle]) { if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid,"Você não possui este veículo."); if(VehicleData[v][ForSale]) return SysMsg(playerid,"Este veículo já está à venda."); if(VehicleData[v][DonatorCar]) return SysMsg(playerid,"Você não pode vender veículos Donator."); new askingprice; if(sscanf(params, "i", askingprice)) return SysMsg(playerid,"Use: /colocaravenda [Preço]"); if(askingprice < 1 || askingprice > 10000000) return SysMsg(playerid,"O preço deve estar entre $1 e $10,000,000."); if(Inventory[playerid][Pen] == 0 || Inventory[playerid][Paper] == 0) return SysMsg(playerid,"Você precisa de uma caneta e papel para criar um papel de venda."); Inventory[playerid][Pen] --; Inventory[playerid][Paper] --; VehicleData[v][ForSale] = true; VehicleData[v][ForSalePrice] = askingprice; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET ForSale = 1, ForSalePrice = %i WHERE id = %i", askingprice, VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasPaper = %i, HasPen = %i WHERE id = %i", Inventory[playerid][Paper], Inventory[playerid][Pen], SQLID[playerid]); mysql_pquery(conn, mquery); new forsale[128]; format(forsale, sizeof(forsale), "A VENDA\n%s\n$%s\nPor favor, liga %i para mais info.", GetVehicleName(v), format_cash(VehicleData[v][ForSalePrice]), PhoneData[playerid][pNumber]); VehicleData[v][ForSaleLabel] = CreateDynamic3DTextLabel(forsale, COLOR_SIGN, 0.0, 0.0, 0.0, 10.0, INVALID_PLAYER_ID, VehicleData[v][IdVehicle], 1, -1, 0, -1, 30.0); SendClientMessageF(playerid, COLOR_WHITE, "Você definiu seu %s a venda por $%s. Mantenha seu Celular ligado para receber chamadas!", GetVehicleName(v), format_cash(VehicleData[v][ForSalePrice])); format(gstr, sizeof(gstr),"* %s escreve algumas informações no papel logo depois fixa sobre o vidro do %s. *",NameRP(playerid),GetVehicleName(v)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } SysMsg(playerid,"Você não pode vender este veículo."); return true; } //CMD:forsale(playerid, params[]) return cmd_colocaravenda(playerid, params); CMD:removeranuncio(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não tem nenhum veículo."); new v = GetPlayerVehicleID(playerid); if(v == 0) return SysMsg(playerid,"Você deve estar em um veículo."); if(v == VehicleData[v][IdVehicle]) { if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid,"Você não possui este veículo."); if(!VehicleData[v][ForSale]) return SysMsg(playerid,"Este veículo não está à venda."); VehicleData[v][ForSale] = false; VehicleData[v][ForSalePrice] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET ForSale = 0, ForSalePrice = 0 WHERE id = %i", VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); DestroyDynamic3DTextLabel(VehicleData[v][ForSaleLabel]); SendClientMessageF(playerid, COLOR_WHITE, "Você cancelou a venda do seu %s.", GetVehicleName(v)); format(gstr, sizeof(gstr),"* %s removeu o papel de venda fixado do vidro do %s. *",NameRP(playerid),GetVehicleName(v)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } return true; } CMD:refill(playerid, params[]) return cmd_abastecer(playerid, params); CMD:fill(playerid, params[]) return cmd_abastecer(playerid, params); CMD:fuel(playerid, params[]) return cmd_abastecer(playerid, params); CMD:abastecer(playerid, params[]) { if(!Logged{playerid}) return true; new VehID; if(IsPlayerInAnyVehicle(playerid)) VehID = GetPlayerVehicleID(playerid); else VehID = GetClosestVehicle(playerid); if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo com um motor."); if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Este veículo não precisa de combustível.."); if(!IsPlayerNearGasStation(playerid)) return SysMsg(playerid,"Você precisa estar próximo de um posto de combustível. (Red County, Bone County e Angel Pine para carros/bikes, Pista de pouso BC para aeronaves, Bayside Marina para Barcos.)"); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso se estiver amarrado."); if(Fuel[VehID] >= 100) return SysMsg(playerid,"O tanque deste veiculo já está cheio."); if(EngineStatus[VehID] == 1) return SysMsg(playerid,"Por favor, desligue o veiculo para abastecer."); if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você já está abastecendo este veículo."); if(DeliveringFuel[playerid] > 0) return SysMsg(playerid, "Você não pode reabastecer seu veículo enquanto entrega combustível."); if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { new Float:x, Float:y, Float:z; GetVehiclePos(VehID, x, y, z); if(!IsPlayerInRangeOfPoint(playerid, 15.0, x, y, z)) return SysMsg(playerid, "Você deve estar perto do veículo para reabastecer-lo."); } pRefilling[playerid] = 1; SetPVarInt(playerid, "fillType", 1); if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, COLOR_WHITE, "Saia do veículo e vá para posição do tanque do veículo."); else { StartRefueling(playerid); SendClientMessage(playerid, COLOR_WHITE, "Dirija-se à tampa de combustível do veículo para começar a reabastecer."); } return true; } CMD:usargalao(playerid, params[]) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo com um motor."); if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Este veículo não precisa de combustível.."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você não é o motorista."); if(EngineStatus[VehID] == 1) return SysMsg(playerid,"Desligue o motor do veiculo para fazer isso."); if(Fuel[VehID] == 100) return SysMsg(playerid,"Esse veiculo já está com o tanque cheio."); if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem um galão de combustível."); if(Inventory[playerid][FuelCan][0] == 0) return SysMsg(playerid,"Seu galão está vazio."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso se estiver amarrado."); if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você já está abastecendo o veiculo."); new fuelAmount = -1; if(sscanf(params, "i", fuelAmount)) { SysMsg(playerid,"Use: /usargalao [quantidade (como porcentagem)]"); SysMsgF(playerid, "Combustível atual: %.0f porcento. Use %.0f para encher o tanque.", Fuel[VehID], floatsub(100.0, Fuel[VehID])); return true; } if(fuelAmount < 1 || fuelAmount > 100) return SysMsg(playerid,"Quantidade deve ser entre 1 e 100."); if(fuelAmount > Inventory[playerid][FuelCan][0]) return SysMsg(playerid,"Você não tem essa quantidade de combustível no galão."); if(Fuel[VehID] + fuelAmount > 100) return SysMsg(playerid,"Você não pode adicionar tanto combustível a este veículo."); if(VehID == VehicleData[VehID][IdVehicle]) { if(VehicleData[VehID][VehicleOwnerSQLID] != SQLID[playerid]) { if(GetVehicleFuelType(VehID) != Inventory[playerid][FuelCan][1]) return SysMsg(playerid,"Você não pode abastecer esse veiculo se você não for dono."); } } new Float:CapPos[3]; GetVehiclePetrolCapPos(GetVehicleModel(VehID), CapPos[0], CapPos[1]); if(CapPos[0] == 0 && CapPos[1] == 0) { Inventory[playerid][FuelCan][0] = Inventory[playerid][FuelCan][0] - fuelAmount; Fuel[VehID] = Fuel[VehID] + fuelAmount; if(Fuel[VehID] < 10) TextDrawShowForPlayer(playerid, LowFuelText); else TextDrawHideForPlayer(playerid, LowFuelText); MySQLUpdateInt(SQLID[playerid], "HasFuelCan", Inventory[playerid][FuelCan][0], "players"); if(Inventory[playerid][FuelCan][0] == 0) return SendClientMessage(playerid, COLOR_RED, "Seu galão de combustível agora está vazio, use /enchergalao para encher."); UpdateFuelText(VehID, gstr); PlayerTextDrawSetString(playerid, FuelText[playerid],gstr); format(gstr, sizeof(gstr),"* %s usa um galão de combustível para abastecer o veiculo %s. *",NameRP(playerid),GetVehicleNameEx(GetVehicleModel(VehID))); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_RED, "Este veículo foi reabastecido usando um galão. ((Não foi encontrada a tampa do tanque do veiculo))"); } else { RemovePlayerFromVehicle(playerid); UsingFuelCan[playerid][1] = VehID; UsingFuelCan[playerid][0] = fuelAmount; CapPos[1] = -CapPos[1]; RotatePointVehicleRotation(VehID, CapPos, RefuelStandPos[playerid][0], RefuelStandPos[playerid][1], RefuelStandPos[playerid][2], 1); SetPlayerCheckpointEx(playerid, RefuelStandPos[playerid][0], RefuelStandPos[playerid][1], RefuelStandPos[playerid][2], 0.5); SetPlayerAttachedObject(playerid, HOLD_OBJECT_MISC, 1650, 6, 0.15, 0.015, 0.05, 0.0, 270.0, 0.0); SendClientMessage(playerid, COLOR_WHITE, "> Tampa do tanque {4BB74C}aberta{FFFFFF}, vá no ponto {FF0000}marcado{FFFFFF} para abastecer o veiculo."); format(gstr, sizeof(gstr),"* %s preciona um botão no painel do veiculo %s e abre a tampa do tanque de combustível. *",NameRP(playerid),GetVehicleName(VehID)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } CMD:enchergalao(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerNearGasStation(playerid)) return SysMsg(playerid,"Você não está próximo a um posto de Combustivel. (Red County, Bone County e Angel Pine)"); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você precisa estar a pé para fazer isso."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você já está abastecendo."); if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem um galão de gasolina para encher."); if(Inventory[playerid][FuelCan][0] == 100) return SysMsg(playerid,"Você já tem um galão cheio."); new amount, fueltype[9]; if(sscanf(params, "s[9]i", fueltype, amount)) { SysMsg(playerid,"Use: /enchergalao [gasolina/diesel] [quantidade (em porcentagem)]"); SysMsgF(playerid, "Combustível atual: %i porcento. Use %i para seu galão.", Inventory[playerid][FuelCan][0], 100-Inventory[playerid][FuelCan][0]); return true; } new fuelstation = -1; for(new i = 0; i < MAX_FUEL_STATIONS; i++) { if(IsPlayerInRangeOfPoint(playerid, 50.0, FuelStations[i][SignX], FuelStations[i][SignY], FuelStations[i][SignZ])) { fuelstation = i; break; } } if(amount < 5 || amount > 100) return SysMsg(playerid,"Você só pode abastecer de 5 a 100."); if(fuelstation > 0 && FuelStations[fuelstation][PetrolAmount] <= 0) return SysMsg(playerid,"Este posto de gasolina não tem mais combustível."); if(Inventory[playerid][FuelCan][0] + amount > 100) return SysMsg(playerid,"Este galão não pode conter tanta gasolina."); new gasprice; if(strcmp("gasolina", fueltype, true) == 0) { if(FuelStations[fuelstation][PetrolAmount] < amount) return SysMsg(playerid,"Este posto não tem toda essa quantidade de Gasolina."); if(Inventory[playerid][FuelCan][0] > 0 && Inventory[playerid][FuelCan][1] != FUEL_GASOLINA) return SysMsg(playerid,"Você não pode misturar Gasolina e Diesel."); gasprice = amount; if(IsDonator[playerid] < 4 && Cash[playerid] < gasprice) return SysMsg(playerid,"Você não tem dinheiro suficiente para comprar essa quantidade de Gasolina."); Inventory[playerid][FuelCan][1] = FUEL_GASOLINA; MySQLUpdateInt(SQLID[playerid], "HasFuelCanType", Inventory[playerid][FuelCan][1], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você colocou no galão de combustível {FFAB1A}%i{FFFFFF} porcento de {FFAB1A}Gasolina{FFFFFF} por {339900}$%i{FFFFFF}.", amount, gasprice); FuelStations[fuelstation][PetrolAmount] -= amount; UpdateFuelStationSign(fuelstation); } else if(strcmp("diesel", fueltype, true) == 0) { if(FuelStations[fuelstation][DieselAmount] < amount) return SysMsg(playerid,"Este posto não tem essa quantidade de Diesel."); if(Inventory[playerid][FuelCan][0] > 0 && Inventory[playerid][FuelCan][1] != FUEL_DIESEL) return SysMsg(playerid,"Você não pode misturar gasolina e diesel no mesmo galão."); gasprice = amount * 2; if(IsDonator[playerid] < 4 && Cash[playerid] < gasprice) return SysMsg(playerid,"Você não tem dinheiro para comprar essa quantidade de diesel."); Inventory[playerid][FuelCan][1] = FUEL_DIESEL; MySQLUpdateInt(SQLID[playerid], "HasFuelCanType", Inventory[playerid][FuelCan][1], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você colocou no galão de combustível {FFAB1A}%i{FFFFFF} porcento de {FFAB1A}Diesel{FFFFFF} por {339900}$%i{FFFFFF}.", amount, gasprice); FuelStations[fuelstation][DieselAmount] -= amount; UpdateFuelStationSign(fuelstation); } else return SysMsg(playerid,"Você deve especificar gasolina ou diesel apenas."); Inventory[playerid][FuelCan][0] += amount; MySQLUpdateInt(SQLID[playerid], "HasFuelCan", Inventory[playerid][FuelCan][0], "players"); if(IsDonator[playerid] < 4) GivePlayerCash(playerid, -gasprice); format(gstr, sizeof(gstr),"* %s enche um galão de combustível. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:esvaziargalao(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid,"Você deve estar a pé para esvaziar seu galão de combustível."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso se estiver amarrado."); if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Você está atualmente abastecendo."); if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem combustível para preencher."); if(Inventory[playerid][FuelCan][0] == 0) return SysMsg(playerid,"Seu galão de combustível já está vazio."); Inventory[playerid][FuelCan][0] = 0; MySQLUpdateInt(SQLID[playerid], "HasFuelCan", Inventory[playerid][FuelCan][0], "players"); format(gstr, sizeof(gstr),"* %s esvazia o galão de combustível no chão *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:minfo(playerid, params[]) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0 || !VehicleHasEngine(VehID)) return SysMsg(playerid,"Você precisa estar em um veiculo que tenha motor.."); new fueltype[20]; switch(GetVehicleFuelType(VehID)) { case FUEL_NONE: fueltype = "Nenhum"; case FUEL_GASOLINA: fueltype = "Gasolina"; case FUEL_DIESEL: fueltype = "Diesel"; } SendClientMessageF(playerid,COLOR_WHITE, "[%s] Tipo de combustível: {38B0DE}%s", GetVehicleName(VehID), fueltype); return true; } CMD:engineinfo(playerid, params[]) return cmd_minfo(playerid, params); CMD:motoron(playerid) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo com motor."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução."); new VehID = GetPlayerVehicleID(playerid); if(!VehicleHasEngine(VehID)) { EngineStatus[VehID] = 1; ToggleVehicleEngine(VehID, 1); return SysMsg(playerid,"Esse veiculo não tem motor."); } if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(EngineStatus[VehID] == 1) return SysMsg(playerid,"Este veículo já está ligado."); if(ViewingBuyableCar[playerid] == 1 || EngineStartDelay[playerid] > 0) return true; if(VehicleBroke[VehID] > 0) return SysMsg(playerid,"O motor está quebrado."); if(Fuel[VehID] <= 0) return SysMsg(playerid,"Você não pode iniciar um veiculo sem gasolina."); if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Aguarde até terminar o reabastecimento do veículo."); if(RentalData[VehID][CarID] >= 1 && RentalCar[playerid] != RentalData[VehID][CarID]) return SysMsg(playerid, "Você não tem as chaves deste carro alugado."); if(VehicleData[VehID][VehicleOwnerSQLID] == SQLID[playerid]) { if(VehicleData[VehID][Mileage] - VehicleData[VehID][LastOilMileage] >= 500) { OilTextToggle[playerid] = 1; if(VehicleData[VehID][Mileage] - VehicleData[VehID][LastOilMileage] >= 520) { OilTextToggle[playerid] = 3; SendClientMessage(playerid, COLOR_RED, "> Existe um problema com este motor de veículos e não pode ligar. (Óleo de motor)"); format(sgstr, sizeof(sgstr),"* %s tenta ligado o %s mas o motor apresenta falhas. *", NameRP(playerid), GetVehicleNameEx(GetVehicleModel(VehID))); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } if(FuelTypeAfterRefuel[VehID] != GetVehicleFuelType(VehID) && FuelTypeAfterRefuel[VehID] > 0) { SetVehicleHealthEx(VehID, 275.0); ToggleVehicleEngine(VehID, 0); VehicleBroke[VehID] = 2; if(IsOwnedCar(VehID)) VehicleData[VehID][Hotwired] = 0; SendClientMessage(playerid, COLOR_RED, "> Tipo de combustível errado no veículo!"); format(sgstr, sizeof(sgstr),"* Uma pequena manivela é ouvida quando %s tenta ligar o motor do veiculo *", NameRP(playerid), GetVehicleNameEx(GetVehicleModel(VehID))); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(sgstr, sizeof(sgstr),"* Um barulho alto é ouvido vindo do %s deixando o veiculo e ponto morto. *",GetVehicleNameEx(GetVehicleModel(VehID))); ProxDetector(20.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_RED, "Este veiculo está quebrado e precisa ser reparado."); return true; } format(sgstr, sizeof(sgstr),"* torce a chave na ignição do veículo %s. *",GetVehicleNameEx(GetVehicleModel(VehID))); SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 15.0, 2000); TextDrawHideForPlayer(playerid, VehicleEngineText); ShowInfoText(playerid, "~g~Ligando motor.", 1200); if(Fuel[VehID] < 10) TextDrawShowForPlayer(playerid, LowFuelText); else TextDrawHideForPlayer(playerid, LowFuelText); new SlowStart[21] = { 417, 425, 447, 460, 469, 476, 487, 488, 497, 511, 512, 513, 519, 520, 548, 553, 563, 577, 592, 593 }; new found = 0; for(new dv = 0; dv < sizeof(SlowStart); dv++) { if(SlowStart[dv] == GetVehicleModel(VehID)) { found = 1; break; } } if(found == 1) EngineStartDelay[playerid] = 4; else EngineStartDelay[playerid] = 2; return true; } CMD:mon(playerid) return cmd_motoron(playerid); CMD:ligacaodireta(playerid)//ligacaodireta { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar em um veiculo."); if(Inventory[playerid][Toolbox] == 0) return SysMsg(playerid,"Você precisará de ferramentes para fazer ligação direta neste veiculo."); new VehID = GetPlayerVehicleID(playerid); if(!IsOwnedCar(VehID)) return SysMsg(playerid, "Você só pode fazer ligação direta em veiculo cujo dono seja pessoas, não veiculos publicos."); if(EngineStatus[VehID] == 1) return SysMsg(playerid,"O motor do veiculo já esta ligado."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução do veiculo."); if(IsPushBike(VehID)) return SysMsg(playerid, "Você não pode fazer ligação direta em uma Bike."); if(VehicleBroke[VehID] == 1 || VehicleBroke[VehID] == 2) return SysMsg(playerid, "Este veiculo está quebrado e não se pode-se fazer ligação direta."); if(VehicleData[VehID][Hotwired] == 1) return SysMsg(playerid, "Este veículo já foi feito ligação direta."); if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Esse veiculo não tem motor."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(VehicleBroke[VehID] > 0) return SysMsg(playerid,"O motor deste veiculo está quebrado."); if(Fuel[VehID] <= 0) return SysMsg(playerid,"Você não pode fazer ligação direta e tentar ligar um veiculo sem combustível."); if(VehicleData[VehID][Mileage] - VehicleData[VehID][LastOilMileage] >= 520) return SysMsg(playerid, "Este veículo precisa de seu óleo mudado e não pode ser feito ligação direta."); if(IsPlayerRefilling[playerid] == 1) return SysMsg(playerid,"Aguarde até terminar o reabastecimento do veículo."); if(Hotwiring[playerid][0] > 0) return SysMsg(playerid,"Você já feliz ligação direta neste veiculo."); new engine, lights, alarm, doors, bonnet, boot, objective, Float:vhp; GetVehicleParamsEx(VehID, engine, lights, alarm, doors, bonnet, boot, objective); GetVehicleHealth(VehID, vhp); if(engine == 1) return SysMsg(playerid,"O motor deste veiculo jáe está ligado."); if(vhp <= 400) return SysMsg(playerid, "Não é possível fazer ligação direta em veiculos quebrado."); HotwireCar(playerid, VehID); return true; } CMD:moff(playerid) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo com motor."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução."); if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Esse veiculo não tem motor."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(EngineStatus[VehID] == 0) return SysMsg(playerid,"Esse veiculo já esta desligado."); if(VehicleData[VehID][VehicleOwnerSQLID] != SQLID[playerid] && VehicleData[VehID][Hotwired] == 1 && VehicleBorrowKey[playerid] != VehicleData[VehID][VehSQLID]) return SysMsg(playerid, "Você não pode desligar o motor do veiculo depois de ter feiro ligação direta."); EngineStatus[VehID] = 0; ToggleVehicleEngine(VehID, 0); if(VehicleData[VehID][Hotwired] == 1) { VehicleData[VehID][Hotwired] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET HotwireExpiration = 0 WHERE id = %i", VehicleData[VehID][VehSQLID]); mysql_pquery(conn, mquery); } SendClientMessage(playerid, COLOR_WHITE, "> Motor do veiculo foi {8B0000}Desligado"); format(gstr, sizeof(gstr),"* %s desliga o motor do veiculo. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); ShowInfoText(playerid,"~r~Motor Desligado",2000); PlayerTextDrawHide(playerid, FuelText[playerid]); PlayerTextDrawHide(playerid, SpeedText[playerid]); TextDrawHideForPlayer(playerid, LowFuelText); foreach(new p: Player) { if(IsSpectating[p] == playerid) { PlayerTextDrawHide(p, SpeedText[playerid]); } } return true; } CMD:motoroff(playerid) return cmd_moff(playerid); CMD:motor(playerid) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você deve estar em um veículo com motor."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução."); new VehID = GetPlayerVehicleID(playerid); if(!VehicleHasEngine(VehID)) return SysMsg(playerid,"Esse veiculo não tem motor."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(EngineStatus[VehID] == 0) cmd_motoron(playerid); else cmd_motoroff(playerid); return true; } CMD:luzes(playerid, params[])//luzes { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar em um veiculo."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução."); new VehID = GetPlayerVehicleID(playerid); if(IsBoat(VehID) || IsPlane(VehID) || IsHelicopter(VehID)) return SysMsg(playerid,"Esse veiculo não tem luzes."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(ELMs{VehID}) return SysMsg(playerid,"Você não pode usar esse comando quando as luzes de emegência estão ligadas."); if(VehicleLights[VehID] == 0) { ToggleVehicleLights(VehID, 1); VehicleLights[VehID] = 1; SendClientMessage(playerid, COLOR_WHITE, "> Luzes {4BB74C}On"); format(gstr, sizeof(gstr),"* %s acende as luzes do veiculo. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); ShowInfoText(playerid,"~g~Lights On",1000); VehicleLights[VehID] = 1; } else if(VehicleLights[VehID] == 1) { ToggleVehicleLights(VehID, 0); VehicleLights[VehID] = 0; SendClientMessage(playerid, COLOR_WHITE, "> Luzes {8B0000}Off"); format(gstr, sizeof(gstr),"* %s apaga as luzes do veiculo. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); ShowInfoText(playerid,"~r~Lights Off",1000); VehicleLights[VehID] = 0; } return true; } CMD:vluzes(playerid, params[])//vluzes { if(!Logged{playerid}) return true; SendClientMessage(playerid, COLOR_WHITE, "Precione o botão '~k~~TOGGLE_SUBMISSIONS~' do seu teclado, aguarde 1s para ligar/desligar."); return true; } CMD:tlon(playerid, params[]) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você precisa estar em um veiculo."); new VehTrailerID = GetVehicleTrailer(VehID); if(VehTrailerID == 0) return SysMsg(playerid,"Você deve ter um trailer."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução."); if(VehicleLights[VehTrailerID] == 1) return SysMsg(playerid,"As luzes já estão ligadas."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); ToggleVehicleLights(VehTrailerID, 1); VehicleLights[VehTrailerID] = 1; SendClientMessage(playerid, COLOR_WHITE, "> Luzes do trailer {4BB74C}On"); ShowInfoText(playerid,"~g~Luzes do trailer On",1000); return true; } CMD:tloff(playerid, params[])// desligar luzes do trailer { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo."); new VehTrailerID = GetVehicleTrailer(VehID); if(VehTrailerID == 0) return SysMsg(playerid,"Você deve ter um trailer."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de condução."); if(VehicleLights[VehTrailerID] == 0) return SysMsg(playerid,"As luzes já estão apagadas."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); ToggleVehicleLights(VehTrailerID, 0); VehicleLights[VehTrailerID] = 0; SendClientMessage(playerid, COLOR_WHITE, "> Luzes do trailer {8B0000}Off"); ShowInfoText(playerid,"~r~Luzes do trailer Off",1000); return true; } CMD:bonnet(playerid, params[])//abrir e fechar o capo { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve estar no banco do motorista."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(VehicleBoots[VehID][0] == 1) { ToggleVehicleBonnet(VehID, 0); VehicleBoots[VehID][0] = 0; SendClientMessage(playerid, COLOR_WHITE, "> Capo {8B0000}Fechado"); } else { ToggleVehicleBonnet(VehID, 1); VehicleBoots[VehID][0] = 1; SendClientMessage(playerid, COLOR_WHITE, "> Capo {8B0000}Fechado"); format(gstr, sizeof(gstr),"* %s puxa uma alavanca dentro do veiculo e abre o capô. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } CMD:capo(playerid, params[])//capo { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você deve estar em um veículo."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve estar no banco do motorista."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode fazer isso estando amarrado."); if(VehicleBoots[VehID][0] == 1) { ToggleVehicleBonnet(VehID, 0); VehicleBoots[VehID][0] = 0; SendClientMessage(playerid, COLOR_WHITE, "> Capo {8B0000}Fechado"); } else { ToggleVehicleBonnet(VehID, 1); VehicleBoots[VehID][0] = 1; SendClientMessage(playerid, COLOR_WHITE, "> Capo {4BB74C}aberto"); format(gstr, sizeof(gstr),"* %s puxa uma alavanca dentro do veiculo e abre o capô. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } CMD:testalarm(playerid, params[]) { if(!Logged{playerid}) return true; new VehID = GetPlayerVehicleID(playerid); if(VehID == 0) return SysMsg(playerid,"Você precisa estar em um veiculo."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa esta no acento de condução."); new engine, lights, alarm, doors, bonnet, boot, objective; GetVehicleParamsEx(VehID, engine, lights, alarm, doors, bonnet, boot, objective); if(alarm == 1) return SysMsg(playerid,"O alarme do veiculo já esta ativado."); SetVehicleParamsEx(VehID, engine, 1, 1, doors, bonnet, boot, objective); SetTimerEx("ToggleVehicleAlarm", 10000, 0, "dd", VehID, 0); SendClientMessage(playerid, COLOR_WHITE, "> Alarme {4BB74C}On"); return true; } CMD:vervisitante(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid, "Você precisa ser dono da casa para ver os visitantes."); if(isnull(params) || !IsNumeric(params)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid, "Use: /vervisitante [Casa ID]"); } new id = strval(params); if(id != 0 && id != 1) return SysMsg(playerid, "ID da casa inválido."); if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem casa neste slot."); mysql_format(conn, mquery, sizeof(mquery), "SELECT Name,LastLogin FROM players WHERE GuestHouseID = %i", HouseData[HasHouseKey[playerid][id]][HouseSQLID]); mysql_pquery(conn, mquery, "ShowHouseGuests", "d", playerid); return true; } CMD:minhascasas(playerid, params[]) { if(!Logged{playerid}) return true; gstr[0] = EOS; if(HasHouseKey[playerid][0] == -1 && HasHouseKey[playerid][1] == -1 && IsHouseGuest(playerid) == 0 && RentRoom[playerid] == 0) return SysMsg(playerid, "Você não está hospedado em lugar nenhum."); if(HasHouseKey[playerid][0] != -1) { new h = HasHouseKey[playerid][0]; strcat(gstr, "CASA: 1\nEndereço: "); strcat(gstr, HouseData[h][HouseDescription]); strcat(gstr, "\nVisitante morando: Use /vervisitante 0."); strcat(gstr, "\n\n"); } if(HasHouseKey[playerid][1] != -1) { new h = HasHouseKey[playerid][1]; strcat(gstr, "CASA: 2\nEndereço: "); strcat(gstr, HouseData[h][HouseDescription]); strcat(gstr, "\nVisitante morando: Use /vervisitante 1."); strcat(gstr, "\n\n"); } new ghouse = IsHouseGuest(playerid); if(ghouse > 0) { strcat(gstr, "CONVIDADO DE CASA\nEndereço: "); strcat(gstr, HouseData[ghouse][HouseDescription]); strcat(gstr, "\nDono: "); strcat(gstr, GetSQLName(HouseData[ghouse][HouseOwnerSQLID])); strcat(gstr, "\n\n"); } if(RentRoom[playerid] > 0) { new place[50], m = RentRoom[playerid], value[5]; switch(MotelData[m][MotelID]) { case 1,2,3,4: format(place, 50, "Fort Carson"); case 5: format(place, 50, "Valle Ocultado"); case 6: format(place, 50, "Angel Pine"); case 7: format(place, 50, "Xoomer Service Station"); } strcat(gstr, "QUALTO DE MOTEL\nMotel: "); strcat(gstr, place); strcat(gstr, "\nDias restantes: "); valstr(value, MotelData[RentRoom[playerid]][RoomDaysLeft]); strcat(gstr, value); strcat(gstr, "\n\n"); } Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Minha casa - Informações", gstr, "Pronto", ""); return true; } CMD:destruirveiculo(playerid, params[])//destruirveiculo { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado no servidor para fazer isso."); if(GetPlayerVehicleID(playerid) == 0) return SysMsg(playerid,"Você precisa estar em um carro para fazer isso."); if(IsRentalCar(GetPlayerVehicleID(playerid))) return SysMsg(playerid, "Você não pode detruir um veiculo alugado."); if(IsPlane(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você não pode destruir aviões planes aqui."); if(IsHelicopter(GetPlayerVehicleID(playerid))) return SysMsg(playerid,"Você não pode destruir Helicopteros aqui."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar no acento de motorista/piloto do veiculo."); if(IsFactionVehicle(GetPlayerVehicleID(playerid)) > 0) return SysMsg(playerid,"Você não pode destruir um veiculo de facção."); if(BeingScrapped{GetPlayerVehicleID(playerid)}) return SysMsg(playerid, "Esse veiculo já está sendo destruido."); if(VehicleData[GetPlayerVehicleID(playerid)][DonatorCar]) return SysMsg(playerid,"Você não pode destruir um veiculo de Donate."); if(SQLID[playerid] != VehicleData[GetPlayerVehicleID(playerid)][VehicleOwnerSQLID]) return SysMsg(playerid, "Você precisa ser o dono do veiculo para destrui-lo."); if(IsSuitableTaxiCar(GetPlayerVehicleID(playerid)) && JobDuty[playerid] == 1) return SysMsg(playerid, "Você não pode destruir seu táxi se estiver On Duty em seu trabalho."); if(IsPlayerInRangeOfPoint(playerid, 7.0, 224.557, 98.4865, 3.8906) && !IsBoat(GetPlayerVehicleID(playerid)) || IsPlayerInDynamicArea(playerid, GarageAreas[5]) && IsBoat(GetPlayerVehicleID(playerid))) { BeingScrapped{GetPlayerVehicleID(playerid)} = true; SetPVarInt(playerid, "ScrapCar", GetPlayerVehicleID(playerid)); RemovePlayerFromVehicle(playerid); if(!IsPlayerInDynamicArea(playerid, GarageAreas[5])) { SetPlayerCameraPos(playerid, 217.2184, 89.5583, 16.9906); SetPlayerCameraLookAt(playerid, 224.0594, 96.6424, 15.2541); SetPlayerPos(playerid, 218.149, 93.0901, 3.89062); } else { SetPlayerCameraPos(playerid, -2184.2893,2434.2036,13.8967); SetPlayerCameraLookAt(playerid, -2207.0972, 2424.8665, 0.1369); SetPlayerPos(playerid, -2192.6199, 2409.2146, 4.9583); } TogglePlayerControllable(playerid, 0); new Float:cost = (0.25 * VehicleData[GetPlayerVehicleID(playerid)][VehiclePrice]), price = floatround(cost); format(gstr, sizeof(gstr), "{FFFFFF}Você tem certeza que deseja destruir seu veiculo %s? Você irá receber apenas 25 porcento do valor original ($%s) e {E20000}NUNCA{FFFFFF} poderar usa-lo de novo.", GetVehicleName(GetPlayerVehicleID(playerid)), format_cash(price)); Dialog_Show(playerid, VehicleScrap, DIALOG_STYLE_MSGBOX, "Deseja desmachar seu veiculo?", gstr, "Sim", "Não"); } else SysMsg(playerid, "Você não está perto do desmanche de carro ou o Bayside Docks."); return true; } CMD:pegarveiculo(playerid, params[]) { if(!Logged{playerid}) return true; new bodyshop = -1; if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(IsPlayerInDynamicArea(playerid, GarageAreas[4])) bodyshop = 5; //airstrip if(IsPlayerInDynamicArea(playerid, GarageAreas[5])) bodyshop = 6; //bayside if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 7; //angel pine if(bodyshop == -1) return SysMsg(playerid,"Você não está perto de nenhum centro de reparação de veiculos."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Por favor, saia deste veículo primeiro."); gstr[0] = EOS; for(new v = 0, x = MAX_VEHICLES; v <= x; v++) { if((RepairData[v][rOwnerSQLID] == SQLID[playerid] && SQLID[playerid] != 0) || (RepairData[v][rFaction] == Faction[playerid] && Faction[playerid] != 0)) { if(RepairData[v][rGarage] == bodyshop && RepairData[v][rTime] < gettime()) { if(RepairData[v][rModel] > 399) { strcat(gstr, "{FFFFFF}"); strcat(gstr, GetVehicleNameEx(RepairData[v][rModel])); strcat(gstr, " (Reg: {FFFFC0}"); strcat(gstr, RepairData[v][rRegPlate]); strcat(gstr, "{FFFFFF})\n"); } } } } if(strlen(gstr) > 10) Dialog_Show(playerid, VehicleCollection, DIALOG_STYLE_LIST, "Recolher veiculo:", gstr, "Recolher", "Cancelar"); else SysMsg(playerid, "O serviço ainda não está pronto ou você não tem veiculos aqui."); return true; } CMD:reparar(playerid, params[]) { if(!Logged{playerid}) return true; new bodyshop = -1; if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(IsPlayerInDynamicArea(playerid, GarageAreas[4])) bodyshop = 5; //airstrip if(IsPlayerInDynamicArea(playerid, GarageAreas[5])) bodyshop = 6; //bayside if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 7; //angel pine if(bodyshop == -1) return SysMsg(playerid,"Você não esta em nenhuma garagem de reparação."); if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo."); new VehicleId = GetPlayerVehicleID(playerid); if(VehicleData[VehicleId][Hotwired] == 1) return SysMsg(playerid, "Você não pode reparar um veiculo roubado."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você tem que esta sob condução do veiculo."); if(bodyshop == 5 && (!IsHelicopter(VehicleId) && !IsPlane(VehicleId))) return SysMsg(playerid,"Você só pode reparar helicópteros e aviões aqui."); if(bodyshop == 6 && !IsBoat(VehicleId)) return SysMsg(playerid, "Você só pode reparar barcos aqui."); if(IsRentalCar(VehicleId)) return SysMsg(playerid, "Os veículos de aluguel não podem ser reparados."); if(IsServerCar(VehicleId)) return SysMsg(playerid, "Os veículos do servidor não podem ser reparados."); if(aspawned{VehicleId}) return SysMsg(playerid, "Os veiculos spawnado por Admin não podem ser reparados."); if(IsOwnedCar(VehicleId)) if(VehicleData[VehicleId][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você não pode reparar este veículo."); new payment[10], option, confirm[10]; if(sscanf(params, "is[10]S()[10]", option, payment, confirm)) return SysMsg(playerid,"Use: /reparar [Opção: 1-Motor 2-Parte Trazeira(Incl. Pneus) 3-Apenas pneus 4-Tudo 5-Faróis dianteiros] [Método de pagamento: Banco ou Dinheiro]"); if(!strmatch(payment, "banco") && !strmatch(payment, "dinheiro")) return SysMsg(playerid, "O método de pagamento deve ser bancário ou em dinheiro."); if(option < 1 || option > 5) return cmd_reparar(playerid, ""); new Float:health; GetVehicleHealth(VehicleId, health); if(health < 250) return SysMsg(playerid,"O motor do seu veículo está em chamas! Não podemos tocar isso!"); if((option == 1 || option == 4) && health >= 950) return SysMsg(playerid,"O motor do seu veículo parece estar em boas condições de funcionamento."); new panels, doors, lights, tires, temp = 3, th = gServerHour, tm = gServerMinute; new price = CalculateRepairPrice(VehicleId, option); if(price == 0) { if(option == 1) return SysMsg(playerid, "O motor do seu veículo parece estar funcionando bem!"); if(option == 2 || option == 4) return SysMsg(playerid, "A lataria do seu veiculo parece estar perfeita."); if(option == 3) return SysMsg(playerid,"Os pneus do seu veículo não têm problemas!"); } price = price * GetVehicleRepairMultiplier(GetVehicleModel(VehicleId)); if(IsFactionVehicle(VehicleId) == FACTION_COP || IsFactionVehicle(VehicleId) == FACTION_SACFD || IsFactionVehicle(VehicleId) == FACTION_RESEARCH) price = 0; if(strcmp("confirmar", confirm, true) == 0 && strlen(confirm) > 1) { if(strmatch(payment, "bank")) { if(BankBalance[playerid] < price) return SysMsg(playerid, "Você não tem dinheiro suficiente em sua conta bancária pagar o reparo."); BankBalance[playerid] -= price; MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players"); } else { if(Cash[playerid] < price) return SysMsg(playerid,"Você não tem dinheiro suficiente para este reparo."); GivePlayerCash(playerid, -price); } if(option == 5) { GetVehicleDamageStatus(VehicleId, panels, doors, lights, tires); lights = encode_lights(0, 0, 0, 0); UpdateVehicleDamageStatus(VehicleId, panels, doors, lights, tires); SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Os faróis do seu %s foram reparados, custando-lhe $%i.", GetVehicleNameEx(GetVehicleModel(VehicleId)), price); } else { for(new vl = 1, x = GetVehiclePoolSize(); vl <= x; vl++) { if(RepairData[vl][rModel] < 400) { new reptime = gettime() + 60; RepairData[vl][rModel] = GetVehicleModel(VehicleId); RepairData[vl][rGarage] = bodyshop; RepairData[vl][rTime] = reptime; if(VehicleData[VehicleId][VehicleOwnerSQLID] > 0) //cheques if the vehicle is a player vehicle. { RepairData[vl][rSQLID] = VehicleData[VehicleId][VehSQLID]; RepairData[vl][rOwnerSQLID] = VehicleData[VehicleId][VehicleOwnerSQLID]; RepairData[vl][rFaction] = 0; GetVehicleDamageStatus(VehicleId, panels, doors, lights, tires); switch(option) { case 1: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = 1000, DamagePanels = %i, DamageDoors = %i, DamageLights = %i, DamageTires = %i, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, panels, doors, lights, tires, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]); case 2: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = %f, DamagePanels = 0, DamageDoors = 0, DamageLights = 0, DamageTires = 0, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, health, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]); case 3: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = %f, DamagePanels = %i, DamageDoors = %i, DamageLights = %i, DamageTires = 0, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, health, panels, doors, lights, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]); case 4: mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET GarageRepairID = %i, GarageCollectTime = %i, DamageHealth = 1000.0, DamagePanels = 0, DamageDoors = 0, DamageLights = 0, DamageTires = 0, Fuel = %f, Mileage = %f WHERE id = %i", bodyshop, gettime() + 60, Fuel[VehicleId], VehicleData[VehicleId][Mileage], VehicleData[VehicleId][VehSQLID]); } mysql_pquery(conn, mquery); format(RepairData[vl][rRegPlate], MAX_REG_PLATE, VehicleData[VehicleId][RegPlate]); if(VehicleData[VehicleId][ForSale]) { VehicleData[VehicleId][ForSale] = false; VehicleData[VehicleId][ForSalePrice] = 0; DestroyDynamic3DTextLabel(VehicleData[VehicleId][ForSaleLabel]); } VehicleBroke[VehicleId] = 0; FuelTypeAfterRefuel[VehicleId] = 0; if(vTaxiSign[VehicleId] != INVALID_OBJECT_ID) DestroyDynamicObjectEx(vTaxiSign[VehicleId], "vTaxiSign[VehicleId] 1"); vTaxiSign[VehicleId] = INVALID_OBJECT_ID; } else if(FVehicleData[VehicleId][FVFaction] > 0) //cheques if the vehicle is a faction vehicle. { RepairData[vl][rSQLID] = FVehicleData[VehicleId][FVSQLID]; RepairData[vl][rFaction] = FVehicleData[VehicleId][FVFaction]; RepairData[vl][rOwnerSQLID] = 0; mysql_pqueryf(conn, "UPDATE fveh SET GarageRepairID = %i, GarageCollectTime = %i WHERE id = %i", bodyshop, reptime, FVehicleData[VehicleId][FVSQLID]); format(RepairData[vl][rRegPlate], MAX_REG_PLATE, FVehicleData[VehicleId][FVRegPlate]); } temp = 1; while(temp > 0) { temp --; tm ++; if(tm == 60) { tm = 0; th ++; if(th > 23) { th = 0; } } } DestroyVehicleEx(VehicleId, "vehicleid 0"); ClearVehicleData(VehicleId); switch(option) { case 1: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado colocar um novo motor no valor de $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm); case 2: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado para uma reparação completa na Lataria por $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm); case 3: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado para colocar pneus novos que custam $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm); case 4: SendClientMessageF(playerid,COLOR_LIGHTBLUE, "Seu %s foi reservado para uma reparação completa no valor de $%i, volte em torno de 1 hora ((1 minutos, %02d:%02d)) para busca-lo.", GetVehicleNameEx(RepairData[vl][rModel]), price, th, tm); } break; } } } } else { switch(option) { case 1: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para o seu motor a ser reparado, use '/reparar 1 %s confirmar' para aceitar.", price, payment); case 2: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para sua lataria ser reparada, use '/reparar 2 %s confirmar' para aceitar.", price, payment); case 3: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para que seus pneus sejam substituídos, use '/reparar 3 %s confirmar' para aceitar.", price, payment); case 4: SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para a sua lataria e motor para ser consertado, use '/reparar 4 %s confirmar' para aceitar.", price, payment); case 5: { SendClientMessage(playerid, COLOR_RED, "NOTA: Mesmo se os faróis do seu veículo não estejam danificados, você ainda será cobrado para os reparos se você confirmar."); SendClientMessageF(playerid, COLOR_WHITE, "Isso irá custar {4BB74C}$%i{FFFFFF} para que suas luzes sejam consertadas, use '/reparar 5 %s confirmar' para aceitar.", price, payment); } } } return true; } CMD:vmenu(playerid) { if(!Logged{playerid}) return true; if(HasVehicleSpawned(playerid)) return SysMsg(playerid, "Você já tem um veículo spawnado."); CreateVMenuTextdraws(playerid); for(new v = 0; v < 3; v++) { if(PlayerCars[playerid][v][CarModel] != 0) { PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][v], PlayerCars[playerid][v][CarModel]); PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][v], PlayerCars[playerid][v][CarCol1], PlayerCars[playerid][v][CarCol2]); } PlayerTextDrawShow(playerid, VSelectOptions[playerid][v]); VSelectID[playerid][v] = v; } VSelectOffset[playerid] = 3; TextDrawShowForPlayer(playerid, VSelectBackground); TextDrawShowForPlayer(playerid, VSelectHeader); TextDrawShowForPlayer(playerid, VSelectUp); TextDrawShowForPlayer(playerid, VSelectDown); SelectTextDraw(playerid, COLOR_GREY); return true; } CMD:vdespawn(playerid) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você deve estar em seu veículo para despawn-lo."); new bool:candespawn = false, vid = -1, v = GetPlayerVehicleID(playerid); for(new x = 0; x < MAX_VEH_PER_PLAYER; x++) { if(IsPlayerInRangeOfPoint(playerid, 10.0, PlayerCars[playerid][x][CarPosX], PlayerCars[playerid][x][CarPosY], PlayerCars[playerid][x][CarPosZ])) { candespawn = true; } if(PlayerCars[playerid][x][CarSQLID] == VehicleData[v][VehSQLID]) { vid = x; } } if(!candespawn) return SysMsg(playerid, "Você deve está na vaga de estacionamento do seu veiculo."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET Spawned = 0 WHERE id = %i", VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); ClearVehicleData(v); DestroyVehicle(v); PlayerCars[playerid][vid][CarSpawned] = false; return true; } stock HasVehicleSpawned(playerid) { for(new v = 0; v < MAX_VEH_PER_PLAYER; v++) { if(PlayerCars[playerid][v][CarSpawned]) return true; } return false; } stock CreateVMenuTextdraws(playerid) { VSelectOptions[playerid][0] = CreatePlayerTextDraw(playerid, 485.666656, 92.125976, ""); PlayerTextDrawLetterSize(playerid, VSelectOptions[playerid][0], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, VSelectOptions[playerid][0], 129.000000, 90.000000); PlayerTextDrawAlignment(playerid, VSelectOptions[playerid][0], 1); PlayerTextDrawColor(playerid, VSelectOptions[playerid][0], -1); PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][0], 0); PlayerTextDrawSetOutline(playerid, VSelectOptions[playerid][0], 0); PlayerTextDrawBackgroundColor(playerid, VSelectOptions[playerid][0], 255); PlayerTextDrawFont(playerid, VSelectOptions[playerid][0], 5); PlayerTextDrawSetProportional(playerid, VSelectOptions[playerid][0], 0); PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][0], 0); PlayerTextDrawSetSelectable(playerid, VSelectOptions[playerid][0], true); PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][0], 18631); PlayerTextDrawSetPreviewRot(playerid, VSelectOptions[playerid][0], 0.000000, 0.000000, 90.000000, 1.000000); PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][0], 1, 1); VSelectOptions[playerid][1] = CreatePlayerTextDraw(playerid, 486.000000, 185.228927, ""); PlayerTextDrawLetterSize(playerid, VSelectOptions[playerid][1], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, VSelectOptions[playerid][1], 129.000000, 90.000000); PlayerTextDrawAlignment(playerid, VSelectOptions[playerid][1], 1); PlayerTextDrawColor(playerid, VSelectOptions[playerid][1], -1); PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][1], 0); PlayerTextDrawSetOutline(playerid, VSelectOptions[playerid][1], 0); PlayerTextDrawBackgroundColor(playerid, VSelectOptions[playerid][1], 255); PlayerTextDrawFont(playerid, VSelectOptions[playerid][1], 5); PlayerTextDrawSetProportional(playerid, VSelectOptions[playerid][1], 0); PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][1], 0); PlayerTextDrawSetSelectable(playerid, VSelectOptions[playerid][1], true); PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][1], 18631); PlayerTextDrawSetPreviewRot(playerid, VSelectOptions[playerid][1], 0.000000, 0.000000, 90.000000, 1.000000); PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][1], 1, 1); VSelectOptions[playerid][2] = CreatePlayerTextDraw(playerid, 486.000000, 278.234588, ""); PlayerTextDrawLetterSize(playerid, VSelectOptions[playerid][2], 0.000000, 0.000000); PlayerTextDrawTextSize(playerid, VSelectOptions[playerid][2], 129.000000, 90.000000); PlayerTextDrawAlignment(playerid, VSelectOptions[playerid][2], 1); PlayerTextDrawColor(playerid, VSelectOptions[playerid][2], -1); PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][2], 0); PlayerTextDrawSetOutline(playerid, VSelectOptions[playerid][2], 0); PlayerTextDrawBackgroundColor(playerid, VSelectOptions[playerid][2], 255); PlayerTextDrawFont(playerid, VSelectOptions[playerid][2], 5); PlayerTextDrawSetProportional(playerid, VSelectOptions[playerid][2], 0); PlayerTextDrawSetShadow(playerid, VSelectOptions[playerid][2], 0); PlayerTextDrawSetSelectable(playerid, VSelectOptions[playerid][2], true); PlayerTextDrawSetPreviewModel(playerid, VSelectOptions[playerid][2], 18631); PlayerTextDrawSetPreviewRot(playerid, VSelectOptions[playerid][2], 0.000000, 0.000000, 90.000000, 1.000000); PlayerTextDrawSetPreviewVehCol(playerid, VSelectOptions[playerid][2], 1, 1); return true; } stock HideVMenuTextdraws(playerid) { TextDrawHideForPlayer(playerid, VSelectBackground); TextDrawHideForPlayer(playerid, VSelectHeader); TextDrawHideForPlayer(playerid, VSelectUp); TextDrawHideForPlayer(playerid, VSelectDown); PlayerTextDrawDestroy(playerid, VSelectOptions[playerid][0]); PlayerTextDrawDestroy(playerid, VSelectOptions[playerid][1]); PlayerTextDrawDestroy(playerid, VSelectOptions[playerid][2]); VSelectOptions[playerid][0] = PlayerText:INVALID_TEXT_DRAW; VSelectOptions[playerid][1] = PlayerText:INVALID_TEXT_DRAW; VSelectOptions[playerid][2] = PlayerText:INVALID_TEXT_DRAW; return true; } CMD:meuscarros(playerid, params[])//meuscarros { if(!Logged{playerid}) return true; new lockedTxt[9], Vcount = 0, sub[100]; gstr[0] = EOS; for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(Vcount < MAX_VEH_PER_PLAYER) { if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playerid]) { if(VehicleData[v][IdVehicle] > 0) { if(Locked{v}) lockedTxt = "Fechado"; else lockedTxt = "Aberto"; if(VehicleData[v][Hotwired] == 1) lockedTxt = "Stolen"; Vcount ++; format(sub, sizeof(sub), "%s - %s (ID: %i Slot: %i Placa: %s)\n", GetVehicleNameEx(VehicleData[v][VehicleModel]), lockedTxt, VehicleData[v][IdVehicle], v, VehicleData[v][RegPlate]); strcat(gstr, sub); } } else if(ImpoundData[v][iOwnerSQLID] == SQLID[playerid]) { if(ImpoundData[v][iImpoundTime] < 1) ImpoundData[v][iImpoundTime] = 0; if(ImpoundData[v][iImpoundTime] == 0) format(sub, sizeof(sub), "%s - Atualmente apreendido (Aguargando busca)\n", GetVehicleNameEx(ImpoundData[v][iModel])); else format(sub, sizeof(sub), "%s - Atualmente apreendido (%i minutos restantes)\n", GetVehicleNameEx(ImpoundData[v][iModel]), ImpoundData[v][iImpoundTime]); Vcount++; strcat(gstr, sub); } if(RepairData[v][rOwnerSQLID] == SQLID[playerid]) { if(RepairData[v][rTime] < gettime()) format(sub, sizeof(sub), "%s - Sendo trabalhado no %s (Aguargando busca)\n", GetVehicleNameEx(RepairData[v][rModel]), GetRepairGarageName(RepairData[v][rGarage])); else format(sub, sizeof(sub), "%s - Sendo trabalhado no %s\n", GetVehicleNameEx(RepairData[v][rModel]), GetRepairGarageName(RepairData[v][rGarage])); Vcount++; strcat(gstr, sub); } } } mysql_format(conn, mquery, sizeof(mquery), "SELECT VehicleModel FROM vehicles WHERE NeedsRecovery = 1 AND OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "MyCarsRecovery", "isi", playerid, gstr, Vcount); return true; } CMD:customreg(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 3.5, -2032.927978, -117.508804, 1035.171875)) return SysMsg(playerid, "Você deve estar no DMV, para fazer um registro de placa personalizada."); new vslot = 1, regplate[MAX_REG_PLATE], confirmation[8]; if(sscanf(params, "is[8]S()[8]", vslot, regplate, confirmation)) return SysMsg(playerid, "Use: /customreg [Veiculo ID do /meuscarros] [Novo número de Registro]"); if(vslot < 0 || vslot > MAX_VEHICLES) return SysMsg(playerid, "Veiculo ID inválido."); if(VehicleData[vslot][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você precisa ser dono do veiculo."); new reglen = strlen(regplate); if(reglen > MAX_REG_PLATE-1) return SysMsg(playerid,"O novo registro está muito longo. (7 max)"); if(reglen < 4) return SysMsg(playerid,"O novo registro está curto. (4 min)"); for(new letter = 0; letter < reglen; letter++) { regplate[letter] = toupper(regplate[letter]); if(!IsValidRegChar(regplate[letter])) return SysMsg(playerid, "Caracteres inválidos."); } if(IsRegPlateUsed(regplate)) return SysMsg(playerid,"Esse número de registro já está sendo usado."); new ve = vslot, regcost = -1; switch(reglen) { case 4: regcost = 2500000; case 5: regcost = 1250000; case 6: regcost = 300000; case 7: regcost = 40000; } if(regcost == -1) return SysMsg(playerid,"Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 2-001)"); if(isnull(confirmation)) return SendClientMessageF(playerid, COLOR_WHITE, "Alterando sua placa '%s' para '%s' no seu veiculo %s irá custar $%s. Use '/customreg %i %s confirmar' para fazer o pagamento.", VehicleData[ve][RegPlate], regplate, GetVehicleNameEx(VehicleData[ve][VehicleModel]), format_cash(regcost), vslot, regplate); else { if(strcmp(confirmation, "confirmar", true) == 0) { if(Cash[playerid] < regcost) return SysMsg(playerid,"Você não tem dinheiro suficiente para customizar sua placa."); GivePlayerCash(playerid, -regcost); MySQLUpdateString(VehicleData[ve][VehSQLID], "RegPlate", regplate, "vehicles"); format(VehicleData[ve][RegPlate], MAX_REG_PLATE, regplate); SetVehicleNumberPlate(VehicleData[ve][IdVehicle], regplate); SendClientMessageF(playerid, COLOR_GOLD, "A placa do seu veiculo %s foi customizada para: '%s'. Isso custou $%s.", GetVehicleNameEx(VehicleData[ve][VehicleModel]), VehicleData[ve][RegPlate], format_cash(regcost)); format(gstr, sizeof(gstr),"[%s] %s(%i) gastou $%i para customizar a placa do veiculo. (Total: $%i)", GetTimeStringAndSec(), NameEx(playerid), playerid, regcost, Cash[playerid]); AddToLog("cash", gstr); } } return true; } CMD:recuperarveiculo(playerid, params[])//recuperarveiculo { if(!Logged{playerid}) return true; mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM vehicles WHERE OwnerSQLID = %i AND NeedsRecovery = 1 LIMIT %i", SQLID[playerid], MAX_VEH_PER_PLAYER); mysql_pquery(conn, mquery, "DisplayRecoverVehicle", "i", playerid); return true; } CMD:carmusic(playerid, params[]) { new v = GetPlayerVehicleID(playerid); new VehicleMusic[200]; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid,"Você precisa estar dentro de um veiculo."); if(GetPlayerVehicleSeat(playerid) >= 2) return SysMsg(playerid, "Somente motorista/passageiros podem usar este comando."); if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 408) return SysMsg(playerid,"Você não pode usar este comando em carro de trabalho."); if(IsPushBike(v)) return SysMsg(playerid,"Você não pode usar este comando em Bikes/Motos."); if(sscanf(params, "s[200]", VehicleMusic)) return SysMsg(playerid, "Use: /carmusic [link/off]"); if(strcmp(VehicleMusic, "parar", true) == 0 || strcmp(VehicleMusic, "no", true) == 0 || strcmp(VehicleMusic, "off", true) == 0) { if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 1) { foreach(new i: Player) { if(Logged{i} && GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid)) { StopAudioStreamForPlayer(i); } } vMusicPlaying{v} = false; strdel(vMusicLink[v], 0, 256); SetPlayerChatBubble(playerid, "* Preciona um botão no rádio desligando-o. *", COLOR_EMOTE, 15.0, 6000); } } else if(GetPlayerVehicleSeat(playerid) == 0 || GetPlayerVehicleSeat(playerid) == 1) { foreach(new i: Player) { if(Logged{i} && GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid)) { StopAudioStreamForPlayer(i); PlayAudioStreamForPlayerEx(i, VehicleMusic); ListeningBoom[i] = -1; } } vMusicPlaying{v} = true; strpack(vMusicLink[v], VehicleMusic); SetPlayerChatBubble(playerid,"* Liga o rádio, sintonizando-o para uma estação. *", COLOR_EMOTE, 15.0, 6000); } return true; } CMD:togplaca(playerid)//togplaca { if(!Logged{playerid}) return true; if(Inventory[playerid][Toolbox] == 0) return SysMsg(playerid,"Você precisa de uma caixa de ferramentas para substituir sua placa."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar fora de um veículo para usar este recurso."); new v = GetNearestVehicle(playerid); if(IsPushBike(v) || IsHelicopter(v) || IsPlane(v)) return SysMsgF(playerid, "Esse %s não tem uma placa.", GetVehicleName(v)); if(!TrunkXY(playerid, v)) return SysMsg(playerid, "Você não esta próximo a um veiculo."); if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsgF(playerid, "Você não é o dono deste %s.", GetVehicleName(v)); new world = GetVehicleVirtualWorld(v); SetVehicleVirtualWorld(v, v); if(VehicleData[v][PlateToggle]) { VehicleData[v][PlateToggle] = false; SetVehicleNumberPlate(v, VehicleData[v][RegPlate]); cmd_me(playerid, "pega a placa no porta-malas do veículo e se ajoelha, aparafusando-o de volta ao lugar."); OnePlayAnim(playerid, "BOMBER", "BOM_Plant_Loop", 3.0, 0, 0, 0, 0, 0); SetTimerEx("PutVehicleBack", 500, 0, "ii", v, world); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET PlateToggle = 0 WHERE id = %i", VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); return true; } else { VehicleData[v][PlateToggle] = true; SetVehicleNumberPlate(v, " "); cmd_me(playerid, "ajoelha-se e desenrosca a placa do veículo, colocando-a no porta-malas"); OnePlayAnim(playerid, "BOMBER", "BOM_Plant_Loop", 3.0, 0, 0, 0, 0, 0); SetTimerEx("PutVehicleBack", 500, 0, "ii", v, world); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET PlateToggle = 1 WHERE id = %i", VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); return true; } } GREENSIDE::PutVehicleBack(vehicleid, world) { SetVehicleVirtualWorld(vehicleid, world); return true; } CMD:checkplaca(playerid, params[])//checkplat { if(!Logged{playerid}) return true; new v = GetClosestVehicle(playerid); if(VehicleData[v][PlateToggle]) SysMsgF(playerid, "Essa %s não tem uma placa mostrando.", GetVehicleName(v)); else if(!VehicleData[v][PlateToggle]) SysMsgF(playerid, "Esse %s tem uma placa mostrando.", GetVehicleName(v)); else SysMsg(playerid, "Esse não é um veiculo pessoal."); return true; } CMD:portamalas(playerid, params[]) { if(!Logged{playerid}) return true; new tempv = GetClosestVehicle(playerid); if(!VehicleHasTrunk(tempv)) return SysMsg(playerid,"Esse veiculo não tem porta-malas."); if(tempv == INVALID_VEHICLE_ID) return SysMsg(playerid, "Você precisa esta proximo a um veiculo para usar o comando."); if(aspawned{tempv}) return SysMsg(playerid, "Esse veiculo é da adminstração do servidor."); if(IsRentalCar(tempv)) return SysMsg(playerid, "Você não pode abrir o porta-malas de carro alugado."); if(IsServerCar(tempv)) return SysMsg(playerid, "Você não abrir este veiculo. (Veiculo do servidor)"); new Item[15], Amount[40], Method[15], trunkstring[128]; if(sscanf(params, "s[15]S(None)[15]S(None)[40]", Method, Item, Amount)) return SysMsg(playerid,"Use: /portamalas [abrir/fechar/pegar/guardar/mostrar] [item] [quantidade], Itens: Dinheiro, colete, maconha, cocaina, moonshine, arma"); if(TrunkXY(playerid, tempv) || GetPlayerVehicleID(playerid) == tempv) { if(strmatch("abrir", Method)) { if(VehicleBoots[tempv][1] == 1) return SysMsg(playerid,"O porta-malas já esta aberto."); if(IsOwnedCar(tempv)) { if(Locked{tempv}) { format(trunkstring, sizeof(trunkstring), "* %s tenta abrir o porta-malas do %s. *", NameRP(playerid), GetVehicleNameEx(VehicleData[tempv][VehicleModel])); ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SysMsg(playerid,"O veiculo está fechado, se você quiser abrir o porma-malas, você precisa abrir o veiculo primeiro."); return true; } } else if(IsFactionVehicle(tempv)) { if(Locked{tempv}) { format(trunkstring, sizeof(trunkstring), "* %s tenta abrir o porta-malas do %s. *", NameRP(playerid), GetVehicleNameEx(FVehicleData[tempv][FVModel])); ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SysMsg(playerid, "O veiculo está fechado, se você quiser abrir o porma-malas, você precisa abrir o veiculo primeiro."); return true; } } if(!IsPlayerInAnyVehicle(playerid)) ToggleVehicleTrunk(tempv, 1); VehicleBoots[tempv][1] = 1; SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); format(trunkstring, sizeof(trunkstring),"* %s preciona um botão dentro do veiculo e abre o porta-malas. *", NameRP(playerid)); ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(VehicleBoots[tempv][1] == 1) { if(strmatch("fechar", Method)) { if(VehicleBoots[tempv][1] == 0) return SysMsg(playerid,"O porta-malas do veiculo já esta fechado."); ToggleVehicleTrunk(tempv, 0); VehicleBoots[tempv][1] = 0; format(trunkstring, sizeof(trunkstring),"* %s grips the trunk, closing it. *",NameRP(playerid)); ProxDetector(20.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } if(strcmp("guardar",Method) == 0) { if(strmatch(Item, "None")) return SysMsg(playerid,"Use: /portamalas guardar [item] [quantidade(nome da arma)], Itens: Dinheiro, Colete, Marijuana, cocaina, moonshine, arma"); if(strcmp("dinheiro",Item) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar dinheiro [quantidade $]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(strval(Amount) < 1 || strval(Amount) > 100000) return SysMsg(playerid,"A quantidade máxima de dinheiro que você pode guardar é de $100,000."); if(strval(Amount) > Cash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade para guardar."); GivePlayerCash(playerid, -strval(Amount)); if(IsOwnedCar(tempv)) { VehicleData[tempv][TrunkCash] += strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCash", VehicleData[tempv][TrunkCash], "vehicles"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } else if(IsFactionVehicle(tempv)) { FVehicleData[tempv][FTrunkCash] += strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCash", FVehicleData[tempv][FTrunkCash], "fveh"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); format(trunkstring, sizeof(trunkstring),"Você guardou $%s no porta-malas do veiculo.",format_cash(strval(Amount))); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"[%s] %s(%i) guarda $%i no porta-malas do veiculo.", GetServerTimeString(), NameEx(playerid), playerid, strval(Amount)); AddToLog("cash", trunkstring); return true; } else if(strcmp("colete",Item,true) == 0 || strcmp("coletes",Item,true) == 0) { new Float:Armour; GetPlayerArmour(playerid,Armour); if(Armour == 0) return SysMsg(playerid, "Você não tem colete de proteção."); //if(VestType[playerid] == 0) return SysMsg(playerid, "You do not have an armor vest on."); if(IsOwnedCar(tempv)) { if(RestrictedVest{playerid}) return SysMsg(playerid, "Você não pode armazenar este colete neste veículo."); if(!MySQLCheckVehicleArmor(VehicleData[tempv][VehSQLID])) return SysMsg(playerid, "Você não pode armazenar mais coletes neste veículo como já tem 5 coletes."); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO storedarmor (ArmorType, ArmorAmount, TrunkID) VALUES (%i, %f, %i)", VestType[playerid], Armour, VehicleData[tempv][VehSQLID]); mysql_pquery(conn, mquery); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } else if(IsFactionVehicle(tempv)) { if(RestrictedVest{playerid} && IsFactionVehicle(FVehicleData[tempv][FactionVehID]) != Faction[playerid]) return SysMsg(playerid, "Você não pode armazenar este colete neste veículo."); if(!MySQLCheckFVehArmor(FVehicleData[tempv][FVSQLID])) return SysMsg(playerid, "Você não pode armazenar mais coletes neste veículo como já tem 5 coletes."); mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO storedarmor (ArmorType, ArmorAmount, FCarID) VALUES (%i, %f, %i)", VestType[playerid], Armour, FVehicleData[tempv][FVSQLID]); mysql_pquery(conn, mquery); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } ApplyTrunkAnimation(playerid); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); if(VestType[playerid] == 1) SendClientMessage(playerid,COLOR_DARKBLUE,"Você guardou um colete leve no porta-malas deste veiculo."); else SendClientMessage(playerid, COLOR_DARKBLUE, "Você armazenou um colete pesado no porta-malas deste veiculo."); SetPlayerArmourEx(playerid, 0.0, 1); VestType[playerid] = 0; return true; } else if(strcmp("marijuana",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar marijuana [Quantidade]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(strval(Amount) < 1) return SysMsg(playerid,"Você deve armazenar pelo menos 1."); if(strval(Amount) > Inventory[playerid][Weed]) return SysMsg(playerid,"Você não tem essa quantidade para guardar."); Inventory[playerid][Weed] -= strval(Amount); MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); if(IsOwnedCar(tempv)) { VehicleData[tempv][TrunkWeed] += strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkWeed", VehicleData[tempv][TrunkWeed], "vehicles"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } else if(IsFactionVehicle(tempv)) { FVehicleData[tempv][FTrunkWeed] += strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkWeed", FVehicleData[tempv][FTrunkWeed], "fveh"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Guarda %i gramas de Marijuana no porta-malas do veiculo.",strval(Amount)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); return true; } else if(strcmp("Cocaina",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar Cocaina [Quantidade]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(strval(Amount) < 1) return SysMsg(playerid,"You must store at least 1."); if(strval(Amount) > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Você não tem essa quantidade para guardar."); Inventory[playerid][Cocaine] -= strval(Amount); MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); if(IsOwnedCar(tempv)) { VehicleData[tempv][TrunkCocaine] += strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCocaine", VehicleData[tempv][TrunkCocaine], "vehicles"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } else if(IsFactionVehicle(tempv)) { FVehicleData[tempv][FTrunkCocaine] += strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCocaine", FVehicleData[tempv][FTrunkCocaine], "fveh"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Você guardou %i gramas de cocaina no porta-malas do veiculo.",strval(Amount)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); return true; } else if(strcmp("MoonShine",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar MoonShine [Quantidade]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(strval(Amount) < 1) return SysMsg(playerid,"Você deve armazenar pelo menos 1."); if(strval(Amount) > Inventory[playerid][MoonShine]) return SysMsg(playerid,"Você não tem essa quantidade para armazenar."); Inventory[playerid][MoonShine] -= strval(Amount); MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players"); if(IsOwnedCar(tempv)) { VehicleData[tempv][TrunkMoonShine] += strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkMoonShine", VehicleData[tempv][TrunkMoonShine], "vehicles"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } else if(IsFactionVehicle(tempv)) { FVehicleData[tempv][FTrunkMoonShine] += strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkMoonShine", FVehicleData[tempv][FTrunkMoonShine], "fveh"); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); } SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Você guardou %i litros de Moon Shine no porta-malas de veiculo.",strval(Amount)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); return true; } else if(strcmp("arma",Item,true) == 0 || strcmp("armas",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas guardar Armas [Nome da arma]"); new wid = GetWeaponIdFromName(Amount); if(wid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida."); if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida."); new Slot = GetWeaponSlot(wid); if(HasTaser{playerid} && Slot == 2) return SysMsg(playerid, "Você não pode armazenar Taser."); if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem essa arma."); if(WeaponData[playerid][Slot][WeaponOrigin] == 3 && FVehicleData[tempv][FVFaction] != Faction[playerid]) return SysMsg(playerid, "Você não pode guardar armas de facção em um veiculo que não é de sua facção"); if(IsOwnedCar(tempv)) { mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE TrunkID = %i AND Deleted = 0 AND Dropped = 0", VehicleData[tempv][VehSQLID]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() >= GetVehicleTrunkLimit(VehicleData[tempv][IdVehicle])) return SysMsg(playerid, "Não há mais espaço nesse porta-malas.") && cache_delete(result); cache_delete(result); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET TrunkID = %i, WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", VehicleData[tempv][VehSQLID], WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); ResetWeaponVariables(playerid, 0, Slot); } else if(IsFactionVehicle(tempv)) { if(WeaponData[playerid][Slot][WeaponOrigin] == 3 && IsFactionVehicle(FVehicleData[tempv][FactionVehID]) != Faction[playerid]) return SysMsg(playerid, "Você não pode guardar armas de facção em um veiculo que não é de sua facção"); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND Deleted = 0 AND Dropped = 0", FVehicleData[tempv][FVSQLID]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() >= GetVehicleTrunkLimit(FVehicleData[tempv][FactionVehID])) return SysMsg(playerid, "Não há mais espaço nesse porta-malas.") && cache_delete(result); cache_delete(result); format(trunkstring, sizeof(trunkstring),"* %s guarda alguma coisa no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = %i, WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", FVehicleData[tempv][FVSQLID], WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); ResetWeaponVariables(playerid, 0, Slot); } ResetWeaponVariables(playerid, 0, Slot); SyncPlayerWeapons(playerid); if(wid == 2) UnlockAchievement(playerid, 35); ApplyTrunkAnimation(playerid); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); format(trunkstring, sizeof(trunkstring),"Você guardou um celular %s no porta-malas deste veiuclo.",GetWeaponNameFromID(wid)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); return true; } else if(strcmp("celular", Item, true) == 0) { if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você precisa ter um celular para guardar."); if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode guardar um celular tocando."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode guardar um celular se ainda estiver usando ele."); new phoneid = PhoneData[playerid][pID]; if(IsFactionVehicle(tempv)) { FVehicleData[tempv][FTrunkPhone] = phoneid; mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET TrunkPhone = %i WHERE id = %i", phoneid, FVehicleData[tempv][FVSQLID]); mysql_tquery(conn, mquery); } else { VehicleData[tempv][TrunkPhone] = phoneid; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET TrunkPhone = %i WHERE id = %i", phoneid, VehicleData[tempv][VehSQLID]); mysql_tquery(conn, mquery); } ClearPhoneData(playerid); mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 0 WHERE id = %i", phoneid); mysql_tquery(conn, mquery); format(trunkstring, sizeof(trunkstring),"* %s guarda um celular no porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); ApplyTrunkAnimation(playerid); SendClientMessage(playerid,COLOR_DARKBLUE,"Você guardou um celular no porta-malas do veiculo."); return true; } } else if(strcmp("pegar",Method,true) == 0) { if(strmatch(Item, "None")) return SysMsg(playerid,"Use: /portamalas pegar [item] [quantidade(nome da arma)], Itens: dinheiro, colete, marijuana, cocaina, moonshine, arma"); if(strcmp("dinheiro",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas pegar dinheiro [Quantidade $]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(strval(Amount) < 1 || strval(Amount) > 100000) return SysMsg(playerid,"Você pode pegar no máximo $100,000."); if(IsOwnedCar(tempv)) { if(strval(Amount) > VehicleData[tempv][TrunkCash]) return SysMsg(playerid,"Esse veiculo não tem essa quantidade de dinheiro no porta-malas."); VehicleData[tempv][TrunkCash] -= strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCash", VehicleData[tempv][TrunkCash], "vehicles"); } else if(IsFactionVehicle(tempv)) { if(strval(Amount) > FVehicleData[tempv][FTrunkCash]) return SysMsg(playerid,"Esse veiculo não tem essa quantidade de dinheiro no porta-malas."); FVehicleData[tempv][FTrunkCash] -= strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCash", FVehicleData[tempv][FTrunkCash], "fveh"); } GivePlayerCash(playerid, strval(Amount)); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Você pegou $%s do porta-malas do veiculo.",format_cash(strval(Amount))); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); format(trunkstring, sizeof(trunkstring),"[%s] %s(%i) pegou $%i do porta-malas.", GetServerTimeString(), NameEx(playerid), playerid, strval(Amount)); AddToLog("cash", trunkstring); } else if(strcmp("colete",Item,true) == 0 || strcmp("coletes",Item,true) == 0) { if(IsOwnedCar(tempv)) { mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE TrunkID = %i", VehicleData[tempv][VehSQLID]); mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 2); } else if(IsFactionVehicle(tempv) && IsGovTrunk(tempv)) { if(HasGovTrunkAccess(playerid, tempv)) { mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE FCarID = %i", FVehicleData[tempv][FVSQLID]); mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 2); } else return SysMsg(playerid, "Você não pode pegar colete de veiculos do governo."); } else if(IsFactionVehicle(tempv) && !IsGovTrunk(tempv)) { mysql_format(conn, mquery, sizeof(mquery), "SELECT id, ArmorType, ArmorAmount FROM storedarmor WHERE FCarID = %i", FVehicleData[tempv][FVSQLID]); mysql_pquery(conn, mquery, "ShowStoredArmor", "dd", playerid, 2); } } else if(strcmp("arma",Item,true) == 0 || strcmp("armas",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas Pegar Arma [Nome da arma]"); new wid = GetWeaponIdFromName(Amount); if(wid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma inválida."); if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida."); new Slot = GetWeaponSlot(wid); if(WeaponData[playerid][Slot][Weapon] != 0) return SysMsg(playerid,"Você já possui uma arma desse tipo."); if(IsOwnedCar(tempv)) { if(VehicleData[tempv][VehSQLID] >= 1) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE TrunkID = %i AND WeaponID = %i AND Deleted = 0 AND FCarID = -1 AND Gunrack = -1 AND WeaponPossession = 0 AND HouseID = -1 AND Dropped = 0", VehicleData[tempv][VehSQLID], wid); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() == 0) { SysMsg(playerid, "Essa arma não esta em seu porta-malas."); cache_delete(result); return true; } else { WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id"); WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID"); WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]); WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); } cache_delete(result); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET TrunkID = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); } else return SysMsg(playerid, "Ocorreu um Erro, contate um admin."); } else if(IsFactionVehicle(tempv) && IsGovTrunk(tempv)) { if(HasGovTrunkAccess(playerid, tempv)) { if(FVehicleData[tempv][FVSQLID] >= 1) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND WeaponID = %i AND Deleted = 0 AND TrunkID = -1 AND WeaponPossession = 0 AND HouseID = -1 AND Dropped = 0", FVehicleData[tempv][FVSQLID], wid); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() == 0) { SysMsg(playerid, "Essa arma não esta em seu porta-malas."); cache_delete(result); return true; } else { WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id"); WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID"); WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]); WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); } cache_delete(result); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); } else return SysMsg(playerid, "Ocorreu um Erro, contate um admin."); } else return SysMsg(playerid, "Você não pode pegar armas de porta-malas de veiculos do governo."); } else if(IsFactionVehicle(tempv) && !IsGovTrunk(tempv)) { if(FVehicleData[tempv][FVSQLID] >= 1) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND WeaponID = %i AND Deleted = 0 AND TrunkID = -1 AND WeaponPossession = 0 AND HouseID = -1 AND Dropped = 0", FVehicleData[tempv][FVSQLID], wid); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows() == 0) { SysMsg(playerid, "Essa arma não esta em seu porta-malas."); cache_delete(result); return true; } else { WeaponData[playerid][Slot][WeaponID] = cache_get_field_content_int(0, "id"); WeaponData[playerid][Slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); WeaponData[playerid][Slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][Slot][Weapon] = cache_get_field_content_int(0, "WeaponID"); WeaponData[playerid][Slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][Slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][Slot][WeaponType] = GetWeaponType(WeaponData[playerid][Slot][Weapon]); WeaponData[playerid][Slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][Slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); } cache_delete(result); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET FCarID = -1, WeaponPossession = 1, OwnerSQLID = %i WHERE id = %i", SQLID[playerid], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); } else return SysMsg(playerid, "Ocorreu um Erro, contate um admin."); } ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Você pegou uma %s do porta-malas do %s.",GetWeaponNameFromID(wid),GetVehicleName(tempv)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); SyncPlayerWeapons(playerid); return true; } else if(strcmp("Marijuana",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas Pega Marijuana [Quantidade]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(IsOwnedCar(tempv)) { if(strval(Amount) < 1 || strval(Amount) > VehicleData[tempv][TrunkWeed]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas."); if(Inventory[playerid][Weed] + strval(Amount) > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar essa quantidade de Marijuana."); VehicleData[tempv][TrunkWeed] -= strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkWeed", VehicleData[tempv][TrunkWeed], "vehicles"); } else if(IsFactionVehicle(tempv)) { if(strval(Amount) < 1 || strval(Amount) > FVehicleData[tempv][FTrunkWeed]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas."); if(Inventory[playerid][Weed] + strval(Amount) > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar essa quantidade de Marijuana."); FVehicleData[tempv][FTrunkWeed] -= strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkWeed", FVehicleData[tempv][FTrunkWeed], "fveh"); } Inventory[playerid][Weed] += strval(Amount); MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Você pegou %i gramas de Marijuana do porta-malas.",strval(Amount)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); return true; } else if(strcmp("Cocaina",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas pegar Cocaina [Quantidade]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(IsOwnedCar(tempv)) { if(strval(Amount) < 1 || strval(Amount) > VehicleData[tempv][TrunkCocaine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas."); if(Inventory[playerid][Cocaine] + strval(Amount) > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar muita cocaína."); VehicleData[tempv][TrunkCocaine] -= strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkCocaine", VehicleData[tempv][TrunkCocaine], "vehicles"); } else if(IsFactionVehicle(tempv)) { if(strval(Amount) < 1 || strval(Amount) > FVehicleData[tempv][FTrunkCocaine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas."); if(Inventory[playerid][Cocaine] + strval(Amount) > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar muita cocaína."); FVehicleData[tempv][FTrunkCocaine] -= strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkCocaine", FVehicleData[tempv][FTrunkCocaine], "fveh"); } Inventory[playerid][Cocaine] += strval(Amount); MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"Você pegou %i gramas de Cocaina do porta-malas do veiculo.",strval(Amount)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); return true; } else if(strcmp("MoonShine",Item,true) == 0) { if(strmatch(Amount, "None")) return SysMsg(playerid,"Use: /portamalas pegar Moonshine [Quantidade]"); if(!IsNumeric(Amount)) return SysMsg(playerid,"Quantidade inválida."); if(IsOwnedCar(tempv)) { if(strval(Amount) < 1 || strval(Amount) > VehicleData[tempv][TrunkMoonShine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas."); if(Inventory[playerid][MoonShine] + strval(Amount) > DRUG_MAX_MOONSHINE) return SysMsg(playerid,"Você não pode carregar mooonshine."); VehicleData[tempv][TrunkMoonShine] -= strval(Amount); MySQLUpdateInt(VehicleData[tempv][VehSQLID], "TrunkMoonShine", VehicleData[tempv][TrunkMoonShine], "vehicles"); } else if(IsFactionVehicle(tempv)) { if(strval(Amount) < 1 || strval(Amount) > FVehicleData[tempv][FTrunkMoonShine]) return SysMsg(playerid,"Você deve ter pelo menos 1 e não mais do que o que está no porta-malas."); if(Inventory[playerid][MoonShine] + strval(Amount) > DRUG_MAX_MOONSHINE) return SysMsg(playerid,"Você não pode carregar mooonshine."); FVehicleData[tempv][FTrunkMoonShine] -= strval(Amount); MySQLUpdateInt(FVehicleData[tempv][FVSQLID], "TrunkMoonShine", FVehicleData[tempv][FTrunkMoonShine], "fveh"); } Inventory[playerid][MoonShine] += strval(Amount); MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players"); ApplyTrunkAnimation(playerid); format(trunkstring, sizeof(trunkstring),"You have got %i litro(s) de MoonShine from the trunk.",strval(Amount)); SendClientMessage(playerid,COLOR_DARKBLUE,trunkstring); format(trunkstring, sizeof(trunkstring),"* %s pegou alguma coisa do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); return true; } else if(strcmp("Celular", Item, true) == 0) { if(Inventory[playerid][MobilePhone] == 1) return SysMsg(playerid, "Você já tem um celular em seu inventário."); new phoneid; if(IsFactionVehicle(tempv)) { if(FVehicleData[tempv][FTrunkPhone] == 0) return SysMsg(playerid, "Não há nenhum celular guardado nesse veiculo."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 1, PhonePossessor = %i WHERE id = %i", SQLID[playerid], FVehicleData[tempv][FTrunkPhone]); mysql_tquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET TrunkPhone = 0 WHERE id = %i", FVehicleData[tempv][FVSQLID]); mysql_tquery(conn, mquery); FVehicleData[tempv][FTrunkPhone] = 0; } if(IsOwnedCar(tempv)) { if(VehicleData[tempv][TrunkPhone] == 0) return SysMsg(playerid, "Não há nenhum celular guardado nesse veiculo."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossession = 1, PhonePossessor = %i WHERE id = %i", SQLID[playerid], VehicleData[tempv][TrunkPhone]); mysql_tquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET TrunkPhone = 0 WHERE id = %i", VehicleData[tempv][VehSQLID]); mysql_tquery(conn, mquery); VehicleData[tempv][TrunkPhone] = 0; } ApplyTrunkAnimation(playerid); SendClientMessage(playerid,COLOR_DARKBLUE,"Você pegou um celular do porta-malas do veiculo."); format(trunkstring, sizeof(trunkstring),"* %s pega um celular do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); SetPlayerChatBubble(playerid, trunkstring, COLOR_EMOTE, 15.0, 5000); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i AND PhonePossession = 1", phoneid); mysql_tquery(conn, mquery, "LoadPlayerPhone", "d", playerid); return true; } } else if(strcmp("mostrar",Method,true) == 0) { if(IsOwnedCar(tempv)) { SendClientMessageF(playerid,COLOR_DARKBLUE, "[Porta-malas] Dinheiro: $%s | Marijuana: %ig | Cocaina: %ig | MoonShine: %i L.", format_cash(VehicleData[tempv][TrunkCash]), VehicleData[tempv][TrunkWeed], VehicleData[tempv][TrunkCocaine], VehicleData[tempv][TrunkMoonShine]); SendClientMessage(playerid,COLOR_DARKBLUE, "[Porta-malas] Weapons: Use /portamalas verarmas | Colete: use /portamalas pegar colete."); if(VehicleData[tempv][TrunkPhone] >= 1) SendClientMessageF(playerid, COLOR_DARKBLUE, "Não há nenhum celular guardado nesse veiculo."); } else if(IsFactionVehicle(tempv)) { SendClientMessageF(playerid,COLOR_DARKBLUE, "[Porta-malas] Dinheiro: $%s | Marijuana: %ig | Cocaina: %ig | MoonShine: %i L.", format_cash(FVehicleData[tempv][FTrunkCash]), FVehicleData[tempv][FTrunkWeed], FVehicleData[tempv][FTrunkCocaine], FVehicleData[tempv][FTrunkMoonShine]); SendClientMessage(playerid,COLOR_DARKBLUE, "[Porta-malas] Armas: Use /portamalas verarmas | Colete: use /portamalas pegar colete."); if(FVehicleData[tempv][FTrunkPhone] >= 1) SendClientMessageF(playerid, COLOR_DARKBLUE, "Não há nenhum celular guardado nesse veiculo."); } format(trunkstring, sizeof(trunkstring),"* %s olha para dentro do porta-malas do %s. *",NameRP(playerid),GetVehicleName(tempv)); ProxDetector(15.0,playerid,trunkstring, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else if(strcmp("verarmas",Method,true) == 0)//viewguns { if(IsOwnedCar(tempv)) mysql_format(conn, mquery, sizeof(mquery), "SELECT id,WeaponID,WeaponAmmo FROM weapons WHERE TrunkID = %i AND Deleted = 0 AND WeaponPossession = 0 AND HouseID = -1 AND Gunrack = -1 AND FCarID = -1 AND Dropped = 0", VehicleData[tempv][VehSQLID]); else mysql_format(conn, mquery, sizeof(mquery), "SELECT id,WeaponID,WeaponAmmo FROM weapons WHERE FCarID = %i AND Gunrack = -1 AND Deleted = 0 AND WeaponPossession = 0 AND TrunkID = -1 AND HouseID = -1 AND Dropped = 0", FVehicleData[tempv][FVSQLID]); mysql_pquery(conn, mquery, "ShowTrunkGuns", "d", playerid); return true; } } else SysMsg(playerid, "Use: /portamalas [abrir/fechar/pegar/guardar/mostrar] [item] [quantidade], Itens: Dinheiro, colete, maconha, cocaina, moonshine, arma"); } return true; } CMD:veiculodonate(playerid, params[]) { if(!Logged{playerid}) return true; new rewardCarModel; MySQLFetchInt(SQLID[playerid], "DonationCarModel", rewardCarModel, "players"); if(rewardCarModel == 0) return SysMsg(playerid, "Você não tem um veiculo donate."); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM vehicles WHERE OwnerSQLID = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "ProcessDonationVehicle", "dd", playerid, rewardCarModel); return true; } CMD:mudarevdonate(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid, "Use: /mudarevdonate [veiculo model ou nome]"); if(IsDonator[playerid] < 3) return SysMsg(playerid, "Você precisa ser Donate level 3 ou 4."); new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == 0) return SysMsg(playerid,"Você não estar em nenhum veiculo."); if(vehicleid == VehicleData[vehicleid][IdVehicle] && VehicleData[vehicleid][DonatorCar] && VehicleData[vehicleid][VehicleOwnerSQLID] == SQLID[playerid]) { new Car = GetVehicleModelIdFromName(params); if(Car == -1) { Car = strval(params); if(Car < 400 || Car > 611) return SysMsg(playerid, "Veiculo ID inválido."); } mysql_format(conn, mquery, sizeof(mquery), "SELECT NextChangable FROM vehicles WHERE id = %i LIMIT 1", VehicleData[vehicleid][VehSQLID]); mysql_pquery(conn, mquery, "SetCDV", "ddd", playerid, Car, vehicleid); return true; } else SysMsg(playerid,"Você não é dono de um veiculo de Donate."); return true; } CMD:mod(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo."); new bodyshop = -1, v = GetPlayerVehicleID(playerid); if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(bodyshop == -1) return SysMsg(playerid, "Você deve estar na garagem de Fort Carson ou Palomino Creek para modificar seu veículo."); if(VehicleData[v][Hotwired] == 1) return SysMsg(playerid, "Você não pode modificar um veículo roubado."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser o motorista do veículo."); if(IsHelicopter(v) || IsPlane(v) || IsBoat(v) || IsBike(v)) return SysMsg(playerid,"Você não pode modificar helicópteros, barcos, bicicletas ou aviões."); if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve ser dono do veículo para modificá-lo."); if(aspawned{v}) return SysMsg(playerid, "Você não pode modificar veiculos Admin. Se você estiver usando este veículo sem autorização, por favor, chame um administrador ou ajudante para removê-lo."); new Float:health; GetVehicleHealth(v, health); if(health <= 950) return SysMsg(playerid, "O seu veículo deve estar em boas condições para ser modificado."); Dialog_Show(playerid, vModSelect, DIALOG_STYLE_MSGBOX, "Mod para veiculos", "Selecione o tipo de mod que você gostaria de adicionar ao seu veículo", "Lataria", "Rodas"); return true; } CMD:paintjob(playerid, params[])//observar { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo."); new bodyshop = -1, v = GetPlayerVehicleID(playerid); if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(IsPlayerInDynamicArea(playerid, GarageAreas[6])) bodyshop = 5; //angel pine if(bodyshop == -1) return SysMsg(playerid,"Você não esta em nenhuma garagem de reparação."); if(VehicleData[v][Hotwired] == 1) return SysMsg(playerid, "Você não pode modificar um veículo roubado."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser o motorista do veículo."); if(IsHelicopter(v) || IsPlane(v) || IsBoat(v) || IsBike(v)) return SysMsg(playerid,"Você não pode modificar helicópteros, barcos, bicicletas ou aviões."); if(bodyshop == 5 && (!IsHelicopter(v) && !IsPlane(v))) return SysMsg(playerid,"Você não pode modificar este veiculo nesta garagem."); if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve ser dono do veículo para modificá-lo."); if(aspawned{v}) return SysMsg(playerid, "Você não pode modificar um veiculo spawnado por adminstrador."); new Float:health; GetVehicleHealth(v, health); if(health <= 950) return SysMsg(playerid, "Seu veículo deve estar em boas condições para ser modificado."); if(!IsNumeric(params)) return SysMsg(playerid, "Use: /paintjob [0-3] *0 irá remover qualquer pintura seu veículo tem.*"); new paintjob = strval(params); if(paintjob < 0 || paintjob > 3) return SysMsg(playerid, "Pintura deve ser 0-3."); if(!IsSuitablePaintjobCar(v)) SendSplitMessage(playerid, COLOR_RED, "Nota: Seu veículo atual não suporta pinturas. Você tem mod que não suporta pintura."); if(paintjob != 0) { PendingPaintjob[playerid] = paintjob - 1; ChangeVehiclePaintjob(v, paintjob - 1); SendClientMessage(playerid, COLOR_WHITE, "Você adicionou uma nova "COL_NICEGREEN"pintura{FFFFFF} para sua lista de modificações."); } else { ChangeVehiclePaintjob(v, 3); VehicleData[v][VehiclePaintjob] = 3; SavePlayerVehicles(playerid, 0); PendingPaintjob[playerid] = -1; SendClientMessage(playerid, COLOR_WHITE, "Você removeu o "COL_NICERED"pintura{FFFFFF} do seu veiculo."); } return true; } CMD:limparmods(playerid, params[])//limparmods { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo."); new bodyshop = -1, v = GetPlayerVehicleID(playerid); if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(bodyshop == -1) return SysMsg(playerid, "Você deve estar perto de uma garagem."); new modcount = 0; for(new x = 0; x < 14; x++) if(ModQueue[playerid][x] >= 1) modcount ++; if(PendingPaintjob[playerid] != -1) modcount ++; if(modcount == 0) return SysMsg(playerid, "Você não possui nenhuma instalação de mods no veiculo."); new component; for(new x = 0; x < 14; x++) //removes pending components from the vehicle and then re-adds saved mods { component = GetVehicleComponentInSlot(v, x); if(component != 0) RemoveVehicleComponent(v, component); if(VehicleData[v][VehicleMod][x] && IsVehicleUpgradeCompatible(VehicleData[v][VehicleModel], VehicleData[v][VehicleMod][x])) { AddVehicleComponent(VehicleData[v][IdVehicle], VehicleData[v][VehicleMod][x]); } ModQueue[playerid][x] = 0; } if(PendingPaintjob[playerid] != -1) ChangeVehiclePaintjob(v, 3); PendingPaintjob[playerid] = -1; return true; } CMD:comprarmods(playerid, params[])//comprarmods { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo."); new bodyshop = -1, v = GetPlayerVehicleID(playerid); if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(bodyshop == -1) return SysMsg(playerid, "Você deve estar perto de uma garagem."); new modcount = 0; for(new x = 0; x < 14; x++) if(ModQueue[playerid][x] >= 1) modcount ++; if(PendingPaintjob[playerid] != -1) modcount ++; if(modcount == 0) return SysMsg(playerid, "Você não tem nenhum mods pendente instalação."); new price, spoiler = ModQueue[playerid][CARMODTYPE_SPOILER], hood = ModQueue[playerid][CARMODTYPE_HOOD], roof = ModQueue[playerid][CARMODTYPE_ROOF], lamps = ModQueue[playerid][CARMODTYPE_LAMPS], exhaust = ModQueue[playerid][CARMODTYPE_EXHAUST], wheels = ModQueue[playerid][CARMODTYPE_WHEELS], fbumper = ModQueue[playerid][CARMODTYPE_FRONT_BUMPER], rbumper = ModQueue[playerid][CARMODTYPE_REAR_BUMPER], rvent = ModQueue[playerid][CARMODTYPE_VENT_RIGHT], lvent = ModQueue[playerid][CARMODTYPE_VENT_LEFT]; if(spoiler >= 1000) price += 750; if(hood >= 1000) price += 500; if(roof >= 1000) price += 500; if(lamps>= 1000) price += 200; if(exhaust>= 1000) price += 500; if(wheels >= 1000) price += 500; if(fbumper >= 1000) price += 1000; if(rbumper >= 1000) price += 1000; if(rvent >= 1000) price += 1000; if(lvent >= 1000) price += 1000; if(PendingPaintjob[playerid] != -1) price += 1000; price *= GetVehicleRepairMultiplier(GetVehicleModel(v)); new conf[12]; if(sscanf(params, "s[12]", conf)) return SendClientMessageF(playerid, COLOR_WHITE, "Use: /comprarmods confirmar. Isso irá custar $%s.", format_cash(price)); if(strmatch(conf, "confirmar")) { if(Cash[playerid] - price < 0) return SysMsg(playerid, "Você não tem dinheiro suficiente."); for(new x = 0; x < 14; x++) { if(ModQueue[playerid][x] != 0) { VehicleData[v][VehicleMod][x] = ModQueue[playerid][x]; ModQueue[playerid][x] = 0; } } if(PendingPaintjob[playerid] != -1) VehicleData[v][VehiclePaintjob] = PendingPaintjob[playerid]; PendingPaintjob[playerid] = -1; GivePlayerCash(playerid, -price); SendClientMessageF(playerid, COLOR_WHITE, "Você adicionou mods no seu veiculo por $%s!", format_cash(price)); SavePlayerVehicles(playerid, 0); } return true; } CMD:removemods(playerid) { if(!Logged{playerid}) return true; if(!IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar dentro do veiculo."); new bodyshop = -1, v = GetPlayerVehicleID(playerid); if(IsPlayerInDynamicArea(playerid, GarageAreas[0])) bodyshop = 1; //palomino creek if(IsPlayerInDynamicArea(playerid, GarageAreas[1])) bodyshop = 2; //dillimore if(IsPlayerInDynamicArea(playerid, GarageAreas[2])) bodyshop = 3; //fort carson if(IsPlayerInDynamicArea(playerid, GarageAreas[3])) bodyshop = 4; //el q if(bodyshop == -1) return SysMsg(playerid, "Você deve estar perto de uma garagem."); if(VehicleData[v][Hotwired] == 1) return SysMsg(playerid, "Você não pode modificar um veiculo roubado."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você deve ser o motorista do veículo."); if(IsHelicopter(v) && IsPlane(v) && IsBoat(v) && IsBike(v)) return SysMsg(playerid,"Você não pode modificar Helicopteros, Aviões, Barcos."); if(bodyshop == 5) return SysMsg(playerid,"Você não pode modificar veículos nesta garagem."); if(VehicleData[v][VehicleOwnerSQLID] != SQLID[playerid]) return SysMsg(playerid, "Você deve ser dono deste veiculo."); if(aspawned{v}) return SysMsg(playerid, "Você não pode modificar os veículos spawnados pela administração, ou fazer isso sem autorização de um Helper/Admin."); gstr[0] = EOS; new count = 0; for(new x = 0; x < 14; x++) { if(ModQueue[playerid][x] != 0) { format(sgstr, sizeof(sgstr), "{FF0000}%s: %s\n", ComponentTypes[x], GetVehicleModName(GetVehicleComponentInSlot(v, x))); strcat(gstr, sgstr); count ++; } else if(VehicleData[v][VehicleMod][x] != 0) { format(sgstr, sizeof(sgstr), "%s: %s\n", ComponentTypes[x], GetVehicleModName(GetVehicleComponentInSlot(v, x))); strcat(gstr, sgstr); count ++; } } if(count == 0) return SysMsg(playerid, "Sem mods para remover."); else Dialog_Show(playerid, vModRemove, DIALOG_STYLE_LIST, "Remoção de Mod: Vermelho = Pendente | Branco = Instalado", gstr, "Remove", "Cancelar"); return true; } //End of vehicle commands //Weapon crate commands CMD:caixa(playerid, params[]) { new item[12], item2[12]; if(sscanf(params, "s[12]S()[12]", item, item2)) return SysMsg(playerid,"Use: /caixa [/pegar/colocar/remover/chão/dropar/destruir/lista/ajuda]"); new x = 0; if(strmatch(item, "lista")) { for(x = 0; x < MAX_FACTIONS; x++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ])) { SendClientMessage(playerid, COLOR_WHITE, "[CONTEÚDO DA CAIXA]"); for(new k = 0; k < 5; k++) { if(CrateData[x][CrateWeapon][k] == 0) SendClientMessageF(playerid, COLOR_WHITE, "Slot %i: Vazio", k); else SendClientMessageF(playerid, COLOR_WHITE, "Slot %i: %s", k, GetWeaponNameFromID(CrateData[x][CrateWeapon][k])); } return true; } } return SysMsg(playerid, "Você não está perto de uma caixa."); } else if(strmatch(item, "colocar")) { if(CarryingCrate[playerid] == 0) return SysMsg(playerid, "You are not carrying a crate."); new v = GetNearestVehicle(playerid); if(!IsCrateVehicle(v)) return SysMsg(playerid, "You are not near a suitable vehicle."); if(VehicleBoots[v][1] == 0 && !IsBoat(v)) return SysMsg(playerid, "This vehicle's trunk must be open."); if(Crate{v}) return SysMsg(playerid, "Esse veiculo já tem uma caixa dentro."); new Float:pos[3]; GetVehiclePos(v, pos[0], pos[1], pos[2]); if(!IsPlayerInRangeOfPoint(playerid, 5.0, pos[0], pos[1], pos[2])) return SysMsg(playerid, "Você precisa estar mais perto do veículo."); new index = CrateIndex[playerid]; AttachCrateToVehicle(v, 964); CrateData[CarryingCrate[playerid]][CrateVehicleID] = v; Crate{v} = true; CarryingCrate[playerid] = 0; CrateIndex[playerid] = 0; RemovePlayerAttachedObject(playerid, index); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); SendClientMessageF(playerid, COLOR_WHITE, "You have placed your crate inside of this %s.", GetVehicleName(v)); SetPlayerChatBubble(playerid, "* Sets the weapon crate inside of the vehicle. *", COLOR_EMOTE, 15.0, 6000); return true; } else if(strmatch(item, "remover")) { new v = GetNearestVehicle(playerid); if(VehicleBoots[v][1] == 0 && !IsBoat(v)) return SysMsg(playerid, "This vehicle's trunk must be open."); new Float:pos[3]; GetVehiclePos(v, pos[0], pos[1], pos[2]); if(!IsPlayerInRangeOfPoint(playerid, 5.0, pos[0], pos[1], pos[2])) return SysMsg(playerid, "Você precisa estar mais perto do veículo."); for(x = 0; x < MAX_FACTIONS; x++) { if(CrateData[x][CrateVehicleID] == v) { if(GetFreePlayerObjectIndex(playerid) == -1) return SysMsg(playerid, "Você já está carregando uma caixa de armas, ou está sem slot para segurar outro objeto."); DestroyDynamicObjectEx(VehObject[v], "VehObject[v]"); VehObject[v] = INVALID_OBJECT_ID; CrateData[x][CrateVehicleID] = 0; Crate{v} = false; CarryingCrate[playerid] = x; CrateIndex[playerid] = GetFreePlayerObjectIndex(playerid); SetPlayerAttachedObject(playerid, CrateIndex[playerid], 964, 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerChatBubble(playerid, "* Chega ao veículo e agarra a caixa da arma de dentro dela. *", COLOR_EMOTE, 15.0, 6000); OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); return true; } } return SysMsg(playerid, "Esse veiculo não tem caixas dentro."); } else if(strmatch(item, "chão")) { if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid, "Vôcê precisa estar no chão para fazer isso."); for(x = 0; x < MAX_FACTIONS; x++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ])) { if(GetFreePlayerObjectIndex(playerid) == -1) return SysMsg(playerid, "Você já está carregando uma caixa de armas, ou está sem slot para segurar outro objeto."); DestroyDynamicObjectEx(CrateData[x][CrateObject], "CrateData[x][CrateObject]"); CrateData[x][CrateX] = 0.0; CrateData[x][CrateY] = 0.0; CrateData[x][CrateZ] = 0.0; CarryingCrate[playerid] = x; CrateIndex[playerid] = GetFreePlayerObjectIndex(playerid); SetPlayerAttachedObject(playerid, CrateIndex[playerid], 964, 1, -0.057999, 0.659000, 0.000000, 0.000000, 88.099960, -179.699905, 0.499000, 0.559000, 0.414999); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_CARRY); SetPlayerChatBubble(playerid, "* Inclina-se para a frente e pega o caixote da arma do chão. *", COLOR_EMOTE, 15.0, 6000); OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); return true; } } return SysMsg(playerid, "Você não está perto de uma caixa."); } else if(strmatch(item, "dropar")) { if(CarryingCrate[playerid] == 0) return SysMsg(playerid, "Você não está carregando uma caixa."); new Float:Pos[3]; x = CarryingCrate[playerid]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); RemovePlayerAttachedObject(playerid, CrateIndex[playerid]); CrateIndex[playerid] = 0; CarryingCrate[playerid] = 0; GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 2.0); CrateData[x][CrateObject] = CreateDynamicObject(964, Pos[0], Pos[1], Pos[2]-1.0, 0, 0, 0, GetPlayerVirtualWorld(playerid)); CrateData[x][CrateX] = Pos[0]; CrateData[x][CrateY] = Pos[1]; CrateData[x][CrateZ] = Pos[2]; SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE); SetPlayerChatBubble(playerid, "* Inclina-se para a frente e coloca a caixa de armas no chão. *", COLOR_EMOTE, 15.0, 6000); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); return true; } else if(strmatch(item, "destruir")) { for(x = 0; x < MAX_FACTIONS; x++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ])) { for(new k = 0; k < 5; k++) { if(CrateData[x][CrateWeapon][k] != 0) return SysMsg(playerid, "Você não pode destruir uma caixa se tiver armas dentro dela."); } DestroyCrate(x); SetPlayerChatBubble(playerid, "* Descarta a caixa da arma. *", COLOR_EMOTE, 15.0, 6000); SendClientMessage(playerid, COLOR_WHITE, "Você destruiu a caixa de armas."); return true; } } return SysMsg(playerid, "Você não está perto de uma caixa."); } else if(strmatch(item, "pegar")) { if(isnull(item2)) return SysMsg(playerid,"Use: /caixa pegar [ID de dentro da caixa /caixa lista]"); if(!IsNumeric(item2)) return SysMsg(playerid,"A quantidade deve ser um número."); new gun = strval(item2); if(gun > 5) return SysMsg(playerid, "O ID da arma não pode ser maior que 5."); for(x = 0; x < MAX_FACTIONS; x++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, CrateData[x][CrateX], CrateData[x][CrateY], CrateData[x][CrateZ])) { if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você não pode pegar outra arma da caixa se você não tem mais que um coldre."); new wid = CrateData[x][CrateWeapon][gun], Slot = GetWeaponSlot(wid); if(!WeaponCheck(playerid, wid)) return SysMsg(playerid, "Você não pode pegar essa arma. Ou tens duas pistolas ou uma arma primária e uma pistola na tua pessoa."); if(CrateData[x][CrateWeapon][gun] == 0) return SysMsg(playerid, "Esta caixa não tem uma arma nesse slot."); if(WeaponData[playerid][GetWeaponSlot(CrateData[x][CrateWeapon][gun])][Weapon] == CrateData[x][CrateWeapon][gun]) return SysMsg(playerid, "Você já tem essa arma na sua pessoa."); if(WeaponData[playerid][Slot][WeaponID] >= 1) return SysMsg(playerid, "Você já possui uma arma desse tipo."); if(CrateData[x][CrateWeapon][gun] == 21) { new Float:arm; GetPlayerArmour(playerid, arm); if(arm > 0) return SysMsg(playerid, "Você já tem um colete."); SetPlayerArmourEx(playerid, 100.0, 1); } else GivePlayerWeaponEx(playerid, CrateData[x][CrateWeapon][gun], GetDefaultWeaponAmmo(CrateData[x][CrateWeapon][gun]), 2); SetPlayerChatBubble(playerid, "* Ajoelha-se e pega uma arma da caixa*", COLOR_EMOTE, 15.0, 6000); SendClientMessageF(playerid, COLOR_WHITE, "Você pegou uma %s da caixa de armas.", weaponstring[CrateData[x][CrateWeapon][gun]]); CrateData[x][CrateWeapon][gun] = 0; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); return true; } } return SysMsg(playerid, "Você não está perto de uma caixa."); } else if(strmatch(item, "ajuda")) { SendClientMessage(playerid, COLOR_WHITE, "[GSRP Sistema de arma - Ajuda]"); SysMsg(playerid,"Opção: Pegar - Tirar da caixa - Syntax: /caixa pegar [slotid (/caixas lista para ver o slot)]"); SysMsg(playerid,"Opção: Colocar - Coloca a caixa no porta-malas de um veículo (Use /caixasveiculo para ver se os veiculos) - Syntax: /caixa colocar"); SysMsg(playerid,"Opção: Remover - Remove a caixa do porta-malas de um veículo - Syntax: /caixa remover"); SysMsg(playerid,"Opção: Pega do chão - Pegue uma caixa do chão (Você precisa está proximo da caixa) - Syntax: /caixa chão"); SysMsg(playerid,"Opção: Drop - Coloca a caixa na sua frente (Precisa está segurando) - Syntax: /caixa dropar"); SysMsg(playerid,"Opção: Destruir - Destruir completamente a caixa - Syntax: /caixa destruir"); SysMsg(playerid,"Opção: Lista - Lista de armas dentro da caixa - Syntax: /caixa listas"); SysMsg(playerid,"Opção: Ajuda - Lista de menu de ajuda para o sistema de caixas - Syntax: /caixa ajuda"); } else SysMsg(playerid,"Use: /caixa [/pegar/colocar/remover/chão/dropar/destruir/lista/ajuda]"); return true; } CMD:caixasveiculo(playerid, params[])//cratevehicles //caixas { if(!Logged{playerid}) return true; SendClientMessage(playerid, COLOR_WHITE, "Você só pode colocar caixas de armas nestes veículos:"); SendSplitMessage(playerid, COLOR_WHITE, "Yosemite, Burrito, Berkey's RC Van, Bobcat, Walton, Benson, Yankee, Boxville, Rumpo, Mule, Tropic, Marquis, Speeder, Reefer, Coastguard"); return true; } //end of weapon crate commands //general, misc commands CMD:stats(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) ShowPlayerStats(playerid, playerid); else { if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /stats [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); ShowPlayerStats(playa, playerid); } return true; } CMD:ttp(playerid, params[]) { if(!Logged{playerid}) return true; new d = 0, h = 0, temp = TotalTimePlayed[playerid]; while(temp > 1440) { temp -= 1440; d++; } while(temp > 60) { temp -= 60; h++; } SendClientMessageF(playerid, COLOR_WHITE, "Tempo total jogado: {00FF00}%i{FFFFFF} dias {00FF00}%i{FFFFFF} horas e {00FF00}%i{FFFFFF} minutes.", d, h, temp); return true; } CMD:idade(playerid, params[]) { if(!Logged{playerid}) return true; mysql_format(conn, mquery, sizeof(mquery), "SELECT BirthYear, BirthMonth, BirthDate FROM players WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery, "AgeCheck", "d", playerid); return true; } CMD:mudardniver(playerid, params[]) { if(!Logged{playerid}) return true; new age, birthyear, birthmonth, birthday, thstndrd[3]; if(sscanf(params, "iii", birthday, birthmonth, birthyear)) return SysMsg(playerid,"Use: /mudardniver [Dia 1-31] [Mês 1-12] [Ano] *Isso é gratis*"); if(birthday < 1 || birthday > 31) return SysMsg(playerid, "Dia inválido. [1 ?31]"); if(birthmonth < 1 || birthmonth > 12) return SysMsg(playerid, "Mês inválido. [1 ?12]"); if(birthday > LastDayInMonth(birthmonth)) return SysMsg(playerid, "Dia inválido para o mês escolhido."); if(birthyear > gServerYear - 16 || birthyear < 1900) return SysMsg(playerid, "Ano inválido. Você deve ter pelo menos 16 anos e o ano não pode ser inferior a 1900."); if(birthday > LastDayInMonth(birthmonth)) return SysMsg(playerid, "Dia inválido para o mês escolhido."); if(birthyear > gServerYear - 16 || birthyear < 1900) return SysMsg(playerid, "Ano inváido. Você deve ter pelo menos 16 anos e o ano não pode ser inferior a 1900."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET BirthYear = %i, BirthMonth = %i, BirthDate = %i WHERE id = %i", birthyear, birthmonth, birthday, SQLID[playerid]); mysql_pquery(conn, mquery); age = gServerYear - birthyear; switch(birthday) { case 1,21,31: format(thstndrd, sizeof(thstndrd), ""); case 2,22: format(thstndrd, sizeof(thstndrd), ""); case 3,23: format(thstndrd, sizeof(thstndrd), ""); default: format(thstndrd, sizeof(thstndrd), ""); } SendClientMessageF(playerid, COLOR_WHITE, "Seu aniversário é: %i%s of %s %i.", birthday, thstndrd, GetMonthName(birthmonth), birthyear); SendClientMessageF(playerid, COLOR_WHITE, "Isso significa que você tem %i anos de idade.", age); return true; } CMD:buscarano(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid, "Use: /buscarano [Idade desejada]"); new age = strval(params); if(age < 16 || age > 100) return SysMsg(playerid, "Idade inválida. [16 - 100]"); new chosenyear = gServerYear - age; SendClientMessageF(playerid, COLOR_WHITE, "Se a idade atual for %i Anos, Você teria que definir seu ano de nascimento para %i.", age, chosenyear); return true; } CMD:mostrarlicencas(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return ShowPlayerLicenses(playerid, playerid); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /mostrarlicencas [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso."); if(playa != playerid) { format(gstr, sizeof(gstr),"* %s mostra suas licenças para %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); for(new lic = 0; lic < sizeof(Licenses[]); lic++) if(Licenses[playerid][lic] == 1) UnlockAchievement(playerid, 43); } ShowPlayerLicenses(playerid, playa); return true; } CMD:mostrarl(playerid, params[]) return cmd_mostrarlicencas(playerid, params); CMD:mostrarchaves(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /mostrarchaves [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(playa == playerid) return SysMsg(playerid,"Você não pode mostrar uma chave a si mesmo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso."); new count = 0; format(gstr, sizeof(gstr), "Chaves do veículo de %s: ", NameEx(playerid)); for(new i = 1, x = GetVehiclePoolSize(); i <= x; i++) { if(VehicleData[i][VehicleOwnerSQLID] == SQLID[playerid]) { if(!VehicleData[i][Impounded]) { if(count == 0) { strcat(gstr, GetVehicleNameEx(VehicleData[i][VehicleModel])); } else { strcat(gstr, ", "); strcat(gstr, GetVehicleNameEx(VehicleData[i][VehicleModel])); } count ++; } } } SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr),"* %s mostra para %s um conjunto de chaves. *", NameRP(playerid), NameRP(playa)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:dmv(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 2.0, -2025.8422,-114.5996,1035.1719)) return SysMsg(playerid, "Você não está em um DMV."); Dialog_Show(playerid, DMVMain, DIALOG_STYLE_LIST, "Bem-vindo ao DMV! Por favor selecione uma opção:", "Licença para carros gerais [GVL-1]\nLicença para veículos grande [GVL-2]\nLicença para motos [MB]\nLicença para Barcos [B]\nLicença para helicóptero [A1]\nLicença para avião [A2]", "Selecionar", "Sair"); return true; } CMD:finalizarteste(playerid, params[]) { if(!Logged{playerid}) return true; if(DMV_CanEndTest[playerid] == 0) return true; DMV_CanEndTest[playerid] = 0; SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, 0); SetPlayerPos(playerid, 1251.018798, 134.651306, 19.948959); SetPlayerFacingAngle(playerid, 68.0); TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); PlayerPlaySound(playerid, SOUND_DMV_PASS_END, 0, 0, 0); GameTextForPlayer(playerid, " ", 100, 3); SendClientMessage(playerid, COLOR_LIGHTGREEN, "[DMV] Obrigado pelo uso do San Andreas DMV. Aproveite a sua nova licença e conduza com segurança."); return true; } CMD:comprarlevel(playerid, params[]) { if(!Logged{playerid}) return true; new ReqXP = PlayerLevel[playerid] * 10; if(isnull(params)) { SendClientMessageF(playerid,COLOR_ORANGE,"Um Level-Up exigirá %i Pontos de experiência, você tem atualmente %i.",ReqXP,PlayerXP[playerid]); SendClientMessage(playerid,COLOR_ORANGE,"Para subir de level agora, digite '/comprarlevel confirmar'"); return true; } if(strcmp("confirmar",params) == 0) { if(PlayerXP[playerid] < ReqXP) return SysMsg(playerid,"Você não tem XP suficiente para subir de nível."); PlayerXP[playerid] -= ReqXP; PlayerLevel[playerid]++; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET PlayerXP = %i, PlayerLevel = %i WHERE id = %i", PlayerXP[playerid], PlayerLevel[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); if(PlayerLevel[playerid] >= 2) UnlockAchievement(playerid,20); if(PlayerLevel[playerid] >= 5) UnlockAchievement(playerid,21); if(PlayerLevel[playerid] >= 10) UnlockAchievement(playerid,22); if(PlayerLevel[playerid] >= 20) UnlockAchievement(playerid,23); if(PlayerLevel[playerid] >= 30) UnlockAchievement(playerid,52); if(PlayerLevel[playerid] >= 40) UnlockAchievement(playerid,53); if(PlayerLevel[playerid] >= 50) UnlockAchievement(playerid,54); if(PlayerLevel[playerid] >= 75) UnlockAchievement(playerid,55); if(PlayerLevel[playerid] >= 100) UnlockAchievement(playerid,56); if(PlayerLevel[playerid] >= 101) UnlockAchievement(playerid,57); SendClientMessageF(playerid,COLOR_ORANGE,"Parabéns! Agora você é level %i. %i Pontos de experiência eram necessários.",PlayerLevel[playerid],ReqXP); if(PlayerLevel[playerid] == 2) { GivePlayerCash(playerid, 2500); SendClientMessage(playerid, COLOR_GREEN, "Level up bonus! Você recebeu $2.500 por atingir o nível dois."); } if(PlayerLevel[playerid] == 3) { GivePlayerCash(playerid, 5000); SendClientMessage(playerid, COLOR_GREEN, "Level up bonus! Você recebeu $5.000 por alcançar o nível três."); } return true; } return true; } CMD:comprararmaskill(playerid, params[])//comprar skill { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid,5.5,312.582183, -165.342315, 999.601013)) return SysMsg(playerid,"Você não está em um Ammunation."); if(WeaponSkillLevel[playerid] == 10) return SysMsg(playerid,"Sua habilidade é máxima."); new ReqXP; if(WeaponSkillLevel[playerid] <= 1) ReqXP = 5; if(WeaponSkillLevel[playerid] == 2) ReqXP = 5; if(WeaponSkillLevel[playerid] == 3) ReqXP = 5; if(WeaponSkillLevel[playerid] == 4) ReqXP = 10; if(WeaponSkillLevel[playerid] == 5) ReqXP = 10; if(WeaponSkillLevel[playerid] == 6) ReqXP = 10; if(WeaponSkillLevel[playerid] == 7) ReqXP = 20; if(WeaponSkillLevel[playerid] == 8) ReqXP = 20; if(WeaponSkillLevel[playerid] == 9) ReqXP = 20; if(isnull(params)) { format(gstr, sizeof(gstr),"O nível de habilidade atual da arma é %i.",WeaponSkillLevel[playerid]); SendClientMessage(playerid,COLOR_ORANGE,gstr); format(gstr, sizeof(gstr),"Um nível de habilidade de arma custará você %i Pontos de experiência. Você tem atualmente %i.",ReqXP,PlayerXP[playerid]); SendClientMessage(playerid,COLOR_ORANGE,gstr); SendClientMessage(playerid,COLOR_ORANGE,"Para comprar a Skill agora, digite '/comprararmaskill confirmar'"); return true; } if(strcmp("confirmar",params) == 0) { if(PlayerXP[playerid] < ReqXP) return SysMsg(playerid,"Você não tem pontos de experiência suficiente para subir de nível."); PlayerXP[playerid] -= ReqXP; if(WeaponSkillLevel[playerid] == 0) { WeaponSkillLevel[playerid] = 2; } else { WeaponSkillLevel[playerid]++; } mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET PlayerXP = %i, WeaponSkill = %i WHERE id = %i", PlayerXP[playerid], WeaponSkillLevel[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); new newSkill = WeaponSkillLevel[playerid] * 100; new SkillOneHand; if(newSkill > 999) { newSkill = 999; SkillOneHand = 900; } SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL, newSkill-10); SetPlayerSkillLevel(playerid, WEAPONSKILL_PISTOL_SILENCED, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_DESERT_EAGLE, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_SHOTGUN, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_SAWNOFF_SHOTGUN, SkillOneHand); SetPlayerSkillLevel(playerid, WEAPONSKILL_SPAS12_SHOTGUN, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_MICRO_UZI, SkillOneHand); SetPlayerSkillLevel(playerid, WEAPONSKILL_MP5, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_AK47, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_M4, newSkill); SetPlayerSkillLevel(playerid, WEAPONSKILL_SNIPERRIFLE, newSkill); format(gstr, sizeof(gstr),"Parabéns! Sua habilidade arma é agora nível %i! Exigindo %i Pontos de experiência.",WeaponSkillLevel[playerid],ReqXP); SendClientMessage(playerid,COLOR_ORANGE,gstr); if(WeaponSkillLevel[playerid] == 10) { PlayerXP[playerid] += 50; MySQLUpdateInt(SQLID[playerid], "PlayerXP", PlayerXP[playerid], "players"); SendClientMessage(playerid,COLOR_PINK," >> Habilidade da arma estourou! (+50 Pontos de experiência)"); UnlockAchievement(playerid,14); } return true; } return true; } CMD:inventario(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(isnull(params)) ShowPlayerInventory(playerid, playerid); else { if(!IsPlayerAdminLevelOK(playerid, 1)) return ShowPlayerInventory(playerid, playerid); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /inventario [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); ShowPlayerInventory(playa, playerid); } return true; } CMD:dar(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); new playa = -1, itemname[25], itemamount[45], amount, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]s[25]S()[45]", name, itemname, itemamount)) { SysMsg(playerid,"Use: /dar [ID ou nome do jogador] [item] [Opcional: quantidade/nome]"); SysMsg(playerid,"Items: Vara, Isca, Dado, Arma, Radio, GalaoCombustivel, Relogio, Isqueiro, Cigarro, GPS"); SysMsg(playerid,"Marijuana, Cocaina, Moonshine, Bong, Papel, kitmedico, SementeMaconha, Oleo"); return true; } if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(!Logged{playa}) return SysMsg(playerid,"Ele deve estar logados."); if(playa == playerid) return SysMsg(playerid,"Você não pode dar isso a você mesmo."); new Float:Pos[3]; GetPlayerPos(playa, Pos[0], Pos[1], Pos[2]); if(!IsPlayerInRangeOfPoint(playerid, 3.5, Pos[0], Pos[1], Pos[2])) return SysMsg(playerid,"Você deve estar perto do jogador para dar-lhes algo."); if(strcmp("Vara",itemname,true) == 0) { if(Inventory[playerid][FishingRod] == 0) return SysMsg(playerid,"Você não tem uma Vara de Pesca."); if(Inventory[playa][FishingRod] == 1 && FishingRodHealth[playa] != 0) return SysMsg(playerid,"Esse jogador já tem uma vara de pesca."); Inventory[playerid][FishingRod] = 0; Inventory[playa][FishingRod] = 1; MySQLUpdateInt(SQLID[playerid], "FishingRod", Inventory[playerid][FishingRod], "players"); MySQLUpdateInt(SQLID[playa], "FishingRod", Inventory[playa][FishingRod], "players"); format(gstr, sizeof(gstr), "Você deu para %s sua vara de pesca.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu uma vara de pesca.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega uma vara de pesca para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Isca",itemname,true) == 0) { if(Inventory[playerid][FishingBait] == 0) return SysMsg(playerid,"Você não tem nenhuma Isca."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Bait [Quantidade de Isca]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][FishingBait]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)"); Inventory[playerid][FishingBait] -= amount; Inventory[playa][FishingBait] += amount; MySQLUpdateInt(SQLID[playerid], "FishingBait", Inventory[playerid][FishingBait], "players"); MySQLUpdateInt(SQLID[playa], "FishingBait", Inventory[playa][FishingBait], "players"); format(gstr, sizeof(gstr), "Você deu para %s %i iscas de pesca. Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][FishingBait]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu %i iscas de pesca. Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][FishingBait]); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega algumas iscas de pesca para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Dado",itemname,true) == 0) { if(Inventory[playerid][Dice] == 0) return SysMsg(playerid,"Você não tem nenhum dado para dar."); if(Inventory[playa][Dice] == 1) return SysMsg(playerid,"Esse jogador já tem Dado."); Inventory[playerid][Dice] = 0; Inventory[playa][Dice] = 1; MySQLUpdateInt(SQLID[playerid], "HasDice", Inventory[playerid][Dice], "players"); MySQLUpdateInt(SQLID[playa], "HasDice", Inventory[playa][Dice], "players"); format(gstr, sizeof(gstr), "Você deu para %s seu dado.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu um dado.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s retira um dado do bolso e entrega a %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Radio",itemname,true) == 0) { if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem Rádio."); if(Inventory[playa][Radio] == 1) return SysMsg(playerid,"Esse jogador já tem um rádio."); Inventory[playerid][Radio] = 0; Inventory[playa][Radio] = 1; RadioPoweredOn[playa] = 0; RadioFrequency[playa] = 1000; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasRadio = %i, RadioFrequency = %i, RadioPower = %i WHERE id = %i", Inventory[playa][Radio], RadioFrequency[playa], RadioPoweredOn[playa], SQLID[playa]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s seu radio.", NameRP(playa)); SendClientMessageF(playa, COLOR_WHITE, "%s te deu um Radio.", NameRP(playerid)); format(gstr, sizeof(gstr), "* %s entrega um Rádio para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Relogio",itemname,true) == 0) { if(Inventory[playerid][Watch] == 0) return SysMsg(playerid,"Você não tem nenhum Relógio."); if(Inventory[playa][Watch] == 1) return SysMsg(playerid,"Esse jogador já tem um Relógio."); Inventory[playerid][Watch] = 0; Inventory[playa][Watch] = 1; TextDrawHideForPlayer(playerid, TimeText); TextDrawHideForPlayer(playerid, TimeText24); TimeIsDisplayed{playerid} = false; MySQLUpdateInt(SQLID[playerid], "HasWatch", Inventory[playerid][Watch], "players"); MySQLUpdateInt(SQLID[playa], "HasWatch", Inventory[playa][Watch], "players"); format(gstr, sizeof(gstr), "Você deu seu relógio para %s.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu um relógio.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega um relógio para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("GalaoGasolina",itemname,true) == 0) { if(Inventory[playerid][FuelCan][0] == -1) return SysMsg(playerid,"Você não tem nenhum Galão de Gasolina."); if(Inventory[playa][FuelCan][0] >= 0) return SysMsg(playerid,"Esse jogador já tem um galão de Gasolina."); Inventory[playa][FuelCan][0] = Inventory[playerid][FuelCan][0]; Inventory[playa][FuelCan][1] = Inventory[playerid][FuelCan][1]; Inventory[playerid][FuelCan][0] = 0; Inventory[playerid][FuelCan][1] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasFuelCan = %i, HasFuelCanType = %i WHERE id = %i", Inventory[playerid][FuelCan][0], Inventory[playerid][FuelCan][1], SQLID[playerid]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasFuelCan = %i, HasFuelCanType = %i WHERE id = %i", Inventory[playa][FuelCan][0], Inventory[playa][FuelCan][1], SQLID[playa]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr), "Você deu para %s seu galão de Gasolina.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu um galão de Gasolina.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega uma galão de gasolina para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Celular",itemname, true) == 0) { if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um celular para dar a ninguém."); if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto toca."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode armazenar seu celular enquanto você o está usando."); if(Inventory[playa][MobilePhone] == 1) return SysMsg(playerid, "Este jogador já possui um celular."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossessor = %i WHERE id = %i", SQLID[playa], PhoneData[playerid][pID]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_WHITE, "Você deu seu celular para %s.", NameRP(playa)); SendClientMessageF(playa, COLOR_WHITE, "%s te deu um Celular.", NameRP(playerid)); format(gstr, sizeof(gstr), "* %s entrega um celular para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i AND PhonePossession = 1", PhoneData[playerid][pID]); mysql_pquery(conn, mquery, "LoadPlayerPhone", "d", playa); ClearPhoneData(playerid); } if(strcmp("arma",itemname,true) == 0 || strcmp("gun",itemname,true) == 0) { if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"(( Por favor, não dê armas dentro de veículos. ))"); if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"(( Por favor, não dê armas às pessoas dentro de veículos. ))"); if(sscanf(params, "us[25]s[30]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] arma [Nome da Arma]"); new wid = GetWeaponIdFromName(itemamount); if(wid == -1) return SysMsg(playerid,"Nome de arma inválido."); if(wid < 1 || wid > 47) return SysMsg(playerid,"Arma Inválida."); if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Arma inválida."); new Slot = GetWeaponSlot(wid); if(!WeaponCheck(playa, wid)) return SysMsg(playerid, "Essa pessoa não pode segurar esta arma no momento."); if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem esta arma."); if(WeaponData[playa][Slot][Weapon] >= 1) return SysMsg(playerid,"O receptor já possui uma arma nesse slot."); if(WeaponData[playerid][Slot][WeaponOrigin] == 3 && Faction[playerid] != Faction[playa]) return SysMsg(playerid, "Você não pode dar armas de facção a pessoas fora de sua facção."); TransferWeaponData(playerid, playa, Slot); SetPlayerArmedWeapon(playerid, 0); SyncPlayerWeapons(playerid); SyncPlayerWeapons(playa); SetPlayerArmedWeapon(playa, wid); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s uma %s.", NameRP(playa), GetWeaponNameFromID(wid)); SendClientMessageF(playa, COLOR_WHITE, "%s te deu uma %s.", NameRP(playerid), GetWeaponNameFromID(wid)); format(gstr, sizeof(gstr), "* %s entrega sua arma para %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("drogras",itemname,true)==0) //drug comment { SetPVarInt(playerid, "giveDrugs", playa); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM drugs WHERE drugOwner = %d AND drugAmount > 0 AND drugOwnerType = 'P' LIMIT 20", SQLID[playerid]); mysql_pquery(conn, mquery, "GivePlayerDrugs", "ii", playerid, 0); } if(strcmp("ingredientes",itemname,true) == 0) { SetPVarInt(playerid, "giveIngred", playa); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM ingredients WHERE ingOwner = %d AND ingAmount > 0 AND ingOwnerType = 'P' LIMIT 20", SQLID[playerid]); mysql_pquery(conn, mquery, "GivePlayerIngreds", "ii", playerid, 0); } if(strcmp("Isqueiro",itemname,true) == 0) { if(Inventory[playerid][Lighter] == 0) return SysMsg(playerid,"Você não tem um isqueiro."); if(Inventory[playa][Lighter] >= 1) return SysMsg(playerid,"Esse jogador já possui um isqueiro."); Inventory[playa][Lighter] = Inventory[playerid][Lighter]; Inventory[playerid][Lighter] = 0; MySQLUpdateInt(SQLID[playerid], "HasLighter", Inventory[playerid][Lighter], "players"); MySQLUpdateInt(SQLID[playa], "HasLighter", Inventory[playa][Lighter], "players"); format(gstr, sizeof(gstr), "Você deu seu isqueiro para %s.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu um Isqueiro.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s da um isqueiro para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Cigarro",itemname,true) == 0) { if(Inventory[playerid][Fags] == 0) return SysMsg(playerid,"Você não tem nenhum cigarro."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Cigarro [Quantidade]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][Fags]) return SysMsg(playerid,"Esse montante era inválido. (1 somente para seu valor)"); Inventory[playerid][Fags] -= amount; Inventory[playa][Fags] += amount; MySQLUpdateInt(SQLID[playerid], "HasFags", Inventory[playerid][Fags], "players"); MySQLUpdateInt(SQLID[playa], "HasFags", Inventory[playa][Fags], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i Cigarro(s). Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][Fags]); SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i Cigarro(s). Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][Fags]); if(amount == 1) { format(gstr, sizeof(gstr), "* %s entrega um cigarro para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { format(gstr, sizeof(gstr), "* %s entrega alguns cigarros para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } } if(strcmp("GPS",itemname,true) == 0) { if(Inventory[playerid][GPS] == 0) return SysMsg(playerid,"Vpcê não tem nenhum GPS."); if(Inventory[playa][GPS] == 1) return SysMsg(playerid,"Esse jogador já possui um GPS."); Inventory[playerid][GPS] = 0; Inventory[playa][GPS] = 1; MySQLUpdateInt(SQLID[playerid], "HasGPS", Inventory[playerid][GPS], "players"); MySQLUpdateInt(SQLID[playa], "HasGPS", Inventory[playa][GPS], "players"); format(gstr, sizeof(gstr), "Você deu seu GPS para %s.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu um GPS.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega um GPS para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Marijuana",itemname,true) == 0) { if(Inventory[playerid][Weed] == 0) return SysMsg(playerid,"Você não tem nenhuma Marijuana."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Marijuana [gramas]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][Weed]) return SysMsg(playerid,"Quantidade inválida (1 somente para seu valor)"); if(amount + Inventory[playa][Weed] > DRUG_MAX_WEED) return SysMsgF(playerid, "Quantidade Inválida, %s não seria capaz de carregar tanto Weed. Você pode dar um máximo de %i gramas.", NameEx(playa), DRUG_MAX_WEED - Inventory[playa][Weed]); Inventory[playerid][Weed] -= amount; Inventory[playa][Weed] += amount; MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); MySQLUpdateInt(SQLID[playa], "Weed", Inventory[playa][Weed], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i gramas de marijuana, agora você tem %i restantes.", NameRP(playa), amount, Inventory[playerid][Weed]); SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i gramas de maconha, agora você tem %it.", NameRP(playerid), amount, Inventory[playa][Weed]); format(gstr, sizeof(gstr), "* %s entrega algumas gramas de marijuana para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Cocaina",itemname,true) == 0) { if(Inventory[playerid][Cocaine] == 0) return SysMsg(playerid,"Você não tem nenhuma Cocaina."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] Cocaina [gramas]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)"); if(amount + Inventory[playa][Cocaine] > DRUG_MAX_COCAINE) return SysMsgF(playerid, "Quantidade Inválida, %s não seria capaz de transportar tanto cocaína. Você pode dar um máximo de %i gramas.", NameEx(playa), DRUG_MAX_COCAINE - Inventory[playa][Cocaine]); Inventory[playerid][Cocaine] -= amount; Inventory[playa][Cocaine] += amount; MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); MySQLUpdateInt(SQLID[playa], "Cocaine", Inventory[playa][Cocaine], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i gramas de cocaina, agora você tem %i gramas.", NameRP(playa), amount, Inventory[playerid][Cocaine]); SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i gramas de cocaina, agora você tem %i gramas.", NameRP(playerid), amount, Inventory[playa][Cocaine]); format(gstr, sizeof(gstr), "* %s entrega algumas gramas de cocaina para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("MoonShine",itemname,true) == 0) { if(Inventory[playerid][MoonShine] == 0) return SysMsg(playerid,"Você não tem nenhum MoonShine."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] MoonShine [litros]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][MoonShine]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)"); if(amount + Inventory[playa][MoonShine] > DRUG_MAX_MOONSHINE) return SysMsgF(playerid, "Quantidade Inválida, %s não pode carregar essa quantidade de MoonShine. Você pode dar o máximo de %i litros.", NameEx(playa), DRUG_MAX_MOONSHINE - Inventory[playa][MoonShine]); Inventory[playerid][MoonShine] -= amount; Inventory[playa][MoonShine] += amount; MySQLUpdateInt(SQLID[playerid], "MoonShine", Inventory[playerid][MoonShine], "players"); MySQLUpdateInt(SQLID[playa], "MoonShine", Inventory[playa][MoonShine], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i litros de MoonShine. Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][MoonShine]); SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i litros de MoonShine. Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][MoonShine]); format(gstr, sizeof(gstr), "* %s entrega um litro de MoonShine para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Bong",itemname,true) == 0) { if(Inventory[playerid][Bong] == 0) return SysMsg(playerid,"Você não tem nenhum Bong."); if(Inventory[playa][Bong] == 1) return SysMsg(playerid,"Esse jogador já tem um bong."); Inventory[playerid][Bong] = 0; Inventory[playa][Bong] = 1; MySQLUpdateInt(SQLID[playerid], "Bong", Inventory[playerid][Bong], "players"); MySQLUpdateInt(SQLID[playa], "Bong", Inventory[playa][Bong], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s seu bong.", NameRP(playa)); SendClientMessageF(playa, COLOR_WHITE, "%s te deu um bong.", NameRP(playerid)); format(gstr, sizeof(gstr), "* %s entrega um bong para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("papel",itemname,true) == 0)//revisar { if(Inventory[playerid][RollingPaper] == 0) return SysMsg(playerid,"Você não tem nenhum papel para dar."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] papel [quantidade]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][RollingPaper]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)"); if(Inventory[playa][RollingPaper] + amount > MAX_ROLLINGPAPER) return SysMsg(playerid, "Que o jogador não pode ter que muitos papéis rolando."); Inventory[playerid][RollingPaper] -= amount; Inventory[playa][RollingPaper] += amount; MySQLUpdateInt(SQLID[playerid], "RollingPaper", Inventory[playerid][RollingPaper], "players"); MySQLUpdateInt(SQLID[playa], "RollingPaper", Inventory[playa][RollingPaper], "players"); format(gstr, sizeof(gstr), "Você deu para %s %i alguns papéis. Agora você tem %i.", NameRP(playa), amount, Inventory[playerid][RollingPaper]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s te deu %i alguns papéis. Agora você tem %i.", NameRP(playerid), amount, Inventory[playa][RollingPaper]); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega alguns papéis rolantes %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("kitmedico",itemname,true) == 0) { if(Inventory[playerid][MedKit] == 0) return SysMsg(playerid,"Você não tem um kit médico para dar."); if(Inventory[playa][MedKit] == 1) return SysMsg(playerid,"Esse jogador já tem um kit médico."); Inventory[playa][MedKit] = 1; Inventory[playerid][MedKit] = 0; MySQLUpdateInt(SQLID[playerid], "HasMedKit", Inventory[playerid][MedKit], "players"); MySQLUpdateInt(SQLID[playa], "HasMedKit", Inventory[playa][MedKit], "players"); format(gstr, sizeof(gstr), "Você deu seu MedKit para %s.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "%s deu-lhe o seu MedKit.", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s entrega um Kit médico para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("SementeMarijuana",itemname,true) == 0) { if(Inventory[playerid][WeedSeed] == 0) return SysMsg(playerid,"Você não tem nenhuma Semente de Marijuana."); if(sscanf(params, "us[25]s[45]", playa, itemname, itemamount)) return SysMsg(playerid,"Use: /dar [ID ou nome do jogador] SementeMarijuana [Quantidade]"); amount = strval(itemamount); if(amount < 1 || amount > Inventory[playerid][WeedSeed]) return SysMsg(playerid,"Essa quantidade é inválida. (1 somente para seu valor)"); if(Inventory[playa][WeedSeed] + amount > MAX_WEEDSEED) return SysMsg(playerid, "Esse jogador não pode ter muitas sementes de marijuana."); if(PlayerLevel[playa] < 5) return SysMsg(playerid, "Os jogadores precisam ser pelo menos o nível 5 para ter esse item."); Inventory[playerid][WeedSeed] -= amount; Inventory[playa][WeedSeed] += amount; MySQLUpdateInt(SQLID[playerid], "HasWeedSeed", Inventory[playerid][WeedSeed], "players"); MySQLUpdateInt(SQLID[playa], "HasWeedSeed", Inventory[playa][WeedSeed], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Você deu para %s %i semente de marijuana, agora você tem %i.", NameRP(playa), amount, Inventory[playerid][WeedSeed]); SendClientMessageF(playa, COLOR_WHITE, "%s te deu %i sementes de marijuana, agora você %i.", NameRP(playerid), amount, Inventory[playa][WeedSeed]); format(sgstr, sizeof(sgstr), "* %s entrega algumas sementes de marijuana para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } if(strcmp("Oleo", itemname, true) == 0) { if(Inventory[playerid][EngineOil] == 0) return SysMsg(playerid, "Você não tem nenhum óleo de motor."); if(Inventory[playa][EngineOil] == 1) return SysMsg(playerid, "Esse jogador já tem óleo de motor."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasEngineOil = 0 WHERE id = %i", SQLID[playerid]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasEngineOil = 1 WHERE id = %i", SQLID[playa]); mysql_pquery(conn, mquery); Inventory[playerid][EngineOil] = 0; Inventory[playa][EngineOil] = 1; SendClientMessageF(playerid, COLOR_WHITE, "Você deu seu óleo de motor para %s.", NameRP(playa)); SendClientMessageF(playa, COLOR_WHITE, "%s te deu um Litro de óleo de motor.", NameRP(playerid)); format(sgstr, sizeof(sgstr), "* %s da um litro de óleo de motor para %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } CMD:drop(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode usar isso em um veículo."); new itemname[30], amount[50]; if(sscanf(params, "s[20]S()[50]", itemname, amount)) { SysMsg(playerid,"Use: /drop [item]"); SysMsg(playerid,"Itens: Arma, Marijuana, Cocaina, Moonshine, Roupas, Maleta, Celular"); //Items: Weapon, Weed, Cocaine, Moonshine, Clothes, Briefcase, Phone"); return true; } if(strcmp("arma",itemname,true) == 0) { if(DeathTimer[playerid] == 0 && Dead{playerid}) return SysMsg(playerid, "Você não pode dropar uma arma se estiver morto."); new wCount = 0; for(new w = 0; w < MAX_TOTAL_WEAPONS; w++) { if(WeaponData[playerid][w][Weapon] > 0) { wCount ++; } } if(!wCount) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Você não tem armas para dropar."); new wid = GetPlayerWeapon(playerid); if(wid == 0) return SysMsg(playerid,"Você precisa estar segurando a arma para soltá-lo."); if(wid < 1 || wid > 47) return SysMsg(playerid,"Você não pode dropar essa arma."); if(wid == 19 || wid == 20 || wid == 21) return SysMsg(playerid,"Você não pode dropar essa arma."); new Slot = GetWeaponSlot(wid); if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem essa arma."); if(WeaponData[playerid][Slot][WeaponOrigin] == 3) return SysMsg(playerid, "Você não pode dropar armas de facção."); new Float:X,Float:Y,Float:Z; GetPlayerPos(playerid, X, Y, Z); DropGun(playerid, 1, WeaponData[playerid][Slot][Weapon], WeaponData[playerid][Slot][WeaponAmmo], X, Y, Z, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); SendClientMessage(playerid, COLOR_WHITE, "Você dropou sua arma no chão. Você pegar o item usando /pegaritem."); format(sgstr, sizeof(sgstr), "* %s coloca uma arma no chão. *", NameRP(playerid)); SetPlayerChatBubble(playerid, sgstr, COLOR_EMOTE, 20, 7000); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 0, OwnerSQLID = 0, WeaponAmmo = %i, Dropped = 1 WHERE id = %i", WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); ResetWeaponVariables(playerid, 0, Slot); SetPlayerArmedWeapon(playerid, 0); SyncPlayerWeapons(playerid); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); return true; } else if(strcmp("marijuana",itemname,true) == 0) { if(Inventory[playerid][Weed] == 0) return SysMsg(playerid, "Você não tem nenhuma Buxa de Marijuana."); new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); new virtw = GetPlayerVirtualWorld(playerid); DropGun(playerid, 2, 1575, Inventory[playerid][Weed], Pos[0], Pos[1], Pos[2], virtw, GetPlayerInterior(playerid)); Inventory[playerid][Weed] = 0; MySQLUpdateInt(SQLID[playerid], "Weed", 0, "players"); format(gstr, sizeof(gstr), "* %s joga algumas buxas de Marijuana no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strcmp("MoonShine",itemname,true) == 0) { if(Inventory[playerid][MoonShine] == 0) return SysMsg(playerid, "Você não tem Moonshine para dropar."); new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); DropGun(playerid, 3, 1950, Inventory[playerid][MoonShine], Pos[0], Pos[1], Pos[2]+0.4, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); Inventory[playerid][MoonShine] = 0; MySQLUpdateInt(SQLID[playerid], "MoonShine", 0, "players"); format(gstr, sizeof(gstr), "* %s joga uma garrafa de MoonShine no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); return true; } else if(strcmp("Cocaina",itemname,true) == 0) { if(Inventory[playerid][Cocaine] == 0) return SysMsg(playerid, "Você não tem nenhuma cocaina para dropar."); new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); new virtw = GetPlayerVirtualWorld(playerid); DropGun(playerid, 4, 1577, Inventory[playerid][Cocaine], Pos[0], Pos[1], Pos[2], virtw, GetPlayerInterior(playerid)); Inventory[playerid][Cocaine] = 0; MySQLUpdateInt(SQLID[playerid], "Cocaine", 0, "players"); format(gstr, sizeof(gstr), "* %s joga algumas cocainas no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); return true; } else if(strcmp("roupas",itemname,true) == 0) { if(sscanf(params, "s[20]s[50]", itemname, amount)) return SysMsg(playerid, "Use: /drop [roupas] [Slot]"); new slot = strval(amount); if(slot < 1 || slot > 5) return SysMsg(playerid, "O slot deve ser entre 1 e 5."); slot --; if(Clothes[playerid][slot] == 0) return SysMsg(playerid, "Você não tem roupas nesse slot."); if(Clothes[playerid][slot] == cPlayersSkin[playerid]) return SysMsg(playerid, "Você não pode dropar uma roupa que estar usando."); Clothes[playerid][slot] = 0; slot ++; new str[10]; format(str,sizeof(str),"SkinSet%i",slot); MySQLUpdateInt(SQLID[playerid], str, Clothes[playerid][slot-1], "players"); format(gstr, sizeof(gstr), "Você dropou uma roupa do slot %i.", slot); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s joga algumas roupas no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); return true; } else if(strcmp("maleta",itemname,true) == 0) { if(Inventory[playerid][Briefcase] == 0) return SysMsg(playerid, "Você não tem uma maleta para dropar."); if(BriefcaseDropped[playerid] == 1) return SysMsg(playerid, "Você pode dropa apenas uma maleta."); new Float:Pos[3]; GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); GetXYInFrontOfPlayer(playerid, Pos[0], Pos[1], 3.0); Inventory[playerid][Briefcase] = 0; BriefcaseDropped[playerid] = 1; BriefcaseDropPos[playerid][0] = Pos[0]; BriefcaseDropPos[playerid][1] = Pos[1]; BriefcaseDropPos[playerid][2] = Pos[2]; BriefcaseDropWorld[playerid][0] = GetPlayerVirtualWorld(playerid); BriefcaseDropWorld[playerid][1] = GetPlayerInterior(playerid); BriefcaseDropItems[playerid][0] = BriefcaseWeapon[playerid]; BriefcaseDropItems[playerid][2] = BriefcaseCash[playerid]; BriefcaseDropItems[playerid][3] = BriefcaseWeed[playerid]; BriefcaseDropItems[playerid][4] = BriefcaseCocaine[playerid]; BriefcaseWeapon[playerid] = 0; BriefcaseCash[playerid] = 0; BriefcaseWeed[playerid] = 0; BriefcaseCocaine[playerid] = 0; BriefcaseDropMisc[playerid][0] = BriefcaseLocked[playerid]; BriefcaseDropMisc[playerid][1] = BriefcaseCode[playerid]; BriefcaseLocked[playerid] = 0; BriefcaseCode[playerid] = 0; if(BriefcaseDropItems[playerid][2] > 0) { format(gstr, sizeof(gstr),"[%s] %s(%i) dropa uma maleta com $%i.", GetServerTimeString(), NameEx(playerid), playerid, BriefcaseDropItems[playerid][2]); AddToLog("cash", gstr); } for(new ao = 0; ao < 6; ao++) { if(AttachedObjects[playerid][ao][aoModelID] == 1210) { RemovePlayerAttachedObject(playerid, ao); AttachedObjects[playerid][ao][aoModelID] = 0; AttachedObjects[playerid][ao][aoBone] = 0; BriefcaseHolding[playerid] = 0; return true; } } mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasBriefcase = %i, BriefcaseWeapon = %i, BriefcaseCash = %i, BriefcaseWeed = %i, BriefcaseCocaine = %i, BriefcaseCode = %i, BriefcaseLocked = %i WHERE id = %i", Inventory[playerid][Briefcase], BriefcaseWeapon[playerid], BriefcaseCash[playerid], BriefcaseWeed[playerid], BriefcaseCocaine[playerid], BriefcaseCode[playerid], BriefcaseLocked[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); new labeltext[100], lockmessage[25]; if(BriefcaseDropMisc[playerid][0] == 1) format(lockmessage, 25, "Locked"); else format(lockmessage, 25, "Unlocked"); if(BriefcaseHolding[playerid] > 0) { BriefcaseHolding[playerid] = 0; RemovePlayerAttachedObject(playerid, HOLD_OBJECT_BRIEFCASE); } format(labeltext, 100, "MALETA\nDropada por: %s\nStatus: %s\n(( Use /pegarmaleta para pegar ))", NameRP(playerid), lockmessage); BriefcaseDropText[playerid] = CreateDynamic3DTextLabel(labeltext, COLOR_WHITE, BriefcaseDropPos[playerid][0], BriefcaseDropPos[playerid][1], BriefcaseDropPos[playerid][2], 20.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, BriefcaseDropWorld[playerid][0], -1, -1, 25); BriefcaseDropPickup[playerid] = CreateDynamicPickup(1210, 23, Pos[0], Pos[1], Pos[2], BriefcaseDropWorld[playerid][0]); SendClientMessage(playerid, COLOR_WHITE, "Você jogou sua maleta no chão. (Qualquer um pode pegar agora)"); format(gstr, sizeof(gstr), "* %s joga uma pasta no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); } else if(strcmp("celular", itemname, true) == 0) { if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid, "Você não tem um Celular para dropar."); if(IsPhoneRinging[playerid] == 1) return SysMsg(playerid,"Você não pode deixar cair o celula enquanto ele está tocando."); if(CallerID[playerid] != -1 || CallerService[playerid] != -1) return SysMsg(playerid,"Você não pode soltar o celular enquanto estiver usando-o."); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); Inventory[playerid][MobilePhone] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossessor = 0, PhonePossession = 0 WHERE id = %i", PhoneData[playerid][pID]); mysql_pquery(conn, mquery); SendClientMessage(playerid, COLOR_WHITE, "Você dropou seu celular no chão, qualquer um pode pegar agora."); format(gstr, sizeof(gstr), "* %s joga seu celular no chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); DropGun(playerid, 6, 330, 1, X, Y, Z, GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); OnePlayAnim(playerid,"CARRY","putdwn",4,0,0,0,0,0); return true; } return true; } CMD:pegarmaleta(playerid, params[])//pegarmaleta { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode usar isso em um veículo."); if(Inventory[playerid][Briefcase] == 1) return SysMsg(playerid, "Você já tem uma pasta."); foreach(new i: Player) { if(Logged{i} && BriefcaseDropped[i] == 1) { if(IsPlayerInRangeOfPoint(playerid, 2.0, BriefcaseDropPos[i][0], BriefcaseDropPos[i][1], BriefcaseDropPos[i][2]) && GetPlayerVirtualWorld(playerid) == BriefcaseDropWorld[i][0] && GetPlayerInterior(playerid) == BriefcaseDropWorld[i][1]) { Inventory[playerid][Briefcase] = 1; BriefcaseWeapon[playerid] = BriefcaseDropItems[i][0]; BriefcaseCash[playerid] = BriefcaseDropItems[i][2]; BriefcaseWeed[playerid] = BriefcaseDropItems[i][3]; BriefcaseCocaine[playerid] = BriefcaseDropItems[i][4]; BriefcaseCode[playerid] = BriefcaseDropMisc[i][1]; BriefcaseLocked[playerid] = BriefcaseDropMisc[i][0]; if(BriefcaseCash[playerid] > 0) { format(gstr, sizeof(gstr),"[%s] %s(%i) pegou uma maleta no chão com $%i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, BriefcaseCash[playerid], Cash[playerid]); AddToLog("cash", gstr); } mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET HasBriefcase = %i, BriefcaseWeapon = %i, BriefcaseCash = %i, BriefcaseWeed = %i, BriefcaseCocaine = %i, BriefcaseCode = %i, BriefcaseLocked = %i WHERE id = %i", Inventory[playerid][Briefcase], BriefcaseWeapon[playerid], BriefcaseCash[playerid], BriefcaseWeed[playerid], BriefcaseCocaine[playerid], BriefcaseCode[playerid], BriefcaseLocked[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); BriefcaseDropItems[i][0] = 0; BriefcaseDropItems[i][1] = 0; BriefcaseDropItems[i][2] = 0; BriefcaseDropItems[i][3] = 0; BriefcaseDropItems[i][4] = 0; BriefcaseDropped[i] = 0; BriefcaseDropPos[i][0] = 0.0; BriefcaseDropPos[i][1] = 0.0; BriefcaseDropPos[i][2] = 0.0; BriefcaseDropWorld[i][0] = 0; BriefcaseDropWorld[i][1] = 0; BriefcaseDropMisc[i][1] = 0; BriefcaseDropMisc[i][0] = 0; DestroyDynamic3DTextLabel(BriefcaseDropText[i]); BriefcaseDropText[i] = Text3D:INVALID_3DTEXT_ID; DestroyDynamicPickup(BriefcaseDropPickup[i]); for(new ao = 0; ao < 6; ao++) { if(AttachedObjects[playerid][ao][aoModelID] == 0) { AttachedObjects[playerid][ao][aoModelID] = 1210; AttachedObjects[playerid][ao][aoBone] = 6; SetPlayerAttachedObject(playerid, ao, 19624, 6, 0.066999, 0.032000, 0.000000, -39.700004, -99.600051, 1.899998); break; } } BriefcaseHolding[playerid] = 1; SendClientMessage(playerid, COLOR_WHITE, "Você encontrou uma Pasta no chão e pegou. (Use /bcase para usar)"); format(gstr, sizeof(gstr), "* %s pega uma maleta do chão. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); break; } } } return true; } CMD:pegaritem(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado.");//pegaritem for(new i = 0; i < MAX_GUNS; i++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, WeaponDrop[i][wX], WeaponDrop[i][wY], WeaponDrop[i][wZ])) { if(GetPlayerVirtualWorld(playerid) == WeaponDrop[i][DropvWorld] && GetPlayerInterior(playerid) == WeaponDrop[i][DropInt]) { if(WeaponDrop[i][Type] == 2) { Inventory[playerid][Weed] += WeaponDrop[i][DropAmmo]; WeaponDrop[i][wX] = 0.0; WeaponDrop[i][wY] = 0.0; WeaponDrop[i][wZ] = 0.0; WeaponDrop[i][DropModel] = 0; WeaponDrop[i][DropAmmo] = 0; WeaponDrop[i][DropvWorld] = 0; WeaponDrop[i][DropInt] = 0; WeaponDrop[i][gSpawned] = 0; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); DestroyDynamicObjectEx(DropObject[i], "DropObject[i]"); DropObject[i] = INVALID_OBJECT_ID; SendClientMessage(playerid, COLOR_WHITE, "Você pegou um maço de Marijuana do chão."); break; } else if(WeaponDrop[i][Type] == 3) { Inventory[playerid][MoonShine] += WeaponDrop[i][DropAmmo]; WeaponDrop[i][wX] = 0.0; WeaponDrop[i][wY] = 0.0; WeaponDrop[i][wZ] = 0.0; WeaponDrop[i][DropModel] = 0; WeaponDrop[i][DropAmmo] = 0; WeaponDrop[i][DropvWorld] = 0; WeaponDrop[i][DropInt] = 0; WeaponDrop[i][gSpawned] = 0; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); DestroyDynamicObjectEx(DropObject[i], "DropObject[i]"); SendClientMessage(playerid, COLOR_WHITE, "Você pegou uma garrafa de aguardente do chão."); break; } else if(WeaponDrop[i][Type] == 4) { Inventory[playerid][Cocaine] += WeaponDrop[i][DropAmmo]; WeaponDrop[i][wX] = 0.0; WeaponDrop[i][wY] = 0.0; WeaponDrop[i][wZ] = 0.0; WeaponDrop[i][DropModel] = 0; WeaponDrop[i][DropAmmo] = 0; WeaponDrop[i][DropvWorld] = 0; WeaponDrop[i][DropInt] = 0; WeaponDrop[i][gSpawned] = 0; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); DestroyDynamicObjectEx(DropObject[i], "DropObject[i]"); DropObject[i] = INVALID_OBJECT_ID; SendClientMessage(playerid, COLOR_WHITE, "Você pegou um maço de cocaína do chão."); break; } else if(WeaponDrop[i][Type] == 6) { if(Inventory[playerid][MobilePhone] == 1) return SysMsg(playerid, "Você já possui um celular móvel."); WeaponDrop[i][wX] = 0.0; WeaponDrop[i][wY] = 0.0; WeaponDrop[i][wZ] = 0.0; WeaponDrop[i][DropModel] = 0; WeaponDrop[i][DropAmmo] = 0; WeaponDrop[i][DropvWorld] = 0; WeaponDrop[i][DropInt] = 0; WeaponDrop[i][gSpawned] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE phones SET PhonePossessor = %i, PhonePossession = 1 WHERE id = %i", SQLID[playerid], WeaponDrop[i][PhoneID]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM phones WHERE id = %i", WeaponDrop[i][PhoneID]); mysql_pquery(conn, mquery, "LoadPlayerPhone", "d", playerid); WeaponDrop[i][PhoneID] = 0; WeaponDrop[i][DropPhoneNumber] = 0; WeaponDrop[i][DropPhonePower] = 0; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); DestroyDynamicObjectEx(DropObject[i], "DropObject[i]"); DropObject[i] = INVALID_OBJECT_ID; SendClientMessage(playerid, COLOR_WHITE, "Você pegou um celular do chão, use /cinfo para ver as informações do celular."); } else if(WeaponDrop[i][Type] == 1) { if(!IsPlayerAdmin(playerid) && IsBanWeapon(WeaponDrop[i][DropModel])) return SysMsg(playerid, "Você não pode pegar esta arma."); if(GetFreeWeaponObjectIndex(playerid) == -1) return SysMsg(playerid, "Você não pode carregar outra arma agora."); if(WeaponDrop[i][DropModel] == 14) UnlockAchievement(playerid, 48); if(!WeaponCheck(playerid, WeaponDrop[i][DropModel])) return SysMsg(playerid, "Você não pode pegar essa arma, ou tens duas pistolas ou uma arma primária e uma pistola na tua pessoa."); if(WeaponData[playerid][GetWeaponSlot(WeaponDrop[i][DropModel])][Weapon] != 0) return SysMsg(playerid, "Você já está carregando uma arma desse tipo."); new slot = GetWeaponSlot(WeaponDrop[i][DropModel]); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE id = %i", WeaponDrop[i][DropWeaponID]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows()) { WeaponData[playerid][slot][WeaponID] = cache_get_field_content_int(0, "id"); WeaponData[playerid][slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); WeaponData[playerid][slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][slot][Weapon] = cache_get_field_content_int(0, "WeaponID"); WeaponData[playerid][slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][slot][WeaponType] = GetWeaponType(WeaponData[playerid][slot][Weapon]); WeaponData[playerid][slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); } cache_delete(result); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET OwnerSQLID = %i, WeaponPossession = 1, Dropped = 0 WHERE id = %i", SQLID[playerid], WeaponData[playerid][slot][WeaponID]); mysql_pquery(conn, mquery); WeaponDrop[i][wX] = 0.0; WeaponDrop[i][wY] = 0.0; WeaponDrop[i][wZ] = 0.0; WeaponDrop[i][DropModel] = 0; WeaponDrop[i][DropWeaponID] = 0; WeaponDrop[i][DropAmmo] = 0; WeaponDrop[i][DropvWorld] = 0; WeaponDrop[i][DropInt] = 0; WeaponDrop[i][gSpawned] = 0; SyncPlayerWeapons(playerid); OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); DestroyDynamicObjectEx(DropObject[i], "DropObject[i]"); DropObject[i] = INVALID_OBJECT_ID; SendClientMessageF(playerid, COLOR_WHITE, "Você pegou %s do chão.", weaponstring[WeaponData[playerid][slot][Weapon]]); break; } } } } for(new d = 1; d < MAX_DRUGS; d++) //drug comment { if(DrugTakenData[d][effActive] == 2) { if(IsPlayerInRangeOfPoint(playerid, 2.0, DrugTakenData[d][drugPos][0], DrugTakenData[d][drugPos][1], DrugTakenData[d][drugPos][2] + 1.0)) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM drugs WHERE drugOwner = %d AND drugEffects = '%s' AND drugComedown = '%s' AND drugQuality = %d", SQLID[playerid], DrugTakenData[d][drugEffects], DrugTakenData[d][drugComedown], DrugTakenData[d][drugsQuality]); mysql_pquery(conn, mquery, "PickupDrug", "ii", playerid, d); break; } } } for(new d = 1; d < MAX_INGREDIENTS; d++) { if(IngredientsData[d][ingredPos][0] != 0.0 && IngredientsData[d][ingredPos][1] != 0.0) { if(IsPlayerInRangeOfPoint(playerid, 2.0, IngredientsData[d][ingredPos][0], IngredientsData[d][ingredPos][1], IngredientsData[d][ingredPos][2] + 1.0)) { mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM ingredients WHERE ingOwner = %d AND ingType = %d", SQLID[playerid], IngredientsData[d][ingredType]); mysql_pquery(conn, mquery, "PickupIngredient", "ii", playerid, d); break; } } } for(new tein = 0; tein < sizeof(TestIngred); tein++) { if(IsPlayerInRangeOfPoint(playerid, 1.5, TestIngred[tein][tePos][0], TestIngred[tein][tePos][1], TestIngred[tein][tePos][2])) { SendClientMessageF(playerid, COLOR_YELLOW, "Você pegou 20 %s do chão para fins de testa.", IngredName[TestIngred[tein][teDrugType]]); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM ingredients WHERE ingOwner = %d AND ingType = %d", SQLID[playerid], TestIngred[tein][teDrugType]); mysql_pquery(conn, mquery, "PickupTestIngredient", "dd", playerid, TestIngred[tein][teDrugType]); break; } } return true; } CMD:caridade(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"/caridade [quantidade]"); new amount = strval(params); if(amount < 1 || amount > Cash[playerid]) return SysMsg(playerid,"O valor deve ser entre 1 e seu dinheiro deve estar na mão."); GivePlayerCash(playerid, -amount); MySQLUpdateInt(SQLID[playerid], "Cash", amount, "players"); LotteryJackpot += amount; if(amount > 999) UnlockAchievement(playerid, 40); SendClientMessageF(playerid, COLOR_PINK, "Você deu $%s do seu dinheiro. O dinheiro foi arrecadado para o próximo jogo do /Jackpot.", format_cash(amount)); format(gstr, sizeof(gstr),"[%s] %s(%i) colocou $%i à caridade. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, Cash[playerid]); AddToLog("cash", gstr); return true; } CMD:jackpot(playerid, params[]) { if(!Logged{playerid}) return true; SendClientMessageF(playerid, COLOR_PINK, "Loteria jackpot: {FFFFFF}$%s", format_cash(LotteryJackpot)); if(LotteryNumber[playerid] != -1) SendClientMessageF(playerid, COLOR_PINK, "O número do seu bilhete para o próximo sorteio é {FFFFFF}%i.", LotteryNumber[playerid]); else SendClientMessage(playerid, COLOR_PINK, "Você não foi inscrito para o próximo sorteio."); return true; } CMD:destruirdinheiro(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid, "Você deve estar logado."); if(Cash[playerid] < 0) return SysMsg(playerid, "Você deve ter dinheiro na mão para usar esse comando."); new monies, conf[12]; if(sscanf(params, "iS()[12]", monies, conf)) return SysMsg(playerid, "Use: /destruirdinheiro [quantidade] *ESSA QUANTIDADE DE DINHEIRO SERÁ DELETADA E NÃO É POSSIVEL RECUPERAR.*"); if(isnull(conf)) return SendClientMessageF(playerid, COLOR_WHITE, "Usando este comando irá excluir $%s do seu dinheiro da mão. Escreva /destruirdinheiro %i confirmar para continuar.", format_cash(monies), monies); if(strmatch(conf, "confirmar") && monies >= 1) { if(Cash[playerid] - monies < 0) return SysMsg(playerid, "Subtrair esse muito dinheiro do seu dinheiro na mão iria colocá-lo em um saldo negativo."); GivePlayerCash(playerid, -monies); SendClientMessageF(playerid, COLOR_WHITE, "Você enviou $%s para o vazio.", format_cash(monies)); return true; } return true; } CMD:hesoyam(playerid, params[]) { if(!Logged{playerid}) return true; UnlockAchievement(playerid, 26); return true; } CMD:hegebe(playerid, params[]) { if(!Logged{playerid}) return true; UnlockAchievement(playerid, 60); return true; } CMD:nametags(playerid, params[]) { if(nameshidden[playerid] == 0) { foreach(new i: Player) ShowPlayerNameTagForPlayer(playerid, i, false); nameshidden[playerid] = 1; SysMsg(playerid,"Você desabilitou o name tag; Use /nametags para habilidade."); } else { foreach(new i: Player) if(!MaskHideName{i}) ShowPlayerNameTagForPlayer(playerid, i, true); nameshidden[playerid] = 0; SysMsg(playerid,"Você já habilitou etiquetas de nome de jogador; Use /nametags para desabilitar."); } return true; } CMD:me(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /me [ação]"); new Float:radius = 20.0, occupants; if(IsInHouseID[playerid] != -1) occupants = HouseData[IsInHouseID[playerid]][HouseOccupants]; else if(IsInBizzID[playerid] != -1) occupants = BizzData[IsInBizzID[playerid]][BizzOccupants]; if(occupants < 10) radius = 20.0; else if(occupants < 20) radius = 10.0; else radius = 5.0; format(gstr, sizeof(gstr),"%s %s", NameRP(playerid), params); ProxDetector(radius, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); totalmes ++; return true; } CMD:ame(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /ame [ação]"); SetPlayerChatBubble(playerid, params, COLOR_EMOTE, 15.0, 6000); SendClientMessageF(playerid, COLOR_EMOTE, "Mensagem Anotada: %s", params); return true; } CMD:ame2(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /ame [ação]"); SetPlayerChatBubble(playerid, params, COLOR_EMOTE, 15.0, 6000); return true; } CMD:do(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /do [ação]"); new Float:radius = 20.0, occupants; if(IsInHouseID[playerid] != -1) occupants = HouseData[IsInHouseID[playerid]][HouseOccupants]; else if(IsInBizzID[playerid] != -1) occupants = BizzData[IsInBizzID[playerid]][BizzOccupants]; if(occupants < 10) radius = 20.0; else if(occupants < 20) radius = 10.0; else radius = 5.0; format(sgstr, sizeof(sgstr), "%s ((%s))", params, NameRP(playerid)); ProxDetector(radius, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:tentar(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /tentar [ação]"); new success = random(50); if(success < 25) format(sgstr, sizeof(sgstr), "* %s tentou %s e conseguiu. *", NameRP(playerid), params); else format(sgstr, sizeof(sgstr), "* %s tentou %s e não conseguiu. *", NameRP(playerid), params); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:sdo(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerAdmin(playerid)) return false; if(isnull(params)) return SysMsg(playerid,"Use: /sdo [ação]"); ProxDetector(20.0, playerid, params, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:acento(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /acento [sotaque] - Examplo: 'Italiano'. Use 'nenhum' para remover o sotaque."); if(strlen(params) > 11) return SysMsg(playerid,"Sotaque era muito longo (max 11 characters)."); if(strlen(params) < 3) return SysMsg(playerid,"Sotaque muito curto (min 3 characters)."); if(strcmp("nenhum", params, true) == 0) { if(UsingAccent[playerid] == 0) return SysMsg(playerid,"Você não tem um sotaque."); Accent[playerid][0] = EOS; UsingAccent[playerid] = 0; MySQLUpdateString(SQLID[playerid], "Accent", Accent[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "Você removeu seu sotaque."); return true; } new acc[10]; format(acc, sizeof(acc), params); UsingAccent[playerid] = 1; format(Accent[playerid], 12, params); MySQLUpdateString(SQLID[playerid], "Accent", Accent[playerid], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Seu acento é: %s. Use '/acento nenhum' para remover.", Accent[playerid]); UnlockAchievement(playerid,25); return true; } CMD:aparencia(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /aparencia [descrição]"); if(strlen(params) - 12 > 128) return SysMsg(playerid,"Use uma descrição de aparência mais curta."); if(strcmp(params, "nenhuma", true) == 0) { Appearance[playerid][0] = EOS; MySQLUpdateString(SQLID[playerid], "LooksLike", Appearance[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "A descrição da aparência foi removida."); return true; } format(Appearance[playerid], 128, params); MySQLUpdateString(SQLID[playerid], "LooksLike", Appearance[playerid], "players"); SendClientMessageF(playerid, COLOR_WHITE, "Sua aparência é agora: '%s'. Use '/aparencia nenhuma' para remover isso.", Appearance[playerid]); return true; } CMD:descrever(playerid, params[])//observar { if(!Logged{playerid}) return true; new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /descrever [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(strlen(Appearance[playa]) == 0) return SysMsg(playerid,"O jogador não tem descrição para ver."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ) && IsSpectating[playa] != -1) return SysMsg(playerid,"Você deve estar perto do jogador."); format(gstr, sizeof(gstr), "* %s * (%s)", Appearance[playa], NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:checkid(playerid, params[]) { if(IsPlayerInAnyVehicle(playerid)) { new v = GetPlayerVehicleID(playerid); if(VehicleData[v][VehicleOwnerSQLID] != 0) { SendClientMessageF(playerid, COLOR_WHITE, "[Veiculo ID] %s - ID %i", GetVehicleName(v), VehicleData[v][VehSQLID]); return true; } if(FVehicleData[v][FactionVehID] == v) { SendClientMessageF(playerid, COLOR_WHITE, "[Veiculo de facção ID] %s - ID %i, Criador: %s", GetVehicleName(v), FVehicleData[v][FVSQLID], GetSQLName(GetFactionVehicleCreator(FVehicleData[v][FVSQLID]))); return true; } } for(new p = 0; p < MAX_SQLPICKUPS; p++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, PickupData[p][Xpos], PickupData[p][Ypos], PickupData[p][Zpos])) { SendClientMessageF(playerid, COLOR_WHITE, "[Pickup ID] - ID %i", PickupData[p][PickupSQLID]); return true; } } for(new int = 0; int < MAX_INTERIORS; int++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, Interiors[int][oPosX], Interiors[int][oPosY], Interiors[int][oPosZ])) { SendClientMessageF(playerid, COLOR_WHITE, "[Interior ID] ID %i", Interiors[int][interiorID]); return true; } } for(new b = 0; b < MAX_BIZZ; b++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ])) { SendClientMessageF(playerid, COLOR_WHITE, "[Negocio ID] %s - ID %i", BizzData[b][BizzDescription], BizzData[b][BizzSQLID]); return true; } } for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { SendClientMessageF(playerid, COLOR_WHITE, "[Casa ID] %s - ID %i", HouseData[h][HouseDescription], HouseData[h][HouseSQLID]); return true; } } for(new g = 0; g < MAX_GARAGES; g++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]) && GetPlayerVirtualWorld(playerid) == GarageData[g][oVirtualWorld]) { SendClientMessageF(playerid, COLOR_WHITE, "[Garagem ID] ID %i", GarageData[g][gID]); return true; } } SysMsg(playerid, "Nada foi encontrado."); return true; } CMD:getid(playerid, params[]) { if(isnull(params)) return SysMsg(playerid,"Use: /id [Parte/Nome completo do jogador]"); if(strlen(params) < 3) return SysMsg(playerid,"Use: /id [Parte/Nome completo do jogador]"); new count = 0; foreach(new i: Player) { if(strfind(GetName(i), params, true) != -1) { count ++; SendClientMessageF(playerid, COLOR_WHITE, "%s - ID %i", NameEx(i), i); } } if(count == 0) SysMsg(playerid, "Não foi encontrado nenhum jogador com esse nome."); return true; } CMD:id(playerid, params[]) return cmd_getid(playerid, params); CMD:kill(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(Dead{playerid}) return SendClientMessage(playerid, COLOR_RED, "Você já está morto."); if(IsJailed[playerid] == 1 || AdminJailData[playerid][0] == 1) return true; if(IsCuffed[playerid] == 1) return true; if(isnull(params)) { SetPlayerHealthEx(playerid, 0.0); SetPlayerArmourEx(playerid, 0.0, 0); SetPlayerChatBubble(playerid, "(( O player usou /kill ))", COLOR_ORANGE, 15.0, 5000); format(gstr, sizeof(gstr),"[Death - System] %s usou o comando /kill", NameEx(playerid)); AdminBroadcast(gstr, 1); } else { if(!IsPlayerAdminLevelOK(playerid, 3)) return SysMsg(playerid, AUTHMSG); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /kill [player id ou nome]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); SetPlayerHealthEx(playa,0.0); SetPlayerArmourEx(playa,0.0, 0); format(gstr, sizeof(gstr),"Admin %s matou você com comando admin.",NameEx(playerid)); SendClientMessage(playa,COLOR_RED,gstr); format(gstr, sizeof(gstr),"Você matou %s.",NameEx(playa)); SendClientMessage(playerid,COLOR_LIGHTRED,gstr); format(gstr, sizeof(gstr),"[Death - System] Admin %s mantou %s ", NameEx(playerid), NameEx(playa)); AdminBroadcast(gstr, 1); SetPlayerChatBubble(playa, "(( Admin usou /kill neste player ))", COLOR_ORANGE, 15.0, 5000); } return true; } CMD:hora(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Watch] == 0) return SysMsg(playerid,"Você não tem um relógio."); new StNdRdTh[4], Year, Month, Day; getdate(Year, Month, Day); StNdRdTh = ""; if(Day == 1||Day == 21||Day == 31) StNdRdTh = ""; else if(Day == 2||Day == 22) StNdRdTh = ""; else if(Day == 3||Day == 23) StNdRdTh = ""; SysMsgF(playerid, "Hora atual: %s, Data de hoje: %i%s de %s %i", GetTimeString(), Day, StNdRdTh, GetMonthName(Month), gServerYear); format(gstr, sizeof(gstr),"* %s olha para seu relógio. *", NameRP(playerid)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(!IsPlayerInAnyVehicle(playerid)) OnePlayAnim(playerid, "PLAYIDLES", "time", 3.0, 0, 0, 0, 0, 0); return true; } CMD:date(playerid, params[]) return cmd_hora(playerid, params); CMD:showtime(playerid, params[])//showtime { if(!Logged{playerid}) return true; if(Inventory[playerid][Watch] == 0) return SysMsg(playerid,"Você não tem um relógio."); if(TimeIsDisplayed{playerid} != 0) { TextDrawHideForPlayer(playerid, TimeText); TextDrawHideForPlayer(playerid, TimeText24); TimeIsDisplayed{playerid} = 0; SysMsg(playerid,"Exibição de tempo oculta."); } else { if(isnull(params) || !IsNumeric(params)) return SysMsg(playerid, "Use: /hora [24/12]"); if(strval(params) == 12) TextDrawShowForPlayer(playerid, TimeText); else if(strval(params) == 24) TextDrawShowForPlayer(playerid, TimeText24); TimeIsDisplayed{playerid} = true; SysMsg(playerid,"Time Display On."); } return true; } CMD:togpay(playerid, params[]) { if(!Logged{playerid}) return true; if(!CheckReady{playerid}) return SysMsg(playerid,"Você não tem um Payday pendente."); if(PaycheckDisplayed{playerid}) { PlayerTextDrawHide(playerid, Signcheck[playerid]); PaycheckDisplayed{playerid} = false; SysMsg(playerid,"Você escondeu seu Payday, use o mesmo comando para exebi-lo na sua tela."); } else { format(gstr, sizeof(gstr), "~g~~h~~h~Payday: ~w~%i", CheckNumber[playerid]); PlayerTextDrawSetString(playerid, Signcheck[playerid], gstr); PlayerTextDrawShow(playerid, Signcheck[playerid]); PaycheckDisplayed{playerid} = true; SysMsg(playerid,"Seu Payday está aparecendo novamente, use o mesmo comando para ocultar."); } return true; } CMD:pedagio(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); new trailer = GetVehicleTrailer(vehicleid); new Float:rot[3]; for(new pt = 0; pt < sizeof(PaytollPos); pt++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, PaytollPos[pt][0], PaytollPos[pt][1], PaytollPos[pt][2])) // RC-BC 1 { new Float:pos[3]; GetDynamicObjectPos(PayTolls[pt][0], pos[0], pos[1], pos[2]); GetDynamicObjectRot(PayTolls[pt][0], rot[0], rot[1], rot[2]); if(vehicleid == 0) return SysMsg(playerid, "Somente os veículos têm que pagar pedágio e você não está em um."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid, "Somente o motorista pode pagar o pedágio."); if(PayTolls[pt][1] == 1) return SysMsg(playerid, "A porta de pedágio já está aberta."); if(trailer > 0) { if(Cash[playerid] < 10) return SysMsg(playerid, "Você não tem dinheiro suficiente para pagar o pedágio. (Você precisa de $10)"); GivePlayerCash(playerid, -10); format(gstr, sizeof(gstr), "[Toll - "COL_MONEYGREEN"$10{FFFFFF}] Bem vindo a %s. Dirija com segurança. [Trailer/towing a taxa é $5]", PaytollNames[pt]); SendClientMessage(playerid, COLOR_WHITE, gstr); } else { if(!QualifiesForFreeToll(playerid)) { if(Cash[playerid] < 5) return SysMsg(playerid, "Você não tem dinheiro suficiente para pagar o pedágio. (Você precisa de $5)"); GivePlayerCash(playerid, -5); format(gstr, sizeof(gstr), "[Toll - "COL_MONEYGREEN"$5{FFFFFF}] Bem vindo a %s. Dirija com segurança.", PaytollNames[pt]); SendClientMessage(playerid, COLOR_WHITE, gstr); } else { format(gstr, sizeof(gstr), "[Toll - "COL_MONEYGREEN"$0{FFFFFF}] Bem vindo a %s. Você qualifica para pedágios gratuitos. Dirija com segurança.", PaytollNames[pt]); SendClientMessage(playerid, COLOR_WHITE, gstr); } } MoveDynamicObject(PayTolls[pt][0], pos[0], pos[1], pos[2]+0.001, 0.0005, rot[0], 0.0, rot[2]); PayTolls[pt][1] = 1; PaytollCloseTimer[pt] = SetTimerEx("CloseTollGate", 7000, 0, "df", pt, 90.0); } } return true; } CMD:banco(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(!IsInBank(playerid)) return SysMsg(playerid, "Você não está em um banco."); UsingATM{playerid} = false; Dialog_Show(playerid,BankMenu,DIALOG_STYLE_LIST,"{3D9140}Gerênciamento bancário","Balance\nDeposito\nSaque\nTransferência","Continuar","Cancelar"); return true; } CMD:fbalance(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(!IsInBank(playerid)) return SysMsg(playerid, "You are not in a bank"); if(Faction[playerid] < 1) return SysMsg(playerid,"Você não está em uma facção."); SendClientMessageF(playerid, COLOR_WHITE, "Equilíbrio bancário da facção {0098F2}%s{FFFFFF} - {4BB74C}$%s.", GetFactionName(playerid), format_cash(FACTIONS[Faction[playerid]][FactionBankBalance])); return true; } CMD:fdepositar(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(!IsInBank(playerid)) return SysMsg(playerid, "Você não está em um banco"); if(Faction[playerid] < 1) return SysMsg(playerid,"Você não está em uma facção."); new amount; if(sscanf(params, "i", amount)) return SysMsg(playerid,"Use: /fdepositar [Quantidade]"); if(amount < 1) return SysMsg(playerid,"Quantidade Inválida, Must be greater that 0."); if(amount > Cash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade"); GivePlayerCash(playerid, -amount); SendClientMessageF(playerid, COLOR_WHITE, "[Deposito] Equilíbrio bancário da facção {0098F2}%s{FFFFFF}:", GetFactionName(playerid)); SendClientMessageF(playerid, COLOR_WHITE, "[Deposito] Balance Antigo: {4BB74C}$%s{FFFFFF}, Novo Balance: {4BB74C}$%s{FFFFFF}.", format_cash(FACTIONS[Faction[playerid]][FactionBankBalance]), format_cash(FACTIONS[Faction[playerid]][FactionBankBalance]+amount)); FACTIONS[Faction[playerid]][FactionBankBalance] += amount; MySQLUpdateInt(FACTIONS[Faction[playerid]][FactionId], "BankBalance", FACTIONS[Faction[playerid]][FactionBankBalance], "factions"); format(gstr, sizeof(gstr),"[%s] %s(%i) colocou $%i na fbank %s. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, GetFactionName(playerid), Cash[playerid]); AddToLog("cash", gstr); return true; } //Comandos Leader Facção CMD:fpagar(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new playa = -1,PayCash; if(sscanf(params, "ui", playa, PayCash)) return SysMsg(playerid,"Use: /fpagar [ID ou nome do jogador] [Quantidade a pagar]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esse jogador não está na mesma facção que você"); if(PayCash < 100 || PayCash > 100000) return SysMsg(playerid,"O dinheiro deve ser menos que $100 e $100,000"); if(FACTIONS[Faction[playerid]][FactionBankBalance] < PayCash) return SysMsg(playerid,"Você não tem essa quantidade de dinheiro no banco da facção."); FACTIONS[Faction[playerid]][FactionBankBalance] -= PayCash; BankBalance[playa] += PayCash; MySQLUpdateInt(FACTIONS[Faction[playerid]][FactionId], "BankBalance", FACTIONS[Faction[playerid]][FactionBankBalance], "factions"); MySQLUpdateInt(SQLID[playa], "Bank", BankBalance[playa], "players"); SendClientMessageF(playerid, COLOR_LIGHTGREEN, "[DECLARAÇÃO DO BANCO DE FACÇÃO] %s - %s(Rank: %s)",GetFactionName(playerid),NameEx(playerid),GetFactionRankName(Faction[playerid], FactionRank[playerid])); SendClientMessageF(playerid, COLOR_LIGHTGREEN, " 1. Transferir: PARA %s DE %s - $%i.",NameEx(playa),GetFactionName(playerid),PayCash); SendClientMessageF(playerid, COLOR_LIGHTGREEN, " 2. Novo balance de facção: $%i.",FACTIONS[Faction[playerid]][FactionBankBalance]); SendClientMessageF(playa, COLOR_LIGHTGREEN, "[PAGAMENTO DIÁRIO DA FACÇÃO] %s - %s(Rank: %s)",GetFactionName(playa),NameEx(playa),GetFactionRankName(Faction[playa], FactionRank[playa])); SendClientMessageF(playa, COLOR_LIGHTGREEN, " 1. Deposito: %s %s - $%i.",GetFactionRankName(Faction[playerid], FactionRank[playerid]),NameEx(playerid),PayCash); SendClientMessageF(playa, COLOR_LIGHTGREEN, " 2. Balance: $%i.",BankBalance[playa]); printf("[Cmd] %s %s pagou %s $%i (FactionPay)",GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid), NameEx(playa), PayCash); return true; } CMD:fsave(playerid, params[])//salva posição do veiculo { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); if(GetPlayerVehicleID(playerid) == 0) return SysMsg(playerid, "Você nem está em um veículo."); if(IsFactionVehicle(GetPlayerVehicleID(playerid)) == 0) return SysMsg(playerid, "Esse veiculo não é de uma facção"); new vehicle = GetPlayerVehicleID(playerid), faction = IsFactionVehicle(vehicle); if((faction > 0 && Faction[playerid] != faction) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode editar esse veiculo de facção"); if(faction > 0) { new factionSQLID = vehicle; if(factionSQLID == -1) return SysMsg(playerid, "Oops! Ocorreu um erro no sistema, informe para um administrador. (ERROR: 4-001)"); new Float:X, Float:Y, Float:Z, Float:R, inter, vw; GetVehiclePos(vehicle, X, Y, Z); GetVehicleZAngle(vehicle, R); inter = GetPlayerInterior(playerid); vw = GetPlayerVirtualWorld(playerid); new sqlid = FVehicleData[vehicle][FVSQLID]; mysql_format(conn, mquery, sizeof(mquery), "UPDATE fveh SET LocationX = %f, LocationY = %f, LocationZ = %f, LocationR = %f, VWorld = %i, Interior = %i WHERE id = %i", X, Y, Z, R, vw, inter, FVehicleData[vehicle][FVSQLID]); mysql_tquery(conn, mquery); DestroyVehicleEx(vehicle, "vehicle"); ClearVehicleData(vehicle); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM fveh WHERE id = %i", sqlid); mysql_tquery(conn, mquery, "LoadFactionVehicles"); new Float:pX,Float:pY,Float:pZ; GetPlayerPos(playerid,pX,pY,pZ); SetPlayerPos(playerid,pX,pY,(pZ+5.0)); SendClientMessage(playerid, COLOR_WHITE, "O veículo de facção foi salvo aqui."); } return true; } CMD:contratarfac(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não é uma patente alta o suficiente."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /contratarfac [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode se contratar."); if(!Logged{playa}) return SysMsg(playerid,"Esse jogador não logou/registou."); if(Faction[playa] != 0) return SysMsg(playerid,"Esse jogador já está em uma facção."); InvitedToJoinFaction[playa] = Faction[playerid]; InvitedToJoinFactionBy[playa] = SQLID[playerid]; format(gstr, sizeof(gstr),"Você foi convidado por %s para se juntar à sua facção: %s. Use '/aceitar facção' para entrar.",NameEx(playerid),GetFactionName(playerid)); SendClientMessage(playa,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Você convidou %s para se juntar à sua Fação.",NameEx(playa)); SendClientMessage(playerid,COLOR_WHITE,gstr); return true; } CMD:rebaixarrank(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); if(isnull(params)) return SysMsg(playerid,"Use: /rebaixarrank [Nome_Sobrenome]"); if(strmatch(params, GetName(playerid))) return SysMsg(playerid, "Você não pode se rebaixar."); foreach(new p: Player) { if(strmatch(params, GetName(p))) { if(IsPlayerConnected(p) && Logged{p}) { if(Faction[p] != Faction[playerid]) return SysMsg(playerid, "Você não pode rebaixar alguém que não está na sua facção."); if(FactionRank[p] >= FactionRank[playerid]) return SysMsg(playerid, "Você não pode rebaixar alguem que tem o Rank superior ao seu."); if(FactionRank[p] == 1) return SysMsg(playerid, "Essa pessoa já são o rank mais baixo possível."); FactionRank[p] --; MySQLUpdateInt(SQLID[p], "FactionRank", FactionRank[p], "players"); format(gstr, sizeof(gstr),"%s %s rebaixou você, agora você é rank %i(%s).", GetFactionRankName(Faction[playerid], FactionRank[playerid]),NameEx(playerid),FactionRank[p],GetFactionRankName(Faction[p], FactionRank[p])); SendClientMessage(p,COLOR_ORANGE,gstr); format(gstr, sizeof(gstr),"Você rebaixou %s! Eles são agora rank %i(%s)", NameEx(p), FactionRank[p] ,GetFactionRankName(Faction[playerid], FactionRank[p])); SendClientMessage(playerid,COLOR_ORANGE,gstr); return true; } else return SysMsg(playerid, "Esse jogador não está conectado ou ainda não fez login, tente novamente."); } } mysql_format(conn, mquery, sizeof(mquery), "SELECT id, Faction, FactionRank, Name FROM players WHERE Name = '%e' LIMIT 1", params); mysql_pquery(conn, mquery, "DemoteF", "d", playerid); return true; } GREENSIDE::DemoteF(playerid) { if(cache_num_rows()) { new currentFaction, currentRank, actualName[50], sqlid; sqlid = cache_get_field_content_int(0, "id"); currentFaction = cache_get_field_content_int(0, "Faction"); currentRank = cache_get_field_content_int(0, "FactionRank"); cache_get_field_content(0, "Name", actualName); if(Faction[playerid] != currentFaction) return SysMsg(playerid,"Esse jogador não está na mesma facção que você"); if(currentRank == 1) return SysMsg(playerid,"Eles já são o mais baixo nível."); if(currentRank >= FactionRank[playerid]) return SysMsg(playerid,"Você não pode rebaixar membros do ranking mais alto."); currentRank --; MySQLUpdateInt(sqlid, "FactionRank", currentRank, "players"); /*new oldSub[2], newSub[2], oldRank; oldRank = currentRank + 1;*/ //FactionLog(SQLID[playerid], sqlid, 2, oldSub, newSub, oldRank, currentRank, Faction[playerid]); SendClientMessageF(playerid,COLOR_ORANGE,"Você rebaixou %s! Agora ele é Rank %i (%s)",actualName,currentRank,GetFactionRankName(Faction[playerid], currentRank)); } else return SysMsg(playerid, "Nome não encontrado no banco de dados, use [Nome_Sobrenome] ao pesquisar."); return true; } CMD:promover(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); if(isnull(params)) return SysMsg(playerid,"Use: /promover [Nome_Sobrenome]"); if(strmatch(params, GetName(playerid))) return SysMsg(playerid, "Você não pode promover você mesmo."); foreach(new p: Player) { if(strmatch(params, GetName(p))) { if(IsPlayerConnected(p) && Logged{p} && SQLID[p] != SQLID[playerid]) { if(Faction[p] != Faction[playerid]) return SysMsg(playerid, "Você não pode promover alguém que não esteja na sua facção."); if(FactionRank[p] >= FactionRank[playerid]) return SysMsg(playerid, "Você não pode promover alguém que seja mais alto ou igual a você."); if(FactionRank[p] >= FACTIONS[Faction[p]][FactionUberLeaderRank]) return SysMsg(playerid, "Essa pessoa já tem o Rank mais alto possivel."); FactionRank[p] ++; MySQLUpdateInt(SQLID[p], "FactionRank", FactionRank[p], "players"); format(gstr, sizeof(gstr),"%s %s promoveu você! Agora você é %i(%s).", GetFactionRankName(Faction[playerid], FactionRank[playerid]),NameEx(playerid),FactionRank[p],GetFactionRankName(Faction[p], FactionRank[p])); SendClientMessage(p,COLOR_ORANGE,gstr); UnlockAchievement(p, 63); format(gstr, sizeof(gstr),"Você promoveu %s! Agora ele é %i(%s)", NameEx(p), FactionRank[p] ,GetFactionRankName(Faction[playerid], FactionRank[p])); SendClientMessage(playerid,COLOR_ORANGE,gstr); return true; } else return SysMsg(playerid, "Esse jogador não está conectado ou ainda não fez login, tente novamente."); } } mysql_format(conn, mquery, sizeof(mquery), "SELECT id, Faction, FactionRank, Name FROM players WHERE Name = '%e' LIMIT 1", params); mysql_pquery(conn, mquery, "PromoteF", "d", playerid); return true; } CMD:despedir(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new fullname[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", fullname)) return SysMsg(playerid,"Use: /despedir [Nome_Sobrenome] *Observe que isso limpa o banco de dados, não in game*"); new sqlid = MySQLCheckAccount(fullname, playerid); if(sqlid == 0) return SysMsg(playerid, "Nome não encontrado, use NOME_SOBRENOME."); if(sqlid == SQLID[playerid]) return SysMsg(playerid, "O nome não pode ser sua conta."); new playa = -1; foreach(new i: Player) if(strcmp(GetName(i), fullname, true) == 0) playa = i; if(playa != -1 && IsPlayerConnected(playa)) { if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esse jogador não está na mesma facção que você"); if(FactionRank[playerid] < FactionRank[playa]) return SysMsg(playerid,"Você não pode despedir alguem que tem o Rank superior ao seu."); if(RadioFrequency[playa] == FACTIONS[Faction[playa]][FactionRadioChannel]) RadioFrequency[playa] = 1000; for(new r = 0; r < 3; r++) { if(RadioSlot[playa][r] == FACTIONS[Faction[playa]][FactionRadioChannel]) { RadioSlot[playa][r] = 1000; } } Faction[playa] = 0; FactionRank[playa] = 0; if(MySpawnID[playa] == 2) { MySpawnID[playa] = 1; SubFactionSpawn[playa] = 0; } if(RestrictedVest{playa}) SetPlayerArmourEx(playa, 0.0, 1); ResetPlayerWeapons(playa); for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--) { if(WeaponData[playa][slot][WeaponOrigin] == 3) { ResetWeaponVariables(playa, 0, slot); } } for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--) { GivePlayerWeapon(playa, WeaponData[playa][slot][Weapon], WeaponData[playa][slot][WeaponAmmo]); } IsESU{playa} = false; if(Clothes[playa][0] == 0) { cPlayersSkin[playa] = 1; SetPlayerSkinEx(playa, 1); } if(Clothes[playa][0] != 0) { cPlayersSkin[playa] = Clothes[playa][0]; SetPlayerSkinEx(playa, Clothes[playa][0]); } mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Skin = %i WHERE id = %i", cPlayersSkin[playa], SQLID[playa]); mysql_pquery(conn, mquery); SendClientMessageF(playerid,COLOR_ORANGE,"Você despediu %s!", NameEx(playa)); FactionCustomRank[playa][0] = 0; IsESU{playerid} = false; SendClientMessageF(playa, COLOR_ORANGE,"%s %s despediu você, agora você é um civil.", GetFactionRankName(Faction[playerid], FactionRank[playerid]), NameEx(playerid)); //new oldSub[2], newSub[2], oldRank, newRank; for(new p; p < MAX_TOYS; p++) { if(ToyInfo[playa][p][FactionMask] == 1) { ClearToyData(playa, p); } } FirePlayer(sqlid, 1); //FactionLog(SQLID[playerid], SQLID[playa], 1, oldSub, newSub, oldRank, newRank, Faction[playerid]); } else { mysql_format(conn, mquery, sizeof(mquery), "SELECT Faction,FactionRank,Name FROM `players` WHERE id = %i", sqlid); mysql_pquery(conn, mquery, "Fire", "dd", playerid, sqlid); } return true; } CMD:togglef(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); if(FACTIONS[Faction[playerid]][FactionChatToggleOff] == 0) { FACTIONS[Faction[playerid]][FactionChatToggleOff] = 1; foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendClientMessageF(i, COLOR_ORANGE,"Chate da facção foi desabilitado por %s.", NameEx(playerid)); } else { FACTIONS[Faction[playerid]][FactionChatToggleOff] = 0; foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendClientMessageF(i, COLOR_ORANGE, "Chat da Facção foi ativado por %s.", NameEx(playerid)); } return true; } CMD:setsubrank(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new pname[32], newrank[20], playa; if(sscanf(params, "s[32]s[20]", pname, newrank)) return SysMsg(playerid,"Use: /setsubrank [ID / Nome_Sobrenome] [Novo Sub Rank]"); playa = GetPlayerIDs(pname); if(!InvalidPlayer(playa)) { if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(Faction[playerid] != Faction[playa]) return SysMsg(playerid,"Esse jogador não está na mesma facção que você"); if((strlen(newrank) < 2 || strlen(newrank) > 15)) return SysMsg(playerid,"Certifique-se de que o tamanho da classificação esteja entre 2 e 15 letras."); format(FactionCustomRank[playa], 16, newrank); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FactionCustomRank = '%e' WHERE id = %i", FactionCustomRank[playa], SQLID[playa]); mysql_pquery(conn, mquery); if(strfind(FactionCustomRank[playa], "ESU") != -1) IsESU{playa} = true; else IsESU{playa} = false; SendClientMessageF(playerid,COLOR_ORANGE, "Você definiu %s como sub-rank '%s'", NameEx(playa), newrank); SendClientMessageF(playa,COLOR_ORANGE, "%s definiu você como sub-rank '%s'", NameEx(playerid), newrank); } else if(strfind(pname, "_", true) != -1) { new sqlid = MySQLCheckAccount(pname, playerid); if(sqlid == 0) return SysMsg(playerid, "Nome não encontrado na base de Dados, tente novamente."); if(sqlid == SQLID[playerid]) return SysMsg(playerid, "O nome não pode ser da sua conta."); if(strlen(newrank) < 2 || strlen(newrank) > 15) return SysMsg(playerid,"Certifique-se de que o tamanho da classificação esteja entre 2 e 15 letras."); MySQLUpdateString(sqlid, "FactionCustomRank", newrank, "players"); SendClientMessageF(playerid,COLOR_ORANGE,"Você definiu %s como sub-rank '%s'", RPName(pname), newrank); } return true; } CMD:frespawn(playerid, params[])//respawn de veiculos Facção { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); if(isnull(params)) return SysMsg(playerid,"Use: /frespawn [ID do veículo ou TODOS] *Use /fcars para ver o ID, ou /dl*"); if(strcmp("todos", params, true) == 0) { new vcount = 0, tcount = 0; for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(IsVehicleSpawned(v) && FVehicleData[v][FVFaction] == Faction[playerid] && !FVehicleData[v][FImpounded]) { tcount ++; if(VehicleBeingTowed(v)) continue; if(VehicleIsOccupied(v)) continue; vcount ++; RespawnFactionCar(v); } } foreach(new i: Player) if(Logged{i} && Faction[i] == Faction[playerid]) SendClientMessageF(i, COLOR_ORANGE, "[Mensagem da facção] %s respawno %i dos veiculos da facção %i.", NameEx(playerid), vcount, tcount);//revisar } else { new v = strval(params); if(IsVehicleSpawned(FVehicleData[v][FactionVehID]) && FVehicleData[v][FVFaction] == Faction[playerid]) { if(VehicleBeingTowed(v)) return SysMsg(playerid, "Você não pode respawna um veículo que está sendo rebocado."); if(VehicleIsOccupied(v)) return SysMsg(playerid, "Você não pode respawnar um veiculo que está ocupado no momento."); if(FVehicleData[v][FImpounded]) return SysMsg(playerid, "Você não pode melhorar um veículo que esta confiscado."); SendClientMessage(playerid, COLOR_ORANGE, "O veiculo foi spawnado."); RespawnFactionCar(v); } } return true; } CMD:setfmotd(playerid, params[]) { if(!Logged{playerid}) return true; if(Faction[playerid] == 0) return SysMsg(playerid, "Você deve estar em uma facção para usar isso."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid, "Você não tem Rank suficiente na facção para mudar o faction MOTD."); if(isnull(params)) return SysMsg(playerid,"Use: /setfmotd [novo faction motd]"); mysql_format(conn, mquery, sizeof(mquery), "UPDATE fmotd SET fmotd = '%e' WHERE fid = %i", params, Faction[playerid]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_WHITE, "Definiu o faction MOTD para %s", params); format(sgstr, sizeof(sgstr), "Faction MOTD %i alterado", Faction[playerid]); AdminLog(playerid, 0, params, sgstr); return true; } CMD:setrank(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você precisa estar logado para usar esta ferramenta."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(!IsValidLeaderRank(Faction[playerid], FactionRank[playerid])) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new vehicle = GetPlayerVehicleID(playerid); if(vehicle == 0) return SysMsg(playerid, "Você nem está em um veículo."); new faction = IsFactionVehicle(vehicle); if(faction == 0) return SysMsg(playerid, "Esse veiculo não é de uma facção"); if((faction > 0 && Faction[playerid] != faction) && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode editar esse veiculo de facção"); if(faction > 0) { new newRank; if(isnull(params)) return SysMsg(playerid,"Use: /setrank [Classificação necessária para conduzir o veículo]"); if(!IsNumeric(params)) return SysMsg(playerid,"O ranking deve ser um número."); newRank = strval(params); if(newRank < 1 || newRank > FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsgF(playerid, "O Rank só pode ser de 1 a %i.", FACTIONS[Faction[playerid]][FactionUberLeaderRank]); if(FVehicleData[vehicle][FVMinRank] == newRank) return SysMsg(playerid,"Rank já é esse valor."); if(FVehicleData[vehicle][FVMinRank] > FactionRank[playerid]) return SysMsg(playerid,"Você não pode editar a classificação de um veículo se for superior ao seu próprio ranking."); FVehicleData[vehicle][FVMinRank] = newRank; MySQLUpdateInt(FVehicleData[vehicle][FVSQLID], "MinRank", newRank, "fveh"); SendClientMessageF(playerid, COLOR_WHITE, "A restrição de classificação de veículo de facção é agora %s(%i) a mais.", GetFactionRankName(Faction[playerid], newRank), newRank); } return true; } CMD:setrankname(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new rank, desc[32]; if(sscanf(params, "is[32]", rank, desc)) return SysMsg(playerid,"Use: /setrankname [Número do RANK] [Nome] *Exemplo: /setrankname 1 Trainee*"); if(strlen(desc) > 19) return SysMsg(playerid,"O comprimento do nome da classificação é muito longo (max 19 characters)."); if(rank > FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsgF(playerid, "O Rank só pode ser de 1 a %i.", FACTIONS[Faction[playerid]][FactionUberLeaderRank]); new x = rank - 1, f = Faction[playerid]; if(strcmp(FactionRanks[f][x], desc, true) == 0) return SysMsgF(playerid, "O nome do Rank já é %s", desc); new mysqlfield[12]; format(mysqlfield, 12, "RankName%i", rank); format(FactionRanks[f][x], 32, desc); MySQLUpdateString(FACTIONS[f][FactionId], mysqlfield, desc, "factions"); SendClientMessageF(playerid, COLOR_ORANGE,"Rank %i agora é %s.", rank, desc); return true; } CMD:setspawnpoint(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode criar um spawn dentro de um veiculo."); if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"Você não pode criar um spawn dentro de uma casa."); if(IsInBizzID[playerid] != -1) return SysMsg(playerid,"Você não pode criar um spawn dentro de um negócio."); new spawnpoint, desc[40]; if(sscanf(params, "is[40]", spawnpoint, desc)) return SysMsg(playerid,"Use: /setspawnpoint [Ponto 1-5] [descrição] *Exemplo: /setspawnpoint 1 Escritório de Fort Carson*"); if(strlen(desc) > 39) return SysMsg(playerid,"O comprimento da descrição é muito longo (max 39 characters)."); switch(spawnpoint) { case 1: { GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn1][0], FACTIONS[Faction[playerid]][FactionSpawn1][1], FACTIONS[Faction[playerid]][FactionSpawn1][2]); GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn1][3]); FACTIONS[Faction[playerid]][FactionSpawnVW][0] = GetPlayerVirtualWorld(playerid); FACTIONS[Faction[playerid]][FactionSpawnInt][0] = GetPlayerInterior(playerid); format(FACTIONS[Faction[playerid]][FactionSpawn1Name], 40, desc); mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn1Name = '%e', Spawn1X = %f, Spawn1Y = %f, Spawn1Z = %f, Spawn1A = %f, Spawn1VW = %i, Spawn1Int = %i WHERE id = %i", desc, FACTIONS[Faction[playerid]][FactionSpawn1][0], FACTIONS[Faction[playerid]][FactionSpawn1][1], FACTIONS[Faction[playerid]][FactionSpawn1][2], FACTIONS[Faction[playerid]][FactionSpawn1][3], FACTIONS[Faction[playerid]][FactionSpawnVW][0], FACTIONS[Faction[playerid]][FactionSpawnInt][0], FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); } case 2: { GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn2][0], FACTIONS[Faction[playerid]][FactionSpawn2][1], FACTIONS[Faction[playerid]][FactionSpawn2][2]); GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn2][3]); FACTIONS[Faction[playerid]][FactionSpawnVW][1] = GetPlayerVirtualWorld(playerid); FACTIONS[Faction[playerid]][FactionSpawnInt][1] = GetPlayerInterior(playerid); format(FACTIONS[Faction[playerid]][FactionSpawn2Name], 40, desc); mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn2Name = '%e', Spawn2X = %f, Spawn2Y = %f, Spawn2Z = %f, Spawn2A = %f, Spawn2VW = %i, Spawn2Int = %i WHERE id = %i", desc, FACTIONS[Faction[playerid]][FactionSpawn2][0], FACTIONS[Faction[playerid]][FactionSpawn2][1], FACTIONS[Faction[playerid]][FactionSpawn2][2], FACTIONS[Faction[playerid]][FactionSpawn2][3], FACTIONS[Faction[playerid]][FactionSpawnVW][1], FACTIONS[Faction[playerid]][FactionSpawnInt][1], FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); } case 3: { if(FACTIONS[Faction[playerid]][FactionSpawn2][0] == 0) return SysMsg(playerid, "Por favor, use o ponto de spawn 2 primeiro."); GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn3][0], FACTIONS[Faction[playerid]][FactionSpawn3][1], FACTIONS[Faction[playerid]][FactionSpawn3][2]); GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn3][3]); FACTIONS[Faction[playerid]][FactionSpawnVW][2] = GetPlayerVirtualWorld(playerid); FACTIONS[Faction[playerid]][FactionSpawnInt][2] = GetPlayerInterior(playerid); format(FACTIONS[Faction[playerid]][FactionSpawn3Name], 40, desc); mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn3Name = '%e', Spawn3X = %f, Spawn3Y = %f, Spawn3Z = %f, Spawn3A = %f, Spawn3VW = %i, Spawn3Int = %i WHERE id = %i", desc, FACTIONS[Faction[playerid]][FactionSpawn3][0], FACTIONS[Faction[playerid]][FactionSpawn3][1], FACTIONS[Faction[playerid]][FactionSpawn3][2], FACTIONS[Faction[playerid]][FactionSpawn3][3], FACTIONS[Faction[playerid]][FactionSpawnVW][2], FACTIONS[Faction[playerid]][FactionSpawnInt][2], FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); } case 4: { if(FACTIONS[Faction[playerid]][FactionSpawn3][0] == 0) return SysMsg(playerid, "Por favor, use o ponto de spawn 2 primeiro."); GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn4][0], FACTIONS[Faction[playerid]][FactionSpawn4][1], FACTIONS[Faction[playerid]][FactionSpawn4][2]); GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn4][3]); FACTIONS[Faction[playerid]][FactionSpawnVW][3] = GetPlayerVirtualWorld(playerid); FACTIONS[Faction[playerid]][FactionSpawnInt][3] = GetPlayerInterior(playerid); format(FACTIONS[Faction[playerid]][FactionSpawn4Name], 40, desc); mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn4Name = '%e', Spawn4X = %f, Spawn4Y = %f, Spawn4Z = %f, Spawn4A = %f, Spawn4VW = %i, Spawn4Int = %i WHERE id = %i", desc, FACTIONS[Faction[playerid]][FactionSpawn4][0], FACTIONS[Faction[playerid]][FactionSpawn4][1], FACTIONS[Faction[playerid]][FactionSpawn4][2], FACTIONS[Faction[playerid]][FactionSpawn4][3], FACTIONS[Faction[playerid]][FactionSpawnVW][3], FACTIONS[Faction[playerid]][FactionSpawnInt][3], FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); } case 5: { if(FACTIONS[Faction[playerid]][FactionSpawn4][0] == 0) return SysMsg(playerid, "Por favor, use o ponto de spawn 2 primeiro."); GetPlayerPos(playerid, FACTIONS[Faction[playerid]][FactionSpawn5][0], FACTIONS[Faction[playerid]][FactionSpawn5][1], FACTIONS[Faction[playerid]][FactionSpawn5][2]); GetPlayerFacingAngle(playerid, FACTIONS[Faction[playerid]][FactionSpawn5][3]); FACTIONS[Faction[playerid]][FactionSpawnVW][4] = GetPlayerVirtualWorld(playerid); FACTIONS[Faction[playerid]][FactionSpawnInt][4] = GetPlayerInterior(playerid); format(FACTIONS[Faction[playerid]][FactionSpawn5Name], 40, desc); mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn5Name = '%e', Spawn5X = %f, Spawn5Y = %f, Spawn5Z = %f, Spawn5A = %f, Spawn5VW = %i, Spawn5Int = %i WHERE id = %i", desc, FACTIONS[Faction[playerid]][FactionSpawn5][0], FACTIONS[Faction[playerid]][FactionSpawn5][1], FACTIONS[Faction[playerid]][FactionSpawn5][2], FACTIONS[Faction[playerid]][FactionSpawn5][3], FACTIONS[Faction[playerid]][FactionSpawnVW][4], FACTIONS[Faction[playerid]][FactionSpawnInt][4], FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); } default: return SysMsg(playerid,"O ponto de Spawn só pode ser de 1 a 5."); } SendClientMessageF(playerid, COLOR_ORANGE, "Ponto de spawn %i foi salvo. [%s]", spawnpoint, desc); return true; } CMD:removespawnpoint(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Faction[playerid] == 0) return SysMsg(playerid,"Você não está em uma facção."); if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new spawnpoint; if(sscanf(params, "i", spawnpoint)) return SysMsg(playerid,"Use: /removespawnpoint [ponto 2-5]"); new desc[40]; switch(spawnpoint) { case 1: return SysMsg(playerid,"Você não pode excluir o primeiro ponto de spawn."); case 2: { if(FACTIONS[Faction[playerid]][FactionSpawn2][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi configurado."); format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn2Name]); FACTIONS[Faction[playerid]][FactionSpawn2][0] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn2][1] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn2][2] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn2][3] = 0.0; FACTIONS[Faction[playerid]][FactionSpawnVW][1] = 0; FACTIONS[Faction[playerid]][FactionSpawnInt][1] = 0; FACTIONS[Faction[playerid]][FactionSpawn2Name][0] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn2Name = '', Spawn2X = 0.0, Spawn2Y = 0.0, Spawn2Z = 0.0, Spawn2A = 0.0, Spawn2VW = 0, Spawn2Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=3 AND Faction=%i", Faction[playerid]); mysql_pquery(conn, mquery); } case 3: { if(FACTIONS[Faction[playerid]][FactionSpawn3][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi definido."); format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn3Name]); FACTIONS[Faction[playerid]][FactionSpawn3][0] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn3][1] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn3][2] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn3][3] = 0.0; FACTIONS[Faction[playerid]][FactionSpawnVW][2] = 0; FACTIONS[Faction[playerid]][FactionSpawnInt][2] = 0; FACTIONS[Faction[playerid]][FactionSpawn3Name][0] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn3Name = '', Spawn3X = 0.0, Spawn3Y = 0.0, Spawn3Z = 0.0, Spawn3A = 0.0, Spawn3VW = 0, Spawn3Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=3 AND Faction=%i", Faction[playerid]); mysql_pquery(conn, mquery); } case 4: { if(FACTIONS[Faction[playerid]][FactionSpawn4][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi configurado."); format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn4Name]); FACTIONS[Faction[playerid]][FactionSpawn4][0] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn4][1] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn4][2] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn4][3] = 0.0; FACTIONS[Faction[playerid]][FactionSpawnVW][3] = 0; FACTIONS[Faction[playerid]][FactionSpawnInt][3] = 0; FACTIONS[Faction[playerid]][FactionSpawn4Name][0] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn4Name = '', Spawn4X = 0.0, Spawn4Y = 0.0, Spawn4Z = 0.0, Spawn4A = 0.0, Spawn4VW = 0, Spawn4Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=4 AND Faction=%i", Faction[playerid]); mysql_pquery(conn, mquery); } case 5: { if(FACTIONS[Faction[playerid]][FactionSpawn5][0] == 0) return SysMsg(playerid,"Este ponto de spawn não foi configurado."); format(desc, 40, FACTIONS[Faction[playerid]][FactionSpawn5Name]); FACTIONS[Faction[playerid]][FactionSpawn5][0] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn5][1] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn5][2] = 0.0; FACTIONS[Faction[playerid]][FactionSpawn5][3] = 0.0; FACTIONS[Faction[playerid]][FactionSpawnVW][4] = 0; FACTIONS[Faction[playerid]][FactionSpawnInt][4] = 0; FACTIONS[Faction[playerid]][FactionSpawn5Name][0] = 0; mysql_format(conn, mquery, sizeof(mquery), "UPDATE factions SET Spawn5Name = '', Spawn5X = 0.0, Spawn5Y = 0.0, Spawn5Z = 0.0, Spawn5A = 0.0, Spawn5VW = 0, Spawn5Int = 0 WHERE id = %i", FACTIONS[Faction[playerid]][FactionId]); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET SubFactionSpawn=1 WHERE SubFactionSpawn=5 AND Faction=%i", Faction[playerid]); mysql_pquery(conn, mquery); } default: return SysMsg(playerid,"O ponto de Spawn só pode ser de 1 a 5."); } foreach(new i: Player) { if(Logged{i} && Faction[i] == Faction[playerid] && SubFactionSpawn[i] == spawnpoint) { SubFactionSpawn[i] = 1; MySQLUpdateInt(SQLID[i], "SubFactionSpawn", SubFactionSpawn[i], "players"); } } format(gstr, sizeof(gstr), "Ponto de spawn %i (%s) foi removido.", spawnpoint, desc); SendClientMessage(playerid, COLOR_ORANGE, gstr); return true; } CMD:fsaque(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); if(!IsInBank(playerid)) return SysMsg(playerid, "Você não esta em um banco."); if(Faction[playerid] < 1) return SysMsg(playerid,"Você não está em uma facção."); if(FactionRank[playerid] < FACTIONS[Faction[playerid]][FactionUberLeaderRank]) return SysMsg(playerid,"Você não tem um Rank alto suficiente na facção para fazer isso."); new amount; if(sscanf(params, "i", amount)) return SysMsg(playerid,"Use: /fsaque [Quantidade]"); if(amount < 1) return SysMsg(playerid,"Quantidade Inválida, Deve ser maior que 0."); if(amount > FACTIONS[Faction[playerid]][FactionBankBalance]) return SysMsg(playerid,"Quantidade Inválida, Não há nem mesmo na conta."); new oldBal = FACTIONS[Faction[playerid]][FactionBankBalance]; FACTIONS[Faction[playerid]][FactionBankBalance] -= amount; GivePlayerCash(playerid, amount); SendClientMessageF(playerid, COLOR_WHITE, "[Saque - Facção] Equilíbrio bancário da facção {0098F2}%s:", GetFactionName(playerid)); SendClientMessageF(playerid, COLOR_WHITE, "[Saque - Facção] Balance Antigo: {4BB74C}$%s{FFFFFF}, Novo Balance: {4BB74C}$%s{FFFFFF}.", format_cash(oldBal), format_cash(FACTIONS[Faction[playerid]][FactionBankBalance])); MySQLUpdateInt(FACTIONS[Faction[playerid]][FactionId], "BankBalance", FACTIONS[Faction[playerid]][FactionBankBalance], "factions"); format(gstr, sizeof(gstr),"[%s] %s(%i) retirou $%i da %s fbank. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, amount, GetFactionName(playerid), Cash[playerid]); AddToLog("cash", gstr); return true; } //==============================// CMD:atm(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado."); new atm = IsPlayerNearATM(playerid); if(atm == 0) return SysMsg(playerid,"Você não está proximo de um caixa eletronico."); new Float:atmPos[3]; GetDynamicObjectPos(atm, atmPos[0], atmPos[1], atmPos[2]); SetPlayerToFacePoint(playerid, atmPos[0], atmPos[1]); OnePlayAnim(playerid, "ped", "ATM", 3.5, 0, 0, 0, 0, 0); UsingATM{playerid} = true; Dialog_Show(playerid,BankMenu,DIALOG_STYLE_LIST,"{3D9140}Gerênciamento bancário {FFFFFF}(ATM)","Balance\nSaque\nSacar tudo\nSacar metade","Selecionar","Cancelar"); return true; } CMD:assinarcheque(playerid, params[]) { if(!Logged{playerid}) return true; if(!CheckReady{playerid}) return SysMsg(playerid,"Você não tem um cheque pronto."); if(IsPlayerInRangeOfPoint(playerid, 2.5, 756.6013,-31.4750,1008.6959) || IsPlayerInRangeOfPoint(playerid, 2.5, 915.378479, 2370.55102, 246.462112) || IsPlayerInRangeOfPoint(playerid, 2.5, 889.941467, 2261.735351, 238.230422) || IsPlayerInRangeOfPoint(playerid, 2.5, 1174.3242,1354.0504,1002.8235) || ADuty[playerid] == 1) { new paydaynumber; if(sscanf(params, "i", paydaynumber)) return SysMsg(playerid,"Use: /assinarcheque [número]"); if(paydaynumber < 1111 || paydaynumber > 9111) return SysMsg(playerid,"Número de verificação inválido."); if(paydaynumber != CheckNumber[playerid]) return SysMsg(playerid,"Número de verificação errado."); PayDay(playerid); CheckReady{playerid} = false; UnlockAchievement(playerid, 11); PlayerTextDrawSetString(playerid, Signcheck[playerid], "~g~~h~~h~Payday: ~w~0000"); PlayerTextDrawHide(playerid, Signcheck[playerid]); printf("[PayDay] %s (%i)",NameEx(playerid),CheckReady{playerid}); return true; } SysMsg(playerid,"Você deve estar em uma Prefeitura da cidade para obter o seu Payday. (Palomino Creek, Fort Carson ou Angel Pine)."); return true; } CMD:agua(playerid) { if(!Logged{playerid}) return true; if(Inventory[playerid][Water] <= 0) return SysMsg(playerid,"Você não tem água."); Inventory[playerid][Water] --; MySQLUpdateFloat(SQLID[playerid], "HasWater", Inventory[playerid][Water], "players"); OnePlayAnim(playerid, "FOOD", "EAT_Burger", 3.0, 0, 0, 0, 0, 0); SendClientMessage(playerid, COLOR_WHITE, "Depois de beber alguns copos de {00B9F9}água{FFFFFF}, você se sente um pouco {00B9F9}refrescado{FFFFFF} e {00B9F9}hidratado{FFFFFF}."); return true; } CMD:beber(playerid, params[]) //comando para bar //observar { if(!Logged{playerid}) return true; if(!IsPlayerAtBar(playerid)) return SysMsg(playerid,"Você não está em um Bar."); if(isnull(params)) return SysMsg(playerid,"Use: /beber [Nome do Drink] (Drinks: vinho, cerveja, sprunk, vodka, cola)"); if(strcmp("cerveja",params,true) == 0) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_BEER) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber."); GivePlayerCash(playerid, -5); DrunkLevel[playerid] = GetPlayerDrunkLevel(playerid); if(DrunkLevel[playerid] < 47500) { DrunkLevel[playerid] += 2500; SetPlayerDrunkLevel(playerid, DrunkLevel[playerid]); } else { DrunkLevel[playerid] = 50000; SetPlayerDrunkLevel(playerid, 50000); } LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_BEER); SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou uma Cerveja por $5."); format(gstr, sizeof(gstr),"* %s compra uma Garrafa de Cerveja no bar. *",NameRP(playerid)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); UnlockAchievement(playerid, 64); return true; } else if(strcmp("vinho",params,true) == 0) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_WINE) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber."); GivePlayerCash(playerid, -7); DrunkLevel[playerid] = GetPlayerDrunkLevel(playerid); if(DrunkLevel[playerid] < 47000) { DrunkLevel[playerid] += 3000; SetPlayerDrunkLevel(playerid, DrunkLevel[playerid]); } else { DrunkLevel[playerid] = 50000; SetPlayerDrunkLevel(playerid, 50000); } LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE); SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou uma Garrafa de Vinho por $7."); format(gstr, sizeof(gstr),"* %s compra uma garrafa de Vinho no Bar. *",NameRP(playerid)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); UnlockAchievement(playerid, 64); return true; } else if(strcmp("sprunk",params,true) == 0) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber."); GivePlayerCash(playerid, -3); LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK); SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou um Copo de Sprunk por $3."); format(gstr, sizeof(gstr),"* %s compra um Copo de Sprunk no bar. *",NameRP(playerid)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); UnlockAchievement(playerid, 64); return true; } else if(strcmp("cola",params,true) == 0) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_SPRUNK) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber."); GivePlayerCash(playerid, -3); LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_SPRUNK); SendClientMessage(playerid,COLOR_SKYBLUE,"Você com comprou uma latinha de Coca-Cola por $3."); format(gstr, sizeof(gstr),"* %s compra uma Latinha de Coca-cola no bar. *",NameRP(playerid)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); UnlockAchievement(playerid, 64); return true; } else if(strcmp("vodka",params,true) == 0) { if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DRINK_WINE) return SysMsg(playerid,"Aguarde até que você tenha terminado de beber."); GivePlayerCash(playerid, -6); DrunkLevel[playerid] = GetPlayerDrunkLevel(playerid); if(DrunkLevel[playerid] < 47000) { DrunkLevel[playerid] += 5000; SetPlayerDrunkLevel(playerid, DrunkLevel[playerid]); } else { DrunkLevel[playerid] = 50000; SetPlayerDrunkLevel(playerid, 50000); } LoopingAnim(playerid, "BAR", "Barcustom_get", 3.0, 0, 1, 1, 1, 0); SetPlayerSpecialAction(playerid, SPECIAL_ACTION_DRINK_WINE); SendClientMessage(playerid,COLOR_SKYBLUE,"Você comprou uma Garrafa de Vodka $6."); format(gstr, sizeof(gstr),"* %s compra uma garrafa de Vodka no bar. *",NameRP(playerid)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); UnlockAchievement(playerid, 64); return true; } return true; } CMD:comprarcomida(playerid, params[]) { if(!Logged{playerid}) return true; gstr[0] = EOS; if(IsPlayerInRangeOfPoint(playerid,2.5,375.593475,-119.421913,1001.499511) || IsPlayerInRangeOfPoint(playerid, 2.5, 1377.5850,230.8785,859.7217)) { if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); strcat(gstr, "{FFFFFF}Hamburger - {3D9140}$2\n"); strcat(gstr, "{FFFFFF}X-Tudo - {3D9140}$5\n"); strcat(gstr, "{FFFFFF}Costela Assada - {3D9140}$10\n"); strcat(gstr, "{FFFFFF}Salada - {3D9140}$10"); Dialog_Show(playerid, FoodMenu, DIALOG_STYLE_LIST, "Cardápio de comidas", gstr, "Comprar", "Sair"); return true; } else if(IsPlayerInRangeOfPoint(playerid,3.5,449.311401,-84.340423,999.554687) || IsPlayerInRangeOfPoint(playerid, 5.5, -1337.6069, -41.5284, 17.7579) || IsPlayerInRangeOfPoint(playerid,3.5,378.4463,-187.9347,1000.6328) || IsPlayerInRangeOfPoint(playerid,3.5,1981.5765,2358.3240,1023.9039)) { if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); strcat(gstr, "{FFFFFF}Hambúrguer - {3D9140}$4\n"); strcat(gstr, "{FFFFFF}Café - {3D9140}$1\n"); strcat(gstr, "{FFFFFF}Coca-Cola - {3D9140}$2\n"); strcat(gstr, "{FFFFFF}Double Whopper Cheeseburger - {3D9140}$20\n"); strcat(gstr, "{FFFFFF}Fritas - {3D9140}$4\n"); strcat(gstr, "{FFFFFF}Sopa - {3D9140}$3\n"); strcat(gstr, "{FFFFFF}Chá - {3D9140}$1\n"); strcat(gstr, "{FFFFFF}Torrada - {3D9140}$2"); Dialog_Show(playerid, CafeMenu, DIALOG_STYLE_LIST, "Cardápio Café", gstr, "Comprar", "Sair"); return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.5,-2680.204833, 632.025817, 13700.49804) || IsPlayerInRangeOfPoint(playerid, 5.5, -1340.6831, -31.1640, 14.2559)) //mont hospital, prison cafes { strcat(gstr, "{FFFFFF}Café - {3D9140}$1\n"); strcat(gstr, "{FFFFFF}Coca-Cola - {3D9140}$2\n"); strcat(gstr, "{FFFFFF}Sopá - {3D9140}$3\n"); strcat(gstr, "{FFFFFF}Chá - {3D9140}$1\n"); strcat(gstr, "{FFFFFF}Torrada - {3D9140}$2\n"); Dialog_Show(playerid, CafeMenu, DIALOG_STYLE_LIST, "Cardápio Café", gstr, "Comprar", "Sair"); return true; } return true; } CMD:cancelarcompra(playerid, params[])//cancelarcompra { if(!Logged{playerid}) return true; if(IsBrowsingMasks[playerid] > 0) { if(ClothesShop[playerid] == 1) // Binco { SetPlayerInterior(playerid, 15); SetPlayerPos(playerid, 217.741760, -98.467315, 1005.257812); SetPlayerFacingAngle(playerid, 85.428855); } else if(ClothesShop[playerid] == 2) // Pro Laps { SetPlayerInterior(playerid, 3); SetPlayerPos(playerid, 199.539031, -128.424484, 1003.515197); SetPlayerFacingAngle(playerid, 180.0); ClothesShop[playerid] = 0; } else if(ClothesShop[playerid] == 3) // D Sachs { SetPlayerInterior(playerid, 14); SetPlayerPos(playerid, 215.935409, -155.250579, 1000.523437); SetPlayerFacingAngle(playerid, 90.0); ClothesShop[playerid] = 0; } else if(ClothesShop[playerid] == 4) // Sub urban { SetPlayerInterior(playerid, 1); SetPlayerPos(playerid, 214.644851, -40.850963, 1002.023437); SetPlayerFacingAngle(playerid, 90.0); ClothesShop[playerid] = 0; } else if(ClothesShop[playerid] == 5) // ZIP { SetPlayerInterior(playerid, 18); SetPlayerPos(playerid, 180.1575, -88.2124, 1002.0234); SetPlayerFacingAngle(playerid, 90.0); ClothesShop[playerid] = 0; } SetPlayerVirtualWorldEx(playerid, BizzData[IsInBizzID[playerid]][BizzVW]); BrowseMaskType[playerid] = 0; IsBrowsingMasks[playerid] = 0; ClothesShop[playerid] = 0; SetCameraBehindPlayer(playerid); PlayerTextDrawHide(playerid, MaskHelpText[playerid]); TogglePlayerControllable(playerid, 1); for(new i = 0; i < MAX_TEMPCLOTHES; i++) { if(Clothing_Objects[playerid][i] != INVALID_OBJECT_ID) { DestroyDynamicObjectEx(Clothing_Objects[playerid][i], "Clothing_Objects[playerid][i]"); Clothing_Objects[playerid][i] = INVALID_OBJECT_ID; } } } return true; } CMD:comprar(playerid, params[])//observar /pickups e nomes do /comprar { if(!Logged{playerid}) return true; if(IsPlayerInRangeOfPoint(playerid,5.5,-27.167560,-89.524269,1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,-23.428977, -55.200191, 1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,2.20236, -28.508106, 1003.549438) || IsPlayerInRangeOfPoint(playerid, 5.5, 1248.3158,204.4189,2020.6406) || IsPlayerInRangeOfPoint(playerid, 5.5, 663.9998,-568.8943,16.3363)) { new b; if(IsPlayerInRangeOfPoint(playerid, 5.5, 663.9998,-568.8943,16.3363)) b = 44; else b = IsInBizzID[playerid]; if(b <= 0) return SysMsg(playerid,"Você não esta em uma Loja."); if(BizzData[b][BizzOwnerSQLID] > 0 && BizzData[b][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); gstr[0] = EOS; strcat(gstr, "{FFFFFF}Item\t{FFFFFF}Cost\n"); strcat(gstr, "{FFFFFF}Mochila/Paraquedas\t{3D9140}$135\n"); strcat(gstr, "{FFFFFF}Calculadora básica\t{3D9140}$45\n"); strcat(gstr, "{FFFFFF}Taco de Beisebol\t{3D9140}$45\n"); strcat(gstr, "{FFFFFF}Venda de Olhos\t{3D9140}$25\n"); strcat(gstr, "{FFFFFF}Garrafa de Agua\t{3D9140}$2\n"); strcat(gstr, "{FFFFFF}Garrafas de Agua (x6)\t{3D9140}$10\n"); strcat(gstr, "{FFFFFF}Pasta\t{3D9140}$3750\n"); strcat(gstr, "{FFFFFF}Bengala\t{3D9140}$50\n"); strcat(gstr, "{FFFFFF}Dado\t{3D9140}$5\n"); strcat(gstr, "{FFFFFF}Kit de primeiros socorros\t{3D9140}$65\n"); strcat(gstr, "{FFFFFF}Flores\t{3D9140}$15\n"); strcat(gstr, "{FFFFFF}Recipiente de combustível\t{3D9140}$125\n"); strcat(gstr, "{FFFFFF}Taco de Golf\t{3D9140}$155\n"); strcat(gstr, "{FFFFFF}Isqueiro\t{3D9140}$5\n"); strcat(gstr, "{FFFFFF}Bloco de anotações\t{3D9140}$6\n"); strcat(gstr, "{FFFFFF}Maço de cigarro (x10)\t{3D9140}$3\n"); strcat(gstr, "{FFFFFF}Maço de cigarro (x20)\t{3D9140}$5\n"); strcat(gstr, "{FFFFFF}Taco de sinuca\t{3D9140}$80\n"); strcat(gstr, "{FFFFFF}Corda\t{3D9140}$12\n"); strcat(gstr, "{FFFFFF}Pá\t{3D9140}$35\n"); strcat(gstr, "{FFFFFF}Gravetos para Fogueira\t{3D9140}$100\n"); //Small Logs strcat(gstr, "{FFFFFF}ESPECIAL: Gorro Natalino\t{3D9140}$50\n"); strcat(gstr, "{FFFFFF}Lata de Spray\t{3D9140}$50\n"); strcat(gstr, "{FFFFFF}Relógio\t{3D9140}$250\n"); strcat(gstr, "{FFFFFF}Papel de escrita (x5)\t{3D9140}$5\n"); strcat(gstr, "{FFFFFF}Caneta de escrita\t{3D9140}$3\n"); Dialog_Show(playerid, ShopDialog, DIALOG_STYLE_TABLIST_HEADERS, "Loja Geral", gstr, "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid,5.5,-2236.450439, 130.609893, 1035.414062)) { if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja."); if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); gstr[0] = EOS; strcat(gstr, "{FFFFFF}Item\t{FFFFFF}Custo\n"); strcat(gstr, "{3D9140}$100{FFFFFF} Crédito telefônico\t{3D9140}$100\n"); strcat(gstr, "{3D9140}$10{FFFFFF} Crédito telefônico\t{3D9140}$10\n"); strcat(gstr, "{3D9140}$20{FFFFFF} Crédito telefônico\t{3D9140}$20\n"); strcat(gstr, "{3D9140}$50{FFFFFF} Crédito telefônico\t{3D9140}$50\n"); strcat(gstr, "{FFFFFF}Calculadora básica\t{3D9140}$45\n"); strcat(gstr, "{FFFFFF}Boombox (Large)\t{3D9140}$15000\n"); strcat(gstr, "{FFFFFF}Boombox (Small)\t{3D9140}$7500\n"); strcat(gstr, "{FFFFFF}Camera\t{3D9140}$125\n"); strcat(gstr, "{FFFFFF}Celular\t{3D9140}$300\n"); strcat(gstr, "{FFFFFF}Carregador de celular para carro\t{3D9140}$395\n"); strcat(gstr, "{FFFFFF}Lista telefônica\t{3D9140}$5\n"); strcat(gstr, "{FFFFFF}Pocket GPS\t{3D9140}$400\n"); strcat(gstr, "{FFFFFF}Radio\t{3D9140}$225\n"); strcat(gstr, "{FFFFFF}Relógio\t{3D9140}$250\n"); Dialog_Show(playerid, ShopDialog, DIALOG_STYLE_TABLIST_HEADERS, "Loja Eletrônica", gstr, "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid,4.5,2150.958251,-100.995117,2.755812) || IsPlayerInRangeOfPoint(playerid, 4.5, -800.5269,-1922.8231,9.1117)) //fishing shop { gstr[0] = EOS; strcat(gstr, "Permissão de pesca - {3D9140}$500\n"); strcat(gstr, "Vara de Pesca - {3D9140}$150\n"); strcat(gstr, "Isca (X25) - {3D9140}$10\n"); strcat(gstr, "Caixa de peixe pequeno (100 slots) - {3D9140}$1,000\n"); strcat(gstr, "Caixa de peixe médio (250 slots) - {3D9140}$2,500\n"); strcat(gstr, "Grande caixa de peixe (500 slots) - {3D9140}$5,000\n"); Dialog_Show(playerid, FishingBuy, DIALOG_STYLE_LIST, "Loja de pesca", gstr, "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid,7.5,312.582183, -165.342315, 999.601013)) //ammunation { if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja."); if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); gstr[0] = EOS; if(WeaponLicense[playerid] > 0) { strcat(gstr, "{FFFFFF}Pistola 9mm com 85 munições - {3D9140}$7500\n"); strcat(gstr, "{FFFFFF}Desert Eagle com 70 munições - {3D9140}$10000\n"); } if(WeaponLicense[playerid] > 1) { strcat(gstr, "{FFFFFF}Country Rifle com 50 munições - {3D9140}$29500\n"); strcat(gstr, "{FFFFFF}Shotgun com 50 munições- {3D9140}$18500\n"); } if(WeaponLicense[playerid] == 3) { strcat(gstr, "{FFFFFF}MP5 com 120 munições - {3D9140}$15000\n"); } strcat(gstr, "{FFFFFF}Colete Leve - {3D9140}$2500\n"); strcat(gstr, "{FFFFFF}Munições para Pistola - {3D9140}$3000\n"); strcat(gstr, "{FFFFFF}Munições para Shotgun - {3D9140}$4000\n"); strcat(gstr, "{FFFFFF}Munições para SMG/UZI - {3D9140}$5000\n"); strcat(gstr, "{FFFFFF}Munições para Assault Rifle - {3D9140}$6000\n"); strcat(gstr, "{FFFFFF}Munições para Rifle/Sniper - {3D9140}$6000\n"); strcat(gstr, "{FFFFFF}ajuda loja"); Dialog_Show(playerid, AmmunationDialog, DIALOG_STYLE_LIST, "Ammunation Store", gstr, "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid, 4.0, -104.774566, -11.245146, 1000.71875)) //sex shop { if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja."); if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); Dialog_Show(playerid, SexShopMenu, DIALOG_STYLE_LIST, "Sex Shop Itens", "{FFFFFF}Dildo roxo longo - {3D9140}$3500\n{FFFFFF}Vibrador branco pequeno - {3D9140}$2995\n{FFFFFF}Vibrato branco grander - {3D9140}$6250\n{FFFFFF}Vibrador de prata - {3D9140}$5000\n{FFFFFF}Nite Stick - {3D9140}$1200", "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid, 4.0, 1465.098754, -1080.154663, 213.447738) && IsPlayerAdminLevelOK(playerid, 1)) //admin ex shop { Dialog_Show(playerid, SexShopMenu, DIALOG_STYLE_LIST, "Sex Shop Itens", "{FFFFFF}Dildo roxo longo - {3D9140}$3500\n{FFFFFF}Vibrador branco pequeno - {3D9140}$2995\n{FFFFFF}Vibrato branco grander - {3D9140}$6250\n{FFFFFF}Vibrador de prata - {3D9140}$5000\n{FFFFFF}Nite Stick - {3D9140}$1200", "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid, 4.0, 745.4332, 1439.9840, 1102.7031)) //drug shop { if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja."); if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Essa loja esta com estoque vazio."); Dialog_Show(playerid, DrugShopDialog, DIALOG_STYLE_LIST, "Itens de Drogaria", "{FFFFFF}Rolo de Papel (x10) - {3D9140}$40\n\ {FFFFFF}Bong - {3D9140}$1350\n\ {FFFFFF}Frasco de água destilada - {3D9140}$6\n\ {FFFFFF}Sementes de Marijuana (x10) - {3D9140}$750", "Comprar", "Cancelar"); return true; } else if(IsPlayerInRangeOfPoint(playerid, 4.0, 2435.888916, 111.16863, 1001.593872)) //pc garage { if(IsInBizzID[playerid] <= 0) return SysMsg(playerid,"Você não esta em uma Loja."); if(BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Estamos atualmente sem estoque, por favor volte em outro momento."); gstr[0] = EOS; strcat(gstr, "{FFFFFF}Item\t{FFFFFF}Cost\n"); strcat(gstr, "{FFFFFF}Container de combustível\t{3D9140}$125\n"); strcat(gstr, "{FFFFFF}Carregador de celular para carro\t{3D9140}$395\n"); strcat(gstr, "{FFFFFF}Óleo de motor supremo\t{3D9140}$115\n"); strcat(gstr, "{FFFFFF}Caixa de ferramentas\t{3D9140}$350\n"); Dialog_Show(playerid, ShopDialog, DIALOG_STYLE_TABLIST_HEADERS, "Garagem Palomino Creek", gstr, "Comprar", "Cancelar"); return true; } return true; } CMD:medkit(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][MedKit] == 0) return SysMsg(playerid, "Você não tem um kit de primeiros socorros para usar."); if(MedKitAction[playerid] != 0 || MedKitActionPlayer[playerid] != -1) return SysMsg(playerid, "Você já está usando um medkit."); new Float:Health; if(strcmp("me", params, true) == 0) { foreach(new i: Player) { if(MedKitActionPlayer[i] == playerid) { return SysMsg(playerid, "Você já está sendo curado."); } } new nlwcount = 0, lwcount = 0; for(new x = 0; x < HitCount[playerid]; x++) { switch(Injuries[playerid][x][pWeaponID]) { case 22..34,38: lwcount ++; default: nlwcount ++; } } if(lwcount >= 1) return SysMsg(playerid, "Você tem uma ferida letal. Você precisa de um tratamento médico adequado."); GetPlayerHealth(playerid, Health); if(Health == 100.0) return SysMsg(playerid, "Você está se sentindo perfeitamente bem assim não exija isso."); MedKitAction[playerid] = 20; OnePlayAnim(playerid, "CASINO", "dealone", 1.0, 1, 0, 0, 0, 20000); format(gstr, sizeof(gstr),"* %s abre um pequeno kit de primeiros socorros... *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /medkit [ID ou nome do jogador Ou 'me' para usar em você mesmo]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return cmd_medkit(playerid, "me"); foreach(new i: Player) { if(MedKitActionPlayer[i] == playa) { return SysMsg(playerid, "Este jogador já está sendo curado."); } } new nlwcount = 0, lwcount = 0; for(new x = 0; x < HitCount[playa]; x++) { switch(Injuries[playa][x][pWeaponID]) { case 22..34,38: lwcount ++; default: nlwcount ++; } } if(lwcount >= 1) return SysMsg(playerid, "Este jogador tem uma ferida letal. Eles precisam de um tratamento médico adequado."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para curá-los."); GetPlayerHealth(playa, Health); if(Health == 100.0) return SysMsg(playerid, "Esse jogador não exige isso."); MedKitAction[playerid] = 20; MedKitActionPlayer[playerid] = playa; SetPlayerToFacePlayer(playerid, playa); OnePlayAnim(playerid, "BOMBER", "BOM_Plant_Loop", 4.0, 1, 0, 0, 1, 0); OnePlayAnim(playa, "SWEET", "Sweet_injuredloop", 4.0, 1, 0, 0, 0, 0); SetTimerEx("UnTazePlayer", 20000, 0, "d", playerid); SetTimerEx("UnTazePlayer", 20000, 0, "d", playa); format(gstr, sizeof(gstr),"* %s abre um pequeno kit de primeiros socorros... *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } return true; } CMD:treinar(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid, 5.0, 768.177551, -42.182048, 1000.686462)) return SysMsg(playerid, "Você precisa esta em uma Gym para fazer isso."); if(isnull(params)) return SysMsg(playerid,"Use: /treinar [boxer/kungfu]"); PreloadAnimLib(playerid, "GYMNASIUM"); PreloadAnimLib(playerid, "PARK"); if(!strcmp("boxing", params, true) || !strcmp("boxer", params, true)) { if(UsingFightStyle{playerid} == FIGHT_STYLE_BOXING) return SysMsg(playerid,"Você já estar usando seu estilo de luta Boxer."); if(FightStyleLearned[playerid]{FS_BOXING}) { SysMsg(playerid,"Você já esta aprendendo Boxer."); if(UsingFightStyle{playerid} != FIGHT_STYLE_BOXING) SysMsg(playerid,"Para usar seu estilo de luta boxer, use /estiloluta (/sl)."); return 1; } SetPlayerVirtualWorldEx(playerid, playerid+10000); //SetPlayerSkinEx(playerid, 81); SetPlayerPos(playerid, 768.280273, -36.697841, 1000.686462); SetPlayerFacingAngle(playerid, 220.9); TogglePlayerControllable(playerid, 0); SetPlayerCameraPos(playerid, 768.3822, -41.8251, 1000.1867); SetPlayerCameraLookAt(playerid, 764.3148, -32.6897, 1001.923); OnePlayAnim(playerid,"GYMNASIUM","GYMshadowbox",4.0,1,1,1,1,0); Dialog_Show(playerid, FightDialog, DIALOG_STYLE_MSGBOX, "Gym", "{FFFFFF}Você quer aprender a lugar o estilo {4897FF}Boxer{FFFFFF}?\nIsso custará {4897FF}$50,000", "Sim", "Não"); SetPVarInt(playerid, "FStyleBuy", 1); } else if(!strcmp("kungfu", params, true) || !strcmp("kung fu", params, true)) { if(UsingFightStyle{playerid} == FIGHT_STYLE_KUNGFU) return SysMsg(playerid,"You are already using your Kung Fu fighting style."); if(FightStyleLearned[playerid]{FS_KUNGFU}) { SysMsg(playerid,"Você já esta aprendendo Kung Fu."); if(UsingFightStyle{playerid} != FIGHT_STYLE_KUNGFU) SysMsg(playerid,"Para usar seu estilo de luta kung fu, use /estiloluta (/sl)."); return 1; } SetPlayerVirtualWorldEx(playerid, playerid+10000); //SetPlayerSkinEx(playerid, 49); SetPlayerPos(playerid, 768.280273, -36.697841, 1000.686462); SetPlayerFacingAngle(playerid, 220.9); TogglePlayerControllable(playerid, 0); SetPlayerCameraPos(playerid, 768.3822, -41.8251, 1000.1867); SetPlayerCameraLookAt(playerid, 764.3148, -32.6897, 1001.923); OnePlayAnim(playerid,"PARK","Tai_Chi_Loop",4.0,1,0,0,0,0); Dialog_Show(playerid, FightDialog, DIALOG_STYLE_MSGBOX, "Gym", "{FFFFFF}Você quer aprender {4897FF}Kung Fu{FFFFFF}?\nIsso custará {4897FF}$50,000", "Sim", "Não"); SetPVarInt(playerid, "FStyleBuy", 2); } return true; } CMD:sl(playerid, params[]) return cmd_estiloluta(playerid, params); CMD:estiloluta(playerid, params[]) { if(isnull(params)) return SysMsg(playerid,"Use: /estiloluta [normal/boxing/kungfu]"); if(!strcmp(params, "normal", true) || !strcmp(params, "none", true) || !strcmp(params, "default", true)) { if(UsingFightStyle{playerid} == FIGHT_STYLE_NORMAL) return SysMsg(playerid, "Você já está usando esse estilo de luta."); SetPlayerFightingStyle(playerid, FIGHT_STYLE_NORMAL); UsingFightStyle{playerid} = FIGHT_STYLE_NORMAL; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FightStyle = %i WHERE id = %i", UsingFightStyle{playerid}, SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessage(playerid, -1, "Estilo de luta definido para 'normal'."); } else if(!strcmp(params, "boxing", true) || !strcmp(params, "boxer", true)) { if(!FightStyleLearned[playerid]{FS_BOXING}) return SysMsg(playerid, "Você não conhece esse estilo de luta."); if(UsingFightStyle{playerid} == FIGHT_STYLE_BOXING) return SysMsg(playerid, "Você já está usando esse estilo de luta."); SetPlayerFightingStyle(playerid, FIGHT_STYLE_BOXING); UsingFightStyle{playerid} = FIGHT_STYLE_BOXING; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FightStyle = %i WHERE id = %i", UsingFightStyle{playerid}, SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessage(playerid, -1, "Estilo de luta definido para 'Boxing'."); } else if(!strcmp(params, "kungfu", true) || !strcmp(params, "kung fu", true)) { if(!FightStyleLearned[playerid]{FS_KUNGFU}) return SysMsg(playerid, "Você não conhece esse estilo de luta."); if(UsingFightStyle{playerid} == FIGHT_STYLE_KUNGFU) return SysMsg(playerid, "Você já está usando esse estilo de luta."); SetPlayerFightingStyle(playerid, FIGHT_STYLE_KUNGFU); UsingFightStyle{playerid} = FIGHT_STYLE_KUNGFU; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET FightStyle = %i WHERE id = %i", UsingFightStyle{playerid}, SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessage(playerid, -1, "Estilo de luta definido para 'Kung Fu'."); } return true; } CMD:pagar(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1, PayCash, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]i", name, PayCash)) return SysMsg(playerid,"Use: /pagar [ID ou nome do jogador] [Quantidade a pagar]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode pagar a si mesmo."); if(PayCash < 1 || PayCash > 1000000) return SysMsg(playerid,"O dinheiro deve estar entre $1 e $1,000,000."); if(PayCash > Cash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade de dinheiro."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.5,tX,tY,tZ) || IsSpectating[playa] > -1) return SysMsg(playerid,"Você deve estar perto do jogador para pagá-lo."); GivePlayerCash(playerid, -PayCash); GivePlayerCash(playa, PayCash); SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você deu a %s $%s",NameRP(playa),format_cash(PayCash)); SendClientMessageF(playa, COLOR_LIGHTGREEN, "%s te deu $%s",NameRP(playerid),format_cash(PayCash)); format(gstr, sizeof(gstr),"* %s tira algum dinheiro da carteira e dá para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(!IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(playa)) { SetPlayerToFacePlayer(playerid, playa); OnePlayAnim(playerid, "DEALER", "shop_pay", 3.5, 0, 0, 0, 0, 0); } format(gstr, sizeof(gstr),"[%s] %s(%i) pagou %s(%i) $%i. (Total: $%i)", GetServerTimeString(), NameEx(playerid), playerid, NameEx(playa), playa, PayCash, Cash[playerid]); AddToLog("cash", gstr); if(PayCash >= 1000000) { format(gstr, sizeof(gstr), "[Admin] %s deu %s $%i.", NameEx(playerid), NameEx(playa), PayCash); AdminBroadcast(gstr, 0); } return true; } CMD:asscheque(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Checks] == 0) return SysMsg(playerid, "Você não tem nenhum talão de cheque para assinar."); new playa = -1, PayCash, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]i", name, PayCash)) return SysMsg(playerid,"Use: /asscheque [ID ou nome do jogador] [Valor]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode dar um Cheque a si mesmo."); if(PayCash < 10 || PayCash > 50000000) return SysMsg(playerid,"O valor deve estar entre $10 e $50,000,000."); if(PayCash > BankBalance[playerid]) return SysMsg(playerid,"Você não tem essa quantia de dinheiro em seu banco."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ)) return SysMsg(playerid,"Você precisa estar proximo ao jogador para fazer isso."); new checkslot = -1; for(new i = 0; i < 3; i++) { if(PlayerChecks[playa][i] == 0) checkslot = i; } if(checkslot == -1) return SysMsg(playerid, "Esse jogador não pode receber mais cheques."); BankBalance[playerid] -= PayCash; Inventory[playerid][Checks] --; PlayerChecks[playa][checkslot] = PayCash; MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "Checks", Inventory[playerid][Checks], "players"); new str[8]; for(new x = 0; x < 3; x++) { format(str, sizeof(str), "Check%i", x + 1); MySQLUpdateInt(SQLID[playa], str, PlayerChecks[playa][x], "players"); } SendClientMessageF(playerid, COLOR_LIGHTGREEN, "Você assinou um cheque de $%s e deu para %s", format_cash(PayCash), NameRP(playa)); SendClientMessageF(playa, COLOR_LIGHTGREEN, "%s te deu um cheque de $%s. Vá para o banco para deposita-lo. (Cheques Slot %i)", NameRP(playerid), format_cash(PayCash), checkslot + 1); format(gstr, sizeof(gstr),"* %s tira uma folha do bloco de talões de cheque, assina um cheque e entrega a %s. *", NameRP(playerid), NameRP(playa)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(!IsPlayerInAnyVehicle(playerid) && !IsPlayerInAnyVehicle(playa)) { SetPlayerToFacePlayer(playerid, playa); OnePlayAnim(playerid, "DEALER", "shop_pay", 3.5, 0, 0, 0, 0, 0); } format(gstr, sizeof(gstr),"[%s] %s(%i) assina um cheque no valor de $%i para %s(%i).", GetServerTimeString(), NameEx(playerid), playerid, PayCash, NameEx(playa), playa); AddToLog("cash", gstr); return true; } CMD:obtertaloes(playerid, params[])//obtertaloes { if(!Logged{playerid}) return true; if(Inventory[playerid][Checks] > 0) return SysMsg(playerid, "Você já tem um talão de Cheques."); if(!IsInBank(playerid)) return SysMsg(playerid,"Você precisa estar em um banco."); if(Cash[playerid] < 25) return SysMsg(playerid, "Você precisa, pelo menos, de $25 para obter um talão de cheques."); Inventory[playerid][Checks] = 50; GivePlayerCash(playerid, -25); MySQLUpdateInt(SQLID[playerid], "Checks", Inventory[playerid][Checks], "players"); SendClientMessage(playerid, COLOR_LIGHTGREEN, "Você agora tem um novo talão de cheques (50 cheques bancários) Isso custa $25."); return true; } CMD:depositarcheque(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsInBank(playerid)) return SysMsg(playerid, "Você não está em um banco."); new checkslot; if(sscanf(params, "i", checkslot)) return SysMsg(playerid,"Use: /depositarcheque [Slot do Cheque] *Olhe o Slot em /cheques*"); if(checkslot < 1 || checkslot > 3) return SysMsg(playerid,"O slot de verificação deve ser 1, 2 or 3."); checkslot --; if(PlayerChecks[playerid][checkslot] == 0) return SysMsg(playerid,"Não há cheque nesse slot para depositar."); BankBalance[playerid] += PlayerChecks[playerid][checkslot]; MySQLUpdateInt(SQLID[playerid], "Bank", BankBalance[playerid], "players"); new str[8]; for(new x = 0; x < 3; x++) { format(str, sizeof(str), "Check%i", x + 1); if(checkslot != x) MySQLUpdateInt(SQLID[playerid], str, PlayerChecks[playerid][x], "players"); else MySQLUpdateInt(SQLID[playerid], str, 0, "players"); } format(gstr, sizeof(gstr), "EXTRATO BANCÁRIO - %s @ %s\nBalance Antigo: $%s\nDeposito de Cheque: $%s\n\nNovo Balance: $%s", NameEx(playerid), GetTimeString(), format_cash(BankBalance[playerid]-PlayerChecks[playerid][checkslot]), format_cash(PlayerChecks[playerid][checkslot]), format_cash(BankBalance[playerid])); ShowMessage(playerid, "Gerênciamento bancário - Declaração de Cheque", gstr, "Ok"); format(gstr, sizeof(gstr), "[%s] %s(%i) deposita um cheque por $%i.", GetServerTimeString(), NameEx(playerid), playerid, PlayerChecks[playerid][checkslot]); AddToLog("cash", gstr); PlayerChecks[playerid][checkslot] = 0; format(gstr,sizeof(gstr),"* %s deposita um cheque. *", NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:cheques(playerid, params[]) { if(!Logged{playerid}) return true; SendClientMessageF(playerid, COLOR_WHITE, "[Inventário] Você atualmente tem %i cheques bancário.", Inventory[playerid][Checks]); new count, value; for(new i = 0; i < 3; i++) { if(PlayerChecks[playerid][i] > 0) { count ++; value += PlayerChecks[playerid][i]; format(gstr, sizeof(gstr), "Slot de Cheque %i: $%s para depositar", i + 1, format_cash(PlayerChecks[playerid][i])); SendClientMessage(playerid, COLOR_WHITE, gstr); } else { format(gstr, sizeof(gstr), "Slot de Cheque %i: Nenhum", i + 1); SendClientMessage(playerid, COLOR_WHITE, gstr); } } SendClientMessageF(playerid, COLOR_WHITE, "Você tem %i cheques pronto para depositar no banco, gerando um valor de $%s.", count, format_cash(value)); return true; } CMD:cumprimentar(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /fcumprimentar [ID ou nome do jogador]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo."); if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) || IsSpectating[playa] != -1) return SysMsg(playerid,"Você precisa estar próximo ao jogador para cumprimenta-lo."); RequestedToShake[playa] = playerid; SetTimerEx("CancelPlayerHandShake", 15000, 0, "ii", playerid, playa); format(gstr, sizeof(gstr),"%s deseja te cumprimentar com um aperto de mão, use '/aceitar cumprimento' para continuar (Isso será tempo limite em 15 segundos)", NameRP(playerid)); SendClientMessage(playa,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Você pediu para cumprimentar %s com um aperto de mão, ele precisa aceitar a ação primeiro (Isso será tempo limite em 15 segundos)", NameRP(playa)); SendClientMessage(playerid,COLOR_WHITE,gstr); return true; } CMD:fcumprimentar(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /fcumprimentar [ID ou nome do jogador]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode usar esse comando em si mesmo."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo."); if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) || IsSpectating[playa] != -1) return SysMsg(playerid,"Você precisa estar próximo ao jogador para cumprimenta-lo."); RequestedToFShake[playa] = playerid; SetTimerEx("CancelPlayerFHandShake", 15000, 0, "ii", playerid, playa); format(gstr, sizeof(gstr),"%s quer que cumprimentar apertando sua mão (formal), use '/aceitar fcumprimento' para continuar (Isso será tempo limite em 15 segundos)", NameRP(playerid)); SendClientMessage(playa,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Você pediu para cumprimentar %s com aperto de mão (formal), ele precisa aceitar primeiro (Isso será tempo limite em 15 segundos)", NameRP(playa)); SendClientMessage(playerid,COLOR_WHITE,gstr); return true; } CMD:beijar(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /beijar [ID ou nome do jogador]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso em si mesmo."); if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso dentro de um veiculo."); if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso se a outra pessoa estiver dentro do veiculo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ) || IsSpectating[playa] != -1) return SysMsg(playerid,"Você deve estar perto do jogador para beijá-los."); RequestedToKiss[playa] = playerid; SetTimerEx("CancelPlayerKiss", 15000, 0, "ii", playerid, playa); SendClientMessageF(playa, COLOR_WHITE, "%s quer beijar você, use '/aceitar beijo' para continuar. (Isso será tempo limite em 15 segundos)", NameRP(playerid)); SendClientMessageF(playerid, COLOR_WHITE, "Você pediu para beijar %s. Essa pessoa deve aceitar primeiro. (Isso será tempo limite em 15 segundos)", NameRP(playa)); return true; } CMD:comprarbilhete(playerid, params[]) { if(!Logged{playerid}) return true; if(IsPlayerInRangeOfPoint(playerid,5.5,-27.167560,-89.524269,1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,-23.428977, -55.200191, 1003.546875) || IsPlayerInRangeOfPoint(playerid,5.5,2.20236, -28.508106, 1003.549438) || IsPlayerInRangeOfPoint(playerid, 5.5, 1248.3158,204.4189,2020.6406) || IsPlayerInRangeOfPoint(playerid, 5.5, 663.9998,-568.8943,16.3363)) { if(IsPlayingLottery{playerid}) return SysMsg(playerid,"Você já comprou um ingresso. Aguarde até o sorteio."); if(Cash[playerid] < 5) return SysMsg(playerid,"Você não tem 5$ para comprar um bilhete de Loteria."); new ticketnumber; if(sscanf(params, "i", ticketnumber)) return SysMsg(playerid,"Use: /comprarbilhete [número]"); if(ticketnumber < 1 || ticketnumber > 99) return SysMsg(playerid,"O número é inválido! (Número dever ser de 1 a 99)"); LotteryNumber[playerid] = ticketnumber; IsPlayingLottery{playerid} = true; GivePlayerCash(playerid,-5); LotteryJackpot += 5; new DrawHour; DrawHour = gServerHour + 1; if(gServerHour == 23) { DrawHour = 0; } format(gstr, sizeof(gstr),"Obrigado por comprar um bilhete de loteria para $5: Seu número é %i, Boa sorte!", ticketnumber); SendClientMessage(playerid,COLOR_MAGENTA,gstr); format(gstr, sizeof(gstr),"Um sorteio é realizado por hora, e o próximo sorteio será em %i:00 ((Hora em GAME)) com jackpot atual de $%s.", DrawHour, format_cash(LotteryJackpot)); SendClientMessage(playerid,COLOR_MAGENTA,gstr); printf("[Loteria] %s compra um bilhete de loteria: %i", NameEx(playerid), ticketnumber); } else SysMsg(playerid, "Você deve estar em uma loja geral para comprar um bilhete de loteria."); return true; } CMD:aposta(playerid, params[]) { if(!Logged{playerid}) return true; if(!IsPlayerInRangeOfPoint(playerid,5.0,-2167.633544,643.458557,1052.375000)) return SysMsg(playerid,"Você não está na loja de apostas."); new HorseID, CashBet; if(sscanf(params, "ii", HorseID, CashBet)) return SysMsg(playerid,"Use: /aposta [ID do cavalo] [Valor da Aposta]"); if(HorseID < 1 || HorseID > 5) return SysMsg(playerid,"Identificação de cavalo inválida. Deve ser entre 1 e 5."); if(CashBet < 50 || CashBet > 5000) return SysMsg(playerid,"Coloque uma aposta pelo menos $50 e não mais do que $5000."); if(Cash[playerid] < CashBet) return SysMsg(playerid,"Você não tem dinheiro suficiente."); if(HasBet[playerid] == 1) return SysMsg(playerid, "Você já colocou uma aposta."); SetPlayerCameraPos(playerid, -2162.9819, 640.2431, 1056.1741); SetPlayerCameraLookAt(playerid, -2172.0449, 644.4693, 1052.9184); SetPlayerPos(playerid, -2168.866699,644.429626,1052.375000); SetPlayerFacingAngle(playerid, 47.650478); TogglePlayerControllable(playerid,false); GivePlayerCash(playerid,-CashBet); HasBet[playerid] = 1; SetTimerEx("OnPlayerBetFinished",10000,0,"ddd",playerid,CashBet,HorseID); SendClientMessage(playerid,COLOR_PINK,"Aguarde até a conclusão da corrida..."); ShowInfoText(playerid, "~w~Corrida em Progresso ~n~~b~Por favor aguarde", 9500); return true; } CMD:comprarroupas(playerid, params[]) { if(!Logged{playerid}) return true; if(IsChangingSkin{playerid}) return SysMsg(playerid,"Você já está comprando roupas."); if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Este negócio não tem estoque restante."); new shop_id = -1; if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.674606, -103.337852, 1005.257812)) shop_id = 1; // BINCO if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.036727, -129.569824, 1003.507812)) shop_id = 2; // PROLAPS if(IsPlayerInRangeOfPoint(playerid, 4.5, 204.281341, -159.792633, 1000.523437)) shop_id = 3; // DEIDER SACHS if(IsPlayerInRangeOfPoint(playerid, 4.5, 203.805587, -44.099208, 1001.804687)) shop_id = 4; // SUB URB if(IsPlayerInRangeOfPoint(playerid, 4.5, 161.584900, -85.259500, 1001.804700)) shop_id = 5; if(shop_id == -1) return SysMsg(playerid,"Você deve estar em uma loja de roupas para mudar sua pele."); ClothesShop[playerid] = shop_id; Dialog_Show(playerid, ClothingBuy, DIALOG_STYLE_LIST, "Loja de Roupas", "Comprar roupas\n", "Selecionar", "Cancelar"); return true; } CMD:compraitens(playerid, params[]) //loja de itens { if(!Logged{playerid}) return true; if(IsChangingSkin{playerid}) return SysMsg(playerid,"Você já está comprando."); if(IsInBizzID[playerid] > 0 && BizzData[IsInBizzID[playerid]][BizzOwnerSQLID] > 0 && BizzData[IsInBizzID[playerid]][BizzStock] <= 0) return SysMsg(playerid,"Este negócio não tem estoque restante."); new shop_id = -1; if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.674606, -103.337852, 1005.257812)) shop_id = 1; // BINCO if(IsPlayerInRangeOfPoint(playerid, 4.5, 207.036727, -129.569824, 1003.507812)) shop_id = 2; // PROLAPS if(IsPlayerInRangeOfPoint(playerid, 4.5, 204.281341, -159.792633, 1000.523437)) shop_id = 3; // DEIDER SACHS if(IsPlayerInRangeOfPoint(playerid, 4.5, 203.805587, -44.099208, 1001.804687)) shop_id = 4; // SUB URB if(IsPlayerInRangeOfPoint(playerid, 4.5, 161.584900, -85.259500, 1001.804700)) shop_id = 5; if(shop_id == -1) return SysMsg(playerid,"Você deve estar em uma loja de roupas para mudar sua pele."); ClothesShop[playerid] = shop_id; Dialog_Show(playerid, ClothingBuy, DIALOG_STYLE_LIST, "Loja de acessórios", "\nItens", "Selecionar", "Cancelar"); return true; } CMD:mudarroupas(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para mudar sua Skin."); if(IsJailed[playerid] == 1) return SysMsg(playerid,"Aguarde até sair da prisão."); if(PlayerImprisoned{playerid}) return SysMsg(playerid,"Você não pode fazer isso na prisão."); if(IsCuffed[playerid] == 1) return SysMsg(playerid,"Esta ação não pode ser realizada se você estiver algemado."); if(JobDuty[playerid] == 1) return SysMsg(playerid, "Você não pode troca de roupas estando aDuty."); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SysMsg(playerid, "Você precisa esta a pé para mudar de roupas."); if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_ENTER_VEHICLE || GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_EXIT_VEHICLE) return SysMsg(playerid, "Você não pode usar esse comando se estiver entrando/saindo de um veiculo."); if(SwatMode[playerid] == 1) return SysMsg(playerid, "Você não pode usar isso enquanto estiver em S.W.A.T duty."); if((Duty[playerid] == 1 && IsCop(playerid)) || Duty[playerid] == 0) { new Slot; if(sscanf(params, "i", Slot)) return SysMsg(playerid,"Use: /mudarroupas [slot] - Olhe em /Roupas os slots."); if(Slot < 1 || Slot > 5) return SysMsg(playerid,"O número do slot deve ser de 1 a 5."); Slot --; if(Clothes[playerid][Slot] == 0) return SysMsg(playerid,"Você não tem roupas nasse slot."); if(Clothes[playerid][Slot] == cPlayersSkin[playerid]) return SysMsg(playerid,"Você já está usando as roupas naquele slot."); SetPlayerSkinEx(playerid, Clothes[playerid][Slot]); cPlayersSkin[playerid] = Clothes[playerid][Slot]; MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players"); Slot ++; format(gstr, sizeof(gstr),"* %s muda suas roupas. *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr), "Você mudou para seu slot de roupas %i.", Slot); SendClientMessage(playerid,COLOR_WHITE,gstr); } else return SysMsg(playerid,"Você não pode mudar de roupas se estiver OnDuty."); return true; } CMD:roupas(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para mudar a sua skin."); new tempstr[50]; format(gstr, sizeof(gstr), "Inventário de roupas: "); for(new i = 0; i < 4; i++) { if(Clothes[playerid][i] > 0) { format(tempstr, 50, "[Slot %i: %i] ", i+1, Clothes[playerid][i]); strcat(gstr, tempstr); } else { format(tempstr, 50, "[Slot %i: Vazio] ", i+1); strcat(gstr, tempstr); } } if(Clothes[playerid][4] > 0) { format(tempstr, 50, "[Facção: %i] ", Clothes[playerid][4]); strcat(gstr, tempstr); } else strcat(gstr, "[Facção: Vazio] "); SendClientMessage(playerid, COLOR_WHITE, gstr); return true; } CMD:aceitar(playerid, params[]) // comando de aceitar { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); new option[32], value[32]; if(sscanf(params, "s[32]S()[32]", option, value)) return true; if(strmatch(option, "faction") || strmatch(option, "faccao") || strmatch(option, "facçao") || strmatch(option, "facção") || strmatch(option, "faccão")) { if(InvitedToJoinFaction[playerid] == 0) return SysMsg(playerid,"Você não foi convidado para uma facção."); if(InvitedToJoinFaction[playerid] > 0) { Faction[playerid] = InvitedToJoinFaction[playerid]; FactionRank[playerid] = 1; MySpawnID[playerid] = 2; SubFactionSpawn[playerid] = 1; SendClientMessageF(playerid,COLOR_ORANGE,"Você entrou na facção %i (%s) como rank %i (%s)",Faction[playerid],GetFactionName(playerid),FactionRank[playerid],GetFactionRankName(Faction[playerid], FactionRank[playerid])); if(InvitedToJoinFaction[playerid] == 7) UnlockAchievement(playerid, 66); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET Faction = %i, FactionRank = 1, MySpawnID = 2, SubFactionSpawn = 1 WHERE id = %i", InvitedToJoinFaction[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); foreach(new players: Player) { if(players == playerid) continue; if(Faction[players] == Faction[playerid] && FactionRank[players] >= 4) SendClientMessageF(players,COLOR_ORANGE,"%s agora esta na sua facção (%s) como rank %s.",NameEx(playerid),GetFactionName(playerid),GetFactionRankName(Faction[playerid], FactionRank[playerid])); } //GivePlayerWeapons(playerid); InvitedToJoinFaction[playerid] = 0; //new oldSub[2], newSub[2], oldRank, newRank; //FactionLog(InvitedToJoinFactionBy[playerid], SQLID[playerid], 4, oldSub, newSub, oldRank, newRank, InvitedToJoinFaction[playerid]); InvitedToJoinFaction[playerid] = 0; InvitedToJoinFactionBy[playerid] = 0; UnlockAchievement(playerid, 5); return true; } } else if(strmatch(option, "multa")) { if(PoliceFineAmount[playerid] == -1) return SysMsg(playerid, "Nenhuma multa para aceitar."); if(sscanf(params, "s[32]s[32]", option, value)) return SysMsgF(playerid, "Use: /aceitar multa [Valor a pagar] *Não pode exceder sua multa policial pendente de $%s*", format_cash(PoliceFineAmount[playerid])); if(!IsNumeric(value)) return SysMsg(playerid, "A valor deve ser inserido em números."); new amount = strval(value); if(amount > PoliceFineAmount[playerid]) return SysMsg(playerid, "Você não deve isso em multas."); if(amount <= 0) return SysMsg(playerid, "Você deve inserir um valor acima de 0."); if(PoliceFineAmount[playerid] - amount < 0) return SysMsg(playerid, "Você não deve tanto em multas."); if(Cash[playerid] < amount) return SysMsg(playerid, "Você não tem tanto dinheiro."); new minfine = floatround(0.1 * PoliceFineAmount[playerid]); if(amount < minfine) return SysMsgF(playerid, "Você deve pagar pelo menos 10 porcento ($%s) de sua multa em um determinado momento.", format_cash(minfine)); GivePlayerCash(playerid, -amount); FACTIONS[FACTION_COP][FactionBankBalance] += floatround(0.7 * amount); MySQLUpdateInt(FACTION_COP, "BankBalance", FACTIONS[FACTION_COP][FactionBankBalance], "factions"); format(gstr, sizeof(gstr), "%s pagou $%s fora de sua $%s multa. O dinheiro foi adicionado ao banco da facção.", NameEx(playerid), format_cash(amount), format_cash(PoliceFineAmount[playerid])); PoliceMessage(gstr); SendClientMessageF(playerid, COLOR_ORANGE, "Você pagou uma multa de trânsito no valor de $%s.", format_cash(amount), format_cash(PoliceFineAmount[playerid]));//Você pagou $%s fora de sua $%s multa PoliceFineAmount[playerid] -= amount; if(PoliceFineAmount[playerid] == 0) PoliceFineAmount[playerid] = -1; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET PoliceFine = %i WHERE id = %i", PoliceFineAmount[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); return true; } else if(strmatch(option, "quitfaction") || strmatch(option, "sairfaccao") || strmatch(option, "sairfacçao") || strmatch(option, "sairfacção") || strmatch(option, "sairfaccão")) { if(QuitFromFaction[playerid] == 0) return SysMsg(playerid, "Você não está em nenhuma facção."); SendClientMessageF(playerid, COLOR_WHITE, "Você saiu da facção %s. Você não está mais nesta facção.", GetFactionName(playerid)); if(MySpawnID[playerid] == 2) { MySpawnID[playerid] = 1; SubFactionSpawn[playerid] = 0; } if(Clothes[playerid][0] == 0) { cPlayersSkin[playerid] = 1; SetPlayerSkinEx(playerid, 1); } if(Clothes[playerid][0] != 0) { cPlayersSkin[playerid] = Clothes[playerid][0]; SetPlayerSkinEx(playerid, Clothes[playerid][0]); } MySQLUpdateInt(SQLID[playerid], "Skin", cPlayersSkin[playerid], "players"); if(RadioFrequency[playerid] == FACTIONS[Faction[playerid]][FactionRadioChannel]) RadioFrequency[playerid] = 1000; for(new r = 0; r < 3; r++) { if(RadioSlot[playerid][r] == FACTIONS[Faction[playerid]][FactionRadioChannel]) { RadioSlot[playerid][r] = 1000; } } Faction[playerid] = 0; FactionRank[playerid] = 0; QuitFromFaction[playerid] = 0; FactionCustomRank[playerid][0] = EOS; IsESU{playerid} = false; if(RestrictedVest{playerid}) SetPlayerArmourEx(playerid, 0.0, 1); ResetPlayerWeapons(playerid); for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--) { if(WeaponData[playerid][slot][WeaponOrigin] == 3) { ResetWeaponVariables(playerid, 0, slot); } } for(new slot = MAX_TOTAL_WEAPONS - 1; slot != -1; slot--) { GivePlayerWeapon(playerid, WeaponData[playerid][slot][Weapon], WeaponData[playerid][slot][WeaponAmmo]); } for(new p; p < MAX_TOYS; p++) { if(ToyInfo[playerid][p][FactionMask] == 1) { ClearToyData(playerid, p); } } FirePlayer(SQLID[playerid], 1); //FirePlayer is used here because the queries with /despedir and /accept quitfaction are basically the same. return true; } else if(strmatch(option, "resgate")) { if(WantsRescue[playerid] == 0 || WantsRescue[playerid] == 1) return true; new playa = WantsRescue[playerid] - 500; if(IsPlayerConnected(playa)) { SendClientMessageF(playa, COLOR_WHITE, "%s aceitou sua ajuda.", NameEx(playerid)); SendClientMessageF(playerid, COLOR_WHITE, "Você aceitou a ajuda do bombeiro %s.", NameEx(playa)); } WantsRescue[playerid] = 1; } else if(strmatch(option, "casa")) //aceitar casa //aceitar casa { foreach(new i: Player) { if(IsPlayerNPC(i)) continue; if(SellingAsset[i][1] == playerid) { if(SellingAsset[i][2] != 1) return SysMsg(playerid,"Você não tem casa para aceitar."); if(HasHouseKey[i][0] != SellingAsset[i][3] && HasHouseKey[i][1] != SellingAsset[i][3]) { SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SellingAsset[i][5] = -1; //house slot SysMsg(playerid,"A casa já não está disponível."); return true; } if(Cash[playerid] < SellingAsset[i][4]) { SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SellingAsset[i][5] = -1; //house slot SysMsg(playerid,"Você não tem dinheiro suficiente para comprar a casa."); return true; } HasHouseKey[i][SellingAsset[i][5]] = -1; HouseData[SellingAsset[i][3]][HouseOwnerSQLID] = SQLID[playerid]; MySpawnID[playerid] = 3; ProcessHouseKey(playerid); ProcessHouseKey(SellingAsset[i][5]); if(HasHouseKey[playerid][0] == SellingAsset[i][3]) SpawnAtHouse[playerid] = 0; else if(HasHouseKey[playerid][1] == SellingAsset[i][3]) SpawnAtHouse[playerid] = 1; MySQLUpdateInt(HouseData[SellingAsset[i][3]][HouseSQLID], "OwnerSQLID", SQLID[playerid], "houses"); MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "SpawnAtHouse", SpawnAtHouse[playerid], "players"); GivePlayerCash(playerid, -SellingAsset[i][4]); GivePlayerCash(i, SellingAsset[i][4]); UnlockAchievement(playerid, 9); ShowInfoText(playerid, "~w~PROPRIEDADE ADQUIRIDA", 5000); SendClientMessageF(i, COLOR_WHITE, "%s comprou sua casa(%s) por $%s. Você não é mais o proprietário.", NameEx(playerid), HouseData[SellingAsset[i][3]][HouseDescription], format_cash(SellingAsset[i][4])); SendClientMessageF(playerid, COLOR_WHITE, "Você comprou a casa de %s (%s) por $%s. Você é agora o novo dono desta propriedade.", NameEx(i), HouseData[SellingAsset[i][3]][HouseDescription], format_cash(SellingAsset[i][4])); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = 0 WHERE GuestHouseID = %i", HouseData[SellingAsset[i][3]][HouseSQLID]); mysql_pquery(conn, mquery); foreach(new x: Player) if(HouseData[SellingAsset[i][3]][HouseSQLID] == GuestHouseID[x]) GuestHouseID[x] = 0; SendClientMessage(i, COLOR_WHITE, "Os convidados da sua casa (caso existam) foram expulsos automaticamente depois de vender a casa."); if(MySpawnID[i] == 3) { MySpawnID[i] = 1; MySQLUpdateInt(SQLID[i], "MySpawnID", MySpawnID[i], "players"); } SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SellingAsset[i][5] = -1; //house slot break; } } } else if(strmatch(option, "negocio")) { foreach(new i: Player) { if(IsPlayerNPC(i)) continue; if(SellingAsset[i][1] == playerid) { if(SellingAsset[i][2] != 2) return SysMsg(playerid,"Você não tem bizz para aceitar."); new hasBizz = 0; for(new bz = 0; bz < MAX_BIZZ_PER_PLAYER; bz++) { if(PlayerBizzID[i][bz] == SellingAsset[i][3]) hasBizz = 1; } if(hasBizz == 0) { SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SysMsg(playerid,"O bizz não está mais disponível."); return true; } if(Cash[playerid] < SellingAsset[i][4]) { SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SysMsg(playerid,"Você não tem dinheiro suficiente para comprar o bizz."); return true; } BizzData[SellingAsset[i][3]][BizzOwnerSQLID] = SQLID[playerid]; MySQLUpdateInt(BizzData[SellingAsset[i][3]][BizzSQLID], "OwnerSQLID", SQLID[playerid], "bizz"); mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM bizzmods WHERE BizzID = %i", BizzData[SellingAsset[i][3]][BizzSQLID]); mysql_pquery(conn, mquery); GivePlayerCash(playerid, -SellingAsset[i][4]); GivePlayerCash(i, SellingAsset[i][4]); new done[2] = {0}; for(new id = 0; id < MAX_BIZZ_PER_PLAYER; id++) { if(done[0] == 0 && PlayerBizzID[i][id] == SellingAsset[i][3]) { PlayerBizzID[i][id] = -1; done[0] = 1; } if(done[1] == 0 && PlayerBizzID[playerid][id] <= 0) { PlayerBizzID[playerid][id] = SellingAsset[i][3]; done[1] = 1; } } new h = SellingAsset[i][3]; UpdateBizzLabel(h); ShowInfoText(playerid, "~w~NEGÓCIO ADQUIRIDO", 5000); SendClientMessageF(i, COLOR_WHITE, "%s comprou seu negócio (%s) por $%s. Você não é mais o proprietário.", NameEx(playerid), BizzData[SellingAsset[i][3]][BizzDescription], format_cash(SellingAsset[i][4])); SendClientMessageF(playerid, COLOR_WHITE, "Você comprou o negócio de %s (%s) por $%s. Agora você é o novo dono.", NameEx(i), BizzData[SellingAsset[i][3]][BizzDescription], format_cash(SellingAsset[i][4])); SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price break; } } } else if(strmatch(option, "veiculo")) { foreach(new i: Player) { if(IsPlayerNPC(i)) continue; if(SellingAsset[i][1] == playerid) { if(SellingAsset[i][2] != 3) return SysMsg(playerid,"Você não tem nenhum veículo para aceitar."); new hasBizz = 0; for(new bz = 1, x = GetVehiclePoolSize(); bz <= x; bz++) { if(VehicleData[bz][VehicleOwnerSQLID] == SQLID[i]) if(bz == SellingAsset[i][3]) hasBizz = 1; } if(hasBizz == 0) { SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SysMsg(playerid,"O veículo não está mais disponível."); return true; } if(Cash[playerid] < SellingAsset[i][4]) { SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price SysMsg(playerid,"Você não tem dinheiro suficiente para comprar o veículo."); return true; } new v = SellingAsset[i][3]; VehicleData[v][VehicleOwnerSQLID] = SQLID[playerid]; mysql_format(conn, mquery, sizeof(mquery), "UPDATE vehicles SET OwnerSQLID = %i, HotwireExpiration = 0 WHERE id = %i", SQLID[playerid], VehicleData[v][VehSQLID]); mysql_pquery(conn, mquery); GivePlayerCash(playerid, -SellingAsset[i][4]); GivePlayerCash(i, SellingAsset[i][4]); if(VehicleData[v][VehicleModel] == 508 && MySpawnID[i] == 6) { MySpawnID[i] = 1; MySQLUpdateInt(SQLID[i], "MySpawnID", MySpawnID[i], "players"); } ShowInfoText(playerid, "~w~VEICULO ADQUIRIDO", 5000); SendClientMessageF(i, COLOR_WHITE, "%s comprou seu veículo(%s) por $%s. Você não é mais o proprietário.", NameEx(playerid), GetVehicleNameEx(VehicleData[v][VehicleModel]), format_cash(SellingAsset[i][4])); SendClientMessageF(playerid, COLOR_WHITE, "Você comprou o veiculo de %s (%s) por $%s. Agora você é o novo dono.", NameEx(i), GetVehicleNameEx(VehicleData[v][VehicleModel]), format_cash(SellingAsset[i][4])); if(VehicleData[v][ForSale]) { VehicleData[v][ForSale] = false; VehicleData[v][ForSalePrice] = 0; DestroyDynamic3DTextLabel(VehicleData[v][ForSaleLabel]); VehicleData[v][ForSaleLabel] = Text3D:INVALID_3DTEXT_ID; MySQLUpdateInt(VehicleData[v][VehSQLID], "ForSale", 0, "vehicles"); MySQLUpdateInt(VehicleData[v][VehSQLID], "ForSalePrice", 0, "vehicles"); } SellingAsset[i][0] = 0; //yes/no SellingAsset[i][1] = -1; //playerid SellingAsset[i][2] = 0; //type SellingAsset[i][3] = -1; //id SellingAsset[i][4] = 0; //price break; } } } else if(strmatch(option, "spray")) { if(AwaitingSpray[playerid] == 0) return SysMsg(playerid, "Não há nenhuma oferta no momento."); for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { if(MechanicSpray[v][1] == playerid) { if(Cash[playerid] < MechanicSpray[v][4]) { SysMsg(playerid, "Você não tem dinheiro suficiente para pintar o veiculo, o serviço foi cancelado."); GoingToSprayVehicleID[MechanicSpray[v][0]] = 0; AwaitingSpray[playerid] = 0; MechanicSpray[v][0] = -1; MechanicSpray[v][1] = -1; MechanicSpray[v][2] = -1; MechanicSpray[v][3] = -1; MechanicSpray[v][4] = -1; MechanicSpray[v][5] = -1; break; } GivePlayerCash(playerid, -MechanicSpray[v][4]); GivePlayerCash(MechanicSpray[v][0], MechanicSpray[v][4]); ChangeVehicleColorEx(v, MechanicSpray[v][2], MechanicSpray[v][3]); UnlockAchievement(MechanicSpray[v][0], 47); for(new vi = 1, h = GetVehiclePoolSize(); vi <= h; vi++) { if(vi == v) { MySQLUpdateInt(VehicleData[vi][VehSQLID], "Color2", MechanicSpray[v][3], "vehicles"); MySQLUpdateInt(VehicleData[vi][VehSQLID], "Color1", MechanicSpray[v][2], "vehicles"); VehicleData[vi][vColor1] = MechanicSpray[v][2]; VehicleData[vi][vColor2] = MechanicSpray[v][3]; } } SendClientMessageF(playerid, COLOR_WHITE, "Pintura aceita - O veiculo foi repintado pelo mecanico %s por $%i.", NameEx(MechanicSpray[v][0]), MechanicSpray[v][4]); SendClientMessageF(MechanicSpray[v][0], COLOR_WHITE, "Pinta aceita - Você repintou o veiculo por $%i.", MechanicSpray[v][4]); format(gstr, sizeof(gstr),"* O mecanico %s repintou o veiculo %s %s e%s. *", NameEx(MechanicSpray[v][0]), GetVehicleName(v), VehicleColors[MechanicSpray[v][2]], VehicleColors[MechanicSpray[v][3]]); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); GoingToSprayVehicleID[MechanicSpray[v][0]] = 0; AwaitingSpray[playerid] = 0; MechanicSpray[v][0] = -1; MechanicSpray[v][1] = -1; MechanicSpray[v][2] = -1; MechanicSpray[v][3] = -1; MechanicSpray[v][4] = -1; MechanicSpray[v][5] = -1; break; } } } else if(strmatch(option, "cumprimento")) { if(RequestedToShake[playerid] == -1) return SysMsg(playerid, "Nenhum cumprimento para aceitar no momento."); if(!IsPlayerConnected(RequestedToShake[playerid])) { SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-001)"); RequestedToShake[playerid] = -1; return true; } if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo."); if(GetPlayerVehicleID(RequestedToShake[playerid]) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo."); new Float:tX, Float:tY, Float:tZ; GetPlayerPos(RequestedToShake[playerid], tX, tY, tZ); if(!IsPlayerInRangeOfPoint(playerid, 2.0, tX, tY, tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para apertar as mãos."); SetPlayerToFacePlayer(playerid, RequestedToShake[playerid]); SetPlayerToFacePlayer(RequestedToShake[playerid], playerid); OnePlayAnim(playerid, "GANGS", "hndshkfa_swt", 3.5, 0, 0, 0, 0, 0); OnePlayAnim(RequestedToShake[playerid], "GANGS", "hndshkfa_swt", 3.5, 0, 0, 0, 0, 0); format(gstr, sizeof(gstr),"Cumprimento a %s foi aceito.", NameRP(playerid)); SendClientMessage(RequestedToShake[playerid],COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Cumprimento a %s foi aceito.", NameRP(RequestedToShake[playerid])); SendClientMessage(playerid,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"* %s cumprimenta %s. *",NameRP(playerid),NameRP(RequestedToShake[playerid])); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(Faction[playerid] == Faction[RequestedToShake[playerid]]) UnlockAchievement(RequestedToShake[playerid], 36); if(SQLID[RequestedToShake[playerid]] == 1) UnlockAchievement(playerid, 44); if(SQLID[playerid] == 1) UnlockAchievement(RequestedToShake[playerid], 44); RequestedToShake[playerid] = -1; } else if(strmatch(option, "fcumprimento"))//fshark { if(RequestedToFShake[playerid] == -1) return SysMsg(playerid, "Não há nenhum cumprimento para aceitar."); if(!IsPlayerConnected(RequestedToFShake[playerid])) { SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-002)"); RequestedToShake[playerid] = -1; return true; } if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo."); if(GetPlayerVehicleID(RequestedToFShake[playerid]) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo."); new Float:tX, Float:tY, Float:tZ; GetPlayerPos(RequestedToFShake[playerid], tX, tY, tZ); if(!IsPlayerInRangeOfPoint(playerid, 2.0, tX, tY, tZ)) return SysMsg(playerid,"Você precisa esta perto do jogador para cumprimenta-lo."); SetPlayerToFacePlayer(playerid, RequestedToFShake[playerid]); SetPlayerToFacePlayer(RequestedToFShake[playerid], playerid); OnePlayAnim(playerid, "GANGS", "prtial_hndshk_biz_01", 3.5, 0, 0, 0, 0, 0); OnePlayAnim(RequestedToFShake[playerid], "GANGS", "prtial_hndshk_biz_01", 3.5, 0, 0, 0, 0, 0); format(gstr, sizeof(gstr),"Cumprimento formal com %s foi aceito.", NameRP(playerid)); SendClientMessage(RequestedToFShake[playerid],COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Cumprimento formal com %s foi aceito.", NameRP(RequestedToFShake[playerid])); SendClientMessage(playerid,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"* %s comprimenta %s. *",NameRP(playerid),NameRP(RequestedToFShake[playerid])); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); if(Faction[playerid] == Faction[RequestedToFShake[playerid]]) UnlockAchievement(RequestedToFShake[playerid], 36); if(strcmp("Alec_Rae", GetName(RequestedToFShake[playerid]), false) == 0) UnlockAchievement(playerid, 44); if(strcmp("Alec_Rae", GetName(playerid), false) == 0) UnlockAchievement(RequestedToFShake[playerid], 44); RequestedToFShake[playerid] = -1; } else if(strmatch(option, "beijo")) { if(RequestedToKiss[playerid] == -1) return SysMsg(playerid, "Ninguem te pediu um beijo."); if(!IsPlayerConnected(RequestedToKiss[playerid])) { SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-003)"); RequestedToKiss[playerid] = -1; return true; } if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veiculo."); if(GetPlayerVehicleID(RequestedToKiss[playerid]) > 0) return SysMsg(playerid,"Você não pode fazer isso com alguém que esteja dentro de um veiculo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(RequestedToKiss[playerid],tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.0,tX,tY,tZ)) return SysMsg(playerid,"Você precisa está próximo do jogador para beija-lo."); SetPlayerToFacePlayer(playerid, RequestedToKiss[playerid]); SetPlayerToFacePlayer(RequestedToKiss[playerid], playerid); OnePlayAnim(playerid, "KISSING", "Playa_Kiss_02", 3.5, 0, 0, 0, 0, 0); OnePlayAnim(RequestedToKiss[playerid], "KISSING", "Grlfrd_Kiss_02", 3.5, 0, 0, 0, 0, 0); format(gstr, sizeof(gstr),"O pedido de beijar %s foi aceita.", NameRP(playerid)); SendClientMessage(RequestedToKiss[playerid],COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"O pedido de beijar %s foi aceita.", NameRP(RequestedToKiss[playerid])); SendClientMessage(playerid,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"* %s beija %s. *",NameRP(playerid),NameRP(RequestedToKiss[playerid])); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); RequestedToKiss[playerid] = -1; } else if(strmatch(option, "vchavecompartilha"))//sharedkey //vchavecompartilha { if(VehicleShareOffer[playerid][0] == -1) return SysMsg(playerid, "Nenhum pedido de compartilhamento de veiculos para aceitar."); format(gstr, sizeof(gstr),"Veiculo compartilhado com %s foi aceito.", NameRP(playerid)); SendClientMessage(VehicleShareOffer[playerid][0],COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"Veiculo compartilhado com %s foi aceito. Agora você pode usar seu veículo por %i minutos.", NameRP(VehicleShareOffer[playerid][0]), VehicleShareOffer[playerid][2]); SendClientMessage(playerid,COLOR_WHITE,gstr); SendClientMessage(playerid, COLOR_WHITE, "Você pode remover essa chave compartilhada a qualquer momento usando /removerchaves."); VehicleBorrowKey[playerid] = VehicleData[VehicleShareOffer[playerid][1]][VehSQLID]; VehicleBorrowKeyTime[playerid] = VehicleShareOffer[playerid][2]; MySQLUpdateInt(SQLID[playerid], "BorrowKey", VehicleBorrowKey[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "BorrowKeyTime", VehicleBorrowKeyTime[playerid], "players"); VehicleShareOffer[playerid][0] = -1; VehicleShareOffer[playerid][1] = 0; VehicleShareOffer[playerid][2] = 0; } else if(strmatch(option, "revista")) { if(RequestedToFrisk[playerid] == -1) return SysMsg(playerid, "Não há nenhuma pedido de revista para aceitar."); if(!IsPlayerConnected(RequestedToFrisk[playerid])) { SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-004)"); RequestedToFrisk[playerid] = -1; return true; } new playa = -1; foreach(new i: Player) { if(RequestedToFrisk[playerid] == i) { playa = i; break; } } if(GetPlayerVehicleID(playerid) > 0) return SysMsg(playerid,"Você não pode fazer isso em um veículo."); if(GetPlayerVehicleID(playa) > 0) return SysMsg(playerid,"Você não pode fazer isso com a pessoa em um veiculo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playerid,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para revistar-los."); format(gstr, sizeof(gstr),"* %s começa a revistar %s. *", NameRP(playa), NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s revistou você.", NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); new wCount = 0; format(gstr, sizeof(gstr), "[Armas] "); for(new i = 0; i < MAX_TOTAL_WEAPONS; i++) { if(WeaponData[playerid][i][Weapon] > 0) { if(wCount != 0) strcat(gstr, ", "); strcat(gstr, GetWeaponNameFromID(WeaponData[playerid][i][Weapon])); wCount ++; } } if(wCount == 0) strcat(gstr, "None."); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "[Diversos] Dinheiro: $%s", format_cash(Cash[playerid])); if(Inventory[playerid][Briefcase] == 1) strcat(gstr, ", Briefcase"); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "[Drogas] Marijuana: %ig, Cocaina: %ig, Moonshine: %iL", Inventory[playerid][Weed], Inventory[playerid][Cocaine], Inventory[playerid][MoonShine]); SendClientMessage(playa, COLOR_WHITE, gstr); RequestedToFrisk[playerid] = -1; } else if(strmatch(option, "mudança") || strmatch(option, "mudanca")) { if(OfferedMoveinFrom[playerid][0] == -1) return SysMsg(playerid, "Sem 'mudança' para aceitar agora."); new playa = OfferedMoveinFrom[playerid][0], hid = OfferedMoveinFrom[playerid][1]; OfferedMoveinFrom[playerid][0] = -1; OfferedMoveinFrom[playerid][1] = -1; if(!IsPlayerConnected(playa)) return SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-005)"); new ghouse = HasHouseKey[playa][hid]; if(ghouse <= 0) return SysMsg(playerid, "Oops! Ocorreu um erro de sistema, por favor relate a um admin. (ERROR: 1-005-1)"); MySpawnID[playerid] = 5; GuestHouseID[playerid] = HouseData[ghouse][HouseSQLID]; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET GuestHouseID = %i, MySpawnID = %i WHERE id = %i", HouseData[ghouse][HouseSQLID], MySpawnID[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); SendClientMessageF(playa, COLOR_WHITE, "%s acaba de se mudar para sua casa.", NameEx(playerid)); SendClientMessageF(playerid,COLOR_GOLD, "Você se mudou para casa de %s. Seu ponto de spawn foi automaticamente definido para esta casa.", HouseData[ghouse][HouseDescription], NameEx(playa)); } else if(strmatch(option, "taxi")) { new vehid = GetPlayerVehicleID(playerid); foreach(new i: Player) { if(vehid == GetPlayerVehicleID(i) && TaxiForceFare[i] == playerid) { TaxiForceFare[i] = -1; TaxiFareID[i] = playerid; TaxiMeter[i] = 0; TaxiFare[playerid] = 1; format(gstr, sizeof(gstr),"Você aceitou a viagem de %s. Onde gostaria de ir?", NameEx(i)); SendClientMessage(playerid,COLOR_WHITE,gstr); format(gstr, sizeof(gstr),"%s confirmou a tarifa de táxi. Ele(a) agora é(são) cliente, você pode iniciar o taxímetro se necessário.", NameEx(playerid)); SendClientMessage(i,COLOR_WHITE,gstr); return true; } } SysMsg(playerid, "Nenhum táxi para aceitar agora."); } else if(strmatch(option, "olhosvendados")) //olhosvendados { if(RequestedToBlindfold[playerid] == -1) return SysMsg(playerid, "Você não possui solicitações pendentes para venda de olhos."); if(!IsPlayerConnected(RequestedToBlindfold[playerid])) { SysMsg(playerid, "Oops! Ocorreu um erro no sistema, informe para um administrador. (ERROR: 1-004)"); RequestedToBlindfold[playerid] = -1; return true; } new playa = -1; foreach(new i: Player) { if(RequestedToBlindfold[playerid] == i) { playa = i; break; } } new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playerid,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playa,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para aceitar uma venda de olhos dele."); PlayerTextDrawShow(playerid, BlindfoldEffect[playerid]); GangZoneShowForPlayer(playerid, BlindZone, COLOR_BLACK); format(gstr, sizeof(gstr),"* %s pega uma faixa de pano, enrola em torno da cabeça de %s vendando seus olhos. *", NameRP(playa), NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s vendou seus olhos.", NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); RequestedToBlindfold[playerid] = -1; Blindfolded[playerid] = 1; Inventory[playa][Blindfold] = 0; MySQLUpdateInt(SQLID[playerid], "HasBlindfold", Inventory[playa][Blindfold], "players"); } else if(strmatch(option, "cura")) { if(BeingHealed[playerid] == 0) return SysMsg(playerid, "Você não tem nenhum pedido de cura."); new playa = HealedBy[playerid]; Injuries[playerid][HealID[playerid]][pWeaponID] = 0; Injuries[playerid][HealID[playerid]][pBodypart] = 0; DeathTimer[playerid] += 30; format(gstr, sizeof(gstr),"* %s cura uma ferida em %s. *", NameRP(playa), NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"%s curou uma de suas feridas.", NameRP(playa)); SendClientMessage(playerid, COLOR_ORANGE, gstr); Healing[playa] = -1; BeingHealed[playerid] = 0; HealID[playerid] = -1; HealedBy[playerid] = -1; HitCount[playerid] --; return true; } else if(strmatch(option, "morte")) { if(!Dead{playerid}) return SysMsg(playerid, "Você não está em uma condição crítica para aceitar morte."); if(DeathTimer[playerid] != 0) return SysMsg(playerid, "Você não pode aceitar a morte ainda."); if(IsPlayerInAnyVehicle(playerid)) { RemovePlayerFromVehicle(playerid); SetPlayerPos(playerid, PlayerPosX(playerid), PlayerPosY(playerid), PlayerPosZ(playerid) + 2); } HasJustDied[playerid] = 2; Dead{playerid} = false; DeathTimer[playerid] = 0; CreateCorpse(playerid); SendPlayerToHospital(playerid); ClearInjuriesForPlayer(playerid); format(sgstr, sizeof(sgstr), "[Admin] %s aceitou a sua morte. ((/aceitar morte))", NameEx(playerid)); AdminBroadcast(sgstr, 1); format(sgstr, sizeof(sgstr), "[Death - System] %s aceitou morte. ((/aceitar morte))", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_FADE3, COLOR_FADE3, COLOR_FADE3, COLOR_FADE3, COLOR_FADE3); return true; } return true; } CMD:jn(playerid, params[]) { if(!Logged{playerid}) return true; new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == 0) return SysMsg(playerid, "Você deve estar em um veículo para controlar as janelas."); if(!VehicleHasWindows(vehicleid)) return SysMsg(playerid,"Este veículo não tem janelas para controlar."); if(Locked{vehicleid} && IsOwnedCar(vehicleid) && SQLID[playerid] != VehicleData[vehicleid][VehicleOwnerSQLID]) return SysMsg(playerid, "Você deve abrir o veiculo."); new status[12]; if(sscanf(params, "s[12]", status)) return SysMsg(playerid, "Use: /jn (/janelas) [abaixar/abrir Ou Levantar/Fechar]"); if(strcmp("abaixar", status, true) == 0 || strcmp("abrir", status, true) == 0) { if(WindowState{vehicleid} == WINDOWS_OPEN) return SysMsg(playerid, "As janelas já estão abertas."); WindowState{vehicleid} = WINDOWS_OPEN; SetVehicleParamsCarWindows(vehicleid, 0, 0, 0, 0); format(gstr, sizeof(gstr),"* %s abaixa as janelas do %s. *",NameRP(playerid),GetVehicleName(vehicleid)); ProxDetector(20.0, playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } if(strcmp("levantar", status, true) == 0 || strcmp("fechar", status, true) == 0) { if(WindowState{vehicleid} == WINDOWS_CLOSED) return SysMsg(playerid, "As janelas do veiculo já estão fechadas."); WindowState{vehicleid} = WINDOWS_CLOSED; SetVehicleParamsCarWindows(vehicleid, 1, 1, 1, 1); format(gstr, sizeof(gstr),"* %s fecha todas as janelas do %s. *",NameRP(playerid),GetVehicleName(vehicleid)); ProxDetector(20.0, playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else SysMsg(playerid, "Use: /jn (/janelas) [abaixar/abrir Ou Levantar/Fechar]"); return true; } CMD:janelas(playerid, params[]) return cmd_jn(playerid, params); CMD:tow(playerid, params[]) { if(!Logged{playerid}) return true; new vehicleid = GetPlayerVehicleID(playerid); if(!IsTowingVehicle(vehicleid)) return SysMsg(playerid,"You must be in a vehicle that can tow."); if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"You must be the driver."); if(IsTrailerAttachedToVehicle(vehicleid)) return SysMsg(playerid,"You are already towing a vehicle use /detach primeiro."); new Float:pX,Float:pY,Float:pZ; new Float:vX,Float:vY,Float:vZ; GetPlayerPos(playerid,pX,pY,pZ); new Found = 0; new vid = 1; new x = GetVehiclePoolSize(); while(vid <= x && Found == 0) { vid++; GetVehiclePos(vid,vX,vY,vZ); if(floatabs(pX-vX) < 7.0 && floatabs(pY-vY) < 7.0 && floatabs(pZ-vZ) < 7.0 && vid != vehicleid) { Found = 1; AttachTrailerToVehicle(vid, vehicleid); } } if(!Found) SendClientMessage(playerid,COLOR_SKYBLUE,"Você não está perto de nenhum veículo. Assegure-se de que está perto da parte traseira de um veículo, se quiser rebocá-lo."); return true; } CMD:detach(playerid, params[])//observar { if(!Logged{playerid}) return true; if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return SysMsg(playerid,"Você precisa estar em um veiculo."); new vehicleid = GetPlayerVehicleID(playerid); if(vehicleid == 0) return SysMsg(playerid, "Você não estar em um veiculo."); new trailerid = GetVehicleTrailer(vehicleid); if(trailerid == 0) return SysMsg(playerid, "Você não tem um Trailer."); DetachTrailerFromVehicle(vehicleid); SendClientMessage(playerid,COLOR_SKYBLUE,"Trailer Detached"); return true; } CMD:pm(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(PMSpamTime[playerid] > 0) return SysMsg(playerid,"Por favor, aguarde antes de mandar outra mensagem."); new playa = -1, msg[152]; if(sscanf(params, "us[152]", playa, msg)) return SysMsg(playerid,"Use: /pm [ID ou nome do jogador] [mensagem] *Mensagens pessoais são totalmente OOC*"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer um PM você mesmo."); if(!AcceptPM{playa} && !IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid,"Esse jogador tem mensagens privadas desligadas."); if(IsPlayerIgnoringPlayer(playerid, playa)) return SysMsg(playerid,"Você não pode enviar uma mensagem a alguém que está ignorando."); if(IsPlayerIgnoringPlayer(playa, playerid)) return SysMsg(playerid,"As PM's desse jogador está desativada."); if(!Logged{playa}) return SysMsg(playerid,"Você só pode enviar mensagens para jogadores conectados."); if(!IsPlayerIgnoringPlayer(playa, playerid) || IsPlayerAdminLevelOK(playa, 1)) SendSplitMessageF(playa,COLOR_PM,"[PM from %s, ID %i] %s", NameEx(playerid), playerid, msg); SendSplitMessageF(playerid,COLOR_PM, "[PM to %s, ID %i] %s", NameEx(playa), playa, msg); if(!IsPlayerAdminLevelOK(playerid, 1)) PMSpamTime[playerid] = 3; PMReplyID[playa] = playerid; if(!AcceptPM{playerid}) SysMsg(playerid,"Nota: Você atualmente suas PM's estão desativadas, você não receberá resposta de ninguem."); if(IsAFK{playa}) SysMsg(playerid,"Nota: O jogador que você está enviando PM está AFK, Talvez você não receberá uma resposta (Imediatamente)."); return true; } CMD:rpm(playerid, params[]) { if(!Logged{playerid}) return true; if(PMReplyID[playerid] == -1) return SysMsg(playerid, "Você não tem nenhuma PM para responder."); if(isnull(params)) return SysMsg(playerid, "Use: /rpm [mensagem] *Envia um PM rápido para o último jogador que enviou PM para você.*"); new playa = PMReplyID[playerid]; format(sgstr, sizeof(sgstr), "%i %s", playa, params); cmd_pm(playerid, sgstr); return true; } CMD:pmignorados(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(IsDonator[playerid] < 3) return SysMsg(playerid,"Somente o Nível 3 do doador e acima podem usar esse recurso."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /pmignorados [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode fazer isso com você mesmo!"); if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid,"Você receberá PM's de Administradores, mesmo que você os ignore."); if(IsPlayerIgnoringPlayer(playerid, playa)) SendClientMessageF(playerid,COLOR_WHITE, "Você está realmente ignorando os PM de %s.", NameEx(playa)); else SendClientMessageF(playerid,COLOR_WHITE, "Você está ingnorando as PM's de %s.", NameEx(playa)); return true; } CMD:togpm(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(isnull(params)) return SysMsg(playerid,"Use: /togpm ['on' ou 'off' ou ID]"); if(strcmp("off", params, true) == 0) { if(!AcceptPM{playerid}) return SysMsg(playerid,"Suas PM's já estão desativadas."); AcceptPM{playerid} = false; SendClientMessage(playerid, COLOR_WHITE, "Mensagens pessoais desativadas, outros jogadores não podem enviar PM para você."); return true; } else if(strcmp("on", params, true) == 0) { if(AcceptPM{playerid}) return SysMsg(playerid,"Suas PM's já estão ativadas."); AcceptPM{playerid} = true; SendClientMessage(playerid, COLOR_WHITE, "Mensagens pessoais ativadas, outros jogadores podem enviar PM para você."); return true; } else if(IsNumeric(params) || IsPlayerConnected(GetPlayerIDs(params))) { new playa = GetPlayerIDs(params); if(playa == playerid) return SysMsg(playerid,"Você não pode se ignorar!"); if(IsPlayerAdminLevelOK(playa, 1)) return SysMsg(playerid,"Você não pode ignorar Administradores."); if(!IsPlayerIgnoringPlayer(playerid, playa)) { mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO `ignore` (PlayerSQLID,IgnoringSQLID) VALUES (%i,%i)", SQLID[playerid], SQLID[playa]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_DONATE, "Você está ignorando os PM's de %s.", NameEx(playa)); return true; } else if(IsPlayerIgnoringPlayer(playerid, playa)) { mysql_format(conn, mquery, sizeof(mquery), "DELETE FROM `ignore` WHERE PlayerSQLID=%i AND IgnoringSQLID=%i", SQLID[playerid], SQLID[playa]); mysql_pquery(conn, mquery); SendClientMessageF(playerid, COLOR_DONATE, "Você não está mais ignorando os PM's de %s.", NameEx(playa)); return true; } } SysMsg(playerid,"Use: /togpm ['on' ou 'off' ou ID]"); return true; } CMD:toggold(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(IsDonator[playerid] < 2) return SysMsg(playerid,"Somente os donadores de nível 2+ podem usar esse recurso."); if(GoldToggle[playerid] == 0) { if(ADuty[playerid] == 1) return SysMsg(playerid, "Você está admin Duty."); GoldToggle[playerid] = 1; SetPlayerColor(playerid, COLOR_DONATE); SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: Seu golden OOC e nome agora estão ligados."); } else { GoldToggle[playerid] = 0; SetPlayerColor(playerid, 0xFFFFFF00); SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: Seu golden OOC e nome agora estão desligados."); } return true; } CMD:togooc(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(IsDonator[playerid] < 2) return SysMsg(playerid,"Somente os donadores de nível 2+ podem usar esse recurso."); if(OOCToggle[playerid] == 0) { OOCToggle[playerid] = 1; SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: O canal de bate-papo OOC agora está desativado para você."); } else { OOCToggle[playerid] = 0; SendClientMessage(playerid, COLOR_WHITE, "Donator Mensagem: O canal de bate-papo OOC agora está habilitado para você."); } return true; } CMD:togdooc(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(IsDonator[playerid] < 1) return SysMsg(playerid,"Somente os Donadores podem usar esse recurso."); ToggleDOOC{playerid} = !ToggleDOOC{playerid}; SendClientMessage(playerid, COLOR_WHITE, (ToggleDOOC{playerid}) ? ("Donator Mensagem: O canal de bate-papo Donator OOC agora está desativado para você.") : ("Donator Mensagem: O canal de bate-papo Donator OOC não está habilitado para você.")); return true; } CMD:gtoghc(playerid) { if(!Logged{playerid}) return true; if(!IsPlayerAdminLevelOK(playerid, 4)) return SysMsg(playerid, AUTHMSG); GlobalHelperChatTog = !GlobalHelperChatTog; foreach(new i: Player) { if(IsHelper{i} || AdminLevel[i] != 0) { if(GlobalHelperChatTog) SendClientMessage(i, COLOR_LIGHTGREEN, "O Chat Helper foi desativado."); else SendClientMessage(i, COLOR_LIGHTGREEN, "O Helper Chat foi ativado."); } } return true; } CMD:animegrito(playerid)//Habilitar e desabilitar a animação de grito /animegrito { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); ShoutAnimToggle{playerid} = !ShoutAnimToggle{playerid}; if(ShoutAnimToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "A animação de grito (/g) agora está ativado para você."); else SendClientMessage(playerid, COLOR_WHITE, "A animação de grito (/g) agora está desativado para você."); MySQLUpdateInt(SQLID[playerid], "ShoutAnimToggle", ShoutAnimToggle{playerid}, "players"); return true; } CMD:toganimfalar(playerid)//toganimfalar { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); TalkAnimToggle{playerid} = !TalkAnimToggle{playerid}; if(TalkAnimToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "A animação de conversa agora está habilitada para você."); else SendClientMessage(playerid, COLOR_WHITE, "A animação de conversa agora está desabilitada para você."); MySQLUpdateInt(SQLID[playerid], "TalkAnimToggle", TalkAnimToggle{playerid}, "players"); return true; } CMD:tognews(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); NewsToggle{playerid} = !NewsToggle{playerid}; if(NewsToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "As transmissões de notícias agora estão desativadas para você."); else SendClientMessage(playerid, COLOR_WHITE, "As transmissões de notícias agora estão desativadas para você."); return true; } CMD:toganuncios(playerid)//toganuncios { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); AdvertsToggle{playerid} = !AdvertsToggle{playerid}; if(AdvertsToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "Os anúncios agora estão desativados para você."); else SendClientMessage(playerid, COLOR_WHITE, "Os anúncios agora estão ativados para você."); return true; } CMD:togaudiostreams(playerid) { if(!Logged{playerid}) return true; AudioToggle{playerid} = !AudioToggle{playerid}; if(AudioToggle{playerid}) { StopAudioStreamForPlayer(playerid); SendClientMessage(playerid, COLOR_WHITE, "Certos audio streams agora estão desabilitados para você."); } else SendClientMessage(playerid, COLOR_WHITE, "Certos audio streams agora estão habilitados para você."); return true; } CMD:togdicas(playerid)//togdicas { if(!Logged{playerid}) return true; HintToggle{playerid} = !HintToggle{playerid}; if(HintToggle{playerid}) SendClientMessage(playerid, COLOR_WHITE, "As mensagens de dica agora estão desabilitadas para você."); else SendClientMessage(playerid, COLOR_WHITE, "As mensagens de dica agora estão habilitadas para você."); return true; } CMD:notepad(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][Notepad] == 0) return SysMsg(playerid,"You don't have a Notepad to use."); new action[10], page, text[75]; if(sscanf(params, "s[10]I(0)S()[75]", action, page, text)) return SysMsg(playerid,"Use: /notepad [Escrever / ler / limpar / editar / mostrar] [Número da Página] [texto (se escrever)]"); if(strcmp("limpar", action, false) == 0) { if(page == 0) return SysMsg(playerid,"Use: /notepad limpar [Número da Página]"); if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5."); if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"Essa página já está em branco."); NotepadText[playerid][page-1] = "blank"; new str[10]; for(new x = 0; x < 5; x++) { format(str, sizeof(str), "Notepad%i", x + 1); MySQLUpdateString(SQLID[playerid], str, NotepadText[playerid][x], "players"); } SendClientMessageF(playerid, COLOR_WHITE, "Você limpou a página %i do bloco de notas.", page); return true; } else if(strcmp("ler", action, false) == 0) { if(page == 0) return SysMsg(playerid,"Use: /notepad ler [Número da Página]"); if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5."); if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"That page is blank."); format(sgstr,sizeof(sgstr),"* %s gets a notepad out and reads one of the pages. *",NameRP(playerid)); ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid, COLOR_WHITE, "[Notepad: Page %i] %s", page, NotepadText[playerid][page-1]); return true; } else if(strcmp("escrever", action, false) == 0) { if(Inventory[playerid][Pen] == 0) return SysMsg(playerid,"Você não tem uma caneta para escrever."); if(page == 0) return SysMsg(playerid,"Use: /notepad Write [Número da Página] [text]"); if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5."); if(strcmp("blank", NotepadText[playerid][page-1], true) != 0) return SysMsg(playerid,"Esta página já tem texto sobre ele. Por favor, limpe esta página para usá-lo."); if(isnull(text)) return SysMsg(playerid,"Use: /notepad Escrever [Número da Página] [texto]"); if(strlen(text) > 73) return SysMsg(playerid,"A mensagem esta muito longa para caber na página."); format(NotepadText[playerid][page-1], 75, text); new str[10]; for(new x = 0; x < 5; x++) { format(str, sizeof(str), "Notepad%i", x + 1); MySQLUpdateString(SQLID[playerid], str, NotepadText[playerid][x], "players"); } format(sgstr,sizeof(sgstr),"* %s pega um bloco de notas e escreve em uma das páginas. *",NameRP(playerid)); ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid, COLOR_WHITE, "[Notepad: Página %i: Escreva] %s", page, NotepadText[playerid][page-1]); Inventory[playerid][Pen] --; MySQLUpdateInt(SQLID[playerid], "HasPen", Inventory[playerid][Pen], "players"); if(Inventory[playerid][Pen] <= 0) { Inventory[playerid][Pen] = 0; format(sgstr,sizeof(sgstr),"* A caneta de %s ficou sem tinta. *",NameRP(playerid)); ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "> Sua caneta não tem tinta, jogue fora e compre outra."); } return true; } else if(strcmp("editar", action, false) == 0) { if(page == 0) return SysMsg(playerid,"Use: /notepad Editar [Número da Página] [texto] - adiciona texto ao final da mensagem atual"); if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5."); if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"Essa página está em branco. Você deve 'escrever' uma página em branco antes de editar."); if(isnull(text)) return SysMsg(playerid,"Use: /notepad Editar [Número da Página] [texto] - adiciona texto ao final da mensagem atual"); if(strlen(text) + strlen(NotepadText[playerid][page-1]) > 73) return SysMsg(playerid,"A mensagem e a edição foram muito longas para caber na página."); format(NotepadText[playerid][page-1], 75, "%s %s", NotepadText[playerid][page-1], text); new str[10]; for(new x = 0; x < 5; x++) { format(str, sizeof(str), "Notepad%i", x + 1); MySQLUpdateString(SQLID[playerid], str, NotepadText[playerid][x], "players"); } format(sgstr,sizeof(sgstr),"*%s pega um bloco de notas e escreve em uma das páginas. *",NameRP(playerid)); ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid, COLOR_WHITE, "[Notepad: Página %i: Editar] %s", page, NotepadText[playerid][page-1]); return true; } else if(strcmp("mostrar", action, false) == 0) { new Float:tX, Float:tY, Float:tZ; if(page == 0 || isnull(text)) return SysMsg(playerid,"Use: /notepad Mostrar [Número da Página] [player id/nome]"); if(page < 1 || page > 5) return SysMsg(playerid,"Número de página inválido. Use de 1 à 5."); if(strcmp("blank", NotepadText[playerid][page-1], true) == 0) return SysMsg(playerid,"Essa página está em branco, você precisa escrever algo antes de mostrar."); new playa; if(!IsNumeric(text)) playa = GetPlayerID(playerid, text); else playa = strval(text); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); GetPlayerPos(playa, tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para mostrar a nota."); format(sgstr,sizeof(sgstr),"*%s pega um bloco de notas e mostra uma das páginas para %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(15.0,playerid,sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playa, COLOR_WHITE, "[Página] %s", NotepadText[playerid][page-1]); return true; } return true; } CMD:calc(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][Calculator] == 0) return SysMsg(playerid,"Você não tem uma calculadora para usar."); new Float:n1, Float:n2, oper, Float:answer; if(sscanf(params, "fcf", n1, oper, n2)) return SysMsg(playerid,"Use: /calc [Primeiro número] [+(add) OU -(Subtrair) OR *(Multiplicar) OU /(Dividir)] [Segundo número]"); format(gstr, sizeof(gstr), "*%s pega sua calculadora e pressiona alguns botões. *", NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); switch(oper) { case '+': answer = n1 + n2; case '-': answer = n1 - n2; case '/': { if(n2 == 0) return SysMsg(playerid, "[CALCULADORA] ERROR: Não é possível dividir por zero"); answer = n1 / n2; } case '*': answer = n1 * n2; default: return SysMsg(playerid, "[CALCULADORA] ERROR: Operador inválido"); } SendClientMessageF(playerid, COLOR_WHITE, "[CALCULADORA] %.2f %c %.2f = %.2f", n1, oper, n2, answer); return true; } CMD:jogardado(playerid, params[])//rolldice { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][Dice] == 0) return SysMsg(playerid,"Você não tem um dado, compre em uma Loja geral."); format(gstr, sizeof(gstr),"* %s joga um dado para cima a media altura e ele cai marcando %i. *", NameRP(playerid), random(6)+1); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:flipcoin(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Cash[playerid] <= 0) return SysMsg(playerid,"Você não tem moedas."); new Side[7], Rand = random(2); if(Rand == 0) Side = "Cara"; if(Rand == 1) Side = "Coroa"; format(gstr, sizeof(gstr),"* %s joga uma moeda para cima a media altura e ela cai no chão marcando %s. *",NameRP(playerid),Side); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:fumar(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][Lighter] <= 0) return SysMsg(playerid,"Você precisa de um isqueiro para fumar um cigarro."); if(Inventory[playerid][Fags] <= 0) return SysMsg(playerid,"Não sobrou mais cigarros."); Inventory[playerid][Fags] -= 1; Inventory[playerid][Lighter] -= 1; MySQLUpdateInt(SQLID[playerid], "HasFags", Inventory[playerid][Fags], "players"); MySQLUpdateInt(SQLID[playerid], "HasLighter", Inventory[playerid][Lighter], "players"); if(Inventory[playerid][Lighter] <= 0) { SysMsg(playerid,"Seu isqueiro esta sem gás, jogue fora."); Inventory[playerid][Lighter] = 0; } if(Inventory[playerid][Fags] <= 0) { SysMsg(playerid,"O maço de cigarro esta vazio, jogue o pacote fora."); Inventory[playerid][Fags] = 0; } SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY); format(gstr, sizeof(gstr),"* %s tira um palito de cigarro da carteira e o acende... *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:usarmuni(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(isnull(params)) return SysMsg(playerid,"Use: /usarmuni [Tipo de munição] - Tipos: 'Pistola', 'Shotgun', 'Rifle', 'Assault', 'SMG' *Você deve estar segurando a arma que deseja adicionar munição*"); new weapid = GetPlayerWeapon(playerid), weapslot = -1; if(strcmp("pistola", params, true) == 0) { if(Inventory[playerid][AmmoBox][AMMOBOX_PISTOL] > 0) { if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida."); if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida."); weapslot = GetWeaponSlot(weapid); if(weapslot != 2) return SysMsg(playerid,"Essa arma não pode levar munição de pistola."); if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma."); if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada."); Inventory[playerid][AmmoBox][AMMOBOX_PISTOL] --; MySQLUpdateInt(SQLID[playerid], "AmmoBoxPistol", Inventory[playerid][AmmoBox][AMMOBOX_PISTOL], "players"); WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid); SyncPlayerWeapons(playerid); format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid)); SendClientMessage(playerid, COLOR_WHITE, gstr); SetPlayerArmedWeapon(playerid, weapid); return true; } else return SysMsg(playerid, "Você não tem nenhuma caixa de munições para Pistola."); } else if(strcmp("shotgun", params, true) == 0) { if(Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN] > 0) { if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida."); if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida."); weapslot = GetWeaponSlot(weapid); if(weapslot != 3) return SysMsg(playerid,"Essa arma não pode levar munição de Shotgun."); if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma."); if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada."); Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN] --; MySQLUpdateInt(SQLID[playerid], "AmmoBoxShotgun", Inventory[playerid][AmmoBox][AMMOBOX_SHOTGUN], "players"); WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid); SyncPlayerWeapons(playerid); format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid)); SendClientMessage(playerid, COLOR_WHITE, gstr); SetPlayerArmedWeapon(playerid, weapid); return true; } else return SysMsg(playerid, "Você não tem nenhuma caixa de munição para Shotgun"); } else if(strcmp("SMG", params, true) == 0) { if(Inventory[playerid][AmmoBox][AMMOBOX_SMG] > 0) { if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida."); if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida."); weapslot = GetWeaponSlot(weapid); if(weapslot != 4) return SysMsg(playerid,"Essa arma não pode levar munição SMG."); if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma."); if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada."); Inventory[playerid][AmmoBox][AMMOBOX_SMG] --; MySQLUpdateInt(SQLID[playerid], "AmmoBoxSMG", Inventory[playerid][AmmoBox][AMMOBOX_SMG], "players"); WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid); SyncPlayerWeapons(playerid); format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid)); SendClientMessage(playerid, COLOR_WHITE, gstr); SetPlayerArmedWeapon(playerid, weapid); return true; } else return SysMsg(playerid, "Você não tem caixa de munição para SMG"); } else if(strcmp("Rifle", params, true) == 0) { if(Inventory[playerid][AmmoBox][AMMOBOX_RIFLE] > 0) { if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida."); if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida."); weapslot = GetWeaponSlot(weapid); if(weapslot != 6) return SysMsg(playerid,"Essa arma não pode levar munições para Rifle."); if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma."); if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada."); Inventory[playerid][AmmoBox][AMMOBOX_RIFLE] --; MySQLUpdateInt(SQLID[playerid], "AmmoBoxRifle", Inventory[playerid][AmmoBox][AMMOBOX_RIFLE], "players"); WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid); SyncPlayerWeapons(playerid); format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr), "Você recarregou seu sua %s.", GetWeaponNameFromID(weapid)); SendClientMessage(playerid, COLOR_WHITE, gstr); SetPlayerArmedWeapon(playerid, weapid); return true; } else return SysMsg(playerid, "Você não tem uma caixa de munições para Rifle."); } else if(strcmp("Assault", params, true) == 0) { if(Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT] > 0) { if(weapid == -1) return SysMsg(playerid,"Nome da arma inválida."); if(weapid < 1 || weapid > 47) return SysMsg(playerid,"Arma inválida."); if(weapid == 19 || weapid == 20 || weapid == 21) return SysMsg(playerid,"Arma inválida."); weapslot = GetWeaponSlot(weapid); if(weapslot != 5) return SysMsg(playerid,"Essa arma não pode levar Munição Assault Rifle."); if(WeaponData[playerid][weapslot][Weapon] != weapid) return SysMsg(playerid,"Você não possui essa arma."); if(WeaponData[playerid][weapslot][WeaponAmmo] == GetDefaultWeaponAmmo(weapid)) return SysMsg(playerid, "Essa arma já esta carregada com o máximo de munições suportada."); Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT] --; MySQLUpdateInt(SQLID[playerid], "AmmoBoxAssaultR", Inventory[playerid][AmmoBox][AMMOBOX_ASSAULT], "players"); WeaponData[playerid][weapslot][WeaponAmmo] = GetDefaultWeaponAmmo(weapid); SyncPlayerWeapons(playerid); format(gstr, sizeof(gstr), "* %s retira algumas munições de uma pequena caixa e coloca na sua %s. *", NameRP(playerid), GetWeaponNameFromID(weapid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr), "Você recarregou sua %s.", GetWeaponNameFromID(weapid)); SendClientMessage(playerid, COLOR_WHITE, gstr); SetPlayerArmedWeapon(playerid, weapid); return true; } else return SysMsg(playerid, "Você não possui caixas de munição de rifle de assalto."); } SysMsg(playerid,"Use: /usarmuni [TIPO DE MUNIÇÃO] - Tipos: 'Pistola', 'Shotgun', 'Rifle', 'Assault', 'SMG'"); return true; } CMD:gps(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][GPS] == 0 && !IsPlayerInRangeOfPoint(playerid, 2.5, 1244.2136, 165.6529, 2091.3589)) return SysMsg(playerid,"Você não tem um GPS."); if(IsInHospital{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 01)"); if(IsDrivingBus{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 02)"); if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 03)"); if(IsInBizzID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 04)"); new MenuText[64]; format(MenuText, sizeof(MenuText), "Definir Destino\nSalvar Local"); if(HasGPSWaypoint[playerid] == 1) strcat(MenuText, "\nRemover Checkpoint"); strcat(MenuText, "\nSair"); Dialog_Show(playerid, GPSMenu, DIALOG_STYLE_LIST, "GPS MENU", MenuText, "Selecionar", "Cancelar"); format(gstr, sizeof(gstr),"* %s visualiza seu gps... *",NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:navigateto(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(Inventory[playerid][GPS] == 0) return SysMsg(playerid,"Você não tem um GPS."); if(IsInHospital{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 01)"); if(IsDrivingBus{playerid}) return SysMsg(playerid,"O GPS está sem sinal. (error 02)"); if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 03)"); if(IsInBizzID[playerid] != -1) return SysMsg(playerid,"O GPS está sem sinal. (error 04)"); if(isnull(params)) return SysMsg(playerid,"Use: /navigateto(/navto) [Nome completo ou parto do nome de: Casa/Empresa]"); if(strlen(params) < 3) return SysMsg(playerid,"Por favor, use um termo de pesquisa mais longo."); gstr[0] = EOS; new matchescount, a = 0, caption[50]; for(a = 0; a < MAX_HOUSES; a++) { if(strlen(HouseData[a][HouseDescription]) > 1 && strfind(HouseData[a][HouseDescription], params, true) != -1) { if(strfind(HouseData[a][HouseDescription], "Flats Montgomery", true) != -1) continue; if(strfind(HouseData[a][HouseDescription], "Flats Dillimore", true) != -1) continue; if(strfind(HouseData[a][HouseDescription], "Flats Palomino", true) != -1) continue; matchescount ++; strcat(gstr, "{FF4753}Casa: {FFFFFF}"); strcat(gstr, HouseData[a][HouseDescription]); strcat(gstr, "\n"); if(strlen(gstr) > 1950) break; } } for(a = 0; a < MAX_BIZZ; a++) { if(strlen(gstr) > 1950) break; if(strlen(BizzData[a][BizzDescription]) > 1 && strfind(BizzData[a][BizzDescription], params, true) != -1) { matchescount ++; strcat(gstr, "{6896F1}Empresa: {FFFFFF}"); strcat(gstr, BizzData[a][BizzDescription]); strcat(gstr, "\n"); } } for(a = 0; a < MAX_INTERIORS; a++) { if(strlen(gstr) > 1950) break; if(strlen(Interiors[a][InteriorName]) > 1 && strfind(Interiors[a][InteriorName], params, true) != -1 && Interiors[a][InteriorNavTo] == 1) { matchescount++; strcat(gstr, "{FFCC11}Interior: {FFFFFF}"); strcat(gstr, Interiors[a][InteriorName]); strcat(gstr, "\n"); } } if(matchescount == 0) return SysMsg(playerid,"Nenhum local foi encontrado para esse nome pesquisado."); if(strlen(gstr) > 1950) SysMsg(playerid,"Quantidade máxima de locais esta sendo mostrado, para o resto, por favor, use um termo mais específico."); format(caption, sizeof(caption), "{FBFF00}%i {FFFFFF}possíveis localizações encontradas:", matchescount); Dialog_Show(playerid, NavigationDialog, DIALOG_STYLE_LIST, caption, gstr, "Definir", "Cancelar"); return true; } CMD:navto(playerid, params[]) return cmd_navigateto(playerid, params); CMD:amarrar(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(PlayerLevel[playerid] < 4) return SysMsg(playerid,"Você precisa estar level 4 para comprar isso."); if(Inventory[playerid][Rope] == 0) return SysMsg(playerid,"Você não tem corda, compre uma, ou dessamare uma pessoa para obter uma corda."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode amarrar alguém se você mesmo estiver amarrado."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /amarrar [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode amarrar a si mesmo."); new vehicleid = GetPlayerVehicleID(playerid); new tvehicleid = GetPlayerVehicleID(playa); if(vehicleid == 0) return SysMsg(playerid, "Você precisa estar no mesmo carro de alguém para conseguir amarrar."); if(vehicleid != tvehicleid) return SysMsg(playerid, "Você precisa estar no mesmo carro que esta pessoa para fazer isso."); if(IsTied[playa] > 0) return SysMsg(playerid,"Esse jogador já esta amarrado."); new success = random(50); if(success < 25) { format(gstr, sizeof(gstr), "* %s tentou amarrar %s e não conseguiu. *", NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } Inventory[playerid][Rope] = 0; MySQLUpdateInt(SQLID[playerid], "HasRope", Inventory[playerid][Rope], "players"); IsTied[playa] = 1200; TogglePlayerControllable(playa, 0); format(gstr, sizeof(gstr),"Você amarrou %s com sua corda.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr),"* %s pega uma corda de sua mochila e amarra %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:desamarra(playerid, params[]) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); if(IsTied[playerid] > 0) return SysMsg(playerid,"Você não pode desamarrar alguém quando você estiver amarrado."); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid,"Use: /desamarra [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode desamarrar a si mesmo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,3.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para fazer isso."); if(IsTied[playa] == 0) return SysMsg(playerid,"Essa pessoa não está amarrada."); Inventory[playerid][Rope] = 1; MySQLUpdateInt(SQLID[playerid], "HasRope", Inventory[playerid][Rope], "players"); IsTied[playa] = 0; TogglePlayerControllable(playa, 1); format(gstr, sizeof(gstr),"Você tirou a corda de %s e pegou de volta.", NameRP(playa)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr),"* %s tira a corda de %s. *",NameRP(playerid),NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:an(playerid, params[]) { if(!Logged{playerid}) return true; if(AdvertSpamTime[playerid] > 0) return SysMsg(playerid, "Aguarde entre publicar anúncios."); if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativados."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você precisa de um celular celular para postar um anúncio."); if(IsPlayerInRangeOfPoint(playerid, 5.0, 1213.6669, 227.0907, 1019.5281) || IsPlayerInRangeOfPoint(playerid, 5.0, 754.812927, 102.666061, 70.551887) || IsPlayerInRangeOfPoint(playerid, 5.0, 885.252014, 2262.758544, 238.230422) || IsPlayerInRangeOfPoint(playerid, 2.5, 1182.8987,1360.4265,1002.8235)) { if(isnull(params)) { SysMsg(playerid,"Use: /an [mensagem]"); SysMsg(playerid,"Examplo: '/an Isto é um teste' irá mostrar como: [Anúncio] Isto é um teste [Seu_Nome, celular: ###]"); return true; } if(strlen(params) < 30) return SysMsg(playerid, "Seu anúncio é muito curto. Seja criativo e seja apenas IC."); new AdCost = strlen(params) * 5; if(IsDonator[playerid] < 3) { GivePlayerCash(playerid, -AdCost); AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio %i caracteres, custando-lhe $%i ($5/Letras).",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } else if(IsDonator[playerid] == 3) { AdCost = AdCost / 2; GivePlayerCash(playerid, -AdCost); AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio %i caracteres, custando-lhe $%i. (Donator Bonus)",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } else if(IsDonator[playerid] == 4) { AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio %i caracteres, custando-lhe $0. (Donator Bonus)",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } FACTIONS[FACTION_NEWS][FactionBankBalance] += floatround(1 * AdCost); MySQLUpdateInt(FACTION_NEWS, "BankBalance", FACTIONS[FACTION_NEWS][FactionBankBalance], "factions"); foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessageF(i, COLOR_GREEN, "[Anúncio] %s [%s, celular: %i]", params, NameEx(playerid), PhoneData[playerid][pNumber]); AddToLog("advert", gstr); return true; } SysMsg(playerid, "Você só pode criar um anúncio dentro de um escritório da News Corporation"); return true; } CMD:anuncioprivado(playerid, params[]) { if(!Logged{playerid}) return true; if(AdvertSpamTime[playerid] > 0) return SysMsg(playerid, "Aguarde entre postar anúncios."); if(!AdvertsToggle{playerid}) return SysMsg(playerid, "Você não pode fazer um anúncio como você tem anúncios desativados."); if(Inventory[playerid][MobilePhone] == 0) return SysMsg(playerid,"Você precisa de um celular móvel para enviar um anúncio."); if(IsPlayerInRangeOfPoint(playerid, 5.0, 1213.6669, 227.0907, 1019.5281) || IsPlayerInRangeOfPoint(playerid, 5.0, 754.812927, 102.666061, 70.551887) || IsPlayerInRangeOfPoint(playerid, 5.0, 885.252014, 2262.758544, 238.230422) || IsPlayerInRangeOfPoint(playerid, 2.5, 1182.8987,1360.4265,1002.8235)) { if(isnull(params)) { SysMsg(playerid,"Use: /anuncioprivado [mensagem]"); SysMsg(playerid,"Examplo: '/anuncioprivado Isto é um teste' irá mostrar como: [Anúncio privado] Isto é um teste [celular: #]"); return true; } if(strlen(params) < 30) return SysMsg(playerid, "Seu anúncio é muito curto. Seja criativo e seja apenas IC."); new AdCost = strlen(params) * 8; if(IsDonator[playerid] < 3) { GivePlayerCash(playerid, -AdCost); AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio privado com %i caracteres, custando-lhe $%i ($8/Letra).",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } else if(IsDonator[playerid] == 3) { AdCost = AdCost / 2; GivePlayerCash(playerid, -AdCost); AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio privado com %i caracteres, custando-lhe $%i. ($8/Letra)",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } else if(IsDonator[playerid] == 4) { AdvertSpamTime[playerid] = 60; format(gstr, sizeof(gstr),"Você fez um anúncio privado com %i caracteres, custando-lhe $%i. ($8/Letra)",strlen(params),AdCost); SendClientMessage(playerid,COLOR_WHITE,gstr); } FACTIONS[FACTION_NEWS][FactionBankBalance] += floatround(1 * AdCost); MySQLUpdateInt(FACTION_NEWS, "BankBalance", FACTIONS[FACTION_NEWS][FactionBankBalance], "factions"); format(gstr, sizeof(gstr),"[Anúncio privado, celular %i] %s", PhoneData[playerid][pNumber], params); foreach(new i: Player) if(Logged{i} && AdvertsToggle{i}) SendSplitMessage(i, COLOR_GREEN, gstr); format(gstr, sizeof(gstr), "[Admin] ^^ Anúncio privado por %s (ID %i)", NameEx(playerid), playerid); AdminBroadcast(gstr, 0); AddToLog("advert", gstr); return true; } SysMsg(playerid, "Você só pode criar um anúncio dentro de um escritório da News Corporation"); return true; } CMD:maleta(playerid, params[]) return cmd_briefcase(playerid, params); CMD:briefcase(playerid, params[])//sistema de maletas { if(!Logged{playerid}) return true; if(Inventory[playerid][Briefcase] == 0) return SysMsg(playerid,"Você não tem uma maleta."); new action[10], storeitem[15], storeamount[25]; if(sscanf(params, "s[10]S()[15]S()[25]", action, storeitem, storeamount)) return SysMsg(playerid,"Use: /maleta [conteúdo / mostrar / esconder / guardar / pegar / fechar / abrir / setcode]"); if(strcmp("contents", action, true) == 0) { new itemcount, items[128]; format(items, 128, "Minha maleta: "); if(BriefcaseWeapon[playerid] > 0) { new weapon, ammo, ammostr[12]; mysql_format(conn, mquery, sizeof(mquery), "SELECT WeaponID, WeaponAmmo FROM weapons WHERE id = %i", BriefcaseWeapon[playerid]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows()) { weapon = cache_get_field_content_int(0, "WeaponID"); ammo = cache_get_field_content_int(0, "WeaponAmmo"); format(ammostr, sizeof(ammostr), "%i", ammo); itemcount ++; strcat(items, "Weapon("); strcat(items, GetWeaponNameFromID(weapon)); strcat(items, " - "); strcat(items, ammostr); strcat(items, "ammo)"); cache_delete(result); } else cache_delete(result); } if(BriefcaseCash[playerid] > 0) { new money[10]; format(money, 10, "%i", BriefcaseCash[playerid]); itemcount ++; if(itemcount > 1) strcat(items, ", "); strcat(items, "Dinheiro($"); strcat(items, money); strcat(items, ")"); } if(BriefcaseWeed[playerid] > 0) { new drug[10]; format(drug, 10, "%i", BriefcaseWeed[playerid]); itemcount ++; if(itemcount > 1) strcat(items, ", "); strcat(items, "Marijuana("); strcat(items, drug); strcat(items, ")"); } if(BriefcaseCocaine[playerid] > 0) { new drug[10]; format(drug, 10, "%i", BriefcaseCocaine[playerid]); itemcount ++; if(itemcount > 1) strcat(items, ", "); strcat(items, "Cocaina("); strcat(items, drug); strcat(items, ")"); } if(itemcount == 0) strcat(items, "nada"); SendClientMessage(playerid, COLOR_WHITE, items); } else if(strcmp("mostrar", action, true) == 0) { if(BriefcaseHolding[playerid] > 0) return SysMsg(playerid,"Você já está segurando sua maleta."); if(GetFreePlayerObjectIndex(playerid) == -1) return SysMsg(playerid, "Você está carregando muitos itens em sua pessoa no momento, tente remover alguns itens primeiro."); if(isnull(storeitem)) return SysMsg(playerid,"Use: /maleta [mostrar] [D(ireita) OU E(squerda)] -Mão do seu personagem-"); for(new ao = 0; ao < 6; ao++) { if(AttachedObjects[playerid][ao][aoModelID] == 0) { if(strcmp("D", storeitem, true) == 0 || strcmp("direita", storeitem, true) == 0) { AttachedObjects[playerid][ao][aoModelID] = 19624; AttachedObjects[playerid][ao][aoBone] = 6; SetPlayerAttachedObject(playerid, ao, 19624, 6, 0.066999, 0.032000, 0.000000, -39.700004, -99.600051, 1.899998); BriefcaseHolding[playerid] = 1; return true; } else if(strcmp("E", storeitem, true) == 0 || strcmp("esquerda", storeitem, true) == 0) { AttachedObjects[playerid][ao][aoModelID] = 19624; AttachedObjects[playerid][ao][aoBone] = 5; SetPlayerAttachedObject(playerid, ao, 19624, 5, 0.066999, 0.032000, 0.000000, -39.700004, -99.600051, 1.899998); BriefcaseHolding[playerid] = 2; return true; } } } } else if(strcmp("esconder", action, true) == 0) { if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você não está segurando sua maleta."); for(new ao = 0; ao < 6; ao++) { if(AttachedObjects[playerid][ao][aoModelID] == 19624) { RemovePlayerAttachedObject(playerid, ao); AttachedObjects[playerid][ao][aoModelID] = 0; AttachedObjects[playerid][ao][aoBone] = 0; BriefcaseHolding[playerid] = 0; return true; } } } else if(strcmp("guardar", action, true) == 0) { if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro."); if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta está fechada."); if(isnull(storeitem)) return SysMsg(playerid,"Use: /maleta [guardar] [Arma / Dinheiro / Marijuana / Cocaina]"); if(strcmp("arma", storeitem, true) == 0) { if(BriefcaseWeapon[playerid] > 0) return SysMsg(playerid,"Você já possui uma arma na sua maleta."); if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [arma] [Nome da arma (Examplo: 9mm)]"); new wid = GetWeaponIdFromName(storeamount); if(wid < 1) return SysMsg(playerid,"Nome da arma inválida."); new Slot = GetWeaponSlot(wid); if(WeaponData[playerid][Slot][Weapon] != wid) return SysMsg(playerid,"Você não tem essa arma para guardar."); if(wid == 2 || wid == 5 || wid == 6 || wid == 7 || wid == 8 || wid == 9 || wid == 15 || wid == 18 || wid == 25 || wid == 27 || wid == 30 || wid == 31 || wid == 33 || wid == 35 || wid == 36 || wid == 37 || wid == 38 || wid == 42) return SysMsg(playerid,"You cannot put that weapon in your Briefcase as it is too big."); if(WeaponData[playerid][Slot][WeaponOrigin] == 3) return SysMsg(playerid, "Você não pode armazenar armas de facção na sua maleta."); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 0, WeaponAmmo = %i WHERE id = %i", WeaponData[playerid][Slot][WeaponAmmo], WeaponData[playerid][Slot][WeaponID]); mysql_pquery(conn, mquery); BriefcaseWeapon[playerid] = WeaponData[playerid][Slot][WeaponID]; ResetWeaponVariables(playerid, 0, Slot); SetPlayerArmedWeapon(playerid, 0); SyncPlayerWeapons(playerid); MySQLUpdateInt(SQLID[playerid], "BriefcaseWeapon", BriefcaseWeapon[playerid], "players"); format(gstr, sizeof(gstr), "Sua %s está dentro da maleta.", GetWeaponNameFromID(wid)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s guardar uma %s dentro de sua maleta. *", NameRP(playerid), GetWeaponNameFromID(wid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strcmp("dinheiro", storeitem, true) == 0) { if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [dinheiro] [quantidade]"); if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor em dinheiro deve ser um número."); new cashamount = strval(storeamount); if(cashamount < 1) return SysMsg(playerid,"O valor em dinheiro deve ser pelo menos $1."); if(cashamount > Cash[playerid]) return SysMsg(playerid,"Você não possui essa quantidade de dinheiro para armazenar."); if(BriefcaseCash[playerid] + cashamount > 1000000) return SysMsg(playerid,"Você só pode ter um máximo de $1,000,000 na sua pasta."); BriefcaseCash[playerid] += cashamount; GivePlayerCash(playerid, -cashamount); MySQLUpdateInt(SQLID[playerid], "BriefcaseCash", BriefcaseCash[playerid], "players"); format(gstr, sizeof(gstr), "Você guardou $%s dentro da sua maleta. Existe agora um total de $%s.", format_cash(cashamount), format_cash(BriefcaseCash[playerid])); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s coloca algum dinheiro na pasta. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"[%s] %s(%i) guardou $%i na maleta.", GetServerTimeString(), NameEx(playerid), playerid, cashamount); AddToLog("cash", gstr); } else if(strcmp("marijuana", storeitem, true) == 0) { if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [marijuana] [quantidade (g)]"); if(!IsNumeric(storeamount)) return SysMsg(playerid,"A quantidade precisa ser em número."); new amount = strval(storeamount); if(amount < 1) return SysMsg(playerid,"O número precisa ser maior que 1."); if(amount > Inventory[playerid][Weed]) return SysMsg(playerid,"Você não tem essa quantidade de erva para armazenar."); if(BriefcaseWeed[playerid] + amount > 100) return SysMsg(playerid,"Você só pode ter um máximo de 100g em sua maleta."); BriefcaseWeed[playerid] += amount; Inventory[playerid][Weed] -= amount; MySQLUpdateInt(SQLID[playerid], "BriefcaseWeed", BriefcaseWeed[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); format(gstr, sizeof(gstr), "Você guardou %ig de marijuana na maleta. Existe agora um total de %ig.", amount, BriefcaseWeed[playerid]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s guarda algumas drogas na maleta *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strcmp("Cocaina", storeitem, true) == 0) { if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [guardar] [cocaina] [quantidade (g)]"); if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número."); new amount = strval(storeamount); if(amount < 1) return SysMsg(playerid,"O valor deve ser pelo menos 1."); if(amount > Inventory[playerid][Cocaine]) return SysMsg(playerid,"Você não tem essa quantidade de cocaina para guardar."); if(BriefcaseCocaine[playerid] + amount > 100) return SysMsg(playerid,"Você só pode ter um máximo de 100g em sua maleta."); BriefcaseCocaine[playerid] += amount; Inventory[playerid][Cocaine] -= amount; MySQLUpdateInt(SQLID[playerid], "BriefcaseCocaine", BriefcaseCocaine[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); format(gstr, sizeof(gstr), "Você colocou %ig de cocaina na sua maleta. Existe agora um total de %ig.", amount, BriefcaseCocaine[playerid]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s coloca algumas drogas em sua pasta. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } } else if(strcmp("pegar", action, true) == 0) { if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro."); if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta está fechada."); if(isnull(storeitem)) return SysMsg(playerid,"Use: /maleta [pegar] [Arma / Dinheiro / Marijuana / Cocaina]"); if(strcmp("weapon", storeitem, true) == 0) { if(BriefcaseWeapon[playerid] == 0) return SysMsg(playerid,"Você não tem arma na sua maleta."); mysql_format(conn, mquery, sizeof(mquery), "SELECT * FROM weapons WHERE id = %i", BriefcaseWeapon[playerid]); new Cache:result = mysql_query(conn, mquery); if(cache_num_rows()) { new wid = cache_get_field_content_int(0, "WeaponID"); new slot = GetWeaponSlot(wid); if(WeaponData[playerid][slot][Weapon] > 0) return SysMsg(playerid,"Você já possui uma arma do mesmo tipo em seu inventário."); WeaponData[playerid][slot][WeaponID] = BriefcaseWeapon[playerid]; WeaponData[playerid][slot][Weapon] = wid; WeaponData[playerid][slot][WeaponAmmo] = cache_get_field_content_int(0, "WeaponAmmo"); WeaponData[playerid][slot][WeaponPossession] = cache_get_field_content_int(0, "WeaponPossession"); WeaponData[playerid][slot][wCreatorSQLID] = cache_get_field_content_int(0, "CreatorSQLID"); WeaponData[playerid][slot][wOwnerSQLID] = cache_get_field_content_int(0, "OwnerSQLID"); WeaponData[playerid][slot][WeaponType] = GetWeaponType(WeaponData[playerid][slot][Weapon]); WeaponData[playerid][slot][WeaponOrigin] = cache_get_field_content_int(0, "WeaponOrigin"); WeaponData[playerid][slot][WeaponTimestamp] = cache_get_field_content_int(0, "Timestamp"); cache_delete(result); BriefcaseWeapon[playerid] = 0; SyncPlayerWeapons(playerid); SetPlayerArmedWeapon(playerid, wid); MySQLUpdateInt(SQLID[playerid], "BriefcaseWeapon", BriefcaseWeapon[playerid], "players"); mysql_format(conn, mquery, sizeof(mquery), "UPDATE weapons SET WeaponPossession = 1 WHERE id = %i", WeaponData[playerid][slot][WeaponID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr), "Você removeu uma %s da sua maleta.", GetWeaponNameFromID(wid)); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s pega uma %s da sua maleta. *", NameRP(playerid), GetWeaponNameFromID(wid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else return SysMsg(playerid, "Ocorreu um Erro, contate um admin com este código de erro: BCGW.") && cache_delete(result); } else if(strcmp("dinheiro", storeitem, true) == 0) { if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [pegar] [dinheiro] [quantidade]"); if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número."); new cashamount = strval(storeamount); if(cashamount < 1) return SysMsg(playerid,"O valor deve ser maior que $1."); if(cashamount > BriefcaseCash[playerid]) return SysMsg(playerid,"Você não tem essa quantidade de dinheiro na sua maleta."); BriefcaseCash[playerid] -= cashamount; GivePlayerCash(playerid, cashamount); MySQLUpdateInt(SQLID[playerid], "BriefcaseCash", BriefcaseCash[playerid], "players"); format(gstr, sizeof(gstr), "Você pegou $%s da sua maleta. Existe agora um total de $%s.", format_cash(cashamount), format_cash(BriefcaseCash[playerid])); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s pega algum dinheiro de dentro da maleta. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); format(gstr, sizeof(gstr),"[%s] %s(%i) pega $%i da sua maleta.", GetServerTimeString(), NameEx(playerid), playerid, cashamount); AddToLog("cash", gstr); } else if(strcmp("marijuana", storeitem, true) == 0) { if(isnull(storeamount)) return SysMsg(playerid,"Use: /maleta [pgar] [marijuana] [quantidade (g)]"); if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número."); new amount = strval(storeamount); if(amount < 1) return SysMsg(playerid,"O valor deve ser pelo menos 1."); if(amount > BriefcaseWeed[playerid]) return SysMsg(playerid,"Você não tem essa quantidade."); if(Inventory[playerid][Weed] + amount > DRUG_MAX_WEED) return SysMsg(playerid,"Você não pode carregar essa quantidade de drogas."); BriefcaseWeed[playerid] -= amount; Inventory[playerid][Weed] += amount; MySQLUpdateInt(SQLID[playerid], "BriefcaseWeed", BriefcaseWeed[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "Weed", Inventory[playerid][Weed], "players"); format(gstr, sizeof(gstr), "Você pegou %ig de marijuana de sua maleta. Existe agora um total de %ig.", amount, BriefcaseWeed[playerid]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s pega algumas drogas de sua maleta. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strcmp("Cocaina", storeitem, true) == 0) { if(strlen(storeamount) == 0) return SysMsg(playerid,"Use: /maleta [pegar] [cocaina] [quantidade (g)]"); if(!IsNumeric(storeamount)) return SysMsg(playerid,"O valor deve ser um número."); new amount = strval(storeamount); if(amount < 1) return SysMsg(playerid,"O valor deve ser pelo menos 1."); if(amount > BriefcaseCocaine[playerid]) return SysMsg(playerid,"Você não tem essa quantidade."); if(Inventory[playerid][Cocaine] + amount > DRUG_MAX_COCAINE) return SysMsg(playerid,"Você não pode carregar essa quantidade de drogas."); BriefcaseCocaine[playerid] -= amount; Inventory[playerid][Cocaine] += amount; MySQLUpdateInt(SQLID[playerid], "BriefcaseCocaine", BriefcaseCocaine[playerid], "players"); MySQLUpdateInt(SQLID[playerid], "Cocaine", Inventory[playerid][Cocaine], "players"); format(gstr, sizeof(gstr), "Você pegou %ig de cocaina de sua maleta. Existe agora um total de %ig.", amount, BriefcaseCocaine[playerid]); SendClientMessage(playerid, COLOR_WHITE, gstr); format(gstr, sizeof(gstr), "* %s pega algumas drogas de sua maleta. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } } else if(strcmp("fechar", action, true) == 0) { if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro."); if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta já está fechada."); BriefcaseLocked[playerid] = 1; MySQLUpdateInt(SQLID[playerid], "BriefcaseLocked", BriefcaseLocked[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "Você fechou sua maleta. (Lembre-se do seu código se você tiver um conjunto ou você não poderá desbloqueá-lo)"); format(gstr, sizeof(gstr), "* %s fecha os clipes em sua maleta para trancá-la. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else if(strcmp("abrir", action, true) == 0) { if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro."); if(BriefcaseLocked[playerid] == 0) return SysMsg(playerid,"A maleta já está aberta."); if(BriefcaseCode[playerid] > 0) { if(strlen(storeitem) == 0) return SysMsg(playerid,"Use: /maleta [abrir] [Code]"); if(!IsNumeric(storeitem)) return SysMsg(playerid,"o codigo precisa ser em números."); new casecode = strval(storeitem); if(casecode < 1000 || casecode > 9999) return SysMsg(playerid,"Código só pode ser entre 1000 à 9999."); if(casecode != BriefcaseCode[playerid]) { SendClientMessage(playerid, COLOR_WHITE, "Codego errado."); format(gstr, sizeof(gstr), "* A maleta de %s falha ao tentar abrir usando um código errado. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } BriefcaseLocked[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "BriefcaseLocked", BriefcaseLocked[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "Você destrancou sua maleta."); format(gstr, sizeof(gstr), "* %s abre sua maleta após inserir um código. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } else { BriefcaseLocked[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "BriefcaseLocked", BriefcaseLocked[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "Você destrancou sua maleta."); format(gstr, sizeof(gstr), "* %s destrava sua maleta e à abre. *", NameRP(playerid)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); } } else if(strcmp("setcode", action, true) == 0) { if(BriefcaseHolding[playerid] == 0) return SysMsg(playerid,"Você precisa estar segurando a maleta primeiro."); if(BriefcaseLocked[playerid] == 1) return SysMsg(playerid,"A maleta deve estar destrancada para fazer isso.."); if(strlen(storeitem) == 0) return SysMsg(playerid,"Use: /maleta [SetCode] [novo code] *use 0 para remover o code*"); if(!IsNumeric(storeitem)) return SysMsg(playerid,"Use apenas números."); new casecode = strval(storeitem); if(casecode == 0) { BriefcaseCode[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "BriefcaseCode", BriefcaseCode[playerid], "players"); SendClientMessage(playerid, COLOR_WHITE, "Code removido."); return true; } if(casecode < 1000 || casecode > 9999) return SysMsg(playerid,"Código só pode ser entre 1000 à 9999."); if(casecode == BriefcaseCode[playerid]) return SysMsg(playerid,"Esse code já está sendo usado."); BriefcaseCode[playerid] = casecode; MySQLUpdateInt(SQLID[playerid], "BriefcaseCode", BriefcaseCode[playerid], "players"); format(gstr, sizeof(gstr), "Briefcase code set to %i. (Don't forget it!)", BriefcaseCode[playerid]); SendClientMessage(playerid, COLOR_WHITE, gstr); } return true; } CMD:o(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(ToggleOOC == 0) return SysMsg(playerid,"Out of Character chat está desativado."); if(IsDonator[playerid] >= 2 && OOCToggle[playerid] == 1) return SysMsg(playerid,"Mensagem doador: Seu OOC chat está desativado."); if(gOOCDelay > 0) return SysMsg(playerid,"O chat global OOC é limitado a uma mensagem a cada 3 segundos. Por favor, espere."); if(isnull(params)) return SysMsg(playerid,"Use: Global OOC Chat: /o [mensagem]"); new color = COLOR_OOC; if(IsDonator[playerid] >= 2 && GoldToggle[playerid] == 1) color = COLOR_DONATE; foreach(new i: Player) if(Logged{i}) if(OOCToggle[i] == 0) SendClientMessageF(i, color, "(( [OOC] %s diz: %s ))",NameEx(playerid),params); gOOCDelay = 3; return true; } CMD:b(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]); if(UsingCCTV{playerid}) return SysMsg(playerid, "Você não pode usar /b enquanto visualiza câmeras de CCTV."); if(!LocalOOCEnabled{playerid}) return SysMsg(playerid, "Você tem atualmente OOC local chat desativado (/togb)."); if(isnull(params)) return SysMsg(playerid,"Use: Local OOC Chat: /b [mensagem]"); new oocPlayersInArea = 0; new Float:myPos[3], vWorld = GetPlayerVirtualWorld(playerid); GetPlayerPos(playerid, myPos[0], myPos[1], myPos[2]); foreach(new i: Player) { if(GetPlayerVirtualWorld(i) == vWorld && IsPlayerInRangeOfPoint(i, 25.0, myPos[0], myPos[1], myPos[2]) && LocalOOCEnabled{i}) { SendSplitMessageF(i, COLOR_LIGHTBLUE, "(( [OOC] %s: %s ))",NameEx(playerid),params); if(i != playerid && GetPlayerState(i) != 9) oocPlayersInArea++; } } if(oocPlayersInArea == 0) SysMsg(playerid, "Ninguém na área tem Chat OOC local habilitado."); return true; } CMD:togb(playerid) { if(!Logged{playerid}) return SysMsg(playerid,"Faça o login primeiro."); LocalOOCEnabled{playerid} = !LocalOOCEnabled{playerid}; if(!LocalOOCEnabled{playerid}) { SendClientMessage(playerid, COLOR_WHITE, "O {009FFB}Local OOC {FFFFFF}está desativado para você."); SetPlayerChatBubble(playerid, "(( Desativado /b ))", COLOR_LIGHTBLUE, 15.0, 1000); } else { SendClientMessage(playerid, COLOR_WHITE, "O {009FFB}Local OOC {FFFFFF}chat Channel agora está habilitado para você."); SetPlayerChatBubble(playerid, "(( Ativado /b ))", COLOR_LIGHTBLUE, 15.0, 1000); } return true; } CMD:dooc(playerid, params[]) { if(!Logged{playerid}) return true; if(IsDonator[playerid] == 0) return SysMsg(playerid,"Esse recurso é apenas para donadores."); if(GlobalDOOCMute) return SysMsg(playerid,"Este bate-papo foi desativado globalmente, oh bem."); if(ToggleDOOC{playerid}) return SysMsg(playerid,"Você desativou esse bate-papo. Use /TogDooc"); if(DOOCMuted[playerid] > 1) return SysMsg(playerid, "Você é silenciado por um Doador OOC."); if(isnull(params)) return SysMsg(playerid,"Use: Donator OOC Chat: /dooc [mensagem]"); foreach(new i: Player) { if(Logged{i}) { if(IsDonator[i] > 0 && !ToggleDOOC{i}) { SendSplitMessageF(i, COLOR_DONATE, "[Donator OOC] %s (Level %i) diz: %s",NameEx(playerid), IsDonator[playerid], params); } } } //IRC_SayF(IRCBot, IRC_DOOC_CHANNEL, "7[Donator OOC] %s (Level %i) says: %s",NameEx(playerid), IsDonator[playerid], params); return true; } CMD:g(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(UsingCCTV{playerid}) return SysMsg(playerid,"Você não pode fazer isso enquanto estiver usando o CCTV."); if(IsSpectating[playerid] != -1) return SysMsg(playerid, "Você não pode fazer isso enquanto espectador."); if(isnull(params)) return SysMsg(playerid,"Use: Gritar!: /g [mensagem]"); if(GetPlayerVehicleID(playerid) == 0 && ShoutAnimToggle{playerid}) { StopLoopingAnim(playerid); OnePlayAnim(playerid, "RIOT", "RIOT_shout", 3.0, 0, 0, 0, 0, 0); } if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"%s grita: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params); else format(gstr, sizeof(gstr),"%s grita: %s", NameRP(playerid), params); ProxDetector(42.0,playerid, gstr,COLOR_ORANGE,COLOR_ORANGE,COLOR_ORANGE,COLOR_ORANGE,COLOR_ORANGE); if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[sotaque %s] %s", Accent[playerid], params); else format(gstr, sizeof(gstr),"%s", params); if(UsingAccent[playerid] == 1) SendToInRangeBuilding(playerid, 15, COLOR_ORANGE, Accent[playerid], params); else SendToInRangeBuilding(playerid, 15, COLOR_ORANGE, "", params); SetPlayerChatBubble(playerid, params, COLOR_ORANGE, 15.0, 6000); return true; } CMD:s(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); new playa = -1, msg[150], name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]s[150]", name, msg)) return SysMsg(playerid,"Use: Sussuro: /s [ID ou nome do jogador] [mensagem]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Jogador inválido. Não pode ser você mesmo."); if(IsSpectating[playa] >= 0) return SysMsg(playerid,"Você deve estar perto do jogador para sussurrar."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,2.5,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para sussurrar."); if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"%s sussurra para você: [sotaque %s] %s", NameRP(playerid), Accent[playerid], msg); else format(gstr, sizeof(gstr),"%s whispers to you: %s", NameRP(playerid), msg); SendSplitMessage(playa,0x565F91FF,gstr); format(gstr, sizeof(gstr),"Você sussurra para %s: %s", NameRP(playa), msg); SendSplitMessage(playerid,0x565F91FF,gstr); format(gstr, sizeof(gstr),"* %s sussurra algo para %s... *", NameRP(playerid), NameRP(playa)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 15.0, 6000); //ProxDetector(10.0,playerid,gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } //CMD:low(playerid, params[]) return cmd_baixo(playerid, params); CMD:baixo(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]); if(UsingCCTV{playerid}) return SysMsg(playerid,"Você não pode fazer isso enquanto usa o CCTV."); if(isnull(params)) return SysMsg(playerid,"Use: Conversa Baixo: /baixo [mensagem]"); new vid = GetPlayerVehicleID(playerid); if(vid > 0 && VehicleHasWindows(vid)) { if(WindowState{vid} == WINDOWS_CLOSED) { if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[Baixo] %s diz: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params); else format(gstr, sizeof(gstr),"[Quiet] %s says: %s", NameRP(playerid), params); foreach(new i: Player) { new VehId = GetPlayerVehicleID(i); if(VehId == vid) SendSplitMessage(i,COLOR_FADE3,gstr); } } else { if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[Baixo] %s diz: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params); else format(gstr, sizeof(gstr),"[Quiet] %s says: %s", NameRP(playerid), params); ProxDetector(4.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); } } else { if(UsingAccent[playerid] == 1) format(gstr, sizeof(gstr),"[Baixo] %s diz: [sotaque %s] %s", NameRP(playerid), Accent[playerid], params); else format(gstr, sizeof(gstr),"[Quiet] %s says: %s", NameRP(playerid), params); ProxDetector(4.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); } return true; } CMD:a(playerid, params[]) { if(!IsPlayerAdminLevelOK(playerid, 1)) return false; if(isnull(params)) return SysMsg(playerid,"Use: Admin Chat: /a [mensagem]"); foreach(new i: Player) { if(IsPlayerAdminLevelOK(i,1)) { SendSplitMessageF(i, COLOR_RED, "[Admin] %s: %s",NameEx(playerid),params); } } //IRC_SayF(IRCBot, IRC_ADMIN_CHANNEL, "4[Admin] %s: %s", NameEx(playerid), params); return true; } CMD:r(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid,"Você está mudo. (%i minutos restantes)", Muted[playerid]); if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu Rádio não está ligado. (/ron /roff)"); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu rádio enquanto estiver algemado."); if(isnull(params)) return SysMsg(playerid,"Use: Radio Chat: /r [mensagem]"); foreach(new i: Player) { if(Logged{i} && RadioFrequency[playerid] == RadioFrequency[i] && RadioPoweredOn[i] == 1) { if(i != playerid) SendSplitMessageF(i, 0x967100FF, "[Radio - %i MHz] %s: %s", RadioFrequency[playerid], NameRP(playerid), params); } } format(gstr, sizeof(gstr), "%s diz (radio): %s", NameRP(playerid), params); ProxDetector(15.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); return true; } CMD:lr(playerid, params[]) { if(!Logged{playerid}) return true; if(Muted[playerid] > 0) return SysMsgF(playerid, "Você está mudo. (%i minutos restantes)", Muted[playerid]); if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu Rádio não está ligado. (/ron /roff)"); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o seu rádio enquanto estiver algemado."); if(isnull(params)) return SysMsg(playerid,"Use: Baixo no Radio: /lr [mensagem] *Sussurro em rádio*"); foreach(new i: Player) { if(Logged{i} && RadioFrequency[playerid] == RadioFrequency[i] && RadioPoweredOn[i] == 1) { if(i != playerid) SendSplitMessageF(i, 0x967100FF, "[Radio - %i MHz] [Baixo] %s: %s", RadioFrequency[playerid], NameRP(playerid), params); } } format(gstr, sizeof(gstr), "[Baixo] %s diz (radio): %s", NameRP(playerid), params); ProxDetector(4.0, playerid, gstr, COLOR_FADE1, COLOR_FADE2, COLOR_FADE3, COLOR_FADE4, COLOR_FADE5); return true; } //end of chats rtune CMD:rfreq(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu Rádio não está ligado. (/ron /roff)"); new Frequency; if(sscanf(params, "i", Frequency)) return SysMsg(playerid,"Use: /rfreq [frequência do canal]"); if(Frequency < 1000 || Frequency > 9999) return SysMsg(playerid,"A frequência do canal deve estar entre 1000 MHz e 9999 MHz."); if(Frequency == RadioFrequency[playerid]) return SysMsg(playerid,"A frequência do canal já está configurada para isso."); new i, allow = 1; for(i = 0; i < MAX_FACTIONS; i++) { if(FACTIONS[i][FactionRadioChannel] == Frequency && Faction[playerid] != i) { allow = 0; break; } } if(allow == 0) return SysMsg(playerid, "A frequência do canal é reservada."); RadioFrequency[playerid] = Frequency; RadioSlot[playerid][RadioSlotUsed[playerid] - 1] = Frequency; new sub[32]; format(sub, sizeof(sub), "RadioSlot%i", RadioSlotUsed[playerid]); mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET RadioFrequency = %i, %s = %i WHERE id = %i", RadioFrequency[playerid], sub, RadioFrequency[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); SysMsgF(playerid, "Radio Re-Definido para frquência %i MHz.", RadioFrequency[playerid]); format(gstr, sizeof(gstr), "* %s liga seu Radio e define uma frequência. *", NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:rslot(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Radio] == 0) return SysMsg(playerid, "Você não tem um rádio."); if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid, "O rádio não está ligado. (/ron)"); new slot; if(sscanf(params, "i", slot)) return SysMsg(playerid, "Use: /rslot [Radio slot 1-3]"); if(slot <= 0) return SysMsg(playerid, "Slot de rádio não pode ser menor do que 1."); if(slot >= 4) return SysMsg(playerid, "Slot de rádio não pode ser maior do que 3."); if(RadioSlotUsed[playerid] == slot) return SysMsg(playerid, "Você já está usando este slot."); RadioSlotUsed[playerid] = slot; RadioFrequency[playerid] = RadioSlot[playerid][slot - 1]; mysql_format(conn, mquery, sizeof(mquery), "UPDATE players SET RadioFrequency = %i, RadioSlotInUse = %i WHERE id = %i", RadioFrequency[playerid], RadioSlotUsed[playerid], SQLID[playerid]); mysql_pquery(conn, mquery); SysMsgF(playerid, "O slot de rádio mudou para %i, que está sintonizado para %i", slot, RadioFrequency[playerid]); //format(gstr, sizeof(gstr), "* %s turns a smaller dial on their radio, switching their radio slot. *", NameRP(playerid)); //ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } CMD:rinfo(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação."); new onoff[4], color[7]; switch(RadioPoweredOn[playerid]) { case 0: { format(onoff, sizeof(onoff), "off"); format(color, sizeof(color), "FF3414"); } case 1: { format(onoff, sizeof(onoff), "on"); format(color, sizeof(color), "18A300"); } } SendClientMessageF(playerid, COLOR_WHITE, "Seu rádio está atualmente {%s}%s{FFFFFF} e está sintonizado para {38C0FF}%i{FFFFFF} MHz no slot %i.", color, onoff, RadioFrequency[playerid], RadioSlotUsed[playerid]); SendClientMessageF(playerid, COLOR_WHITE, "Os seus slots de rádio estão atualmente configurados para as seguintes frequências: Slot 1: %i, Slot 2: %i e slot 3: %i.", RadioSlot[playerid][0], RadioSlot[playerid][1], RadioSlot[playerid][2]); return true; } CMD:ron(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(RadioPoweredOn[playerid] == 1) return SysMsg(playerid,"Seu rádio já está ligado. (/roff)"); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação."); RadioPoweredOn[playerid] = 1; MySQLUpdateInt(SQLID[playerid], "RadioPower", RadioPoweredOn[playerid], "players"); SysMsgF(playerid, "Rádio ativado, você está sincronizado na frequencia %i MHz.", RadioFrequency[playerid]); return true; } CMD:roff(playerid, params[]) { if(!Logged{playerid}) return true; if(Inventory[playerid][Radio] == 0) return SysMsg(playerid,"Você não tem um Radio."); if(RadioPoweredOn[playerid] == 0) return SysMsg(playerid,"Seu rádio já está desligado. (/ron)"); if(IsJailed[playerid] == 1 || PlayerImprisoned{playerid}) return SysMsg(playerid,"Seu rádio foi confiscado e será devolvido após a sua libertação."); RadioPoweredOn[playerid] = 0; MySQLUpdateInt(SQLID[playerid], "RadioPower", RadioPoweredOn[playerid], "players"); SysMsg(playerid, "Radio desligado."); return true; } CMD:isafk(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /isafk [ID ou nome do jogador]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(IsAFK{playa}) SendClientMessageF(playerid, COLOR_GREEN, "[AFK] %s esteve AFK por %i minutos. Razão: %s",NameEx(playa),AwayMinutes[playa],AFKReason[playa]); else SendClientMessageF(playerid, COLOR_GREEN, "[AFK] %s não está marcado como AFK.",NameEx(playa)); return true; } CMD:afk(playerid, params[]) { if(!Logged{playerid}) return true; if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER || GetPlayerState(playerid) == 5 || ViewingBuyableCar[playerid] == 1) return SysMsg(playerid, "Você não pode ficar AFK ao dirigir."); if(IsTied[playerid] > 0) return SysMsg(playerid, "Você não pode ir AFK quando amarrado."); if(IsAFK{playerid}) return SysMsg(playerid, "Você já está AFK."); if(IsCuffed[playerid] == 1) return SysMsg(playerid, "Você não pode usar o comando de AFK quando se estiver algemado."); if(IsFrozen[playerid] == 1) return SysMsg(playerid, "Você não pode usar o comando de quando congelado."); if(Dead{playerid}) return SysMsg(playerid, "Você não pode usar o comando de AFK se esta abatido."); new ReasonString[64], Reason[64]; IsAFK{playerid} = true; AwayMinutes[playerid] = 0; if(isnull(params)) { Reason = "Nenhuma"; format(ReasonString,sizeof(ReasonString),"[AFK]\nAway por 0 Minutos"); } else { format(Reason,sizeof(Reason),params); format(ReasonString,sizeof(ReasonString),"[AFK]\nAway por 0 Minutos\nRazão: %s", Reason); } FreezePlayer(playerid); TextDrawShowForPlayer(playerid, URAFK2); TextDrawShowForPlayer(playerid, URAFK3); new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); if(!IsPlayerMasked{playerid}) format(sgstr, sizeof(sgstr), "[AFK] Um jogador próximo agora esta AFK: %s(%i) [Razão: %s]", NameEx(playerid), playerid, Reason); else format(sgstr, sizeof(sgstr), "[AFK] Um jogador próximo agora esta AFK: %s [Razão: %s]", NameRP(playerid), Reason); ProxDetector(20.0, playerid, sgstr, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN); AFKReason[playerid] = Reason; if(IsPlayerMasked{playerid}) AFK_Label[playerid] = CreateDynamic3DTextLabel(ReasonString, COLOR_GREEN, x, y, z+0.5, 20.0, playerid, INVALID_VEHICLE_ID, 1, GetPlayerVirtualWorld(playerid), -1, -1, 20.0); else AFK_Label[playerid] = CreateDynamic3DTextLabel(ReasonString, COLOR_GREEN, x, y, z, 20.0, playerid, INVALID_VEHICLE_ID, 1, GetPlayerVirtualWorld(playerid), -1, -1, 20.0); if(ADuty[playerid] == 1) { ADuty[playerid] = 0; SetPlayerColor(playerid, 0xFFFFFF00); if(UsingPaint{playerid}) cmd_paint(playerid); SysMsg(playerid,"Admin Duty foi desativado automaticamente desde você esta AFK."); } return true; } CMD:volta(playerid) { if(!Logged{playerid}) return true; if(!IsAFK{playerid}) return SysMsg(playerid, "Você não está afk.") && DeleteAFKLabel(playerid); printf("[Cmd] %s Não esta mais AFK. (%i:%s)",NameEx(playerid), AwayMinutes[playerid], AFKReason[playerid]); if(!IsPlayerMasked{playerid}) format(gstr, sizeof(gstr), "[AFK] Um jogador nas proximidades não esta mais AFK: %s(%i). Ele esteve ausente por %i minutos. [Razão: %s]", NameEx(playerid), playerid, AwayMinutes[playerid], AFKReason[playerid]); else format(gstr, sizeof(gstr), "[AFK] Um jogador nas proximidades não é mais AFK: %s. Ele esteve ausente por %i minutos. [Razão: %s]", NameRP(playerid), AwayMinutes[playerid], AFKReason[playerid]); ProxDetector(20.0, playerid, gstr, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN, COLOR_GREEN); DeleteAFKLabel(playerid); UnFreezePlayer(playerid); ShowInfoText(playerid, " ", 100); if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) RemovePlayerFromVehicle(playerid); TextDrawHideForPlayer(playerid, URAFK2); TextDrawHideForPlayer(playerid, URAFK3); return true; } CMD:verlistadonates(playerid, params[]) { if(!Logged{playerid}) return true; new count = 0; gstr[0] = EOS; foreach(new i: Player) { if(Logged{i} && IsDonator[i] > 0) { count ++; format(tgstr, sizeof(tgstr), "%s (ID %i) - Level %i\n", NameEx(i), i, IsDonator[i]); strcat(gstr, tgstr); } } format(tgstr, sizeof(tgstr), "Lista de jogadores doa online (%i Donates)", count); ShowMessage(playerid, tgstr, gstr, "Ok"); return true; } CMD:ajuda(playerid, params[])//traduzir { if(!Logged{playerid}) return true; UnlockAchievement(playerid, 10); if(isnull(params)) { SendClientMessage(playerid, COLOR_LIGHTGREEN, "GreenSide Roleplay Ajuda - Use: /ajuda [Opção]"); SendClientMessage(playerid, COLOR_WHITE, "Opções: Geral, Chat, Facção, Negocio, Casa, Motel, Furniture, Veiculo, Trabalho, Pesca, Celular, Crate, Donate, Banco, Helper"); return true; } if(strcmp("Geral", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Comandos Gerais: /pagar /reportar /animlist /entrar /sair /admins /ip /hora (/afk /voltar /isafk) /an(anuncio) /comprarroupas /stats /dar"); SendClientMessage(playerid,COLOR_YELLOW,"/comprarlevel /comprar /comprarcomida /banco /escrevernota /inventario /usarmuni /beber /comprarbilhete /aposta /comprararmaskill /conquistas /verlistadonates"); SendClientMessage(playerid,COLOR_YELLOW,"/pm /forum /anuncioprivado /vender /cancelarvenda /celularinfo /velocimetro /tentar /mostrarchaves /ame /fcumprimentar /aparencia /versao(/uptime)"); SendClientMessage(playerid,COLOR_YELLOW,"/descrever /animegrito /idade /shake /beijar /faconline /mudarspawn /helpers /meuadminrecord /boombox /boomboxid"); SendClientMessage(playerid,COLOR_YELLOW,"/sos /cancelarassistencia /cancelartaxi /revistar /ultimavezonline /contamaster(/ma) /characters"); } else if(strcmp("Crate", params, true) == 0) return cmd_caixa(playerid, "Ajuda"); else if(strcmp("Chats", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Comandos de bate-papo: Global OOC /o, Local OOC /b, Sussurro /w, Gritar /s, Facção /f, Baixo /baixo [RADIO: /r /lr(Falar baixo) /rfreq /ron /roff /rinfo /rslot]"); SendClientMessage(playerid,COLOR_YELLOW,"Toggle Chats: /togb /toganuncios /tognews"); } else if(strcmp("Faccao", params, true) == 0 || strcmp("Facçao", params, true) == 0 || strcmp("Faccão", params, true) == 0 || strcmp("Facção", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Comandos de Facção: /skin /members /mostrarcracha /fanuncio /fcars /ultimodirigido /togf"); if(FactionRank[playerid] >= FACTIONS[Faction[playerid]][FactionLeaderRank]) SendClientMessage(playerid,COLOR_YELLOW,"Comandos Leader: /fpagar /fsave /contratarfac /rebaixarrank /promover /despedir /togglef (globally tog fchat) /setsubrank /frespawn /setfmotd /setrank(Rank dos veiculos)"); if(FactionRank[playerid] >= FACTIONS[Faction[playerid]][FactionUberLeaderRank]) SendClientMessage(playerid,COLOR_YELLOW,"Apenas Leader: /setrankname /setspawnpoint /removespawnpoint /fsaque"); if(Faction[playerid] == FACTION_COP) { SendClientMessage(playerid, COLOR_WHITE, "PD comandos: /duty /(un)cuff /jail /detain /taser /fine /psa /rb(/roadblock) /removeRB /wanted /swat /stinger"); SendClientMessage(playerid, COLOR_WHITE, "/find /drag /forcein /cases /ram /backup /bkcancel /removermascara /speed /pticket /impound /laser /setunit /togunit"); SendClientMessage(playerid, COLOR_WHITE, "/mdc /grantweaponlicense /revokeweaponlicense /revokelicense /viewimpounds /siren /gunrack /addsiren"); SendClientMessage(playerid, COLOR_WHITE, "/prison /editprison /releaseprisoner /celldoor /prisoners /pan /fecharpdoor"); } else if(Faction[playerid] == FACTION_SACFD) { SendClientMessage(playerid, COLOR_WHITE, "SACFD comandos: /duty /siren /fheal /rb /pager /pagermsg /heal /detox"); SendClientMessage(playerid, COLOR_WHITE, "SACFD comandos: /rescue /drag /cut /ram /backup /bkCancelar"); SendClientMessage(playerid, COLOR_WHITE, "SACFD comandos: /equip /ladder /scba /smask /firehat /stretcher"); } else if(Faction[playerid] == FACTION_NEWS) { SendClientMessage(playerid, COLOR_WHITE, "San Andreas News comandos: /duty /news /interview /endinterview /ichat /checkweather /starttalkshow /endtalkshow /toglines"); SendClientMessage(playerid, COLOR_WHITE, "/acceptcaller /endcall /denycaller /chamarers /tchat"); } else if(Faction[playerid] == FACTION_TRUCKING) SendClientMessage(playerid, COLOR_WHITE, "Elite Trucking comandos: /checkfuel /deliverfuel /supplyfuel /endfueldelivery /truck /tlon /tloff /detach /tow /deliverstock"); else if(Faction[playerid] == FACTION_PROP) SendClientMessage(playerid, COLOR_WHITE, "Property comandos: /reloadhouses /reloadbizz /addp"); } else if(strcmp("negocio", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Bizz comandos: /buybizz /venderbizz /mybizz /fechar /enterfee /collectearnings /requeststock /bizzmusic"); SendClientMessage(playerid, COLOR_YELLOW, "Bizz Manager comandos: /addmanager /removemanager /viewmanagers /manageactors /badvert"); } else if(strcmp("casa", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"House comandos: /buyhouse /vendermyhouse /minhascasas /fechar /escrevernota /batenaporta /housestore /houseget /houseview /housemusic"); SendClientMessage(playerid,COLOR_YELLOW,"House Guests: /movein /moveout /evictguest /light"); } else if(strcmp("Motel", params, true) == 0) SendClientMessage(playerid,COLOR_YELLOW,"Comandos do motel: /alugarquarto /devolverquarto /estenderaluguel"); else if(strcmp("Furniture", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Furniture comandos: /placef /selectf /selectflist /removef /removeallf /pickupallf /furniturecount /furniturelimit"); SendClientMessage(playerid,COLOR_YELLOW,"Furniture comandos: /reloadmyfurniture /pagarfurn /guestfurnish /buyf /searchf"); } else if(strcmp("Veiculo", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Vehicle comandos: /eon(/engineon) /moff(/engineoff) /refuel /usargalao/enchergalao /esvaziartanque /rw /trunk /eject /engineinfo"); SendClientMessage(playerid,COLOR_YELLOW,"Vehicle comandos: /luzes /vluzes /capo /trocaroleo /reparar /mod /recuperarveiculo /removeplate"); SendClientMessage(playerid,COLOR_YELLOW,"Vehicle Ownership: /fechar /savecar /meuscarros /(set)forsale /removeranuncio"); SendClientMessage(playerid,COLOR_YELLOW,"Shared Vehicle: /removerchaves /darchave"); } else if(strcmp("trabalho", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Job comandos: /pegartrabalho /deixartrabalho, Side Jobs: /jobs"); if(Job[playerid] == JOB_MECHANIC) SendClientMessage(playerid, COLOR_WHITE, "Mechanic: /spray /reparar /nitro /hyd /mecanicochamadas /limparchamadamecanica"); else if(Job[playerid] == JOB_MAINTENANCE) SendClientMessage(playerid, COLOR_WHITE, "Maintenance Worker: /trabalho /checklitterbag /emptylitterbag /picklitter"); else if(Job[playerid] == JOB_TAXI) SendClientMessage(playerid, COLOR_WHITE, "Taxi Driver: /trabalho /meteron /meteroff /oferecertarifa /cancelartaximetro /atualizarmapa /taximetro /meutaximetro"); else if(Job[playerid] == JOB_DRUGDEALER) SendClientMessage(playerid, COLOR_WHITE, "Drug Dealer: /comprardrogas"); } else if(strcmp("Pesca", params, true) == 0) SendClientMessage(playerid,COLOR_YELLOW,"Fishing comandos: /fish /venderfish /peixes /putback /putallVoltar"); else if(strcmp("Celular", params, true) == 0) { SendClientMessage(playerid,COLOR_YELLOW,"Phone comandos: /chamar(/discar) /sms(/sms) /pickup(/p) /finalizar(/h) /phoneoff(/coff) /phoneon(/con) /celularinfo(/cinfo)"); SendClientMessage(playerid,COLOR_YELLOW,"Phone comandos: /ccarregar /chamarback /resms(/respondersms) /caltofalante /celular /lp /celularmostrar"); } else if(strcmp("Doador", params, true) == 0) { if(IsDonator[playerid] == 0) return SysMsg(playerid,"You are not a Donator."); SendClientMessage(playerid,COLOR_YELLOW,"Donator comandos: /TogOOC /TogGold /mudarevdonate"); SendClientMessage(playerid,COLOR_YELLOW,"Ignore comandos: /togpm /pmignorados"); } else if(strcmp("Banco", params, true) == 0) SendClientMessage(playerid,COLOR_YELLOW,"Banking & Money comandos: /banco /atm /asscheque /cheques /depositarcheque"); else if(strmatch("Helper", params)) { if(IsHelper{playerid}) { SendClientMessage(playerid, COLOR_YELLOW,"Helper comandos: /assistencias /fassistencia(Para finalizar) /requestadmin /freeze /unfreeze /delv /vspec "); SendClientMessage(playerid, COLOR_YELLOW,"Helper comandos: /namechanges /confirmnome /reefer /toghmsg /hc /toghchat"); } else return SysMsg(playerid, "Você precisa ser Helper para entrar nesta sessão."); } return true; } CMD:forum(playerid) { if(!Logged{playerid}) return true; SendClientMessage(playerid, COLOR_WHITE, "Greenside Roleplay - Forum: http://greensiderp.com/forum/");//parei aqui return true; } CMD:players(playerid) { if(!Logged{playerid}) return true; SendClientMessageF(playerid, COLOR_WHITE, "Players Online: %i (Max %i) | NPC's Online: 1 | Veiculos: %i (Max %i) | Veículos com Dono %i (Max %i)", GetOnlinePlayerCount(), MAX_PLAYERS - 1, GetVehiclePoolSize(), MAX_VEHICLES, GetOwnedVehicleCount(), MAX_BUYVEHS); return true; } CMD:actors(playerid) { if(!IsPlayerAdminLevelOK(playerid, 1)) return true; SendClientMessageF(playerid, COLOR_WHITE, "%i actores atualmente estão no servidor.", GetActorPoolSize()); return true; } CMD:adnubs(playerid) return cmd_admins(playerid); CMD:admins(playerid) { if(!Logged{playerid}) return true; new aduty[38], acount = 0, alist[MAX_PLAYERS][2]; foreach(new i: Player) { if(Logged{i} && AdminLevel[i] >= 1) { if(AdminHidden[i] && !IsPlayerAdminLevelOK(playerid, 1)) continue; if(MasterAccount[i] == 174) //t0mbXD master account { alist[acount][0] = i; alist[acount][1] = 6; acount ++; continue; } if(AdminLevel[i] == 1) { alist[acount][0] = i; alist[acount][1] = 1; acount ++; continue; } if(AdminLevel[i] == 2) { alist[acount][0] = i; alist[acount][1] = 2; acount ++; continue; } if(AdminLevel[i] == 3) { alist[acount][0] = i; alist[acount][1] = 3; acount ++; continue; } if(AdminLevel[i] == 4) { alist[acount][0] = i; alist[acount][1] = 4; acount ++; continue; } } } if(acount == 0) return SendClientMessage(playerid, COLOR_SIGN, "Atualmente, não há Administradores on-line."); SortDeepArray(alist, 1, .order = SORT_DESC); new i; SendClientMessage(playerid, COLOR_WHITE, "Admins Online:"); for(new count = 0; count < acount; count++) { i = alist[count][0]; switch(ADuty[i]) { case 0: format(aduty, sizeof(aduty), "Status: {FF0000}In Roleplay"); case 1: format(aduty, sizeof(aduty), "Status: {4BB74C}Administrando"); case 2: format(aduty, sizeof(aduty), "Status: {7C0000}Não quer ser pertubado"); } if(IsAssisting[i] != -1) format(aduty, sizeof(aduty), "Status: {4BB74C}Dando assistencia"); if(IsAFK{i}) format(aduty, sizeof(aduty), "Status: {FF6600}Away From Keyboard (AFK)"); if(AdminHidden[i]) format(aduty, sizeof(aduty), "Status: {636A76}Escondido"); if(alist[count][1] == 6) { SendClientMessageF(playerid, COLOR_SIGN, "Server Owner: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty); continue; } if(alist[count][1] == 1) { SendClientMessageF(playerid, COLOR_SIGN, "Trial Administrator: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty); continue; } if(alist[count][1] == 2) { SendClientMessageF(playerid, COLOR_SIGN, "Administrator: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty); continue; } if(alist[count][1] == 3) { SendClientMessageF(playerid, COLOR_SIGN, "Lead Administrator: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty); continue; } if(alist[count][1] == 4) { SendClientMessageF(playerid, COLOR_SIGN, "Management: %s (%s, ID %i) %s", NameEx(i), MasterAccountName[i], i, aduty); continue; } } return true; } CMD:helpers(playerid, params[]) { if(!Logged{playerid}) return true; new hcount = 0; SendClientMessage(playerid, COLOR_WHITE, "Helpers online:"); foreach(new i: Player) { if(Logged{i} && IsHelper{i}) { hcount ++; SendClientMessageF(playerid, COLOR_SIGN, "{09B300}%s {FFFFFF}(ID %i)", NameEx(i), i); } } if(hcount == 0) return SendClientMessage(playerid, COLOR_SIGN, "Atualmente, não há Helpers on-line."); return true; } CMD:mudarmeunome(playerid, params[])//mudarmeunome { if(!Logged{playerid}) return true; gstr[0] = EOS; new count = 0; foreach(new i: Player) if(IsPlayerAdminLevelOK(i,1) || IsHelper{i}) count ++; if(count == 0) return SysMsg(playerid, "É necessário que um administrador confirme sua troca de nome, não há nenhum online no momento."); if(Cash[playerid] < 25000) return SysMsg(playerid,"Você precisa de $25,000 para alterar seu nome."); strcat(gstr, "{FFFFFF}Para mudar seu nome, você deve ter o dinheiro exigido."); strcat(gstr, "\nTambém é possível limpar seu registro criminal junto com uma alteração para fins CK."); strcat(gstr, "\n\nMude seu nome\t{9BE27F}$25,000\n{FFFFFF}Limpar Registro Criminal\t{9BE27F}Extra $25,000{FFFFFF}"); strcat(gstr, "\n\nTodas as alterações são confirmadas por um administrador e podem ser recusadas se qualquer Administrador considerar que a alteração não é adequada."); Dialog_Show(playerid, NamechangeRequest1, DIALOG_STYLE_MSGBOX, "{FFEEA7}Mudar Nome", gstr, "Próximo", "Cancelar"); return true; } CMD:cancelartrocadenome(playerid, params[])//cancelartrocadenome { if(!Logged{playerid}) return true; if(WantsNameChange[playerid][0] == 0) return SysMsg(playerid,"Você não tem nenhum pedido para cancelar"); SendClientMessage(playerid, COLOR_DARKBLUE, "Você cancelou seu pedido de mudança de nome."); format(gstr, sizeof(gstr),"* %s cancelou seu nome mudado para %s.", NameEx(playerid), NameChange[playerid]); AdminBroadcast(gstr, 1); format(gstr, sizeof(gstr), "Mudança de nome cancelada para %s", NameChange[playerid]); AdminLog(playerid, SQLID[playerid], GetName(playerid), gstr); WantsNameChange[playerid][1] = 0; WantsNameChange[playerid][0] = 0; NameChange[playerid][0] = EOS; return true; } CMD:ultimavezonline(playerid, params[]) { if(!Logged{playerid}) return true; if(isnull(params)) return SysMsg(playerid,"Use: /ultimavezonline [Nome_Sobrenome]"); mysql_format(conn, mquery, sizeof(mquery), "SELECT LastLogin, LastLogout, Name FROM players WHERE Name = '%e'", params); mysql_pquery(conn, mquery, "LastOnlineCheck", "d", playerid); return true; } CMD:billcosby(playerid) { if(!Logged{playerid}) return true; GameTextForPlayer(playerid, "~w~zip ~r~zop ~b~zoopity ~y~bop!", 5000, 11); return true; } CMD:bazinga(playerid) { if(!Logged{playerid}) return true; PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/bazinga.mp3"); return true; } CMD:valero(playerid) { if(!Logged{playerid}) return true; PlayAudioStreamForPlayer(playerid, "http://redcountyrp.com/audio/valero.mp3"); return true; } CMD:boombox(playerid, params[]) { if(!Logged{playerid}) return true; if(IsBoomBanned[playerid] == 1) return SysMsg(playerid, "Você esta banido de usar boombox"); if(GetPlayerVirtualWorld(playerid) != 0 || GetPlayerInterior(playerid) != 0) return SysMsg(playerid, "Você só pode colocar uma boombox fora."); if(Inventory[playerid][Boombox] >= 1) { if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você precisa estar a pé para executar este comando."); new Float:pPos[4]; GetPlayerPos(playerid, pPos[0], pPos[1], pPos[2]); pPos[3] = GetXYInFrontOfPlayer(playerid, pPos[0], pPos[1], 1.0); foreach(new bm: Player) { if(Boomboxes[bm][BoomOID] >= 1) { if(IsPlayerInRangeOfPoint(playerid, 80, Boomboxes[bm][BoomPos][0], Boomboxes[bm][BoomPos][1], Boomboxes[bm][BoomPos][2])) return SysMsg(playerid, "Você está muito perto de outra boombox, tente em outro lugar."); else if(Boomboxes[bm][BoomOID] == SQLID[playerid]) return SysMsg(playerid, "Você já tem uma boombox colocada, vá buscá-la."); } } if(Inventory[playerid][Boombox] == 1) { Boomboxes[playerid][BoomObj] = CreateDynamicObject(2102, pPos[0], pPos[1], pPos[2] - 1.0, 0, 0, pPos[3]); Boomboxes[playerid][BoomRange] = 15; } else if(Inventory[playerid][Boombox] == 2) { Boomboxes[playerid][BoomObj] = CreateDynamicObject(2226, pPos[0], pPos[1], pPos[2] - 1.0, 0, 0, pPos[3]); Boomboxes[playerid][BoomRange] = 38; } Boomboxes[playerid][BoomOID] = SQLID[playerid]; Boomboxes[playerid][BoomPos][0] = pPos[0]; Boomboxes[playerid][BoomPos][1] = pPos[1]; Boomboxes[playerid][BoomPos][2] = pPos[2]; Boomboxes[playerid][BoomPos][3] = pPos[3]; Boomboxes[playerid][BoomStation][0] = 0; Boomboxes[playerid][BoomIsPlaying] = false; Boomboxes[playerid][BoomType] = Inventory[playerid][Boombox]; Inventory[playerid][Boombox] = 0; OnePlayAnim(playerid,"BOMBER","BOM_Plant_Crouch_In", 4.0, 0, 0, 0, 0, 0); Boomboxes[playerid][BoomArea] = CreateDynamicSphere(Boomboxes[playerid][BoomPos][0], Boomboxes[playerid][BoomPos][1], Boomboxes[playerid][BoomPos][2], Boomboxes[playerid][BoomRange], 0); format(gstr, sizeof(gstr), "* %s coloca uma boombox no chão. *", NameRP(playerid)); SetPlayerChatBubble(playerid, gstr, COLOR_EMOTE, 20, 7000); SendClientMessage(playerid, COLOR_YELLOW, "Você colocou uma boombox no chão, use /boombox para usar o boombox."); Dialog_Show(playerid, BoomboxMenu, DIALOG_STYLE_LIST, "Boombox Menu", "Tocar Nova\n \nParar\nPegar", "Selecionar", "Fechar"); } else if(IsPlayerInRangeOfPoint(playerid, 3.0, Boomboxes[playerid][BoomPos][0], Boomboxes[playerid][BoomPos][1], Boomboxes[playerid][BoomPos][2])) { if(strlen(Boomboxes[playerid][BoomStation]) >= 6) Dialog_Show(playerid, BoomboxMenu, DIALOG_STYLE_LIST, "Boombox Menu", "Toca uma nova estação\nToca Estação anterios\nParar\nPegar", "Selecionar", "Fechar"); else Dialog_Show(playerid, BoomboxMenu, DIALOG_STYLE_LIST, "Boombox Menu", "Tocar uma estação\n \nParar\nPegar", "Selecionar", "Fechar"); } else return SysMsg(playerid, "Você não tem boombox."); return true; } CMD:fogueiraid(playerid)//fogueiraid { if(!Logged{playerid}) return true; if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG); new Float:x, Float:y, Float:z; foreach(new i: Player) { if(CampfirePlaced[i] != INVALID_OBJECT_ID) { GetDynamicObjectPos(CampfirePlaced[i], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) { SendClientMessageF(playerid, COLOR_WHITE, "Dono da Fogueira: %s (ID %i)", NameEx(i), i); return true; } } } SysMsg(playerid, "Não foi possível encontrar fogueiras perto de você."); return true; } CMD:removerfogueira(playerid, params[])//removerfogueira { if(!Logged{playerid}) return true; if(!IsPlayerAdminLevelOK(playerid, 1)) return SysMsg(playerid, AUTHMSG); new playa = -1; if(sscanf(params, "u", playa)) return SysMsg(playerid, "Use: /removerfogueira [playerID ou nome]"); if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(CampfirePlaced[playa] == INVALID_OBJECT_ID) return SysMsg(playerid, "Este jogador não colocou uma fogueira."); DestroyDynamicObjectEx(CampfirePlaced[playa], "CampfirePlaced[playa]"); CampfirePlaced[playa] = INVALID_OBJECT_ID; SendClientMessageF(playerid, COLOR_RED, "Você removeu a fogueira de %s.", NameEx(playa)); SendClientMessageF(playa, COLOR_RED, "Admin %s removeu sua fogueira.", NameEx(playerid)); return true; } CMD:fogueira(playerid)//fogueira { if(!Logged{playerid}) return true; if(Inventory[playerid][Logs] == 0) return SysMsg(playerid, "Você não tem madeiras."); if(IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Você não pode usar este comando em veiculos."); if(CampfirePlaced[playerid] == INVALID_OBJECT_ID) { if(GetPlayerInterior(playerid) != 0 && GetPlayerVirtualWorld(playerid) != 0) return SysMsg(playerid, "Você só pode criar fogueiras ao ar livre."); new Float:x, Float:y, Float:z; foreach(new i: Player) { if(CampfirePlaced[i] != INVALID_OBJECT_ID) { GetDynamicObjectPos(CampfirePlaced[i], x, y, z); if(IsPlayerInRangeOfPoint(playerid, 20.0, x, y, z)) return SysMsg(playerid, "Você está muito perto de uma fogueira separada."); } } new Float:a; GetPlayerPos(playerid, x, y, z); a = GetXYInFrontOfPlayer(playerid, x, y, 1.0); CampfirePlaced[playerid] = CreateDynamicObject(19632, x, y, z - 1.0, 0, 0, a); OnePlayAnim(playerid, "CARRY", "putdwn", 4,0,0,0,0,0); SetPlayerChatBubble(playerid, "* Coloca alguns pequenos troncos no chão, ordenando-os em uma pilha limpa antes de acendê-los em chamas. *", COLOR_EMOTE, 15.0, 6000); return true; } else { new Float:x, Float:y, Float:z; GetDynamicObjectPos(CampfirePlaced[playerid], x, y, z); if(!IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) return SysMsg(playerid, "Você não está perto da sua fogueira."); DestroyDynamicObjectEx(CampfirePlaced[playerid], "CampfirePlaced[playerid] 0"); CampfirePlaced[playerid] = INVALID_OBJECT_ID; OnePlayAnim(playerid, "CARRY", "liftup", 4,0,0,0,0,0); SetPlayerChatBubble(playerid, "* Chega ao chão e apaga sua fogueira antes de pegá-la. *", COLOR_EMOTE, 15.0, 6000); return true; } } CMD:responder(playerid, params[])//responder { if(!Logged{playerid}) return SysMsg(playerid,"Você deve estar logado para responder."); if(MathsStarted == 0) return SysMsg(playerid,"Não há dúvida de responder."); if(isnull(params)) return SysMsg(playerid,"Use: /responder [Minha questão]"); if(!IsNumeric(params)) return SysMsg(playerid,"Sua resposta deve ser um número."); new MyAnswer = strval(params); if(MyAnswer == MathsAnswer) { GivePlayerCash(playerid, 1000); format(gstr, sizeof(gstr), "%s foi o primeiro a responder corretamente e ganhou $1000. A resposta era %i.", NameEx(playerid), MathsAnswer); SendClientMessageToAllLogged(COLOR_LIGHTRED, gstr); MathsStarted = 0; MathsAnswer = 0; } else return SysMsg(playerid,"Essa resposta está errada."); return true; } CMD:fecharporta(playerid, params[])//fecharporta { if(IsInHouseID[playerid] == -1) return SysMsg(playerid, "Você deve estar em uma casa para usar esse comando."); if(IsHouseOwner(playerid, IsInHouseID[playerid]) || IsHouseGuestSQL(playerid) == HouseData[IsInHouseID[playerid]][HouseSQLID]) { new Float:pos[3], h = IsInHouseID[playerid]; for(new x = 0; x < MAX_HFURNITURE; x++) { if(IsValidDoorObject(HouseData[h][FurnModel][x])) { GetDynamicObjectPos(HouseData[h][FurnObject][x], pos[0], pos[1], pos[2]); if(IsPlayerInRangeOfPoint(playerid, 2.0, pos[0], pos[1], pos[2])) { HouseData[h][DoorLocked][x] = !HouseData[h][DoorLocked][x]; if(HouseData[h][DoorLocked][x]) SysMsg(playerid, "Você fechou a porta."); else SysMsg(playerid, "Você abriu a porta."); mysql_pqueryf(conn, "UPDATE hfurniture SET Locked = %i WHERE id = %i", HouseData[h][DoorLocked][x], HouseData[h][FurnSQLID][x]); return true; } } } } else SysMsg(playerid, "Você não pode fechar esta porta."); return true; } CMD:trancar(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] != -1) { new h = IsInHouseID[playerid]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuestSQL(playerid) == HouseData[h][HouseSQLID]) { if(HouseData[h][HouseLocked] == 1) { HouseData[h][HouseLocked] = 0; MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses"); format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s{FFFFFF}, anybody may enter this residence until it is locked again.",HouseData[h][HouseDescription]); ShowInfoText(playerid, "~Y~House Unlocked!", 3000); return true; } else { HouseData[h][HouseLocked] = 1; MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses"); format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} the doors of {BCDCBC}%s.",HouseData[h][HouseDescription]); ShowInfoText(playerid, "~Y~House Locked!", 3000); return true; } } } else { for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuestSQL(playerid) == HouseData[h][HouseSQLID]) { if(HouseData[h][HouseLocked] == 1) { HouseData[h][HouseLocked] = 0; MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses"); format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s{FFFFFF}, anybody may enter this residence until it is locked again.",HouseData[h][HouseDescription]); ShowInfoText(playerid, "~Y~House Unlocked!", 3000); return true; } else { HouseData[h][HouseLocked] = 1; MySQLUpdateInt(HouseData[h][HouseSQLID], "HouseLocked", HouseData[h][HouseLocked], "houses"); format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),HouseData[h][HouseDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} the doors of {BCDCBC}%s.",HouseData[h][HouseDescription]); ShowInfoText(playerid, "~Y~House Locked!", 3000); return true; } } else return SysMsg(playerid, "You don't own or live in this house."); } } } if(IsInBizzID[playerid] >= 1) { new bizz = IsInBizzID[playerid]; if(BizzData[bizz][BizzOwnerSQLID] == SQLID[playerid] || IsBizzMod(playerid, bizz)) { if(BizzData[bizz][BizzType] == BIZZ_TYPE_STATIC && BizzData[bizz][IsSpecial] == 0) return SysMsg(playerid,"This business cannot be entered."); if(BizzData[bizz][BizzLocked]) { BizzData[bizz][BizzLocked] = false; MySQLUpdateInt(BizzData[IsInBizzID[playerid]][BizzSQLID], "Locked", BizzData[bizz][BizzLocked], "bizz"); SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s.",BizzData[bizz][BizzDescription]); format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),BizzData[bizz][BizzDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { BizzData[bizz][BizzLocked] = true; MySQLUpdateInt(BizzData[bizz][BizzSQLID], "Locked", BizzData[bizz][BizzLocked], "bizz"); SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} {BCDCBC}%s.",BizzData[bizz][BizzDescription]); format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),BizzData[bizz][BizzDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } else { for(new bz = 0; bz < MAX_BIZZ; bz++) { if(IsPlayerInRangeOfPoint(playerid, 1.5, BizzData[bz][oPosX], BizzData[bz][oPosY], BizzData[bz][oPosZ])) { for(new b = 0; b < MAX_BIZZ_PER_PLAYER; b++) { if(PlayerBizzID[playerid][b] == bz || IsBizzMod(playerid, bz)) { if(BizzData[bz][BizzType] == BIZZ_TYPE_STATIC && BizzData[bz][IsSpecial] == 0) return SysMsg(playerid,"This business cannot be entered."); if(BizzData[bz][BizzLocked]) { BizzData[bz][BizzLocked] = false; MySQLUpdateInt(BizzData[bz][BizzSQLID], "Locked", BizzData[bz][BizzLocked], "bizz"); SendClientMessageF(playerid,COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} {BCDCBC}%s.",BizzData[bz][BizzDescription]); format(sgstr, sizeof(sgstr),"* %s unlocks the door of %s. *",NameRP(playerid),BizzData[bz][BizzDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { BizzData[bz][BizzLocked] = true; MySQLUpdateInt(BizzData[bz][BizzSQLID], "Locked", BizzData[bz][BizzLocked], "bizz"); SendClientMessageF(playerid,COLOR_WHITE, "You have {8B0000}locked{FFFFFF} {BCDCBC}%s.",BizzData[bz][BizzDescription]); format(sgstr, sizeof(sgstr),"* %s locks the door of %s. *",NameRP(playerid),BizzData[bz][BizzDescription]); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } } } } if(IsPlayerInAnyVehicle(playerid)) { new veh = GetPlayerVehicleID(playerid); if(Locked{veh}) { if(IsOwnedCar(veh)) { if(VehicleData[veh][VehicleOwnerSQLID] == SQLID[playerid] || VehicleBorrowKey[playerid] != 0 && VehicleBorrowKey[playerid] == VehicleData[veh][VehSQLID]) { Locked{veh} = false; ToggleVehicleLock(VehicleData[veh][IdVehicle], false); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); MySQLUpdateInt(VehicleData[veh][VehSQLID], "IsLocked", 0, "vehicles"); ShowInfoText(playerid, "~B~Doors Unlocked!", 3000); SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Unlocked."); format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(veh)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else return SysMsg(playerid, "You do not have keys for this vehicle."); } else if(IsRentalCar(veh)) { if(RentalCar[playerid] != veh) return SysMsg(playerid, "You do not have the keys to this rental vehicle."); Locked{veh} = false; ToggleVehicleLock(RentalData[veh][CarID], false); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); ShowInfoText(playerid, "~B~Doors Unlocked!", 3000); SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Unlocked."); format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(veh)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else if(IsFactionVehicle(veh)) { new faction = IsFactionVehicle(veh); if(Faction[playerid] != faction && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"You cannot edit this faction vehicle."); if(FactionRank[playerid] < FVehicleData[veh][FVMinRank]) return SysMsg(playerid, "You are not the correct rank to edit this faction vehicle."); ToggleVehicleLock(FVehicleData[veh][FactionVehID], false); Locked{veh} = false; SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been unlocked."); ShowInfoText(playerid,"~B~Doors Unlocked!",3000); MySQLUpdateInt(FVehicleData[veh][FVSQLID], "Locked", 0, "fveh"); format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(FVehicleData[veh][FactionVehID])); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } else { if(IsOwnedCar(veh)) { if(VehicleData[veh][VehicleOwnerSQLID] == SQLID[playerid] || VehicleBorrowKey[playerid] != 0 && VehicleBorrowKey[playerid] == VehicleData[veh][VehSQLID]) { Locked{veh} = true; ToggleVehicleLock(veh, true); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); MySQLUpdateInt(VehicleData[veh][VehSQLID], "IsLocked", 1, "vehicles"); ShowInfoText(playerid, "~B~Doors Locked!", 3000); SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Locked."); format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(veh)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else return SysMsg(playerid, "You do not have the keys to this vehicle."); } else if(IsRentalCar(veh)) { if(RentalCar[playerid] != veh) return SysMsg(playerid, "You do not have the keys to this rental vehicle."); Locked{veh} = true; ToggleVehicleLock(RentalData[veh][CarID], true); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); ShowInfoText(playerid, "~B~Doors Locked!", 3000); SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Locked."); format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(veh)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else if(IsFactionVehicle(veh)) { new faction = IsFactionVehicle(veh); if(Faction[playerid] != faction && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "You do not have the keys to this vehicle."); if(FactionRank[playerid] < FVehicleData[veh][FVMinRank]) return SysMsg(playerid, "You are not the correct rank to edit this faction vehicle."); ToggleVehicleLock(FVehicleData[veh][FactionVehID], true); Locked{veh} = true; MySQLUpdateInt(FVehicleData[veh][FVSQLID], "Locked", 1, "fveh"); SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been locked."); ShowInfoText(playerid, "~B~Doors Locked!", 3000); format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(veh)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } else { new v = GetClosestVehicle(playerid); new Float:vPos[3]; GetVehiclePos(v, vPos[0], vPos[1], vPos[2]); if(IsPlayerInRangeOfPoint(playerid, 10.0, vPos[0], vPos[1], vPos[2])) { if(IsOwnedCar(v)) { if(VehicleData[v][VehicleOwnerSQLID] == SQLID[playerid] || VehicleBorrowKey[playerid] != 0 && VehicleBorrowKey[playerid] == VehicleData[v][VehSQLID] || WindowState{v} == WINDOWS_OPEN && VehicleHasWindows(v)) { if(Locked{v}) { Locked{v} = false; ToggleVehicleLock(v, 0); FlashVehicleLights(v); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); MySQLUpdateInt(VehicleData[v][VehSQLID], "IsLocked", 0, "vehicles"); ShowInfoText(playerid,"~B~Doors Unlocked!",3000); if(WindowState{v} == WINDOWS_OPEN && VehicleHasWindows(v)) format(sgstr, sizeof(sgstr),"* %s reaches inside of the %s and unlocks it. *",NameRP(playerid),GetVehicleName(v)); else format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { Locked{v} = true; ToggleVehicleLock(v, 1); FlashVehicleLights(v); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); MySQLUpdateInt(VehicleData[v][VehSQLID], "IsLocked", 1, "vehicles"); ShowInfoText(playerid,"~B~Doors Locked!",3000); if(WindowState{v} == WINDOWS_OPEN && VehicleHasWindows(v)) format(sgstr, sizeof(sgstr),"* %s reaches inside of the %s and locks it. *",NameRP(playerid),GetVehicleName(v)); else format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } else return SysMsg(playerid, "You do not have keys for this vehicle."); } else if(IsRentalCar(v)) { if(RentalCar[playerid] != v) return SysMsg(playerid, "You do not have the keys to this rental vehicle."); if(Locked{v}) { Locked{v} = false; ToggleVehicleLock(RentalData[v][CarID], false); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); FlashVehicleLights(v); ShowInfoText(playerid,"~B~Doors Unlocked!",3000); SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Unlocked."); format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { Locked{v} = true; ToggleVehicleLock(RentalData[v][CarID], true); PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); FlashVehicleLights(v); ShowInfoText(playerid,"~B~Doors Locked!",3000); SendClientMessage(playerid, COLOR_GREEN, "> Vehicle Locked."); format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(v)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } else if(IsFactionCar(v)) { new fveh = IsFactionVehicle(v); if(Faction[playerid] != fveh && !IsPlayerAdmin(playerid)) return SysMsg(playerid, "You do not have the keys to this vehicle."); if(FactionRank[playerid] < FVehicleData[v][FVMinRank]) return SysMsg(playerid, "You cannot edit this faction vehicle."); if(Locked{v}) { ToggleVehicleLock(FVehicleData[v][FactionVehID], false); Locked{FVehicleData[v][FactionVehID]} = false; PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); FlashVehicleLights(v); SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been unlocked."); ShowInfoText(playerid,"~B~Doors Unlocked!",3000); MySQLUpdateInt(FVehicleData[v][FVSQLID], "Locked", 0, "fveh"); format(sgstr, sizeof(sgstr),"* %s pushes a button to unlock their %s. *",NameRP(playerid),GetVehicleName(FVehicleData[v][FactionVehID])); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { ToggleVehicleLock(FVehicleData[v][FactionVehID], true); Locked{FVehicleData[v][FactionVehID]} = true; PlayerPlayNearbySound(playerid, SOUND_LOCK_CAR_DOOR); FlashVehicleLights(v); SendClientMessage(playerid, COLOR_WHITE, "Faction vehicle has been locked."); ShowInfoText(playerid,"~B~Doors Locked!",3000); MySQLUpdateInt(FVehicleData[v][FVSQLID], "Locked", 1, "fveh"); format(sgstr, sizeof(sgstr),"* %s pushes a button to lock their %s. *",NameRP(playerid),GetVehicleName(FVehicleData[v][FactionVehID])); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } } } if(GetPlayerInterior(playerid) == 0) { new m = RentRoom[playerid]; if(IsPlayerInRangeOfPoint(playerid, 3.0, MotelData[m][RoomX], MotelData[m][RoomY], MotelData[m][RoomZ])) { if(MotelData[m][RoomLocked] == 1) { MotelData[m][RoomLocked] = 0; MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel"); format(sgstr, sizeof(sgstr),"* %s unlocks the door of their Motel Room. *",NameRP(playerid)); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} your Motel Room."); ShowInfoText(playerid,"~Y~Room Unlocked!",3000); return true; } else { MotelData[m][RoomLocked] = 1; MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel"); format(sgstr, sizeof(sgstr),"* %s locks the door of their Motel Room. *",NameRP(playerid)); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "You have {8B0000}locked{FFFFFF} your Motel Room."); ShowInfoText(playerid,"~Y~Room Locked!",3000); return true; } } } else { if(IsInMotel[playerid] >= 1) { new m = IsInMotel[playerid]; if(MotelData[m][RoomOwner] == SQLID[playerid]) { if(MotelData[m][RoomLocked] == 1) { MotelData[m][RoomLocked] = 0; MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel"); format(sgstr, sizeof(sgstr),"* %s unlocks the door of their Motel Room. *",NameRP(playerid)); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "You have {4BB74C}unlocked{FFFFFF} your Motel Room."); ShowInfoText(playerid,"~Y~Room Unlocked!",3000); return true; } else { MotelData[m][RoomLocked] = 1; MySQLUpdateInt(m, "RoomLocked", MotelData[m][RoomLocked], "motel"); format(sgstr, sizeof(sgstr),"* %s locks the door of their Motel Room. *",NameRP(playerid)); ProxDetector(15.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "You have {8B0000}locked{FFFFFF} your Motel Room."); ShowInfoText(playerid,"~Y~Room Locked!",3000); return true; } } return SysMsg(playerid, "You are not renting this room."); } } if(IsInPrison(playerid)) { if(Faction[playerid] == FACTION_COP || IsPlayerAdmin(playerid)) { for(new w = 0; w < sizeof(PrisonDoors); w++) { if(IsPlayerInRangeOfPoint(playerid, 1.5, PrisonDoors[w][0], PrisonDoors[w][1], PrisonDoors[w][2])) { if(PrisonDoorsLock[w] == 1) { format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to unlock the door. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "This door has now been {4BB74C}unlocked{FFFFFF}."); PrisonDoorsLock[w] = 0; } else { format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to lock the door. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "This door has now been {8B0000}locked{FFFFFF}."); PrisonDoorsLock[w] = 1; } return true; } if(IsPlayerInRangeOfPoint(playerid, 1.5, PrisonDoors[w][4], PrisonDoors[w][5], PrisonDoors[w][6])) { if(PrisonDoorsLock[w] == 1) { format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to unlock the door. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "This door has now been {4BB74C}unlocked{FFFFFF}."); PrisonDoorsLock[w] = 0; } else { format(sgstr, sizeof(sgstr),"* %s takes a set of keys and uses one to lock the door. *", NameRP(playerid)); ProxDetector(20.0, playerid, sgstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_WHITE, "This door has now been {8B0000}locked{FFFFFF}."); PrisonDoorsLock[w] = 1; } return true; } } } } SysMsg(playerid, "You are not near anything that you can lock."); return true; } CMD:trancargarage(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInGarageID[playerid] != -1) { new g = IsInGarageID[playerid], h = GarageData[g][gHouseID]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuest(playerid) == h) { if(GarageData[g][GarageLocked] == 1) { GarageData[g][GarageLocked] = 0; MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages"); SendClientMessageF(playerid,COLOR_WHITE, "Você {4BB74C}abriu{FFFFFF} sua garagem.", HouseData[h][HouseDescription]); format(gstr, sizeof(gstr),"* %s abre sua garagem. *",NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { GarageData[g][GarageLocked] = 1; MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages"); SendClientMessageF(playerid,COLOR_WHITE, "Você {8B0000}fechou{FFFFFF} sua garagem.", HouseData[h][HouseDescription]); format(gstr, sizeof(gstr),"* %s fecha sua garagem. *",NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } else SysMsg(playerid, "Você não tem acesso a esta garagem."); } else { for(new g = 0; g < MAX_GARAGES; g++) { if(IsPlayerInRangeOfPoint(playerid, 2.0, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ])) { new h = GarageData[g][gHouseID]; if(HouseData[h][HouseOwnerSQLID] == SQLID[playerid] || IsHouseGuest(playerid) == h) { if(GarageData[g][GarageLocked] == 1) { GarageData[g][GarageLocked] = 0; MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages"); SendClientMessageF(playerid,COLOR_WHITE, "Você {4BB74C}abriu{FFFFFF} sua garagem.", HouseData[h][HouseDescription]);//%s format(gstr, sizeof(gstr),"* %s abre sua garagem. *",NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else { GarageData[g][GarageLocked] = 1; MySQLUpdateInt(GarageData[g][gID], "Locked", GarageData[g][GarageLocked], "garages"); SendClientMessageF(playerid,COLOR_WHITE, "Você {8B0000}fechou{FFFFFF} sua garagem.", HouseData[h][HouseDescription]);//%s format(gstr, sizeof(gstr),"* %s trava sua garagem. *",NameRP(playerid)); ProxDetector(15.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } } else SysMsg(playerid, "Você não pode acessar esta garagem."); } } } return true; } CMD:conquistas(playerid, params[]) { Dialog_Show(playerid,AchievementMenu,DIALOG_STYLE_LIST,"Conquistas","Ver minhas conquistas\nVer outras conquistas\nMeu resumo","Ok","Fechar"); return true; } CMD:svo(playerid, params[]) return cmd_setvisibleobjects(playerid, params); CMD:setvisibleobjects(playerid, params[]) { if(isnull(params) || !IsNumeric(params)) return SysMsg(playerid, "Use: /setvisibleobjects [350-1000] *Esse comando alterará a quantidade máxima de objetos mapeados que serão transmitidos para o seu cliente.*"); new objects = strval(params); if(objects > 1000) return SysMsg(playerid, "O limite de objeto não pode ser superior a 1,000."); if(objects < 350) return SysMsg(playerid, "O limite do objeto não pode ser inferior a 350."); if(objects == VisibleObjects[playerid]) return SysMsgF(playerid, "O limite de objeto já está %i.", objects); Streamer_SetVisibleItems(STREAMER_TYPE_OBJECT, objects, playerid); if(objects < VisibleObjects[playerid] && GetPlayerVirtualWorld(playerid) == 0 && GetPlayerInterior(playerid) == 0) Streamer_DestroyAllVisibleItems(playerid, STREAMER_TYPE_OBJECT); Streamer_UpdateEx(playerid, PlayerPosX(playerid), PlayerPosY(playerid), PlayerPosZ(playerid), GetPlayerVirtualWorld(playerid), GetPlayerInterior(playerid)); VisibleObjects[playerid] = objects; mysql_pqueryf(conn, "UPDATE masters SET MaxVisibleObjects = %i WHERE id = %i", VisibleObjects[playerid], MasterAccount[playerid]); SysMsgF(playerid, "Você definiu o limite máximo de objeto visível para %i. Nota: Este limite será ignorado em interiores para garantir que todos os detalhes sejam carregados enquanto estiverem dentro.", VisibleObjects[playerid]); return true; } CMD:hotkeys(playerid) { if(!Logged{playerid}) return true; SendClientMessage(playerid, COLOR_WHITE, "{FFFF82}'~k~~CONVERSATION_YES~'{FFFFFF} pode ser usado como uma alternativa para {44C300}/entrar."); SendClientMessage(playerid, COLOR_WHITE, "{FFFF82}'~k~~CONVERSATION_NO~'{FFFFFF} pode ser usado como uma alternativa para {44C300}/fechar."); SendClientMessage(playerid, COLOR_WHITE, "{FFFF82}'~k~~SNEAK_ABOUT~'{FFFFFF} pode ser usado para descongelar o seu jogador ao entrar em edifícios."); return true; } CMD:cage(playerid, params[])//observar { if(IsPlayerInRangeOfPoint(playerid, 3.0, 249.6434,-169.6998,1017.9922)) { LillyCage{playerid} = !LillyCage{playerid}; if(LillyCage{playerid}) SetPlayerPos(playerid, 248.8951,-167.8426,1018.3791);//in else SetPlayerPos(playerid, 249.6434,-169.6998,1017.9922); //out } return true; } CMD:roof(playerid, params[])//observar { if(!Logged{playerid}) return true; if(Faction[playerid] == FACTION_COP) { if(IsPlayerInRangeOfPoint(playerid,3.0,635.7831,-566.9708,1011.9344)) { SetPlayerPos(playerid,621.417,-570.289,26.1432); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid); TogglePlayerControllable(playerid, 0); } } if(IsPlayerInRangeOfPoint(playerid,3.0,243.210525, 66.328117, 1003.640625)) { SetPlayerPos(playerid,94.300003, 1062.325683, 24.817752); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid); TogglePlayerControllable(playerid, 0); } if(IsPlayerInRangeOfPoint(playerid, 3.0, 678.033081, 1814.505371, -5.632563)) { TogglePlayerControllable(playerid, 0); Streamer_UpdateEx(playerid, 667.4, 1816.2, 10.2, 0, 0); SetPlayerPos(playerid,667.43804931641, 1816.2852783203, 10.272919654846); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid); } return true; } CMD:entrar(playerid, params[]) { if(!Logged{playerid}) return true; new vid = GetPlayerVehicleID(playerid); if(vid == 0) { for(new in = 0; in < MAX_INTERIORS; in++) { if(IsPlayerInRangeOfPoint(playerid, 1.5, Interiors[in][oPosX], Interiors[in][oPosY], Interiors[in][oPosZ]) && GetPlayerVirtualWorld(playerid) == Interiors[in][oVirtualWorld]) { if(Interiors[in][IntFaction] > 0 && Interiors[in][IntFaction] != Faction[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Você não pode entrar."); if(Interiors[in][IntFactionRank] > 0 && Interiors[in][IntFactionRank] > FactionRank[playerid] && !IsPlayerAdmin(playerid)) return SysMsg(playerid,"Seu rank na facção não é suficiente para entrar neste interior."); Teleport(playerid, Interiors[in][iPosX], Interiors[in][iPosY], Interiors[in][iPosZ], Interiors[in][iAngle], Interiors[in][iInteriorID], Interiors[in][iVirtualWorld]); new interiorText[100]; format(interiorText, 100, "~W~"); strcat(interiorText, Interiors[in][InteriorName]); strcat(interiorText, "~N~~R~Escreva /sair para sair do local"); ShowInfoText(playerid, interiorText, 5000); if(Interiors[in][interiorID] == 9 || Interiors[in][interiorID] == 10 || Interiors[in][interiorID] == 11) SendClientMessage(playerid, COLOR_WHITE, "Regra: Faça roleplay quando recolher seu (Payday). Por favor, não corra dentro da prefeitura."); return true; } } for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { if(HouseData[h][HouseLocked] == 1 && ADuty[playerid] != 1) return SysMsgF(playerid, "%s está trancada.",HouseData[h][HouseDescription]); if(strlen(HouseData[h][DoorNoteMessage]) > 1 && HouseData[h][HouseOwnerSQLID] == SQLID[playerid]) { new noteMsg[200]; format(noteMsg,200,"Mensagem: '%s'",HouseData[h][DoorNoteMessage]); ShowMessage(playerid, "Nota na porta", noteMsg, "Done"); mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET DoorNote = '' WHERE id = %i", HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery); HouseData[h][DoorNoteMessage][0] = 0; } if(HouseData[h][InsideID] == 11) //custom interiors { Teleport(playerid, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ], 0.0, HouseData[h][HouseInterior], HouseData[h][HouseVW]); IsInHouseID[playerid] = h; GameTextForPlayer(playerid,"~N~~N~~N~~W~Escreva ~r~/sair ~w~para sair do local",5000,3); } else //default interiors { new x = HouseData[h][InsideID] - 1; Teleport(playerid, InsideIDs[x][InsideX], InsideIDs[x][InsideY], InsideIDs[x][InsideZ], InsideIDs[x][InsideAng], InsideIDs[x][InsideInt], HouseData[h][HouseVW]); IsInHouseID[playerid] = h; GameTextForPlayer(playerid,"~N~~N~~N~~W~Escreva ~r~/sair ~w~para sair do local",5000,3); } HouseData[h][HouseOccupants] ++; if(HouseData[h][HMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playerid, HouseData[h][HMusic]); return true; } } for(new b = 0; b < MAX_BIZZ; b++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, BizzData[b][oPosX],BizzData[b][oPosY],BizzData[b][oPosZ])) { if(BizzData[b][BizzType] == BIZZ_TYPE_STATIC && BizzData[b][IsSpecial] == 0) return SysMsg(playerid,"Este negócio não pode ser inserido."); if(BizzData[b][BizzLocked] && ADuty[playerid] == 0) return SysMsgF(playerid, "[%s] A porta está trancada.", BizzData[b][BizzDescription]); if(BizzData[b][EnterFee] > 0 && (BizzData[b][BizzOwnerSQLID] > 0 && BizzData[b][BizzOwnerSQLID] != SQLID[playerid])) { new nopay = 0; //no enter fee for SAN employees at SAN building if(BizzData[b][BizzSQLID] == 19 && Faction[playerid] == FACTION_NEWS) nopay = 1; if(IsBizzMod(playerid, b)) nopay = 1; if(nopay == 0) { if(Cash[playerid] < BizzData[b][EnterFee]) return SysMsg(playerid,"Você não tem dinheiro suficiente para a taxa de entrada."); GivePlayerCash(playerid, -BizzData[b][EnterFee]); BizzData[b][BizzEarnings] += BizzData[b][EnterFee]; MySQLUpdateInt(BizzData[b][BizzSQLID], "BizzEarnings", BizzData[b][BizzEarnings], "bizz"); } } if(BizzData[b][BizzOwnerSQLID] > 0) { if(BizzData[b][BizzOwnerSQLID] == SQLID[playerid]) SendClientMessageF(playerid, COLOR_WHITE, "[%s] Você é o dono deste negócio. Para uso de comandos relacionados a negócios '/ajuda negocio'", BizzData[b][BizzDescription]); else if(BizzData[b][BizzOwnerSQLID] == -5) SendClientMessageF(playerid, COLOR_WHITE, "Bem vindo a %s, Propriedade da Silver Trading. Taxa de entrada: $%i", BizzData[b][BizzDescription], BizzData[b][EnterFee]); else SendClientMessageF(playerid, COLOR_WHITE, "Bem vindo a %s, Propriedade de %s. Taxa de entrada: $%i", BizzData[b][BizzDescription], GetSQLName(BizzData[b][BizzOwnerSQLID]), BizzData[b][EnterFee]); } else SendClientMessageF(playerid, COLOR_WHITE, "Bem-vindo a %s, este negócio não tem dono.", BizzData[b][BizzDescription]); if(BizzData[b][IsSpecial] == 1) { Teleport(playerid, BizzData[b][iPosX], BizzData[b][iPosY], BizzData[b][iPosZ], 0.0, BizzData[b][InteriorID], BizzData[b][BizzVW]); IsInBizzID[playerid] = b; } else { new x = BizzData[b][BizzType]; Teleport(playerid, BInsideIDs[x][InsideX], BInsideIDs[x][InsideY], BInsideIDs[x][InsideZ], BInsideIDs[x][InsideAng], BInsideIDs[x][InsideInt], BizzData[b][BizzVW]); GameTextForPlayer(playerid, "~N~~N~~N~~W~Bem-vindo ao negócio~N~~R~escreva /sair para sair do local.", 5000, 3); IsInBizzID[playerid] = b; } BizzData[b][BizzOccupants] ++; if(BizzData[b][BMusicPlaying] == 1) PlayAudioStreamForPlayerEx(playerid, BizzData[b][BMusic]); return true; } } for(new i = 1; i < MAX_MOTELROOMS; i++) { if(IsPlayerInRangeOfPoint(playerid, 0.75, MotelData[i][RoomX], MotelData[i][RoomY], MotelData[i][RoomZ]) && MotelData[i][RoomOwner] > 0) { if(MotelData[i][RoomLocked] == 1) return SysMsg(playerid, "Esta sala está trancada."); Teleport(playerid, -434.7513, -775.4567, 971.0526, 0.0, 11, 50000+i); IsInMotel[playerid] = i; /*switch(MotelData[i][MotelID]) { case 1,4,5,6: // $100 rent { Teleport(playerid, 2282.726806, -1139.603515, 1050.898437, 0.0, 11, 50000+i); IsInMotel[playerid] = i; return true; } case 2,7: // $200 rent { Teleport(playerid, 2217.425781, -1076.156494, 1050.484375, 9.0, 1, 50000+i); IsInMotel[playerid] = i; return true; } case 3: // $500 rent { Teleport(playerid, 2233.775634, -1114.455688, 1050.882812, 0.0, 5, 50000+i); IsInMotel[playerid] = i; return true; } }*/ } } } for(new g = 0; g < MAX_GARAGES; g++) { if(IsPlayerInRangeOfPoint(playerid, 2.0, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ])) { if(GarageData[g][GarageLocked] == 1 && ADuty[playerid] != 1) return SysMsg(playerid, "Esta garagem está trancada."); if(GarageData[g][gType] == 1) //tiny 1 car garage { if(GarageCheck(g, 1) && IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem."); if(vid >= 1) { SetVehiclePos(vid, 1449.0339, -2518.7883, 13.7018); SetVehicleZAngle(vid, 90.0); SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]); LinkVehicleToInterior(vid, 1); foreach(new p: Player) { if(GetPlayerVehicleID(p) == vid) { SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]); SetPlayerInterior(p, 1); IsInGarageID[p] = g; } } return true; } else { Teleport(playerid, 1452.6891, -2516.3198, 13.5750, 90.0, 1, GarageData[g][iVirtualWorld]); IsInGarageID[playerid] = g; return true; } } if(GarageData[g][gType] == 2) //normal single car garage { if(GarageCheck(g, 1) && IsPlayerInAnyVehicle(playerid)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem."); if(vid >= 1) { SetVehiclePos(vid, 1836.6912, -2440.2810, 13.7131); SetVehicleZAngle(vid, 90.0); SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]); LinkVehicleToInterior(vid, 1); foreach(new p: Player) { if(GetPlayerVehicleID(p) == vid) { SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]); SetPlayerInterior(p, 1); IsInGarageID[p] = g; } } return true; } else { Teleport(playerid, 1840.1310, -2436.8567, 13.5859, 90.0, 1, GarageData[g][iVirtualWorld]); IsInGarageID[playerid] = g; return true; } } else if(GarageData[g][gType] == 3) //standard 2 car garage { if(vid >= 1) { new side[6]; if(sscanf(params, "s[6]", side)) return SysMsg(playerid, "Use: /enter [Esquerda/Direita]"); if(strcmp(side, "esquerda", true) == 0) { if(GarageCheck(g, 1, 0)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem."); SetVehiclePos(vid, 2081.5933, -2479.1887, 13.7145); } else if(strcmp(side, "direita", true) == 0) { if(GarageCheck(g, 1, 1)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem."); SetVehiclePos(vid, 2081.593, -2473.189, 13.92); } else return SysMsg(playerid, "Use: /entra [Esquerda/Direita]"); SetVehicleZAngle(vid, 90.0); SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]); LinkVehicleToInterior(vid, 1); foreach(new p: Player) { if(GetPlayerVehicleID(p) == vid) { SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]); IsInGarageID[p] = g; SetPlayerInterior(p, 1); } } return true; } else { Teleport(playerid, 2086.1670, -2476.5586, 13.5859, 90.0, 1, GarageData[g][iVirtualWorld]); SetPlayerVirtualWorld(playerid, GarageData[g][iVirtualWorld]); IsInGarageID[playerid] = g; return true; } } else if(GarageData[g][gType] == 4) //fancy 2 car garage { if(vid >= 1) { new side[6]; if(sscanf(params, "s[6]", side)) return SysMsg(playerid, "Use: /entra [Esquerda/Direita]"); if(strmatch("esquerda", side)) { if(GarageCheck(g, 1, 0)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem."); SetVehiclePos(vid, 1566.3131, -2562.6003, 13.7139); } else if(strmatch("dinheiro", side)) { if(GarageCheck(g, 1, 1)) return SysMsg(playerid, "Há atualmente um veículo que bloqueia a entrada da garagem."); SetVehiclePos(vid, 1566.283, -2555.600, 13.296); } else return SysMsg(playerid, "Use: /entra [Esquerda/Direita]"); SetVehicleZAngle(vid, 90.0); SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]); LinkVehicleToInterior(vid, 1); foreach(new p: Player) { if(GetPlayerVehicleID(p) == vid) { SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]); IsInGarageID[p] = g; SetPlayerInterior(p, 1); } } return true; } else { Teleport(playerid, 1571.5144, -2567.9014, 13.5989, 90.0, 1, GarageData[g][iVirtualWorld]); SetPlayerVirtualWorld(playerid, GarageData[g][iVirtualWorld]); IsInGarageID[playerid] = g; return true; } } else if(GarageData[g][gType] == 5) //custom garage { if(vid >= 1) { SetVehiclePos(vid, GarageData[g][iPosX], GarageData[g][iPosY], GarageData[g][iPosZ]); SetVehicleVirtualWorld(vid, GarageData[g][iVirtualWorld]); LinkVehicleToInterior(vid, GarageData[g][InsideInt]); foreach(new p: Player) { if(GetPlayerVehicleID(p) == vid) { SetPlayerVirtualWorld(p, GarageData[g][iVirtualWorld]); if(GarageData[g][UseHouse]) IsInHouseID[p] = GarageData[g][gHouseID]; else IsInGarageID[p] = g; SetPlayerInterior(p, GarageData[g][InsideInt]); } } return true; } else { Teleport(playerid, GarageData[g][iPosX], GarageData[g][iPosY], GarageData[g][iPosZ], GarageData[g][iAngle], 1, GarageData[g][iVirtualWorld]); if(GarageData[g][UseHouse]) IsInHouseID[playerid] = GarageData[g][gHouseID]; else IsInGarageID[playerid] = g; SetPlayerInterior(playerid, GarageData[g][InsideInt]); return true; } } } } if(IsPlayerInRangeOfPoint(playerid, 5.0, -4118.1626, 1863.7806, -6.0066)) //pirate ship { new Float:x, Float:y, Float:z; GetPlayerPos(playerid, x, y, z); SetPlayerPos(playerid, x, y, z + 20.0); TogglePlayerControllable(playerid, false); SetTimerEx("PutPlayerInShip", 500, 0, "i", playerid); return true; } new model = GetVehicleModel(vid); UnlockAchievement(playerid,12); if(model == 592 && vid > 0) { RemovePlayerFromVehicle(playerid); SetPlayerPos(playerid,315.747528,973.342773,1961.580932); SetPlayerFacingAngle(playerid,4.525218); SetPlayerInterior(playerid,9); return true; } // Aperture else if(IsPlayerInRangeOfPoint(playerid,2.5,281.6272,1821.7705,17.6406)) //Area51 Onto Runway { if(vid > 0) { SetVehiclePos(vid,291.2745,1821.3871,17.6406); SetVehicleZAngle(vid,265.0996); } else { SetPlayerPos(playerid,291.2745,1821.3871,17.6406); SetPlayerFacingAngle(playerid,265.0996); } return true; } else if(IsPlayerInRangeOfPoint(playerid,2.5,291.2745,1821.3871,17.6406) && Faction[playerid] == FACTION_RESEARCH) //Area51 Off Runway { if(vid > 0) { SetVehiclePos(vid,281.6272,1821.7705,17.6406); SetVehicleZAngle(vid,265.0996); } else { SetPlayerPos(playerid,281.6272,1821.7705,17.6406); SetPlayerFacingAngle(playerid,265.0996); } return true; } else if(IsPlayerInRangeOfPoint(playerid,10.0,135.2250,1952.6047,19.4092) && Faction[playerid] == FACTION_RESEARCH) //Area51 In base { if(vid > 0) { SetVehiclePos(vid,134.8420,1929.8167,19.2142); SetVehicleZAngle(vid,180.0); } } else if(IsPlayerInRangeOfPoint(playerid,10.0,134.8420,1929.8167,19.2142) && Faction[playerid] == FACTION_RESEARCH) //Area51 Out base { if(vid > 0) { SetVehiclePos(vid,135.2250,1952.6047,19.4092); SetVehicleZAngle(vid,0.0); return true; } } //Aperture Post else if(IsPlayerInRangeOfPoint(playerid, 2.0, -119.2304,1607.1378,18.1936) && Faction[playerid] == FACTION_RESEARCH) { SetPlayerPos(playerid,-121.0000,1607.1378,18.4500); return true; } else if(IsPlayerInRangeOfPoint(playerid, 2.0, -107.9196,1607.6631,18.1957) && Faction[playerid] == FACTION_RESEARCH) { SetPlayerPos(playerid,-105.9196,1607.6631,18.4500); return true; } else if(IsPlayerInRangeOfPoint(playerid,5.0, 974.4432,-1091.5729,24.2055)) //ST garage ENTER { if(Faction[playerid] != FACTION_PROP) return true; if(vid == 0) { SetPlayerPos(playerid,1484.3281,-2592.6111,13.6177); SetPlayerFacingAngle(playerid, 358.4381); SetPlayerInterior(playerid,187); SetPlayerVirtualWorldEx(playerid, 187); } else { SetVehiclePos(vid, 1481.2957,-2589.0603,13.6197); SetVehicleZAngle(vid, 360.0); LinkVehicleToInteriorEx(vid, 187); SetVehicleVirtualWorld(vid, 187); foreach(new v: Player) { if(Logged{v}) { if(GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 187); SetPlayerInterior(v, 187); } } } } ShowInfoText(playerid,"~W~ST garagem~N~~R~escreva /sair para voltar",5000); return true; } else if(IsPlayerInRangeOfPoint(playerid, 10.0, -63.7647, -1116.42, 1.078)) //rosmc garage enter { if(vid == 0) Teleport(playerid, -108.818, -1136.22, 1001.34, 90.0, 1, 3); else { SetVehiclePos(vid, -113.4797, -1137.5911, 1001.5186); SetVehicleZAngle(vid, 90.0); LinkVehicleToInteriorEx(vid, 1); SetVehicleVirtualWorld(vid, 3); foreach(new v: Player) { if(Logged{v}) { if(GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 3); SetPlayerInterior(v, 1); } } } } ShowInfoText(playerid,"~W~RosMC garage~N~~R~escreva /sair para voltar",5000); return true; } else if(IsPlayerInRangeOfPoint(playerid,5.0, 623.303771, -598.885620, 17.077930)) //dpd garage ENTER { if(!IsCop(playerid)) return SysMsg(playerid, "Você deve ser um policial se quiser entrar nesta garagem."); if(vid == 0) { SetPlayerPos(playerid,2300.9836,2498.7104,3.2734); SetPlayerFacingAngle(playerid, 180.0); SetPlayerVirtualWorldEx(playerid, 911); } else { SetVehiclePos(vid, 2300.9836,2498.7104,3.2734); SetVehicleZAngle(vid, 180.0); SetVehicleVirtualWorld(vid, 911); foreach(new v: Player) { if(Logged{v}) { if(GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 911); } } } } ShowInfoText(playerid,"~W~DPD garagem~N~~R~escreva /sair para voltar",5000); return true; } else if(IsPlayerInRangeOfPoint(playerid,5.0, 1198.8041,254.2202,19.5547)) //SAN garage ENTER { if(Faction[playerid] != FACTION_NEWS) return SysMsg(playerid,"Você não pode entrar nesta garagem."); if(vid == 0) { SetPlayerPos(playerid, 2040.6063, -2587.3342, 13.6177); SetPlayerFacingAngle(playerid, 90.0); SetPlayerInterior(playerid,6); SetPlayerVirtualWorldEx(playerid, 558822); } else { SetVehiclePos(vid, 2036.1995, -2593.0525, 13.6216); SetVehicleZAngle(vid, 90.0); LinkVehicleToInteriorEx(vid, 6); SetVehicleVirtualWorld(vid, 558822); foreach(new v: Player) { if(Logged{v}) { if(GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 558822); SetPlayerInterior(v, 6); } } } } ShowInfoText(playerid,"~W~SAN garagem~N~~R~escreva /sair para voltar",5000); return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 844.2215, -598.8593, 18.4219)) //swat garage ENTER { if(Faction[playerid] != FACTION_COP) return SysMsg(playerid,"Você não pode entrar nesta garagem."); if(vid == 0) { SetPlayerPos(playerid, 2040.6063, -2587.3342, 13.6177); SetPlayerFacingAngle(playerid, 90.0); SetPlayerInterior(playerid,6); SetPlayerVirtualWorldEx(playerid, 558821); } else { SetVehiclePos(vid, 2036.1995, -2593.0525, 13.6216); SetVehicleZAngle(vid, 90.0); LinkVehicleToInteriorEx(vid, 6); SetVehicleVirtualWorld(vid, 558821); foreach(new v: Player) { if(Logged{v}) { if(GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 558821); SetPlayerInterior(v, 6); } } } } ShowInfoText(playerid,"~W~Swat garagem~N~~R~escreva /sair para voltar",5000); return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1239.3077, 180.7602, 19.9204)) //info center left entrance { if(vid == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta entrada."); if(!IsRentalCar(vid)) return SysMsg(playerid, "O veículo deve ser um carro alugado."); SetVehiclePos(vid, 1245.4321, 170.6587, 2086.3684); SetVehicleZAngle(vid, 180.0); LinkVehicleToInteriorEx(vid, 3); SetVehicleVirtualWorld(vid, 40073); new b = GetBizzIDFromSQL(73); foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 40073); SetPlayerInterior(v, 3); IsInBizzID[v] = b; } } } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1219.8643, 189.4231, 19.9018)) //info center right entrance { if(vid == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta entrada."); SetVehiclePos(vid, 1224.1946, 171.3404, 2086.3726); SetVehicleZAngle(vid, 180.0); LinkVehicleToInteriorEx(vid, 3); SetVehicleVirtualWorld(vid, 40073); new b = GetBizzIDFromSQL(73); IsInBizzID[playerid] = b; foreach(new v: Player) { if(Logged{v}) { if(GetPlayerVehicleID(v) == vid) { SetPlayerVirtualWorldEx(v, 40073); SetPlayerInterior(v, 3); IsInBizzID[v] = b; } } } } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 617.8813, 1667.3865, 6.9922)) //Trucking Garage 1 { if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid, "Só os camionistas podem entrar na garagem."); if(vid > 0) { SetVehiclePos(vid, 1062.526489, 2084.312500, 11.83835); SetVehicleZAngle(vid, 270.0); ShowInfoText(playerid,"~W~Elite trucking garagem~N~~R~escreva /sair para voltar",5000); } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 584.7940, 1644.5438, 6.9922)) //Trucking Garage 2 { if(Faction[playerid] != FACTION_TRUCKING) return SysMsg(playerid, "Só os camionistas podem entrar na garagem."); if(vid > 0) { SetVehiclePos(vid, 1062.935791, 2132.715087, 11.839662); SetVehicleZAngle(vid, 255.4); ShowInfoText(playerid,"~W~Elite trucking garagem~N~~R~escreva /sair para voltar",5000); } return true; } else if(IsPlayerInRangeOfPoint(playerid, 7.0, 219.3465,8.0401,2.2700)) // BB Garage { if(vid > 0) { SetVehiclePos(vid, 1060.2075,2086.2024,10.5256); SetVehicleZAngle(vid, 328.4567); SetVehicleVirtualWorld(vid, 187); foreach(new p: Player) if(GetPlayerVehicleID(p) == vid) SetPlayerVirtualWorldEx(p, 187); return true; } else { SetPlayerPos(playerid,1060.2075,2086.2024,10.5256); SetPlayerFacingAngle(playerid,328.4567); SetPlayerVirtualWorldEx(playerid,187); return true; } } if(vid == 0) { new cVeh = GetClosestVehicle(playerid); new Float:Pos[3]; GetVehiclePos(cVeh, Pos[0], Pos[1], Pos[2]); if(GetVehicleModel(cVeh) == 519 && IsPlayerInRangeOfPoint(playerid, 15.0, Pos[0], Pos[1], Pos[2])) { Teleport(playerid, 1.752286,34.395935,1199.593750, 182.570526, 1, cVeh); ShamalInterior[playerid] = cVeh; return true; } if(GetVehicleModel(cVeh) == 508 && IsPlayerInRangeOfPoint(playerid, 10.0, Pos[0], Pos[1], Pos[2])) { if(Locked{cVeh}) return SysMsg(playerid, "A Caravana está trancada."); Teleport(playerid, 2216.6523, -465.2169, 1023.7059, 0.0, 1, cVeh); JourneyInterior[playerid] = cVeh; return true; } if(GetVehicleModel(cVeh) == 454 && IsPlayerInRangeOfPoint(playerid, 15.0, Pos[0], Pos[1], Pos[2])) { if(Locked{cVeh}) return SysMsg(playerid, "Este Trópic está trancado."); Teleport(playerid, 2120.3872, -94.9943, 950.1429, 0.0, 1, cVeh); TropicInterior[playerid] = cVeh; return true; } if(IsTrailer(cVeh) && IsPlayerInRangeOfPoint(playerid, 10.0, Pos[0], Pos[1], Pos[2])) { foreach(new i: Player) { if(TruckingTrailer[i] == cVeh) { if(IsTrucking[i] == 1 || DeliveringStock[i] == 1) Teleport(playerid, 585.0163, 1682.1957, 995.6417, 0.0, 2, cVeh); return true; } } Teleport(playerid, 585.0163, 1682.1957, 995.6417, 0.0, 1, cVeh); TrailerInterior[playerid] = cVeh; } } else if(vid > 0) { if(GetVehicleModel(vid) == 508) { Teleport(playerid, 2216.6523, -465.2169, 1023.7059, 0.0, 1, vid); JourneyInterior[playerid] = vid; return true; } if(GetVehicleModel(vid) == 454) { Teleport(playerid, 2120.3872, -94.9943, 950.1429, 0.0, 1, vid); TropicInterior[playerid] = vid; return true; } } if(IsInPrison(playerid)) { for(new w = 0; w < 16; w++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonCellsOut[w][0], PrisonCellsOut[w][1], PrisonCellsOut[w][2])) { if(PrisonCellsLock[w] == 1) return SysMsg(playerid, "A porta da cela está trancada."); else return SetPlayerPos(playerid, PrisonCellsIn[w][0], PrisonCellsIn[w][1], PrisonCellsIn[w][2]); } } for(new w = 0; w < sizeof(PrisonDoors); w++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonDoors[w][0], PrisonDoors[w][1], PrisonDoors[w][2]) && GetPlayerVirtualWorld(playerid) == PrisonWorldsOut[w]) { if(PrisonDoorsLock[w] == 1) return SysMsg(playerid, "Esta porta está trancada."); SetPlayerPos(playerid, PrisonDoors[w][4], PrisonDoors[w][5], PrisonDoors[w][6]); SetPlayerFacingAngle(playerid, PrisonDoors[w][7]); SetPlayerVirtualWorld(playerid, PrisonWorldsIn[w]); return true; } else if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonDoors[w][4], PrisonDoors[w][5], PrisonDoors[w][6]) && GetPlayerVirtualWorld(playerid) == PrisonWorldsIn[w]) { if(PrisonDoorsLock[w] == 1) return SysMsg(playerid, "Esta porta está trancada."); if(w == 12) { TogglePlayerControllable(playerid, false); SetTimerEx("UnFreezePlayer", 1000, 0, "d", playerid); } SetPlayerPos(playerid, PrisonDoors[w][0], PrisonDoors[w][1], PrisonDoors[w][2]); SetPlayerFacingAngle(playerid, PrisonDoors[w][3]); SetPlayerVirtualWorld(playerid, PrisonWorldsOut[w]); return true; } } } foreach(new p: Player) { if(IsSpectating[p] == playerid) { SetPlayerVirtualWorldEx(p, GetPlayerVirtualWorld(playerid)); SetPlayerInterior(p, GetPlayerInterior(playerid)); PlayerSpectatePlayer(p, playerid); } } return true; } CMD:ent(playerid, params[]) return cmd_entrar(playerid, params); CMD:e(playerid, params[]) { if(GetPlayerState(playerid) == 1) return cmd_entrar(playerid, params); else return cmd_motor(playerid); } CMD:sair(playerid) { if(!Logged{playerid}) return true; UnlockAchievement(playerid,13); for(new i = 0; i < MAX_INTERIORS; i++) { if(IsPlayerInRangeOfPoint(playerid, 5.0, Interiors[i][iPosX], Interiors[i][iPosY], Interiors[i][iPosZ]) && GetPlayerVirtualWorld(playerid) == Interiors[i][iVirtualWorld] && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { Teleport(playerid, Interiors[i][oPosX], Interiors[i][oPosY], Interiors[i][oPosZ], Interiors[i][oAngle], Interiors[i][oInteriorID], Interiors[i][oVirtualWorld]); if(Interiors[i][interiorID] == 115) IsInBizzID[playerid] = GetBizzID("SANews HQ Corporation"); if(Interiors[i][oInteriorID] == 0 && Interiors[i][oVirtualWorld] == 0) { IsInHouseID[playerid] = -1; IsInBizzID[playerid] = -1; IsInGarageID[playerid] = -1; } return true; } } if(IsInGarageID[playerid] != -1 && GetPlayerVirtualWorld(playerid) == GarageData[IsInGarageID[playerid]][iVirtualWorld]) { new g = IsInGarageID[playerid]; if(IsPlayerInAnyVehicle(playerid)) { if(GarageCheck(g, 0)) return SysMsg(playerid, "Há atualmente um veículo bloqueando sua saída."); new vid = GetPlayerVehicleID(playerid); SetVehiclePos(vid, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]); SetVehicleVirtualWorld(vid, 0); LinkVehicleToInterior(vid, 0); SetVehicleZAngle(vid, GarageData[g][oVehicleAngle]); foreach(new i: Player) { if(GetPlayerVehicleID(i) == vid) { SetPlayerVirtualWorld(i, 0); SetPlayerInterior(i, 0); IsInGarageID[i] = -1; } } return true; } else { SetPlayerPos(playerid, GarageData[g][oPosX], GarageData[g][oPosY], GarageData[g][oPosZ]); SetPlayerVirtualWorld(playerid, 0); SetPlayerInterior(playerid, 0); IsInGarageID[playerid] = -1; } return true; } new VehId = GetPlayerVehicleID(playerid); if(IsPlayerInRangeOfPoint(playerid,7.5,315.747528,973.342773,1961.580932)) //Adromada { for(new v = 1, x = GetVehiclePoolSize(); v <= x; v++) { new model = GetVehicleModel(v); if(model == 592) { new Float:ox,Float:oy,Float:oz,Float:ang; GetVehiclePos(v,ox,oy,oz); GetVehicleZAngle(v,ang); if(ang < 90 && ang > 0) { SetPlayerPos(playerid,ox-5,oy-5,oz); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); return true; } else if(ang > 89 && ang < 181) { SetPlayerPos(playerid,ox-5,oy+5,oz); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); return true; } else if(ang < 271 && ang > 180) { SetPlayerPos(playerid,ox+5,oy+5,oz); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); return true; } else if(ang > 270 && ang < 0) { SetPlayerPos(playerid,ox+5,oy-5,oz); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); return true; } } } } else if(ShamalInterior[playerid] > 0) { new Float:sPos[3]; GetVehiclePos(ShamalInterior[playerid], sPos[0], sPos[1], sPos[2]); SetPlayerPos(playerid, sPos[0]+2.0, sPos[1]+2.0, sPos[2]); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, 0); ShamalInterior[playerid] = 0; return true; } else if(JourneyInterior[playerid] > 0) { new seatavailable = 1; foreach(new pl: Player) { if(GetPlayerVehicleID(pl) == JourneyInterior[playerid] && GetPlayerState(pl) == PLAYER_STATE_PASSENGER) { seatavailable = 0; } } SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, GetVehicleVirtualWorld(JourneyInterior[playerid])); if(seatavailable == 0) { new Float:sPos[3]; GetVehiclePos(JourneyInterior[playerid], sPos[0], sPos[1], sPos[2]); SetPlayerPos(playerid, sPos[0]+2.0, sPos[1]+2.0, sPos[2]); } else PutPlayerInVehicle(playerid, JourneyInterior[playerid], 1); JourneyInterior[playerid] = 0; return true; } else if(TropicInterior[playerid] > 0) { new Float:x, Float:y, Float:z, Float:a; GetVehiclePos(TropicInterior[playerid], x, y, z); GetVehicleZAngle(TropicInterior[playerid], a); TogglePlayerControllable(playerid, 0); SetPlayerPos(playerid, x, y, z + 5); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, 0); TropicInterior[playerid] = 0; TeleportTimer[playerid] = 4; BeingTeleported{playerid} = true; return true; } else if(TrailerInterior[playerid] > 0) { new Float:x, Float:y, Float:z, Float:a; GetVehiclePos(TrailerInterior[playerid], x, y, z); GetVehicleZAngle(TrailerInterior[playerid], a); TogglePlayerControllable(playerid, 0); SetPlayerPos(playerid, x, y, z + 3); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(TrailerInterior[playerid])); TrailerInterior[playerid] = 0; TeleportTimer[playerid] = 4; BeingTeleported{playerid} = true; return true; } else if(IsPlayerInRangeOfPoint(playerid, 7.0, 1061.1815,2084.6909,10.5256) && GetPlayerVirtualWorld(playerid) == 187) //BB Garage { if(VehId > 0) { SetVehiclePos(VehId, 219.3465,8.0401,2.2797); SetVehicleZAngle(VehId, 269.8848); SetVehicleVirtualWorld(VehId, 0); foreach(new p: Player) { if(GetPlayerVehicleID(p) == VehId) { SetPlayerVirtualWorldEx(p, 0); } } } else { SetPlayerPos(playerid,219.3465,8.0401,2.2797); SetPlayerFacingAngle(playerid,269.8848); SetPlayerInterior(playerid,0); SetPlayerVirtualWorldEx(playerid,0); } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1481.2957,-2589.0603,13.6197) && GetPlayerVirtualWorld(playerid) == 187) //ST Garage EXIT { if(VehId == 0) { SetPlayerPos(playerid, 974.4432,-1091.5729,24.2055); SetPlayerFacingAngle(playerid, 269.5953); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, 0); } else { SetVehiclePos(VehId, 974.4432,-1091.5729,24.2055); SetVehicleZAngle(VehId, 269.5953); SetVehicleVirtualWorld(VehId, 0); LinkVehicleToInteriorEx(VehId, 0); foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); SetPlayerInterior(v, 0); } } } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, -113.4797,-1137.5911,1001.5186) && GetPlayerVirtualWorld(playerid) == 3) //RosMC Garage EXIT { if(VehId == 0) { SetPlayerPos(playerid, -63.7647, -1116.42, 1.078); SetPlayerFacingAngle(playerid, 68.373); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, 0); } else { SetVehiclePos(VehId, -67.4992, -1119.4043, 0.7837); SetVehicleZAngle(VehId, 70.0); SetVehicleVirtualWorld(VehId, 0); LinkVehicleToInteriorEx(VehId, 0); foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); SetPlayerInterior(v, 0); } } } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2300.9836,2498.7104,3.2734) && GetPlayerVirtualWorld(playerid) == 911) //DPD Garage EXIT { if(VehId == 0) return true; else { SetPlayerVirtualWorldEx(playerid, 0); SetVehiclePos(VehId, 623.303771, -598.885620, 17.077930); SetVehicleZAngle(VehId, 270.0); SetVehicleVirtualWorld(VehId, 0); foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); } } } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2036.1995, -2593.0525, 13.6216) && GetPlayerVirtualWorld(playerid) == 558822) //SAN Garage EXIT { if(VehId == 0) { SetPlayerPos(playerid, 1198.8041,254.2202,19.5547); SetPlayerFacingAngle(playerid, 335.8774); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, 0); } else { SetVehiclePos(VehId, 1200.2883, 257.5103, 19.3547); SetVehicleZAngle(VehId, 335.8774); SetVehicleVirtualWorld(VehId, 0); LinkVehicleToInteriorEx(VehId, 0); foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); SetPlayerInterior(v, 0); } } } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2036.1995, -2593.0525, 13.6216) && GetPlayerVirtualWorld(playerid) == 558821) //SWAT Garage EXIT { if(VehId == 0) { SetPlayerPos(playerid, 844.2215, -598.8593, 18.4219); SetPlayerFacingAngle(playerid, 335.8774); SetPlayerInterior(playerid, 0); SetPlayerVirtualWorldEx(playerid, 0); } else { SetVehiclePos(VehId, 844.2215, -598.8593, 18.4219); SetVehicleZAngle(VehId, 335.8774); SetVehicleVirtualWorld(VehId, 0); LinkVehicleToInteriorEx(VehId, 0); foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); SetPlayerInterior(v, 0); } } } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1224.2386, 184.9009, 2090.1450)) //info center garage left exit { if(VehId == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta saída."); SetVehiclePos(VehId, 1219.8643, 189.4231, 19.9018); SetVehicleZAngle(VehId, 335.8774); SetVehicleVirtualWorld(VehId, 0); LinkVehicleToInteriorEx(VehId, 0); IsInBizzID[playerid] = -1; foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); SetPlayerInterior(v, 0); IsInBizzID[v] = -1; } } } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 1244.7186, 184.5773 ,2090.0583)) //info center garage right exit { if(VehId == 0) return SysMsg(playerid, "Você deve estar em um veículo para usar esta saída."); SetVehiclePos(VehId, 1239.3077, 180.7602, 19.9204); SetVehicleZAngle(VehId, 335.8774); SetVehicleVirtualWorld(VehId, 0); LinkVehicleToInteriorEx(VehId, 0); IsInBizzID[playerid] = -1; foreach(new v: Player) { if(Logged{v} && GetPlayerVehicleID(v) == VehId) { SetPlayerVirtualWorldEx(v, 0); SetPlayerInterior(v, 0); IsInBizzID[v] = -1; } } } if(IsPlayerInRangeOfPoint(playerid, 5.0, -2887.7366, 1914.3883, -18.6266)) //pirate ship { Teleport(playerid, -4118.1626, 1863.7806, 1.0000, 0.0, 0, 0); return true; } else if(IsPlayerInRangeOfPoint(playerid,7.5,1064.570678, 2085.178955, 10.820312)) //Trucking Garage 1 { if(VehId > 0) { SetVehiclePos(VehId, 608.7408, 1661.5490, 6.9922); SetVehicleZAngle(VehId, 33.82); } return true; } else if(IsPlayerInRangeOfPoint(playerid,7.5,1065.835571, 2131.229248, 10.820312)) //Trucking Garage 2 { if(VehId > 0) { SetVehiclePos(VehId, 627.3016, 1673.2096, 6.9922); SetVehicleZAngle(VehId, 33.82); } return true; } else if(IsPlayerInRangeOfPoint(playerid, 5.0, 2807.619873, -1171.899902, 1025.570312) && GetPlayerVirtualWorld(playerid) == 9876543) { SetPlayerPos(playerid, -691.797058, 939.202087, 13.632812); SetPlayerVirtualWorldEx(playerid, 0); SetPlayerInterior(playerid, 0); return true; } else if(IsPlayerInRangeOfPoint(playerid, 15.0, 2299.4983, 2498.2363, 3.2734) && VehId > 0 && Faction[playerid] == FACTION_COP && GetPlayerVirtualWorld(playerid) == 911) { SetVehiclePos(VehId, 623.303771, -598.885620, 17.077930); SetVehicleZAngle(VehId, 270.0); SetVehicleVirtualWorld(VehId, 0); foreach(new p: Player) { if(GetPlayerVehicleID(p) == VehId) { SetPlayerVirtualWorldEx(p, 0); } } return true; } //Aperture Post else if(IsPlayerInRangeOfPoint(playerid, 2.0, -121.2304,1607.1378,18.1936) && Faction[playerid] == FACTION_RESEARCH) SetPlayerPos(playerid,-119.0000,1607.1378,18.1936); else if(IsPlayerInRangeOfPoint(playerid, 2.0, -105.9196,1607.6631,18.1957) && Faction[playerid] == FACTION_RESEARCH) SetPlayerPos(playerid,-107.9196,1607.6631,18.1957); else if(IsInHouseID[playerid] != -1) { new h = IsInHouseID[playerid]; if(HouseData[h][HouseExtVW] == 0) //This check is for houses that aren't flats. { if(HouseData[h][InsideID] == 11) //cheques if the interior is a custom interior. { if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ])) { Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 0, 0); if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada."); if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid); HouseData[h][HouseOccupants] --; IsInHouseID[playerid] = -1; CancelEdit(playerid); return true; } } else //The interior is not a custom interior. { if(IsPlayerInRangeOfPoint(playerid, 2.0, InsideIDs[HouseData[h][InsideID] - 1][InsideX], InsideIDs[HouseData[h][InsideID] - 1][InsideY], InsideIDs[HouseData[h][InsideID] - 1][InsideZ])) { Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 0, 0); if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada."); if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid); HouseData[h][HouseOccupants] --; IsInHouseID[playerid] = -1; CancelEdit(playerid); return true; } } } else { if(HouseData[h][InsideID] == 11) //cheques if the interior is a custom interior. { if(IsPlayerInRangeOfPoint(playerid, 2.0, HouseData[h][intPosX], HouseData[h][intPosY], HouseData[h][intPosZ])) { Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 0, 0); if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada."); if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid); HouseData[h][HouseOccupants] --; IsInHouseID[playerid] = -1; CancelEdit(playerid); return true; } } else //The interior is not a custom interior. { if(IsPlayerInRangeOfPoint(playerid, 2.0, InsideIDs[HouseData[h][InsideID] - 1][InsideX], InsideIDs[HouseData[h][InsideID] - 1][InsideY], InsideIDs[HouseData[h][InsideID] - 1][InsideZ])) { Teleport(playerid, HouseData[h][oPosX], HouseData[h][oPosY], HouseData[h][oPosZ], 0.0, 2, HouseData[h][HouseExtVW]); if(HouseData[h][HouseLocked] == 1) SysMsg(playerid,"Você pulou pela janela enquanto a porta estava trancada."); if(HouseData[h][HMusicPlaying] == 1) StopAudioStreamForPlayer(playerid); HouseData[h][HouseOccupants] --; IsInHouseID[playerid] = -1; CancelEdit(playerid); return true; } } } } else if(IsInBizzID[playerid] != -1) { new b = IsInBizzID[playerid]; if(GetPlayerVirtualWorld(playerid) == BizzData[b][BizzVW]) { if(BizzData[b][IsSpecial] == 1) //cheques if the player is in a special business { if(IsPlayerInRangeOfPoint(playerid, 2.0, BizzData[b][iPosX], BizzData[b][iPosY], BizzData[b][iPosZ])) { Teleport(playerid, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ], 0.0, 0, BizzData[b][ExitVW]); if(BizzData[b][BMusicPlaying] == 1) StopAudioStreamForPlayer(playerid); BizzData[b][BizzOccupants] --; IsInBizzID[playerid] = -1; return true; } } else //cheques if the player is in a standard business { if(IsPlayerInRangeOfPoint(playerid, 2.0, BInsideIDs[BizzData[b][BizzType]][InsideX], BInsideIDs[BizzData[b][BizzType]][InsideY], BInsideIDs[BizzData[b][BizzType]][InsideZ])) { Teleport(playerid, BizzData[b][oPosX], BizzData[b][oPosY], BizzData[b][oPosZ], 0.0, 0, BizzData[b][ExitVW]); if(BizzData[b][BMusicPlaying] == 1) StopAudioStreamForPlayer(playerid); BizzData[b][BizzOccupants] --; IsInBizzID[playerid] = -1; return true; } } } } else if(IsInMotel[playerid] > 0 && GetPlayerVirtualWorld(playerid) == 50000+IsInMotel[playerid]) { Teleport(playerid, MotelData[IsInMotel[playerid]][RoomX], MotelData[IsInMotel[playerid]][RoomY], MotelData[IsInMotel[playerid]][RoomZ], 0.0, 0, 0); IsInMotel[playerid] = 0; return true; } else if(ViewingMicksCar[playerid] >= 0) { DestroyVehicleEx(ViewingMicksCarID[playerid], "ViewingMicksCarID 2"); ViewingMicksCar[playerid] = -1; ViewingMicksCarID[playerid] = -1; SetPlayerVirtualWorldEx(playerid, 0); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); ShowMessage(playerid, "Dillimore concessionária automotiva", "Você saiu Dillimore catálogo automóvel concessionária.\n\nObrigado pela visita, Volte sempre.", "Ok"); return true; } else if(ViewingBuyBikes[playerid] >= 0) { DestroyVehicleEx(ViewingBikeID[playerid], "ViewingBikeID[playerid] 2"); ViewingBuyBikes[playerid] = -1; ViewingBikeID[playerid] = -1; SetPlayerVirtualWorldEx(playerid, 0); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); ShowMessage(playerid, "Concessionária de motocicletas", "Você saiu do catálogo de concessionárias.\n\nObrigado pela visita, Volte sempre.", "Ok"); return true; } else if(ViewingBuyBoats[playerid] >= 0) { DestroyVehicleEx(ViewingBoatID[playerid], "ViewingboatID[playerid] 2"); ViewingBuyBoats[playerid] = -1; ViewingBoatID[playerid] = -1; SetPlayerVirtualWorldEx(playerid, 0); SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); ShowMessage(playerid, "Concessionária de barcos", "Você saiu do catálogo de concessionárias.\n\nObrigado pela visita, Volte sempre.", "Ok"); return true; } if(IsInPrison(playerid)) { for(new w = 0; w < 16; w++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, PrisonCellsIn[w][0], PrisonCellsIn[w][1], PrisonCellsIn[w][2])) { if(PrisonCellsLock[w] == 1) return SysMsg(playerid, "A porta da cela está trancada."); else return SetPlayerPos(playerid, PrisonCellsOut[w][0], PrisonCellsOut[w][1], PrisonCellsOut[w][2]); } } } foreach(new p: Player) { if(IsSpectating[p] == playerid) { SetPlayerVirtualWorldEx(p, GetPlayerVirtualWorld(playerid)); SetPlayerInterior(p, GetPlayerInterior(playerid)); PlayerSpectatePlayer(p, playerid); } } return true; } CMD:revistar(playerid, params[]) { if(!Logged{playerid}) return true; if(PlayerLevel[playerid] < 3) return SysMsg(playerid,"Você precisa ser pelo menos nível 3 para usar isso."); new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /revistar [ID ou parte do nome ou ID estranho]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(playa == playerid) return SysMsg(playerid,"Você não pode se revistar."); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador para revistar-los."); RequestedToFrisk[playa] = playerid; SetTimerEx("CancelPlayerFrisk", 15000, 0, "ii", playerid, playa); SendClientMessageF(playa, COLOR_WHITE, "%s quer revistar você, use '/aceitar revista' para continuar. (Isso será tempo limite em 15 segundos)", NameRP(playerid)); SendClientMessageF(playerid, COLOR_WHITE, "Você pediu para revistar %s. Espere ele(a) aceitar primeiro. (Isso será tempo limite em 15 segundos)", NameRP(playa)); return true; } CMD:vendarolhos(playerid, params[]) { if(!Logged{playerid}) return true; if(PlayerLevel[playerid] < 3) return SysMsg(playerid, "Você precisa ter no mínimo nível 3 para vendar os olhos de alguém."); if(Inventory[playerid][Blindfold] == 0) return SysMsg(playerid, "Você precisa ter uma venda de pano para vendar os olhos de alguém."); new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /vendarolhos [Identificação ou parte do nome ou ID do Estrangeiro]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(Blindfolded[playa] == 1) return SysMsg(playerid, "Esse jogador já tem seus olhos vendados."); if(playa == playerid) return SysMsg(playerid,"Você não pode colocar venda em seus proprios olhos."); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,5.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto deste jogador."); RequestedToBlindfold[playa] = playerid; SetTimerEx("CancelPlayerBlindfold", 15000, 0, "ii", playerid, playa); SendClientMessageF(playa, COLOR_WHITE, "%s quer tapar seus olhos com uma faixa, use '/aceitar blindfold' para continuar. (Pode demorar 15 segundos)", NameRP(playerid)); SendClientMessage(playa, COLOR_WHITE, "Certifique-se de que o jogador que tentou vendar seus olhos tenha feito um bom roleplay antes de aceitar."); SendClientMessageF(playerid, COLOR_WHITE, "Você pediu para tapar os olhos de %s. Ele(a) precisa aceitar primeiro. (Pode demorar 15 segundos)", NameRP(playa)); return true; } CMD:destapar(playerid, params[]) { if(!Logged{playerid}) return true; new playa = -1, name[MAX_PLAYER_NAME]; if(sscanf(params, "s[24]", name)) return SysMsg(playerid,"Use: /destapar [Identificação ou parte do nome ou ID do Estrangeiro]"); if(strval(name) >= 500) { foreach(new p: Player) { if(MaskLabelNumber[p] == strval(name)) { playa = p; } } } else playa = GetPlayerIDs(name); if(Blindfolded[playa] == 0) return SysMsg(playerid, "Esse jogador não tem os olhos tapados."); if(InvalidPlayer(playa) || !Logged{playa}) return SysMsg(playerid,"Esse jogador não está conectado e logado."); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid && IsTied[playa] > 0) return SysMsg(playerid, "Você não pode remover uma Faixa de Tapar olhos de si mesmo."); if(playa == playerid) { format(gstr, sizeof(gstr),"* %s se posiciona atrás da cabeça de %s desamarra a faixa. *",NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessage(playerid, COLOR_ORANGE, "Você removeu a faixa que tapava os olhos desse jogador."); } else { format(gstr, sizeof(gstr),"* %s remove a faixa que tapava os olhos de %s. *",NameRP(playerid), NameRP(playa)); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playa, COLOR_ORANGE, "%s removeu a faixa que tapava seus olhos.", NameRP(playerid)); } Inventory[playerid][Blindfold] = 1; MySQLUpdateInt(SQLID[playerid], "HasBlindfold", Inventory[playerid][Blindfold], "players"); PlayerTextDrawHide(playa, BlindfoldEffect[playerid]); GangZoneHideForPlayer(playa, BlindZone); Blindfolded[playa] = 0; return true; } CMD:vender(playerid, params[]) { if(!Logged{playerid}) return true; new element[10], playa = -1, price, slotid; if(sscanf(params, "s[10]U(-1)", element, playa)) return SysMsg(playerid,"Use: /vender [casa/negocio/veiculo]"); if(strcmp("casa", element, true) == 0) { if(GetPlayerHouseCount(playerid) == 0) return SysMsg(playerid,"Você não tem uma casa."); new id; if(sscanf(params, "s[10]uii", element, playa, id, price)) { for(new x = 0; x < MAX_HOUSE_PER_PLAYER; x++) { if(HasHouseKey[playerid][x] != -1) { SendClientMessageF(playerid, COLOR_WHITE, "Casa ID: %i - %s", x, HouseData[HasHouseKey[playerid][x]][HouseDescription]); } } return SysMsg(playerid,"Use: /vender Casa [ID do jogador ou nome] [ID da casa acima] [preço]"); } if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode vender isso para si mesmo."); if(id != 0 && id != 1) return SysMsg(playerid, "Casa inválida."); if(HasHouseKey[playerid][id] == -1) return SysMsg(playerid, "Você não tem uma casa nesse slot."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador."); if(GetPlayerHouseCount(playa) >= MAX_HOUSE_PER_PLAYER) return SysMsg(playerid,"Esse jogador já têm uma chave de casa."); if(price < 1 || price > 100000000) return SysMsg(playerid,"O preço está fora dos limites: $1 até $100,000,000."); SellingAsset[playerid][0] = 1; //yes/no SellingAsset[playerid][1] = playa; //playerid SellingAsset[playerid][2] = 1; //type SellingAsset[playerid][3] = HasHouseKey[playerid][id]; //id SellingAsset[playerid][4] = price; //price SellingAsset[playerid][5] = id; SendClientMessageF(playa, COLOR_WHITE, "%s quer vender sua casa(%s) por $%s. Use '/aceitar casa' para confirmar.", NameEx(playerid), HouseData[HasHouseKey[playerid][id]][HouseDescription], format_cash(price)); SendClientMessageF(playerid, COLOR_WHITE, "Você está vendendo sua casa(%s) para %s por $%s. Ele(a) deve aceitar para confirmar.", HouseData[HasHouseKey[playerid][id]][HouseDescription], NameEx(playa), format_cash(price)); } else if(strcmp("negocio", element, true) == 0) { new bizzCount = 0; for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++) { if(PlayerBizzID[playerid][biz] != -1) bizzCount ++; } if(bizzCount == 0) return SysMsg(playerid,"Você não tem negócios para vender."); if(sscanf(params, "s[10]uii", element, playa, slotid, price)) { SysMsg(playerid, "Empresas que você pode vender:"); for(new biz = 0; biz < MAX_BIZZ_PER_PLAYER; biz++) if(PlayerBizzID[playerid][biz] != -1) SendClientMessageF(playerid, COLOR_WHITE, "Negócio ID: %i - %s", biz+1, BizzData[PlayerBizzID[playerid][biz]][BizzDescription]); SysMsg(playerid,"Use: /vender Negocio [ID do jogador ou nome] [ID do Negocio (de cima)] [preço]"); return true; } if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode vender isso para si mesmo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador."); bizzCount = 0; for(new bz = 0; bz < MAX_BIZZ_PER_PLAYER; bz++) { if(PlayerBizzID[playa][bz] != -1) bizzCount ++; } if(bizzCount == MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"Esse jogador não pode ter mais negócios."); if(slotid < 1 || slotid > MAX_BIZZ_PER_PLAYER) return SysMsg(playerid,"ID do negócio inválido [Error 1]"); slotid --; if(PlayerBizzID[playerid][slotid] == -1) return SysMsg(playerid,"ID do negócio inválido. [Error 2]"); if(price < 1 || price > 100000000) return SysMsg(playerid,"O preço está fora dos limites: $1 à $100,000,000."); SellingAsset[playerid][0] = 1; //yes/no SellingAsset[playerid][1] = playa; //playerid SellingAsset[playerid][2] = 2; //type SellingAsset[playerid][3] = PlayerBizzID[playerid][slotid]; //id SellingAsset[playerid][4] = price; //price SendClientMessageF(playa, COLOR_WHITE, "%s quer vender seu negócio(%s) por $%s. Use '/aceitar negocio' para confirmar.", NameEx(playerid), BizzData[PlayerBizzID[playerid][slotid]][BizzDescription], format_cash(price)); SendClientMessageF(playerid, COLOR_WHITE, "Você está vendendo seu negócio(%s) para %s por $%s. Ele(a) deve aceitar primeiro para confirmar.", BizzData[PlayerBizzID[playerid][slotid]][BizzDescription], NameEx(playa), format_cash(price)); } else if(strcmp("veiculo", element, true) == 0) { if(GetPlayerOwnedVehicleCount(playerid) == 0) return SysMsg(playerid,"Você não possui veículos para vender."); if(sscanf(params, "s[10]uii", element, playa, slotid, price)) { new counter = 0; SysMsg(playerid, "Veículos que você pode vender:"); for(new vh = 1, x = GetVehiclePoolSize(); vh <= x; vh++) { if(VehicleData[vh][VehicleOwnerSQLID] == SQLID[playerid]) { if(!VehicleData[vh][Impounded] && !VehicleData[vh][NeedsRecovery]) { counter ++; format(gstr, sizeof(gstr), "ID do veículo: %i - %s", counter, GetVehicleName(vh)); SendClientMessage(playerid, COLOR_WHITE, gstr); } } } if(counter == 0) return SysMsg(playerid,"Você não tem veículos para vender, você não pode vender veículos imobilizados ou que exigem recuperação."); SysMsg(playerid,"Use: /vender veiculo [ID do jogador ou nome] [ID do veículo (de cima)] [preço]"); return true; } if(InvalidPlayer(playa)) return SysMsg(playerid, NOPLAYER); if(IsPlayerNPC(playa)) return SysMsg(playerid,"Esse jogador é um NPC."); if(playa == playerid) return SysMsg(playerid,"Você não pode vender isso para si mesmo."); new Float:tX,Float:tY,Float:tZ; GetPlayerPos(playa,tX,tY,tZ); if(!IsPlayerInRangeOfPoint(playerid,4.0,tX,tY,tZ)) return SysMsg(playerid,"Você deve estar perto do jogador."); if(GetPlayerOwnedVehicleCount(playa) >= MAX_VEH_PER_PLAYER) return SysMsg(playerid,"Esse jogador não pode ter mais veículos."); if(slotid < 1 || slotid > MAX_VEH_PER_PLAYER) return SysMsg(playerid,"O ID do veículo era inválido. [Error 1]"); new vehd = 0, vslot = slotid, x; for(vehd = 1, x = GetVehiclePoolSize(); vehd <= x; vehd++) { if(VehicleData[vehd][VehicleOwnerSQLID] == SQLID[playerid]) { vslot --; if(vslot != 0) continue; else break; } } if(VehicleData[vehd][DonatorCar]) return SysMsg(playerid,"Você não pode vender um carro de Donator."); if(VehicleData[vehd][Impounded]) return SysMsg(playerid,"O veículo esta apreendido, você não pode vendê-lo."); if(price < 1 || price > 10000000) return SysMsg(playerid,"O preço está fora dos limites: $1 até $10,000,000."); SellingAsset[playerid][0] = 1; //yes/no SellingAsset[playerid][1] = playa; //playerid SellingAsset[playerid][2] = 3; //type SellingAsset[playerid][3] = vehd; //id SellingAsset[playerid][4] = price; //price format(gstr, sizeof(gstr),"%s quer vender seu veículo(%s) por $%s. Use '/aceitar veiculo' para confirmar", NameEx(playerid), GetVehicleName(vehd), format_cash(price)); SendClientMessage(playa, COLOR_WHITE, gstr); format(gstr, sizeof(gstr),"Você está vendendo seu veículo(%s) para %s por $%s. Ele(a) deve aceitar para confirmar.", GetVehicleName(vehd), NameEx(playa), format_cash(price)); SendClientMessage(playerid, COLOR_WHITE, gstr); } return true; } CMD:cancelarvenda(playerid, params[]) { if(!Logged{playerid}) return true; foreach(new i: Player) { if(SellingAsset[playerid][1] == i) { if(SellingAsset[playerid][2] == 1) SysMsg(i,"O jogador que você estava comprando uma casa cancelou o acordo."); else if(SellingAsset[playerid][2] == 2) SysMsg(i,"O jogador que você estava comprando um negócio cancelou o acordo."); else if(SellingAsset[playerid][2] == 3) SysMsg(i,"O jogador que você estava comprando um veículo cancelou o negócio."); SysMsg(playerid,"Você cancelou o negócio."); SellingAsset[playerid][0] = 0; //yes/no SellingAsset[playerid][1] = -1; //playerid SellingAsset[playerid][2] = 0; //type SellingAsset[playerid][3] = -1; //id SellingAsset[playerid][4] = 0; //price SellingAsset[playerid][5] = -1; break; } } return true; } CMD:alugarquarto(playerid, params[]) { if(!Logged{playerid}) return true; if(RentRoom[playerid] > 0) return SysMsg(playerid,"Você já alugou um quarto de Motel."); new motel = GetMotelID(playerid); if(motel == 0) return SysMsg(playerid,"Você não está em nenhum motel"); mysql_format(conn, mquery, sizeof(mquery), "SELECT id FROM motel WHERE MotelID = %i AND OwnerSQLID = 0 LIMIT 1", motel); mysql_pquery(conn, mquery, "ProcessRoomRental", "dds", playerid, motel, params); return true; } CMD:estenderaluguel(playerid, params[]) { if(!Logged{playerid}) return true; if(RentRoom[playerid] == 0) return SysMsg(playerid,"Você não tem um quarto de motel alugado."); new motel = GetMotelID(playerid); if(motel == 0) return SysMsg(playerid,"Você não está perto de nenhum motel."); if(MotelData[RentRoom[playerid]][RoomDaysLeft] > 2) return SysMsg(playerid,"Você só pode estender a sua estadia aqui quando Você tem 2 ou menos dias restantes."); if(isnull(params)) return SysMsg(playerid,"Use: /estenderaluguel [quantidade de dias para adicionar]"); new daystostay = strval(params); if(daystostay < 1 || daystostay > 7) return SysMsg(playerid,"Você só pode estender a sua estadia em um máximo de 7 dias e um mínimo de 1 dia."); new fee; switch(MotelData[RentRoom[playerid]][MotelID]) { case 1,4,5: fee = 100 * daystostay; case 2,7: fee = 200 * daystostay; case 3,8,9: fee = 500 * daystostay; case 6: fee = 150 * daystostay; } if(Cash[playerid] < fee) return SysMsg(playerid,"Você não tem dinheiro suficiente para estender a sua estadia aqui."); GivePlayerCash(playerid, -fee); MotelData[RentRoom[playerid]][RoomDaysLeft] += daystostay; MySQLUpdateInt(RentRoom[playerid], "RoomDaysLeft", MotelData[RentRoom[playerid]][RoomDaysLeft], "motel"); SendClientMessageF(playerid,COLOR_GOLD,"Você ampliou a sua estadia por %i dias significa que agora Você tem %i dias restantes. O custo ?de $%i.", daystostay, MotelData[RentRoom[playerid]][RoomDaysLeft], fee); return true; } CMD:devolterquarto(playerid, params[]) { if(!Logged{playerid}) return true; if(RentRoom[playerid] == 0) return SysMsg(playerid,"Você não tem um quarto de motel."); new motel = GetMotelID(playerid); if(motel != MotelData[RentRoom[playerid]][MotelID]) return SysMsg(playerid,"Você não está perto do escritóio do motel para o checkout."); new ID = RentRoom[playerid]; MotelData[ID][RoomOwner] = 0; RentRoom[playerid] = 0; MotelWaypoint[playerid] = 0; DestroyDynamicPickup(MotelData[ID][RoomPickupID]); if(MySpawnID[playerid] == 4) { MySpawnID[playerid] = 1; MySQLUpdateInt(SQLID[playerid], "MySpawnID", MySpawnID[playerid], "players"); } mysql_format(conn, mquery, sizeof(mquery), "UPDATE motel SET OwnerSQLID=0 AND RoomDaysLeft=0 AND Weapon=0 AND WeaponAmmo=0 WHERE id=%i", ID); mysql_pquery(conn, mquery, "UpdateMotelSign", "i", MotelData[ID][MotelID] - 1); SendClientMessage(playerid,COLOR_GOLD,"Você saiu deste motel. Obrigado!"); return true; } CMD:escrevernota(playerid, params[]) { if(!Logged{playerid}) return true; for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid,3.5,HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { if(HouseData[h][HouseOwnerSQLID] > 0) { if(strlen(HouseData[h][DoorNoteMessage]) > 1) return SysMsg(playerid,"Já existe uma nota nesta porta."); if(HasHouseKey[playerid][0] == h || HasHouseKey[playerid][1] == h) return SysMsg(playerid,"Você não pode colocar uma nota em sua própria porta."); if(isnull(params)) return SysMsg(playerid,"Use: /escrevernota [mensagem]"); format(HouseData[h][DoorNoteMessage], 128, params); mysql_format(conn, mquery, sizeof(mquery), "UPDATE houses SET DoorNote = '%e' WHERE id = %i", HouseData[h][DoorNoteMessage], HouseData[h][HouseSQLID]); mysql_pquery(conn, mquery); format(gstr, sizeof(gstr),"* %s deixa uma carta com uma mensagem fixada na porta da casa. *", NameRP(playerid), HouseData[h][HouseDescription]); ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); SendClientMessageF(playerid,COLOR_GOLD,"Você deixou uma nota em %s.",HouseData[h][HouseDescription]); break; } else return SysMsg(playerid,"Esta propriedade nem sequer é comprada."); } } return true; } CMD:batenaporta(playerid, params[]) { if(!Logged{playerid}) return true; if(IsInHouseID[playerid] != -1) return SysMsg(playerid,"Você não pode bater uma porta de dentro de uma casa."); for(new h = 0; h < MAX_HOUSES; h++) { if(IsPlayerInRangeOfPoint(playerid, DOOR_PROXIMITY, HouseData[h][oPosX],HouseData[h][oPosY],HouseData[h][oPosZ]) && GetPlayerVirtualWorld(playerid) == HouseData[h][HouseExtVW]) { if(HouseData[h][HouseOwnerSQLID] != 0) { foreach(new i: Player) { if(Logged{i}) { if(IsInHouseID[i] == h) { SendClientMessageF(i, COLOR_EMOTE, "KNOCK KNOCK KNOCK ((%s))", NameRP(playerid), HouseData[h][HouseDescription]); } } } format(gstr, sizeof(gstr),"* %s bate na porta da casa. *", NameRP(playerid), HouseData[h][HouseDescription]);// exemplo bate na porta de Montgomery House ProxDetector(20.0, playerid, gstr, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE, COLOR_EMOTE); return true; } else return SysMsg(playerid,"Esta propriedade nem sequer é comprada."); } } SysMsg(playerid,"Você não está em uma porta da casa."); return true; } CMD:cquarto(playerid, params[]) { if(IsPlayerAdmin(playerid)) { if(isnull(params)) return SysMsg(playerid,"Use: /cquarto [motel id]"); if(!IsNumeric(params)) return SysMsg(playerid,"A facção deve ser um número."); new motel = strval(params); if(motel < 1) return SysMsg(playerid,"ID do motel deve ser > 0"); new Float:X, Float:Y, Float:Z; GetPlayerPos(playerid, X, Y, Z); MotelData[CurrentMotelEnumID][MotelID] = motel; MotelData[CurrentMotelEnumID][RoomX] = X; MotelData[CurrentMotelEnumID][RoomY] = Y; MotelData[CurrentMotelEnumID][RoomZ] = Z; MotelData[CurrentMotelEnumID][RoomLocked] = 0; MotelData[CurrentMotelEnumID][RoomOwner] = 0; mysql_format(conn, mquery, sizeof(mquery), "INSERT INTO motel (MotelID) VALUES (%i)", motel); mysql_pquery(conn, mquery); mysql_format(conn, mquery, sizeof(mquery), "UPDATE motel SET RoomLocked = 0, OwnerSQLID = 0, OutsideX = %f, OutsideY = %f, OutsideZ = %f WHERE id = %i", X, Y, Z, CurrentMotelEnumID); mysql_pquery(conn, mquery); CurrentMotelEnumID ++; SendClientMessageF(playerid,COLOR_GOLD, "Quarto de Motel criado: %i.", CurrentMotelEnumID); AdminLog(playerid, 0, "", "Criado novo quarto de Motel"); } else return SysMsg(playerid, AUTHMSG); return true; } CMD:annoyingobject(playerid, params[]) { if(!IsPlayerAdminLevelOK(playerid, 2)) return SysMsg(playerid, CMDFMSG); SysMsgF(playerid, "Objetos visíveis: %i. Total de objetos: %i", Streamer_CountVisibleItems(playerid, STREAMER_TYPE_OBJECT), CountDynamicObjects()); SelectObject(playerid); SetPVarInt(playerid, "SelectingAnnoyingObject", 1); return true; } CMD:verrota(playerid, params[]) { if(!Logged{playerid}) return true; new Float:x, Float:y, Float:z; gstr[0] = EOS; for(new i = 0; i < MAX_BUSSTOPS; i++) { GetDynamicObjectPos(BusStopObjectIDStart + i, x, y, z); if(IsPlayerInRangeOfPoint(playerid, 2.0, x, y, z)) { strcat(gstr, "{4BB74C}Blueberry {FFFFFF}(Panoptican, Farm, BB Acres, Centro da Cidade)\n"); strcat(gstr, "{4BB74C}Fort Carson {FFFFFF}(Estacionamento de trailers somente)\n"); strcat(gstr, "{4BB74C}Las Barrancas\n"); strcat(gstr, "{4BB74C}Tierra Robada\n"); strcat(gstr, "{4BB74C}El Quebrados\n"); strcat(gstr, "{4BB74C}Valle Ocultado\n"); strcat(gstr, "{4BB74C}Las Payasdas\n"); strcat(gstr, "{4BB74C}Hunter Quarry {FFFFFF}(via West Bone County)\n"); strcat(gstr, "{4BB74C}Fort Carson {FFFFFF}(Estacionamento de trailers, Hospital, Centro da Cidade)\n"); strcat(gstr, "{4BB74C}Hampton Barns\n"); strcat(gstr, "{4BB74C}Montgomery {FFFFFF}(Hospital, Cabbie Co, Centro da Cidade, Casino)\n"); strcat(gstr, "{4BB74C}Palomino Creek {FFFFFF}(Main Street, Bank)\n"); strcat(gstr, "{4BB74C}Dillimore {FFFFFF}(via Montgomery Cutoff)\n"); strcat(gstr, "{4BB74C}Sul de Blueberry {FFFFFF}(Panoptican, Farm, BB Acres)\n"); strcat(gstr, "{4BB74C}Estação de onibus"); Dialog_Show(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "Rota do onibus", gstr, "OK", ""); break; } } return true; } CMD:licencainfo(playerid) { if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1239.9242, 185.4836, 2091.3547)) return true; gstr[0] = EOS; strcat(gstr, "Durante um teste de condução, você terá que seguir uma determinada rota de um checkpoint a outro checkpoint, preste ATENÇÃO aos LIMITES de velocidade e mantendo seu carro intacto.\n"); strcat(gstr, "O DMV está localizado em Montgomery, ao lado do parque de trailers. (( Use /gps para encontrar a sua localização. )) Lá você pode obter as seguintes licença:\n\n"); strcat(gstr, "- Licença Geral de Veículos [GVL-1] A licença custa $100. O veículo que você usado é um admiral, não ultrapasse a velocidade permitida e não bata o veiculo, fique atento ao tempo se quiser passar.\n"); strcat(gstr, "- Licença de veículo grande [GVL-2] A licença custa $3.000. O veículo que você usa é um Mule, não ultrapasse a velocidade permitida e não bata o veiculo, fique atento ao tempo se quiser passar..\n"); strcat(gstr, "- Licença de moto [MB] A licença custa $2,500. A moto que você usa é um Sanchez, não ultrapasse a velocidade permitida e não caia da Moto, fique atento ao tempo se quiser passar.\n"); strcat(gstr, "- Licença de Barco [B ]A licença custa $4,000. O barco que você usa é um Guarda Costeira, não ultrapasse a velocidade permitida, fique atento ao tempo se quiser passar.\n"); strcat(gstr, "- Licença de helicóptero [A1] A licença custa $15,000. O helicóptero que você usa é um Pardal, não ultrapasse a velocidade permitida e não danifique o helicóptero, fique atento ao tempo se quiser passar.\n"); strcat(gstr, "- Licença de avião [A2] A licença custa $25,000. O avião que você usa é um Dodo, não ultrapasse a velocidade permitida e não bata o veiculo, fique atento ao tempo se quiser passar.\n"); ShowMessage(playerid, "Informação de Licença", gstr, "Fechar!"); return true; } CMD:info(playerid) { if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1234.6780, 180.5994, 2091.3687)) return true; gstr[0] = EOS; strcat(gstr, "O que você pode fazer no Centro de Informação?\n"); strcat(gstr, "- Saque dinheiro da sua conta bancária através de um caixa eletrônico (ATM)\n"); strcat(gstr, "- Ligue para uma pessoa ou uma linha direta através de um celular público\n"); strcat(gstr, "- Procure números de celular importantes\n"); strcat(gstr, "- Descubra como obter uma carteira de motorista\n"); strcat(gstr, "- Alugue um veículo\n"); strcat(gstr, "- Publique um anúncio no rádio SAN Network Rádio\n"); strcat(gstr, "- Encontre um endereço ou um Ponto de Interesse localizado no Condado de Red, Bone ou Flint County\n"); strcat(gstr, "- Veja uma lista de empregos a tempo inteiro e a tempo parcial disponíveis para você\n"); strcat(gstr, "- Descarte o seu veículo no lote de carros usados e coloque-o para venda\n"); strcat(gstr, "- Obter-se contratado como taxista no Cabbie Co\n"); strcat(gstr, "- Veja um mapa de todos os locais-chave em San Andreas)\n"); ShowMessage(playerid, "Centro de informações", gstr, "Fechar!"); return true; } CMD:vendainfo(playerid) { if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1226.7029, 164.5297, 2086.6648)) return true; gstr[0] = EOS; strcat(gstr, "Em primeiro lugar, você deve visitar qualquer loja geral e comprar uma caneta e um papel. Depois disso, entre em seu veículo e use '/colocaravenda PREÇO', por exemplo '/colocaravenda 5000'.\n"); strcat(gstr, "Certifique-se de estacionar o seu veículo em qualquer lugar visível, use /savecar para fazê-lo. Mantenha o celular ligado, você pode receber ligação de alguém interessado em seu veículo.\n"); strcat(gstr, "Se você mudar de idéia e desejar cancelar a venda, use /cancelarvenda."); ShowMessage(playerid, "Lote de vendas de carros usados", gstr, "Fechar!"); return true; } CMD:alugarvinfo(playerid) { if(!IsPlayerInRangeOfPoint(playerid, 2.5, 1242.5016, 164.4828, 2086.6648)) return true; gstr[0] = EOS; strcat(gstr, "Temos alguns veículos que podem ser alugados. Aqui está uma lista deles junto com seus preços:\n\n"); strcat(gstr, "- Willard - $650\n"); strcat(gstr, "- Admiral - $750\n"); strcat(gstr, "- Manana- $350\n"); strcat(gstr, "- Cadrona - $350\n"); strcat(gstr, "- Rancher - $1000\n"); strcat(gstr, "- Previon - $350\n"); strcat(gstr, "- Reefer - $1000 (localizado na baía de Palomino Creek)\n"); strcat(gstr, "- Tropic - $1500 (localizado na baía de Palomino Creek)\n\n"); strcat(gstr, "Se você deseja alugar um veículo, simplesmente escolha o que mais gosta, então insira-o e use /alugarveiculo.\n"); strcat(gstr, "Você será cobrado um determinado preço e você pagará novamente a cada hora. Quando você decide retornar o veículo, volte para a garagem e use /devolverveiculo.\n"); strcat(gstr, "Se você danificou o veículo, você será cobrado adicionalmente pelos reparos.\n"); ShowMessage(playerid, "Red County Aluguel de carros", gstr, "Fechar!"); return true; }