[FilterScript] Sistema de lemas
#1

Sistema de Lemas
  • Descriзгo
  • Mнdia(Vнdeo/Print)
  • Download
  • Mudanзas
  • Observaзхes
  • Crйditos
-----------------------------------------------
Descriзгo
Este й um simples FilterScript, feito em poucos minutos!
Nгo vн em servidores, filterscript desse modo. O unico jeito que vi eram frases ao se conectar.

Mнdia
  • Vнdeo
[ame]http://www.youtube.com/watch?v=kwIRG_7-29M[/ame]
  • Print


Download
pawn Код:
/*
     ____   ____
    |    \ /    |
    |    \/     |
    |           |
    |           |
    |           |
    |           | > Sistema de lemas

*/


// Includes
#include a_samp
#include zcmd

// Variaveis
new
    my_lema[MAX_PLAYERS][65],
    bool:pLiberado[MAX_PLAYERS],
    corselect[MAX_PLAYERS],
    Text3D:Myam_Lema[MAX_PLAYERS]
;

// Dialogs ID's
#define myamMeuLema 100
#define myamAltLema 101
#define myamAltCor  102

// Letras
#define MIN_LETRAS  5
#define MAX_LETRAS  30

// Distвncia do lema
#define MAX_RAIO    25.0

// Cores
new NomeCores[][] =
{
    {"{FFFFFF}Branco"},
    {"{000000}Preto"},
    {"{FF0000}Vermelho"},
    {"{FFFF00}Amarelo"},
    {"{FFA500}Laranja"},
    {"{7D03FF}Roxo"},
    {"{FF1493}Rosa"},
    {"{228B22}Verde"},
    {"{00FF00}Verde Claro"},
    {"{0000FF}Azul"},
    {"{00FFFF}Azul Claro"},
    {"{A9A9A9}Cinza"}
};

new CodeCores[][11] =
{
    {"FFFFFF"},
    {"000000"},
    {"FF0000"},
    {"FFFF00"},
    {"FFA500"},
    {"7D03FF"},
    {"FF1493"},
    {"228B22"},
    {"00FF00"},
    {"0000FF"},
    {"00FFFF"},
    {"A9A9A9"}
};

// Code
public OnFilterScriptInit() return print("[Myam - Sistema de lemas] Carregado com sucesso.");
public OnFilterScriptExit() return print("[Myam - Sistema de lemas] Descarregado com sucesso.");

public OnPlayerConnect(playerid)
{
    my_lema[playerid] = "{1E90FF}Nenhum";
    pLiberado[playerid] = false;
    corselect[playerid] = 0;
    return 0;
}

public OnPlayerDisconnect(playerid)
{
    Delete3DTextLabel(Myam_Lema[playerid]);
    return 0;
}

// Comandos
CMD:plema(playerid, params[])
{
    if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0xF58282AA, "Myam_ERRO: Vocк nгo й um administrador rcon.");
    if(!strlen(params) || !isNumeric(params)) return SendClientMessage(playerid, 0x8EFF8EAA, "Myam_INFO: /pLema [playerid]");
    if(!IsPlayerConnected(strval(params))) return SendClientMessage(playerid, 0xF58282AA, "Myam_ERRO: Jogador offlime.");
    static
        playerNome[MAX_PLAYER_NAME], String[100]
    ;
    if(pLiberado[strval(params)] == true)
    {
        GetPlayerName(playerid, playerNome, MAX_PLAYER_NAME);
        format(String, sizeof(String), "Myam_INFO: O administrador %s bloqueou o uso do seu lema.", playerNome);
        SendClientMessage(strval(params), 0x8EFF8EAA, String);
        GetPlayerName(strval(params), playerNome, MAX_PLAYER_NAME);
        format(String, sizeof(String), "Myam_INFO: Vocк bloqueou o uso do lema de %s.", playerNome);
        SendClientMessage(playerid, 0x8EFF8EAA, String);
        pLiberado[strval(params)] = false;
        PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
        PlayerPlaySound(strval(params), 1056, 0.0, 0.0, 0.0);
        Delete3DTextLabel(Myam_Lema[strval(params)]);
    }
    else if(pLiberado[strval(params)] == false)
    {
        GetPlayerName(playerid, playerNome, MAX_PLAYER_NAME);
        format(String, sizeof(String), "Myam_INFO: O administrador %s liberou o uso do seu lema.", playerNome);
        SendClientMessage(strval(params), 0x8EFF8EAA, String);
        GetPlayerName(strval(params), playerNome, MAX_PLAYER_NAME);
        format(String, sizeof(String), "Myam_INFO: Vocк liberou o uso do lema de %s.", playerNome);
        SendClientMessage(playerid, 0x8EFF8EAA, String);
        pLiberado[strval(params)] = true;
        PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
        PlayerPlaySound(strval(params), 1056, 0.0, 0.0, 0.0);
        if(strcmp(my_lema[strval(params)], "{1E90FF}Nenhum", false) != 0)
        {
            new create3dtext[80];
            format(create3dtext, sizeof(create3dtext), "{%s}%s", CodeCores[corselect[strval(params)]], my_lema[strval(params)]);
            Myam_Lema[strval(params)] = Create3DTextLabel(create3dtext, -1, 0.0, 0.0, 0.0, MAX_RAIO, GetPlayerVirtualWorld(strval(params)));
            Attach3DTextLabelToPlayer(Myam_Lema[strval(params)], strval(params), 0.0, 0.0, 0.4);
        }
    }
    return 1;
}

CMD:meulema(playerid)
{
    if(pLiberado[playerid] == false) return SendClientMessage(playerid, 0xF58282AA, "Myam_ERRO: Vocк nгo estб liberado para usar este comando.");
    new
        DialogString[250]
    ;
    strcat(DialogString, "Alterar meu lema\n");
    strcat(DialogString, "Alterar cor do meu lema\n");
    strcat(DialogString, "Retirar lema");
    ShowPlayerDialog(playerid, myamMeuLema, DIALOG_STYLE_LIST, "Myam_MeuLema", DialogString, "Selecionar", "Cancelar");
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new
        myam_String[358],
        String_myam[358]
    ;
    if(dialogid == myamMeuLema)
    {
        if(response)
        {
            if(listitem == 0)
            {
                format(myam_String, sizeof(myam_String), "*** Lema atual: %s\n\n", my_lema[playerid]);
                strcat(String_myam, myam_String);
                format(myam_String, sizeof(myam_String), "{DCDCDC}Mнnimo de letras: %d | Mбximo de letras: %d\n\n", MIN_LETRAS, MAX_LETRAS);
                strcat(String_myam, myam_String);
                strcat(String_myam, "- Digite abaixo o novo lema que vocк queira:");
                ShowPlayerDialog(playerid, myamAltLema, DIALOG_STYLE_INPUT, "Myam_Alt. De Lema", String_myam, "Concluir", "Cancelar");
            }
            if(listitem == 1)
            {
                for(new x = 0; x < sizeof(NomeCores); x++)
                {
                    format(myam_String, sizeof(myam_String), "%s\n", NomeCores[x]);
                    strcat(String_myam, myam_String);
                }
                ShowPlayerDialog(playerid, myamAltCor, DIALOG_STYLE_LIST, "Myam_Alt. Cor", String_myam, "Selecionar", "Cancelar");
            }
            if(listitem == 2)
            {
                my_lema[playerid] = "{1E90FF}Nenhum";
                SendClientMessage(playerid, 0x8EFF8EAA, "Myam_INFO: Seu lema foi retirado com sucesso.");
                PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
                Delete3DTextLabel(Myam_Lema[playerid]);
                corselect[playerid] = 0;
            }
        }
    }
    if(dialogid == myamAltLema)
    {
        if(response)
        {
            if(!strlen(inputtext) || strval(inputtext) && isNumeric(inputtext))
                return ShowPlayerDialog(playerid, myamAltLema, DIALOG_STYLE_INPUT, "Myam_Alt. De Lema", "- Somente letras:", "Concluir", "Cancelar");
            if(strlen(inputtext) < MIN_LETRAS || strlen(inputtext) > MAX_LETRAS)
                return ShowPlayerDialog(playerid, myamAltLema, DIALOG_STYLE_INPUT, "Myam_Alt. De Lema", "- Lema muito curto/grande.\n\nTente outro:", "Concluir", "Cancelar");
            new newlema[64];
            format(newlema, sizeof(newlema), "%s", inputtext);
            my_lema[playerid] = newlema;
            format(myam_String, sizeof(myam_String), "Myam_INFO: Seu lema foi alterado para: %s", my_lema[playerid]);
            SendClientMessage(playerid, -1, myam_String);
            PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
            Delete3DTextLabel(Myam_Lema[playerid]);
            if(strcmp(my_lema[playerid], "{1E90FF}Nenhum", false) != 0)
            {
                new create3dtext[80];
                format(create3dtext, sizeof(create3dtext), "{%s}%s", CodeCores[corselect[playerid]], my_lema[playerid]);
                Myam_Lema[playerid] = Create3DTextLabel(create3dtext, -1, 0.0, 0.0, 0.0, MAX_RAIO, GetPlayerVirtualWorld(playerid));
                Attach3DTextLabelToPlayer(Myam_Lema[playerid], playerid, 0.0, 0.0, 0.4);
            }
        }
    }
    if(dialogid == myamAltCor)
    {
        if(response)
        {
            corselect[playerid] = listitem;
            new newlema[64];
            format(newlema, sizeof(newlema), "{%s}%s", CodeCores[corselect[playerid]], my_lema[playerid]);
            my_lema[playerid] = newlema;
            format(myam_String, sizeof(myam_String), "{%s}A cor do seu lema foi alterado.", CodeCores[corselect[playerid]]);
            SendClientMessage(playerid, -1, myam_String);
            PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
            Delete3DTextLabel(Myam_Lema[playerid]);
            if(strcmp(my_lema[playerid], "{1E90FF}Nenhum", false) != 0)
            {
                new create3dtext[80];
                format(create3dtext, sizeof(create3dtext), "{%s}%s", CodeCores[corselect[playerid]], my_lema[playerid]);
                Myam_Lema[playerid] = Create3DTextLabel(create3dtext, -1, 0.0, 0.0, 0.0, MAX_RAIO, GetPlayerVirtualWorld(playerid));
                Attach3DTextLabelToPlayer(Myam_Lema[playerid], playerid, 0.0, 0.0, 0.4);
            }
        }
    }
    return 0;
}

// Nгo conheзo o autor do cуdigo:
stock isNumeric(const string[])
{
    new length=strlen(string);
    if (length==0) return false;
    for (new i = 0; i < length; i++)
    {
        if (
            (string[i] > '9' || string[i] < '0' && string[i]!='-' && string[i]!='+')
            || (string[i]=='-' && i!=0)
            || (string[i]=='+' && i!=0)
        ) return false;
    }
    if (length==1 && (string[0]=='-' || string[0]=='+')) return false;
    return true;
}

Mudanзas
Em caso de conflitos de dialogs(clicar em uma e aparecer outra), mude o id dos dialogs:
pawn Код:
#define myamMeuLema 100
#define myamAltLema 101
#define myamAltCor  102
Vocк pode alterar o minнmo e o mбximo de letras do lema:
pawn Код:
#define MIN_LETRAS  5
#define MAX_LETRAS  30
Vocк tambйm pode mudar a distвncia que sera visto o lema:
pawn Код:
#define MAX_RAIO    25.0
Observaзхes
Nгo encontrei bugs, sу foi testado com dois jogadores!
Ou sejб, nгo tive como verificar cada detalhe..
Um bug, que eu imagino que aconteзa й que as Text3D buguem as vezes(nгo mexo muito com o mesmo).

Crйditos
  • Developer: Myam
  • Teste's: Apollo
  • Vнdeo(gravaзгo/ediзгo): Myam
Reply
#2

legal o sistema parabens!
Reply
#3

Good job
Reply
#4

Muito bem feito, parabйns pelo filterscript.

Crйditos a DracoBlue pela IsNumeric.
Reply
#5

Quote:
Originally Posted by Caio_Freeze
Посмотреть сообщение
legal o sistema parabens!
Quote:
Originally Posted by RayksonCouto
Посмотреть сообщение
Good job
Obrigado.

Quote:
Originally Posted by Schocc
Посмотреть сообщение
Muito bem feito, parabйns pelo filterscript.

Crйditos a DracoBlue pela IsNumeric.
Obrigado pela informaзгo. .
Reply
#6

Muito bom cara parabйns.
Reply
#7

Bom trabalho!
Reply
#8

godi jobi meu cabra do nordeste .
Reply
#9

Quote:
Originally Posted by FallweN
Посмотреть сообщение
Muito bom cara parabйns.
Quote:
Originally Posted by Nickvj7
Посмотреть сообщение
Bom trabalho!
Quote:
Originally Posted by shittt
Посмотреть сообщение
godi jobi meu cabra do nordeste .
Obrigado.
Reply
#10

Bacana, parecido com o sistema do meu servidor sу que no caso nгo uso "Lema" e sim apenas o cmd /3D.

Bom trabalho.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)