Ir para conteúdo
  • Cadastre-se

(Resolvido)Passar no piso so se tiver x x x Storagens, Poder colocar +de 1 Storage


Ir para solução Resolvido por Wakon,

Posts Recomendados

O titulo diz Tudo.
Obrigado dez de ja, quem poder ajudar.

Editado por CarlosHenrique7457 (veja o histórico de edições)

Ajudei? da um Rep+, não custa nada. ;D:P

 

Servidor de PokeTibia ja online.

Pagina: https://www.facebook.com/PokemonxStore?ref=bookmarks

Grupo: https://www.facebook.com/groups/257989224406246/

Site: http://pokexstore.wix.com/pokexstore

Link para o post
Compartilhar em outros sites

local Storage = 19999

local quantia = 10
function onStepIn(cid, item,pos,fromPosition)
if item.actionid == 8866 then
if getPlayerStorageValue(cid,Storage) >= quantia then ----- Storage igual a 10 ou Maior que 10
doPlayerSendTextMessage(cid, 19, "Tome Cuidado Nessa nova Aventura!")
else
doPlayerSendTextMessage(cid, 19, "Voce Nao Tem "..quantia.." Storages")
doTeleportThing(cid, fromPosition, false)
return true
end
end

end

 

Xml Moveevents:

<movevent type="StepIn" actionid="8866" event="script" value="nomedoarquivo.lua"/>

Editado por Nextbr (veja o histórico de edições)

 

 

Link para o post
Compartilhar em outros sites

Tipo pra que esse local quantia = 10?
E aonde eu posso colocar outra Storage ai?
Quero tipo assim
Passar na porta se estiver feito quest tau Quest tau e ter tal Storage, tendeu?

Ajudei? da um Rep+, não custa nada. ;D:P

 

Servidor de PokeTibia ja online.

Pagina: https://www.facebook.com/PokemonxStore?ref=bookmarks

Grupo: https://www.facebook.com/groups/257989224406246/

Site: http://pokexstore.wix.com/pokexstore

Link para o post
Compartilhar em outros sites

Tipo pra que esse local quantia = 10?

E aonde eu posso colocar outra Storage ai?

Quero tipo assim

Passar na porta se estiver feito quest tau Quest tau e ter tal Storage, tendeu?

local storage = 19999 = Valor da Storage da quest que voce Falou

local quantia = 10 = Quantidade de Storage Para Poder Passar = No Caso voce coloque 1 

 

- Explica direito Meu Jovem Pelo que eu Itendi Foi isso

- Vou Fazer a mesma coisa que fiz acima so que ao dar use na Porta:

 

local Storage = 19999 ---- ID da Que

local quantia = 1

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid,Storage) >= quantia then ----- Storage igual a 10 ou Maior que 10

doPlayerSendTextMessage(cid, 19, "Tome Cuidado Nessa nova Aventura!")

else

doPlayerSendTextMessage(cid, 19, "Voce Nao Tem "..quantia.." Storages")

return true

end

end

 

<action uniqueid="12333" event="script" value="Porta.lua"/>

 

- Adiciona Pelo Map Editor Unique id "12333" na Porta!

Editado por Nextbr (veja o histórico de edições)

 

 

Link para o post
Compartilhar em outros sites
  • Solução

Tentei fazer por array mais tava complicado, ai fiz assim:

Em "Data/movements/scripts" copie e cole 1 arquivo .lua e renomeie para tilestor.lua, apague e coloque isso:

local config = {
storage1 = 25091,
storage2 = 25092,
storage3 = 25093,
}
function onStepIn(cid, item, position, fromPosition)
if getPlayerStorageValue(cid, config.storage1) <= 0 then
doPlayerSendCancel(cid, "You have not completed the first mission.")
doTeleportThing(cid, fromPosition)
doSendMagicEffect(position, 12)
elseif getPlayerStorageValue(cid, config.storage2) <= 0 then
doPlayerSendCancel(cid, "You have not completed the second mission.")
doTeleportThing(cid, fromPosition)
doSendMagicEffect(position, 12)
elseif getPlayerStorageValue(cid, config.storage3) <= 0 then
doPlayerSendCancel(cid, "You have not completed the third mission.")
doTeleportThing(cid, fromPosition)
doSendMagicEffect(position, 12) -- Fim da ultima missão.
else
doPlayerSendCancel(cid, "You accessed the prohibited area.")
doSendMagicEffect(position, 13)
end
return true
end

Em "Data/movements" abra o movements.xml e adicione essa tag:

<movevent type="StepIn" actionid="1242" event="script" value="tilestor.lua"/>

Ai você coloca a Action ID nos locais desejados!

 

Então ele só pode passar se a storage 1, 2 e 3 for maior que 1, no caso tem que completar 3 missões.

 

Pra você adicionar mais é o seguinte:

Coloque a storage no config,  só copiar e mudar o nome para storage4 ou storage5 e assim vai.

Para adicionar a função você coloca depois do -- Fim da ultima missão. e antes do else.

elseif getPlayerStorageValue(cid, config.storage3) <= 0 then
doPlayerSendCancel(cid, "You have not completed the
third mission.")
doTeleportThing(cid, fromPosition)
doSendMagicEffect(position, 12)

 

Ai é só mudar o nome que você colocou lá em cima em storage e mudar o texto para o nome da missão.

 

Espero que ajude, vou tentar facilitar mais pra você e se conseguir edito aqui.

Editado por Wakon (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

local storage = 19999 = Valor da Storage da quest que voce Falou

local quantia = 10 = Quantidade de Storage Para Poder Passar = No Caso voce coloque 1 

 

- Explica direito Meu Jovem Pelo que eu Itendi Foi isso

- Vou Fazer a mesma coisa que fiz acima so que ao dar use na Porta:

 

local Storage = 19999 ---- ID da Que

local quantia = 1

function onUse(cid, item, frompos, item2, topos)

if getPlayerStorageValue(cid,Storage) >= quantia then ----- Storage igual a 10 ou Maior que 10

doPlayerSendTextMessage(cid, 19, "Tome Cuidado Nessa nova Aventura!")

else

doPlayerSendTextMessage(cid, 19, "Voce Nao Tem "..quantia.." Storages")

return true

end

end

 

<action uniqueid="12333" event="script" value="Porta.lua"/>

 

- Adiciona Pelo Map Editor Unique id "12333" na Porta!

é isso aqui Obrigado. vou testar.

Ajudei? da um Rep+, não custa nada. ;D:P

 

Servidor de PokeTibia ja online.

Pagina: https://www.facebook.com/PokemonxStore?ref=bookmarks

Grupo: https://www.facebook.com/groups/257989224406246/

Site: http://pokexstore.wix.com/pokexstore

Link para o post
Compartilhar em outros sites

Aqui está o código usando uma array. Aproveitei e corrigi um pequeno bug que poderia ser causado caso cid fosse uma criatura diferente de jogador.

local storage = {25091, 25092, 25093}      --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

não respondo pms solicitando suporte em programação/scripting

Link para o post
Compartilhar em outros sites
  • 1 year later...
Em 14/03/2015 ás 16:12, zipter98 disse:

Aqui está o código usando uma array. Aproveitei e corrigi um pequeno bug que poderia ser causado caso cid fosse uma criatura diferente de jogador.

 


local storage = {25091, 25092, 25093}      --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

todos os scripts estão funcionando mas quando o player consegue a storage e passa pelo piso da isso:

 

[3/9/2016 6:1:37] [Error - MoveEvents Interface] 
[3/9/2016 6:1:37] data/movements/scripts/tilestor.lua:onStepIn 
[3/9/2016 6:1:37] Description: 
[3/9/2016 6:1:37] data/movements/scripts/tilestor.lua:7: attempt to compare string with number 
[3/9/2016 6:1:37] stack traceback: 
[3/9/2016 6:1:37] data/movements/scripts/tilestor.lua:7: in function 

[3/9/2016 6:1:38] [Error - MoveEvents Interface] 
[3/9/2016 6:1:38] data/movements/scripts/tilestor.lua:onStepIn 
[3/9/2016 6:1:38] Description: 
[3/9/2016 6:1:38] data/movements/scripts/tilestor.lua:7: attempt to compare string with number 
[3/9/2016 6:1:38] stack traceback: 
[3/9/2016 6:1:38] data/movements/scripts/tilestor.lua:7: in function 

[3/9/2016 6:1:40] [Error - MoveEvents Interface] 
[3/9/2016 6:1:40] data/movements/scripts/tilestor.lua:onStepIn 
[3/9/2016 6:1:40] Description: 
[3/9/2016 6:1:40] data/movements/scripts/tilestor.lua:7: attempt to compare string with number 
[3/9/2016 6:1:40] stack traceback: 
[3/9/2016 6:1:40] data/movements/scripts/tilestor.lua:7: in function

 

mas funciona, como arrumo aguem manja?

 

Link para o post
Compartilhar em outros sites
7 horas atrás, markim1986 disse:

todos os scripts estão funcionando mas quando o player consegue a storage e passa pelo piso da isso:

 


[3/9/2016 6:1:37] [Error - MoveEvents Interface] 
[3/9/2016 6:1:37] data/movements/scripts/tilestor.lua:onStepIn 
[3/9/2016 6:1:37] Description: 
[3/9/2016 6:1:37] data/movements/scripts/tilestor.lua:7: attempt to compare string with number 
[3/9/2016 6:1:37] stack traceback: 
[3/9/2016 6:1:37] data/movements/scripts/tilestor.lua:7: in function 

[3/9/2016 6:1:38] [Error - MoveEvents Interface] 
[3/9/2016 6:1:38] data/movements/scripts/tilestor.lua:onStepIn 
[3/9/2016 6:1:38] Description: 
[3/9/2016 6:1:38] data/movements/scripts/tilestor.lua:7: attempt to compare string with number 
[3/9/2016 6:1:38] stack traceback: 
[3/9/2016 6:1:38] data/movements/scripts/tilestor.lua:7: in function 

[3/9/2016 6:1:40] [Error - MoveEvents Interface] 
[3/9/2016 6:1:40] data/movements/scripts/tilestor.lua:onStepIn 
[3/9/2016 6:1:40] Description: 
[3/9/2016 6:1:40] data/movements/scripts/tilestor.lua:7: attempt to compare string with number 
[3/9/2016 6:1:40] stack traceback: 
[3/9/2016 6:1:40] data/movements/scripts/tilestor.lua:7: in function

 

mas funciona, como arrumo aguem manja?

 

Você está usando uma string ao invés de number na storage! (string = texto)

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites

 

Em 14/03/2015 ás 20:12, zipter98 disse:

Aqui está o código usando uma array. Aproveitei e corrigi um pequeno bug que poderia ser causado caso cid fosse uma criatura diferente de jogador.

 


local storage = {25091, 25092, 25093}      --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

É viável desse jeito também, mas iria dar uma leve bugadinha no return. Pelo que sei, return só funciona com um valor, a não ser q em lua seja diferente. E tmb iria dar mais de um cancel seguido se o player não tiver mais de uma storage, um iria sobrepor o outro e só apareceria que não tem o último storage verificado, por mais q seja algo estético é de se pensar heauehau

De onde eu venho se dizia, que o chorar não é do homem, e o homem o que sente guarda bem no coração...
 

Link para o post
Compartilhar em outros sites
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á

 

Link para o post
Compartilhar em outros sites
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...."  ♪♪

Link para o post
Compartilhar em outros sites
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á

Link para o post
Compartilhar em outros sites
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...."  ♪♪

Link para o post
Compartilhar em outros sites
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!

Link para o post
Compartilhar em outros sites

Faça uma coisa para testar, dentro do jogo com um char ADM, digite /storage NICK DE ALGM Q TEM A STORAGE, 91003

e me fala uq aparece

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
3 minutos atrás, luangop disse:

Faça uma coisa para testar, dentro do jogo com um char ADM, digite /storage NICK DE ALGM Q TEM A STORAGE, 91003

e me fala uq aparece

 

Isso e o player não passa!

15:40 /storage Marcos Fialho, 91003
15:40  [Marcos Fialho - 91003] = -1

 

Editado por markim1986 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Esse Player Marcos Fialho nunca obteu a storage... -1 = nula

 

mas tenta assim:

function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then
        return true
    end
        if getPlayerStorageValue(cid, 91003) < 1 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

Testa com um char que obteve a storage... se der o erro faça o comando /storage... como falei a cima com o nick do char que ja obteve a storage!

Te ajudei? Clique em  Gostei ! 

²²²d¬¬b²²²

 

 

"She's got a smile that it seems to me...."  ♪♪

Link para o post
Compartilhar em outros sites
4 minutos atrás, luangop disse:

Esse Player Marcos Fialho nunca obteu a storage... -1 = nula

 

mas tenta assim:


function onStepIn(cid, item, position, fromPosition)
    if not isPlayer(cid) then
        return true
    end
        if getPlayerStorageValue(cid, 91003) < 1 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

Testa com um char que obteve a storage... se der o erro faça o comando /storage... como falei a cima com o nick do char que ja obteve a storage!

 

Então o char que tem a storage passa mas da erro, atualizei o script e está dando isso:

[1:48:39.673] [Error - MoveEvents Interface]
[1:48:39.673] data/movements/scripts/tilestor.lua:onStepIn
[1:48:39.673] Description:
[1:48:39.673] data/movements/scripts/tilestor.lua:5: attempt to compare string with number
[1:48:39.673] stack traceback:
[1:48:39.673]   data/movements/scripts/tilestor.lua:5: in function <data/movements/scripts/tilestor.lua:1>

Fiz o comando com o GM no Char que tem o Storage, segue:

 

15:49  [Brunos - 91003] = Finished

 

Link para o post
Compartilhar em outros sites

Ok agora entendi, pode pah q vai dar agora:
 

function onStepIn(cid, item, position, fromPosition)
	if not isPlayer(cid) then
		return true
	end
	if not (getPlayerStorageValue(cid, 91003) == "Finished") 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...."  ♪♪

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo