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

Solved Quests not working with sql

Zaggyzigzig

plx itens menz
Joined
Aug 25, 2014
Messages
386
Reaction score
50
Location
Canada Ontario
Just wondering why my quests are not working, Also shows 0 players online on my website page! anyone has an ideas? says =10 and =2 because i used two different characters to try and open the chests!fail.gif
 
Its every single quest in the server, dhq everything its all like that! Just says the chest is empty on all also its all good in the map editor unique ids are the same as in the scripts...
 
Code:
-- Script by Colandus!
-- Free to edit!

function onUse(cid, item, frompos, item2, topos)
    -- Item ID and Uniqueid --
    switchUniqueID = 10102
    switchID = 1945
    switch2ID = 1946
    swordID    = 2376
    crossbowID = 2455
    appleID    = 2674
    spellbookID    = 2175


    -- Level to do the quest --
    questlevel = 20


    piece1pos = {x=32673, y=32094, z=8, stackpos=1} -- Where the first piece will be placed
    getpiece1 = getThingfromPos(piece1pos)

    piece2pos = {x=32673, y=32083, z=8, stackpos=1} -- Where the second piece will be placed
    getpiece2 = getThingfromPos(piece2pos)

    piece3pos = {x=32667, y=32089, z=8, stackpos=1} -- Where the third piece will be placed
    getpiece3 = getThingfromPos(piece3pos)

    piece4pos = {x=32679, y=32089, z=8, stackpos=1} -- Where the fourth piece will be placed
    getpiece4 = getThingfromPos(piece4pos)

    player1pos = {x=32673, y=32093, z=8, stackpos=253} -- Where player1 will stand before pressing lever
    player1 = getThingfromPos(player1pos)
    player2pos = {x=32673, y=32085, z=8, stackpos=253} -- Where player2 will stand before pressing lever
    player2 = getThingfromPos(player2pos)
    player3pos = {x=32669, y=32089, z=8, stackpos=253} -- Where player3 will stand before pressing lever
    player3 = getThingfromPos(player3pos)
    player4pos = {x=32677, y=32089, z=8, stackpos=253} -- Where player4 will stand before pressing lever
    player4 = getThingfromPos(player4pos)

    knightvoc = getPlayerVocation(player1.uid)   -- The vocation of player1
    paladinvoc = getPlayerVocation(player2.uid)  -- The vocation of player2
    druidvoc = getPlayerVocation(player3.uid)    -- The vocation of player3
    sorcerervoc = getPlayerVocation(player4.uid) -- The vocation of player4

    nplayer1pos = {x=32672, y=32070, z=8} -- The new position of player1
    nplayer2pos = {x=32671, y=32070, z=8} -- The new position of player2
    nplayer3pos = {x=32672, y=32069, z=8} -- The new position of player3
    nplayer4pos = {x=32671, y=32069, z=8} -- The new position of player4


    player1level = getPlayerLevel(player1.uid) -- Checking the level of player1
    player2level = getPlayerLevel(player2.uid) -- Checking the level of player2
    player3level = getPlayerLevel(player3.uid) -- Checking the level of player3
    player4level = getPlayerLevel(player4.uid) -- Checking the level of player4


    -- Check if all players has the correct vocation
    if knightvoc == 4 or knightvoc == 8 and
    paladinvoc == 3 or paladinvoc == 7 and
    druidvoc == 2 or druidvoc == 6 and
    sorcerervoc == 1 or sorcerervoc == 5 then 


    -- Check if all players are standing on the correct positions
    if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
        if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and    player4level >= questlevel then
            if item.uid == switchUniqueID and item.itemid == switchID and getpiece1.itemid == swordID and getpiece2.itemid == crossbowID and getpiece3.itemid == appleID and getpiece4.itemid == spellbookID then
                doSendMagicEffect(player1pos,2)
                doTeleportThing(player1.uid,nplayer1pos)
                doSendMagicEffect(nplayer1pos,10)
                doRemoveItem(getpiece1.uid,1)

                doSendMagicEffect(player2pos,2)
                doTeleportThing(player2.uid,nplayer2pos)
                doSendMagicEffect(nplayer2pos,10)
                doRemoveItem(getpiece2.uid,1)

                doSendMagicEffect(player3pos,2)
                doTeleportThing(player3.uid,nplayer3pos)
                doSendMagicEffect(nplayer3pos,10)
                doRemoveItem(getpiece3.uid,1)

                doSendMagicEffect(player4pos,2)
                doTeleportThing(player4.uid,nplayer4pos) 
                doSendMagicEffect(nplayer4pos,10)
                doRemoveItem(getpiece4.uid,1)

                doTransformItem(item.uid,item.itemid+1)
            elseif item.uid == switchUniqueID and item.itemid == switch2ID then
                doTransformItem(item.uid,item.itemid-1)
            else
                doPlayerSendCancel(cid,"Sorry, you need to put the correct stuffs at the correct basins.")
            end
            else
            return 0
            end
        else
            doPlayerSendCancel(cid,"Sorry, all players in your team must to be level " .. questlevel .. ".")
        end
    else
        doPlayerSendCancel(cid,"Sorry, all 4 players must be on right positions.")
    end
    return 1
