Page 1 of 1

SaveToFile

Posted: 2010-06-21 13:26:38
by Alex82

Code: Select all

sub TestContOf()
   VAR CORDX = uo.GetX('self')
   VAR CORDY = uo.GetY('self')
      uo.Print('Координата Х = '+str(CORDX)+'Координата Х = '+str(CORDY))
SaveToFile(CORDX,CORDY)
endsub


sub SaveToFile(CORDX,CORDY)
var f=file("C:\Tochki.txt")
var s=0
f.open()
f.create()
s=safe call f.writeln('_move('+str(CORDX)+','+str(CORDY)+', 0);')
f.close()
end sub


Этот скрипт сохраняет координаты чара в файл Tochki.txt. Можно ли сделать что бы скрипт не удалял файл когда начинает работу , а только дописывал в конец уже имеющегося файла результат.

Re: SaveToFile

Posted: 2010-06-21 14:44:02
by Mirage
вот так попробуй

Code: Select all

sub TestContOf()
   VAR CORDX = uo.GetX('self')
   VAR CORDY = uo.GetY('self')
      uo.Print('Координата Х = '+str(CORDX)+'Координата Х = '+str(CORDY))
SaveToFile(CORDX,CORDY)
endsub


sub SaveToFile(CORDX,CORDY)
var f=file("C:\Tochki.txt")
var s=0
f.open()
;f.create()
s=safe call f.writeln('_move('+str(CORDX)+','+str(CORDY)+', 0);')
f.close()
end sub

Re: SaveToFile

Posted: 2010-06-21 15:05:44
by Alex82
вот так попробуй

Миражик спасибо но не помогло.
Создает файл и записывает туда последние координаты.А мне нужно что бы при каждом запуске скрипта добавляло к уже записанным координатам новые в тот же файл.


И где можно почитать про эти команды?

Code: Select all

f.open()
f.create()

Re: SaveToFile

Posted: 2010-06-21 15:45:46
by Mirage
к сожалению только в поиске. Как вариант могу посоветовать тебе лишь следующий путь:
1)создаешь файл с координатами tree.txt (скажем).
2)после того как запишешь последнюю координату переименовываешь файл в tree1.txt
3)создаешь файл tree.txt, переименовываешь его в tree2.txt...

а в самом скрипте используешь конструкцию типа:

Code: Select all

var mx1=1953, my1=2968, mx2=2058, my2=1032, mx3=3508, my3=3456
   if uo.getX() == mx1 && uo.getY() == my1 then
      f = file ( "D:\tree1.txt" )  ; файлик с координатами
   else
      if uo.getX() == mx2 && uo.getY() == my2 then
         f = file ( "D:\tree2.txt" )  ; файлик с координатами
      else
         if uo.getX() == mx3 && uo.getY() == my3 then
            f = file ( "D:\tree3.txt" )  ; файлик с координатами
         else
         UO.Print("НЕ В ЗОНЕ РУБКИ!!!")
         MyTerminate()
         endif
      endif
   endif

Сам таким пользуюсь.

Re: SaveToFile

Posted: 2010-06-21 15:55:15
by Alex82

Code: Select all

var mx1=1953, my1=2968, mx2=2058, my2=1032, mx3=3508, my3=3456
   if uo.getX() == mx1 && uo.getY() == my1 then
      f = file ( "D:\tree1.txt" )  ; файлик с координатами
   else
      if uo.getX() == mx2 && uo.getY() == my2 then
         f = file ( "D:\tree2.txt" )  ; файлик с координатами
      else
         if uo.getX() == mx3 && uo.getY() == my3 then
            f = file ( "D:\tree3.txt" )  ; файлик с координатами
         else
         UO.Print("НЕ В ЗОНЕ РУБКИ!!!")
         MyTerminate()
         endif
      endif
   endif


Это суровый изврат но попробую так :mrgreen: .Спасибо

Re: SaveToFile

Posted: 2010-07-01 16:52:15
by Alex82
Дабы не плодить тем.
Граждане можно ли напечатать знак ; командой uo.textprint.
Что то типа uo.textprint(":"). Я лично как не бился не смог

Re: SaveToFile

Posted: 2010-07-01 18:10:45
by Mirage
Этой командой нет :)
точказапятая это смысловое коментирование текста видимо.
НО если очень хочется можно ПРОИЗНЕСТИ (uo.say(';')) и затем считать с журнала :mrgreen: