Novo Mod Planter (nome provisório)

    Compartilhe

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Ter 23 Ago 2016, 00:13

    @Fabio escreveu:size 16?
    É, por quê? Não entendi o problema? É o padrão de tamanho de bytes para pegar strings de nome de seções que vão estar no menu...

    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18098
    Reputação : 296
    Idade : 19
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Fabio em Ter 23 Ago 2016, 01:38

    @Deadstroke escreveu:
    @Fabio escreveu:size 16?
    É, por quê? Não entendi o problema? É o padrão de tamanho de bytes para pegar strings de nome de seções que vão estar no menu...

    https://github.com/cleolibrary/CLEO4/blob/master/CCustomOpcodeSystem.cpp

    Vai acontecer isso:

    Código:

                0AC6: 2@ = label @str_PEDESTRIANS offset
                0A8C: write_memory 30@ size 16 value 2@ virtual_protect 0

    Memória antes do código:
    Código:

    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

    Digamos que o endereço seja esse:
    Código:

    2@ = 0x35002063

    Depois do código:
    Código:

    63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63

    https://github.com/cleolibrary/CLEO4/blob/master/CCustomOpcodeSystem.cpp#L850
    https://github.com/cleolibrary/CLEO4/blob/master/CCustomOpcodeSystem.cpp#L860

    0x54 = 84 decimal


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Sab 27 Ago 2016, 00:35

    Ainda não consigo fazer isso direito (vide erros 1 e 2 nas linhas 64 e 66).

    Script:

    Código:
    {$cleo}
    0000:
     
    const
        sscanf = 0x8220AD
        _COUNT_SECTIONS_ = 26@    
        _TH_MEM_SECTIONS_ = 27@
        _OFFSET_SECTIONS_ = 28@    
        _COUNT_OBJS_ = 29@
        _TH_MEM_OBJS_ = 30@
        _OFFSET_OBJS_ = 31@    
    end

    var
        _COUNT_SECTIONS_ : int
        _COUNT_OBJS_ : int
    end
     
    while true
        wait 0
        
        if  8AAB:   file_exists "cleo\MapperMod.ini"
        then
            0ACD: show_text_highpriority "The file ~b~'cleo\MapperMod.ini'~s~ haven't been found." time 7000
            0A93: end_custom_thread
        end
        
        0AB1: call_scm_func @ReadAllIde 3 mod 1 offset_section 0 offset_objects 0 -> _COUNT_SECTIONS_ _COUNT_OBJS_
        wait 0
        
        0085: 1@ = _COUNT_SECTIONS_
        1@ *= 20
        0AC8: _TH_MEM_SECTIONS_ = allocate_memory_size 1@    
        0AC7: _OFFSET_SECTIONS_ = var _TH_MEM_SECTIONS_ offset
        
        //Peds
        0A8E: 3@ = _OFFSET_SECTIONS_ + 0
        0A8C: write_memory 3@ size 4 value -3 virtual_protect 0
        0A8E: 3@ = _OFFSET_SECTIONS_ + 4
        0AC6: 4@ = label @str_PEDESTRIANS offset
        0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 11
        0A8E: 3@ = _OFFSET_SECTIONS_ + 20          
        //Vehicles
        0A8C: write_memory 3@ size 4 value -2 virtual_protect 0
        0A8E: 3@ = _OFFSET_SECTIONS_ + 24
        0AC6: 4@ = label @str_VEHICLES offset
        0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 8
        0A8E: 3@ = _OFFSET_SECTIONS_ + 40            
        //Weapons
        0A8C: write_memory 3@ size 4 value -1 virtual_protect 0
        0A8E: 3@ = _OFFSET_SECTIONS_ + 44
        0AC6: 4@ = label @str_WEAPONS offset
        0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 7

        _OFFSET_SECTIONS_ += 60

        //Objects memory
        0085: 1@ = _COUNT_OBJS_
        1@ *= 40            
        0AC8: _TH_MEM_OBJS_ = allocate_memory_size 1@    
        0AC7: _OFFSET_OBJS_ = var _TH_MEM_OBJS_ offset
        
        //ERRO 1: essa função abaixo está dando crash por motivos X!!!  
        0AB1: call_scm_func @ReadAllIde 3 mod 2 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_
        
        //ERRO 2: não consigo ler os valores salvos corretamente, acredito que tenham sifo salvos de maneira errada!  
        while true
            wait 0
            if 0ADC: test_cheat "fil"
            jf continue
            0AD1: show_formatted_text_highpriority "%d %d" time 2500 _COUNT_SECTIONS_ _COUNT_OBJS_
            wait 2000
            0ACD: show_text_highpriority "SECTIONS" time 7000
            wait 2000      
            0AC7: 3@ = var _TH_MEM_SECTIONS_ offset
            For 1@ = 1 to _COUNT_SECTIONS_
                0A8D: 4@ = read_memory 3@ size 4 virtual_protect 0
                3@ += 4
                //0A8D: 5@v = read_memory 3@ size 16 virtual_protect 0
                3@ += 16
                //0AD1: show_formatted_text_highpriority "%d %s" time 1000 4@ 5@v
                0AD1: show_formatted_text_highpriority "%d" time 1000 4@
                wait 1000                                    
            end
            /*0ACD: show_text_highpriority "OBJECTS" time 7000
            wait 2000
            0085: 0@ = _TH_MEM_OBJS_
            For 1@ = 1 to _COUNT_OBJS_
                0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0
                0@ += 4
                0A8D: 3@v = read_memory 0@ size 32 virtual_protect 0
                0@ += 32
                0A8D: 10@ = read_memory 0@ size 4 virtual_protect 0
                0@ += 4            
                0AD1: show_formatted_text_highpriority "%d %s %s" time 1000 2@ 3@v 10@
                0@ += 40
                0AD1: show_formatted_text_highpriority "%d" time 1000 2@
                wait 100                                    
            end  */              
        end    
    end


    //0AB1: call_scm_func @ReadAllIde 3 mod 2 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_ -> _COUNT_SECTIONS_ _COUNT_OBJS_
    //mod: 1 = count; 2 = save    
    :ReadAllIde
    27@ = 0
    28@ = 0
    if  0A9A: 31@ = openfile "cleo\MapperMod.ini" mode "rt"  // IF and SET
    then        
        //Reading .ini lines
        0AC6: 11@ = label @Buffer_0_1_128 offset
        while   File.ReadString(31@, 11@, 128)        
            //Check if it's 'files'
            0AC6: 29@ = label @str_FILES offset
            if  0AB1: call_scm_func @StringsCompare_bySize 3 29@ 11@ Size 5
            then              
                while   File.ReadString(31@, 11@, 128)                
                    //Check if it's 'end'
                    0AC6: 2@ = label @str_END offset
                    if  0AB1: call_scm_func @StringsCompare_bySize 3 29@ 11@ Size 3
                    then    break
                    end                
                    //Read line from .ini
                    0AC6: 12@ = label @Buffer_0_2_32 offset
                    0AC6: 13@ = label @Buffer_0_3_16 offset
                    0AC6: 14@ = label @Buffer_0_4_32 offset
                    0AA7: call_function sscanf num_params 5 pop 5 receive 14@ 13@ 12@ format "%d%s%s" bufferToRead 11@ -> 15@    //readstring
                    if  15@ == 3
                    then
                        //Check if the file exists and read it
                        if  0A9A: 30@ = openfile 14@ mode "rt"  // IF and SET
                        then                        
                            //Count or save sections
                            if  0@ == 2
                            then
                                0A8D: 15@ = read_memory 12@ size 4 virtual_protect 0
                                0A8C: write_memory 1@ size 4 value 15@ virtual_protect 0
                                1@ += 4
                                0A8C: write_memory 1@ size 16 value 13@ virtual_protect 0
                                1@ += 16                              
                            end
                            27@++
                            //Count or save ide lines
                            0AB1: call_scm_func @ReadFileTest 4 file 30@ mod 0@ offset_objects 2@ section 15@ -> counter 26@
                            005A: 28@ += 26@                                                    
                        end
                    end                                    
                end
                27@ += 3    //More three lines to peds, cars and weapons
                break                
            end
        end
        file.Close(31@)        
    end
    if  0@ == 1  
    then    0AB2: ret 2 27@ 28@
    else    0AB2: ret 0
    end


    //0AB1: call_scm_func @ReadFileTest 4 file 30@ mod 0@ offset_objects 2@ section 15@ -> counter 26@
    :ReadFileTest
    0085: 30@ = 0@      
    31@ = 0
    0AC6: 10@ = label @Buffer_1_1_128 offset
    while   File.ReadString(30@, 10@, 128)
        if 0AB1: call_scm_func @IsValidString 1 10@
        jf  continue    
        gosub   @ReadFile2        
    end
    file.Close(30@)  
    0AB2: ret 1 31@


    :ReadFile2
    0AC6: 6@ = label @str_ANIM offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        0085: 29@ = 3@
        gosub   @ReadFile3
        return    
    end
    0AC6: 6@ = label @str_OBJS offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        0085: 29@ = 3@
        gosub   @ReadFile3
        return    
    end
    0AC6: 6@ = label @str_TOBJ offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        0085: 29@ = 3@
        gosub   @ReadFile3
        return    
    end
    0AC6: 6@ = label @str_WEAP offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        29@ = -1
        gosub   @ReadFile3
        return    
    end
    return


    :ReadFile3
    0AC6: 11@ = label @Buffer_1_2_32 offset  
    0AC6: 12@ = label @Buffer_1_3_32 offset  
    0AC6: 13@ = label @Buffer_1_4_32 offset
    0AC6: 14@ = label @Buffer_1_5_32 offset  

    while   File.ReadString(30@, 10@, 128)    
        //Is string valid?
        if  0AB1: call_scm_func @IsValidString 1 10@
        jf  continue        
        //Check if it's END
        0AC6: 6@ = label @str_END offset
        if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 3
        then    break
        end                    
        //Eliminate ","
        repeat
            0A8D: 21@ = read_memory 10@ size 1 virtual_protect 0
            if  21@ == 44 // ","            
            then    0A8C: write_memory 10@ size 1 value 0x20 virtual_protect 0  //Writing space (0x20) in place of "," (0x2C)
            end        
            10@ += 1
        until   21@ == 0x00 // end of text                                    
        //Reading again and checking line
        0AC6: 10@ = label @Buffer_1_1_128 offset
        0AA7: call_function sscanf num_params 6 pop 6  receive 14@ 13@ 12@ 11@ format "%d%s%s%s"  bufferToRead 10@ -> 17@    //readstring
        if  17@ == 4
        then
            31@++    
            if  1@ == 2
            then
                0A8D: 17@ = read_memory 11@ size 4 virtual_protect 0
                0A8C: write_memory 2@ size 4 value 17@ virtual_protect 0
                2@ += 4
                0A8C: write_memory 2@ size 32 value 12@ virtual_protect 0
                2@ += 32
                0A8C: write_memory 2@ size 4 value 29@ virtual_protect 0
                2@ += 4
            else
                0A8D: 21@ = read_memory 11@ size 4 virtual_protect 0
                0AD1: show_formatted_text_highpriority "%d %s %s %d" time 2000 21@ 12@ 13@ 29@
                wait 10          
            end
        end          
    end
    return
     
     
     
    //------------------------------------
     
    //nota: essa função é meio provisória, está meio adaptada às minhas necessidades do TM
    //ela é case sensitive, precisamos corrigir isso ou o 'OBJS' não será lido, somente 'objs'
    :StringsCompare_bySize {*str1, *str2, size}
    30@ = 0
    0A8D: 3@ = read_memory 0@ size 1 virtual_protect 0
    0A8D: 4@ = read_memory 1@ size 1 virtual_protect 0
    while 001D: 2@ > 30@
        0A8D: 3@ = read_memory 0@ size 1 virtual_protect 0
        0A8D: 4@ = read_memory 1@ size 1 virtual_protect 0
        if 4@ == 0x20 // ' '
        then
            1@++
            continue
        end
        if or
        3@ == 35 //#
        4@ == 35 //#
        then //ignore char diff
        else
            if 803B: 3@ <> 4@
            then
                059A: return_false
                0AB2: ret 0
            end
        end
        0@++
        1@++
        30@++
    end
    0485: return_true
    0AB2: ret 0
     
     
    :IsValidString
    0A8D: 1@ = read_memory 0@ size 1 vp 0
    if or
    1@ == 0
    1@ == 35 //#  
    1@ == 59 //;
    then
        059A:  return_false
        0AB2: ret 0
    end
    0485:  return_true
    0AB2: ret 0

    //0AB1: call_scm_func @memcpy 3 dest 1@ src 0@ size 28
    :memcpy
    for 30@ = 0 to 2@
        0A8D: 3@ = read_memory 1@ size 1 virtual_protect 0
        inc(1@)
        0A8C: write_memory 0@ size 1 value 3@ virtual_protect 0
        inc(0@)          
    end
    0AB2: ret 0

    :str_FILES
    hex
    "files" 00
    end
     
    :str_ANIM
    hex
    "anim" 00
    end
     
    :str_OBJS
    hex
    "objs" 00
    end
     
    :str_WEAP
    hex
    "weap" 00
    end

    :str_TOBJ
    hex
    "tobj" 00
    end
     
    :str_END
    hex
    "end" 00
    end

    :str_PEDESTRIANS
    hex
    "PEDESTRIANS" 00
    end

    :str_VEHICLES
    hex
    "VEHICLES" 00
    end

    :str_WEAPONS
    hex
    "WEAPONS" 00
    end

    :Buffer_0_1_128
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_0_2_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_0_3_16
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_0_4_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_1_1_128
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end
     
    :Buffer_1_2_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end    
     
    :Buffer_1_3_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end
     
    :Buffer_1_4_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end
     
    :Buffer_1_5_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end


    Última edição por Deadstroke em Sab 27 Ago 2016, 12:02, editado 1 vez(es)

    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18098
    Reputação : 296
    Idade : 19
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Fabio em Sab 27 Ago 2016, 01:14



    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'

    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Junior, o periquito.
    Plataforma : PC
    Mensagens : 19529
    Reputação : 539
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Junior_Djjr em Sab 27 Ago 2016, 02:55

    ↑ Acho que pra ficar mais bonitinho e user friendly, pois ficar tendo de colocar por exemplo uns "1=[endereço]", "2=[endereço]" é um saco

    Poderia enviar o .ini que você está testando? Assim fica mais fácil e preciso os testes

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Sab 27 Ago 2016, 12:10

    O .ini está abaixo. Achei que já tinha mostrado antes:

    Código:
    Files
    #ID    Nome do .ide/menu    caminho do .ide
    1   DEFAULT      data\default.ide
    2   BARRIES      data\maps\generic\barries.ide   
    end

    Acho que conseguem entender o que cada campo significa acima né.
    @Fabio , como pode ver, não posso ler as linhas com os opcodes tradicionais da cleo justamente por se tratar de linhas extensas e sem um valor de comparação (ex.: Nome = 1 DEFAULT data\default.ide).

    Código:
    0AB1: call_scm_func @ReadAllIde 3 mod 1 offset_section 0 offset_objects 0 -> _COUNT_SECTIONS_ _COUNT_OBJS_  //Contar linhas no mod 1
    0AB1: call_scm_func @ReadAllIde 3 mod 2 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_  //Salvar linhas no mod 2

    Essa função vai salvar valores em duas memórias: seções, grupos de cada objeto, que é normalmente separado em arquivos .ide, exceto para peds, cars and, weapons; e as linhas de objetos .ide por si só, que serão atreladas às seções para que o usuário consiga encontrar um objeto mais facilmente.
    O problema não é ler as linhas, isso está tudo bem (praticamente), o problema são em salvar, reler as linhas salvas e alguns crashes, que diria, sem sentido, que acontecem (talvez por problema da livraria cleo).

    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Junior, o periquito.
    Plataforma : PC
    Mensagens : 19529
    Reputação : 539
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Junior_Djjr em Sab 27 Ago 2016, 16:34

    Difícil encontrar o problema, dei uma olhada rápida e vi nada pokerface é sempre complicado alguém entender códigos grandes de outras pessoas :v:

    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18098
    Reputação : 296
    Idade : 19
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Fabio em Sab 27 Ago 2016, 16:39

    Linha 140:
    Código:
    0A8C: write_memory 1@ size 16 value 13@ virtual_protect 0
                                1@ += 16  

    Size 16?

    Suponho que você queira strpcy 0x00826590 ou 0x0069F910

    .text:0069F910 ; char *__cdecl strcpy(char *dst, const char *src)

    call _strcpy push 2 pop 2 source destino


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'

    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Junior, o periquito.
    Plataforma : PC
    Mensagens : 19529
    Reputação : 539
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Junior_Djjr em Sab 27 Ago 2016, 16:48

    Nossa, o size 16 ainda tá lá :v:

    Nex'
    Scripter CLEO - Básico
    Scripter CLEO - Básico

    Título : Imposto é roubo
    Plataforma : pseudo-PC
    Mensagens : 806
    Reputação : 62
    Idade : 16
    Localização : Sertãozinho - SP

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Nex' em Sab 27 Ago 2016, 20:07

    Galera, vamos deixar de sofrer. Faça o I/O em C++ pelo amr de deus, use funções diferentes pra pegar cada dado ou sei la se tiver uma maneira melhor

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Sab 27 Ago 2016, 23:00

    Tudo bem, não completei algumas coisas do código, agora acredito que esteja "completo". A parte do size 16 não era o maior problema, mas confundiu vocês ao entender os erros.

    Temos dois problemas:

    1) Na função na linha @ReadAllIde , na linha 64, quando eu leio no mod 2 (ler e salvar), há um crash na linha 171, quando lê o arquivo .ide, o que não acontece no mod 1 (contagem). Apenas entre no jogo com esse e perceba;

    Depois coloque // na linha 64 para a função não ser ativada ou toque mod 1 por mod 2 e veja os erros seguintes:

    2) Quando se digita "fil", a partir da linha 67, tento ler as seções salvas entre as linhas 37 a 53. Ela até lê a primeiro campo corretamente , igual a -3, mas as outras não são lidas corretamente...

    3) Na mesma parte da leitura, como consigo ler string salvas na var memory? Veja que tentei com 5@v , mas falhou miseravelmente...

    Código:
    Código:
    {$cleo}
    0000:
     
    const
        sscanf = 0x8220AD
        _COUNT_SECTIONS_ = 26@   
        _TH_MEM_SECTIONS_ = 27@
        _OFFSET_SECTIONS_ = 28@   
        _COUNT_OBJS_ = 29@
        _TH_MEM_OBJS_ = 30@
        _OFFSET_OBJS_ = 31@   
    end

    var
        _COUNT_SECTIONS_ : int
        _COUNT_OBJS_ : int
    end
     
    while true
        wait 0
       
        if  8AAB:  file_exists "cleo\MapperMod.ini"
        then
            0ACD: show_text_highpriority "The file ~b~'cleo\MapperMod.ini'~s~ haven't been found." time 7000
            0A93: end_custom_thread
        end
       
        0AB1: call_scm_func @ReadAllIde 3 mod 1 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_ -> _COUNT_SECTIONS_ _COUNT_OBJS_
        wait 0
       
        0085: 1@ = _COUNT_SECTIONS_
        1@ *= 20
        0AC8: _TH_MEM_SECTIONS_ = allocate_memory_size 1@   
        0AC7: _OFFSET_SECTIONS_ = var _TH_MEM_SECTIONS_ offset
       
        //Peds
        0A8E: 3@ = _OFFSET_SECTIONS_ + 0
        0A8C: write_memory 3@ size 4 value -3 virtual_protect 0
        0A8E: 3@ = _OFFSET_SECTIONS_ + 4
        0AC6: 4@ = label @str_PEDESTRIANS offset
        0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 16
        0A8E: 3@ = _OFFSET_SECTIONS_ + 20         
        //Vehicles
        0A8C: write_memory 3@ size 4 value -2 virtual_protect 0
        0A8E: 3@ = _OFFSET_SECTIONS_ + 24
        0AC6: 4@ = label @str_VEHICLES offset
        0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 16
        0A8E: 3@ = _OFFSET_SECTIONS_ + 40           
        //Weapons
        0A8C: write_memory 3@ size 4 value -1 virtual_protect 0
        0A8E: 3@ = _OFFSET_SECTIONS_ + 44
        0AC6: 4@ = label @str_WEAPONS offset
        0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 16

        _OFFSET_SECTIONS_ += 60

        //Objects memory
        0085: 1@ = _COUNT_OBJS_
        1@ *= 40           
        0AC8: _TH_MEM_OBJS_ = allocate_memory_size 1@   
        0AC7: _OFFSET_OBJS_ = var _TH_MEM_OBJS_ offset
       
        //ERRO 1: essa função abaixo está dando crash por motivos X!!! 
        0AB1: call_scm_func @ReadAllIde 3 mod 2 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_ -> _COUNT_SECTIONS_ _COUNT_OBJS_
       
        //ERRO 2: não consigo ler os valores salvos corretamente, acredito que tenham sido salvos de maneira errada! 
        while true
            wait 0
            if 0ADC: test_cheat "fil"
            jf continue
            0AD1: show_formatted_text_highpriority "%d %d" time 2500 _COUNT_SECTIONS_ _COUNT_OBJS_
            wait 2000
            0ACD: show_text_highpriority "SECTIONS" time 7000
            wait 2000     
            0AC7: _OFFSET_SECTIONS_ = var _TH_MEM_SECTIONS_ offset
            For 1@ = 1 to _COUNT_SECTIONS_
                0A8D: 4@ = read_memory _OFFSET_SECTIONS_ size 4 virtual_protect 0
                _OFFSET_SECTIONS_ += 4
                //0A8D: 5@v = read_memory _OFFSET_SECTIONS_ size 16 virtual_protect 0
                _OFFSET_SECTIONS_ += 16
                //0AD1: show_formatted_text_highpriority "%d %s" time 1000 4@ 5@v
                0AD1: show_formatted_text_highpriority "%d" time 1000 4@
                wait 1000                                   
            end
            /*0ACD: show_text_highpriority "OBJECTS" time 7000
            wait 2000
            0085: 0@ = _TH_MEM_OBJS_
            For 1@ = 1 to _COUNT_OBJS_
                0A8D: 2@ = read_memory 0@ size 4 virtual_protect 0
                0@ += 4
                0A8D: 3@v = read_memory 0@ size 32 virtual_protect 0
                0@ += 32
                0A8D: 10@ = read_memory 0@ size 4 virtual_protect 0
                0@ += 4           
                0AD1: show_formatted_text_highpriority "%d %s %s" time 1000 2@ 3@v 10@
                0@ += 40
                0AD1: show_formatted_text_highpriority "%d" time 1000 2@
                wait 100                                   
            end  */             
        end   
    end


    //0AB1: call_scm_func @ReadAllIde 3 mod 2 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_ -> _COUNT_SECTIONS_ _COUNT_OBJS_
    //mod: 1 = count; 2 = save   
    :ReadAllIde
    27@ = 0
    28@ = 0
    if  0A9A: 31@ = openfile "cleo\MapperMod.ini" mode "rt"  // IF and SET
    then       
        //Reading .ini lines
        0AC6: 11@ = label @Buffer_0_1_128 offset
        while  File.ReadString(31@, 11@, 128)       
            //Check if it's 'files'
            0AC6: 29@ = label @str_FILES offset
            if  0AB1: call_scm_func @StringsCompare_bySize 3 29@ 11@ Size 5
            then             
                while  File.ReadString(31@, 11@, 128)               
                    //Check if it's 'end'
                    0AC6: 2@ = label @str_END offset
                    if  0AB1: call_scm_func @StringsCompare_bySize 3 29@ 11@ Size 3
                    then    break
                    end               
                    //Read line from .ini
                    0AC6: 12@ = label @Buffer_0_2_32 offset
                    0AC6: 13@ = label @Buffer_0_3_16 offset
                    0AC6: 14@ = label @Buffer_0_4_32 offset
                    0AA7: call_function sscanf num_params 5 pop 5 receive 14@ 13@ 12@ format "%d%s%s" bufferToRead 11@ -> 15@    //readstring
                    if  15@ == 3
                    then
                        //Check if the file exists and read it
                        if  0A9A: 30@ = openfile 14@ mode "rt"  // IF and SET
                        then                       
                            //Count or save sections
                            if  0@ == 2
                            then
                                0A8D: 15@ = read_memory 12@ size 4 virtual_protect 0
                                0A8C: write_memory 1@ size 4 value 15@ virtual_protect 0
                                1@ += 4
                                0AB1: call_scm_func @memcpy 3 dest 1@ src 13@ size 16
                                1@ += 16                             
                            end
                            27@++
                            //Count or save ide lines
                            0AB1: call_scm_func @ReadFileTest 4 file 30@ mod 0@ offset_objects 2@ section 15@ -> counter 26@
                            005A: 28@ += 26@                                                   
                        end
                    end                                   
                end
                27@ += 3    //More three lines to peds, cars and weapons
                break               
            end
        end
        file.Close(31@)       
    end
    if  0@ == 1 
    then    0AB2: ret 2 27@ 28@
    else    0AB2: ret 0
    end


    //0AB1: call_scm_func @ReadFileTest 4 file 30@ mod 0@ offset_objects 2@ section 15@ -> counter 26@
    :ReadFileTest   
    31@ = 0
    28@ = 0
    0AC6: 10@ = label @Buffer_1_1_128 offset
    0AC6: 11@ = label @Buffer_1_2_32 offset 
    0AC6: 12@ = label @Buffer_1_3_32 offset 
    0AC6: 13@ = label @Buffer_1_4_32 offset
    0AC6: 14@ = label @Buffer_1_5_32 offset
    while  File.ReadString(0@, 10@, 128)
       
        if 0AB1: call_scm_func @IsValidString 1 10@
        jf  continue
       
        //Checking if it's looking a section or it's already reading
        if  28@ == 0
        then   
            gosub  @ReadFile2
            if  28@ == 1
            jf  continue
        end
       
        //Reading Lines from .ide!!!   
             
        //Check if it's END
        0AC6: 6@ = label @str_END offset
        if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 3
        then
            28@ = 0
            continue
        end
                           
        //Eliminate ","
        repeat
            0A8D: 21@ = read_memory 10@ size 1 virtual_protect 0
            if  21@ == 44 // ","           
            then    0A8C: write_memory 10@ size 1 value 0x20 virtual_protect 0  //Writing space (0x20) in place of "," (0x2C)
            end       
            10@ += 1
        until  21@ == 0x00 // end of text                                   
       
        //Reading again and checking line
        0AC6: 10@ = label @Buffer_1_1_128 offset
        0AA7: call_function sscanf num_params 6 pop 6  receive 14@ 13@ 12@ 11@ format "%d%s%s%s"  bufferToRead 10@ -> 17@    //readstring
        if  17@ == 4
        then
            31@++   
            if  1@ == 2
            then
                0A8D: 17@ = read_memory 11@ size 4 virtual_protect 0
                0A8C: write_memory 2@ size 4 value 17@ virtual_protect 0
                2@ += 4
                0AB1: call_scm_func @memcpy 3 dest 2@ src 12@ size 32
                2@ += 32
                0A8C: write_memory 2@ size 4 value 29@ virtual_protect 0
                2@ += 4
            else
                0A8D: 21@ = read_memory 11@ size 4 virtual_protect 0
                0AD1: show_formatted_text_highpriority "%d %s %s %d" time 2000 21@ 12@ 13@ 29@
                wait 10         
            end
        end
             
    end
    file.Close(0@) 
    0AB2: ret 1 31@


    :ReadFile2
    0AC6: 6@ = label @str_ANIM offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        0085: 29@ = 3@
        28@ = 1
        return   
    end
    0AC6: 6@ = label @str_OBJS offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        0085: 29@ = 3@
        28@ = 1
        return   
    end
    0AC6: 6@ = label @str_TOBJ offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        0085: 29@ = 3@
        28@ = 1
        return   
    end
    0AC6: 6@ = label @str_WEAP offset
    if  0AB1: call_scm_func @StringsCompare_bySize 3 6@ 10@ Size 4
    then
        29@ = -1
        28@ = 1
        return   
    end
    return
     
     
     
    //------------------------------------
     
    //nota: essa função é meio provisória, está meio adaptada às minhas necessidades do TM
    //ela é case sensitive, precisamos corrigir isso ou o 'OBJS' não será lido, somente 'objs'
    :StringsCompare_bySize {*str1, *str2, size}
    30@ = 0
    0A8D: 3@ = read_memory 0@ size 1 virtual_protect 0
    0A8D: 4@ = read_memory 1@ size 1 virtual_protect 0
    while 001D: 2@ > 30@
        0A8D: 3@ = read_memory 0@ size 1 virtual_protect 0
        0A8D: 4@ = read_memory 1@ size 1 virtual_protect 0
        if 4@ == 0x20 // ' '
        then
            1@++
            continue
        end
        if or
        3@ == 35 //#
        4@ == 35 //#
        then //ignore char diff
        else
            if 803B: 3@ <> 4@
            then
                059A: return_false
                0AB2: ret 0
            end
        end
        0@++
        1@++
        30@++
    end
    0485: return_true
    0AB2: ret 0
     
     
    :IsValidString
    0A8D: 1@ = read_memory 0@ size 1 vp 0
    if or
    1@ == 0
    1@ == 35 //# 
    1@ == 59 //;
    then
        059A:  return_false
        0AB2: ret 0
    end
    0485:  return_true
    0AB2: ret 0

    //0AB1: call_scm_func @memcpy 3 dest 1@ src 0@ size 28
    :memcpy
    for 30@ = 0 to 2@
        0A8D: 3@ = read_memory 1@ size 1 virtual_protect 0
        inc(1@)
        0A8C: write_memory 0@ size 1 value 3@ virtual_protect 0
        inc(0@)         
    end
    0AB2: ret 0

    :str_FILES
    hex
    "files" 00
    end
     
    :str_ANIM
    hex
    "anim" 00
    end
     
    :str_OBJS
    hex
    "objs" 00
    end
     
    :str_WEAP
    hex
    "weap" 00
    end

    :str_TOBJ
    hex
    "tobj" 00
    end
     
    :str_END
    hex
    "end" 00
    end

    :str_PEDESTRIANS
    hex
    "PEDESTRIANS" 00
    end

    :str_VEHICLES
    hex
    "VEHICLES" 00
    end

    :str_WEAPONS
    hex
    "WEAPONS" 00
    end

    :Buffer_0_1_128
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_0_2_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_0_3_16
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_0_4_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    :Buffer_1_1_128
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end
     
    :Buffer_1_2_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end   
     
    :Buffer_1_3_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end
     
    :Buffer_1_4_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end
     
    :Buffer_1_5_32
    hex
        00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    end

    Infelizmente vai ser bem mais complicado aprender C++, tive um estudo básico, bem básico sobre, mas aprender isso não é o meu foco agora. Se acham que não estou pronto para fazer isso, tudo bem, deixo parado pra depois...

    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Junior, o periquito.
    Plataforma : PC
    Mensagens : 19529
    Reputação : 539
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Junior_Djjr em Dom 28 Ago 2016, 04:38

    @Deadstroke escreveu:3) Na mesma parte da leitura, como consigo ler string salvas na var memory? Veja que tentei com 5@v , mas falhou miseravelmente...
    Também não é assim que se lê uma string Fuch That Guy
    Esqueça destes "size 16", o opcode foi feito para 1, 2 ou 4, ou outros números para NOP, acredito que não tenha como usá-lo para cópias de memória

    Você pode ler uma string simplesmente usando o opcode "format" ou alguma função de copiar uma memória pra outra.
    Não sei se você viu, mas eu publiquei algumas funções de strings do C++ pra serem usadas em cleo aqui:
    http://bms.mixmods.com.br/t5399-medio-funcoes-para-operacoes-com-strings
    Veja o "strcpy" para copiar uma string, mas o opcode "format" já deve fazer isso muito bem.

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Dom 28 Ago 2016, 11:19

    @Junior_Djjr escreveu:
    @Deadstroke escreveu:3) Na mesma parte da leitura, como consigo ler string salvas na var memory? Veja que tentei com 5@v , mas falhou miseravelmente...
    Também não é assim que se lê uma string Fuch That Guy
    Esqueça destes "size 16", o opcode foi feito para 1, 2 ou 4, ou outros números para NOP, acredito que não tenha como usá-lo para cópias de memória

    Você pode ler uma string simplesmente usando o opcode "format" ou alguma função de copiar uma memória pra outra.
    Não sei se você viu, mas eu publiquei algumas funções de strings do C++ pra serem usadas em cleo aqui:
    http://bms.mixmods.com.br/t5399-medio-funcoes-para-operacoes-com-strings
    Veja o "strcpy" para copiar uma string, mas o opcode "format" já deve fazer isso muito bem.

    Eu utilizei esse aqui para salvar os opcodes, não estou usando size 16 para salvar:

    Código:
    0AB1: call_scm_func @memcpy 3 dest 3@ src 4@ size 16

    E já vi aquele tópico, não tinha nenhuma função específica para ler strings naquele formato. E ainda não me ajudou nos REAIS problemas que tenho, sobre os erros 1 e 2, não está dando certo...
    Ainda estou vendo isso, o problema é que não tenho muito tempo pra vir tão a fundo a explorar tudo isso, então o entendimento está mais devagas mesmo...

    Edit.: entre as linhas 76 e 87, tentei fazer isso, aparentemente lê alguma coisa, mas é como disse, provavelmente há alguma coisa que não estou fazendo certo ao salvar os valores. Não sei como trablhar corretamente com o opcode 0AC8.

    Código:
           For 1@ = 1 to _COUNT_SECTIONS_
                0A8D: 4@ = read_memory _OFFSET_SECTIONS_ size 4 virtual_protect 0
                _OFFSET_SECTIONS_ += 4
                0AC6: 5@ = label @Buffer_2_1_32 offset
                0AB1: call_scm_func @memcpy 3 dest 5@ src _OFFSET_SECTIONS_ size 16
                0AD3: 5@ = format "%s" 5@
                //0A8D: 5@v = read_memory _OFFSET_SECTIONS_ size 16 virtual_protect 0
                _OFFSET_SECTIONS_ += 16
                //0AD1: show_formatted_text_highpriority "%d" time 1000 4@
                0AD1: show_formatted_text_highpriority "%d %s" time 1000 4@ 5@
                wait 1000                                    
            end

    Edit 2: percebi que o erro 1 é causado pela linha 140, através da função memcpy. Não faço ideia o porquê? Pode me ajudar nisso?

    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18098
    Reputação : 296
    Idade : 19
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Fabio em Dom 28 Ago 2016, 15:29

    Tem como mandar o modloader.log e o scrlog.log dos crashs que você tá falando? pokerface

    O 0AC8 é igual trabalhar com thread memory, só que a diferença é que você vai dar o tamanho na hora de chamar o opcode e essa memória precisa ser limpa quando você não precisar mais.


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Dom 28 Ago 2016, 16:47

    Scrlog do Erro 1:
    Scrlog.log:

    Código:
    00000780&0: [004D] GOTO_IF_FALSE -794
    00000794&0: [0AC6] GET_LABEL_POINTER -3192 -> 409718088
    00000804&0: [0AC6] GET_LABEL_POINTER -3224 -> 409718120
    00000814&0: [0AC6] GET_LABEL_POINTER -3256 -> 409718152
    00000824&0: [0AA7] CALL_FUNCTION_RETURN 0x8220AD 5 5 409718152 409718120 409718088 "%d%s%s" 409717832 -> 3
    00000859&0: [00D6] IF 0
    00000863&0: [0039] p186C6608(?) == 3    // TRUE
    00000870&1: [004D] GOTO_IF_FALSE -1014
    00000877&1: [00D6] IF 0
    00000881&0: [0A9A] OPEN_FILE 409718152 "rt" -> 9317520    // TRUE
    00000893&1: [004D] GOTO_IF_FALSE -1014
    00000900&1: [000A] p186C6638(?) += 1
    00000907&1: [0A8D] READ_MEMORY 0x186BCD48 4 0 -> 2
    00000919&1: [00D6] IF 0
    00000923&0: [0039] p186C65CC(?) == 2    // TRUE
    00000930&1: [004D] GOTO_IF_FALSE -981
    00000937&1: [0A8C] WRITE_MEMORY 0x186C6688 4 2 0
    00000949&1: [000A] p186C65D0(?) += 4
    00000956&1: [0AB1] CALL -2805 3 409757324 409718120 16
    00002805&1: [0006] p186C6644(?) = 0
    00002812&1: [0A8D] READ_MEMORY 0x186BCD68 1 0 -> 66
    00002824&1: [000A] p186C65D0(?) += 1
    00002831&1: [0A8C] WRITE_MEMORY 0x186C668C 1 66 0
    00002843&1: [000A] p186C65CC(?) += 1
    00002850&1: [000A] p186C6644(?) += 1
    00002857&1: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD69 1 0 -> 65
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C668D 1 65 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD6A 1 0 -> 82
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C668E 1 82 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD6B 1 0 -> 82
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C668F 1 82 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD6C 1 0 -> 73
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6690 1 73 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD6D 1 0 -> 69
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6691 1 69 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD6E 1 0 -> 83
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6692 1 83 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD6F 1 0 -> 0
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6693 1 0 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD70 1 0 -> 111
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6694 1 111 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD71 1 0 -> 120
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6695 1 120 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD72 1 0 -> 98
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6696 1 98 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD73 1 0 -> 105
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6697 1 105 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD74 1 0 -> 103
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6698 1 103 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD75 1 0 -> 0
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C6699 1 0 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD76 1 0 -> 111
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C669A 1 111 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD77 1 0 -> 0
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C669B 1 0 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // FALSE
    00002865&0: [004D] GOTO_IF_FALSE -2812
    00002812&0: [0A8D] READ_MEMORY 0x186BCD78 1 0 -> 55
    00002824&0: [000A] p186C65D0(?) += 1
    00002831&0: [0A8C] WRITE_MEMORY 0x186C669C 1 55 0
    00002843&0: [000A] p186C65CC(?) += 1
    00002850&0: [000A] p186C6644(?) += 1
    00002857&0: [001D] p186C6644(?) > p186C65D4(?)     // TRUE
    00002865&1: [004D] GOTO_IF_FALSE -2812
    00002872&1: [0AB2] RET 0
    00000974&1: [000A] p186C65D0(?) += 16
    00000981&1: [0AB1] CALL -1088 4 9317520 2 409717799 2
    00001088&1: [0006] p186C6648(?) = 0
    00001095&1: [0006] p186C663C(?) = 0
    00001102&1: [0AC6] GET_LABEL_POINTER -3288 -> 409718184
    00001112&1: [0AC6] GET_LABEL_POINTER -3544 -> 409718440
    00001122&1: [0AC6] GET_LABEL_POINTER -3576 -> 409718472
    00001132&1: [0AC6] GET_LABEL_POINTER -3608 -> 409718504
    00001142&1: [0AC6] GET_LABEL_POINTER -3640 -> 409718536
    00001152&1: [0AD7] READ_STRING_FROM_FILE 9317520 409718184 128

    *********************************
    > Logging finished: 16:42:12
      Powered by SCRLog (by LINK/2012)
    *********************************

    Modloader.log do erro 1:
    Modloader.log:

    Código:
    Game version: GTA SA 1.0 US
    Unhandled exception at 0x770A6D39 in ntdll.dll (+0x26d39): 0xC0000005: Access violation writing location 0x00000014.
        Register dump:
            EAX: 0x00000000  EBX: 0xFFFFFF00  ECX: 0x008E2CB0  EDX: 0xFFFFFFFA  
            EDI: 0x00000000  ESI: 0x008E2CB0  EBP: 0x0177F518  EIP: 0x770A6D39  
            ESP: 0x0177F4F0  EFL: 0x00010213  CS: 0x00000023   SS: 0x0000002B  
            GS: 0x0000002B   FS: 0x00000053   ES: 0x0000002B   DS: 0x0000002B  
            
        Stack dump:
            0x0177F4F0:  00000000 008E2CB4 FFFFFFFA FFFFFFFA 00000000 00000000
            0x0177F508:  00000000 FFFFFF00 1C35156B 003CE000 0177F538 770BF8A5
            0x0177F520:  186BCDA8 008E2CB0 186BCDA8 00000001 008E2CB0 01000099
            0x0177F538:  0177F544 770BF7C5 00000000 0177F554 7243D0A7 008E2CB0
            0x0177F550:  008E2C90 0177F594 7243CB5E 008E2C90 C2E086D5 186BCDA8
            0x0177F568:  186C6590 008E2C90 66763E55 66773743 186BCDA8 0177F560
            0x0177F580:  0177EF24 0177F6D0 72442720 B1D1FEE1 FFFFFFFE 0177F5B4
            0x0177F598:  72455DEC 008E2C90 00000080 008E2C90 186C6590 186C6590
            0x0177F5B0:  00000001 0177F5C0 72452860 186C6590 0177F618 00469FF7
            0x0177F5C8:  00000AD7 186C6590 00000000 7245054F 00000000 186C6590
            base: 0x01580000   top: 0x0177F4F0   bottom: 0x01780000
            
        Backtrace (may be wrong):
            =>0x770A6D39 RtlWaitOnAddress+0x99 in ntdll.dll (+0x26d39) (0x0177F518)
              0x770BF8A5 RtlEnterCriticalSection+0x125 in ntdll.dll (+0x3f8a5) (0x0177F538)
              0x770BF7C5 RtlEnterCriticalSection+0x45 in ntdll.dll (+0x3f7c5) (0x0177F544)
              0x7243D0A7 in CLEO.asi (+0xd0a7) (0x0177F554)
              0x7243CB5E in CLEO.asi (+0xcb5e) (0x0177F594)
              0x72455DEC CLEO_GetIntOpcodeParam+0x345c in CLEO.asi (+0x25dec) (0x0177F5B4)
              0x72452860 CLEO_ReadStringOpcodeParam+0x300 in CLEO.asi (+0x22860) (0x0177F5C0)
              0x00469FF7 in gta_sa.exe (+0x69ff7) (0x0177F618)
              0x6671B2AF in newopcodes.cleo (+0xb2af) (0x0177F630)
              0x72635A4F in ped_spec.asi (+0x5a4f) (0x0177F648)
              0x0053BFCC in gta_sa.exe (+0x13bfcc) (0x0177F67C)
              0x0053E986 in gta_sa.exe (+0x13e986) (0x0177F694)
              0x7238C0DD in modloader.asi (+0x1c0dd) (0x0177F6DC)
              0x72390552 in modloader.asi (+0x20552) (0x0177F6F0)
              0x7238EBB7 in modloader.asi (+0x1ebb7) (0x0177F70C)
              0x72390C06 in modloader.asi (+0x20c06) (0x0177F880)
              0x72390AFC in modloader.asi (+0x20afc) (0x0177F88C)
              0x0053ECC2 in gta_sa.exe (+0x13ecc2) (0x0177F894)
              0x00619B71 in gta_sa.exe (+0x219b71) (0x0177F8A8)
            
        


    Shutting down Mod Loader...
    Shutting down filesystem watcher...
    Shutting down menu...
    Unloading plugin "gta3.std.fx"
    Unloading plugin "gta3.std.asi"
    Unloading plugin "gta3.std.bank"
    Unloading plugin "gta3.std.data"
    Unloading plugin "gta3.std.movies"
    Unloading plugin "gta3.std.scm"
    Unloading plugin "gta3.std.text"
    Unloading plugin "gta3.std.tracks"
    Unloading plugin "gta3.std.sprites"
    Unloading plugin "gta3.std.stream"
    Mod Loader has been shutdown.

    Se você eliminar aonde tem o erro onde indiquei no edit 2 não haver o crash, o que é completamente estranho.

    Para ver o erro 2, basta dar // no começo da linha na função 0AB1: call_scm_func @ReadAllIde 3 mod 2 offset_section _OFFSET_SECTIONS_ offset_objects _OFFSET_OBJS_ -> _COUNT_SECTIONS_ _COUNT_OBJS_ , e digitar "fil" depois que estiver logado. Você verá que as linhas não estão sendo lidas corretamente.

    Parece que é igual, mas lidando da mesma forma que a thread memory tradicional não funciona, além de eu ainda não saber muito usar com strings. Ainda prefiriria poder calcular o tamanho diretamente na thread memory tradicional...

    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18098
    Reputação : 296
    Idade : 19
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Fabio em Dom 28 Ago 2016, 19:12

    Sei lá, tenta usar file seek offset 0 antes de começar a leitura ;-;

    Já que está apontando erro no [0AD7] READ_STRING_FROM_FILE ;-;




    O jogo tem essa função para cópias de string com tamanho limitado:

    Código:
    0x0069DB70
    int __cdecl gtaStrncpyOrZeroFill(void *dest, const void *src, uint16_t len);

    Tem essa também:
    Código:
    00821F40
    char *__cdecl strncpy(char *dest, const char *src, size_t)

    Recomendo que use esta última.

    A diferença de usar uma função específica para string e o memcpy é que a própria para string irá adicionar o null terminator, que é extremamente importante em quase todos os casos.


    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'

    Deadstroke
    Scripter CLEO - Intermediário
    Scripter CLEO - Intermediário

    Plataforma : PC
    Fabricante: Acer
    Processador: Intel(R) Core(TM) i3-2338M CPU 2.20 GHz
    Memória RAM: 4 GB
    Sistema: x64, windows 10
    Placa de Vídeo: Intel Graphics 3000
    Mensagens : 190
    Reputação : 14
    Localização : São Paulo

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Deadstroke em Dom 28 Ago 2016, 23:27

    Vlw. Vou tentar mexer nisso quando puder, e passo feedbacks. Se tiver mais alguma coisa pra falar fica a vontade...

    Fabio
    Programador - Avançado
    Programador - Avançado

    Título : CEO da Fabio's Gambiarra Industries
    Mensagens : 18098
    Reputação : 296
    Idade : 19
    Localização : Reserva, Paraná, Brasil, América Latina, America do Sul, América, Planeta Terra, Sistema Solar, Via láctea, Universo
    Link : gtamodvicio.blogspot.com

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Fabio em Seg 29 Ago 2016, 16:10

    Acho que talvez para fins de teste, ao invés de usar o opcode de ler string de arquivo da cleo, usar direto a função fgets do jogo:
    Código:
    0x00823798
    int __cdecl fgets(char *, int, FILE *)
    http://www.cplusplus.com/reference/cstdio/fgets/

    Só usar o opcode de call que tem retorno, se retornar igual a zero é porque deu erro.

    Código:

    0AA7: call_function 0x00823798 num_params 3 pop 3   arquivo    128   BufferLabelOffset       -> retorno

    if retorno <> 0
    then
    // ok
    end    



    ____________________

    Modifico quase qualquer coisa.   :)
    ------------------>>>http://gtamodvicio.blogspot.com/<<<------------------

    Meu PC:
    Spoiler:

    Configurações PC:
    *Processador: Intel Core i7 4790K 4.00GHz LGA1150
    *Placa Mãe: GIGABYTE GA-H97M-D3H Intel (LGA1150)
    *HD: 1TB Seagate Barracuda 64MB Sata III 7200RPM (2x - RAID 0)
    *HD²: SAMSUNG M3 Externo USB 5400RPM 1TB
    *Placa de vídeo: Nvidia GTX660 2GB DDR5 192bit EVGA
    *RAM: 8GB DDR3 1600MHZ Kingston HYPER X BEAST (2x4GB)
    *Fonte: Corsair 600W Reais CX600M Modular - CP-9020060-WW (80 Plus Bronze)
    *Gabinete: Gabinete Raidmax Super Hurricane Branco - 248WB
    *Monitor: LG 23MP55HQ Full HD HDMI 23'

    Firefly
    Veterano
    Veterano

    Título : Pede para mudar a senha pois não consegue largar da conta
    Mensagens : 3788
    Reputação : 379

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Firefly em Ter 13 Set 2016, 20:41

    Viram que isso http://forum.sa-mp.com/showthread.php?t=282801 tem código aberto ? https://github.com/JernejL/samp-map-editor
    Tem como converter pro jogo normal ?

    Junior_Djjr
    Scripter CLEO - Avançado
    Scripter CLEO - Avançado

    Título : Junior, o periquito.
    Plataforma : PC
    Mensagens : 19529
    Reputação : 539
    Idade : 21
    Localização : Ibitinga - SP
    Link : www.MixMods.com.br

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Junior_Djjr em Ter 13 Set 2016, 20:59

    Uia que interessante, só acho que ninguém aqui teria coragem e habilidade pra fazer isso, quem sabe algum fodão da GTAForums (eu imaginaria o The_GTA, mas duvido que ele tenha tempo, mas interesse deve ter)

    Hue
    Produtor de vídeos - Avançado
    Produtor de vídeos - Avançado

    Título : Kite ante legue
    Plataforma : PC
    Mensagens : 11934
    Reputação : 138

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Hue em Dom 09 Out 2016, 00:21

    caraca, tomara que dê certo!


    ____________________
    http://playgamemods.blogspot.com.br/




    "“Toda verdade passa por três estágios. Primeiro, ela é ridicularizada. Segundo, ela é violentamente resistida. Terceiro, ela é aceita como sendo autoevidente” (Arthur Schopenhauer, filósofo alemão [1788-1860])"

    “Se pudesse ser demonstrada a existência de qualquer órgão complexo que não poderia ter sido formado por numerosas, sucessivas e ligeiras modificações, minha teoria desmoronaria por completo.” (DARWIN 1872)"

    Conteúdo patrocinado

    Re: Novo Mod Planter (nome provisório)

    Mensagem por Conteúdo patrocinado Hoje à(s) 02:23


      Data/hora atual: Seg 05 Dez 2016, 02:23