Novidades
Mostrando postagens com marcador rpg. Mostrar todas as postagens
Mostrando postagens com marcador rpg. Mostrar todas as postagens

1/30/2022

CharaDa_Fox

[VAZAMENTO] Gamemode Nacional Player 2022 Atualizada!

 Bom os scripters da NACIONAL PLAYER disponibilizaram a gamemode atualizada, porém estava faltando algumas pastas, então eu adicionei oque estava faltando, agora só ligar e jogar.


Se quiserem ver print, pesquisem pelo nome do servidor no youtube.
VirusTotal

Download Gamemode


- MAPAS EXCLUSIVOS
- VOIP LOCAL/RADIO/CELULAR
- SISTEMAS EXCLUSIVOS



1/29/2022

CharaDa_Fox

SISTEMA DE ORGANIZAÇAO PARA GAMEMODE DO ZERO SAMP ANDROID - FILTER SCRIPT

 

Banco de dados de organizações
Salvamentos de Membros, lider e sublider de organizações
Excelente para gamemodes do zero, pela qual ainda não possui salvamento das organizações, fazendo assim, podendo ter apenas 1 lider, 1 sublider é 30 membros, Limite de membros  pode ser aumentado/diminuido
Contendo comandos padrões de:
• /membros, onde mostrar todos os membros das organizações;
•/orgs, onde mostrar todos os lideres das organizações
•/limparorg, para limpar lider,sub,membros do banco de dadosda organização


https://drive.google.com/file/d/1cMnpS9FF92QANoTAQJV2IHjSNYoY4wtb/view?usp=sharing




9/30/2020

CharaDa_Fox

[Lançamento] Hora e Data Simples

 FilterScript Hora e Data.


Estou postando aqui um filterscript que eu tinha postado no fórum samp antes dele cair.

Sobre ele não tem muito o que falar, é um textdraw mostrando hora e data do lado direito do mapa.

Pastebin            AMX (MediaFire)            PWN (MediaFire)

Caso algum link estiver off, favor avisar neste tópico.

[Imagem: sa-mp-031.png]
--- Meus Trabalhos ---

[FilterScript] Hora e Data Simples
CharaDa_Fox

[Lançamento] Sistema Banco/Caixa Eletrônico

 Olá galera, hoje venho trazer um FS para RP/G que talvez poderá diferenciar seu servidor se o mesmo estiver criatividade.


       Esse FS é de Banco/Caixa Eletrônico poderá ter bugs
                              Obs: A versão v.2.0 estará disponível em breve aqui.

Havia postado no fórum antigo mas foi excluído..


Código:
#include <DOF2>
#include <zcmd>
#include <cpstream>

#define PASTA_CONTAS "Banco/%s.ini"
#define DIALOG_BANCO 1001
#define DIALOG_BANCO_SALDO 2001
#define DIALOG_BANCO_SAQUE 3001
#define DIALOG_BANCO_DEPOSITO 4001

public OnFilterScriptInit()
{
 print("\n---------------------------------------------------------------");
 print(" Filterscripter Banco by LuanRosa#7777 (RosaScripter)");
 print("---------------------------------------------------------------\n");
    DisableInteriorEnterExits();
}

public OnFilterScriptExit()
{
    DOF2_Exit();
 return 1;
}

public OnPlayerSpawn(playerid) {
    new aname[MAX_PLAYER_NAME], file[80];
    GetPlayerName(playerid, aname, sizeof(aname));
    format(file, sizeof(file), PASTA_CONTAS, aname);
    if(!DOF2_FileExists(file)) {
        DOF2_CreateFile(file);
        DOF2_SetInt(file, "Saldo", 500);
        GivePlayerMoney(playerid, 300);
        DOF2_SaveFile();
    }
 return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    if(newkeys == KEY_YES) {//Apertando Y
        if(IsPlayerInRangeOfPoint(playerid, 3.0, Float:x, Float:y, Float:z)) {//Menu Banco
            ShowPlayerDialog(playerid, DIALOG_BANCO, DIALOG_STYLE_LIST, "{2fcc38}Banco", "Saldo\nSacar\nDepositar\n", "Selecionar", "Cancelar");
        }
    }
 return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) {
    if(dialogid == DIALOG_BANCO) {
        switch(listitem) {
            case 0: { // Saldo
                if(response) {
                    new aname[MAX_PLAYER_NAME], file[80], string[200], Hora, Minuto, Segundo, Dia, Mes, Ano;
                    gettime(Hora, Minuto, Segundo);
                    getdate(Ano, Mes, Dia);
                    GetPlayerName(playerid, aname, sizeof(aname));
                    format(file, sizeof(file), PASTA_CONTAS, aname);
                    format(string, sizeof(string), "{FFFFFF}Banco {0fbefe}Nome Server\n\n\n{FFFFFF}Saldo em Conta {2fcc38}$%d \n\n{FFFFFF}Hora: {8de990}%02d:%02d:%02d \n\n{FFFFFF}Data: {8de990}%02d/%02d/%d", DOF2_GetInt(file, "Saldo"), Hora, Minuto, Segundo, Dia, Mes, Ano);
                    ShowPlayerDialog(playerid, DIALOG_BANCO_SALDO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Extrato", string, "Sair", "");
                    return 1;
                }
            }
            case 1: { //Saque
                if(response) {
                    ShowPlayerDialog(playerid, DIALOG_BANCO_SAQUE, DIALOG_STYLE_INPUT, "{2fca38}Saque", "{FFFFFF}Digite a quantia em que você quer sacar", "Sacar", "Cancelar");
                }
            }
            case 2: { //Deposito
                if(response) {
                    ShowPlayerDialog(playerid, DIALOG_BANCO_DEPOSITO, DIALOG_STYLE_INPUT, "{2fca38}Deposito", "{FFFFFF}Digite a quantia em que você quer depositar", "Depositar", "Cancelar");
                }
            }
        }
        return 1;
    }
    if(dialogid == DIALOG_BANCO_SAQUE) {
        if(response) {
            new aname[MAX_PLAYER_NAME], file[80], string[250], Hora, Minuto, Segundo, Dia, Mes, Ano;
            gettime(Hora, Minuto, Segundo);
            getdate(Ano, Mes, Dia);
            GetPlayerName(playerid, aname, sizeof(aname));
            format(file, sizeof(file), PASTA_CONTAS, aname);
            if(strval(inputtext) == 0) return SendClientMessage(playerid, -1, "[x] {FF0000}Você tentou sacar 0 R$ de sua conta!");
            if(strval(inputtext) > DOF2_GetInt(file, "Saldo")) return SendClientMessage(playerid, -1, "[x] {FF0000}Você não possui saldo suficiente para saque desta quantia!");
            GivePlayerMoney(playerid, strval(inputtext));
            DOF2_SetInt(file, "Saldo", (DOF2_GetInt(file, "Saldo")-strval(inputtext)));
            DOF2_SaveFile();
            format(string, sizeof(string), "{FFFFFF}Banco {0fbefe}Nome Server\n\n\n{FFFFFF}Você sacou {2fcc38}$%d \n\n{FFFFFF}Saldo em Conta {2fcc38}$%d \n\n{FFFFFF}Hora: {8de990}%02d:%02d:%02d \n\n{FFFFFF}Data: {8de990}%02d/%02d/%d", strval(inputtext), DOF2_GetInt(file, "Saldo"), Hora, Minuto, Segundo, Dia, Mes, Ano);
            ShowPlayerDialog(playerid, DIALOG_BANCO_SALDO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Saque", string, "Sair", "");
            return 1;
        }
        return 1;
    }
    if(dialogid == DIALOG_BANCO_DEPOSITO) {
        if(response) {
            new aname[MAX_PLAYER_NAME], file[80], string[250], Hora, Minuto, Segundo, Dia, Mes, Ano;
            gettime(Hora, Minuto, Segundo);
            getdate(Ano, Mes, Dia);
            GetPlayerName(playerid, aname, sizeof(aname));
            format(file, sizeof(file), PASTA_CONTAS, aname);
            if(strval(inputtext) == 0) return SendClientMessage(playerid, -1, "[x] {FF0000}Você tentou depositar 0 R$ em sua conta!");
            if(strval(inputtext) > GetPlayerMoney(playerid)) return SendClientMessage(playerid, -1, "[x] {FF0000}Você não possui está quantia em mãos para depositar!");
            GivePlayerMoney(playerid, -strval(inputtext));
            DOF2_SetInt(file, "Saldo", (DOF2_GetInt(file, "Saldo")+strval(inputtext)));
            DOF2_SaveFile();
            format(string, sizeof(string), "{FFFFFF}Banco {0fbefe}Nome Server\n\n\n{FFFFFF}Você depositou {2fcc38}$%d \n\n{FFFFFF}Saldo em Conta {2fcc38}$%d \n\n{FFFFFF}Hora: {8de990}%02d:%02d:%02d \n\n{FFFFFF}Data: {8de990}%02d/%02d/%d", strval(inputtext), DOF2_GetInt(file, "Saldo"), Hora, Minuto, Segundo, Dia, Mes, Ano);
            ShowPlayerDialog(playerid, DIALOG_BANCO_SALDO, DIALOG_STYLE_MSGBOX, "{FFFFFF}Deposito", string, "Sair", "");
            return 1;
        }
        return 1;
    }
 return 1;
}


CharaDa_Fox

[Lançamento] [FS] Sistema De Salvar Armas

 Dentro Desse Arquivo Estará Salvo Todos Slots De Arma E Munição


Sugestão: Aconselho A Mover O Fs Para Sua Gm O Código Esta Totalmente Limpo E Fácil De Adaptar Ao Seu Gamemode

OBS: O Fs Salva As armas Automaticamente Ao Deslogar E Carrega Ao Logar

Requisitos: Antes De Usar Localize Sua Pasta ( Scritpfiles ) E crie Uma Pasta Dentro Dela Chamada ( Contas )

Estarei Hospedando No Pastebin Pois Acho Melhor E Mais Fácil Para Visualização Do Código Antes Mesmo De Baixa-lo..

[FS] Aqui

Bom, Espero Que Tenha Ajudado Em Algo Big Grin  Qualquer Erro Pode Mencionar Aqui, Aceito Críticas Construtivas Qualquer Dúvida só Chamar Pm Smile
CharaDa_Fox

[Lançamento] [FS]Arma nas costas

 ARMA NAS COSTAS


Bom acho que todos já conhecem este filterscript, como o proprio nome diz ele acrecenta arma nas costas do jogador (o jogador precisa ter a arma)

Estou postando ele apenas para complementar o forúm, pois acho este FS bem útil.



Download: http://www.mediafire.com/file/iqmi5p7sge6w1zb/file



Creditos: 
XxFaTaLxX
Alguns matam, alguns roubam e outros quebram seu coração...
CharaDa_Fox

[Lançamento] Texture Studio

 [Imagem: uc?export=view&id=1p5pCpHLN9d_juteNLX887_lqEQhsJvlz]

Agora, não há desculpas para mapas não texturizados.

O que é:
Bem, é apenas um editor de mapa do jogo que permitirá que você texture até índice de material 15 (16 materiais) como bem como definir a cor desse índice de material nos objetos.

Até agora, existem apenas alguns comandos básicos de edição, já que se destinam principalmente à texturização. A ideia é que você crie seus mapas em seu editor de mapas favorito, eles podem ser importados para o Texture Studio com o comando /importmap apenas com o código de objeto CreateObject() e CreateDynamicObject() linhas são atualmente aceitas. Basta colocar seus mapas em arquivos de texto localizados na pasta /tstudio/ImportMaps/.

Sim, você precisará do textureviewer que está incluso no lançamento o comando /mtextures in game e /mtset usa esses array ids

Você pode definir quantos objetos são editáveis o padrão é 10.000 o que deve ser bom para a maioria das pessoas, definindo um valor diferente requer um recompilar.

Você pode definir os slots de material mais altos do que o padrão sendo 16, você pode aumentar isso, mas tenho certeza de que não será capaz de abrir um mapa que foi salvo em uma compilação de 16 slots. Isso ocorre porque ele salva o array no banco de dados, tenha em mente também que o SAMP só oferece suporte à re-texturização do índice 0-15, mas se isso mudar no futuro, o Texture Studio é adaptável.

Introdução ao vídeo:
https://www.youtube.com/watch?v=yk9oKoRJdds
https://www.youtube.com/watch?v=Gjr2KxMfjvQ

Comandos:
Existem atualmente 114 comandos. Consulte /thelp para obter uma lista de comandos e documentação de cada comando. Uma lista dos principais comandos e descrições curtas pode ser encontrada no readme do github (ou página principal).

Créditos:
Pottus - Criador
Crayder - Novo desenvolvedor
Y_Less - sscanf - original object model sizes - YSI
Slice - strlib - sqlitei
JaTochNietDan - Filemanager
SDraw - 3D Menu include
codectile - Objectmetry functions

Download:
Todas as novas versões só poderão ser baixadas do github localizado aqui:
https://github.com/Crayder/Texture -Studio

Wiki:
Informações de comando, uso básico e muito mais podem ser encontrados no wiki:
https://github.com/Crayder/Texture-Studio/wiki
CharaDa_Fox

[Lançamento] iFood Los Santos

 Download [1.1][/font]

Link do pastebin:[/font]
https://pastebin.com/3BRuT9zr[/font]

Download [1.0][/font]
Link do pastebin:[/font]
https://pastebin.com/TrAg8EMJ[/font]

Update 1.1:[/font]
PHP код:[/font]
Código:
+Janela de notificaзгo ('textdraw')
+Som de notificaзгo ('audiostream')
+Opзгo de aceitar corrida ('keystate') 

Comandos:[/font]
PHP код:[/font]
Código:
/ifood - habilita o 'emprego' para si prуprio/ligarapp - habilita para receber corridas/desligarapp - desabilita o recebimento de corridas/motoca - apenas para gerar a moto de entregas (config. p/ id 448, mas й modular
CharaDa_Fox

[Lançamento] Sistema de Taser

 Olá galera, hoje venho trazer um FS para RP/G que talvez poderá diferenciar seu servidor se o mesmo estiver criatividade.


       Esse FS é de Taser poderá ter bugs
                              Obs: A versão v.2.0 estará disponível em breve aqui.

Havia postado no fórum antigo mas foi excluído..
Vídeo: https://youtu.be/mke7BZbLHe4 < Final do vídeo
Código:
#define FILTERSCRIPT

#include <a_samp>
#include <zcmd>
#include <foreach>

#define TEMPO_EFEITO 10000 //10s O tempo durante o qual o jogador atingido está sob o efeito do taser.
#define TEMPO_RECARREGAR 2000 //2s O tempo após o qual o taser será dado novamente.
#define ARMA_TASER WEAPON_SILENCED // A arma que funcionará como um taser.
#define ARMA_SLOTS 2 // O slot da arma escolhida.
#define OBJETO_TASER 347 // O ID do objeto da arma escolhida.

new bool:taser[MAX_PLAYERS];
new GiveTaserAgainTimer[MAX_PLAYERS];
new lastWeapon[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
 taser[playerid] = false;
 GiveTaserAgainTimer[playerid] = 0;
 lastWeapon[playerid] = 0;

 // Pré-carregue as bibliotecas de animação usadas.
 ApplyAnimation(playerid, "SWORD", "null", 0.0, 0, 0, 0, 0, 0);
 ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0);
    SendClientMessage(playerid, -1, "Esse Servidor Usa Sistema De Taser De {00FF80} Rosascripter");
 return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
 taser[playerid] = false;
 GiveTaserAgainTimer[playerid] = 0;
 lastWeapon[playerid] = 0;
    return 1;
}

public OnPlayerUpdate(playerid)
{
 new w = GetPlayerWeapon(playerid);
 if (w != lastWeapon[playerid]) OnPlayerChangeWeapon(playerid, w, lastWeapon[playerid]);
 lastWeapon[playerid] = w;
 return 1;
}

forward OnPlayerChangeWeapon(playerid, newWeap, oldWeap);
public OnPlayerChangeWeapon(playerid, newWeap, oldWeap)
{
 if (IsPlayerAttachedObjectSlotUsed(playerid, 0) && taser[playerid]) SetPlayerArmedWeapon(playerid, 0);
 return 1;
}

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
 if (weaponid == ARMA_TASER)
 {
  if (taser[issuerid])
  {
   new Float:health;
   GetPlayerHealth(playerid, health);
   SetPlayerHealth(playerid, health+amount);
  }
 }
 return 1;
}

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
 if (weaponid == ARMA_TASER)
 {
  if (taser[playerid])
  {
   GiveTaserAgainTimer[playerid] = SetTimerEx("GiveTaserAgain", TEMPO_RECARREGAR, 0, "i", playerid);
   ApplyAnimation(playerid, "SWORD", "sword_block", 50.0, 0, 1, 0, 1, 1, 1);
   SetPlayerAttachedObject(playerid, 0, OBJETO_TASER, 6);
   SetPlayerArmedWeapon(playerid, 0);

   if (hittype == BULLET_HIT_TYPE_PLAYER) {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(hitid, x, y, z);
    foreach(Player, i) if(IsPlayerInRangeOfPoint(i, 30.0, x, y, z)) PlayAudioStreamForPlayer(i, "https://a.clyp.it/b0w3dcsr.mp3", x, y, z, 30.0, 1);
    ApplyAnimation(hitid, "CRACK", "crckdeth2", 4.1, 0, 1, 1, 1, TEMPO_EFEITO, 1);
    SetPlayerDrunkLevel(hitid, 5000);
    SetTimerEx("EndTaserEffect", TEMPO_EFEITO, 0, "i", hitid);
   }
  }
 }
 return 1;
}

forward EndTaserEffect(playerid);
public EndTaserEffect(playerid)
{
 new skin = GetPlayerSkin(playerid);
 SetPlayerSkin(playerid, skin);
 ClearAnimations(playerid, 1);
 SetPlayerDrunkLevel(playerid, 0);
 return 1;
}

9/29/2020

CharaDa_Fox

[Lançamento] Profissão Motorista do Correio[FS]

 Há um tempo atrás fiz está FS, é bem básica e deve ajudar bastante os novatos, espero que tenham gostado!




Link: https://pastebin.com/Fh9tm44D
CharaDa_Fox

Sistema de teleporte (RCON) [FS]

 Este filterscript foi criado no intuito de ajudar aos admins a se locomoverem mais rápido pelo mapa, você deverá ter a include mapandreas.inc para utilizar este FS.


Código:
#include <a_samp>
#include mapandreas

#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    print("\n--------------------------------------");
    print(" Sistema de teleporte by: Gabriel");
    print("--------------------------------------\n");
    return 1;
}

public OnFilterScriptExit()
{
    return 1;
}

#else

main()
{
    print("\n----------------------------------");
    print(" Sistema de teleporte by: Gabriel");
    print("----------------------------------\n");
}

#endif

public OnPlayerConnect(playerid)
{
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    return 1;
}

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 1)
    {
        if(!response)return SendClientMessage(playerid, -1, "Você não quis ir ao local que marcou no mapa.");
        if(IsPlayerAdmin(playerid))
        {
            SetPlayerPos(playerid, GetPVarFloat(playerid, "FindX"), GetPVarFloat(playerid, "FindY"), GetPVarFloat(playerid, "FindZ")+4);
            SendClientMessage(playerid, -1, "Você foi ao local que marcou no mapa.");
        }
        return true;
    }
    return 1;
}

public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
    return 1;
}

public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
{
    if(IsPlayerAdmin(playerid))
    {
        MapAndreas_FindZ_For2DCoord(fX,fY,fZ);

        SetPVarFloat(playerid, "FindX", fX);
        SetPVarFloat(playerid, "FindY", fY);
        SetPVarFloat(playerid, "FindZ", fZ);
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Teleporte Mapa", "Você deseja ir ao local que você marcou no mapa?", #Sim, #Não);
    }
    return 1;
}
CharaDa_Fox

[FILTERSCRIPT] 24/7s & Loja de Armas

 Olá galera, hoje venho trazer um FS para você que não quer ficar um dia inteiro fazendo 24/7 ou Ammu..


       Esse FS é de Lojas 24/7 e Armas poderá ter bugs
                              Obs: Também há Sabe Armas se sua GM não tiver poderá pegar dela..

Havia postado no fórum normal mas foi excluído..


Código:
/*
  [FilterScrit]24/7 e Ammu - Sistema de Capacete
    Criado por: Rosa Scripter.
   Ninguem esta autorizado a fazer postagens deste
 [FilterScript] em outro site, a nao ser com minha autoriza�ao !
   Todos os comandos foram feitos em ZCMD & DOF2.
      Tamanho: 40KB
   Data/Hora da criaçao: 31/03/2020 - 10:20:52
    Contato: LuanRosa#7777
*/
/* INCLUDE */
#include <a_samp>
#include < zcmd >
#include < dof2 >
/* CORES */
#define BRANCO 0xFFFFFFFF
#define AMARELO 0xFFFF00AA
#define CINZA 0xC0C0C0AA
#define VERMELHO 0xFF0D0DAA
/* DEFINES */
#define Msg SendClientMessage
#define PATH "Armas"
/* DIALOGS */
#define DIALOG_MERCADO 997
#define DIALOG_ARMAS 998
#define DIALOG_GPS 999
/* VARIÁVEIS */
enum mInfo
{
bool:pCapacete,
bool:pFerramentas
};
static MercadoInfo[MAX_PLAYERS][mInfo];
static Capacete[MAX_PLAYERS];
static bool:ArmasEntregue[MAX_PLAYERS];
static bool:GPSPos[MAX_PLAYERS];

public OnFilterScriptInit()
{
    DisableInteriorEnterExits();
                        /* PICKUPS */
    AddStaticPickup(1318,23,1368.8413,-1279.8389,13.5469);// Entrada Ammu Nation (1)
    AddStaticPickup(1318,23,1257.3035,-1584.7076,13.5469);// Entrada Ammu Nation (2)
    AddStaticPickup(1318,23,1070.8396,-1868.4392,13.5469);// Entrada Ammu Nation (3)

    AddStaticPickup(1318,23,285.4731,-41.8047,1001.5156);// Saida Ammu Nation (1)
    AddStaticPickup(1318,23,285.8652,-86.7746,1001.5229);// Saida Ammu Nation (2)
    AddStaticPickup(1318,23,296.919983,-108.071999,1001.569946);// Saida Ammu Nation (3)

    AddStaticPickup(351,23,295.9408,-38.5125,1001.5156);// Menu Armas Ammu Nation (1)
    AddStaticPickup(351,23,295.5753,-80.8056,1001.5156);// Menu Armas Ammu Nation (2)
    AddStaticPickup(351,23,291.5666,-106.3043,1001.5156);// Menu Armas Ammu Nation (3)

    AddStaticPickup(1239,23,-28.0183,-89.9501,1003.5469);// Menu Mercado 24/7 (1)
    AddStaticPickup(1239,23,-23.2907,-55.6403,1003.5469);// Menu Mercado 24/7 (2)
    AddStaticPickup(1239,23,-22.0060,-138.6284,1003.5469);// Menu Mercado 24/7 (3)

    AddStaticPickup(1318,23,1352.3535,-1759.2533,13.5078); // Entrada Mercado 24/7 (1)
    AddStaticPickup(1318,23,1928.5914,-1776.3573,13.5469); // Entrada Mercado 24/7 (2)
    AddStaticPickup(1318,23,2424.2417,-1742.7839,13.5459); // Entrada Mercado 24/7 (3)

    AddStaticPickup(1318,23,-30.9630,-92.0112,1003.5469); // Saida Mercado 24/7 (1)
    AddStaticPickup(1318,23,-27.5302,-58.2646,1003.5469); // Saida Mercado 24/7 (2)
    AddStaticPickup(1318,23,-25.8544,-141.5577,1003.5469); // Saida Mercado 24/7 (3)
                       /* 3D TEXTS */
    Create3DTextLabel("{FFFFFF}Loja de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Entrar",BRANCO,1368.8413,-1279.8389,13.5469,15,0);// Entrada Ammu Nation (1)
 Create3DTextLabel("{FFFFFF}Loja de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Entrar",BRANCO,1257.3035,-1584.7076,13.5469,15,0);// Entrada Ammu Nation (2)
 Create3DTextLabel("{FFFFFF}Loja de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Entrar",BRANCO,1070.8396,-1868.4392,13.5469,15,0);// Entrada Ammu Nation (3)

    Create3DTextLabel("{FFFFFF}Loja de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Sair",BRANCO,285.4731,-41.8047,1001.5156,15,0);// Saida Ammu Nation (1)
 Create3DTextLabel("{FFFFFF}Loja de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Sair",BRANCO,285.8652,-86.7746,1001.5229,15,0);// Saida Ammu Nation (2)
 Create3DTextLabel("{FFFFFF}Loja de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Sair",BRANCO,296.919983,-108.071999,1001.569946,15,0);// Saida Ammu Nation (3)

    Create3DTextLabel("{FFFFFF}Menu de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Comprar",BRANCO,295.9408,-38.5125,1001.5156,15,0);// Menu de Armas Ammu Nation (1)
 Create3DTextLabel("{FFFFFF}Menu de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Comprar",BRANCO,295.5753,-80.8056,1001.5156,15,0);// Menu de Armas Ammu Nation (2)
 Create3DTextLabel("{FFFFFF}Menu de Armas\nAperte {00FFFF}'Y' {FFFFFF}Para Comprar",BRANCO,291.5666,-106.3043,1001.5156,15,0);// Menu de Armas Ammu Nation (3)

    Create3DTextLabel("{FFFFFF}Menu do Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Comprar",BRANCO,-28.0183,-89.9501,1003.5469,20,0);// Menu do Mercado 24/7 (1)
 Create3DTextLabel("{FFFFFF}Menu do Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Comprar",BRANCO,-23.2907,-55.6403,1003.5469,20,0);// Menu de Mercado 24/7 (2)
    Create3DTextLabel("{FFFFFF}Menu do Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Comprar",BRANCO,-22.0060,-138.6284,1003.5469,20,0);// Menu do Mercado 24/7 (3)

    Create3DTextLabel("{FFFFFF}Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Entrar",BRANCO,1352.3535,-1759.2533,13.5078,20,0); // Entrada Mercado 24/7 (1)
 Create3DTextLabel("{FFFFFF}Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Entrar",BRANCO,1928.5914,-1776.3573,13.5469,20,0); // Entrada Mercado 24/7 (2)
 Create3DTextLabel("{FFFFFF}Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Entrar",BRANCO,2424.2417,-1742.7839,13.5459,20,0); // Entrada Mercado 24/7 (3)

    Create3DTextLabel("{FFFFFF}Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Sair",BRANCO,-30.9630,-92.0112,1003.5469,20,0); // Saida Mercado 24/7 (1)
 Create3DTextLabel("{FFFFFF}Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Sair",BRANCO,-27.5302,-58.2646,1003.5469,20,0); // Saida Mercado 24/7 (2)
 Create3DTextLabel("{FFFFFF}Mercado 24/7\nAperte {00FFFF}'Y' {FFFFFF}Para Sair",BRANCO,-25.8544,-141.5577,1003.5469,20,0); // Saida Mercado 24/7 (3)
    return 1;
}

public OnFilterScriptExit()
{
    DOF2_Exit();
    return 1;
}

public OnPlayerConnect(playerid)
{
    ArmasEntregue[playerid] = false;
    CarregarLoja(playerid);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SalvarLoja(playerid);
    SaveWeaponsToFile(playerid);
 return 1;
}

public OnPlayerSpawn(playerid)
{
    if(ArmasEntregue[playerid] == false)SetTimerEx("LoadArmasToFile",250,false,"i",playerid);
    return 1;
}

public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
{
 if(newkeys == KEY_YES && GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
 {
     cmd_entrarlojas(playerid);
     cmd_sairlojas(playerid);
  cmd_armas(playerid);
  cmd_mercado(playerid);
 }
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    if(GPSPos[playerid] == true)
    {
        GameTextForPlayer(playerid, "~b~~h~Chegou Ao Seu Destino", 1000, 1);
        GPSPos[playerid] = false;
        DisablePlayerCheckpoint(playerid);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_MERCADO)
    {
    if(response)
    {
    if(listitem == 0)
    {
        if(GetPlayerMoney(playerid) < 1000) return Msg(playerid,CINZA,"Voce nao possui R$ 1000 para comprar!");
        GivePlayerMoney(playerid, -1000);
        MercadoInfo[playerid][pFerramentas] = true;
        Msg(playerid, AMARELO ,"Agora voce pode usar o comando /concertar para reparar seu veiculo.");
    }
    if(listitem == 1)
    {
        if(GetPlayerMoney(playerid) < 500) return Msg(playerid,CINZA,"Voce nao possui R$ 500 para comprar!");
        GivePlayerMoney(playerid, -500);
        MercadoInfo[playerid][pCapacete] = true;
        Msg(playerid, AMARELO ,"Agora voce pode usar o comando /capacete e /tirarcapacete.");
    }
    if(listitem == 2)
    {
        if(GetPlayerMoney(playerid) < 100) return Msg(playerid,CINZA,"Voce nao possui R$ 100 para comprar!");
        GivePlayerMoney(playerid, -100);
        static Float:vida;
        GetPlayerHealth(playerid, vida);
        SetPlayerHealth(playerid, vida+50);
        Msg(playerid, AMARELO ,"Você comeu um Hamburguer e recuperou 50 HP.");
    }
    return 1;
    }
}

    if(dialogid == DIALOG_ARMAS)
    {
    if(response)
    {
    if(listitem == 0)
    {
        if(GetPlayerMoney(playerid) < 1000) return Msg(playerid,CINZA,"Voce nao possui R$ 1000 para comprar!");
        GivePlayerMoney(playerid, -1000);
        GivePlayerWeapon(playerid, 24 , 300);
        Msg(playerid, AMARELO , "Voce comprou uma Desert Eagle com 300 Balas.");
    }
    if(listitem == 1)
    {
        if(GetPlayerMoney(playerid) < 2000) return Msg(playerid,CINZA,"Voce nao possui R$ 2000 para comprar!");
        GivePlayerMoney(playerid, -2000);
        GivePlayerWeapon(playerid, 29 , 300);
        Msg(playerid, AMARELO , "Voce comprou uma MP5 com 300 Balas.");
    }
    if(listitem == 2)
    {
        if(GetPlayerMoney(playerid) < 3000) return Msg(playerid,CINZA,"Voce nao possui R$ 3000 para comprar!");
        GivePlayerMoney(playerid, -3000);
        GivePlayerWeapon(playerid, 25 , 150);
        Msg(playerid, AMARELO , "Voce comprou uma Shotgun com 150 Balas.");
    }
    if(listitem == 3)
    {
        if(GetPlayerMoney(playerid) < 4000) return Msg(playerid,CINZA,"Voce nao possui R$ 4000 para comprar!");
        GivePlayerMoney(playerid, -4000);
        GivePlayerWeapon(playerid, 31 , 500);
        Msg(playerid, AMARELO , "Você comprou uma M4 com 500 Balas.");
    }
    if(listitem == 4)
    {
        if(GetPlayerMoney(playerid) < 4000) return Msg(playerid,CINZA,"Voce nao possui R$ 4000 para comprar!");
        GivePlayerMoney(playerid, -4000);
        GivePlayerWeapon(playerid, 30 , 500);
        Msg(playerid, AMARELO , "Você comprou uma AK-47 com 500 Balas.");
    }
    if(listitem == 5)
    {
        if(GetPlayerMoney(playerid) < 5000) return Msg(playerid,CINZA,"Voce nao possui R$ 5000 para comprar!");
        GivePlayerMoney(playerid, -5000);
        GivePlayerWeapon(playerid, 34 , 50);
        Msg(playerid, AMARELO , "Voce comprou uma Sniper Rifle com 50 Balas.");
    }
    return 1;
    }
}

    if(dialogid == DIALOG_GPS)
    {
    if(response)
    {
    if(listitem == 0)
    {
        ShowPlayerDialog(playerid, DIALOG_GPS+1 ,DIALOG_STYLE_LIST,"GPS","{0000FF}L{FFFFFF}ojas de Armas 1\n{0000FF}L{FFFFFF}oja de Armas 2\n{0000FF}L{FFFFFF}oja de Armas 3", "Selecionar" , "Cancelar");
    }
    if(listitem == 1)
    {
        ShowPlayerDialog(playerid, DIALOG_GPS+2 ,DIALOG_STYLE_LIST,"GPS","{0000FF}M{FFFFFF}ercado 24/7 1\n{0000FF}M{FFFFFF}ercado 24/7 2\n{0000FF}M{FFFFFF}ercado 24/7 3", "Selecionar" , "Cancelar");
    }
    return 1;
    }
}

    if(dialogid == DIALOG_GPS+1)
    {
    if(response)
    {
    if(listitem == 0)
    {
        SetPlayerCheckpoint(playerid,1363.2206,-1280.5405,13.5469,8.0);
        Msg(playerid,AMARELO,"Lugar Marcado no Mapa: Loja de Armas 1");
        GPSPos[playerid] = true;
    }
    if(listitem == 1)
    {
        SetPlayerCheckpoint(playerid,1067.0222,-1868.3098,13.5469,8.0);
        Msg(playerid,AMARELO,"Lugar Marcado no Mapa: Loja de Armas 2");
        GPSPos[playerid] = true;
    }
    if(listitem == 2)
    {
        SetPlayerCheckpoint(playerid,1256.9873,-1580.2556,13.5469,8.0);
        Msg(playerid,AMARELO,"Lugar Marcado no Mapa: Loja de Armas 3");
        GPSPos[playerid] = true;
    }
    return 1;
    }
}

    if(dialogid == DIALOG_GPS+2)
    {
    if(response)
    {
    if(listitem == 0)
    {
        SetPlayerCheckpoint(playerid,1352.3535,-1759.2533,13.5078,8.0);
        Msg(playerid,AMARELO,"Lugar Marcado no Mapa: Mercado 24/7 1");
        GPSPos[playerid] = true;
    }
    if(listitem == 1)
    {
        SetPlayerCheckpoint(playerid,1928.5914,-1776.3573,13.5469,8.0);
        Msg(playerid,AMARELO,"Lugar Marcado no Mapa: Mercado 24/7 2");
        GPSPos[playerid] = true;
    }
    if(listitem == 2)
    {
        SetPlayerCheckpoint(playerid,2424.2417,-1742.7839,13.5459,8.0);
        Msg(playerid,AMARELO,"Lugar Marcado no Mapa: Mercado 24/7 3");
        GPSPos[playerid] = true;
    }
    return 1;
    }
}
 return 1;
}

CMD:gps(playerid)
{
    if(!IsPlayerConnected(playerid))return Msg(playerid, CINZA, "Voce nao esta conectado!");
    ShowPlayerDialog(playerid, DIALOG_GPS ,DIALOG_STYLE_LIST,"GPS","{0000FF}L{FFFFFF}ojas de Armas\n{0000FF}M{FFFFFF}ercados 24/7", "Selecionar" , "Cancelar");
    return 1;
}
CMD:entrarlojas(playerid)
{
    if(!IsPlayerConnected(playerid))return Msg(playerid, CINZA, "Voce nao esta conectado!");
 if (PlayerToPoint(1.0, playerid,1368.8413,-1279.8389,13.5469))//Ammu Nation 1 - Entrada
 {
     SetPlayerInterior(playerid,1);
     SetPlayerVirtualWorld(playerid, 0);
  SetPlayerPos(playerid,286.148987,-40.644398,1001.569946);
  GameTextForPlayer(playerid, "~b~~h~Ammu Nation 1", 1000, 1);
 }
 if(PlayerToPoint(1.0, playerid,1257.3035,-1584.7076,13.5469))//Ammu Nation 2 - Entrada
 {
     SetPlayerInterior(playerid, 4);
     SetPlayerVirtualWorld(playerid, 0);
     SetPlayerPos(playerid, 286.800995,-82.547600,1001.539978);
     GameTextForPlayer(playerid, "~g~~h~Ammu Nation 2", 1000, 1);
 }
 if(PlayerToPoint(1.0, playerid,1070.8396,-1868.4392,13.5469))//Ammu Nation 3 - Entrada
 {
   SetPlayerInterior(playerid, 6);
     SetPlayerVirtualWorld(playerid, 0);
     SetPlayerPos(playerid, 296.919983,-108.071999,1001.569946);
     GameTextForPlayer(playerid, "~r~~h~Ammu Nation 3", 1000, 1);
 }

    if(PlayerToPoint(1.0, playerid,1352.3535,-1759.2533,13.5078))//Mercado 24/7 1 - Entrada
 {
   SetPlayerInterior(playerid, 18);
     SetPlayerVirtualWorld(playerid, 0);
     SetPlayerPos(playerid,-30.9467,-89.6096,1003.5469);
     GameTextForPlayer(playerid, "~p~~h~Mercado 24/7 1", 1000, 1);
 }
    if(PlayerToPoint(1.0, playerid,1928.5914,-1776.3573,13.5469))//Mercado 24/7 2 - Entrada
 {
   SetPlayerInterior(playerid, 6);
     SetPlayerVirtualWorld(playerid, 0);
     SetPlayerPos(playerid, -27.5302,-58.2646,1003.5469);
     GameTextForPlayer(playerid, "~y~~h~Mercado 24/7 2", 1000, 1);
 }
    if(PlayerToPoint(1.0, playerid,2424.2417,-1742.7839,13.5459))//Mercado 24/7 3 - Entrada
 {
   SetPlayerInterior(playerid, 16);
     SetPlayerVirtualWorld(playerid, 0);
     SetPlayerPos(playerid, -25.1326,-139.0670,1003.5469);
     GameTextForPlayer(playerid, "~w~Mercado 24/7 3", 1000, 1);
 }
 return 1;
}

CMD:sairlojas(playerid)
{
 if(!IsPlayerConnected(playerid)) return Msg(playerid, CINZA, "Voce nao esta conectado!");
 if (PlayerToPoint(1.0, playerid, 285.4731,-41.8047,1001.5156))// Ammu Nation 1 - Saida
 {
   SetPlayerInterior(playerid,0);
  SetPlayerPos(playerid,1368.8413,-1279.8389,13.5469);
  SetPlayerVirtualWorld(playerid, 0);
 }
 if (PlayerToPoint(1.0, playerid, 285.8652,-86.7746,1001.5229))// Ammu Nation 2 - Saida
 {
   SetPlayerInterior(playerid,0);
  SetPlayerPos(playerid, 1257.3035,-1584.7076,13.5469);
  SetPlayerVirtualWorld(playerid, 0);
 }
 if (PlayerToPoint(1.0, playerid, 296.919983,-108.071999,1001.569946))// Ammu Nation 3 - Saida
 {
   SetPlayerInterior(playerid,0);
  SetPlayerPos(playerid, 1070.8396,-1868.4392,13.5469);
  SetPlayerVirtualWorld(playerid, 0);
 }
    if (PlayerToPoint(1.0, playerid, -30.9630,-92.0112,1003.5469))// Mercado 24/7 1 - Saida
 {
   SetPlayerInterior(playerid,0);
  SetPlayerPos(playerid, 1352.3535,-1759.2533,13.5078);
  SetPlayerVirtualWorld(playerid, 0);
 }
    if (PlayerToPoint(1.0, playerid, -27.5302,-58.2646,1003.5469))// Mercado 24/7 2 - Saida
 {
   SetPlayerInterior(playerid,0);
  SetPlayerPos(playerid, 1928.5914,-1776.3573,13.5469);
  SetPlayerVirtualWorld(playerid, 1);
 }
    if (PlayerToPoint(1.0, playerid, -25.8544,-141.5577,1003.5469))// Mercado 24/7 3 - Saida
 {
   SetPlayerInterior(playerid,0);
  SetPlayerPos(playerid, 2424.2417,-1742.7839,13.5459);
  SetPlayerVirtualWorld(playerid, 0);
 }
 return 1;
}

CMD:mercado(playerid)
{
   if(!IsPlayerConnected(playerid))return Msg(playerid, CINZA ,"Voce neo esta conectado.");
   if(PlayerToPoint(1.0, playerid, -28.0183,-89.9501,1003.5469) || PlayerToPoint(1.0, playerid, -23.2907,-55.6403,1003.5469))
   {
   ShowPlayerDialog(playerid, DIALOG_MERCADO ,DIALOG_STYLE_LIST,"Mercado 24/7","{FFFFFF}Ferramentas - {0000FF}R$ 1000\n{FFFFFF}Capacete - {0000FF}R$ 500\n{FFFFFF}Hamburguer - {0000FF}R$ 100", "Comprar" , "Sair");
   }
   return 1;
}

CMD:armas(playerid)
{
   if(!IsPlayerConnected(playerid))return Msg(playerid, CINZA ,"Voce nao esta conectado.");
   if(PlayerToPoint(2.0, playerid, 291.5666,-106.3043,1001.5156) || PlayerToPoint(2.0, playerid, 295.5753,-80.8056,1001.5156) || PlayerToPoint(2.0, playerid,295.9408,-38.5125,1001.5156))
   {
   ShowPlayerDialog(playerid, DIALOG_ARMAS ,DIALOG_STYLE_LIST,"Loja de Armas","{FFFFFF}Desert Eagle - {0000FF}R$ 2000\n{FFFFFF}MP5 - {0000FF}R$ 3000\n{FFFFFF}Shotgun - {0000FF}R$ 3500\n{FFFFFF}M4 - {0000FF}R$ 4000\n{FFFFFF}AK-47 - {0000FF}R$ 4000\n{FFFFFF}Sniper Rifle - {0000FF}R$ 5000", "Comprar" , "Sair");
   }
   return 1;
}

CMD:capacete(playerid)
{
    if(!IsPlayerInAnyVehicle(playerid))return Msg(playerid, AMARELO ,"Voce nao esta em um veiculo!");
    if(MercadoInfo[playerid][pCapacete] == true )
    {
    Capacete[playerid] = 1;
    SetPlayerAttachedObject(playerid,1,18645,2,0.07,0,0,88,75,0);
    Msg(playerid,AMARELO,"Você Colocou o Capacete Agora Voce Pode Dirigir Com Seguran�a!");
    Msg(playerid,CINZA,"Para Tirar o Capacete Use: /tirarcapacete");
    }
    else
    {
    Msg(playerid,VERMELHO,"[AVISO] Voce nao possui um Capacete.");
    }
    return 1;
}

CMD:tirarcapacete(playerid)
{
    if(Capacete[playerid] == 1)
    {
    Capacete[playerid] = 0;
    RemovePlayerAttachedObject(playerid, 1);
    }
    else
    {
    Msg(playerid, VERMELHO ,"[AVISO] Voce ja esta sem Capacete!");
    }
    return 1;
}

CMD:concertar(playerid)
{
    if(!IsPlayerInAnyVehicle(playerid))return Msg(playerid, AMARELO ,"Voce nao esta em um veiculo!");
    if(MercadoInfo[playerid][pFerramentas] == true )
    {
    SetVehicleHealth(playerid, 100);
    Msg(playerid, AMARELO ,"Seu veiculo foi reparado com sucesso.");
    }
    else
    {
    Msg(playerid, VERMELHO ,"[AVISO] Voce nao possui Ferramentas.");
    }
    return 1;
}
/* STOCKS */
stock RetornaMercado(playerid)
{
    static File[156],Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,Name,sizeof(Name));
    format(File,sizeof(File),"Mercado/%s.txt",Name);
    return File;
}

stock SalvarLoja(playerid)
{
    if(DOF2_FileExists(RetornaMercado(playerid)))
    {
    DOF2_SetBool(RetornaMercado(playerid),"Ferramentas",MercadoInfo[playerid][pFerramentas]);
    DOF2_SetBool(RetornaMercado(playerid),"Capacete",MercadoInfo[playerid][pCapacete]);
    DOF2_SaveFile();
    }
}

stock CarregarLoja(playerid)
{
    if(DOF2_FileExists(RetornaMercado(playerid)))
    {
    MercadoInfo[playerid][pFerramentas] = DOF2_GetBool(RetornaMercado(playerid),"Ferramentas");
    MercadoInfo[playerid][pCapacete] = DOF2_GetBool(RetornaMercado(playerid),"Capacete");
    }
}

SaveWeaponsToFile(playerid)
{
    new i, path[50], string[128], weaponid, ammo;
    path = GetPlayerFormattedName(playerid);
    if (!DOF2_FileExists(path)) DOF2_CreateFile(path);
    for (i=0; i<13; i++)
    {
    GetPlayerWeaponData(playerid,i,weaponid,ammo);
    format(string,sizeof(string),"Arma - %d",i);
    DOF2_SetInt(path,string,weaponid);
    format(string,sizeof(string),"Municao - %d",i);
    DOF2_SetInt(path,string,ammo == 65535 ? 0 : ammo);
    }
}

