Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include a_samp
- // Criamos as variáveis & Arrays
- new
- // Array flutuante que armazena a posição do player.
- Float:PlayerOldPosition[MAX_PLAYERS][3],
- // Array/Borleana que armazena se o player foi detido.
- bool:PlayerDetido[MAX_PLAYERS char],
- // Variável para criação de menu.
- Menu: MenuEscolhe
- ;
- public OnFilterScriptInit(){
- // Crio o menu na posição definida
- MenuEscolhe = CreateMenu("Morte Proposital", 1, 50.0, 180.0, 200.0, 200.0);
- // Adicionamos Itens no menu.
- AddMenuItem(MenuEscolhe, 0, "Sim");
- AddMenuItem(MenuEscolhe, 0, "Nao");
- return true;
- }
- // Public é chamada quando ocorre a morte do player.
- public OnPlayerDeath(playerid, killerid, reason){
- // caso o player estiver conectado, para evitar crashs.
- if(IsPlayerConnected(killerid)){
- // verificar se o player está em um veiculo
- if(IsPlayerInAnyVehicle(killerid)){
- // Armazenamos a posição do player para depois devolve-lo a cena do cime.
- GetPlayerPos(killerid, PlayerOldPosition[killerid][0],PlayerOldPosition[killerid][1],PlayerOldPosition[killerid][2]);
- // Motramos o menu para o player.
- ShowMenuForPlayer(MenuEscolhe, killerid);
- // Congelamos o player.
- TogglePlayerControllable(playerid, false);
- return false;
- }
- }
- return true;
- }
- // Public responsável pelos comandos.
- public OnPlayerCommandText(playerid, cmdtext[]){
- // Caso o player estiver preso, não poder usar comandos.
- if(PlayerDetido{playerid})
- return SendClientMessage(playerid, -1, "Players presos não podem utilizar comandos."), false;
- return false;
- }
- // Esta public é chamada quando o player seleciona uma das opções do menu acima.
- public OnPlayerSelectedMenuRow(playerid, row){
- // Verificamos qual menu estamos trabalhando
- if(GetPlayerMenu(playerid) == MenuEscolhe){
- // Verificamos também qual opção (item) ele selecionou...
- switch(row){
- // Caso for "SIM", ele faz as seguintes operações:
- case 0:{
- // Seta a Array/Boorlena que o player não está detido.
- PlayerDetido{playerid} = false;
- // Chamamos a public "JailPlayer" com os parâmetros "playerID" e o "PlayerDetido".
- CallLocalFunction(#JailPlayer, "ii", playerid, PlayerDetido{playerid});
- }
- // Caso o player escolheu "NÃO", ele manda a simples mensagem:
- case 1:{
- // Manda a mensagem para o player.
- SendClientMessage(playerid, -1, "que não se cometa mais isto.");
- }
- }
- }
- return 1;
- }
- // Quando o player fecha o menu, esta public é chamada.
- public OnPlayerExitedMenu(playerid){
- // Descongelamos o player..
- TogglePlayerControllable(playerid,true);
- return true;
- }
- // Public Criada por min, ela é chamada quando player é mandado para cadeia.
- forward JailPlayer(pid, bool:Detido); public JailPlayer(pid, bool:Detido){
- // Caso ele não estiver detido ele faz a seguintes operações..
- if(Detido == false){
- // Manda a mensagem dizendo que será solto só quando completar 25 Minutos de cadeia.
- SendClientMessage(pid, -1,"Você foi preso 25 minutos por Drive By");
- // Seta a posição do player(de uma cadeia)
- SetPlayerPos(pid, -221.059051,1408.984008,27.773437);
- // Seta o Interior do player..
- SetPlayerInterior(pid, 0);
- // Setamos a Boorleana "PlayerDetido" para true;
- PlayerDetido{pid} = true;
- // Chamamos novamente a public "JailPlayer" daqui a 25 minutos.
- SetTimerEx("JailPlayer", 1500000, false, "ii", pid, PlayerDetido{pid});
- }
- // Caso o player estiver detido.
- if(Detido == true){
- // Coloca o player na posição que estava quando matou a vitima..
- SetPlayerPos(pid, PlayerOldPosition[pid][0],PlayerOldPosition[pid][1],PlayerOldPosition[pid][2]);
- // Manda a mensagem.
- SendClientMessage(pid, -1,"Você foi solto.");
- }
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement