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

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

9 replies154 viewsCurrently viewing: 1
tsa
tsa

Author

Ветеран

Posts: 566

На форуме с: 05/10/2009

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

Рейтинг: 0

· 12/26/2009, 03:03 PM

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

Код
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
· 12/26/2009, 09:27 PM

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

0
tsa
tsa

Author

Ветеран

Posts: 566

На форуме с: 05/10/2009

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

Рейтинг: 0

· 12/27/2009, 08:28 AM

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

Код
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
· 12/27/2009, 08:00 PM

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

Примерный шаблон
Код
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
· 12/27/2009, 08:08 PM

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

0
tsa
tsa

Author

Ветеран

Posts: 566

На форуме с: 05/10/2009

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

Рейтинг: 0

· 12/28/2009, 07:05 AM

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

0
U
Uphill
· 12/28/2009, 06:41 PM

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

0
tsa
tsa

Author

Ветеран

Posts: 566

На форуме с: 05/10/2009

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

Рейтинг: 0

· 12/28/2009, 06:44 PM

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

0
G
Gradesk
· 12/29/2009, 10:51 AM

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

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

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

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