[FilterScript] Criador de Org VIP In-Game
#1

Filterscript

Ele foi criado com propуsito de ajudar alguns servidores que usam esse tipo de sistema e que sу conseguem ativar o sistema atualizando o servidor.

Comandos

Atualmente existe 6 comandos no sistema e sгo eles
Quote:

/pegarorg
Utilizado para entrar em uma organizaзгo ( foi criado apenas para testes )
/ativarorgvip
Utilizado para ativar alguma organizaзгo VIP que esteja desativada!
/desativarorgvip
Utilizado para desativar alguma organizaзгo VIP que esteja ativada!
/criarorgvip
Utilizado para criar alguma organizaзгo VIP.
/deletarorgvip
Utilizado para deletar alguma organizaзгo VIP.
/equiparorgvip
Utilizado para pegar seus equipamentos.
Changelog


Quote:
23/08/2013 - v1.0 (Poucos comandos e sem salvamento)

23/01/2014 - v2.0 (Sistema totalmente refeito e agora tem mais comandos e com salvamento em DOF2)

Source

pawn Код:
//
//         # INCLUDES
//
#include   <  A_SAMP  >   // Team SA-MP
#include   <   DOF2   >   // Double
#include   <   ZCMD   >   // ZeeX
#include   <   iBITS  >   // Willian_Luigi

//
//         # DEFINES
//
#define maxOrgs (5) //  Mбximo de Organizaзхes

//
//         # MACROS
//
#define Function::%0(%1) forward %0(%1); public %0(%1)
//
//         # ENUMERADORES
//
enum iNFO {
    pOrg
}

//
//         # VARНAVEIS
//
new bit1:orgVIP<MAX_PLAYERS>;
bit_array playerInfo <MAX_PLAYERS, iNFO @bit16>;
new Text3D:textOrg[maxOrgs];
new pickOrg[maxOrgs];

//
//         # STOCKS
//
stock getOrgName(Orgid) {
    new OrgName[25];
    switch(Orgid) {
        case 1: OrgName = "Polнcia Militar";
        case 2: OrgName = "Comando Vermelho";
        case 3: OrgName = "Los Vagos";
        case 4: OrgName = "Los Aztecas";
    }
    return OrgName;
}

stock equiparOrg(playerid) {
    ResetPlayerWeapons(playerid);
    SetPlayerArmour(playerid, 100.0);
    SetPlayerHealth(playerid, 100.0);
    GivePlayerWeapon(playerid, 1, 1);
    GivePlayerWeapon(playerid, 16, 10);
    GivePlayerWeapon(playerid, 24, 2001);
    GivePlayerWeapon(playerid, 25, 2001);
    GivePlayerWeapon(playerid, 29, 2001);
    GivePlayerWeapon(playerid, 31, 2001);
    GivePlayerWeapon(playerid, 34, 2001);
    SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ORG VIP {CCCCCC}]:{E9EBE8} Vocк pegou seus equipamentos!");
    return true;
}

