Отступы в питоне
Начал разбирать питон, вроде получается но вот не как не пойму с отступами. Скрипт постоянно не грузится и пишет ошибки вроде атких:
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 26, 19, '\t\t if count < prise :\t\t '))
Так вот вопрос: как правильно отступы от начала строки делать или можно сделать так, что-бы ГС игнорировал их призагрузке квеста (без вмешательства в ядро)
попробуй просто отступы убирать в той строке где пишет ошибку
Для некоторых строк помогло, но опять возникла проблема.
Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 33, 4, ' def onTalk (self,npc,player):'))
На 33 строке у меня:
Если отступ убираю, то вот такая ошибка:
org.python.parser.ParseException: 'return' outside function
Пытался return'ы двигать, ничего не выходит
В питоне отступы очень важны...
Я рекомендую ставить их табуляцией, многие ставят двойной пробел, изредка одинарные но там тупость получается...
Табуляция в глазах смотрится легче...
теперь в крации как правильно сделать "шаблон" квеста:
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" принадлежащий ифу должны стоять на одном уровне... но после елза так же надо ставить отступ...
Вот ещё небольшая подсказка:
if условие:
действие_1
else:
действие_2
действие_3
Пример 2
if условие:
действие_1
else:
действие_2
действие_3
Действие 3 в обоих примерах будут различатся по последовательности...
В первом примере только если условие не соблюдено действие 2 и 3 будут выполнены, а во втором примере действие 3 будет выполнятся всегда. вне зависимости от уловий... (ну если канечно одно из действий не выдаст ошибку по вене человека и тогда весь квест стопарнётся...).
Надеюсь мои примеры вам понятны...
Качайте Notepad++, там поддержка питона, все наглядно и понятно.
Я итак блокнотом++ редактирую. Gradesk благодарю за мини-мануал. Кстати вы сам с какого портала?
И еще, можно через питон вставить персонажу лс с определенным скиллом или например в уже аугментированную пушку вставить скпил? Тут нужно именно тот же эффект если бы он сам его вставил, просто в скилы запихнуть не подходит.
есть в базе таблица про аргументацию. там и меняй
qwerty111: Да я знаю как выдать вручную, мне надо автоматизировать!
Я с этого портала :)... ну последнее время на АЧ стал заходить... в самом начале занятия серверами сидел на РТ но после того как понял что там за администрация... перешёл сюда...
А по теме:
При желании можно... но это надо сидеть с исходниками сервера и глядеть как там всё устроено...
Я это говорю к тому что практически любой код из ядра можно спокойно воткнуть на питон и он будет работать... другой вопрос что надо "правильный" код втыкать... чтобы всё было так как запланированно...
Так что сидите и "глядите" айда чтото увидите...
P.S. А вот то что "продвинутый" блокнот юзать надо, то да... можно канечно и банальным блакнотом... но убивать глаза как то не хочется...
