23.08.2013, 18:43
(
Последний раз редактировалось smiiir; 24.01.2014 в 20:51.
)
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 |