Перейти к содержанию
Авторизация  
Lider

Помогите По Квесту.

Рекомендуемые сообщения

Люди, кароче такая проблема... надо что бы этот НПЦ забирал 2 итема, а он забирает 1.. и я не знаю как мне поправить.

if event == "1":
if st.getQuestItemsCount(STAW) >= STAW_KOL :
st.takeItems(STAW, STAW_KOL)
st.set("cond", "1")
return "ok.htm"
else :
return "no.htm"

я знаю нормально только паскаль и html, php немного, но не пойму куда пехать and и т.д. чот не до пру.

П.С.

название 1 итема STAW

Второго итема STAWW

кол-во 1вых итемов STAW_KOL

количество 2рых итемов STAWW_KOL

Изменено пользователем Lider

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

if event == "1":

if st.getQuestItemsCount(STAW) >= STAW_KOL :

st.takeItems(STAW, STAW_KOL)

st.set("cond", "1")

return "ok.htm"

else :

return "no.htm"

 

Если по-русски: если количество STAW больше или равно значению STAW_KOL, тогда у персонажа забираются итемы STAW в количестве STAW_KOL, состояние квеста меняется на 1, чат возвращается к htm-ке ok.htm, если итемов меньше чем нужно, тогда htm-ка меняется на no.htm

Можешь тупо по-нубски копирнуть метод забора итемов и вставить следующей строкой, вместо STAW указать ID вещи, а вместо STAW_KOL указать кол-во, и все будет в шоколаде... Если тебе на 2 итем нужно условие, тогда также через ELSE нужно прописать будет

Изменено пользователем OnaHa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

у меня начальные знания есть, и я свободно читаю и понимаю этот скрипт, но т.к. не знаю синтаксиса, то не могу разобраться куда совать строку, что бы он иззымал не только итем 1, но и итем 2

вот полный скрипт.

import sys
from ru.catssoftware.gameserver.model.quest import State
from ru.catssoftware.gameserver.model.quest import QuestState
from ru.catssoftware.gameserver.model.quest.jython import QuestJython as JQuest


qn = "6666_loto"

print "***Wings 3lvl-quest***"
### CONFIG ###

NPC = 99998 # ID NPC

STAW = 6392 #ID итема для ставки
STAWW = 6393 #ID итема для ставки
STAW_KOL = 50 #Количество ставки
STAWW_KOL = 50 #Количество ставки
WIN = 6394 # ID Выйграша
WIN_KOL = 100 # Количество выйгрыша
CHANCE = 40 # Шанс

### /CONFIG ###

class Quest (JQuest) :

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


def onEvent(self,event,st):
htmltext = event
cond = st.getInt("cond")
if event == "1":
if st.getQuestItemsCount(STAW) >= STAW_KOL :
st.takeItems(STAW, STAW_KOL)
st.set("cond", "1")
return "ok.htm"
else :
return "no.htm"
return
if event == "2":
if st.getQuestItemsCount(STAW2) >= STAW2_KOL :
st.takeItems(STAW2, STAW2_KOL)
st.set("cond", "2")
return "ok.htm"
else :
return "no.htm"
return
if event == "3":
if cond == 1 :
if st.getRandom(100) < CHANCE :
st.giveItems(WIN,WIN_KOL)
st.set("cond", "0")
return "win.htm"
else :
st.set("cond", "0")
return "lose.htm"
elif cond == 2 :
if st.getRandom(100) < CHANCE2 :
st.giveItems(WIN2,WIN2_KOL)
st.set("cond", "0")
return "win.htm"
else :
st.set("cond", "0")
return "lose.htm"
if event == "4":
return "1.htm"
return


def onTalk (self,npc,player):
htmltext = "4iter.htm"
st = player.getQuestState(qn)
if not st : return htmltext

npcId = npc.getNpcId()
id = st.getState()
cond = st.getInt("cond")
if npcId == NPC :
if cond == 0 :
htmltext = "1.htm"
elif cond == 1 or cond == 2 :
htmltext = "ok2.htm"
return htmltext





QUEST = Quest(6666,qn,"custom")

QUEST.addStartNpc(NPC)

QUEST.addTalkId(NPC)

Изменено пользователем Lider

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

я же написал, что сделатЬ:

 

if st.getQuestItemsCount(STAW) >= STAW_KOL :

st.takeItems(STAW, STAW_KOL)

st.takeItems(9999, 10)

st.set("cond", "1") return "ok.htm" else : return "no.htm" return

 

if event == "2": if st.getQuestItemsCount(STAW2) >= STAW2_KOL : st.takeItems(STAW2, STAW2_KOL)

st.takeItems(9999, 10)

st.set("cond", "2") return "ok.htm" else : return "no.htm" return

 

Где 9999 - ID второго итема, 10 - кол-во

Изменено пользователем OnaHa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все, врубился, тебе надо STAWW чтоб брался, тогда так:

 

if st.getQuestItemsCount(STAW) >= STAW_KOL :

if st.getQuestItemsCount(STAWW) >= STAWW_KOL :

st.takeItems(STAW, STAW_KOL)

st.takeItems(STAWW, STAWW_KOL)

st.set("cond", "1")

return "ok.htm"

else :

return "no.htm"

return

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

уже пробовал так

Traceback (innermost last):
(no code object) at line 0
SyntaxError: ('inconsistent dedent', ('__init__.py', 41, 13, ' st.takeItems(STAW, STAW_KOL)'))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тему //close

я решил проблему методом научного тыка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все подходит, руки надо просто ровнять тебе, у меня скрипт запустился

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

там проблема была в том, что кароче он много на что ругался, я потом всё выровнял.. и в итоге всё ок

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И че ты на меня гнал? Ты не просил тебе квест пофиксить! Даже плюс не поставил, тебе тут больше навряд ли кто поможет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...