forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Blitz3D (http://forum.boolean.name/forumdisplay.php?f=45)
-   -   Считывание Функций с Файла (http://forum.boolean.name/showthread.php?t=14660)

zAvaTARz 03.05.2011 16:58

Считывание Функций с Файла
 
привет всем!
тут возник важный вопрос, а как можно считывать функции с файла?

допустим у меня в блитзе есть такая функция

Код:


...

Function CreatePlayer(x,y,z)
Player=createsphere()
positionentity Player,x,y,z
End Function

...

а в файле (например pos.txt)
Код:

CreatePlayer(100,5,100)
как мне можно использовать функции, только не в самом блитце а в Исходнике допустим я Скомплектовал игру, и там с файла уже считывать функции

просто тупо считывать позицию и отсчитывать по запятым это сложно
так вот я и подумал может есть какой более легкий способ)
помогите пожалста)

impersonalis 03.05.2011 17:11

Ответ: Считывание Функций с Файла
 
Цитата:

может есть какой более легкий способ
нет.
тебе нужен парсер.

LLI.T.A.L.K.E.R. 04.05.2011 01:58

Ответ: Считывание Функций с Файла
 
Скачать Сборник "Внешнее Скриптование" или
альтернативная ссылка

Состав:
blitzscript3d - самый лёгкий, понятный, без предварительной компиляции скрипта.
Делал тест на пробу
Смотреть demo.bb, строки
PHP код:

Global BulkaStyle$="Forum.Boolean.Name"
blitzscriptvarset(BulkaStyle,BulkaStyle$) 

(Запускай demo.exe, вводи 1, жми Ентер - дополнительно пишется мой текст)
В файле-скрипте entity.bs ищи:
PHP код:

Text(50,50,blitzscriptvarget(BulkaStyle)) 

mini_script_v1.0.2 - он конечно продвинутый, но от этого и сложный к восприятию. Скрипты необходимо компилировать (может в этом плюс защиты исх. кода?)
некоторый исходник нескомпилированного кода:
PHP код:

//Classic Hello World! =)

mta    "Hello World!"
invg    print    1    temp 

(брал оттуда) (обновление Mini Script 1.0.3)


GameScript1 - особо не смотрел...
Текст кода example1.gs:
PHP код:

Type Vehicle
Field speed
:Float
EndType

Local car
:Vehicle

car
=New Vehicle

car
.speed 120

print car.speed 

(кажется без предварительной компиляции)

Я сам лично ещё не смог осмыслить "применение внешних скриптов"
в чём фишка? Да, это круто. Но... что это даст? Вот в чём вопрос.


Названия писал так, как назывались их папки и архивы.

IGR 04.05.2011 03:15

Ответ: Считывание Функций с Файла
 
ну че-че..
Если брать игры то на них как бы пишется логика каких то объектов управляемых компом !! Можна писать обработчики киках то игровых событий.. Да че там если помешатся на скриптах то можна и логику гуя на нем написать !!
Но главное удобство что не нужна перекомпиляция екзе при изменениии скрипта(логики) !!
Ясчетаю это гут !!

Gector 04.05.2011 09:33

Ответ: Считывание Функций с Файла
 
Цитата:

mini_script_v1.0.2 - он конечно продвинутый, но от этого и сложный к восприятию. Скрипты необходимо компилировать (может в этом плюс защиты исх. кода?)
некоторый исходник нескомпилированного кода:
Это в первую очередь для его работы нужно;).

Цитата:

так вот я и подумал может есть какой более легкий способ)
Если нужны только команды то тут можно написать парсер. Считываешь, записываешь, выполняешь. Только смысла в этом не много. Если только стартовые настройки из файла читать(типа разрешения, режима и пр.х.)).
LLI.T.A.L.K.E.R. Вообще, не знаю как остальные скриптовики, но mini script как раз задумывался как средство для расширения функционала. То есть есть у тебя тип бота, и ты в можешь добавить ему поле "скрипт" и туда сохранить скрипт который будет добавлять в его поведение отклонения от базового алгоритма. Фактически это лишь дополнительная настройка. Создавать функции Graphics3d как в примере blitzscript3d - это извращенство).
Цитата:

Да че там если помешатся на скриптах то можна и логику гуя на нем написать !!
Если только помешаться). На мой взгляд скриптовик нужен больше для "украшения" основной механики. Чтобы допустим гуи этот выглядел эффектней в определенных местах.