//
//         # CALLBACKS
//
Function::loadOrgsVip() {

    new File[64], String[60];
    for(new idOrg = 0; idOrg < maxOrgs; idOrg++) {
        format(File, 64, "OrgsVIP/%i.ini", idOrg);
        if(fexist(File)) {
            setBit1(orgVIP, idOrg, DOF2::GetInt(File, "Ativada"));
            format(String, 60, "Org VIP: %s\nAperte Enter para equipar", DOF2::GetString(File, "Org"));
            textOrg[idOrg] = Create3DTextLabel(String, -1, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"), 20.0, 0, 0);
            pickOrg[idOrg] = CreatePickup(1318, 23, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"));
        }
    }
    return true;
}

//
//         # CALLBACKS NATIVAS
//
public OnFilterScriptInit() {
    loadOrgsVip();
    return true;
}

public OnFilterScriptExit () {
    DOF2::Exit();
    return true;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
    if ((newkeys == KEY_SECONDARY_ATTACK)) {
        new File[64];
        format(File, 64, "OrgsVIP/%i.ini", playerInfo[playerid][pOrg]);
        if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"))) {
            if(getBit1(orgVIP, playerInfo[playerid][pOrg]) == 0)
                return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Org VIP nгo estб ativada!");
            cmd_equiparorgvip(playerid);
        }
    }
    return true;
}

//
//         # COMANDOS
//

COMMAND:comandos(playerid)
    return SendClientMessage(playerid, -1, "{E9EBE8} /pegarorg, /ativarorgvip, /desativarorgvip, /criarorgvip, /deletarorgvip, /equiparorgvip");

COMMAND:pegarorg(playerid, params[]) {
    if(isnull(params))
        return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /pegarorg [Orgid]");
    playerInfo[playerid][pOrg] = strval(params);
    return true;
}

COMMAND:ativarorgvip(playerid, params[]) {
    new File[64], String[80];
    if(isnull(params))
        return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /ativarorgvip [Orgid]");
    format(File, 64, "OrgsVIP/%i.ini", strval(params));
    if(fexist(File)) {
        if(getBit1(orgVIP, strval(params)) == 1)
            return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Esta organizaзгo jб estб ativada");
        setBit1(orgVIP, strval(params), 1);
        DOF2::SetInt(File, "Ativada", 1);
        format(String, 60, "Org VIP: %s\nAperte Enter para equipar", DOF2::GetString(File, "Org"));
        textOrg[strval(params)] = Create3DTextLabel(String, -1, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"), 20.0, 0, 0);
        pickOrg[strval(params)] = CreatePickup(1318, 23, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z"));
        format(String, 50, "A Organizaзгo %s agora й VIP", getOrgName(strval(params)));
        SendClientMessage(playerid, -1, String);
    } else {
        format(String, 80, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Organizaзгo %i nгo й VIP", strval(params));
        SendClientMessage(playerid, -1, String);
    }
    return true;
}

COMMAND:desativarorgvip(playerid, params[]) {
    new File[64], String[50];
    if(isnull(params))
        return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /desativarorgvip [Orgid]");
    format(File, 64, "OrgsVIP/%i.ini", strval(params));
    if(fexist(File)) {
        if(getBit1(orgVIP, strval(params)) == 0)
            return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Esta organizaзгo jб estб desativada");
        setBit1(orgVIP, strval(params), 0);
        DOF2::SetInt(File, "Ativada", 0);
        Delete3DTextLabel(textOrg[strval(params)]);
        DestroyPickup(pickOrg[strval(params)]);
        format(String, 50, "A Organizaзгo %s nгo й mais VIP", getOrgName(strval(params)));
        SendClientMessage(playerid, -1, String);
    } else {
        format(String, 50, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Organizaзгo %i nгo й VIP", getOrgName(strval(params)));
        SendClientMessage(playerid, -1, String);
    }
    return true;
}

COMMAND:criarorgvip(playerid, params[]) {
    if(isnull(params))
        return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /criarorgvip [Orgid]");
    new idOrg = strval(params), Float:Position[3], File[64], String[60];
    GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
    format(File, 64, "OrgsVIP/%i.ini", idOrg);
    if(fexist(File)) {
        SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Jб existe uma ORG VIP nessa Organizaзгo!");
    } else {
        DOF2::CreateFile(File);
        DOF2::SetString(File, "Org", getOrgName(idOrg));
        DOF2::SetFloat(File, "Posicao X", Position[0]);
        DOF2::SetFloat(File, "Posicao Y", Position[1]);
        DOF2::SetFloat(File, "Posicao Z", Position[2]);
        DOF2::SetInt(File, "Ativada", 1);
        DOF2::SaveFile();
        format(String, 60, "Org VIP: %s\nAperte Enter para equipar", getOrgName(idOrg));
        textOrg[idOrg] = Create3DTextLabel(String, -1, Position[0], Position[1], Position[2], 20.0, 0, 0);
        pickOrg[idOrg] = CreatePickup(1318, 23, Position[0], Position[1], Position[2]);
    }
    return true;
}

COMMAND:deletarorgvip(playerid, params[]) {
    if(isnull(params))
        return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}USE {CCCCCC}]:{E9EBE8} /deletarorgvip [Orgid]");
    new idOrg = strval(params), Float:Position[3], File[64], String[60];
    GetPlayerPos(playerid, Position[0], Position[1], Position[2]);
    format(File, 64, "OrgsVIP/%i.ini", idOrg);
    if(fexist(File)) {
        DOF2::RemoveFile(File);
        Delete3DTextLabel(textOrg[idOrg]);
        DestroyPickup(pickOrg[idOrg]);
        format(String, 60, "A ORG VIP da Organizaзгo %s foi deletada", getOrgName(idOrg));
        SendClientMessage(playerid, -1, String);
    } else {
        SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} Nгo tem uma ORG VIP criada nessa organizaзгo!");
    }
    return true;
}

COMMAND:equiparorgvip(playerid) {
    new File[64];
    format(File, 64, "OrgsVIP/%i.ini", playerInfo[playerid][pOrg]);
    if(fexist(File)) {
        if(IsPlayerInRangeOfPoint(playerid, 2.0, DOF2::GetFloat(File, "Posicao X"), DOF2::GetFloat(File, "Posicao Y"), DOF2::GetFloat(File, "Posicao Z")) ) {
            if(getBit1(orgVIP, playerInfo[playerid][pOrg]) == 0)
                return SendClientMessage(playerid, -1, "{CCCCCC}[ {55B8D9}ERRO {CCCCCC}]:{E9EBE8} A Org VIP nгo estб ativada!");
            switch(playerInfo[playerid][pOrg]) {
                case 1: equiparOrg(playerid);
                case 2: equiparOrg(playerid);
                case 3: equiparOrg(playerid);
                case 4: equiparOrg(playerid);
            }
        }
    }
    return true;
}
Crйditos

Quote:
smiir - Criador do sistema
Willian_Luigi - Pela include iBits
SA-MP Team - Pela include a_samp
Double-O-Seven - Pela include DOF2
Zeex - pela include ZCMD

Reply
#2

muito bom parabens gostei
Reply
#3

Legal, mas vocк disse que alguns servidor tem que dar GMX pra setar org VIP... Achava que todo servidor hoje em dia jб tinha esse sistema inGame, ocmo seu FS '-'
Reply
#4

Legal.. agora vocк vai ver seu filterscript nos servidores gf's do brasil.

10/10
Reply
#5

Quote:
Originally Posted by dPlaYer_
Посмотреть сообщение
Legal.. agora vocк vai ver seu filterscript nos servidores gf's do brasil.

10/10
E Sem os crйditos...
Reply
#6

kkkk Gostei , bastante criativo ...

dPlaYer_ , daqui uns dias , todos usando a FS e outros vindo aqui com erros kkkk
Reply
#7

Quote:
Originally Posted by PT
Посмотреть сообщение
muito bom parabens gostei
vlw ;d

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
Legal, mas vocк disse que alguns servidor tem que dar GMX pra setar org VIP... Achava que todo servidor hoje em dia jб tinha esse sistema inGame, ocmo seu FS '-'
Existe muitos ainda que nгo usa

Quote:
Originally Posted by dPlaYer_
Посмотреть сообщение
Legal.. agora vocк vai ver seu filterscript nos servidores gf's do brasil.

10/10
vlw ;d, sobre mantendo os crйditos ta blz ;d

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
E Sem os crйditos...
;/ Ai vai da pessoa manter os crйditos

Quote:
Originally Posted by darkxdll
Посмотреть сообщение
kkkk Gostei , bastante criativo ...

dPlaYer_ , daqui uns dias , todos usando a FS e outros vindo aqui com erros kkkk
vlw '-'
Reply
#8

nao demorou muito

https://sampforum.blast.hk/showthread.php?tid=459611
Reply
#9

bem criativo
Reply
#10

Este sistema salva normal?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)