Перейти к содержимому
La2Base
Главная
ЗагрузкиВикиФорумFAQ
ruen
Регистрация Войти
ГлавнаяФайлыВикиВойти
  • Главная
  • Загрузки
  • Вики
  • FAQ
  • Обратная связь
  • О проекте
  • Правила
  • Конфиденциальность
  • Условия использования

© 2026 la2base.com · Все права защищены

ruen
Форум/Квесты/форма в квесте
Поиск

форма в квесте

8 ответов242 просмотровСейчас просматривают: 1
Хам
Хам

Пользователь

Бывалый

Постов: 179

На форуме с: 16.03.2008

Репутация: +45

Рейтинг: 0

· 29.01.2010, 16:30

можно ли как нибудь реализовать в квесте окно формы. т.е. по принципу заточки через админку либо как то по другому, что бы данные введеные в форму отправлялись в квест и ими можно было бы манипулировать?
пример:
заточка
на htm странице имеется форма ввода, вводим значение 10, оно отправляется в код квеста, в котором используем это число как enchlvl

в админке это реализованно так:
<edit var="menu_command" width=120 height=15> (сама форма)
bypass -h admin_setun $menu_command (обработчик (кнопка))

но админка работает напрямую через ядро, а как перенести в квест хз

0
G
Gradesk
· 30.01.2010, 08:25

Ты сам ответил на свой вопрос...
Первую строчку оставляем... а вторуюменяем на "bypass -h Quest $menu_command"
А дальше уже значение в "menu_command" будет являтся "эвентом" в квесте...
Сори что в асе сразу не ответил, просто не разбирался особо...

0
Хам
Хам

Пользователь

Бывалый

Постов: 179

На форуме с: 16.03.2008

Репутация: +45

Рейтинг: 0

· 30.01.2010, 12:41

спасибо канечно, но мне нужно немного другое
bypass -h admin_setun 1 $menu_command

где 1 это как раз таки значение эвента, а $menu_command значение нужно присвоить какой либо переменной котору можно было бы использовать в event = "1"

если смотреть на примере бафера от ринча, то:
You MUST seprerate new words with a dot (.)<br><br>Scheme name: <edit var=\"name\" width=100> (сама форма)
action=\"bypass -h Quest "+QUEST_LOADING_INFO+" create $name no_name x x\" width=200 height=25 (сама кнопка)

Код
        if event == "create" :
            con=L2DatabaseFactory.getInstance().getConnection()
            param = eventParam1.replace("."," ")
            if param == "no_name" :
                return showText("Info","Please, enter the scheme name!","True","Return","main")
            else :

выполнение кода при нажатии на кнопку

насколько я понимаю,пишем имя в форму, нажимаем кнопку и данные передаются на выполнение кода согласно create
no_name посредством точки определяет вписанно ли что либо в форму
если что то в форме вписанно то оно отправляется на else

собственно: в самой точке и выполнении элзе у мну и заморочка

0
Хам
Хам

Пользователь

Бывалый

Постов: 179

На форуме с: 16.03.2008

Репутация: +45

Рейтинг: 0

· 30.01.2010, 13:08

так, насколько понял, работаэ то так:
если никакое значение не введено, но $name = пустоте и в силу вступает no_name (непонятно для чего нужны эти иксики)
параметр param (хз каким образом) получает нашь параметр, и если он равен no_name но возвращаем челу ошибку об отсутствии имени
в противном случае показываем:

Код
            else :
                ins = con.prepareStatement("INSERT INTO buffer_scheme_list (player_id,scheme_name) VALUES (?,?)")
                ins.setString(1, str(player.getObjectId()))
                ins.setString(2, param)
                try :
                    ins.executeUpdate()
                    ins.close()
                    con.close()
                except :
                    pass
            return rebuildMainHtml(st)


это неизвестная для меня часть кода:
Код
        eventSplit = event.split(" ")
        event = eventSplit[0]
        eventParam1 = eventSplit[1]
        eventParam2 = eventSplit[2]
        eventParam3 = eventSplit[3]


вопросы:
1. что за иксики в html и нужни ли они?
2. каким образом мы все таки получаем параметр?
3. как все таки работает точка

0
G
Gradesk
· 30.01.2010, 13:31

Начну с конца...

Код
        eventSplit = event.split(" ")
        event = eventSplit[0]
        eventParam1 = eventSplit[1]
        eventParam2 = eventSplit[2]
        eventParam3 = eventSplit[3]

Эвент получаемый из хетемельки имеет некоторые слова, которые разделяются пробелом, в первой строчке "компьютеру" объясняется что идёт разделение.
К примеру эвент изначально было тако - "create 57 1000".
"Сплит" так сказать разделяет строчку на части... вернее получается что "eventSplit" становится равным такому виду "["create","57","1000"]"
То есть некий массив.
После этого банально меняютс и присваиваются значения...
Хз как ещё объяснить этот сплит...

Теперь что такое "replace"...
"replace" это так сказать на что начинается или на что заканчивается эвент (на счёт "заканчивается" я не уверен).
Пример такой:
Эвент из кнопки у нас опять же будет "create 57 1000".
Следовательно:
Код
if event.replace("create", ""):

Означает что идёт првоерка на то что эвент начинается именно с этих сочетаний букв...
Обращаю внимание что тут надо быть осторожным...
ибо такая проверка будет верна как с эвентом равным "create 57 1000", так и если эвент будет такого вида "create_item 57 1000".
А если поставить в репласе после слова "create" пробел (то есть вот так сделать првоерку "if event.replace("create ", ""):", тогда уже проверка эвента "create_item 57 1000" окажется неверной... так как после слова креате идёт не пробел а нижний подчерк...

А что касается запросов и нонейм хз... чёт не пойму я этого кусочка кода...

0
G
Gradesk
· 30.01.2010, 13:49

Небольшое дополнение, чтобы было более понятно...
> list = ["5","8","text","1"]
>
> list[0] будет равен 5
> list[1] будет равен 8
> list[2] будет равен text
> list[3] будет равен 1

0
Никита
Никита

Пользователь

Ветеран

Постов: 580

На форуме с: 30.05.2008

Репутация: +696

Рейтинг: 0

· 30.01.2010, 19:24

Gradesk,
Если не трудно, можешь маленький квест сделать с примером ?

0
G
Gradesk
· 30.01.2010, 21:34

Huk99: Gradesk,
Если не трудно, можешь маленький квест сделать с примером ?

в каком плане?
на эту тему? или как?
да и я почти этим уже не занимаюсь, только под заказ...
А пример квестов - открой папку с квестами и капайся 3c2f1c34aa11.gif там примеров тьма тьмущая...

0
Войдите или зарегистрируйтесь чтобы ответить