Перейти к содержимому


Фотография

Вывод информации в таблице.


Лучший Ответ Sledo , 29 April 2015 - 14:04

По поводу таблиц: теоретически их можно и без GUI вывести (бонально в hint), но выглядеть это будет криво.
Арма же поддерживает структурированный текст. Нужен лишь двухмерный массив и цикл, который пройдется по нему и выведет текст с уже вставленными операторами куда надо
https://community.bi...Structured_Text

Приятно общаться с грамотным человеком.

Перейти к сообщению


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 15

#1 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 28 April 2015 - 15:59

Стоит задача, выводить оперативную информацию на экран, в виде таблицы. Есть ли какие то способы это реализовать?


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 28 April 2015 - 18:44

Да, написать графический интерфейс для этого (GUI).


Сообщение отредактировал SteelRat: 28 April 2015 - 18:44

  • 0

#3 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 28 April 2015 - 22:57

Да, написать графический интерфейс для этого (GUI).

Ясно. Еще тогда вопрос, мне нужно вызвать скрипт первым для инициализации переменных. Насколько я понял первым загружается скрипт init и уже в нем можно вызывать нужные скрипты. Однако, у меня вызывается мой скрипт после этих скриптов, которые "вызываются" строчкми


call compile preprocessFile "scripts\=BTC=_revive\=BTC=_revive_init.sqf";
call compile preprocessFile "scripts\=BTC=_TK_punishment\=BTC=_tk_init.sqf";

Как мне вызывать свой скрипт, до этих скриптов?


  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 28 April 2015 - 23:58

call compile preprocessFile "scripts\Имя_вашего_скрипта.sqf";
call compile preprocessFile "scripts\=BTC=_revive\=BTC=_revive_init.sqf";
call compile preprocessFile "scripts\=BTC=_TK_punishment\=BTC=_tk_init.sqf";

Это же логично! Если надо ДО, то и вызвать надо перед ними.


  • 0

#5 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 29 April 2015 - 00:48

call compile preprocessFile "scripts\Имя_вашего_скрипта.sqf";
call compile preprocessFile "scripts\=BTC=_revive\=BTC=_revive_init.sqf";
call compile preprocessFile "scripts\=BTC=_TK_punishment\=BTC=_tk_init.sqf";

Это же логично! Если надо ДО, то и вызвать надо перед ними.

 

Ага, это ясно, у меня есть некоторый опыт написания программ. Но вот только он не вызывается строчкой call compile preprocessFile, а только [] execVM, и почему то только после =BTC=_revive_init.sqf и =BTC=_tk_init.sqf". Вопрос - почему?


  • 0

#6 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 29 April 2015 - 01:29

потому что руки кривые... 

 

call compile preprocessFile

самый быстрый способ запуска скрипта.

 

Если не вызывается ваш скрипт, значит он не может работать в "главной среде", и для этого нужно создать "параллельную среду обитания", что и делает  [] execVM или spawn.


Сообщение отредактировал Dimon UA: 29 April 2015 - 01:33

  • 0

#7 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 29 April 2015 - 01:31

потому что руки кривые... 

 

call compile preprocessFile

самый быстрый способ запуска скрипта.

Чудненько. Не дадите ПРУФ почитать?


  • 0

#8 OFFLINE   Dimon UA

Dimon UA

    Ст.сержант

  • Пользователи
  • 304 сообщений
  • Откуда:Севастополь

Отправлено 29 April 2015 - 01:34

 

потому что руки кривые... 

 

call compile preprocessFile

самый быстрый способ запуска скрипта.

Чудненько. Не дадите ПРУФ почитать?

 

Мне за тебя набрать в гугле команды и посмотреть что они делают?

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Сообщение отредактировал Dimon UA: 29 April 2015 - 01:36

  • 0

#9 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 29 April 2015 - 02:23

Для начала обязательно это

http://arma3.ru/foru...kriptopisaniiu/

а по ссылке выше остальные полезности.

 

Ваша проблема в том, что ваш скрипт, как пить дать, прокручивает в себе цикл, вполне вероятно безконечный, а это значит, если вы вызываете этот скрипт методом

call

всё остальное ниже ни когда не дождётся своей очереди на исполнение, пока не завершит свою работу ваш скрипт, или не ваш, что по сути не важно.


  • 0

#10 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 29 April 2015 - 02:48

Мне за тебя набрать в гугле команды и посмотреть что они делают?

 

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

Вы удивительно не воспитанный человек, постите пустую информацию и бросаете тень на весь форум в целом. Странно что админы вас тут терпят.

 

Я, как это для вас ни странно, перед тем как задать тут вопрос, посмотрел справку и видел что preprocessFile загружает файл в препроцессор. Но вот с чего вы взяли он быстрее? У меня вот не загружается файл, следовательно в моем случае, это не то что не быстрее, это вообще не работает (хотя нет. Вы как то писали с подтекстом - "ну у меня же работает!"). Возможно, я что то делаю не так, поскольку не знаю. И конечно, что бы восполнить свои пробелы в знании, я, (о боги!!111) спрашиваю об этом на форуме, в разделе "Вопросы написания скриптов" и своим незнанием надоедаю Вам, который уже просто окончательно устал от таких как я.

Что же, я выражаю вам глубочайшее сожаление и если вы будете так благосклонны, и не сочтете за труд попросить меня вам помочь, то я любезно дам вам номер телефона, хорошего психолога, который поможет вам, избавиться от моральной усталости, тяжелого, умственного труда ответов на форуме, что я уверен, пойдет только всем на пользу.

 

 

Для начала обязательно это

http://arma3.ru/foru...kriptopisaniiu/

а по ссылке выше остальные полезности.

 

Ваша проблема в том, что ваш скрипт, как пить дать, прокручивает в себе цикл, вполне вероятно безконечный, а это значит, если вы вызываете этот скрипт методом

call

всё остальное ниже ни когда не дождётся своей очереди на исполнение, пока не завершит свою работу ваш скрипт, или не ваш, что по сути не важно.

Именно то, что нужно. Спс. У меня действительно в нем сидит покадровый цикл. Тем не менее, как раз таки то что ниже запускается. Хотя, надо потестить.

 

Значит если я правильно понял, то препроцессор тут как раз и используется для инициализации переменных? К сожалению в ссылке на уроки, я не нашел подробной информации о препроцессоре в Арме. Может вы мне дадите ссылку на хороший пруф?


  • 1

#11 OFFLINE   nepret

nepret

    Рядовой

  • Пользователи
  • 19 сообщений

Отправлено 29 April 2015 - 05:17

Sledo, А что? Мне понравилось :) 


  • 1

#12 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 сообщений
  • Откуда:Кострома

Отправлено 29 April 2015 - 08:08

По поводу таблиц: теоретически их можно и без GUI вывести (бонально в hint), но выглядеть это будет криво.
Арма же поддерживает структурированный текст. Нужен лишь двухмерный массив и цикл, который пройдется по нему и выведет текст с уже вставленными операторами куда надо

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Сообщение отредактировал vlad333000: 29 April 2015 - 08:09

  • 0

#13 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 29 April 2015 - 14:04   Лучший Ответ

По поводу таблиц: теоретически их можно и без GUI вывести (бонально в hint), но выглядеть это будет криво.
Арма же поддерживает структурированный текст. Нужен лишь двухмерный массив и цикл, который пройдется по нему и выведет текст с уже вставленными операторами куда надо

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

Приятно общаться с грамотным человеком.


  • 0

#14 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 29 April 2015 - 19:40

 

Значит если я правильно понял, то препроцессор тут как раз и используется для инициализации переменных? К сожалению в ссылке на уроки, я не нашел подробной информации о препроцессоре в Арме. Может вы мне дадите ссылку на хороший пруф?

Нет, вы не правильно поняли, но это не проблема, а вопрос времени, и практики

 

Большой разницы нет, как вызвать ваш скрипт

Через препроцессор или с помощью метода execVM, с разницей, execVM инициализирует исполнение кода находящегося в файле в отдельном процессе, то есть, код следующий за вызовом execVM начнёт исполнятся не зависимо от того завершил ли исполнение код вызванный методом execVM.

 

С помощью

preprocessFile

а лучше с помощью этого

_string = preprocessFileLineNumbers "myFunction.sqf"

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание

 

Вы можете сделать тоже самое, отспавнить код, иногда выражаются так

_handler = _args spawn compile preprocessFileLineNumbers "myCode.sqf";

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

ptm_fnc_myFunction = call compile preprocessFileLineNumbers "fn_myFunction.sqf";

Если вы вызываете что то на исполнение методом

call

То всё что следует за таким вызовом будет ожидать завершения исполнения вызванного кода.


Сообщение отредактировал SteelRat: 29 April 2015 - 19:40

  • 1

#15 OFFLINE   Sledo

Sledo

    Ефрейтор

  • Пользователи
  • 74 сообщений

Отправлено 30 April 2015 - 03:45

Большой разницы нет, как вызвать ваш скрипт

Через препроцессор или с помощью метода execVM

Насколько я понял, команда execVM компилирует файл. Команда же preprocessFile, загружает файл в препроцессор, который читает файл и обычно, подготавливает файл к компиляции, что конечно быстрее чем полноценная компиляция, но накладывает некоторые ограничения на исполняемый файл.

Просто как конкретно все устроено в Арме, несколько не ясно. Из тестов получается, что происходит именно так как я описал - т.е. файлы загружаются в препроцессор, затем компилируются. То что компилировать не нужно, начинает работать раньше чем то, что нужно еще компилировать, что вполне логично и нужные мне переменные инициализируются раньше всех. Правда, почему то они не проходят в условии if, на проверну isNil, при том что в окно результат выводится корректно.

 

Спс за проведенный ликбез по функциям, надо бы это все обмозговать.


Сообщение отредактировал Sledo: 30 April 2015 - 03:46

  • 0

#16 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 30 April 2015 - 05:08

 

Насколько я понял, команда execVM компилирует файл.

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

Что быстрее? То что хорошо оптимизированно!

 

Не проходит проверка на isNil? Значит не корректно проводите проверку.


  • 0




Яндекс.Метрика