All pastes #79159 Raw Edit

Unnamed

public text v1 · immutable
·published 2006-07-05 00:29 UTC
rendered paste body
### Settings
NPC         = [7976]
QuestId     = 6001
QuestName   = "armor_aden"
QuestDesc   = "luxury_shop"
#QuestDesc   = "Buy armor with crystals"
InitialHtml = "1.htm"
SuccessMsg  = ""
FailureMsg  = "You do not have enough materials."
CancelMsg   = "1.htm"

Items       = [
["Doom Plate Armor", 2381, [[2381, 1]], [[1461, 235], [1460, 344]], []],
["Leather Armor of Doom", 2392, [[2392, 1]], [[1461, 198], [1460, 244]], []],
["Tunic of Doom", 2399, [[2399, 1]], [[1461, 142], [1460, 204]], []],
["Stockings of Doom", 2404, [[2404, 1]], [[1461, 124], [1460, 118]], []],
["Sealed Doom Gloves", 2475, [[2475, 1]], [[1461, 87], [1460, 80]], []],
["Sealed Doom Boots", 601, [[601, 1]], [[1461, 87], [1460, 80]], []],
["Doom Helm", 2417, [[2417, 1]], [[1461, 101], [1460, 116]], []],
["Blue Wolf Breastplate", 358, [[358, 1]], [[1461, 198], [1460, 212]], []],
["Blue Wolf Gaiters", 2380, [[2380, 1]], [[1461, 124], [1460, 184]], []],
["Blue Wolf Leather Armor", 2391, [[2391, 1]], [[1461, 216], [1460, 220]], []],
["Blue Wolf Tunic", 2398, [[2398, 1]], [[1461, 154], [1460, 183]], []],
["Blue Wolf Stockings", 2403, [[2403, 1]], [[1461, 124], [1460, 118]], []],
["Blue Wolf Helm", 2416, [[2416, 1]], [[1461, 87], [1460, 144]], []],
["Sealed Blue Wolf Gloves", 2487, [[2487, 1]], [[1461, 87], [1460, 80]], []],
["Sealed Blue Wolf Boots", 2439, [[2439, 1]], [[1461, 87], [1460, 80]], []]
]

### ---------------------------------------------------------------------------
### DO NOT MODIFY BELOW THIS LINE
### ---------------------------------------------------------------------------

print "importing " + str(QuestId) + ": " + QuestDesc,
import sys
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

### Events
def do_Validate(st, items) :
    if len(items) > 0 :
        for item in items:
            if st.getQuestItemsCount(item[0]) < item[1] :
                return False
    return True

def do_GiveItems(st, items) :
    if len(items) > 0 :
        for item in items:
            st.giveItems(item[0], item[1])

def do_TakeItems(st, items) :
    if len(items) > 0 :
        for item in items:
            st.takeItems(item[0], item[1])

def do_Teleport(st, items) :
    if len(items) > 0 :
        st.player.teleToLocation(items[0], items[1], items[2])

def do_RequestedEvent(event, st, item) :
    if do_Validate(st, item[3]) :
        do_TakeItems(st, item[3])
        do_GiveItems(st, item[2])
        do_Teleport(st, item[4])
        if SuccessMsg != "" :
            return SuccessMsg
        return event + ".htm"
    else :
        if FailureMsg != "" :
            return FailureMsg
        return event + "-0.htm"

def do_RequestEvent(event,st) :
    htmltext = event

    if event == "0":
        if CancelMsg != "" :
            return CancelMsg
        return "Transaction has been canceled."

    for item in Items:
        if event == str(item[1]):
            return do_RequestedEvent(event, st, item)

	if htmltext != event:
		st.setState(COMPLETED)
		st.exitQuest(1)

    return htmltext

### main code
class Quest (JQuest) :

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

 def onEvent (self,event,st) :
    return do_RequestEvent(event,st)

 def onTalk (Self,npc,st):

   npcId = npc.getNpcId()
   htmltext = "<html><head><body>I have nothing to say with you</body></html>"
   st.setState(STARTED)
   if InitialHtml == "onEvent" :
     return do_RequestEvent(str(npcId),st)
   elif InitialHtml != "" :
     return InitialHtml
   return htmltext

### Quest class and state definition
QUEST       = Quest(QuestId, str(QuestId) + "_" + QuestName, QuestDesc)
CREATED     = State('Start',     QUEST)
STARTED     = State('Started',   QUEST)
COMPLETED   = State('Completed', QUEST)

### Quest initialization
QUEST.setInitialState(CREATED)

for item in NPC:
### Quest NPC starter initialization
   QUEST.addStartNpc(item)

### Quest NPC initialization
   STARTED.addTalkId(item)

print  ": Loaded " + str(len(Items)) + " item(s)"