SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese > Lançamentos/Releases

Reply
 
Thread Tools Display Modes
Old 29/06/2019, 02:04 PM   #1
GuiKommander
Gangsta
 
GuiKommander's Avatar
 
Join Date: Dec 2016
Posts: 794
Reputation: 21
Default Colors In-Game Creator

Essa include vai criar cores dentro do Jogo.

INCLUDES NECESSÁRIAS

Code:
#include 					<a_samp>
#include                    <dini2>
#include                    <foreach>
#include                    <Pawn.CMD>
#include                        <YSI\y_hooks>
FUNÇÕES

Code:
Create_Dynamic_Color(bcolor[], bcolorname[])
LoadColors()
Save_Dynamic_Color(colorid)
ExcluirColor(colorid)
ReturnColorSelected(playerid)
ShowListaColors(playerid)
COMANDOS:

Code:
/criarcolor
/blista
/bexcluir
EXEMPLO DE USO:
PHP Code:
CMD:cores(playerid// Vai abrir uma aba com as cores que você criou
{
    
ShowListaColors(playerid);
    return 
1;
}

public 
OnPlayerSelectedColor(playeridcolor_selected[], name_color[])
{
    new
        
string[120];
        
    
format(stringsizeof(string), "Você acabou de selecionar a cor {%s}%s"color_selectedname_color);
    
SendClientMessage(playerid, -1string);
    return 
1;

PHP Code:
// ----------------------------------------------------------- //
// bbIncludes

#include                        <YSI\y_hooks>

// ----------------------------------------------------------- //
// bbDefines

forward                     OnPlayerSelectedColor(playeridcolor_selected[], name_color[]);

#define                     Loop(%0,%1)                         for(new %0 = 0; %0 != %1; %0++)

#define                     PASTA_COLORS                        "/Colors/Color %d.ini"
#define                     MAX_DYNAMIC_COLORS                  50
#define                     COLORS_POR_PAGINA                   20

// ----------------------------------------------------------- //
// bbColors

#define                     D_CRIAR_COLOR                       12522
#define                     D_CRIAR_NOME_COLOR                  12523
#define                     D_CONFIRMAR_CRIACAO                 12524
#define                     D_LISTA_COLORS                      12525

// ----------------------------------------------------------- //
// bbVars & Enums

enum ColorInfo
{
    
bID,
    
bColor[7],
    
bColorNome[20],
}

new
    
InfoColor[MAX_DYNAMIC_COLORS][ColorInfo],
    
bPlayerColor[MAX_PLAYERS][COLORS_POR_PAGINA],
    
Iterator:Colors<MAX_DYNAMIC_COLORS>;
    
// ----------------------------------------------------------- //
// bbCall Backs

hook OnGameModeInit()
{
    
LoadColors();
    return 
1;
}

hook OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if(
dialogid == D_CRIAR_COLOR)
    {
        if(
response)
        {
            if(!
strlen(inputtext))
                return 
ShowPlayerDialog(playeridD_CRIAR_COLORDIALOG_STYLE_INPUT"# Criação de uma cor..""Digite uma cor válida para ser criada\nEXEMPLO: FFFFFF que seria a cor branca.\nERRO: Você precisa digitar alguma coisa.""Prosseguir""Cancelar");

            if(
strlen(inputtext) != 6)
                return 
ShowPlayerDialog(playeridD_CRIAR_COLORDIALOG_STYLE_INPUT"# Criação de uma cor..""Digite uma cor válida para ser criada\nEXEMPLO: FFFFFF que seria a cor branca.\nERRO: Cor Inválida.""Prosseguir""Cancelar");

            
SetPVarString(playerid"bColorCriando"inputtext);

            
PC_EmulateCommand(playerid"/cornome");
        }
        return 
1;
    }

    
// -------------------------------- //

    
if(dialogid == D_CRIAR_NOME_COLOR)
    {
        if(
response)
        {
            if(!
strlen(inputtext))
            {
                new
                    
string[200];

                
format(stringsizeof(string), "{FFFFFF}Agora você precisa dar um nome para essa cor..\n\n{FFFFFF}Você escolheu essa {%s}COR {FFFFFF}, agora dê um Nome para ela.\nERRO: Você não digitou nada."inputtext);
                
ShowPlayerDialog(playeridD_CRIAR_NOME_COLORDIALOG_STYLE_INPUT"# Criação do nome da cor.."string"Criar""Voltar");
                return 
1;
            }

            if(
strlen(inputtext) < && strlen(inputtext) > 20)
            {
                new
                    
string[200];

                
format(stringsizeof(string), "{FFFFFF}Agora você precisa dar um nome para essa cor..\n\n{FFFFFF}Você escolheu essa {%s}COR {FFFFFF}, agora dê um Nome para ela.\nERRO: Você precisa digitar o nome da cor entre 4 e 20."inputtext);
                
ShowPlayerDialog(playeridD_CRIAR_NOME_COLORDIALOG_STYLE_INPUT"# Criação do nome da cor.."string"Criar""Voltar");
                return 
1;
            }

            
SetPVarString(playerid"bNomeCorCriando"inputtext);

            
// ----------------------- //

            
new
                
string[140];

            new
                
bcolor[7];

            
GetPVarString(playerid"bColorCriando"bcolor7);

            
format(stringsizeof(string), "{FFFFFF}Nome da Cor: %s\n{FFFFFF}Cor: {%s}%s\n\n{FFFFFF}Confirmar a criação da Cor?\n{FFFFFF}Clique em 'Sim' ou 'Não'"inputtextbcolorbcolor);

            
ShowPlayerDialog(playeridD_CONFIRMAR_CRIACAODIALOG_STYLE_MSGBOX"# Confirmando a criação da cor..."string"Sim""Não");
        }
        else 
PC_EmulateCommand(playerid"/criarcolor");
    }

    
// -------------------------------- //

    
if(dialogid == D_CONFIRMAR_CRIACAO)
    {
        if(
response)
        {
              if(
Iter_Count(Colors) >= MAX_DYNAMIC_COLORS)
                return 
SendClientMessage(playerid, -1"* O Limite de "#MAX_DYNAMIC_COLORS" Cores foi atingido.");

            
new
                
bcolor[7];

            
GetPVarString(playerid"bColorCriando"bcolor7);

            new
                
bcolorname[20];

            
GetPVarString(playerid"bNomeCorCriando"bcolorname20);

            
// --------------------- //

            
Create_Dynamic_Color(bcolorbcolorname);
        }
        else return 
PC_EmulateCommand(playerid"/cornome");
    }

    
// -------------------------------- //
    // bbLista

    
if(dialogid == D_LISTA_COLORS)
    {
        if(
response)
        {
            new
                
bb bPlayerColor[playerid][listitem];

            
SetPVarString(playerid"Cor Selecionada"InfoColor[bb][bColor]);

            if(
GetPVarInt(playerid"Excluindo Color") == 1ExcluirColor(bb);
            else 
SetTimerEx("OnPlayerSelectedColor"200false"is"playeridInfoColor[bb][bColor], InfoColor[bb][bColorNome]);
        }
        return 
1;
    }
    return 
0;
}

// ----------------------------------------------------------- //
// bbFunctions

Create_Dynamic_Color(bcolor[], bcolorname[])
{
    new
        
bb Iter_Free(Colors);
        
    
// --------------------- //
    
    
new
        
file[50];
        
    
format(filesizeof(file), PASTA_COLORSbb);
    
dini_Create(file);
    
    
dini_IntSet(file"ID"bb);
    
dini_Set(file"Color"bcolor);
    
dini_Set(file"Color Name"bcolorname);
    
    
InfoColor[bb][bID] = bb;
    
format(InfoColor[bb][bColor], 7bcolor);
    
format(InfoColor[bb][bColorNome], 20bcolorname);
    
    
// --------------------- //
        
    
Iter_Add(Colorsbb);
    return 
1;
}

// ----------------------------------------------------------- //

LoadColors()
{
    new
        
file[50];

    for(new 
bb 0bb MAX_DYNAMIC_COLORS; ++bb)
    {
        new
            
ccb Iter_Free(Colors);
    
        
format(filesizeof(file), PASTA_COLORSbb);
        
        if(
dini_Exists(file))
        {
            
InfoColor[ccb][bID] = dini_Int(file"ID");
            
format(InfoColor[ccb][bColor], 7dini_Get(file"Color"));
            
format(InfoColor[ccb][bColorNome], 20dini_Get(file"Color Name"));
        
            
Iter_Add(Colorsccb);
        }
    }
}

// ----------------------------------------------------------- //

Save_Dynamic_Color(colorid)
{
    new
        
file[50];

    
format(filesizeof(file), PASTA_COLORScolorid);

    
dini_IntSet(file"ID"InfoColor[colorid][bID]);
    
dini_Set(file"Color"InfoColor[colorid][bColor]);
    
dini_Set(file"Color Name"InfoColor[colorid][bColorNome]);
}

// ----------------------------------------------------------- //

ExcluirColor(colorid)
{
    new
        
file[50];

    
format(file,  sizeof(file), PASTA_COLORScolorid);
    
dini_Remove(file);

    
Iter_Remove(Colorscolorid);
}

// ----------------------------------------------------------- //

ReturnColorSelected(playerid)
{
    new
        
bcolor[7];

    
GetPVarString(playerid"Cor Selecionada"bcolor7);

    return 
bcolor;
}

// ----------------------------------------------------------- //

ShowListaColors(playerid)
{
    new
        
bLista[500], str[500], file[50];

    
// ------------------ //

    
Loop(bCOLORS_POR_PAGINAbPlayerColor[playerid][b] = -1;

    
// ------------------ //

    
new
        
contar;

    foreach(new 
bb Colors)
    {
        
bPlayerColor[playerid][++contar] = bb;

        
format(bListasizeof(bLista), "{%s}%s - {FFFFFF}%s\n"InfoColor[bb][bColor], InfoColor[bb][bColorNome], InfoColor[bb][bColor], bb);
        
strcat(strbLista);
    }

    
ShowPlayerDialog(playeridD_LISTA_COLORSDIALOG_STYLE_LIST"# Lista de Cores"str"Selecionar""Cancelar");
    return 
1;
}

// ----------------------------------------------------------- //
// bbCommands

CMD:criarcolor(playerid)
{
    
ShowPlayerDialog(playeridD_CRIAR_COLORDIALOG_STYLE_INPUT"# Criação de uma cor..""Digite uma cor válida para ser criada\nEXEMPLO: FFFFFF que seria a cor branca.""Prosseguir""Cancelar");
    return 
1;
}

// ----------------------------------------------------------- //

CMD:cornome(playerid)
{
    new
         
bcolor[7];

    
GetPVarString(playerid"bColorCriando"bcolor7);
            
    new
         
string[150];

    
format(stringsizeof(string), "{FFFFFF}Agora você precisa dar um nome para essa cor..\n\n{FFFFFF}Você escolheu essa {%s}COR {FFFFFF}, agora dê um Nome para ela."bcolor);
    
ShowPlayerDialog(playeridD_CRIAR_NOME_COLORDIALOG_STYLE_INPUT"# Criação do nome da cor.."string"Criar""Voltar");
    return 
1;
}

// ----------------------------------------------------------- //

CMD:blista(playerid)
{
    
ShowListaColors(playerid);
    return 
1;
}

// ----------------------------------------------------------- //

CMD:bexcluir(playerid)
{
    
SetPVarInt(playerid"Excluindo Color"1);
    
ShowListaColors(playerid);
    return 
1;

Precisa haver a pasta "Colors" no ScriptFiles, sem as aspas, claro.
__________________
Programo sistemas simples até os mais complexos por remuneração.
Todos os códigos dinâmicos.
GuiKommander is offline   Reply With Quote
Old 29/06/2019, 02:12 PM   #2
Ever_SH
Huge Clucker
 
Ever_SH's Avatar
 
Join Date: Sep 2012
Location: RS - Brasil
Posts: 481
Reputation: 14
Default Re: Colors In-Game Creator

Não tive tempo de ver tudo, mas a combinação de português com inglês ficou horrível.
Quote:
ExcluirColor(colorid)
ShowListaColors(playerid)
Ever_SH is offline   Reply With Quote
Old 29/06/2019, 02:14 PM   #3
GuiKommander
Gangsta
 
GuiKommander's Avatar
 
Join Date: Dec 2016
Posts: 794
Reputation: 21
Default Re: Colors In-Game Creator

Quote:
Originally Posted by Ever_SH View Post
Não tive tempo de ver tudo, mas a combinação de português com inglês ficou horrível.
Acho que vale o conteúdo. Esses pequenos detalhes muda quem quiser.
__________________
Programo sistemas simples até os mais complexos por remuneração.
Todos os códigos dinâmicos.
GuiKommander is offline   Reply With Quote
Old 29/06/2019, 06:06 PM   #4
Augustoo
Little Clucker
 
Augustoo's Avatar
 
Join Date: Dec 2018
Location: Planeta Terra
Posts: 39
Reputation: 5
Default Re: Colors In-Game Creator

Gostei da organização dos códigos sem nada muito complexo e de fácil entendimento, Porém não vejo utilidade em criar uma cor com id, nome e salvá-la em dini2.

E outra, dof2 consegue ser melhor do que dini2.
__________________
Curioso
Augustoo is offline   Reply With Quote
Old 29/06/2019, 07:55 PM   #5
GuiKommander
Gangsta
 
GuiKommander's Avatar
 
Join Date: Dec 2016
Posts: 794
Reputation: 21
Default Re: Colors In-Game Creator

Quote:
Originally Posted by Augustoo View Post
Gostei da organização dos códigos sem nada muito complexo e de fácil entendimento, Porém não vejo utilidade em criar uma cor com id, nome e salvá-la em dini2.

E outra, dof2 consegue ser melhor do que dini2.
@ 1 No caso, eu usaria para criar cores para facções, mas existem outros exemplos..
Como: definir uma cor para uma tag, etc.. bem eficiente.

@ 2 Se você tem essa ideia pode converter manualmente de dini2 para DOF2.
__________________
Programo sistemas simples até os mais complexos por remuneração.
Todos os códigos dinâmicos.
GuiKommander is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Pedido] NPC In-game creator Malvadinho Português/Portuguese 0 03/11/2016 12:46 AM
[FilterScript] In-game NPC Creator fiki574 Filterscripts 103 26/07/2015 02:28 PM
[FilterScript] [FS] NPC Creator ( Create your own NPC In Game!) Iuri Filterscripts 93 03/01/2015 02:48 AM
[FilterScript] In-Game Pick-Up Creator [v1.0] HY Filterscripts 1 25/10/2014 07:35 PM
[FilterScript] IN GAME GATE CREATOR JPS222 Filterscripts 15 03/06/2013 08:32 AM


All times are GMT. The time now is 10:33 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.