/getadmin - Pegar admin
/mudarnick - Comando pra mudar nick
/criarfamilia - Use para criar a famнlia
/f - Use para utilizar o chat privado da famнlia.
/fon - Use este comando para ver os players da famнlia online.
/fpermissao - Use este comando para permitir um player utilizar o sistema da famнlia.
/*
Sistema de Famнlia - RPG by hannzika
*/
#include a_samp
#include ZCMD
#include DOF2
#define corChat (0x3EBECFFF)
#define corCinza (0xA0A0A0FF)
forward checkNick(str1, str2[]);
enum pInfo {
pAdmin,
pPermissaoChat
};
new PlayerInfo[MAX_PLAYERS][pInfo];
public checkNick(str1, str2[]) {
for (new x; x < strlen(str2); x++) {
if (str1 == str2[x])
return x;
}
return -1;
}
stock getNome(playerid) {
new NAME[21];
GetPlayerName(playerid, NAME, MAX_PLAYER_NAME);
return NAME;
}
public OnFilterScriptInit() {
print("\n--------------------------------------");
print(" Sistema de Famнlia - RPG by hannzika");
print("--------------------------------------\n");
return true;
}
public OnFilterScriptExit() {
DOF2::Exit();
return true;
}
COMMAND:getadmin(playerid)
return PlayerInfo[playerid][pAdmin] = 1;
COMMAND:criarfamilia(playerid, params[]) {
if(PlayerInfo[playerid][pAdmin] < 1)
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Vocк nгo tem autorizaзгo para usar este comando!");
if(isnull(params))
return SendClientMessage(playerid, corCinza, "[ USE ]: /criarfamilia [Nome]");
new str[64];
format(str, 64, "Familias/%s.ini", params);
if(DOF2::FileExists(str))
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Jб existe uma famнlia com este nome!");
new msg[40];
format(msg, 40, "Vocк criou a famнlia %s", params);
SendClientMessage(playerid, corChat, msg);
DOF2::CreateFile(str);
DOF2::SaveFile();
return true;
}
COMMAND:fpermissao(playerid, params[]) {
if(isnull(params))
return SendClientMessage(playerid, corCinza, "[ USE ]: /fpermissao [ID]");
if(PlayerInfo[playerid][pPermissaoChat] == 0 || PlayerInfo[playerid][pAdmin] < 1)
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Vocк nгo tem permissгo para usar este comando!");
if(PlayerInfo[strval(params)][pPermissaoChat] != 0)
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Este id jб possuн permissгo!");
new file[64], family[21], index = checkNick('_', getNome(playerid));
strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
format(file, 64, "Familias/%s.ini", family);
if(!DOF2::FileExists(file))
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Vocк nгo tem famнlia ou ela nгo existe no servidor!");
new _family[18];
new _index = checkNick('_', getNome(strval(params)));
strmid(_family, getNome(strval(params)), _index + 1, MAX_PLAYER_NAME);
if (strcmp(_family, family))
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Este player nгo tem o sobrenome igual a vocк!");
new msg[128];
format(msg, 100, "Vocк autorizou %s a usar o nick da famнlia %s", getNome(strval(params)), family);
SendClientMessage(playerid, corChat, msg);
format(msg, 100, "%s autorizou vocк a usar o nick da famнlia %s", getNome(playerid), family);
SendClientMessage(playerid, corChat, msg);
PlayerInfo[strval(params)][pPermissaoChat] = 1;
return true;
}
COMMAND:fon(playerid) {
new str[128], file[64], family[21], index = checkNick('_', getNome(playerid));
strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
format(file, 64, "Familias/%s.ini", family);
if(!DOF2::FileExists(file))
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Vocк nгo tem famнlia ou ela nгo existe no servidor!");
format(str, 128, "Membros Online da %s", family);
SendClientMessage(playerid, corCinza, str);
for(new x = 0; x < GetPlayerPoolSize(); x++) {
format(str, 128, "%s (%i)", getNome(x), x);
new _family[18];
new _index = checkNick('_', getNome(x));
strmid(_family, getNome(x), _index + 1, MAX_PLAYER_NAME);
if (!strcmp(_family, family)) {
SendClientMessage(playerid, corChat, str);
}
}
return true;
}
COMMAND:ajudafamilia(playerid) {
new file[64], family[21], index = checkNick('_', getNome(playerid));
strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
format(file, 64, "Familias/%s.ini", family);
if(!DOF2::FileExists(file))
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Vocк nгo possuн famнlia ativa no servidor!");
SendClientMessage(playerid, corCinza, "{F43636}/f - {FFFFFF}Use para utilizar o chat privado da famнlia.");
SendClientMessage(playerid, corCinza, "{F43636}/fon - {FFFFFF}Use este comando para ver os players da famнlia online.");
SendClientMessage(playerid, corCinza, "{F43636}/fpermissao - {FFFFFF}Use este comando para permitir um player utilizar o sistema da famнlia.");
return true;
}
COMMAND:f(playerid, params[]) {
if(PlayerInfo[playerid][pPermissaoChat] == 0)
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Vocк nгo tem permissгo para usar este chat!");
if(isnull(params))
return SendClientMessage(playerid, corCinza, "[ USE ]: /f [Texto]");
new str[128], file[64], family[21], index = checkNick('_', getNome(playerid));
strmid(family, getNome(playerid), index + 1, MAX_PLAYER_NAME);
format(file, 64, "Familias/%s.ini", family);
if(!DOF2::FileExists(file))
return SendClientMessage(playerid, corCinza, "[ ERRO ]: Esta famнlia nгo existe!");
format(str, 128, "( Chat %s ) %s: %s", family, getNome(playerid), params);
for(new i = 0; i < GetPlayerPoolSize(); i++) {
new _family[18];
new _index = checkNick('_', getNome(i));
strmid(_family, getNome(i), _index + 1, MAX_PLAYER_NAME);
if (!strcmp(_family, family)) {
SendClientMessage(i, corChat, str);
}
}
return true;
}
COMMAND:mudarnick(playerid, params[]) {
if(isnull(params))
return SendClientMessage(playerid, corCinza, "[ USE ]: /mudarnick [Nome]");
new str[60];
format(str, 60, "Vocк mudou seu nick para %s", params);
SendClientMessage(playerid, corChat, str);
SetPlayerName(playerid, params);
return true;
}
Uma base muito boa, gostei. Agora vejamos se o pessoal conseguirб incrementar mais coisas ao usarem.
|