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=4154)

Данил 15.08.2007 00:13

Скриптовая система или как работать с файлами
 
Вот ,допустим, начал создавать скриптовую систему. Как сделать так, чтобы гама просматривала файл, и если находила строчку [скрипт], то считывала бы следующую строчу, и если она ровна 4, то загружала кучу параметров, а если неТ, то просто пропускала всю эту кучу. вот мой код (всё что пока написал:@ ):





Код:

file = OpenFile ("Text\" + SObject\script + ".txt")
While Not Eof(fileout)
CloseFile file


З.Ы. Сильно не бейте(:killall::sarcastic_hand: лучше сразу застрелите :) ) , плохо умею работать с файлами:doof: :sarcastic_hand:

Leito 15.08.2007 00:24

Re: Скриптовая система или как работать с файлами
 
короче
file = OpenFile ("Text\" + SObject\script + ".txt")
While Not Eof(file)
s$=readline(file)
if s$="script"
while s$<>"/script"
s$=readline(file)
if s$="dialog"
; диалоги
end if
wend
end if
CloseFile file

Черный крыс 15.08.2007 00:25

Re: Скриптовая система или как работать с файлами
 
Нужна скриптовая система? Лучше юзай - BSE - Это тема!

Данил 15.08.2007 00:35

Re: Скриптовая система или как работать с файлами
 
То есть пишу

file = OpenFile ("Text\" + SObject\script + ".txt")
While Not Eof(file)
s$=readline(file)
if s$="script"
while s$<>"/script"

- сюда команды типа
if h$="dialog"
while h$<>"/dialg"
a=ReadLine(file)
b=ReadLine(file)
c=ReadLine(file)
Wend

if j$="battle"
while j$<>"/battle"
a=ReadLine(file)
b=ReadLine(file)
c=ReadLine(file)
Wend

wend
end if
CloseFile file

и так цикл в цикле и их целая куча? а мона ещё вопрос? тормозить сильно будет?

Leito 15.08.2007 00:37

Re: Скриптовая система или как работать с файлами
 
не будит сильно тормозить.
но лучше весь файл в начале игры в массив текстовые перенести.

немного не так)
while s$<>"/script"
s$=readline(file)
- сюда команды типа
if s$="dialog"

a=ReadLine(file)
b=ReadLine(file)
c=ReadLine(file)
end if

if s$="battle"
a=ReadLine(file)
b=ReadLine(file)
c=ReadLine(file)
end if

end if

IGR 15.08.2007 15:22

Re: Скриптовая система или как работать с файлами
 
Цитата:

Нужна скриптовая система? Лучше юзай - BSE - Это тема!
BSE - это что единственная скриптовая система для Блица ??

H@NON 15.08.2007 15:36

Re: Скриптовая система или как работать с файлами
 
Цитата:

Сообщение от IGR
BSE - это что единственная скриптовая система для Блица ??

Нет.
http://blitz.pp.ru/forum/showthread....&threadid=2584

IGR 15.08.2007 15:55

Re: Скриптовая система или как работать с файлами
 
дык это ещё хуже чем BSE !!

H@NON 15.08.2007 15:58

Re: Скриптовая система или как работать с файлами
 
Я тебе привел пример, что сууществуют еще скриптовые системы, кроме bse, и не надо возмущатся.

IGR 15.08.2007 16:28

Re: Скриптовая система или как работать с файлами
 
Цитата:

и не надо возмущатся
дык я не возмущаюсь !!
это я так от безнадеги увидеть супер-пупер скрипт енжын !!

Knightmare 15.08.2007 18:13

Re: Скриптовая система или как работать с файлами
 
Цитата:

это я так от безнадеги увидеть супер-пупер скрипт енжын !!
извиняюся, а что под этим подразумевается? =)

IGR 15.08.2007 18:17

Re: Скриптовая система или как работать с файлами
 
Цитата:

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

Knightmare 15.08.2007 18:29

Re: Скриптовая система или как работать с файлами
 
Цитата:

ну чтоб было удобен и многофункционален !!
а если подробнее? такой ответ мне не дает никакой видимости что можно улучшить/переделать. вот тока не нада бредовых идей никаких
вообще по сабжу. лучший способ имхо вот так:
1) загружаем скрипт из файла
2) пропускаем через лексер и получаем массив лексем на выходе
3) скармливаем лексемы компилятору и получаем на выходе псевдо код аля ассемблер
3.1) опционально. оптимизируем полученный код
4) сохраняем итоговый код в массив комманд
5) по необходимости выполняем его на виртуальной машине
самое сложное здесь: компиляция псевдо-кода. данный способ избавляет нас от кучи циклов (псевдокод выполняется за 1 проход) и работы с файлами во время выполнения скрипта

moka 18.08.2007 03:35

Re: Скриптовая система или как работать с файлами
 
Knightmare, вай... Ты не учёл, что автор вопроса не столь продвинутый кодер, о чём он заранее предупредил ;)
Хм, незнаю зачем чтото мудрить. Есть же xml парсер, отлично подходит под скриптовую систему. Очень шустрый.

Если свою то я делаю так:
1. Получаешь линию.
2. Разбиваешь на левую и правую часть (разделитель "=").
3. Анализируешь и применяешь соответствующие действия.
Всё минимально просто (на уровне ini), при это можно реализовать простые скриптовые сценки.


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

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