Taugeshtu 04.05.2011 17:10

Ответ: Считывание Функций с Файла
 
Цитата:

На мой взгляд скриптовик нужен больше для "украшения" основной механики.
На мой взгляд, скриптовик нужен в первую очередь там, где есть отдельный редактор игровой логики/уровней.
Канонический пример - Hammer Editor и все его произведения - от Garry's Mod до того же Counter Strike.
Канонический пример на блитце - SmartBots, но там было очень хитро - исходник скрипта для бота компилировался в некий файл, а потом считывался самой игрой. При этом редактор исходников (он же - компилятор) был отдельной программой.

Опять же - не обязательно открывать редактор игрокам, это может быть внутренний инструмент, "подсасывающий" скрипты из отдельной папки и цепляющий их на объекты/объекты к ним. Правда для подсасывания скриптов во время запуска (редактирование логики во время игрового процесса О_о) нужно предусмотреть такую возможность в коде самой игры, и запускать либо по хитрому "автопилоту", либо по кнопке...


Вердикт:
Топикстартеру либо писать парсер для получения данных для определённых функций, либо писать парсер для получения функций и данных для них - тогда можно вызывать что угодно, когда угодно. Хоть в главном игровом цикле.

zAvaTARz 04.05.2011 17:55

Ответ: Считывание Функций с Файла
 
спасибо огромное)
просто к своей игре подключаю PHP(регистрацию и.т.д)
вот этот скрипт внешний поможет тем, что я закину как бы за конфигурацию сервера, ну тоесть можно будит его изменять внешне, игрок заходит скачивает настройки и играет) это будит как раз для меня ну делать там разные ивенты и.т.д как это обычно и бывает,самому чтобы создать типо скриптовика у меня бы ушло уйма времени а так, тем более уже на сайте сделал ТИПО мануала о создании сервера http://zombie.shr.by/

Gector 04.05.2011 18:30

Ответ: Считывание Функций с Файла
 
Цитата:

Сообщение от Taugeshtu (Сообщение 187452)
На мой взгляд, скриптовик нужен в первую очередь там, где есть отдельный редактор игровой логики/уровней.

Вот тут могу поспорить. Для движка Mayhem2 вообще редактора кроме 3дмакса не требовалось. Там даже сеть вейпойнтов расставлялась соединялась в максе). А скрипты это по сути сценарий для механики.
Цитата:

это будит как раз для меня ну делать там разные ивенты и.т.д
Онлайн РПГ? Вот тут хз:-D... С синглом всё проще.

baton4ik 04.05.2011 18:59

Ответ: Считывание Функций с Файла
 
Цитата:

Сообщение от LLI.T.A.L.K.E.R. (Сообщение 187384)
Я сам лично ещё не смог осмыслить "применение внешних скриптов"
в чём фишка? Да, это круто. Но... что это даст? Вот в чём вопрос.

http://forum.boolean.name/showthread.php?t=14085

zAvaTARz 04.05.2011 19:01

Ответ: Считывание Функций с Файла
 
Цитата:

Сообщение от Gector (Сообщение 187463)
Вот тут могу поспорить. Для движка Mayhem2 вообще редактора кроме 3дмакса не требовалось. Там даже сеть вейпойнтов расставлялась соединялась в максе). А скрипты это по сути сценарий для механики.

Онлайн РПГ? Вот тут хз:-D... С синглом всё проще.

не что то типо GTA SA, CS 1.6 будит настройка под разные сервера, а их будит достаточно)

а что за сингл?

Gector 04.05.2011 19:14

Ответ: Считывание Функций с Файла
 
Цитата:

Сообщение от zAvaTARz (Сообщение 187469)
не что то типо GTA SA, CS 1.6 будит настройка под разные сервера, а их будит достаточно)

а что за сингл?

Синглплеер. Без сети короче.) Вообще в онлайне скрипты в принципе для того же.

Черный крыс 04.05.2011 19:56

Ответ: Считывание Функций с Файла
 
В более-меннее серьезных проектах всегда будет присутствовать скрипт-движок. Это не балавство, это реально необходимая вещь.

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

Пока что лучше всех с этим справляется скриптовик LUA.

PS Для БМаксеров качать его можно в моей подписи. =)

PPS А для Blitz3D-шников нет никакого смысла юзать скрипты, так как сам Blitz3D является скриптовиком.


Часовой пояс GMT +4, время: 15:41.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot