Ir para conteúdo
  • 0

[DUVIDA] Simples Task Bugada


Masterzikka

Pergunta

Bom dia galerinha do Xt, blz? Passei pra pedir essa ajuda , estou usando o simples task do Vodkart, nn é nada de ruim no Script afinal o Vodkart é muito bom nisso, mas o meu problema é que eu quero fazer no meu Nto que estou editando pra postar aki no Xt um sistema de task, pra ser parecido com a guerra ninja, seria matar as 10 bijuus, o madara e o obito, porem quando eu modifico os nomes dos monstros, o NPC, Anbu Mission nn aceita ele fica pedindo pra digitar o nome do monstro correto mas esta de acordo ocm oq eu coloquei no Script... É isso galera obrigado ate dps...

 

 

mods/ simples_task.xml

 

 

<?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 = {
["Mega Hachibi"] = {monster_race={"Mega Hachibi"}, storage_start = 200201, storage = 91001,count = 1,exp = 100000, money = 2000000},
["Mega Juubi"] = {monster_race={"Mega Juubi"}, storage_start = 200210, storage = 91010,count= 1,exp = 100000, money = 2000000},
["Mega Kokuo"] = {monster_race={"Mega Kokuo"}, storage_start = 200211, storage = 91011,count= 1,exp = 100000, money = 2000000},
["Mega Matatabi"] = {monster_race={"Mega Matatabi"}, storage_start = 200212, storage = 91012,count= 1,exp = 100000, money = 2000000},
["Mega Saiken"] = {monster_race={"Mega Saiken"}, storage_start = 200213, storage = 91013,count= 1,exp = 100000, money = 2000000},
["Mega Sambi"] = {monster_race={"Mega Sambi"}, storage_start = 200214, storage = 91014,count= 1,exp = 100000, money = 2000000},
["Mega Kyuubi"] = {monster_race={"Mega Kyuubi"}, storage_start = 200215, storage = 91015,count = 1,exp = 100000, money = 2000000},
["Mega Shichibi"] = {monster_race={"Mega Shichibi"}, storage_start = 200216, storage = 91016,count = 1,exp = 100000, money = 2000000},
["Mega shukaku"] = {monster_race={"Mega shukaku"}, storage_start = 200217, storage = 91017,count = 1,exp = 100000, money = 2000000},
["Mega Son Goku"] = {monster_race={"Mega Son Goku"}, storage_start = 200218, storage = 91018,count = 1,exp = 100000, money = 2000000},
["Mega Madara"] = {monster_race={"Mega Madara"}, storage_start = 200219, storage = 91019,count = 2,exp = 100000, money = 4000000},
["Zetsu"] = {monster_race={"Zetsu"}, storage_start = 200220, storage = 91020,count = 300,exp = 100000, money = 2500000},
["Orochimaru"] = {monster_race={"Orochimaru"}, storage_start = 200221, storage = 91021,count = 250,exp = 100000, money = 3000000},
}
configbosses_task = {
{race = "orochimaru",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5},
{race = "tobi",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5},
{race = "sasuke",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5}
}
function isSummon(uid)
return uid ~= getCreatureMaster(uid) or false
end
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,100000},
money = {true,200000},
items ={false,{{2124,2},{2173,1}}},
premium ={true,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) and not isSummon(target) 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>

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

coloca todos os monstro com letra minuscula, exemplo:

 

 

["mega hachibi"] = {monster_race={"mega hachibi"}, storage_start = 200201, storage = 91001,count = 1,exp = 100000, money = 2000000},
Link para o comentário
Compartilhar em outros sites

  • 0

não achei erro ai já verificou se nome do bicho é mesmo do arquivo.xml

exemplo

data\monster\Dragons\Dragon Lord.xml

nome é Dragon Lord

dentro do arquivo ta

<?xml version="1.0" encoding="UTF-8"?>
<monster name="Dragon Lord" nameDescription="a dragon lord" race="blood" experience="2100" speed="240" manacost="0">
	<health now="1900" max="1900"/>
	<look type="39" corpse="5984"/>
	<targetchange interval="5000" chance="8"/>
	<strategy attack="100" defense="0"/>
	<flags>

nesse caso estaria certo

verifica se não tem uma letra maiúsculas q no nome do arquivo.xml dos monster não tem

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...