forward LoadArmasToFile(playerid);
public LoadArmasToFile(playerid)
{
    new i, path[50], string[128], weaponid, ammo;
    path = GetPlayerFormattedName(playerid);
    ResetPlayerWeapons(playerid);
    for (i=0; i<13; i++)
    {
    format(string,sizeof(string),"Arma - %d",i);
    weaponid = DOF2_GetInt(path,string);
    format(string,sizeof(string),"Municao - %d",i);
    ammo = DOF2_GetInt(path,string);
    GivePlayerWeapon(playerid,weaponid,ammo);
    }
    ArmasEntregue[playerid] = true;
}

GetPlayerFormattedName(playerid)
{
    new name[24], full[50];
    GetPlayerName(playerid,name,sizeof(name));
    format(full,sizeof(full),"%s/%s.txt",PATH,name);
    return full;
}

forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);
public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
    {
        new Float:oldposx, Float:oldposy, Float:oldposz;
        new Float:tempposx, Float:tempposy, Float:tempposz;
        GetPlayerPos(playerid, oldposx, oldposy, oldposz);
        tempposx = (oldposx -x);
        tempposy = (oldposy -y);
        tempposz = (oldposz -z);
        if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
        {
            return true;
        }
    }
    return 0;
}
CharaDa_Fox

[FILTERSCRIPT] Profissão Entregado de Valores v.1.0

 Olá galera, hoje venho trazer um FS para RP/G de Profissão Entregador De Valores, Me dediquei bastante nesse emprego quando eu trabalhava para um servidor 'Brasil Grande RolePlay'


       Esse FS é de Profissão Entregador De Valores poderá ter bugs                              Obs: A versão v.2.0 estará disponível em breve aqui.

Também Havia Postado no Fórum antigo mas foi excluído...

Código:
#include <a_samp>
#include <zcmd>

/*MACROS*/
#define SendClientFormat(%0,%1,%2,%3); format(string, sizeof(string), %2, %3); SendClientMessage(%0, %1, string);
/*ENUMS*/
enum pProf
{
 Profissao
}
/*NEWS*/
new C_Caminhao[4];
new carregado[MAX_PLAYERS] = 0;
/*Profissao*/
#define Caminhoneiro 0
#define C_Caminhoneiro 0x089226FF
/*DIALOGS*/
#define DIALOG_CAMINHAO 22
/*CORES*/
#define COR_ERRO 0xFF0000FF
#define Verde 0x31E045FF
#define Azul 0x0091FFFF
#if defined FILTERSCRIPT

public OnFilterScriptInit()
{
    /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 print("\n--------------------------------------");
 print(" Criado por: Rosa_Scripter ");
 print(" Discord: Luanziin#0800");
 print("--------------------------------------\n");
 return 1;
}

public OnFilterScriptExit()
{
 return 1;
}

#else

main()
{
 print("\n----------------------------------");
 print(" Blank Gamemode by your name here");
 print("----------------------------------\n");
}

#endif

