[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


Messages In This Thread
Criador de Org VIP In-Game - by smiiir - 23.08.2013, 18:43
Re: Criador de Org VIP In-Game - by PT - 23.08.2013, 20:18
Re: Criador de Org VIP In-Game - by Juniiro3 - 23.08.2013, 20:26
Re: Criador de Org VIP In-Game - by dPlaYer_ - 23.08.2013, 21:19
Re: Criador de Org VIP In-Game - by Juniiro3 - 23.08.2013, 21:24
Re: Criador de Org VIP In-Game - by darkxdll - 23.08.2013, 21:24
Re: Criador de Org VIP In-Game - by smiiir - 23.08.2013, 21:26
Re: Criador de Org VIP In-Game - by PT - 23.08.2013, 22:50
Re: Criador de Org VIP In-Game - by MyBlue - 24.08.2013, 12:25
Re: Criador de Org VIP In-Game - by Wellington1999 - 24.08.2013, 14:12

Forum Jump:


Users browsing this thread: 3 Guest(s)