L2Emu Rev 508
Вот это типо того окна которое вылазиет когда кидают пати или дуэль мне нужно так что бы при ножатие (Ок) или (Да) произошла дапустим регистрация например (ATTAKERS.append(player.getName())) как это сделать ???
окно я вывел вот так через это через питон
Ну что нету знатаков ?(АПлеОП)
хм, поглядел бы ты в ядре (какой нить шарносорсной сборки) как там это происходит...
Пока что нету возможности самому глянть так что даю только наводку...
Gradesk: хм, поглядел бы ты в ядре (какой нить шарносорсной сборки) как там это происходит...
Пока что нету возможности самому глянть так что даю только наводку...
Я не совсем понял что ты написал (даже не вдумывался ибо уже грубо говоря с начала лета серверами особо не занимаюсь) но если ты добился некого результата ответа на вопрос, то есть если можно проверить в питоне как ответил игрок, то регистрация его очень лёгкая, либо через запрос в БД (на случай если регистраци будет происходить до и после перезапуска сервера), или через так называемые "глобальные" переменные.
Второй вариант предпочтительнее (дабы не нагружать сервер и БД).
По этому сразу второй вариант:
для начала надо создать переменную и сделать это так:
"REG_CHAR = [] " //это надо вверху файла прописать.
Дальше в разделе он евент (или он адвевент) указать что переменная является глобальной:
"global REG_CHAR"
и уже после согласия игроква сделать так:
"REG_CHAR.append(player.getName())"
И тогда в масиве REG_CHAR появится имя регнувшегося игрока, после чего банальным "for" мы всех регнутых из масива портаем куда нам надо, и не забываем что прям непосредственно перед началом эвента сделать проверку на то чтобы чар был в онлайне, и для лучшего эффекта если чара не будет в онлайне то удалить его имя из масива (ну правда я бы порекомендовал ещё првоерку на олимп и другие эвенты сделать но это уже тонкости) кодом "REG_CHAR.remove(player.getName())".
P.S. Я правда не совсем понял каким кодом ты узнаеш что ответил чар...
Gradesk: Я не совсем понял что ты написал (даже не вдумывался ибо уже грубо говоря с начала лета серверами особо не занимаюсь) но если ты добился некого результата ответа на вопрос, то есть если можно проверить в питоне как ответил игрок, то регистрация его очень лёгкая, либо через запрос в БД (на случай если регистраци будет происходить до и после перезапуска сервера), или через так называемые "глобальные" переменные.
Второй вариант предпочтительнее (дабы не нагружать сервер и БД).
По этому сразу второй вариант:
для начала надо создать переменную и сделать это так:
"REG_CHAR = [] " //это надо вверху файла прописать.
Дальше в разделе он евент (или он адвевент) указать что переменная является глобальной:
"global REG_CHAR"
и уже после согласия игроква сделать так:
"REG_CHAR.append(player.getName())"
И тогда в масиве REG_CHAR появится имя регнувшегося игрока, после чего банальным "for" мы всех регнутых из масива портаем куда нам надо, и не забываем что прям непосредственно перед началом эвента сделать проверку на то чтобы чар был в онлайне, и для лучшего эффекта если чара не будет в онлайне то удалить его имя из масива (ну правда я бы порекомендовал ещё првоерку на олимп и другие эвенты сделать но это уже тонкости) кодом "REG_CHAR.remove(player.getName())".
P.S. Я правда не совсем понял каким кодом ты узнаеш что ответил чар...
хм, а тут уже надо посидеть поковыряться... но думаю гдето в "селфах" надо копаться и не в оневенте а чтото типо он инт... который в самом начале описывается... хотя хз.
Я уже пока забил на сервера... так что тут думаю мои доводы прекращаются ![]()
Gradesk: хм, а тут уже надо посидеть поковыряться... но думаю гдето в "селфах" надо копаться и не в оневенте а чтото типо он инт... который в самом начале описывается... хотя хз.
Я уже пока забил на сервера... так что тут думаю мои доводы прекращаются
Ап =)
На правах АппА !
Чтото мне подсказывает (а если быть точным то здравый смысл) решения для этой темы нету на питоне... ибо это питон :) вернее квестовый движок... но без вмешательства в ядро это не исправить...
Как я предпологал - можно попробовать обойтиь простым диалоговым окном и "глобальным" таймером, но есть нъюанс - чар должен быть рядом с НПСом. Иначе его ответ ничего не даст, это тоже самое что открыть диалог и отойти от НПСа а потом тыкать кнопки, тыкниш и ничего не произайдёт...
Так же есть вероятность траблов с выдачей диалога если чар далеко от НПСа, но вроде это можно обойти используя пакетный уровень а не "return"...