• 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!

How do you make quests?

Neo

New Member
Joined
Aug 10, 2007
Messages
19
Reaction score
0
I need help on making quests for my server. Do I need something? or what do i do, I tried making them on a map editor but im not sure what to do.
 
I need help on making quests for my server. Do I need something? or what do i do, I tried making them on a map editor but im not sure what to do.

Can you be more specific please...
Do you mean like anihi or just a simple quest!
If its a simple quest..
Place a door with a lvl req-ment on it (right click the door put 1010 in action to be above lvl 10, 1100 for lvl 100 and so on! *do this on the map editor*)

Then place a chest and in action (again in map editor right click the chest), place the id of what you want to be given on the quest!
place monsters in the room that the chest is in or the door!

If its anihi quest its a little more difficult but i will assist you ... i havent much time at the pc today but will make a small tut tomorrow!
 
Ohhh I get the simple quest thing, Thanks, But if you could assist me on a quest like anihi, I would be greatful :)
 
Put this in your actions.xml
Remember if 5000-5004 is already used use a free unique id!

PHP:
--Anihi
<action uniqueid="5000" script="annihilator.lua" />
<action uniqueid="5001" script="annihilator.lua" />
<action uniqueid="5002" script="annihilator.lua" />
<action uniqueid="5003" script="annihilator.lua" />
<action uniqueid="5004" script="annihilator.lua" />

copy a .php from the actions folder and rename it annihilator
Delete all inside and put this:

PHP:
 -- Annihilator script by GriZzm0
 -- Room check and monster removal by Tworn
 
 --Variables used:

 -- player?pos  = The position of the players before teleport.
 -- player?  = Get the thing from playerpos.
 --player?level = Get the players levels.
 --questslevel  = The level you have to be to do this quest.
 --questtatus?  = Get the quest status of the players.
 --demon?pos  = The position of the demons.
 --nplayer?pos  = The position where the players should be teleported too.
 --trash= position to send the demons to when clearing, 1 sqm in middle of nowhere is enough
 -- starting = Upper left point of the annihilator room area.
 -- ending = Bottom right point of the annihilator room area.
 
 --UniqueIDs used:

 --5000 = The switch.
 --5001 = Demon Armor chest.
 --5002 = Magic Sword chest.
 --5003 = Stonecutter Axe chest.
 --5004 = Present chest.


function onUse(cid, item, frompos, item2, topos)
if item.uid == 5000 then
 if item.itemid == 1946 then

 player1pos = {x=1632, y=425, z=13, stackpos=253}
 player1 = getThingfromPos(player1pos)

 player2pos = {x=1633, y=425, z=13, stackpos=253}
 player2 = getThingfromPos(player2pos)

 player3pos = {x=1634, y=425, z=13, stackpos=253}
 player3 = getThingfromPos(player3pos)

 player4pos = {x=1635, y=425, z=13, stackpos=253}
 player4 = getThingfromPos(player4pos)


	 if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then

  player1level = getPlayerLevel(player1.uid)
  player2level = getPlayerLevel(player2.uid)
  player3level = getPlayerLevel(player3.uid)
  player4level = getPlayerLevel(player4.uid)

  questlevel = 100

  if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then

	  queststatus1 = getPlayerStorageValue(player1.uid,100)
	  queststatus2 = getPlayerStorageValue(player2.uid,100)
	  queststatus3 = getPlayerStorageValue(player3.uid,100)
	  queststatus4 = getPlayerStorageValue(player4.uid,100)

	  if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
	--if 1==1 then
	demon1pos = {x=1632, y=423, z=14}
	demon2pos = {x=1634, y=423, z=14}
	demon3pos = {x=1633, y=427, z=14}
	demon4pos = {x=1635, y=427, z=14}
	demon5pos = {x=1636, y=425, z=14}
	demon6pos = {x=1637, y=425, z=14}
 
   doSummonCreature("Demon", demon1pos)
   doSummonCreature("Demon", demon2pos)
   doSummonCreature("Demon", demon3pos)
   doSummonCreature("Demon", demon4pos)
   doSummonCreature("Demon", demon5pos)
   doSummonCreature("Demon", demon6pos)

	nplayer1pos = {x=1632, y=425, z=14}
	nplayer2pos = {x=1633, y=425, z=14}
	nplayer3pos = {x=1634, y=425, z=14}
	nplayer4pos = {x=1635, y=425, z=14}

   doSendMagicEffect(player1pos,2)
   doSendMagicEffect(player2pos,2)
   doSendMagicEffect(player3pos,2)
   doSendMagicEffect(player4pos,2)

   doTeleportThing(player1.uid,nplayer1pos)
   doTeleportThing(player2.uid,nplayer2pos)
   doTeleportThing(player3.uid,nplayer3pos)
   doTeleportThing(player4.uid,nplayer4pos)

	 doSendMagicEffect(nplayer1pos,10)
	 doSendMagicEffect(nplayer2pos,10)
	 doSendMagicEffect(nplayer3pos,10)
	 doSendMagicEffect(nplayer4pos,10)

	 doTransformItem(item.uid,1945)

	else
	 doPlayerSendCancel(cid,"Someone has already done this quest")
	end
   else
	doPlayerSendCancel(cid,"Your level is too low")
   end
  else
  doPlayerSendCancel(cid,"You need 4 players in your team.")
  end
 end
 if item.itemid == 1945 then
