Problema em usar o valor contido em um pointer pego de uma Thread
Eu estou tendo um probleminha em usa string da Thread, eu tenho aqui assim
Consigo pegar um texto armazenado nele facilmente para exibir assim
Mas não da certo aqui
Eu não sei exatamente se tem haver com a variável texto ser declarada como LVAR_INT e REQUEST_ANIMATION pede uma TEXT_LABEL, alguém sabe a solução? Não sei se estou deixando algo passar
_
Eu estou tendo um probleminha em usa string da Thread, eu tenho aqui assim
- Código:
{
...
LVAR_INT text
GET_LABEL_POINTER buff_1 text
...
}
buff_1:
DUMP
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
ENDDUMP
Consigo pegar um texto armazenado nele facilmente para exibir assim
- Código:
PRINT_FORMATTED_NOW "%s" 2000 $texto
Mas não da certo aqui
- Código:
REQUEST_ANIMATION $texto
Eu não sei exatamente se tem haver com a variável texto ser declarada como LVAR_INT e REQUEST_ANIMATION pede uma TEXT_LABEL, alguém sabe a solução? Não sei se estou deixando algo passar

_
Só opcode cleo aceita ponteiro, o certo é copiar o valor para uma variável de long text.

______________________________
![[Resolvido] Problema em usar o valor contido em um pointer pego de uma Thread 226c0ef57f9d7520d171cbadc68b3c56](https://2img.net/h/i.picasion.com/pic62/226c0ef57f9d7520d171cbadc68b3c56.gif)
Modifico quase qualquer coisa. :)
------------------>>>http://gtamodvicio.blogspot.com/ <<<------------------
![[Resolvido] Problema em usar o valor contido em um pointer pego de uma Thread 76561198069372249](https://2img.net/h/steamsignature.com/profile/default/76561198069372249.png)
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'
Eu até fiz isto
A intenção era ter ao menos 20 caracteres, mas acho que vou ter que deixar nos 16 mesmo
- Código:
LVAR_TEXT_LABEL16 string_temp
STRING_FORMAT string_temp"%s" $texto
A intenção era ter ao menos 20 caracteres, mas acho que vou ter que deixar nos 16 mesmo

O termo "thread memory" veio lá de antigamente quando não era comum (mas nem hoje é comum...) usar o mesmo script para várias threads, tanto que, quando você chama uma nova thread pelos opcodes da CLEO você está tirando uma cópia do script para uma nova thread, assim a thread memory é realmente um espaço de memória da thread (e não uma "script memory"), a não ser que você crie uma nova thread dentro do script "por label", como acontece nos multifiles, daí a "thread" memory na verdade não será uma "memory" da thread, mas do arquivo.Arthropod escreveu:Não use thread como sinônimo de script, é difícil fazer um resumo de diferença, mas não é a mesma coisa, visto que um script pode ter vários threads, e isto é irrecíproco.
Esse comando só funciona por strings, e nem há motivo para você enviar um ponteiro pra uma string maior de 16 bytes lá, pois o jogo tem limite de 16 bytes no nome do .ifp@Um Geek escreveu:Eu não sei exatamente se tem haver com a variável texto ser declarada como LVAR_INT e REQUEST_ANIMATION pede uma TEXT_LABEL, alguém sabe a solução? Não sei se estou deixando algo passar![]()
![[Resolvido] Problema em usar o valor contido em um pointer pego de uma Thread 00019](https://i.servimg.com/u/f58/18/12/03/16/00019.jpg)
Não há como instalar um .ifp maior de 16 bytes, portanto não é necessário usar mais de 16 bytes para carregar um .ifp.
Arthropod escreveu:Não use thread como sinônimo de script, é difícil fazer um resumo de diferença, mas não é a mesma coisa, visto que um script pode ter vários threads, e isto é irrecíproco.
Não entendi, isto é porque eu criei a pergunta sobre Thread na parte sobre script? Porque tem Scripts, Mapas,texturas,modelagem, outros tipos de mods. Creio que se encaixa melhor em script mesmo

@Junior_Djjr escreveu:Não há como instalar um .ifp maior de 16 bytes, portanto não é necessário usar mais de 16 bytes para carregar um .ifp.
Tem alguns que não da para armazenar em label16
- Código:
BBALL_Jump_Cancel
BBALL_Jump_Shot_O
BBALL_SkidStop_R_O
buddy_crouchreload
Mas com 16 bytes já da para usar muitas animações, já que o máximo será isto reduzi o tamanho dos buffers também para 16, mas isto ja ajudou muito porque se eu fosse fazer varias variáveis de string de tamanho 16 iria reduzir muito o numero de variáveis que eu posso usar

É que meio que você usou a palavra "thread" de forma errada@Um Geek escreveu:Arthropod escreveu:Não use thread como sinônimo de script, é difícil fazer um resumo de diferença, mas não é a mesma coisa, visto que um script pode ter vários threads, e isto é irrecíproco.
Não entendi, isto é porque eu criei a pergunta sobre Thread na parte sobre script? Porque tem Scripts, Mapas,texturas,modelagem, outros tipos de mods. Creio que se encaixa melhor em script mesmo![]()

lol, isso não é nome de .ifp, é nome de animação.@Um Geek escreveu:@Junior_Djjr escreveu:Não há como instalar um .ifp maior de 16 bytes, portanto não é necessário usar mais de 16 bytes para carregar um .ifp.
Tem alguns que não da para armazenar em label16
- Código:
BBALL_Jump_Cancel
BBALL_Jump_Shot_O
BBALL_SkidStop_R_O
buddy_crouchreload
E o comando PLAY_ANIM deve suportar ponteiro, quase certeza.
Deve ter sido nesta parte "string da Thread", ficou meio estranho mesmo, não achei outra forma de dizer o que queria no momento
É que meio que você usou a palavra "thread" de forma errada

O problema é no REQUEST_ANIMATION, mas se PLAY_ANIM suporta eu jogo o nome do conjunto de animação na TEXT_LABEL16 e uso a ANIM diretamente, creio que isto soluciona. valeu!

Sim, e este comando é onde carrega o .ifp, onde nunca é maior do que 16 bytes.@Um Geek escreveu:Deve ter sido nesta parte "string da Thread", ficou meio estranho mesmo, não achei outra forma de dizer o que queria no momento
É que meio que você usou a palavra "thread" de forma errada![]()
O problema é no REQUEST_ANIMATION
Basta usar o ponteiro onde pede a animação no PLAY_ANIM que deve funcionar já.
Foi um sonho realizado de 30 segundos
Melhor deixar com 16 bytes mesmo, melhor que 8 como antes

- imagem:
Melhor deixar com 16 bytes mesmo, melhor que 8 como antes

Bem, eu quis ser breve como dizer "vem um cara no cavalo" em vez de "vem um cavaleiro montado sobre o cavalo". Também me referi a Thread escrita no texto questionando como a usar de forma correta, de qualquer forma o @Junior_Djjr e o @Fabio já me ajudaram

Eu tinha esquecido de mencionar que resolvi este problema, nem era algo no código ou limitação do gta3sc, acontece que uma configuração do Visual Studio Code atrapalha um pouco no uso de variáveis de forma livre
![[Resolvido] Problema em usar o valor contido em um pointer pego de uma Thread 03a5be6f422a42258e688be2da0f8804](https://image.prntscr.com/image/03a5be6f422a42258e688be2da0f8804.jpeg)
Eu diria para quem esta começando a usar desabilitar esta opção Entity Tracking e vera que muitas coisas que não podiam serem feitas passarem a ser
![[Resolvido] Problema em usar o valor contido em um pointer pego de uma Thread 03a5be6f422a42258e688be2da0f8804](https://image.prntscr.com/image/03a5be6f422a42258e688be2da0f8804.jpeg)
Eu diria para quem esta começando a usar desabilitar esta opção Entity Tracking e vera que muitas coisas que não podiam serem feitas passarem a ser

Mas solucionou exatamente qual problema?
Na parte do uso com nomes de animações eu tive que fazer como o @Fabio mencionou copiando o valor do pointer para uma variável string e já que você confirmou que os nomes de IFP tem no máximo 16 caracteres Ainda tinha problemas em usar pointer em lugares que exigia ids como de char ou vehicle.
Eu não podia usar assim pois com Entity Tracking eu só poderia usar em DOES_CHAR_EXIST como exemplo variáveis que ja tinha sido declaradas como char
Depois de desativar esta opção pude usar melhor não só GET_LABEL_POINTER quanto variáveis comuns onde Entity Tracking antes não permitia.
- Exemplo::
- Código:
...
GET_LABEL_POINTER buffer (pointer)
...
DOES_CHAR_EXIST pointer
DOES_VEHICLE_EXIST pointer
Eu não podia usar assim pois com Entity Tracking eu só poderia usar em DOES_CHAR_EXIST como exemplo variáveis que ja tinha sido declaradas como char
- Exemplo::
- Código:
GET_PLAYER_CHAR 0 scplayer
DOES_CHAR_EXIST scplayer
Depois de desativar esta opção pude usar melhor não só GET_LABEL_POINTER quanto variáveis comuns onde Entity Tracking antes não permitia.

Acho que você não leu esse tutorial:
https://brmodstudio.forumeiros.com/t6306-17-tipos-de-entidades-nas-variaveis
De qualquer modo, desativar essa checagem também é uma opção.
https://brmodstudio.forumeiros.com/t6306-17-tipos-de-entidades-nas-variaveis
De qualquer modo, desativar essa checagem também é uma opção.
@Junior_Djjr escreveu:
Acho que você não leu esse tutorial:
https://brmodstudio.forumeiros.com/t6306-17-tipos-de-entidades-nas-variaveis
De qualquer modo, desativar essa checagem também é uma opção.
Eu até li, foi o motivo de eu ter lembrado de desativar esta opção. Demorei um pouco pois não liguei os dois assuntos. Como você cita lá
- Recorte:
in: 17-tipos-de-entidades-nas-variaveis@Junior_Djjr escreveu:
Depois de você ler e entender tudo o que se passa, você pode agora aprender a simplesmente desativar esta checagem.
Sim, você tem opção de desativar a checagem de entidade e compilar mesmo que o compilador diga que está errado, simplesmente clicando no "CS" no canto inferior (lembra que isso faz abrir as opções do compilador?) e indo em "Disable Entity Tracking".
Eu não recomendo que você faça isso mesmo que você seja experiente, pois, é fato de que mesmo experientes fazem erros bobos e passam dores de cabeça para encontrá-los. Mas a decisão final é sua.
Requer mais atenção no que esta fazendo apenas. Resumindo, este tutorial e o que foi citado aqui resolveu o assunto.

Permissão deste fórum:
Você não pode responder aos tópicos neste fórum
|
|