Postado Setembro 3, 2016 8 anos 2 horas atrás, luangop disse: Você está usando uma string ao invés de number na storage! (string = texto) Eu peguei o 91003 dessa linha da task e deixei do jeito que ta no spoiler. ["rotworm"] = {monster_race={"rotworm","carrion worm"}, storage_start = 200203, storage = 91003,count = 300,exp = 1000,money = 800} Spoiler local storage = {91003} --Storages. function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end for i = 1, #storage do if getPlayerStorageValue(cid, storage[i]) < 1 then return doPlayerSendCancel(cid, "You have not completed the "..i.." mission.") and doTeleportThing(cid, fromPosition) end end doPlayerSendCancel(cid, "You accessed the prohibited area.") doSendMagicEffect(position, 13) return true end Agradeço desde já
Postado Setembro 4, 2016 8 anos 16 horas atrás, markim1986 disse: Eu peguei o 91003 dessa linha da task e deixei do jeito que ta no spoiler. ["rotworm"] = {monster_race={"rotworm","carrion worm"}, storage_start = 200203, storage = 91003,count = 300,exp = 1000,money = 800} Ocultar conteúdo local storage = {91003} --Storages. function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end for i = 1, #storage do if getPlayerStorageValue(cid, storage[i]) < 1 then return doPlayerSendCancel(cid, "You have not completed the "..i.." mission.") and doTeleportThing(cid, fromPosition) end end doPlayerSendCancel(cid, "You accessed the prohibited area.") doSendMagicEffect(position, 13) return true end Agradeço desde já tenta: function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, 91003) <= 0 then doPlayerSendCancel(cid, "You have not completed the required mission.") doTeleportThing(cid, fromPosition) return true end doPlayerSendCancel(cid, "You accessed the prohibited area.") doSendMagicEffect(position, 13) return true end Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Setembro 4, 2016 8 anos 16 horas atrás, luangop disse: tenta: function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerStorageValue(cid, 91003) <= 0 then doPlayerSendCancel(cid, "You have not completed the required mission.") doTeleportThing(cid, fromPosition) return true end doPlayerSendCancel(cid, "You accessed the prohibited area.") doSendMagicEffect(position, 13) return true end Deu isso [1:28:17.737] [Error - MoveEvents Interface] [1:28:17.737] data/movements/scripts/tilestor.lua:onStepIn [1:28:17.737] Description: [1:28:17.737] data/movements/scripts/tilestor.lua:5: attempt to compare string with number [1:28:17.737] stack traceback: [1:28:17.737] data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1> [1:28:19.632] [Error - MoveEvents Interface] [1:28:19.632] data/movements/scripts/tilestor.lua:onStepIn [1:28:19.632] Description: [1:28:19.632] data/movements/scripts/tilestor.lua:5: attempt to compare string with number [1:28:19.632] stack traceback: [1:28:19.632] data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1> [1:28:21.008] [Error - MoveEvents Interface] [1:28:21.008] data/movements/scripts/tilestor.lua:onStepIn [1:28:21.008] Description: [1:28:21.008] data/movements/scripts/tilestor.lua:5: attempt to compare string with number [1:28:21.008] stack traceback: [1:28:21.008] data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1> Lembrando que o erro acontece quando player passa pelo piso tendo o storage, ele não trava, mas da erro exposto acima. agradeço desde já
Postado Setembro 4, 2016 8 anos 1 minuto atrás, markim1986 disse: Deu isso [1:28:17.737] [Error - MoveEvents Interface] [1:28:17.737] data/movements/scripts/tilestor.lua:onStepIn [1:28:17.737] Description: [1:28:17.737] data/movements/scripts/tilestor.lua:5: attempt to compare string with number [1:28:17.737] stack traceback: [1:28:17.737] data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1> [1:28:19.632] [Error - MoveEvents Interface] [1:28:19.632] data/movements/scripts/tilestor.lua:onStepIn [1:28:19.632] Description: [1:28:19.632] data/movements/scripts/tilestor.lua:5: attempt to compare string with number [1:28:19.632] stack traceback: [1:28:19.632] data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1> [1:28:21.008] [Error - MoveEvents Interface] [1:28:21.008] data/movements/scripts/tilestor.lua:onStepIn [1:28:21.008] Description: [1:28:21.008] data/movements/scripts/tilestor.lua:5: attempt to compare string with number [1:28:21.008] stack traceback: [1:28:21.008] data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1> Lembrando que o erro acontece quando player passa pelo piso tendo o storage, ele não trava, mas da erro exposto acima. agradeço desde já Posta o script que bota essa storage no player, fazendo favor. Te ajudei? Clique em Gostei ! ²²²d¬¬b²²² "She's got a smile that it seems to me...." ♪♪
Postado Setembro 4, 2016 8 anos Spoiler <?xml version="1.0" encoding="UTF-8"?> <mod name="Simple Task" version="3.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="task_func"><![CDATA[ tasktabble = { ["troll"] = {monster_race={"troll","frost troll","furious troll","island troll","swamp troll","troll champion","troll legionnaire"}, storage_start = 200201, storage = 91001,count = 150,exp = 200,money = 250}, ["globin"] = {monster_race={"goblin","goblin assassin","goblin leader"}, storage_start = 200202, storage = 91002,count = 150,exp = 300,money = 300}, ["rotworm"] = {monster_race={"rotworm","carrion worm"}, storage_start = 200203, storage = 91003,count = 5,exp = 1000,money = 800}, ["cyclops"] = {monster_race={"cyclops","cyclops smith","cyclops drone"}, storage_start = 200204, storage = 91004,count = 500,exp = 3000,money = 800}, ["green djinn"] = {monster_race={"green djinn","efreet"}, storage_start = 200205, storage = 91005,count = 500,exp = 10000,money = 5000}, ["blue djinn"] = {monster_race={"blue djinn","marid"}, storage_start = 200206, storage = 91006,count = 500,exp = 10000,money = 5000}, ["pirate one"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200207, storage = 91007,count = 300,exp = 10000,money = 5000}, ["pirate two"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200208, storage = 91008,count = 300,exp = 10000,money = 5000}, ["minotaur"] = {monster_race={"minotaur","minotaur archer","minotaur mage","minotaur guard"}, storage_start = 200209, storage = 91009,count = 20}, ["necromancer"] = {monster_race={"necromancer","priestess"}, storage_start = 200210, storage = 91010,count= 400}, ["carniphila"] = {monster_race={"carniphila"}, storage_start = 200211, storage = 91011,count= 150, exp = 2500}, ["stone golem"] = {monster_race={"stone golem"}, storage_start = 200212, storage = 91012,count= 220, exp = 2000}, ["ice golem"] = {monster_race={"ice golem"}, storage_start = 200213, storage = 91013,count= 300, exp = 12000}, ["dragon"] = {monster_race={"dragon","dragon lord","frost dragon"}, storage_start = 200214, storage = 91014,count= 250, exp = 50000}, ["mutated rat"] = {monster_race={"mutated rat"}, storage_start = 200215, storage = 91015,count = 210, exp = 25000, money = 10000}, ["giant spider"] = {monster_race={"giant spider"}, storage_start = 200215, storage = 91016,count = 500, exp = 50000, money = 15000}, ["hydra"] = {monster_race={"hydra"}, storage_start = 200217, storage = 91017,count = 5000, exp = 2000, money = 15000, reward = {{6433,1},{7434,1},{2197,1},{2476,1}}}, ["sea serpent"] = {monster_race={"sea serpent"}, storage_start = 200218, storage = 91018,count = 1500, exp = 70000, money = 30000}, ["behemoth"] = {monster_race={"behemoth"}, storage_start = 200219, storage = 91019,count = 1800, exp = 50000, money = 30000, reward = {{6391,1},{5741,1}}}, ["serpent spawn"] = {monster_race={"serpent spawn"}, storage_start = 200220, storage = 91020,count = 1400, exp = 70000, money = 30000}, ["demon"] = {monster_race={"demon"}, storage_start = 200221, storage = 91021,count = 6666, exp = 70000, money = 200000, reward = {{2495,1},{2496,1},{2520,1},{2472,1}}}, ["quara"] = {monster_race={"quara predator","quara constrictor","quara hydromancer","quara mantassin","quara pincher"}, storage_start = 200222, storage = 91022,count = 300, exp = 40000, money = 50000}, ["quara scout"] = {monster_race={"quara predator scout","quara constrictor scout","quara hydromancer scout","quara mantassin scout","quara pincher scout"}, storage_start = 200223, storage = 91023,count = 300, exp = 50000, money = 60000} } configbosses_task = { {race = "minotaur",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5}, {race = "necromancer",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5}, {race = "dragon",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5} } function CheckTask(cid) for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then return true end end return false end function finisheAllTask(cid) local config = { exp = {true,1000000}, money = {true,200000}, items ={true,{{2160,1},{2328,1}}}, premium ={false,5} } local x = true for k, v in pairs(tasktabble) do if tonumber(getPlayerStorageValue(cid,v.storage)) then x = false end end if x == true then setPlayerStorageValue(cid, 521456, 0) local b = getGlobalStorageValue(63005) if b == -1 then b = 1 end if b < 11 then setGlobalStorageValue(63005,b+1) doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..' to finish the task!.') doPlayerAddPremiumDays(cid, config.premium[1] == true and config.premium[2] or 0) doPlayerAddExp(cid, config.exp[1] == true and config.exp[2] or 0) doPlayerAddMoney(cid, config.money[1] == true and config.money[2] or 0) if config.items[1] == true then doAddItemsFromList(cid,config.items[2]) end doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy "..getCreatureName(cid).." completed all the task.") end end end function HavePlayerPosition(cid, from, to) return isInRange(getPlayerPosition(cid), from, to) and true or false end function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str) end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[2] .. ' ' .. getItemNameById(items[1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function doAddItemsFromList(cid,items) -- by vodka if table.maxn(items) > 0 then for i = 1, table.maxn(items) do local count = items[2] while count > 0 do if isItemStackable(items[1]) then doPlayerAddItemStacking(cid, items[1], 1) else doPlayerAddItem(cid, items[1],1) end count = count - 1 end end end end function pairsByKeys(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 local iter = function () i = i + 1 if a == nil then return nil else return a, t[a] end end return iter end ]]></config> <event type="login" name="TaskLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "KillTask") return true end]]></event> <talkaction words="/task;!task" event="buffer"><![CDATA[ domodlib('task_func') local param = string.lower(param) if param == "rank" then getRankStorage(cid, 521456, 20, "Task Rank Finalizadas") return true end local str = "" str = str .. "Task Completed :\n\n" for k, v in pairsByKeys(tasktabble) do local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end str = str..k.." = ".. (not tonumber(contagem) and "["..contagem.."]" or "["..((contagem)-1).."/"..v.count.."]") .."\n" end str = str .. "" return doShowTextDialog(cid, 8983, str) ]]></talkaction> <event type="kill" name="KillTask" event="script"><![CDATA[ domodlib('task_func') function onKill(cid, target, lastHit) if(isMonster(target) == true) then local n = string.lower(getCreatureName(target)) for race, mob in pairs(tasktabble) do if getPlayerStorageValue(cid,mob .storage_start) >= 1 then for i = 1,#mob.monster_race do if n == mob.monster_race then local contagem = getPlayerStorageValue(cid, mob.storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then return true end if contagem > mob.count then return true end if contagem > mob.count then return true end setPlayerStorageValue(cid, mob.storage, contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,""..(contagem == mob.count and "Congratulations! You finished the task of "..race.."." or "defeated. Total [" .. contagem .. "/" .. mob.count .. "] " .. race .. ".").."") end end end end end return true end]]></event> </mod> pra agora!
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.