Witaj
Gość

Wątek: [Problem] Buffer problem w __init__.py - błąd podczas ładowania  (Przeczytany 2187 razy)

  • Wiadomości: 599

  • Pochwał: 11

    • www.xyberdesign.pl
[Problem] Buffer problem w __init__.py - błąd podczas ładowania
« dnia: Czerwiec 22, 2009, 10:12:30 pm »
Jak niektórzy wiedzą tworzę swojego npc buffera, chciałem go trochę rozwinąć i dodać takie funkcje jak 'Cancel' i 'Resore All'. Zacząłem pisać kod, trochę wziąłem z kodu Maślana a trochę wzorowałem się na innych bufferach.

import sys
from net.sf.l2j.gameserver.model.actor.instance import L2PcInstance
from java.util import Iterator
from net.sf.l2j.gameserver.datatables import SkillTable
from net.sf.l2j                import L2DatabaseFactory
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 = "60000_NPCBuffer"
NPC=[11]
QuestId     = 60000
QuestName   = "NPCBuffer"
QuestDesc   = "custom"

print "importing custom: 60000: NPCBuffer"

class Quest (JQuest) :


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

def onAdvEvent (self,event,npc,player) :
st = player.getQuestState(QUEST_LOADING_INFO)
htmltext = event


if event == "1":
st.getPlayer().stopAllEffects()
st.getPlayer().restoreHPMP()
return "1.htm"
st.setState(COMPLETED)
     
 def onTalk (self,npc,player):
   return "1.htm"

QUEST       = Quest(QuestId,str(QuestId) + "_" + QuestName,QuestDesc)

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

http://pastebin.com/m16f67d85 - tu lepiej widać cały kod

Kiedy odpalam serwer pokazuje błąd: Failed executing sricpt: (..) See __init__.py.error.log for details.

No więc otwieram plik i pokazuję, że błąd jest w linijce 34, 2, ale ja tam błędu nie widzę:

Error on: D:\Serwer\Gameserver\data\scripts\custom\60000_NPCBuffer\__init__.py.error.log
Line: -1 - Column: -1

Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('inconsistent dedent', ('__init__.py', 34, 2, ' def onTalk (self,npc,player):'))

Linjka 34:

34. def onTalk (self,npc,player):
35.   return "1.htm"


  • Wiadomości: 538

  • Pochwał: 26

Odp: [Problem] Buffer problem w __init__.py - błąd podczas ładowania
« Odpowiedź #1 dnia: Czerwiec 23, 2009, 02:39:23 pm »
Python jest jezykiem, w ktorym kluczowe znaczenie maja biale znaki takie jak spacja czy tab,  definicje wszystkich metod w ramach klasy musza byc tak samo wciete ( a u ciebie konstruktor __init__ oraz metoda onAdvEvent sa "wciete" za pomoca taba, natomiast metoda onTalk za pomoca spacji - popraw to), jest tak dlatego ze w pythonie nie ma zadnych specjalnych znakow (jak klamry {} ) do wydzielania blokow kodu

// Koszałek Opałek - na wniosek +1
« Ostatnia zmiana: Czerwiec 29, 2009, 10:09:21 pm wysłana przez Koszałek Opałek »


  • *******
  • Wiadomości: 1092

  • Pochwał: 22

Odp: [Problem] Buffer problem w __init__.py - błąd podczas ładowania
« Odpowiedź #2 dnia: Sierpień 10, 2009, 11:43:40 pm »
Zamykam