Skip to content
La2Base
Home
DownloadsWikiForumFAQ
Search
ruen
Sign up Login
HomeFilesWikiLogin
  • Home
  • Downloads
  • Wiki
  • FAQ
  • Contact Us
  • About
  • Rules
  • Privacy
  • Terms of Service

© 2026 la2base.com · All rights reserved

ruen
Forum/Квесты/форма в квесте
Search

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

8 replies211 viewsCurrently viewing: 1
Хам
Хам

User

Бывалый

Posts: 179

На форуме с: 03/16/2008

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

Рейтинг: 0

· 01/29/2010, 04:30 PM

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

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

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

0
G
Gradesk
· 01/30/2010, 08:25 AM

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

0
Хам
Хам

User

Бывалый

Posts: 179

На форуме с: 03/16/2008

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

Рейтинг: 0

· 01/30/2010, 12:41 PM

спасибо канечно, но мне нужно немного другое
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
Хам
Хам

User

Бывалый

Posts: 179

На форуме с: 03/16/2008

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

Рейтинг: 0

· 01/30/2010, 01:08 PM

так, насколько понял, работаэ то так:
если никакое значение не введено, но $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
· 01/30/2010, 01:31 PM

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

Код
        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
· 01/30/2010, 01:49 PM

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

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

User

Ветеран

Posts: 580

На форуме с: 05/30/2008

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

Рейтинг: 0

· 01/30/2010, 07:24 PM

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

0
G
Gradesk
· 01/30/2010, 09:34 PM

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

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

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