Голосование

Кто желает, писать скрипты в стиле C++ ?

Да, это круто!
7 (58.3%)
Мне все равно!
2 (16.7%)
Мне это не нравиться.
3 (25%)

Проголосовало пользователей: 12

Автор Тема: Скриптинг в стиле C++  (Прочитано 8066 раз)

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Скриптинг в стиле C++
« : Апрель 19, 2014, 08:17:35 pm »
Вопрос такой, кто бы хотел писать миссии, скрипты в стиле C++? Т.е получили набор функций и сидите в блокноте пишите, сколько угодно сценариев, это не ASI (и не программирование) а лишь скриптовый функционал.

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Скриптинг в стиле C++
« Ответ #1 : Апрель 19, 2014, 10:09:53 pm »
Я пробовал в Sannybuilder скриптить по такому принципу

while true
wait 0
      if and
      04C9:    player $PLAYER_CHAR driving_flying_vehicle
      80DE:   not player $PLAYER_CHAR driving_vehicle_type #SKIMMER
      then
        while 00E1:   key_pressed 0 6
        wait 0                         
        05DF: write_memory 10@ size 2 value 0x5F virtual_protect 0
        end
      end
end

Но в итоге получалась не то каша(ведь без "jump @DRUGOIPOTOK" в больших скриптах не обойтись) не то хз что. Поэтому лично мне удобнее писать скрипты по-старинке.

Так что  :-\

P.S. Но я говорю за себя, а таким парням, как ThirteenAG это наверное бы понравилось(у него все скрипты выглядят, как показал в примере я)
« Последнее редактирование: Апрель 19, 2014, 11:11:33 pm от Shaggy »

Оффлайн Jak łaska za praca

  • Прохожий
  • *
  • Сообщений: 58
  • Репутация: +1/-0
  • Как украшение на торт
    • aktel999
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #2 : Апрель 20, 2014, 07:46:18 am »
Автор темы хочет сделать свой компилятор?(транскриптор)
Украшаю торты на своих вечеринках, классных вечеринках.

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #3 : Апрель 20, 2014, 10:53:12 am »
Думаю, было бы интересно. Меня как раз все эти jump всегда бесили, какой-то скачущий код, в программировании от них учат избавляться. Лучше строить удобные, читаемые по порядку конструкции. И раз уж тут пишут asi-плагины, то логично все делать в одном стиле, в том числе и скрипты. Еще один момент, было бы удобно именно интерпретировать скрипты, как им и полагается по своему назначению, прямо по текстовым командам из файла, а не компилировать в какой-то зашифрованный формат scm, cs, когда хранишь и оригинал и "исполняемый" файл. Открыл, исправил текст и готово без всяких компиляторов.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #4 : Апрель 20, 2014, 03:27:09 pm »
Это все хорошо, есть готовые движки, но не все по производительности классные.

Смотрим:




Делаем результаты:
Язык Pawn очень шустр. Остальные нам тормоза не к чему, язык pawn он си подобный и легкий в освоении, если прикрутить туда множество функций в GTA Vice City, то этого будет достаточно для разработки любых игровых сценариев и любых модификаций.

Цитировать
а не компилировать в какой-то зашифрованный формат scm, cs,


ммм, это не шифр, а байт код, если скрипты не компилировались бы, то оно бы все превратилось бы в тормоза. Так что байт код, затем исполняется виртуальной машиной VM и работает уже там, быстро.

Вообщем надо прикручивать Pawn и набивать его функционалом, затем все привести в людской вид и выкладывать вместе с примерами, статьями, доками и описать все возможности. Далее уже видно будет.

Что-бы разработать что-то свое, тут понадобиться много времени, это дело не очень простое. Возможно в будущем что-то полностью свое можно будет реализовать, свой интерпретатор, это классная вещь, но требует огромных усилий.  Вообщем делайте выводы.
« Последнее редактирование: Апрель 20, 2014, 03:29:25 pm от Sektor »

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Скриптинг в стиле C++
« Ответ #5 : Апрель 20, 2014, 08:50:14 pm »
Pawn знаю по опыту работы над SAMP сервами, язык удобный для ГТА(не случайно его выбрали для SAMPа): плюс фишечки в виде includes и т.п.