-- Here is the code start:
starting={x=1632, y=423, z=14, stackpos=253}
checking={x=starting.x, y=starting.y, z=starting.z, stackpos=starting.stackpos}
ending={x=1638, y=428, z=14, stackpos=253}
players=0
totalmonsters=0
monster = {}
repeat
creature= getThingfromPos(checking)
 if creature.itemid > 0 then
 if getPlayerAccess(creature.uid) == 0 then
 players=players+1
 end
  if getPlayerAccess(creature.uid) ~= 0 and getPlayerAccess(creature.uid) ~= 3 then
 totalmonsters=totalmonsters+1
  monster[totalmonsters]=creature.uid
   end
 end
checking.x=checking.x+1
  if checking.x>ending.x then
  checking.x=starting.x
  checking.y=checking.y+1
 end
until checking.y>ending.y
if players==0 then
trash= {x=1715, y=678, z=5}
current=0
repeat
current=current+1
doTeleportThing(monster[current],trash)
until current>=totalmonsters
doTransformItem(item.uid,1946)
end
-- Here is the end of it

end
end
if item.uid == 5001 then
 queststatus = getPlayerStorageValue(cid,100)
 if queststatus == -1 then
  doPlayerSendTextMessage(cid,22,"You have found a demon armor.")
  doPlayerAddItem(cid,2494,1)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"It is empty.")
 end
end
if item.uid == 5002 then
 queststatus = getPlayerStorageValue(cid,100)
 if queststatus ~= 1 then
  doPlayerSendTextMessage(cid,22,"You have found a magic sword.")
  doPlayerAddItem(cid,2400,1)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"It is empty.")
 end
end
if item.uid == 5003 then
 queststatus = getPlayerStorageValue(cid,100)
 if queststatus ~= 1 then
  doPlayerSendTextMessage(cid,22,"You have found a stonecutter axe.")
  doPlayerAddItem(cid,2431,1)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"It is empty.")
 end
end
if item.uid == 5004 then
 queststatus = getPlayerStorageValue(cid,100)
 if queststatus ~= 1 then
  doPlayerSendTextMessage(cid,22,"You have found a present.")
  doPlayerAddItem(cid,2326,1)
  setPlayerStorageValue(cid,100,1)
 else
  doPlayerSendTextMessage(cid,22,"It is empty.")
 end
 end
 return 1
end

Its self explained really...
Place a switch with the tiles of a dp infront of it!
Right click them in map editor and put the unique id 1946.
put these Unique id's on the chest and switch
5000 = Switch.
5001 = Demon Armor chest.
5002 = Magic Sword chest.
5003 = Stonecutter Axe chest.
5004 = Present chest.

Now place the co-ordinates in the correct positions where they are standing before they enter here!

PHP:
 player1pos = {x=1632, y=425, z=13, stackpos=253}
 player1 = getThingfromPos(player1pos)

 player2pos = {x=1633, y=425, z=13, stackpos=253}
 player2 = getThingfromPos(player2pos)

 player3pos = {x=1634, y=425, z=13, stackpos=253}
 player3 = getThingfromPos(player3pos)

 player4pos = {x=1635, y=425, z=13, stackpos=253}
 player4 = getThingfromPos(player4pos)

Where there going to be positioned here:

PHP:
	nplayer1pos = {x=1632, y=425, z=14}
	nplayer2pos = {x=1633, y=425, z=14}
	nplayer3pos = {x=1634, y=425, z=14}
	nplayer4pos = {x=1635, y=425, z=14}
Then the demons positions here:

PHP:
	  if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
	--if 1==1 then
	demon1pos = {x=1632, y=423, z=14}
	demon2pos = {x=1634, y=423, z=14}
	demon3pos = {x=1633, y=427, z=14}
	demon4pos = {x=1635, y=427, z=14}
	demon5pos = {x=1636, y=425, z=14}
	demon6pos = {x=1637, y=425, z=14}

Then your done...
Go test it out.. have fun!
If you have any problems msg me

OPS forgot the credits :S
GriZzm0
Tworn
Actualy made this script please give all credits to them!
 
Last edited:
Back
Top