Te aconselho a ler bastante tutorial de logica, pq script e logica pura, funções tem na documentação..
- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Retirar umas duvidas
info
Grupo: Conde
Registrado: 03/01/12
Posts: 884
Reputação: +233
Char no Tibia: Segredo

pode escolher qual vc quer ler aqui
http://www.xtibia.com/forum/forum/572-tutoriais-de-scripting/
ou ver esse
http://www.xtibia.com/forum/topic/182113-tutorial-basico-creaturescripts/
ou
ou
http://www.xtibia.com/forum/topic/213312-como-funcionam-os-scripts/
ou
http://www.xtibia.com/forum/topic/223991-manual-de-referencia-de-lua-51/
ou
POR NIVEL
http://www.xtibia.com/forum/topic/222237-enciclopedia-de-tutoriais-de-scripting/
http://www.xtibia.com/forum/topic/99746-pasta-data-enciclopedia-13-tutoriais-para-entender-ela-toda/
clicando em uma porta
recomendo ler sobre
actions
Editado Abril 17 por notle2012
Ola, hoje vim fazer algo diferente. Sempre venho pedir script e nunca tento fazer um script do 0.
Eu não vim pedir, só vim pedir aonde eu posso aprender e links de tutorias para eu poder fazer.
Eu sei que vou usar um creaturescripts, que vai adicionar um uma storage de tempo, e ao acabar essa storage você é teleportado. E gostaria de saber como fazer esse script funcionar clicando em uma porta.
Se possivel mandar uns tutoriais de creaturescripts.
Boa noite,
Bem vou lhe dizer algumas funções e você estuda elas para criar esse script.
Veja a função onUse que é a base de toda action, você pode adicionar um uniqueid na porta que você quer e usar o script para verificar se a porta possui o uniqueid que você utilizou assim, chamando a função addEvent que é responsável por chamar outra função depois de um determinado tempo, ou seja, você não precisará de creaturescript e muito menos guardar tempo em storage e ler depois para chamar a função do teleport, você pode usar a função addEvent para chamar a função do teleport depois de certo tempo.
Claro que daria para fazer utilizando o creaturescript e o modo que você falou no topico. Usaria um onUse para adicionar o valor ao storage e registraria um creatureevent no player com a função onThink para ler esse storage e na hora certa ele teleportar, mas para evitar a função onThink, recomendo que faça do modo que falei.
E é como o Techrlz falou, leia um pouco de logica, e veja os scripts que já tem no seu servidor, da pra aprender muita coisa por lá, qualquer duvida, estamos aqui para ajudar.
Um grande abraço e boa sorte :]
info
Grupo: Campones
Registrado: 27/06/10
Posts: 61
Reputação: 0
Char no Tibia: Jean Dappg

--configuração--
local enter = {x=938,y=1595,z=15}
local voltar = {x=938,y=1595,z=15}
local pr1 = {
[1] = {"cyclops",{x=157, y=35, z=7}},
[2] = {"Demon",{x=161, y=38, z=7}},
[3] = {"Hydra",{x=155, y=38, z=7}},
[4] = {"Dragon",{x=160, y=39, z=7}}
}
local pr2 = {
[1] = {"cyclops",{x=157, y=35, z=7}},
[2] = {"Demon",{x=161, y=38, z=7}},
[3] = {"Hydra",{x=155, y=38, z=7}},
[4] = {"Dragon",{x=160, y=39, z=7}}
}
local pr3 = {
[1] = {"cyclops",{x=157, y=35, z=7}},
[2] = {"Demon",{x=161, y=38, z=7}},
[3] = {"Hydra",{x=155, y=38, z=7}},
[4] = {"Dragon",{x=160, y=39, z=7}}
}
local pr4 = {
[1] = {"cyclops",{x=157, y=35, z=7}},
[2] = {"Demon",{x=161, y=38, z=7}},
[3] = {"Hydra",{x=155, y=38, z=7}},
[4] = {"Dragon",{x=160, y=39, z=7}}
}
function onUse(cid, item, frompos, item2, topos, uid)
if getPlayerStorageValue(cid,12345) then
if getPlayerStorageValue (cid,54321) then
if getPlayerClanRank(cid) == 1 then
addEvent(function()
if isCreature(cid) then
for i = 1, #pr1 do
doCreateMonster(pr1[i][1], pr1[i][2], pr1[i][3], pr1[i][4])
end
doTeleportThing(cid, enter)
end
end, 1000)
elseif getPlayerClanRank(cid) == 2 then
addEvent(function()
if isCreature(cid) then
for i = 1, #pr1 do
doCreateMonster(pr2[i][1], pr2[i][2], pr2[i][3], pr2[i][4])
end
doTeleportThing(cid, enter)
end
end, 1000)
elseif getPlayerClanRank(cid) == 3 then
addEvent(function()
if isCreature(cid) then
for i = 1, #pr1 do
doCreateMonster(pr3[i][1], pr3[i][2], pr3[i][3], pr3[i][4])
end
doTeleportThing(cid, enter)
end
end, 1000)
elseif getPlayerClanRank(cid) == 4 then
addEvent(function()
if isCreature(cid) then
for i = 1, #pr1 do
doCreateMonster(pr4[i][1], pr4[i][2], pr4[i][3], pr4[i][4])
end
doTeleportThing(cid, enter)
end
end, 1000)
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Desculpe mas vc ainda nao tem a missao ...")
end
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"Desculpe mas vc ainda nao e do clan ...")
end
return true
end
Veja se tem algo de errado ou se poderia melhorar
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

