[FilterScript] Sistema de Famнlia (RPG)
#1

Fiz um sistema de famнlia que й utilizado em alguns servidores RPG e gostaria de compartilhar com vocкs.

Nгo vou ficar personalizando a postagem.
Nгo possui muitos comandos, mas logo mais eu irei postar a nova versгo com uns sistemas inovadores.


COMANDOS
PHP Code:
/getadmin Pegar admin
/mudarnick Comando pra mudar nick
/criarfamilia - Use para criar a famнlia
/- 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
NOTA
Lembre-se de criar a pasta Familias dentro da pasta scriptfiles



CУDIGO
pawn Code:
/*
    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;
}

Pastebin: http://pastebin.com/0WsRwf0v

Й isso, beijos
Reply
#2

Simpleszinho mais bom.
Reply
#3

Bota /convidarf
Fico foda!
+rep
Reply
#4

Uma base muito boa, gostei. Agora vejamos se o pessoal conseguirб incrementar mais coisas ao usarem.
Reply
#5

a identaзгo do seu cуdigo ta у...

mas de resto tudo vale...
Reply
#6

Quote:
Originally Posted by BobbMarley
View Post
a identaзгo do seu cуdigo ta у...

mas de resto tudo vale...
Recomendo vocк copiar e colar o cуdigo no seu editor antes de querer pagar de "ZOERГO", bb.

Quote:
Originally Posted by didimk157
View Post
Simpleszinho mais bom.
Exato, obrigado.

Quote:
Originally Posted by IlanZ
View Post
Bota /convidarf
Fico foda!
+rep
Anotado, obrigado.

Quote:
Originally Posted by pWesley
View Post
Uma base muito boa, gostei. Agora vejamos se o pessoal conseguirб incrementar mais coisas ao usarem.
Sim, assim espero. Obrigado.
Reply
#7

Quote:
Originally Posted by BobbMarley
View Post
a identaзгo do seu cуdigo ta у...

mas de resto tudo vale...
.....
Reply
#8

Parabйns
Reply
#9

mentira, ficou mais ou menos, ficou legal. Usei como base
Reply
#10

Parabйns e sucesso.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)