Przejdź do treści
Nieoficjalna polska strona Lineage 2

forum.lineage2.com.pl

Nieoficjalna polska strona Lineage 2

[Pytanie] NPC Lvl Up

Zaczęty przez P4CZU, P4CZU ·

Cześć, chciałbym by NPC dawał określony level lecz do końca nie wiem jak to zrobić. Jakiego wpisu użyć aby dawał określony level a nie go odejmował jak poniżej? Zmienić na give?

def onEvent (self,event,st) :
   htmltext=event
   if st.getQuestItemsCount(ITEM) < CDAD :
     htmltext = "error.htm"
     st.exitQuest(1)
   elif event == "level" :
     st.takeItems(ITEM,CDAD)
     level = st.getPlayer().getLevel() - 1
     exp = st.getPlayer().getStat().getExpForLevel(level)
     st.getPlayer().getStat().setExp(exp)
     st.getPlayer().getStat().setLevel(level)
     htmltext = "ok.htm"
     st.getPlayer().broadcastUserInfo()
     st.exitQuest(1)
   return htmltext


Z góry dzięki za odpowiedź - jestem zielony :s
#1
level = st.getPlayer().getLevel() - 1

zmien na

level = st.getPlayer().getLevel() + 1

gdzie 1 to o ile chcesz podnieść so:

si.getPlayer().getLevel() = 40
to level = st.getPlayer().getLevel() + 2
wychodzi

level = 42


czaisz?
Ostatnia edycja: przez P4CZU #2
A jak to dodać do skryptu? Ja zrobiłem to tak:

def onEvent (self,event,st) :
   htmltext=event
   if st.getQuestItemsCount(ITEM) < CDAD :
     htmltext = "error.htm"
     st.exitQuest(1)
   elif event == "level" :
     st.takeItems(ITEM,CDAD)
     level = st.getPlayer().getLevel() + 1
st.getPlayer().getLevel() = 40
     htmltext = "ok.htm"
     st.getPlayer().broadcastUserInfo()
     st.exitQuest(1)
   return htmltext


...i tak...

def onEvent (self,event,st) :
   htmltext=event
   if st.getQuestItemsCount(ITEM) < CDAD :
     htmltext = "error.htm"
     st.exitQuest(1)
   elif event == "level" :
     st.takeItems(ITEM,CDAD)
     level = st.getPlayer().getLevel() + 1
si.getPlayer().getLevel() = 40
to level = st.getPlayer().getLevel() + 2
     exp = st.getPlayer().getStat().getExpForLevel(level)
     st.getPlayer().getStat().setExp(exp)
     st.getPlayer().getStat().setLevel(level)
     htmltext = "ok.htm"
     st.getPlayer().broadcastUserInfo()
     st.exitQuest(1)
   return htmltext


jednak wywala mi error


Traceback (innermost last):
  (no code object) at line 0
SyntaxError: ('invalid syntax', ('__init__.py', 28, 10, '\t si.getPlayer().getLevel() = 40'))


Próbowałem jeszcze inaczej jednak dalej to samo
#3
przeczytaj dokładnie co napisałem:


Cytat
level = st.getPlayer().getLevel() - 1
zmien na

level = st.getPlayer().getLevel() + 1



Tu Ci powiedziałem co masz zrobić a tu:
Cytat
gdzie 1 to o ile chcesz podnieść so:
si.getPlayer().getLevel() = 40
to level = st.getPlayer().getLevel() + 2
wychodzi
level = 42

czaisz?
wytłumaczyłem co i jak i popełniłem literówke - zamiast si powinno być st.
#4
Cytat: Maślan ·
przeczytaj dokładnie co napisałem:


Cytat
level = st.getPlayer().getLevel() - 1
zmien na

level = st.getPlayer().getLevel() + 1



Tu Ci powiedziałem co masz zrobić a tu:
Cytat
gdzie 1 to o ile chcesz podnieść so:
si.getPlayer().getLevel() = 40
to level = st.getPlayer().getLevel() + 2
wychodzi
level = 42

