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

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

ruen
Форум/Квесты/Отступы в питоне
Поиск

Отступы в питоне

9 ответов165 просмотровСейчас просматривают: 1
tsa
tsa

Автор

Ветеран

Постов: 566

На форуме с: 10.05.2009

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

Рейтинг: 0

· 26.12.2009, 15:03

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

Код
Line: -1 - Column: -1
Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 26, 19, '\t\t  if count < prise :\t\t  '))

Так вот вопрос: как правильно отступы от начала строки делать или можно сделать так, что-бы ГС игнорировал их призагрузке квеста (без вмешательства в ядро)

0
U
Uphill
· 26.12.2009, 21:27

попробуй просто отступы убирать в той строке где пишет ошибку

0
tsa
tsa

Автор

Ветеран

Постов: 566

На форуме с: 10.05.2009

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

Рейтинг: 0

· 27.12.2009, 08:28

Для некоторых строк помогло, но опять возникла проблема.

Код
Line: -1 - Column: -1

Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 33, 4, '   def onTalk (self,npc,player):'))

На 33 строке у меня:
Код
def onTalk (self,npc,player):

Если отступ убираю, то вот такая ошибка:
Код
Line: -1 - Column: -1

org.python.parser.ParseException: 'return' outside function

Пытался return'ы двигать, ничего не выходит

0
G
Gradesk
· 27.12.2009, 20:00

В питоне отступы очень важны...
Я рекомендую ставить их табуляцией, многие ставят двойной пробел, изредка одинарные но там тупость получается...
Табуляция в глазах смотрится легче...
теперь в крации как правильно сделать "шаблон" квеста:

Примерный шаблон
Код
import sys
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j.gameserver.model.quest import State
from net.sf.l2j.gameserver.model.quest import QuestState
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest

qn = "QuestName"
NPC=[99999]
QuestId     = 1111
QuestName   = "Questname"
QuestDesc   = "quest"
InitialHtml = "index.htm"

print "importing quest: 5740: Usweer Full Buff ---for Char---"

class Quest (JQuest) :

    def __init__(self,id,name,descr): JQuest.__init__(self,id,name,descr)

    def onEvent(self,event,st):
        htmltext = event
        return htmltext

    def onTalk (self,npc,player):
        return InitialHtml

QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)
CREATED=State('Start',QUEST)

QUEST.setInitialState(CREATED)

for npcId in NPC:
    QUEST.addStartNpc(npcId)
    QUEST.addTalkId(npcId)

Это лиш пример, на разных сборках по своему идёт концепция квеста в частности концовки... но это мелоч
в данной теме обсуждаеся система отступов, так что прошу обратить внимание на код!!!
Да и вот ещё, если используете "if" то следующая строка должна начинатся с дополнительным отступом... а вот "else" принадлежащий ифу должны стоять на одном уровне... но после елза так же надо ставить отступ...

Вот ещё небольшая подсказка:
Код
Пример 1
if условие:
    действие_1
else:
    действие_2
    действие_3

Пример 2
if условие:
    действие_1
else:
    действие_2
действие_3

Действие 3 в обоих примерах будут различатся по последовательности...
В первом примере только если условие не соблюдено действие 2 и 3 будут выполнены, а во втором примере действие 3 будет выполнятся всегда. вне зависимости от уловий... (ну если канечно одно из действий не выдаст ошибку по вене человека и тогда весь квест стопарнётся...).

Надеюсь мои примеры вам понятны...

0
X
xLihoy
· 27.12.2009, 20:08

Качайте Notepad++, там поддержка питона, все наглядно и понятно.

0
tsa
tsa

Автор

Ветеран

Постов: 566

На форуме с: 10.05.2009

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

Рейтинг: 0

· 28.12.2009, 07:05

Я итак блокнотом++ редактирую. Gradesk благодарю за мини-мануал. Кстати вы сам с какого портала?
И еще, можно через питон вставить персонажу лс с определенным скиллом или например в уже аугментированную пушку вставить скпил? Тут нужно именно тот же эффект если бы он сам его вставил, просто в скилы запихнуть не подходит.

0
U
Uphill
· 28.12.2009, 18:41

есть в базе таблица про аргументацию. там и меняй

0
tsa
tsa

Автор

Ветеран

Постов: 566

На форуме с: 10.05.2009

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

Рейтинг: 0

· 28.12.2009, 18:44

Да я знаю как выдать вручную, мне надо автоматизировать!

0
G
Gradesk
· 29.12.2009, 10:51

qwerty111: Да я знаю как выдать вручную, мне надо автоматизировать!

Я с этого портала :)... ну последнее время на АЧ стал заходить... в самом начале занятия серверами сидел на РТ но после того как понял что там за администрация... перешёл сюда...
А по теме:
При желании можно... но это надо сидеть с исходниками сервера и глядеть как там всё устроено...
Я это говорю к тому что практически любой код из ядра можно спокойно воткнуть на питон и он будет работать... другой вопрос что надо "правильный" код втыкать... чтобы всё было так как запланированно...
Так что сидите и "глядите" айда чтото увидите... to_become_senile.gif

P.S. А вот то что "продвинутый" блокнот юзать надо, то да... можно канечно и банальным блакнотом... но убивать глаза как то не хочется...

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