Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Вставить в диалог текст из файла, как?!
Sin Bin
сообщение 1.3.2013, 9:54
Сообщение #1


**

Neophyte
Сообщений: 10
Регистрация: 23.11.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.234
Возраст: 24



Добрый день!
Подскажите, пожалуйста, как осуществить следующее:

Есть диалог, который отображается по кнопке QUEST

Код
[DIALOG d_Questbutton] 

0,0
page 0
resizepic 200 150 5170 360 400
gumppic 220 180 92
gumppic 260 180 93
gumppic 375 180 93
gumppic 420 180 93
gumppic 515 180 94
dtext  340  152    0 Квест:

dhtmlgump 230 230 313 240 0 1 [u]<f_quest1>[/u] // описание.


Требуется создать функцию, <f_quest1> которая отобразит в диалоге текст из файла quest1.txt

Хотя бы подскажите, пожалуйста, в какую сторону искать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Mirage
сообщение 1.3.2013, 10:17
Сообщение #2


*******

Группа: Пользователи
Наличность: 0
Из: Иваново
Пользователь №: 13.089
Возраст: 35



[0.56b] Quest System V1.2a, Автор скрипта и идеи: Breaker.
Там есть пример использования внешнего txt и html файла для квестов.


--------------------
Изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sin Bin
сообщение 1.3.2013, 10:48
Сообщение #3


**

Neophyte
Сообщений: 10
Регистрация: 23.11.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.234
Возраст: 24



С него и начал изучение.
Не могу разобраться как он заставляет отображать текст из файлов.
Сколько не бьюсь у меня максимум отображается текст "0".
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sin Bin
сообщение 1.3.2013, 18:12
Сообщение #4


**

Neophyte
Сообщений: 10
Регистрация: 23.11.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.234
Возраст: 24



Вот пример скрипта:

Цитата
[FUNCTION f_html]

FILE.FILEEXIST q1.txt // нашли файл
FILE.OPEN q1.txt // открыли
FILE.FILELINES q1.txt // посчитали линии (строки)
FILE.READLINE 0 // прочли последнюю строку
LOCAL.text = <FILE.READLINE> // присвоили значение
RETURN <LOCAL.text> // вывели значение
FILE.CLOSE // закрыли файл.


на выходе получаем "0"...
Сфера не ругается. В чем может быть ошибка?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Wap
сообщение 1.3.2013, 19:37
Сообщение #5


**********

Администратор Форума
Сообщений: 3.003
Регистрация: 22.12.2006
Группа: Администраторы
Наличность: 31651
Пользователь №: 9.227



Нужно учиться юзать дебаги, иначе у тебя всегда будет куча вопросов. Написанный выше код вообще написан не на языке SphereScp, а непонятно на чем, хоть команды и Сферы.
Цитата
LOCAL.1=<FILE.OPEN q1.txt>//да, да, это и правда нелогично, но FILE.OPEN нужно писать в возвратной форме
LOCAL.text=<FILE.READLINE 2>
FILE.CLOSE
Дальше думай сам и юзай SYSMESSAGE для проверки: как работает то, что ты написал.


--------------------
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Sin Bin
сообщение 3.3.2013, 9:35
Сообщение #6


**

Neophyte
Сообщений: 10
Регистрация: 23.11.2009
Группа: Пользователи
Наличность: 0
Пользователь №: 12.234
Возраст: 24



Сломал всю голову, в итоге получилось так:

Код
[FUNCTION f_html]
FILE.CLOSE
IF !(<FILE.FILEEXIST q1.txt>)
    SYSMESSAGE i dont see file!!
ELSE
    SYSMESSAGE i see file!!
    <FILE.OPEN q1.txt>
    LOCAL.Lines = "<FILE.FILELINES q1.txt>"
    SYSMESSAGE lines = <LOCAL.Lines>
    IF (<LOCAL.Lines>==1)
       LOCAL.Line1 = "<FILE.READLINE 1>"
       RETURN <LOCAL.Line1>
       ELSE
            IF (<LOCAL.Lines>==2)
            LOCAL.Line1 = "<FILE.READLINE 1>"
            LOCAL.Line2 = "<FILE.READLINE 2>"
       RETURN  <LOCAL.Line1> <LOCAL.Line2>
            ELSE
                IF (<LOCAL.Lines>==3)
                LOCAL.Line1 = "<FILE.READLINE 1>"
                LOCAL.Line2 = "<FILE.READLINE 2>"
                LOCAL.Line3 = "<FILE.READLINE 3>"
       RETURN <LOCAL.Line1> <LOCAL.Line2> <LOCAL.Line3>
       ELSE
                   IF (<LOCAL.Lines>==4)
                            LOCAL.Line1 = "<FILE.READLINE 1>"
                            LOCAL.Line2 = "<FILE.READLINE 2>"
                            LOCAL.Line3 = "<FILE.READLINE 3>"
                            LOCAL.Line4 = "<FILE.READLINE 4>"
                   RETURN <LOCAL.Line1> <LOCAL.Line2> <LOCAL.Line3> <LOCAL.Line4>
                   ELSE
      
       FILE.CLOSE
ENDIF    
    ENDIF
            ENDIF    
                ENDIF    
                    ENDIF
FILE.CLOSE                
RETURN 0


Это работает...
Функция ищет файл, проверяет количество строк, если их 4 или меньше, и выводит их, начиная от первой.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.4.2024, 6:57
Designed by Nickostyle