[Ajuda] Sistema de criaзгo de labels in-game
#1

Fala galera, preciso da ajuda de vocкs com este FS que estou desenvolvendo a alguns dias, tinha deixado ele parado em um canto, mas quero termina-lo.
Bem, quando vou compilar, recebo o seguinte erro:
PHP код:
C:\Users\MatheusFelipe\Desktop\BCE V4.5\filterscripts\Labels.pwn(106) : error 035argument type mismatch (argument 3
Linhas 106:
PHP код:
        DOF2_SetInt(Pasta"Distancia"Msg); 
Prуximas linhas e linhas interiores:
PHP код:
    new Pasta[128], Float:Pos[3];
    
LabelID DOF2_GetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas")+1;
    
format(Pasta128PASTA_LABELSLabelID);
    if(
dialogid == Dialog_Nova_Label_Distancia)
    {
        new 
Msg[128];
        
format(Msg128inputtext);
        
DOF2_SetInt(Pasta"Distancia"Msg);
        
Create3DTextLabel(DOF2_GetString(Pasta"Texto"), DOF2_GetInt(Pasta"Cor"), DOF2_GetFloat(Pasta"PosicaoX"), DOF2_GetFloat(Pasta"PosicaoY"), DOF2_GetFloat(Pasta"PosicaoZ"), DOF2_GetInt(Pasta"Distancia"), DOF2_GetInt(Pasta"Mundo"), 0);
        
DOF2_SetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas"LabelID);
        
format(Msg128"{00FF00}Label ID: %d criada."LabelID);
        
SendClientMessage(playerid, -1Msg);
        
DOF2_SaveFile();
        return 
1;
    } 
Quem poder me ajudar, fico imensamente grato.
Abraзos.
OBS: No pastebin, na linha 106, estб faltando o ъltimo parametro, mas o ъltimo parametro que estava lб й "Msg".
Reply
#2

DOF2_SetInt й pra salvar valores inteiros dentro um arquivo, nгo?

Se sim, por que vocк estб tentando salvar uma String?

O correto seria vocк fazer um cast da var MSG para inteiro antes de usa-lo como parвmetro no mйtodo de inserзгo, creio que isso salvarб seu cуdigo.
Reply
#3

Quote:
Originally Posted by ipsNan
Посмотреть сообщение
DOF2_SetInt й pra salvar valores inteiros dentro um arquivo, nгo?

Se sim, por que vocк estб tentando salvar uma String?
Tentei salvar sу com inputtext, dava o mesmo erro, aн tentei formatar, continua a mesma coisa.

Quote:
Originally Posted by ipsNan
Посмотреть сообщение
O correto seria vocк fazer um cast da var MSG para inteiro antes de usa-lo como parвmetro no mйtodo de inserзгo, creio que isso salvarб seu cуdigo.
cast?
Se poder explicar melhor e dar um exemplo, ficarei imensamente grato.
Reply
#4

Tanto o inputtext como o msg sгo strings, rapaz...

O parвmetro exige um valor inteiro, nгo string.

tente usar um strval, para converter de String para Int
Reply
#5

Se nгo me engano, dessa maneira aqui irб funcionar perfeitamente.. faz um tempinho que nгo uso Dof2.
PHP код:
DOF2_SetInt(Pasta"Distancia"strval(Msg)); 
Reply
#6

consegui compilar sem erros.
Porйm, o FS ainda nгo estб funcionando, segue o link para uma melhor visualizaзгo.

http://pastebin.com/xXwb0h04
Reply
#7

Distancia й valor Flutuante e nгo inteiro.

@EDIT
A native utiliza valores flutuantes para distancia, ou seja, deve-se setar valores flutuantes.

Create3DTextLabel(text[], color, Float:X, Float:Y, Float:Z, Float: DrawDistance, virtualworld, testLOS);

Salve o valor dessa forma:

PHP код:
DOF2_SetFloat(Pasta"Distancia"float(strval(inputtext))); 
Reply
#8

Erro:
C:\Users\MatheusFelipe\Desktop\BCE V4.5\filterscripts\Labels.pwn(10 : error 035: argument type mismatch (argument 1)
Linha 108 й a linha que vocк mandou EditPawn
Reply
#9

Quote:
Originally Posted by matheusspohr
Посмотреть сообщение
Erro:
C:\Users\MatheusFelipe\Desktop\BCE V4.5\filterscripts\Labels.pwn(10 : error 035: argument type mismatch (argument 1)
Linha 108 й a linha que vocк mandou EditPawn
Vocк tem certeza que colocou o cуdigo certo ? Testei e compilou normalmente.

PHP код:
#define FILTERSCRIPT
#define MAX_LABELS (100)
#define PASTA_LABELS "Labels/%d.lbl"
#define SISTEMA_VERSAO "1.0"
#define Dialog_Nova_Label_Cor                                                      10001
#define Dialog_Nova_Label_Distancia                                              10002
#define Amarelo                                                                 0xFFFF00FF
#define AzulForte                                                               0x0000FFFF
#define Laranja                                                                 0xFF5604FF
#define Vermelho                                                                0xFF0000FF
#define Cyan                                                                    0x00F9F9FF
#define Cinza                                                                   0xC0C0C0FF
#define Verde                                                                   0x80FF80FF
#define Rosa                                                                    0xFF00FFFF
#define AmareloClaro                                                            0xFFFF00FF
#define AzulClaroI                                                              0x00FFFFFF
#define AzulClaroII                                                             0x33CCFFFF
#define Roxo                                                                    0xA02DD2FF
#define RoxoClaro                                                               0xE285FAFF
#define VerdeClaro                                                              0x00FF00FF
#define Branco                                                                  0xFFFFFFFF
#define Preto                                                                   0x000000FF
#define VerdeOliva                                                              0x9DAD80FF
#include <a_samp>
#include <DOF2>
#include <ZCMD>
#include <sscanf2>
#if defined FILTERSCRIPT
new LabelID;
enum InfoLabel
{
    
Texto[500],
    
Cor,
    
Float:LocX,
    
Float:LocY,
    
Float:LocZ,
    
Distancia,
    
Mundo
}
new 
LabelInfo[MAX_LABELS][InfoLabel];
public 
OnFilterScriptInit()
{
    print(
"Sistema de criaзгo de label in-gane Carregado!");
    print(
SISTEMA_VERSAO);
    for(new 
i;i<MAX_LABELS;i++)
    {
        new 
Pasta[128];
        
format(Pasta128PASTA_LABELSi);
        
Create3DTextLabel(DOF2_GetString(Pasta"Texto"), DOF2_GetInt(Pasta"Cor"), DOF2_GetFloat(Pasta"PosicaoX"), DOF2_GetFloat(Pasta"PosicaoY"), DOF2_GetFloat(Pasta"PosicaoZ"), DOF2_GetFloat(Pasta"Distancia"), DOF2_GetInt(Pasta"Mundo"), 0);
    }
    if(!
DOF2_FileExists("Labels/LabelsCriadas.ini"))
     {
         
DOF2_CreateFile("Labels/LabelsCriadas.ini");
        
DOF2_SetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas"0);
         
DOF2_SaveFile();
    }
    else
        return 
0;
    
LabelID DOF2_GetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas")+1;
    return 
1;
}
public 
OnFilterScriptExit()
{
    
DOF2_Exit();
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
Pasta[128], Float:Pos[3];
    
LabelID DOF2_GetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas")+1;
    
format(Pasta128PASTA_LABELSLabelID);
    if(
dialogid == Dialog_Nova_Label_Cor)
    {
        if(!
response)return 0;
        if(
response)
        {
            if(
listitem == 0LabelInfo[LabelID][Cor] = AmareloShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 1LabelInfo[LabelID][Cor] = AzulForteShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 2LabelInfo[LabelID][Cor] = LaranjaShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 3LabelInfo[LabelID][Cor] = VermelhoShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 4LabelInfo[LabelID][Cor] = CyanShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 5LabelInfo[LabelID][Cor] = CinzaShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 6LabelInfo[LabelID][Cor] = VerdeShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 7LabelInfo[LabelID][Cor] = RosaShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 8LabelInfo[LabelID][Cor] = AzulClaroIShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 9LabelInfo[LabelID][Cor] = AzulClaroIIShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 10LabelInfo[LabelID][Cor] = RoxoShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 11LabelInfo[LabelID][Cor] = RoxoClaroShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 12LabelInfo[LabelID][Cor] = BrancoShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 13LabelInfo[LabelID][Cor] = PretoShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            if(
listitem == 14LabelInfo[LabelID][Cor] = VerdeOlivaShowPlayerDialog(playeridDialog_Nova_Label_DistanciaDIALOG_STYLE_INPUT"{FFFF00}Distвncia:""{FFFFFF}Abaixo, insira a distвncia para o player ver a nova label!""Criar""");
            
DOF2_SetInt(Pasta"Cor"LabelInfo[LabelID][Cor]);
            
GetPlayerPos(playeridPos[0], Pos[1], Pos[2]);
            
DOF2_SetFloat(Pasta"PosicaoX"Pos[0]);
            
DOF2_SetFloat(Pasta"PosicaoY"Pos[1]);
            
DOF2_SetFloat(Pasta"PosicaoZ"Pos[2]);
            
DOF2_SetInt(Pasta"Mundo"GetPlayerVirtualWorld(playerid));
        }
        return 
1;
    }
    if(
dialogid == Dialog_Nova_Label_Distancia)
    {
        new 
Msg[128];
        
DOF2_SetFloat(Pasta"Distancia"float(strval(inputtext)));
        
DOF2_SaveFile();
        
Create3DTextLabel(DOF2_GetString(Pasta"Texto"), DOF2_GetInt(Pasta"Cor"), DOF2_GetFloat(Pasta"PosicaoX"), DOF2_GetFloat(Pasta"PosicaoY"), DOF2_GetFloat(Pasta"PosicaoZ"), DOF2_GetFloat(Pasta"Distancia"), DOF2_GetInt(Pasta"Mundo"), 0);
        
DOF2_SetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas"LabelID);
        
format(Msg128"{00FF00}Label ID: %d criada."LabelID);
        
SendClientMessage(playerid, -1Msg);
        return 
1;
    }
    return 
1;
}
CMD:criarlabel(playeridparams[])
{
    new 
TextoLabel[500], Pasta[128];
    
LabelID DOF2_GetInt("Labels/LabelsCriadas.ini""Total de 3DTextLabels criadas")+1;
    
format(Pasta128PASTA_LABELSLabelID);
    if(!
IsPlayerAdmin(playerid))return SendClientMessage(playerid, -1"{FF0000}Esse comando sу pode ser executado por um admin RCON!");
    if(
sscanf(params"s[500]"TextoLabel))return SendClientMessage(playerid, -1"{FF00FF}#{FFFFFF} Uso: /CriarLabel [Texto]");
    
ShowPlayerDialog(playeridDialog_Nova_Label_CorDIALOG_STYLE_LIST"{FFFF00}Cor:""{FFFF00}Amarelo\n\
                                                                                          {0000FF}Azul Forte\n\
                                                                                         {FF5604}Laranja\n\
                                                                                         {FF0000}Vermelho\n\
                                                                                         {00F9F9}Cyan\n\
                                                                                         {C0C0C0}Cinza\n\
                                                                                         {80FF80}Verde\n\
                                                                                         {FF00FF}Rosa\n\
                                                                                         {00FFFF}Azul Claro I\n\
                                                                                         {33CCFF}Azul Claro II\n\
                                                                                         {A02DD2}Roxo\n\
                                                                                         {E285FA}Roxo Claro\n\
                                                                                         {FFFFFF}Branco\n\
                                                                                         {000000}Preto\n\
                                                                                         {9DAD80}Verde Oliva"
"Selecionar""");
     if(!
DOF2_FileExists(Pasta))
     {
         
DOF2_CreateFile(Pasta);
         
DOF2_SetString(Pasta"Texto"TextoLabel);
        
DOF2_SaveFile();
    }
    else
    {
        
DOF2_SetString(Pasta"Texto"TextoLabel);
        
DOF2_SaveFile();
    }
    return 
1;
}
stock CarregarLabel(a)
{
    new 
Pasta[128];
    
format(Pasta128PASTA_LABELSLabelInfo[a]);
    
strpack(LabelInfo[a][Texto], DOF2_GetString(Pasta"Texto"));
    
LabelInfo[a][Cor] = DOF2_GetInt(Pasta"Cor");
    
LabelInfo[a][LocX] = DOF2_GetFloat(Pasta"PosicaoX");
    
LabelInfo[a][LocY] = DOF2_GetFloat(Pasta"PosicaoY");
    
LabelInfo[a][LocZ] = DOF2_GetFloat(Pasta"PosicaoZ");
    
LabelInfo[a][Distancia] = DOF2_GetFloat(Pasta"Distancia");
    
LabelInfo[a][Mundo] =DOF2_GetInt(Pasta"Mundo");
}
stock DeletarLabel(a)
{
    new 
Pasta[128];
    
format(Pasta128PASTA_LABELSLabelInfo[a]);
    
DOF2_SetString(Pasta"Texto""Empty");
    
DOF2_SetInt(Pasta"Cor""0xFFFFFFFF");
    
DOF2_SetFloat(Pasta"PosicaoX""0.0");
    
DOF2_SetFloat(Pasta"PosicaoY""0.0");
    
DOF2_SetFloat(Pasta"PosicaoZ""0.0");
    
DOF2_SetFloat(Pasta"Distancia""0.0");
    
DOF2_SetInt(Pasta"Mundo""0");
    
DOF2_RemoveFile(Pasta);
}
#else
main(){}
#endif 
@EDIT
OBS: Nгo utilize vбrias if sendo que ele sу irб selecionar um item da lista, utilize switch ou if e else if
Reply
#10

@EditPawn: Correto, eu havia trocado algumas coisas no cуdigo, por isso deu erro.
Infelizmente, o FS continua sem funcionar, vou refaze-lo amanha novamente, pois eu jб tive de alterar ele vбrias vezes, caso ainda eu esteja com preblemas venho a procura de vocкs.

Sу tirando uma duvida, como posso fazer pra salvar as labels em 1 pasta em sequencia, label1.ini, label2.ini, para poder carregar, descarregar e deletar elas quando eu quiser in-game?
PS: Tentei fazer pela enum e acabei abandonando-a de vez, se poderem me explicar mostrando um exemplo, pode atй nгo ser de meu caso.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)