Ir para conteúdo
  • Cadastre-se

Posts Recomendados

IAE' - Bom, essa quest funciona assim: Você abre o baú, e você ganha uns dos itens aletoriamente.

Criador = thalia

Postado por = thalia

Créditos = thalia

Meu nick = thalia

Sem mais delongas, o script:

-->Crie um arquivo em data/actions/scripts com o nome de quest_random.lua e cole este código dentro:


-- Script by: thalia.


local randomizar = {

[1] = {name="demon armor", id = 2494, qnt = 1},

[2] = {name="demon legs", id = 2495, qnt = 1},

[3] = {name="demon helmet", id = 2493, qnt = 2},

[4] = {name="infernal bolt", id = 6529, qnt = 100},

}


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


local config = {

level = 100, -- Level minimo para fazer a quest 

storage = 14971, -- Não Altere Isso

efeito = 28, -- Efeito que fara qndo a quest for feita

}


 if getPlayerLevel(cid) <= config.level then

  return doPlayerSendCancel(cid, "Você não tem level para fazer esta quest.")

 end

 if getPlayerStorageValue(cid, config.storage) == 1 then

  return doPlayerSendCancel(cid, "Você já fez essa quest.")

 end 

  pos = getThingPos(cid)

  a = randomizar[math.random(1,#randomizar)]

  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou "..a.name..".")

  doSendMagicEffect(pos, config.efeito)

  setPlayerStorageValue(cid, config.storage, 1)

  if isItemStackable(a.id) then

  doPlayerAddItem(cid, a.id,a.qnt)

  else

  for i = 1, a.qnt do

  doPlayerAddItem(cid, a.id, 1)

  end

  end

return TRUE

end


-->Agora em data/actions/actions.xml add esta tag:
<action actionid="4500" event="script" value="quest_random.lua"/>

Acabou? Não :P

No seu mapa editor, clique com o botão direito do mouse sobre ele e selecione Properties, como na imagem:

i21331_imagem.gif

Em Action ID coloque 4500, em Unique ID deixe 0 mesmo, como mostra a imagem:

i21329_1.gif

Explicando a editar

local randomizar = {

[1] = {name="demon armor", id = 2494, qnt = 1},

[2] = {name="demon legs", id = 2495, qnt = 1},

[3] = {name="demon helmet", id = 2493, qnt = 1},

[4] = {name="infernal bolt", id = 6529, qnt = 100},

}

Para add mais itens:

[5] = {name=NOME DO ITEM", id = ID DO ITEM, qnt = QUANTIDADE},

[6] = {name=NOME DO ITEM", id = ID DO ITEM, qnt = QUANTIDADE},

[7] = {name=NOME DO ITEM", id = ID DO ITEM, qnt = QUANTIDADE},

Agora sim terminou :rock:

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

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites

-- Script by: thalia.


local randomizar = {

[1] = {name="demon armor", id = 2494, qnt = 1},

[2] = {name="demon legs", id = 2495, qnt = 1},

[3] = {name="demon helmet", id = 2493, qnt = 1},

[4] = {name="infernal bolt", id = 6529, qnt = 100},

}


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


local config = {

level = 100, -- Level minimo para fazer a quest 

storage = 14571, -- Não Altere Isso

efeito = 28, -- Efeito que fara qndo a quest for feita

}


 if getPlayerLevel(cid) <= config.level then

  return doPlayerSendCancel(cid, "Você não tem level para fazer esta quest.")

 end

 if getPlayerStorageValue(cid, config.storage) == 1 then

  return doPlayerSendCancel(cid, "Você já fez essa quest.")

 end 

  pos = getThingPos(cid)

  a = randomizar[math.random(1,#randomizar)]

  doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou "..a.name..".")

  doSendMagicEffect(pos, config.efeito)

  setPlayerStorageValue(cid, config.storage, 1)

  if isItemStackable(a.id) then

  doPlayerAddItem(cid, a.id,a.qnt)

  else

  for i = 1, a.qnt do

  doPlayerAddItem(cid, a.id, 1)

  end

  end

return TRUE

end

Se tu não te importa eu editei porque a função doPlayerAddItem não adiciona itens não agrupáveis mais de uma vez. Não testei, testa ai e se quiser substitui.

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

Verdade '-', eu nem sabia disso (:

valeeu por arrumar :rolleyes:

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites

Eu não entendi aqui:

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou "..a.name..".")

porque que é a.name? não seria randomizar.name?

explica please? não entendi esse 'a'

AHSUAHHASU

Muito criativo mano :}

Rep+

Link para o post
Compartilhar em outros sites

a = randomizar[math.random(1,#randomizar)]

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você ganhou "..a.name..".")

"a" é a variavel da tabela:

[1] = {name="demon armor", id = 2494, qnt = 1},

Então se no math.random e item [1] for escolido , o nome vai ser "demon armor".

Tendeu? :LOL:

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites

XD' tamo ae :rock:

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites
  • Administrador

Faz muito tempo que eu não mexo com scripts e eu ando muito enferrujado ultimamente, tem algumas funções ai que eu não entendi olha como eu fiz esse script:

function onUse(cid, item, fromPosition, itemEx, toPosition)

local random = {
[1] = {itemid = 2494, quantidade = 1},
[2] = {itemid = 2495, quantidade = 1},
[3] = {itemid = 2493, quantidade = 1},
[4] = {itemid = 6529, quantidade = 100},
}

local level = 100 -- Level necessário para fazer a quest.
local storage = 14971 -- Storage pode ser qualquer numero, desde que ele não exista em outro script.
local efect = 28 -- Efito após ganhar o item.

if getPlayerLevel(cid) <= config.level then
return doPlayerSendCancel(cid, "You do not have level for do this quest.")
end

if getPlayerStorageValue(cid, storage) == 1 then
gain = random[math.random(1,#random)]
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found a "..getItemNameById(gain.itemid)..".")
doPlayerAddItem(cid, gain.itemid, gain.quantidade)
doPlayerSetStorageValue(cid, storage, 1)
doSendMagicEffect(getPlayerPosition(cid), efect)
else
doPlayerSendCancel(cid, "Sorry, it is empty.")
end
return TRUE
end[/code]

Não testei, mas acho que funciona... ;D

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites

funcionar até vai , mais como disse o demonbholder o doPlayerAddItem não vai add mais de 1 item que não seja agrupavel , exemplo

[3] = {itemid = 2493, quantidade = 2},

vamos supor que 2493 seja uma plate armor,

o player não ira ganhar 2 e sim uma só.

Por isso vai precisar usar for para os itens ser add com a quantidade colocada no script

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites
  • Administrador

Mass isso é muito sem lógica, o servidor fica sem RPG, imagina, ganhar duas armors, duas legs, dois shields... em uma só quest?! LOL

Bom, devido a isso que a tag DoPlayerAddItem não funciona com itens não agrupáveis... ;P

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites

Nunca se sabe o gosto dos players. ^^

Mais tá bom, o importante é que tenha o script e já era HAHHA'

2z8t5ef.jpg

p7gkt.jpg

"Quem ri por último é retardado."

"Quem cedo madruga, fica com sono o dia todo."

"Família que reza unida, é religiosa pra caralho."

Link para o post
Compartilhar em outros sites

Tem dois erros no script do Matheus.

if getPlayerLevel(cid) <= config.level then

        return doPlayerSendCancel(cid, "You do not have level for do this quest.")

end


if getPlayerStorageValue(cid, storage) == 1 then
Onde o certo seria:
if getPlayerLevel(cid) < config.level then

        return doPlayerSendCancel(cid, "You do not have level for do this quest.")

end


if getPlayerStorageValue(cid, storage) == -1 then

Também seria melhor para prevenir bugs usar uma variável local quando possível. Nesse caso, era. :wow:

Até.

Editado por Demonbholder (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 3 years later...

como funcionaria tipo entre 3 ids 2156,2158,2154 neles vim aleatorio entre 'SI' Exp: coloco 3 de quantidade e a script escolhe um dos id aleatorio pra vim os 3 item do msm id.. quero que escolha os 3 id e vim aleatorio neles exemplo 2 de 2156 e 1 2158. inves de 3 de 2156 entendeu?

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo