Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // # 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;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement