Ir para conteúdo

Retirar umas duvidas


godjean

Posts Recomendados

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.

Link para o comentário
Compartilhar em outros sites

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 :]

Link para o comentário
Compartilhar em outros sites

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

Link para o comentário
Compartilhar em outros sites

--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 por Slicer
Link para o comentário
Compartilhar em outros sites

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

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...

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...