Existe algo para substituir um SaveDOUBLEToFile
Ir à página 1, 2  Próximo
 
   3D Game Builder - Índice » Suporte
Existe algo para substituir um SaveDOUBLEToFile
Autor Mensagem
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Existe algo para substituir um SaveDOUBLEToFile
assim, eu preciso salvar escrito assim...

Citação:
savestringtofile('C:\Savefiles\positionx','px := '+getobjectpositionx('Player')) ;


mais como se percebe, isso não é só uma string, tem string e float, por isso da um error acusando que é um double...


como salvar um double?



_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Qui Mar 15, 2012 4:53 pm Exibir perfil de usuários
Edirlei
Administrador
Administrador


Registrado: 15/03/08
Mensagens: 760

Converta o valor Double para String usando a função FloatToStr.

function FloatToStr(Value: Float): String;
Qui Mar 15, 2012 6:14 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

mais como ficaria?

a minha var se chama px e é uma Float

_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Qui Mar 15, 2012 8:59 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

mais como ficaria?

a minha var se chama px e é uma Float



_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Qui Mar 15, 2012 9:00 pm Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Re: Existe algo para substituir um SaveDOUBLEToFile
Código:
savestringtofile('C:\Savefiles\positionx','px := '+ FloatToStr(getobjectpositionx('Player')));


Vejo que você tem um pouco de dificuldade com expressões, então vou fazer passo-a-passo para você entender o que acontece nas expressões:
Código:
savestringtofile('C:\Savefiles\positionx','px := '+ FloatToStr(getobjectpositionx('Player')));


Primeiro será resolvido o getobjectpositionx('Player'), supor que é 350
Código:

savestringtofile('C:\Savefiles\positionx','px := '+ FloatToStr(350))



Agora será resolvido FloatToStr(350)
Código:

savestringtofile('C:\Savefiles\positionx','px := ' + '350')


Agora as string's são concatenadas (juntadas)
Código:

savestringtofile('C:\Savefiles\positionx', 'px := 350')


E finalmente a linha px := 350 é salva no arquivo positionx.


Sex Mar 16, 2012 1:33 am Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

Muito bom welgomes, desculpa ai, e valeu a paciência Embarassed

ficou assim

Citação:
savestringtofile('C:\Savefiles\positionx','px := ' +FloatToStr(getobjectpositionx('Player'))) ;



agora, uma pergunta que deve ser respondida rapidinho,mais eu to com burrice e não to conseguindo:

tem como pular linha?

se por assim:

Citação:
savestringtofile('C:\Savefiles\positionx','px := ' +FloatToStr(getobjectpositionx('Player'))) ;
savestringtofile('C:\Savefiles\positionx',+'pz := ' +FloatToStr(getobjectpositionz('Player'))) ;


ai só salva o 'Z', mais eu queria que ficasse um em cima do outro, tipo assim

Citação:

px := talz
py := talz
pz := talz


_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Sex Mar 16, 2012 9:41 am Exibir perfil de usuários
welgomes
Usuário
Usuário


Registrado: 10/07/11
Mensagens: 827
Localização: São Paulo - Capital

Pular linha no arquivo texto
Dependendo da linguagem ou função, talvez na string ela entenda caracteres de comando:
\n - informa para pular linha, ou seja, como você tivesse apertado ENTER

então para salvar
px := talz
py := talz

A string seria: 'px := 215\npy := 350'

Na função ficaria
Código:
savestringtofile('C:\Savefiles\positionx', 'px := 215\npy := 350');


Mas tem que testar eu não sei se o 3D Game Builder e a funçao savestringtofile, aceita caractere de comando.
Sex Mar 16, 2012 5:21 pm Exibir perfil de usuários
kleiton157
Usuário
Usuário


Registrado: 06/05/11
Mensagens: 1170
Localização: Na cáducarai

não funciona Sad


mais enfim, ficou assim:

um botão chamado save com a seguinte script

Citação:
SaveStringToFile('C:\Savefiles\positionx.txt','px := '+Floattostr(getobjectpositionX('Player')));
SaveStringToFile('C:\Savefiles\positiony.txt','py := '+Floattostr(getobjectpositionY('Player')));
SaveStringToFile('C:\Savefiles\positionz.txt','pz := '+Floattostr(getobjectpositionZ('Player')));
SaveStringToFile('C:\Savefiles\level.txt','lv := '+Floattostr(readglobalvar('Level')));
SaveStringToFile('C:\Savefiles\exp.txt','exp := '+Floattostr(readglobalvar('exp')));



até aqui tudo bem, salva nos blocos de notas la no diretório certinho

agora vem o problema:

um botão chamado load com a seguinte script:

Citação:
SetObjectScript('load','OnInteract','C:\Savefiles\positionx.txt');
SetObjectScript('load','OnInteract','C:\Savefiles\positiony.txt');
SetObjectScript('load','OnInteract','C:\Savefiles\positionz.txt');
SetObjectScript('load','OnInteract','C:\Savefiles\level.txt');
SetObjectScript('load','OnInteract','C:\Savefiles\exp.txt');

var px:Float;
var py:Float;
var pz:Float;
var lv:Float;
var exp:Float;


setobjectposition('Player',px,1+py,pz);



quando ele da load, só teleporta para o mesmo local, se eu salvar em outro lugar, ele vai para outro lugar

eu já verifiquei os blocos de notas, estão todos corretos, mais o load não vai...

_________________
________________________________________
- É nescessário ver além do que os olhos mostram
Sáb Mar 17, 2012 1:07 pm Exibir perfil de usuários
   3D Game Builder - Índice » Suporte Ir à página 1, 2  Próximo
Página 1 de 2