public OnPlayerConnect(playerid)
{
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 C_Caminhao[0] = CreateVehicle(428, 1557.822021,-1011.743652,24.030277, 0.0000, 6, 6, 100);
 C_Caminhao[1] = CreateVehicle(428, 1567.376220,-1012.489990,24.034805, 0.0000, 6, 6, 100);
 C_Caminhao[2] = CreateVehicle(428, 1576.145507,-1012.222167,24.030679, 0.0000, 6, 6, 100);
 C_Caminhao[3] = CreateVehicle(428, 1585.88342207,-1011.076904,24.028594, 0.0000, 6, 6, 100);
 /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
 Create3DTextLabel("Carregue\n{FF0000}Aqui !", 0xFFFFFFFF, 1582.417968,-1041.428344,23.906250, 40.0, 0, 0);
 Create3DTextLabel("Descarregue\n{FF0000}Aqui !", 0xFFFFFFF, 2090.100341,2408.724365,10.820312, 40.0, 0,0);
 return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
 if(dialogid == DIALOG_CAMINHAO)
 {
     if(response)
     {
         switch(listitem)
         {
    case 0:
    {
              DisablePlayerCheckpoint(playerid);
              SetPlayerCheckpoint(playerid, 2090.100341,2408.724365,10.820312, 0.0);
     carregado[playerid] = 1;
     SendClientMessage(playerid, Verde, "| CARREGAMENTO | Foi marcado um ponto vermelho no seu mapa. Siga-o para descarregar !");
     return 1;
    } // CASE QUISER FAZER OUTROS CARREGAMENTOS, FASSA IGUAL AO DE CIMA.
   }
     }
 }
 return 1;
}

 CMD:cfcarregar(playerid, params[])
    {
      if(PlayerToPoint(60.0 ,playerid, 1370.212524, 1090.768676, 10.812978))
      {
   SendClientMessage(playerid, COR_ERRO, "Voce nao e um Motorista De CF");
   return 1;
     }
        new StringCat[700];
  strcat(StringCat, "{FFFFFF}Banco LV {D2691E}禄 {00FF00}R$2500\n");
  ShowPlayerDialog(playerid, DIALOG_CAMINHAO, DIALOG_STYLE_LIST, "{FFFFFF}Carregamento", StringCat, "Carregar", "Cancelar");
        carregado[playerid] = 1;
        return 1;
      }
 CMD:cfdescarregar(playerid, params[])
   {
    if(carregado[playerid] == 0 && PlayerToPoint(playerid, 10.0, 2090.100341,2408.724365,10.820312))
    {
          SendClientMessage(playerid, COR_ERRO, "O seu caminh茫o n茫o est谩 carregado!");
          return 1;
          }
                 if(carregado[playerid] == 1)
            {
                      carregado[playerid] = 0;
          DisablePlayerCheckpoint(playerid);
          SendClientMessage(playerid, Azul, "Voc锚 descarregou o seu caminh茫o e ganhou R$2500");
          GivePlayerMoney(playerid, 2500);
       return 1;
             }
    }

stock PlayerToPoint(playerid, Float:radi, Float:x, Float:y, Float:z)
{
 if(IsPlayerConnected(playerid))
 {
  new Float:oldposx, Float:oldposy, Float:oldposz;
  new Float:tempposx, Float:tempposy, Float:tempposz;
  GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  tempposx = (oldposx -x);
  tempposy = (oldposy -y);
  tempposz = (oldposz -z);
  if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  {
   return 1;
  }
 }
 return 0;
}
CharaDa_Fox

[FilterSCRIPT] Sistema de Taser

 Olá galera, hoje venho trazer um FS para RP/G que talvez poderá diferenciar seu servidor se o mesmo estiver criatividade.


       Esse FS é de Taser poderá ter bugs
                              Obs: A versão v.2.0 estará disponível em breve aqui.

Havia postado no fórum antigo mas foi excluído..
Vídeo: https://youtu.be/mke7BZbLHe4 < Final do vídeo
Código:
#define FILTERSCRIPT

#include <a_samp>
#include <zcmd>
#include <foreach>

#define TEMPO_EFEITO 10000 //10s O tempo durante o qual o jogador atingido está sob o efeito do taser.
#define TEMPO_RECARREGAR 2000 //2s O tempo após o qual o taser será dado novamente.
#define ARMA_TASER WEAPON_SILENCED // A arma que funcionará como um taser.
#define ARMA_SLOTS 2 // O slot da arma escolhida.
#define OBJETO_TASER 347 // O ID do objeto da arma escolhida.

new bool:taser[MAX_PLAYERS];
new GiveTaserAgainTimer[MAX_PLAYERS];
new lastWeapon[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
 taser[playerid] = false;
 GiveTaserAgainTimer[playerid] = 0;
 lastWeapon[playerid] = 0;

 // Pré-carregue as bibliotecas de animação usadas.
 ApplyAnimation(playerid, "SWORD", "null", 0.0, 0, 0, 0, 0, 0);
 ApplyAnimation(playerid, "CRACK", "null", 0.0, 0, 0, 0, 0, 0);
    SendClientMessage(playerid, -1, "Esse Servidor Usa Sistema De Taser De {00FF80} Rosascripter");
 return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
 taser[playerid] = false;
 GiveTaserAgainTimer[playerid] = 0;
 lastWeapon[playerid] = 0;
    return 1;
}

public OnPlayerUpdate(playerid)
{
 new w = GetPlayerWeapon(playerid);
 if (w != lastWeapon[playerid]) OnPlayerChangeWeapon(playerid, w, lastWeapon[playerid]);
 lastWeapon[playerid] = w;
 return 1;
}

forward OnPlayerChangeWeapon(playerid, newWeap, oldWeap);
public OnPlayerChangeWeapon(playerid, newWeap, oldWeap)
{
 if (IsPlayerAttachedObjectSlotUsed(playerid, 0) && taser[playerid]) SetPlayerArmedWeapon(playerid, 0);
 return 1;
}

public OnPlayerTakeDamage(playerid, issuerid, Float:amount, weaponid, bodypart)
{
 if (weaponid == ARMA_TASER)
 {
  if (taser[issuerid])
  {
   new Float:health;
   GetPlayerHealth(playerid, health);
   SetPlayerHealth(playerid, health+amount);
  }
 }
 return 1;
}

public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ)
{
 if (weaponid == ARMA_TASER)
 {
  if (taser[playerid])
  {
   GiveTaserAgainTimer[playerid] = SetTimerEx("GiveTaserAgain", TEMPO_RECARREGAR, 0, "i", playerid);
   ApplyAnimation(playerid, "SWORD", "sword_block", 50.0, 0, 1, 0, 1, 1, 1);
   SetPlayerAttachedObject(playerid, 0, OBJETO_TASER, 6);
   SetPlayerArmedWeapon(playerid, 0);

   if (hittype == BULLET_HIT_TYPE_PLAYER) {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(hitid, x, y, z);
    foreach(Player, i) if(IsPlayerInRangeOfPoint(i, 30.0, x, y, z)) PlayAudioStreamForPlayer(i, "https://a.clyp.it/b0w3dcsr.mp3", x, y, z, 30.0, 1);
    ApplyAnimation(hitid, "CRACK", "crckdeth2", 4.1, 0, 1, 1, 1, TEMPO_EFEITO, 1);
    SetPlayerDrunkLevel(hitid, 5000);
    SetTimerEx("EndTaserEffect", TEMPO_EFEITO, 0, "i", hitid);
   }
  }
 }
 return 1;