Потенциал конечно хороший: в дальнейшем такой редактор можно было бы обучить формату скриптов GTA 4 и 5, что еще сблизило бы эти серии.

Если же ориентироваться строго на Вайс - то хз хз... :-\

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #6 : Апрель 21, 2014, 02:45:15 pm »
Да вот pawn мне удалось прикрутить в ВС, выполняются функции, но есть проблема. Не вижу, из[ b]API[/b] функций в source, таких которые могут поставить на паузу, поток и возобновить. Хотел реализовать всем известный wait. Без него реально, сриптинг становится безполезным.

Вот так было бы классно, проверять условия в Pawn:

Код: C++
  1. public Mission_1() {
  2.  
  3. LoadRequestModels();
  4.  
  5. //Пример ожидания
  6.  
  7. while (true) {
  8.  
  9.     if( IsPlayerDead(PLAYER_ACTOR) == true) {
  10.         MissionFailed();
  11.         break;
  12.      } else {
  13.        
  14.        //А тут дальше делаем что угодно...
  15.       }
  16.  
  17.    Wait(0);  //А вот и нужная штука!
  18.  }
  19.  
  20.  
  21.  
  22. }
  23.  

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 705
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Скриптинг в стиле C++
« Ответ #7 : Апрель 21, 2014, 03:06:37 pm »
А вот это то, за что мне pawn не нравился в своё время, пока не привык - там вместо wait-а идет таймер.
Т.е. там, где тебе нужен wait - ставишь таймер на public:

    SetTimer("PUBLICNAME", 1000, false); - это пример секундной задержки.
Отсюда следует, что такие wait-ы будут дробить потоки на тысячи public-ов черт знает как.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #8 : Апрель 21, 2014, 03:16:15 pm »
Либо писать свою виртуальную машину, с компилятором. Но тут нужны более менее, глубокие знания особенно в парсингах, лексекаторе и прочими алгоритмами. Дело в том что, виртуальную машину я могу разработать, я всю суть понял, там и регистрация функций программистов делается не сложно, и многопоточность тоже. Но вот я при разработке уже самого компилятора, вставал в тупик.

Оффлайн Saint

  • Прохожий
  • *
  • Сообщений: 83
  • Репутация: +1/-0
  • Saint Games
    • saint36rus
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #9 : Апрель 21, 2014, 08:14:03 pm »
категорически против.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #10 : Апрель 21, 2014, 09:21:40 pm »
У кого, какой выбор, но на мой взгляд, скрипты такого синтаксиса как Си, были бы классные.

Оффлайн DK

  • Новичок
  • **
  • Сообщений: 234
  • Репутация: +328/-0
    • dk22pac
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #11 : Апрель 26, 2014, 12:59:17 pm »
Хрень полная.
Plugin-SDK https://github.com/DK22Pac/plugin-sdk

Discord-сервер по plugin-sdk и программированию в GTA
RU https://discord.gg/QEesDGb
ENG https://discord.gg/zaVqFQv

Оффлайн graveman

  • Прохожий
  • *
  • Сообщений: 50
  • Репутация: +3/-0
  • Its cool! Man
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #12 : Май 12, 2014, 06:40:14 am »
У кого, какой выбор, но на мой взгляд, скрипты такого синтаксиса как Си, были бы классные.
C-подобные скрипты - это здорово. Но лучше на C прямо писать как dll, наверное. Согласен с xanser насчет jump'ов.

Оффлайн xanser

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 598
  • Репутация: +92/-0
  • Есть такая профессия - на работе сидеть
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #13 : Май 12, 2014, 12:20:58 pm »
Вспомнилось по случаю, что где-то я видел выложенные оригинальные скрипты некоторых миссий от рокстар в стиле main.sc, не помню ссылку, может кто найдет, тоже интересный вариант, похож на си, можно реализовать.

Оффлайн Sektor

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 521
  • Репутация: +34/-0
    • Просмотр профиля
Re: Скриптинг в стиле C++
« Ответ #14 : Июнь 11, 2014, 01:56:02 am »
Цитировать
некоторых миссий от рокстар в стиле main.sc
Ну там же в папке data. Это часть сорцов...