Jump to content

Search the Community

Showing results for tags 'quest'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • OpenTibia Development
    • Development Projects
    • Asset Show Off
    • Resources
    • Support
  • The Lounge
    • Discussion Board
    • Forum Games
    • Tibia Chat
    • Art Contests
    • Server Advertising
    • Forum Updates
  • Hosted Forums
    • OTList.net
    • Archived Hosted Forums

Categories

  • Distributions & Data Packs
  • Maps
  • Scripts
  • Monster & NPC Packs
  • Websites & Skins
    • CastroAAC
  • Tools
  • Clients
  • Graphics

Product Groups

  • Account Upgrades
  • Advertising Options
  • Necronia

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


MSN


Skype


Website URL


Discord


Tibian Name


Golden Awards


Location


Occupation


Interests


Biography

Found 47 results

  1. Are you a great quest designer and know how to script? Do you want to earn some extra $ on the side while doing something you like? Send me a private message here on otland.net with the following: 1. Why I should choose you? 2. Your previous work (if you have any to showcase) 3. What do you think is a fair price per quest? 4. How fast can you make quests? Info Server: OTHire 7.72 (TFS)
  2. Originally this server was going to be a private server for friends, but I decided to open it up to you cool people. Should have 100% uptime, or close to it, I just purchased a new computer to be a dedicated host. Hosting it on a fast 75down/75up Fios connection. We're trying to keep the server in the spirit of real tibia, with some modifications for convenience, like increased EXP and loot rates, and faster regeneration. Our rules are similar to real Tibia. Basically, don't be a jerk. I am working on adding more quests from real Tibia as well as continual map updates. Website: http://zealonline.servegame.com/zealonline/ IP: zealonline.servegame.com | Port: 7171 | Client: 10.41 Uptime: 24/7, or close to it Map: Real Tibia Premium: Completely free! EXP rate: 20x Skill rate: 20x Loot rate: 5x Magic rate: 3x (lower than others due to fast regen) Regen rates: Knight: 1 hp every second, 2 mana every 3 seconds Paladin: 1 hp every 2 seconds, 2 mana every 2 seconds Druid: 1 hp every 4 seconds, 2 mana every second Sorcerer: 1 hp every 4 seconds, 2 mana every second Elite Knight: 2 hp every second, 2 mana every 3 seconds Royal Paladin: 1 hp every second, 2 mana every second Elder Druid: 1 hp every 4 seconds, 3 mana every second Master Sorcerer: 1 hp every 4 seconds, 3 mana every second Talkaction commands: !buyhouse: Buys a house, if you have the gold in your inventory. You must be facing the door. !leavehouse: Leaves your house. You will not be refunded your money. !sellhouse <player name>: Sells a house to another player using the safe trade system. !outfit "<outfit name>: Most outfit quests are implemented in this server, but some or not. You can use this command to buy a complete outfit. If you have the required items in your inventory, you will unlock the outfit. If not, it will tell you the required items. The required items are usually what the quest requires in real tibia. Use the command by itself to see the list of outfits you can buy. Other notes: Almost all item are obtainable in this server. Normally unobtainable items (like Dragon Scale Legs, for example) have been added as extremely rare drops to monsters. Ask me in-game for specific details. If you're looking for a low-stress OT experience similar to real Tibia, I hope you'll check us out. Credit: All credit for the map and most of the scripts/quests goes to the ORTS project (http://otland.net/threads/10-41-tfs-1-1-orts-open-source-real-map-project.204514/) Originally this server was going to be a private server for friends, but I decided to open it up to you cool people. Should have 100% uptime, or close to it, I just purchased a new computer to be a dedicated host. Hosting it on a fast 75down/75up Fios connection. We're trying to keep the server in the spirit of real tibia, with some modifications for convenience, like increased EXP and loot rates, and faster regeneration. Our rules are similar to real Tibia. Basically, don't be a jerk. I am working on adding more quests from real Tibia as well as continual map updates. Website: http://zealonline.servegame.com/zealonline/ IP: zealonline.servegame.com | Port: 7171 | Client: 10.41 Uptime: 24/7, or close to it Map: Real Tibia Premium: Completely free! EXP rate: 20x Skill rate: 20x Loot rate: 5x Magic rate: 3x (lower than others due to fast regen) Regen rates: Knight: 1 hp every second, 2 mana every 3 seconds Paladin: 1 hp every 2 seconds, 2 mana every 2 seconds Druid: 1 hp every 4 seconds, 2 mana every second Sorcerer: 1 hp every 4 seconds, 2 mana every second Elite Knight: 2 hp every second, 2 mana every 3 seconds Royal Paladin: 1 hp every second, 2 mana every second Elder Druid: 1 hp every 4 seconds, 3 mana every second Master Sorcerer: 1 hp every 4 seconds, 3 mana every second Talkaction commands: !buyhouse: Buys a house, if you have the gold in your inventory. You must be facing the door. !leavehouse: Leaves your house. You will not be refunded your money. !sellhouse <player name>: Sells a house to another player using the safe trade system. !outfit "<outfit name>: Most outfit quests are implemented in this server, but some or not. You can use this command to buy a complete outfit. If you have the required items in your inventory, you will unlock the outfit. If not, it will tell you the required items. The required items are usually what the quest requires in real tibia. Use the command by itself to see the list of outfits you can buy. Other notes: Almost all item are obtainable in this server. Normally unobtainable items (like Dragon Scale Legs, for example) have been added as extremely rare drops to monsters. Ask me in-game for specific details. If you're looking for a low-stress OT experience similar to real Tibia, I hope you'll check us out. Credit: All credit for the map and most of the scripts/quests goes to the ORTS project (http://otland.net/threads/10-41-tfs-1-1-orts-open-source-real-map-project.204514/) Originally this server was going to be a private server for friends, but I decided to open it up to you cool people. Should have 100% uptime, or close to it, I just purchased a new computer to be a dedicated host. Hosting it on a fast 75down/75up Fios connection. We're trying to keep the server in the spirit of real tibia, with some modifications for convenience, like increased EXP and loot rates, and faster regeneration. Our rules are similar to real Tibia. Basically, don't be a jerk. I am working on adding more quests from real Tibia as well as continual map updates. Website: http://zealonline.servegame.com/zealonline/ IP: zealonline.servegame.com | Port: 7171 | Client: 10.41 Uptime: 24/7, or close to it Map: Real Tibia Premium: Completely free on account creation! EXP rate: 20x Skill rate: 20x Loot rate: 5x Magic rate: 3x (lower than others due to fast regen) Regen rates: Knight: 1 hp every second, 2 mana every 3 seconds Paladin: 1 hp every 2 seconds, 2 mana every 2 seconds Druid: 1 hp every 4 seconds, 2 mana every second Sorcerer: 1 hp every 4 seconds, 2 mana every second Elite Knight: 2 hp every second, 2 mana every 3 seconds Royal Paladin: 1 hp every second, 2 mana every second Elder Druid: 1 hp every 4 seconds, 3 mana every second Master Sorcerer: 1 hp every 4 seconds, 3 mana every second Talkaction commands: !buyhouse: Buys a house, if you have the gold in your inventory. You must be facing the door. !leavehouse: Leaves your house. You will not be refunded your money. !sellhouse <player name>: Sells a house to another player using the safe trade system. !outfit "<outfit name>: Most outfit quests are implemented in this server, but some or not. You can use this command to buy a complete outfit. If you have the required items in your inventory, you will unlock the outfit. If not, it will tell you the required items. The required items are usually what the quest requires in real tibia. Use the command by itself to see the list of outfits you can buy. Other notes: Almost all item are obtainable in this server. Normally unobtainable items (like Dragon Scale Legs, for example) have been added as extremely rare drops to monsters. Ask me in-game for specific details. If you're looking for a low-stress OT experience similar to real Tibia, I hope you'll check us out. Credit: All credit for the map and most of the scripts/quests goes to the ORTS project.
  3. antonevirus

    {Request} Quest chain NPC

    I would like some help with creating a NPC that offers quest from 1-10 in order, I mea, if you complete first quest you can get the second one and so on! Any pointers? Thank you!
  4. I KNOW this has been posted a billion times, but I've been searching for something that works for 2 days, but failed to find anything. I'm using tfs v0.2.7 (Mystic Spirit) for Tibia 8.54 I tried changing the action id to 2000 and the unique id to something not used before, but this doesn't work. The chest acts as a normal container (if the item is taken out, it's not there for another player). Please tell me how to do this, I'm very frustrated and angry now :@ Please help
  5. Hi, I think I am one of the experienced People, but I got stuck at a NPC script. I wanna make a NPC like Rashid, or Djinns, that only trade with you, after having done a special Quest. Is this possible in TFS? Also I need help with an other NPC problem. Can you make Items cheaper after a special Quest (e.g.: Postman Quest --> cheaper parcel) A NPC talks only to you, when you burning, drunk, invisible, or wearing an special outfit (Assassin NPC's) I hope some of you can help me with at least one problem
  6. Zanmato

    Need Help TFS

    Hello i have been hosting for 4 years~ now and just recently i've encounted a php database corruption and peoples chars wern't saving, and they were losing items etc, so i had to reset server /facedesk and now my quest chests are dragable (pushable) and people are just pushing them through portals and into there houses etc, how do i fix this? ps Frozen chests are fine it's just the quest wooden chests If no1 knows, perhaps there is an anti push script for some items?
  7. Ravenia

    Quest Boxes TFS 0.4

    We updated from TFS 0.2 to 0.4 I'm a mapper for this server and we've had some serious issues with Ladders not working. I've gone through the entire map and replaced them with stairs. Anyhow, sewers aren't working and Quest Boxes don't work. I've been told to change the Action ID to 2000 and Unique ID to a random UNIQUE number. Example: Action ID 2000 Unique ID 11112 (and higher with each new chest) And then throw the item you'll recieve in the chest. Well they still are not working. Any help on this please? I've tried searching the forums for help but they all lead to the exact same thing I've already done. REP ++ Thanks alot.
  8. Colandus

    "Multi Quest"

    Class for "multi quests" missionQuest = {} missionQuest.__index = missionQuest function missionQuest.new(doneStorage, confirmedStorage) if(type(doneStorage) ~= 'number') then return FALSE, error("missionQuest: Requiring number for 'doneStorage' (got " .. type(doneStorage) .. ")") end local mt = { doneStorage = doneStorage, confirmedStorage = confirmedStorage, missions = {} } setmetatable(mt, missionQuest) return mt end function missionQuest:add(name) table.insert(self.missions, name) _G["MISSION_" .. name:gsub(" ", "_"):upper()] = #self.missions end function missionQuest:check(cid, storageValue) local flags = getPlayerStorageValue(cid, storageValue) local found, success = 0, TRUE for k, name in ipairs(self.missions) do local flag = k ^ 2 if(bit.band(flags, flag) == flag) then found = found + 1 elseif(success == TRUE) then success = FALSE end end return success, found end function missionQuest:checkDone(cid) return self:check(cid, self.doneStorage) end function missionQuest:checkConfirmed(cid) return self:check(cid, self.confirmedStorage) end function missionQuest:has(cid, flag, storageValue) flag = flag ^ 2 local flags = getPlayerStorageValue(cid, storageValue) return (bit.band(flags, flag) == flag) and TRUE or FALSE end function missionQuest:hasDone(cid, flag) return self:has(cid, flag, self.doneStorage) end function missionQuest:doneTakeItems(cid, flag, ...) if(self:hasDone(cid, flag) == FALSE) then return FALSE end for _, v in ipairs(arg) do local count, itemid = 1 if(type(v) == 'table') then itemid, count = unpack(v) else itemid = v end if(getPlayerItemCount(cid, itemid) < count) then return FALSE, itemid, count end end for _, v in ipairs(arg) do local count, itemid = 1 if(type(v) == 'table') then itemid, count = unpack(v) else itemid = v end if(isItemStackable(itemid) == TRUE) then doPlayerRemoveItem(cid, itemid, count) else for i = 1, count do doPlayerRemoveItem(cid, itemid, 1) end end end return TRUE end function missionQuest:hasConfirmed(cid, flag) return self:has(cid, flag, self.confirmedStorage) end function missionQuest:set(cid, flag, storageValue) local flags = getPlayerStorageValue(cid, storageValue) setPlayerStorageValue(cid, storageValue, bit.bor(flags, flag)) end function missionQuest:setDone(cid, flag) self:set(cid, flag, self.doneStorage) end function missionQuest:setConfirmed(cid, flag) self:set(cid, flag, self.confirmedStorage) end -- Simplification function for adding missions using table. function createMission(t, doneStorage, confirmedStorage) local missionQ = missionQuest.new(doneStorage, confirmedStorage) for _, name in ipairs(t) do missionQ:add(name) end return missionQ end Example [part of] NPC code -- Would be best if this was placed in constant.lua local missions = { "kill the rabbit", "slay the demon", "bring the key" } local missionQ = createMission(missions, 4353) -- End "best in constant.lua" if(msgcontains(msg, "quest")) then if(missionQ:hasDone(cid, MISSION_KILL_THE_RABBIT) == FALSE) then selfSay('Please go kill the evil rabbit located at {Demon Shire}.', cid) elseif(missionQ:hasConfirmed(cid, MISSION_KILL_THE_RABBIT) == FALSE) then selfSay('Thank you so much! I never liked that rabbit.', cid) missionQ:setConfirmed(MISSION_KILL_THE_RABBIT) elseif(missionQ:hasDone(cid, MISSION_SLAY_THE_DEMON) == FALSE) then selfSay('Please go SLAY the Demon!', cid) elseif(missionQ:hasConfirmed(cid, MISSION_SLAY_THE_DEMON) == FALSE) then selfSay('Good Job!', cid) missionQ:setConfirmed(MISSION_SLAY_THE_DEMON) -- and so on end elseif(msgcontains(msg, "rabbit")) if(missionQ:hasDone(cid, MISSION_KILL_THE_RABBIT) == FALSE) then selfSay('Please go kill the evil rabbit located at {Demon Shire}.', cid) elseif(missionQ:hasConfirmed(cid, MISSION_KILL_THE_RABBIT) == FALSE) then selfSay('Thank you so much! I never liked that rabbit.', cid) missionQ:setConfirmed(MISSION_KILL_THE_RABBIT) else selfSay('You already killed the Rabbit!', cid) end end Now you also need to make so when you kill that rabbit and demon it will add as he's been killed. Example script for rabbit: -- Would be best if this was placed in constant.lua local missions = { "kill the rabbit", "slay the demon", "bring the key" } local missionQ = createMission(t, 4353) function onDeath(cid, killer) if(isPlayer(killer) == TRUE) then if(missionQ:hasDone(killer, MISSION_KILL_THE_RABBIT) == FALSE) then doPlayerSendTextMessage(killer, MESSAGE_INFO_DESCR, "Congratulations! You killed the evil rabbit.") missionQ:setDone(killer, MISSION_KILL_THE_RABBIT) end end return TRUE end Functions: missionQuest.checkDone(cid) -- checks whether player has done all the missions. returns TRUE/FALSE and as second return value how many he has done. missionQuest.checkConfirmed(cid) -- same as above, but checks if he has confirmed all missions. missionQuest.hasDone(cid, flag) -- checks whether player has done a certain mission. returns TRUE/FALSE missionQuest.hasConfirmed(cid, flag) -- same as above, but checks if he has confirmed a certain mission. missionQuest.doneTakeItems(cid, flags, items) -- returns TRUE if player has done quest + has all items needed. -- but if he has done quest but does not have required items, it will return FALSE, itemid, count of the item he did not have (will only return one, even though there could be many...) -- example: missionQ:doneTakeItems(cid, MISSION_HELP_GEORGE, 4433, {1004, 5}, 4324, 1923, 5403, {7433, 4}) -- This would require 1x of itemid 4433, 5x of itemid 1004 etc... missionQuest.setDone(cid, flag) -- sets a certain flag to done, so it will be classed as it has been done. missionQuest.setConfirmed(cid, flag) -- same as above, but sets flag to confirmed. What's done and what's confirmed? When you finish a mission it's usually done. But when you go speak to the NPC he will see it as done and skip it right? So then I have this confirmed thingy, that will be set after he has done it and then spoken to NPC or whatever. Using missionQuest.add(name) it will automatically create a global variable. So if you write like: -- Create new mission with storages 1003 and 1004. missionQ = missionQuest.new(1003, 1004) -- This will be the main "mission" that will be done as fast as he accepts the mission. missionQ:add("started troubleseeking") -- Now a new global variable was created: MISSION_STARTED_TROUBLESEEKING missionQ:add("help santa") -- Now a new global variable was created: MISSION_HELP_SANTA missionQ:add("deliver candy") -- New global variable: MISSION_DELIVER_CANDY Now with these words you added, you use them as missions. You can use them in any way you want. You can make for example a Santa NPC that will make the "help santa" mission done, and then you need to go to another NPC that will make it complete by just talking to him and confirming. I'll give you example NPC's Alfred if(msgcontains(msg, 'hi')) then if(missionQ:checkConfirmed(cid) == TRUE) then selfSay('Hello |PLAYER|. What can I do for you?', cid) else selfSay('Hi |PLAYER|. Are you a {troubleseeker}?', cid) end elseif(crap_code_to_check_if_player_is_talking_to_npc) then -- If he say "troubleseeker" if(msgcontains(msg, 'troubleseeker')) then -- "confirmed" is TRUE if player is fully completed with quest while "amount" is how many missions of the quest that he has confirmed. local confirmed, amount = missionQ:checkConfirmed(cid) if(confirmed == TRUE) then -- If player is fully completed with quest. selfSay('I much appreciate your help |PLAYER|!', cid) else -- If player is not fully completed with quest. if(amount == 0) then -- If player has not even started the mission. selfSay('Go help Santa. Hurry up!', cid) missionQ:setConfirmed(cid, MISSION_STARTED_TROUBLESEEKING) else if(missionQ:hasDone(cid, MISSION_HELP_SANTA) == FALSE) then selfSay('Come on! Go help Santa. Don\'t be so lazy!', cid) elseif(missionQ:hasConfirmed(cid, MISSION_HELP_SANTA) == FALSE) then selfSay('Good Job! Now go deliver the candy.', cid) missionQ:setConfirmed(cid, MISSION_HELP_SANTA) elseif(missionQ:hasDone(cid, MISSION_DELIVER_CANDY) == FALSE) then selfSay('Stupid n00b... Just go give that fat Santa his candy, what\'s so damn hard???', cid) elseif(missionQ:hasConfirmed(cid, MISSION_DELIVER_CANDY) == FALSE) then selfSay('Wow, congratulations LoL... Hard job ehh??', cid) missionQ:setConfirmed(cid, MISSION_DELIVER_CANDY) end -- No more missions left, he won't even go this far He'll stay in "confirmed == TRUE". end end end end Santa if(msgcontains(msg, 'hi')) then if(missionQ:checkConfirmed(cid) == TRUE) then selfSay('Hello there gentle |PLAYER|. What can I do for you?', cid) else selfSay('Hi |PLAYER|, do you think you could {help} me out?', cid) end elseif(crap_code_to_check_if_player_is_talking_to_npc) then -- If he say "troubleseeker" if(msgcontains(msg, 'help')) then if(missionQ:hasDone(cid, MISSION_HELP_SANTA) == FALSE) then if(doPlayerRemoveItem(cid, ITEMID_TORCH) == TRUE) then selfSay('Thanks a lot for the torch! Now I can finally go get my bags in the cave.', cid) missionQ:setDone(cid, MISSION_HELP_SANTA) else selfSay('Could you please bring me a torch. This cave is very dark.', cid) end else selfSay('Thanks for helping me out. I don\'t know how to reward you enough.', cid) end end end Bah, the candy part you can figure yourselves Note that this must not be used only for NPC's. You can use as talkaction/action/movement or whatever you want!
  9. PiPi Master

    Help re-writing a script.

    Hi, I have been working on making a quest for my server and I have a little complication. It's just a simple pull lever-remove wall-put wall back with event type of thing but I would like to know if there's a simple way to use this same code in 19 other levers put in 10 different floors, 2 levers per floor. There has to be some way to write it in general terms so it can get the different coordinates for each one separately, because obviously making 20 exact codes but just changing 2-3 numbers in each isn't a funny joke. Here's the code: local config = { normalLever = 1945, pulledLever = 1946, leverUid = 6520, messageRemoved = "A passage has oppened so you can advance. Hurry it will close in 5 seconds!", messagePlaced = "The passage has closed.", stonePos = {x=311, y=165, z=10}, stoneID = 11944, delay = 5 } function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == config.normalLever and item.uid == config.leverUid then local stone = getTileItemById(config.stonePos, config.stoneID) doRemoveItem(stone.uid, 1) doTransformItem(item.uid, config.pulledLever) doPlayerSendTextMessage(cid, 22, config.messageRemoved) addEvent(placeStone, config.delay * 1000, cid, item) end return true end function mapAreas(fromPos, toPos, stack) local myTable = {} for _x = fromPos.x, toPos.x do for _y = fromPos.y, toPos.y do local thing = getThingFromPos({x = _x, y = _y, z = fromPos.z, stackpos = stack}) if isPlayer(thing.uid) then table.insert(myTable, thing.uid) end end end return #myTable > 0 and myTable or nil end function placeStone(cid, item) local fromPos = stonePos local toPos = stonePos local thing = mapAreas(fromPos, toPos, 253) if thing then local pos = getPlayerPosition(cid) doTeleportThing(cid, {x=pos.x+1, y=pos.y, z=pos.z}) doCreateItem(config.stoneID, 1, config.stonePos) doPlayerSendTextMessage(cid, 22, config.messagePlaced) doTransformItem(item.uid, config.normalLever) else doCreateItem(config.stoneID, 1, config.stonePos) doPlayerSendTextMessage(cid, 22, config.messagePlaced) doTransformItem(item.uid, config.normalLever) end return true end Any help would be appreciated greatly! Best regards!
  10. This is teaser II of Lands Of Forsaken Kingdom ill show you here 2 quest's:) Hope you like it Demon Castle Next page more!
  11. Tryller

    Quests based on uniqueID bug

    Hello I've a problem with my quest.lua. to use quests based on uniqueiD on OTServ The chest say It is empty, and the player does not have the quest my quest.lua -- simple quests based on uniqueId -- to make quest create chest on map and set its uniqueId to id of quest item function onUse(cid, item, frompos, item2, topos) prize = item.uid if prize > 0 and prize < 7000 then queststatus = getPlayerStorageValue(cid,prize) if queststatus == -1 then doPlayerSendTextMessage(cid,22,'You have found a ' .. getItemName(prize) .. '.') doPlayerAddItem(cid,prize,1) setPlayerStorageValue(cid,prize,1) else doPlayerSendTextMessage(cid,22,"It is empty.") end return 1 else return 0 end end why it not work? can fix?
  12. Hey there, got an issue I'm using the yalahari quest scripts by QuaS but when azerus die he doesn't turn into a tp and this error comes in console this is the script: -- Yalahar 10th mission By QuaS~~ -- Config #1 -- local BlindField = {x=579, y=557, z=10, stackpos=1} -- end -- function mapArea(fromPos, toPos, stack) -- Area iterator by Colandus. local pos = {x=fromPos.x, y=fromPos.y-1, z=fromPos.z} return function() if (pos.y < toPos.y) then pos.y = pos.y+1 elseif (pos.x <= toPos.x) then pos.y = fromPos.y pos.x = pos.x+1 else pos.x = fromPos.x pos.y = fromPos.y pos.z = pos.z+1 end if (pos.x <= toPos.x and pos.y <= toPos.y or pos.z < toPos.z) then if (stack == nil) then return pos else pos.stackpos = stack --return pos, getTileThingByPos(pos) return pos, getTilefromPos(pos) end end end end function getMonstersfromArea(fromPos, toPos) local monsters = {} for _, thing in mapArea(fromPos, toPos, 253) do if isMonster(thing.uid) == TRUE then table.insert(monsters, thing.uid) end end local bfm = getThingfromPos(BlindField) if isMonster(bfm.uid) == TRUE then table.insert(monsters, bfm.uid) end return monsters end function onUse(cid, item, fromPosition, itemEx, toPosition) -- CONFIG #2!!!! -- -- Map checking -- local topLeft = {x=574, y=560, z=10} local buttomRight = {x=589, y=576, z=10} -- Immortality of Azerus local monsters = getMonstersfromArea(topLeft, buttomRight) local monsters1 = getMonstersfromArea(topLeft, buttomRight) -- Position Of TP -- local tp = {x=581, y=575, z=10} -- Position of Gllobus local glo = {x=581, y=566, z=10} -- END OF CONFIG! -- function FirstWave() doSummonCreature("Rift Worm", {x= glo.x - 4,y=glo.y,z=glo.z}) doSummonCreature("Rift Worm", {x= glo.x + 4,y=glo.y,z=glo.z}) doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 4,z=glo.z}) doSummonCreature("Rift Worm", {x=glo.x,y=glo.y - 4,z=glo.z}) doSummonCreature("Rift Worm", {x=glo.x,y=glo.y + 5,z=glo.z}) doSummonCreature("Azerus", {x=glo.x,y=glo.y - 5,z=glo.z}) end function SecondWave() local monsters1 = getMonstersfromArea(topLeft, buttomRight) for _, monster in pairs(monsters1) do if getCreatureName(monster) == "Azerus" then doRemoveCreature(monster) end end doSummonCreature("Azerus1", {x=glo.x,y=glo.y - 5,z=glo.z}) doSummonCreature("Rift Brood", {x= glo.x - 4,y=glo.y,z=glo.z}) doSummonCreature("Rift Brood", {x= glo.x + 4,y=glo.y,z=glo.z}) doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 4,z=glo.z}) doSummonCreature("Rift Brood", {x=glo.x,y=glo.y - 4,z=glo.z}) doSummonCreature("Rift Brood", {x=glo.x,y=glo.y + 5,z=glo.z}) end function ThirdWave() local monsters1 = getMonstersfromArea(topLeft, buttomRight) for _, monster in pairs(monsters1) do if getCreatureName(monster) == "Azerus" then doRemoveCreature(monster) end end doSummonCreature("Azerus2", {x= glo.x - 5,y=glo.y,z=glo.z}) doSummonCreature("Rift Scythe", {x= glo.x - 4,y=glo.y,z=glo.z}) doSummonCreature("Rift Scythe", {x= glo.x + 4,y=glo.y,z=glo.z}) end function ThirdWave1() -- with 2s delay doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 4,z=glo.z}) doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y - 4,z=glo.z}) doSummonCreature("Rift Scythe", {x=glo.x,y=glo.y + 5,z=glo.z}) end function FourthWave() local monsters1 = getMonstersfromArea(topLeft, buttomRight) for _, monster in pairs(monsters1) do if getCreatureName(monster) == "Azerus" then doRemoveCreature(monster) end end doSummonCreature("Azerus3", {x= glo.x - 5,y=glo.y,z=glo.z}) doSummonCreature("War Golem", {x= glo.x - 4,y=glo.y,z=glo.z}) doSummonCreature("War Golem", {x= glo.x + 4,y=glo.y,z=glo.z}) doSummonCreature("War Golem", {x=glo.x,y=glo.y - 4,z=glo.z}) doSummonCreature("War Golem", {x=glo.x,y=glo.y + 4,z=glo.z}) end function Glllobe() item1 = getTileItemById(glo,9767) doItemSetAttribute(item1.uid, 58261) end if item.actionid == 58261 then doItemSetAttribute(item.uid, 58263) local monsters = getMonstersfromArea(topLeft, buttomRight) local monsters1 = getMonstersfromArea(topLeft, buttomRight) if getTileItemById(tp,1387).itemid == 1387 then doRemoveItem(getTileItemById(tp,1387).uid) end addEvent(FirstWave, 0) addEvent(SecondWave, 10000) addEvent(ThirdWave, 20000) addEvent(ThirdWave1, 24000) addEvent(FourthWave, 38000) addEvent(Glllobe, 900000) elseif item.actionid == 58263 then doCreatureSay(cid, "You have to wait some time before this globe will charge.", TALKTYPE_ORANGE_1) end return TRUE end
  13. jakehop22

    Global Timer

    This is for a quest. I need a script that will count down after entering a certain portal. After they enter the portal, a timer will count down to 30 minutes, after the time is up; it will send them back to the home town. All I need is the timing part and when the timer is up, it sends you to a location.
  14. okay well i made a little arena and edited an annihilator script for it.. right now it takes one person and makes one monster.... when you pull the lever you get teleported into the room along with the monster and right now i have it set so that, If you have a certain scroll, it will take it, (whether you have 0, or you have 99, it just takes however many of them you have, if any, and teleports you) but here is the problem, i can't seem to get it to check if there are any players or monsters in the room, and if there are no players and a monster/corpse, to remove the corpse/monster and turn the lever back to the original state to allow someone else to attempt the quest.. the lever starts at the left, then when you pull it, it faces to the right and just gets stuck there...i get no errors in the console so i'm pretty confused as to what the problem may be... here is the script i hope someone might be able to take the time to help me thanks a lot local starting= {x = 888, y = 1152, z = 7} -- edit this to the top left sqm of ur annhilator room local ending= {x = 897, y = 1161, z = 7} -- edit this to the bottom right sqm of ur annhilator room function onUse(cid, item, frompos, item2, topos) if item.uid == 5100 then if item.itemid == 1945 then ticket = getPlayerItemCount(cid,5952) player1pos = {x=893, y=1150, z=6, stackpos=253} player1 = getThingfromPos(player1pos) if ticket >= 0 then if player1.itemid > 0 then player1level = getPlayerLevel(player1.uid) questlevel = 20 if player1level >= questlevel then queststatus1 = getPlayerStorageValue(player1.uid,5100) if queststatus1 == -1 then doPlayerRemoveItem(cid,5952,ticket) demon1pos = {x=893, y=1157, z=7} doSummonCreature("Lightning", demon1pos) nplayer1pos = {x =891, y =1157, z =7} doSendMagicEffect(player1pos,2) doTeleportThing(player1.uid,nplayer1pos) doSendMagicEffect(nplayer1pos,10) doTransformItem(item.uid,item.itemid+1) else doPlayerSendCancel(cid,"Sorry, not possible.") end else doPlayerSendCancel(cid,"Sorry, not possible.") end else doPlayerSendCancel(cid,"Sorry, not possible.") end if item.itemid == 1946 then if item.uid == 5100 then if(cleanArea()) then doTransformItem(item.uid, 1945) else doPlayerSendCancel(cid,"Sorry, not possible.") end end end end end end function cleanArea() local checking= {x = starting.x, y = starting.y, z = starting.z, stackpos = 253} local monster = {} while(checking.y <= ending.y) do local creature = getTopCreature(checking).uid or getTopCreature(checking) if(isCreature(creature) == TRUE) then if(isPlayer(creature) == TRUE) then return false else table.insert(monster, creature) end end if(checking.x == ending.x) then checking.x = starting.x checking.y = checking.y + 1 end checking.x = checking.x + 1 end for i, c in ipairs(monster) do doRemoveCreature(c) end return true end return 1 end By the way i forgot to add, I'm using the forgotten server 0.2.7 Mystic Spirit
  15. Chaosaz

    Levers

    Hello I've been working on a quest lately but i wanted to make it a bit more fun so my idea was to make a lever delete a wall and if you walk over the square where the wall used to be you get teleported to the reward room or boss room w/e What I got done myself: * The lever deleting the wall * Get teleported if you walk over the square What I need now is, a script that makes the wall appear again if you are teleported Btw I'm using TFS 8.54
  16. Okay well I was making quests chests to my server when i suddenly got an idea of quest chest, which has multiple rewards, each one having its own change of getting. (Like 30% change to mpa, 10% change to get golden armor and 60% change of getting a plate armor.) I tried to look for a script like that but couldnt find anything from any forums so.. can anyone help me?
  17. Yakushi

    Quests don't work

    Heyho My problem is that quests don't work I am using TFS 03.6.pl1 I tested: Action ID from the chest: 2000 unique id from the chest: XXXX action id from the chest: 0 unique id: XXXX but both don't work please help! ______________
  18. Fidde

    Need help with Quest!

    Hi folks, I'm working on a NPC that will give the player a quest there the player will slay a monster to get a dragonfetish, when that is done, the player will get an armor that depends on the vocation of the player, like this If the player is a Knight or a Paladin, he/she will get a Lavos Armor. If the player is a Druid or Sorcerer, he/she will get a Magma Coat. Also if it's possible the npc is willing to teleport the player to an area for a high amount of gold. And one more thing, I can't import the monster into my mepeditor. Here is the codes for the NPC: <?xml version="1.0" encoding="UTF-8"?> <npc name="Uthi" script="data/npc/scripts/uthi.lua" walkinterval="2000" floorchange="0"> <health now="3000" max="3000"/> <look type="39"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, what can I do for you?" /> <parameter key="keywords" value="job;help;quest;finnish;bye" /> <parameter key="module_keywords" value="1" /> <parameter key="keyword_reply1" value="I am the last dragon that fights on the side of humans of the Dragon Order, and you might {help} me?" /> <parameter key="keyword_reply2" value="I'm villing to give you a reward for this {quest}" /> <parameter key="keyword_reply3" value="I want you to say hello to an old friend of mine, his name is Feragorn, he is located in the desert of the town Pharao. But I must warn you, He is very strong." /> <parameter key="keyword_reply4" value="Ah! You took care of him? Good. Here is your reward!" /> <parameter key="keyword_reply5" value="So I am alone again." /> </parameters> </npc> and for the monster the player are going to kill <?xml version="1.0" encoding="UTF-8"?> <monster name="Fergorn Dragonrider" nameDescription="a dwarf" race="blood" experience="1650" speed="200" manacost="650"> <health now="2450" max="2450"/> <look type="70" corpse="6013"/> <targetchange interval="5000" chance="8"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="1"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="1"/> <flag convinceable="1"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag canpushcreatures="1"/> <flag targetdistance="1"/> <flag staticattack="90"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" min="60" max="200"/> </attacks> <defenses armor="15" defense="22"/> <elements> <element earthPercent="90"/> <element physicalPercent="20"/> <element firePercent="-5"/> <element deathPercent="-5"/> </elements> <immunities> <immunity invisible="1"/> </immunities> <voices interval="5000" chance="10"> <voice sentence="I comanding the skies to open!"/> </voices> <loot> <item id="2319" chance="25000"/><!-- dragonfetish --> </item> </loot> </monster> /Fidde.
  19. Exorz

    Quest Scripting

    Hello i got a problem with scripting in quest i know i can make qquest i nmapeditor but then io cant make like u get 10cc only 1 and when i test to make quest in "actions" i what it stands to do but i wont work so you guys mabey can tell me better how to make quest on "actions"
  20. scripter5

    [QUEST] Vocation based chest

    I have this code: It works fine when: 1) You have already done the quest 2) You don't have enough cap 3) It gives you the item when you meet the requirements, but the exe gives me this error: Can I get any help on this error? And maybe some comments on the code itself, any way to clean it up a bit? It's my first attempt at a chest that gives different items depending on your vocation.
  21. like i said in title, ive got the script so it doesnt make errors but when i try to use the lever it wont work and doesnt make errors, heres the script and xml thread so u know im not just missing that lol. function onUse(cid, item, frompos, item2, topos) pos1 = {x=867, y=686, z=7} pos2 = {x=875, y=686, z=7} queststatus = getPlayerStorageValue(cid,9003) if queststatus == -1 then if getThingfromPos(pos1).itemid == 1946 and getThingfromPos(pos2).itemid == 1946 then doTransformItem(getThingfromPos(pos1).uid, 1945) doTransformItem(getThingfromPos(pos2).uid, 1945) doPlayerSendTextMessage(cid,22,"You have found a puppet right leg.") doPlayerAddItem(cid, 9699) setPlayerStorageValue(cid,9003,1) else doPlayerSendTextMessage(cid,22,"You've already completed this quest or the levers are positioned wrong.") end end return TRUE end <action actionid="1059" event="script" value="puppet/puppet right leg.lua"/>
  22. like i said in the title, ive made a script which checks for 2 levers then adds an item and a storage value like a quest, problem is i cant find where the end goes, or maybe the function has the wrong words in it, but please help me, im so close to finishing it lol. heres the error i get [22/07/2009 14:15:46] [Warning - Event::loadScript] Can not load script (data/movements/scripts/puppet head.lua) [22/07/2009 14:15:46] data/movements/scripts/puppet head.lua:11: 'end' expected (to close 'function' at line 1) near 'elseif' and heres the script function onStepIn(cid, item, position, fromPosition) pos1 = {x=828, y=799, z=7} pos2 = {x=836, y=799, z=7} queststatus = getPlayerStorageValue(cid,9000) if queststatus ~= -1 then doPlayerSendTextMessage(cid,22,"You've already completed this quest.") end elseif queststatus == -1 then if getThingfromPos(pos1).itemid == 1946 and getThingfromPos(pos2).itemid == 1946 then doTransformItem(getThingfromPos(pos1).uid, 1945) doTransformItem(getThingfromPos(pos2).uid, 1945) doPlayerSendTextMessage(cid,22,"You have found a puppet head.") doPlayerAddItem(cid, 9694) setPlayerStorageValue(cid,9000,1) end return TRUE end
  23. JordiPrevost

    [REQUEST] Key Open Door

    Hey Guys i am bussy with a quest quest 30+ bla bla bla... (nothingintersting about this thread) but i need a script that open a Locked door... Door id: "6903" Key Id/Name: Wooden Key ; 2968 Please can someone make this?? Regards, JordiPrevost
  24. Um Hi! my server im hosting has arena quest and it only has one difficulty which is warlord... i would like it to have more but is it possible to make more? im new so im not sure if this would be a scripting thing or configuration... and can the prizes change? like if you do easy (i forget all the difficulties) you get a trophy.... easy stuff help would be greatly appreciated,
  25. JordiPrevost

    [8.42] Cook's Quest!

    I've made my first quest! no npc's Included Credits to: Me(Jordiprevost) And Chauz! Basement:(key is below a chest) First Floor: Second Floor: Comment's not welcome becouse they are all negative of my mapping style... Regards, JordiPrevost
×

Important Information

Privacy Policy