Lider 233 Опубликовано 14 июня, 2013 (изменено) Люди, кароче такая проблема... надо что бы этот НПЦ забирал 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 Изменено 14 июня, 2013 пользователем Lider Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
meX 144 Опубликовано 14 июня, 2013 Можно весь скрипт? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 14 июня, 2013 (изменено) 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 нужно прописать будет Изменено 14 июня, 2013 пользователем OnaHa Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 14 июня, 2013 Если помог, жмякай спс Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lider 233 Опубликовано 14 июня, 2013 (изменено) у меня начальные знания есть, и я свободно читаю и понимаю этот скрипт, но т.к. не знаю синтаксиса, то не могу разобраться куда совать строку, что бы он иззымал не только итем 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) Изменено 14 июня, 2013 пользователем Lider Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 14 июня, 2013 (изменено) я же написал, что сделатЬ: 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 - кол-во Изменено 14 июня, 2013 пользователем OnaHa Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lider 233 Опубликовано 14 июня, 2013 а проверку ты куда дел? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 15 июня, 2013 Все, врубился, тебе надо 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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lider 233 Опубликовано 15 июня, 2013 уже пробовал так Traceback (innermost last): (no code object) at line 0 SyntaxError: ('inconsistent dedent', ('__init__.py', 41, 13, ' st.takeItems(STAW, STAW_KOL)')) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lider 233 Опубликовано 15 июня, 2013 тему //close я решил проблему методом научного тыка. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 15 июня, 2013 Все подходит, руки надо просто ровнять тебе, у меня скрипт запустился Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Lider 233 Опубликовано 16 июня, 2013 там проблема была в том, что кароче он много на что ругался, я потом всё выровнял.. и в итоге всё ок Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
OnaHa 46 Опубликовано 16 июня, 2013 И че ты на меня гнал? Ты не просил тебе квест пофиксить! Даже плюс не поставил, тебе тут больше навряд ли кто поможет. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
exspertxd 11 Опубликовано 22 июня, 2013 Какая катастрофа из-за плюсиков Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты