• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua NPC to IGNORE players with a Vocation

Status
Not open for further replies.

_Arthur

Joined
Oct 22, 2009
Messages
2,190
Reaction score
143
How can I make my Oracle ignore players with a vocation over 0?

(Here's my script if you're curious)

ALSO: My oracle isn't giving players a vocation after teleporting them.. :S :S

XML:
<?xml version="1.0" encoding="UTF-8"?>
<npc name="The Oracle" floorchange="0" walkinterval="0">
	<health now="150" max="150"/>
	<look typeex="1448"/>

  <interaction range="3" idletime="30">

    <interact keywords="hi" focus="1">
      <!--These are the keywords will trigger this interaction-->
      <keywords>hello</keywords>
      <keywords>greet</keywords>

      <response>


          if(getPlayerLevel(cid)) >= 8 then
            selfSay(getCreatureName(cid) .. ", ARE YOU PREPARED TO FACE YOUR DESTINY?")
            _state.b1 = (isPremium(cid) == TRUE)
            _state.topic = 1
          else
            selfSay("CHILD! COME BACK WHEN YOU HAVE GROWN UP!")
            _state.isidle = true
          end
        </action>
      </response>

      </interact>

    <interact keywords="yes" topic="1">
      <!--Premium account, b1 is set in above-->
      <response b1="1" text="ARE YOU SURE ABOUT THAT?!">
        <action name="topic" value="2"/>
      </response>

      <!--Normal account-->
      <response text="ARE YOU SURE ABOUT THAT?!">
        <action name="topic" value="2"/>
      </response>
    </interact>

    <interact keywords="yes" topic="2">
      <response text="ALRIGHT! AND WHAT PROFESSION HAVE YOU CHOSEN: KNIGHT, PALADIN, SORCERER, OR DRUID?">
        <!--n1: 1 = yes-->
        <action name="script">
          _state.n1 = 1
          _state.topic = 3
        </action>
      </response>
    </interact>

    <!--If the player does not say any city, repeat our question-->
    <interact keywords="|*|" topic="2">
      <response b1="1" text="HELLO?"/>
      <response text="HELLO?"/>
    </interact>

    <interact keywords="sorcerer" topic="3">
      <response text="A SORCERER! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!">
        <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight-->
        <action name="script">
          _state.n2 = 1
          _state.topic = 4
        </action>
      </response>
    </interact>

    <interact keywords="druid" topic="3">
      <response text="A DRUID! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!">
        <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight-->
        <action name="script">
          _state.n2 = 2
          _state.topic = 4
        </action>
      </response>
    </interact>

    <interact keywords="paladin" topic="3">
      <response text="A PALADIN! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!">
        <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight-->
        <action name="script">
          _state.n2 = 3
          _state.topic = 4
        </action>
      </response>
    </interact>

    <interact keywords="knight" topic="3">
      <response text="A KNIGHT! ARE YOU SURE? THIS DECISION IS IRREVERSIBLE!">
        <!--n2: 1 = sorcerer, 2 = druid, 3 = paladin, 4 = knight-->
      <action name="script">
          _state.n2 = 4
          _state.topic = 4
        </action>
      </response>
    </interact>

    <!--If the player does not say any profession, repeat our question-->
    <interact keywords="|*|" topic="3">
      <response text="KNIGHT, PALADIN, SORCERER, OR DRUID?"/>
    </interact>

    <interact keywords="yes" topic="4">
      <response>
        <!--n1: 1 = yes-->
        <!--n2: 1 = knight, 2 = paladin, 3 = sorcerer, 4 = druid-->
        <action name="script">
          local pos = 0
          if(_state.n1 == 1) then
            pos = {x=997, y=1277, z=7}
          else
            selfSay("I DO NOT KNOW WHAT PROFESSION THAT IS, ASK THE GODS FOR GUIDANCE!")
            return
          end

          selfSay("SO BE IT!")
          doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)

          if(doTeleportThing(cid, pos) == 0) then
            doPlayerSetVocation(cid, _state.n2)
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
          end

        </action>
        <action name="idle" value="1"/>
      </response>
    </interact>

    <interact keywords="bye" focus="0">
      <keywords>farewell</keywords>
      <response text="Good bye. Recommend us, if you were satisfied with our service."/>
    </interact>

    <!--
    If the event onBusy exists, the npc will make a queue like Tibia, if the event is removed
    the npc will be able to talk to all customers at the same time without problems.
    -->

    <interact event="onBusy">
      <response text="WAIT UNTIL IT IS YOUR TURN!">
        <action name="addqueue" value="|PLAYER|"/>
      </response>
    </interact>

    <!--This event triggers if the player goes to far away from the npc/logout/idle timeout-->
    <interact event="onPlayerLeave" focus="0">
      <response text="COME BACK WHEN YOU ARE PREPARED TO FACE YOUR DESTINY!"/>
    </interact>

  </interaction>

</npc>


DISREGARD, figured it out.
 
Status
Not open for further replies.
Back
Top Bottom