All pastes #464833 Raw Edit

Something

public text v1 · immutable
#464833 ·published 2007-04-29 19:07 UTC
rendered paste body
import sys
import time
from net.sf.l2j.gameserver.lib import Rnd
from net.sf.l2j.gameserver.model.quest.jython import QuestJython as JQuest
from net.sf.l2j.gameserver.serverpackets import CreatureSay
from net.sf.l2j.gameserver.serverpackets import PlaySound
from net.sf.l2j.gameserver.datatables import SkillTable

# Boss: Klarus
class klarus(JQuest) :

    # init function.  Add in here variables that you'd like to be inherited by subclasses (if any)
    def __init__(self,id,name,descr):
        self.Klarus = 70050
        self.LastSkillUseTime = 0
        self.FirstAttacked = False
        # finally, don't forget to call the parent constructor to prepare the event triggering
        # mechanisms etc.
        JQuest.__init__(self,id,name,descr)

    
    def onAttack (self,npc,player):
        objId = npc.getObjectId()

        if self.FirstAttacked:
            if self.LastSkillUseTime+10 < int(time()):
                random = Rnd.get(100)

                if random <= 1:
                    npc.useMagic(SkillTable.getInstance().getInfo(1, 37))
                elif random <= 3 AND random >= 2:
                    npc.useMagic(SkillTable.getInstance().getInfo(122, 15))
                elif random <= 5 AND random >= 4:
                    npc.useMagic(SkillTable.getInstance().getInfo(78, 2))
                elif random <= 7 AND random >= 6:
                    npc.useMagic(SkillTable.getInstance().getInfo(1231, 28))
                elif random <= 9 AND random >= 8:
                    npc.useMagic(SkillTable.getInstance().getInfo(115, 17))
                elif random <= 11 AND random >= 10:
                    npc.useMagic(SkillTable.getInstance().getInfo(92, 52))
                elif random <= 13 AND random >= 12:
                    npc.useMagic(SkillTable.getInstance().getInfo(1167, 6))
                
                if random <= 13:
                    npc.broadcastPacket(CreatureSay(objId, 0, "Klarus" , "Use skill"))
                    self.LastSkillUseTime = int(time())
        else:
            self.FirstAttacked = True
            npc.broadcastPacket(CreatureSay(objId, 0, "Klarus", "You stupid mortals..."))
            npc.broadcastPacket(CreatureSay(objId, 0, "Klarus", "Do you really think you can defeat me?"))
            npc.broadcastPacket(CreatureSay(objId, 0, "Klarus", "Feel my power..."))
            npc.useMagic(SkillTable.getInstance().getInfo(1, 37))
            self.LastSkillUseTime = int(time())

        return 


    def onKill (self,npc,player):
        npcId = npc.getNpcId()

        if npcId == self.Klarus:
            objId = npc.getObjectId()
            npc.broadcastPacket(PlaySound(1, "BS02_D", 1, objId, npc.getX(), npc.getY(), npc.getZ()))
            npc.broadcastPacket(CreatureSay(objId, 0, "Klarus" , "Urgh... Uhhhrrrggg... I'll be back soon.... much stronger!"))
            self.FirstAttacked = False

        return 


# now call the constructor (starts up the ai)
QUEST        = klarus(-1, "klarus", "ai")

QUEST.addKillId(QUEST.Klarus)
QUEST.addAttackId(QUEST.Klarus)

print "AI: individuals: Klarus..loaded!"