end


Nothing is wrong with it, it works on a different server but here you go!!!

Dont really see how this is helping me um but ok!
 
Last edited by a moderator:
This is just a voc quest script, there is nothing for chests here.
To prevent these errors you can check for isPlayer under player4 = getThingfromPos(player4pos).
Code:
if isPlayer(player1) == FALSE or isPlayer(player2) == FALSE or isPlayer(player3) == FALSE or isPlayer(player4) == FALSE then
    doPlayerSendCancel(cid, There need to be 4 players.")
    return 0
end
 
This is just a voc quest script, there is nothing for chests here.
To prevent these errors you can check for isPlayer under player4 = getThingfromPos(player4pos).
Code:
if isPlayer(player1) == FALSE or isPlayer(player2) == FALSE or isPlayer(player3) == FALSE or isPlayer(player4) == FALSE then
    doPlayerSendCancel(cid, There need to be 4 players.")
    return 0
end


Code:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 10104 then
  queststatus = getPlayerStorageValue(cid,10104)
  if queststatus == -1 and getPlayerAccess(cid) == 0 then
   doPlayerSendTextMessage(cid,22,"You have found a green bag.")
   bag = doPlayerAddItem(cid, 1991, 1)
   doAddContainerItem(bag, 2200, 1)
   doAddContainerItem(bag, 2214, 1)
   doAddContainerItem(bag, 2162, 1)
   doAddContainerItem(bag, 2193, 1)
   setPlayerStorageValue(cid,10104,1)

  else
   doPlayerSendTextMessage(cid,22,"The chest is empty.")
  end
else
  return 0
end
return 1
end


Code:
function onUse(cid, item, frompos, item2, topos)
if item.uid == 10103 then
  queststatus = getPlayerStorageValue(cid,10103)
  if queststatus == -1 and getPlayerAccess(cid) == 0 then
   doPlayerSendTextMessage(cid,22,"You have found a 100 platinum coins.")
   doPlayerAddItem(cid, 2152, 100)
   setPlayerStorageValue(cid,10103,1)

  else
   doPlayerSendTextMessage(cid,22,"The chest is empty.")
  end
else
  return 0
end
return 1
end
 
What is the problem with those 2 scripts? Post what happens, how it's added in actions.xml and how it's added in the map (chests, actionids/uniqueids).
 
those are the same scripts for the same thing, you asked for them now to solve my problem every single quest is not working, It has to do with somthing in my db, im gonna figure it out when i fix it ill post it here
 
People can't help if you don't give the needed information, how it's added in actions.xml, what happens when you use the chests and how it's added in the map.
If people already have the storage value you will get the "The chest is empty." message. The description "not working" is not clear enough for people to be able to help.
 
Ive been fixing the quests by replacing
if queststatus == -1 and getPlayerAccess(cid) == 0 then

and changing it to this

if queststatus == -1 or queststatus == 0 then

then it allows the player to get the item from the chest! =p
 
Back
Top