czaisz?
wytłumaczyłem co i jak i popełniłem literówke - zamiast si powinno być st.

Czyli skrypt powinien wyglądać tak?

def onEvent (self,event,st) :
   htmltext=event
   if st.getQuestItemsCount(ITEM) < CDAD :
     htmltext = "error.htm"
     st.exitQuest(1)
   elif event == "level" :
     st.takeItems(ITEM,CDAD)
     level = st.getPlayer().getLevel() + 1
     st.getPlayer().getLevel() = 40
     to level = st.getPlayer().getLevel() + 2
     exp = st.getPlayer().getStat().getExpForLevel(level)
     st.getPlayer().getStat().setExp(exp)
     st.getPlayer().getStat().setLevel(level)
     htmltext = "ok.htm"
     st.getPlayer().broadcastUserInfo()
     st.exitQuest(1)
   return htmltext
#5
k*u*r*w*a mac ogarniasz?

st.getPlayer().getLevel() = 40
     to level = st.getPlayer().getLevel() + 2

to z kodu wywal bo podałem Ci to tylko dla wytłumaczenia jak to w ogóle dziala.... no jejku rusz głową
#6
Cytat: Maślan ·
k*u*r*w*a mac ogarniasz?

st.getPlayer().getLevel() = 40
     to level = st.getPlayer().getLevel() + 2

to z kodu wywal bo podałem Ci to tylko dla wytłumaczenia jak to w ogóle dziala.... no jejku rusz głową

No przecież napisałem Ci, że jestem zielony... Działa dodaje level, lecz jak zrobić aby dawał 85 level?


#7
Cytat: P4CZU ·
Cytat: Maślan ·
k*u*r*w*a mac ogarniasz?

st.getPlayer().getLevel() = 40
     to level = st.getPlayer().getLevel() + 2

to z kodu wywal bo podałem Ci to tylko dla wytłumaczenia jak to w ogóle dziala.... no jejku rusz głową

No przecież napisałem Ci, że jestem zielony... Działa dodaje level, lecz jak zrobić aby dawał 85 level?

A z którym levelem podchodzisz do npcka?
http://i50.tinypic.com/2cdjpt2.jpg
#8
Cytat: Nayana ·
Cytat: P4CZU ·
Cytat: Maślan ·
k*u*r*w*a mac ogarniasz?

st.getPlayer().getLevel() = 40
     to level = st.getPlayer().getLevel() + 2

to z kodu wywal bo podałem Ci to tylko dla wytłumaczenia jak to w ogóle dziala.... no jejku rusz głową

No przecież napisałem Ci, że jestem zielony... Działa dodaje level, lecz jak zrobić aby dawał 85 level?

A z którym levelem podchodzisz do npcka?

Chciałbym aby niezależnie od levela podnosił do 85 a nie o jakąś liczbę.
#9
Cytat: P4CZU ·
Cytat: Nayana ·
Cytat: P4CZU ·
Cytat: Maślan ·
k*u*r*w*a mac ogarniasz?

st.getPlayer().getLevel() = 40
     to level = st.getPlayer().getLevel() + 2

to z kodu wywal bo podałem Ci to tylko dla wytłumaczenia jak to w ogóle dziala.... no jejku rusz głową

No przecież napisałem Ci, że jestem zielony... Działa dodaje level, lecz jak zrobić aby dawał 85 level?

A z którym levelem podchodzisz do npcka?

Chciałbym aby niezależnie od levela podnosił do 85 a nie o jakąś liczbę.

A to musisałbyś w .setlevel ustawić 85.
http://i50.tinypic.com/2cdjpt2.jpg
Ostatnia edycja: przez GenesiZ #11
st.getPlayer().getStat().getExpForLevel(85)

i dziękuje ;)

/GenesiZ
Plusik.