--configuração--
local enter = {x=938,y=1595,z=15}
local voltar = {x=938,y=1595,z=15}
local monsters = {
[1] = {
{"cyclops", {x=157, y=35, z=7}},
{"Demon", {x=161, y=38, z=7}},
{"Hydra", {x=155, y=38, z=7}},
{"Dragon", {x=160, y=39, z=7}},
},
[2] = {
{"cyclops", {x=157, y=35, z=7}},
{"Demon", {x=161, y=38, z=7}},
{"Hydra", {x=155, y=38, z=7}},
{"Dragon", {x=160, y=39, z=7}}
},
[3] = {
{"cyclops", {x=157, y=35, z=7}},
{"Demon", {x=161, y=38, z=7}},
{"Hydra", {x=155, y=38, z=7}},
{"Dragon", {x=160, y=39, z=7}}
},
[4] = {
{"cyclops", {x=157, y=35, z=7}},
{"Demon", {x=161, y=38, z=7}},
{"Hydra", {x=155, y=38, z=7}},
{"Dragon", {x=160, y=39, z=7}}
}
}
local function doSummonMonsters(cid)
if not isCreature(cid) then return end
local t = monsters[getPlayerClanRank(cid)]
if not t then return end
for _, tab in ipairs(t) do
doCreateMonster(tab[1], tab[2], false)
end
doTeleportThing(cid, enter, false)
doSendMagicEffect(enter, 21)
end
function onUse(cid, item, frompos, item2, topos, uid)
if getPlayerStorageValue(cid, 12345) >= 1 then
if getPlayerStorageValue (cid, 54321) >= 1 then
addEvent(doSummonMonsters, 1000, cid)
else
doPlayerSendTextMessage(cid, 20, "Desculpe mas vc ainda nao tem a missao ...")
end
else
doPlayerSendTextMessage(cid, 20, "Desculpe mas vc ainda nao e do clan ...")
end
return true
end
se vai ser sempre os mesmos monstros e posiçoes pra todos os clans da pra reduzir mais ainda o script...
Editado Abril 17 por Slicer
info
Grupo: Campones
Registrado: 27/06/10
Posts: 61
Reputação: 0
Char no Tibia: Jean Dappg

Essa parte
if not isCreature(cid) then return end
Faz oque?
Deu esse erro caso eu deslogue
Eu tinha lido que se deslogar quando estiver com o event da esse bug no consoler
[17/04/2014 19:25:36] [Error - CreatureScript Interface] [17/04/2014 19:25:36] data/creaturescripts/scripts/login.lua:onLogin [17/04/2014 19:25:36] Description: [17/04/2014 19:25:36] (luaGetItemAttribute) Item not found
info
Grupo: Príncipe
Registrado: 19/08/10
Posts: 4k
Reputação: +1.1k
Gênero: Masculino

essa linha serve exatamente pra n da erro quando desloga com addEvent...
esse erro ae eh de outro script... e ta dizendo q eh do onLogin...





info
Grupo: Campones
Registrado: 27/06/10
Posts: 61
Reputação: 0
Char no Tibia: Jean Dappg
Ola, hoje vim fazer algo diferente. Sempre venho pedir script e nunca tento fazer um script do 0.
Eu não vim pedir, só vim pedir aonde eu posso aprender e links de tutorias para eu poder fazer.
Eu sei que vou usar um creaturescripts, que vai adicionar um uma storage de tempo, e ao acabar essa storage você é teleportado. E gostaria de saber como fazer esse script funcionar clicando em uma porta.
Se possivel mandar uns tutoriais de creaturescripts.