Ir para conteúdo
  • 0

Bau que adiçiona 1 item para cada vocaçao!


heylike

Pergunta

opa!

 

Bom, queria pedi 1 bau que ganhasse 1 item diferente para cada classe!

EXPLICAÇAO:

 

Os druid quando abrir vai ganhar, 15 sudden death rune!

Os sorcerer quando abrir vai ganhar, 15 sudden death rune!

Os paladin quando abrir, vai ganhar, 15 hunting spear!

Os knight quando abrir, vai ganahr 1 ice rapier!

 

E quero também, que depois de aberto o bau, o player é teleportado para o temple!

 

Eu uso um script de um bau " PARECIDO ",

Mais ele dropa 1 item para todas a vocs!

Vo postar aqui pra voçês usarem como base :D

 


local pos = {x = 1054, y = 961, z = 7}	  -- onde o player sera teleportado!

function onUse(cid, item, frompos, item2, topos)
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, 2268, 15)				-- ID do item no caso 2268 é a sd e a quantidade 15
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
return true
end

 

è +/- isso ai que eu quero!

Mais esse bau dropa apenas 1 item * no caso 15 sd *

 

E eu quero que drope 1 item diferente PARA CADA VOCAÇAO!

 

Druid/sorcere >> 15 SUDDEN DEATH RUNE!

Paladin >> 15 HUNTING SPEAR!

Knight >> 1 ICE RAPIER!

 

(isso tudo no mesmo bau!)

 

è isso ae!

espero que consigam!

qualquer coisa, que vc nao entenderam e tals, * SÓ DEIXAR NOS COMENTARIOS O PORQUE *

Editado por heylike
Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Vou postar um script meu, que é bem parecido com o seu. Eu fiz as alterações para ficar do jeito que você quer.

 

Na pasta data/actions/scripts, crie um arquivo .lua e nomeie como: vocationchest.lua

 

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

 

local pos = {x = 1054, y = 961, z = 7}

 

-- SORCERER

if item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then

queststatus = getPlayerStorageValue(cid,STORAGEDASUAQUEST)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")

doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)

doTeleportThing(cid, pos)

doSendMagicEffect(getThingPos(cid), 29)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

 

 

 

-- DRUID

elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then

queststatus = getPlayerStorageValue(cid,STORAGEDASUAQUEST)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")

doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)

setPlayerStorageValue(cid,STORAGEDASUAQUEST,1)

doTeleportThing(cid, pos)

doSendMagicEffect(getThingPos(cid), 29)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

 

-- PALADIN

elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then

queststatus = getPlayerStorageValue(cid,STORAGEDASUAQUEST)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")

doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)

setPlayerStorageValue(cid,STORAGEDASUAQUEST,1)

doTeleportThing(cid, pos)

doSendMagicEffect(getThingPos(cid), 29)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

 

-- KNIGHT

elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then

queststatus = getPlayerStorageValue(cid,STORAGEDASUAQUEST)

if queststatus == -1 then

doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")

doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)

setPlayerStorageValue(cid,STORAGEDASUAQUEST,1)

doTeleportThing(cid, pos)

doSendMagicEffect(getThingPos(cid), 29)

else

doPlayerSendTextMessage(cid,22,"It is empty.")

end

 

end

return 1

end

 

No caso, é só você substituir o que está em letra maiúscula. No actions.xml:

 

<action uniqueid="UNIQUEIDDOBAU" script="vocationchest.lua" />

 

Depois é só atribuir o uniqueid que você escolheu ao baú desejado, e voila.

Editado por Grante
Link para o comentário
Compartilhar em outros sites

  • 0

Pow!

Fico do jeito que eu quero!

Mais... se nao for pedir muito sabe.

Tem como fazer para o player pode pegar quantas vezes ele quiser?

E se possivel, o player ganahr um EXP EXTRA! quando abrir o bau

EXPLICAÇAO:

Eu abro o bau, ganho 15 sd, e mais 1k de exp extra, e sou teleportado pro temple!

e depois se eu quiser, vo poder abrir o bau e ganhar 15 sd, 1k de exp extra, tudo dnv!

E QUANTAS VEZES EU QUISER!

 

Deu pra enteder +/-?

Ja dei 1 REP+

Vo dar + 2REP

Pra quem me ajudar ai!

^^

 

@TOPIC

 

VOU DAR OS 2 REP+ HOJE MESMO, ASSIM QUE ALGUEM SANAR MEU PEDIDO AI ^^

Editado por heylike
Link para o comentário
Compartilhar em outros sites

  • 0

Segue abaixo um script mais limpo, e mais fácil de ser editado, la vai: (lembrando se for útil não custa nada reputar)

 

function onUse(cid, item, frompos, item2, topos)
  local premio = {
  [1] = {item = 2268, cont = 15}, -- Sorcerer
  [2] = {item = 2268, cont = 15}, -- Druid
  [3] = {item = xxxx, cont = 15}, -- Paladin
  [4] = {item = xxxx, cont = 1} -- Knight
  }
  local config = {
  storage = 9999,
  effect = 29,
  msgQuest = "Parabéns você completou a quest!",
  msgError = "Esta vazio!"
  }
------------------------------------ Só mexa se souber ----------------------
  local player = premio[getPlayerVocation(cid)]

  if getPlayerStorageValue(cid, config.storage) ~= 1 then
  doPlayerAddItem(cid, player.item, player.cont)
  doPlayerSendTextMessage(cid, 22, config.msgQuest)
  doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
  doSendMagicEffect(getThingPos(cid), config.effect)
  setPlayerStorageValue(cid, config.storage, 1)
  else
  doPlayerSendTextMessage(cid, 22, config.msgError)
  end

return true
end

 

Explicações:

 

[Voc] = {item = id do item, cont = quantidade}

[1] = {item = 2268, cont = 15}, -- Sorcerer

 

Agora a parte da configuração do script \/

 local config = {
  storage = 9999,
  effect = 29,
  msgQuest = "Parabéns você completou a quest!",
  msgError = "Esta vazio!"
  }

 

storage = use uma livre em seu servidor (isso fara com que cada jogador pegue o item uma unica vez)

effect = o nome já diz é o efeito que aparecera.

 

e isso nem vou explicar \/

 

msgQuest = "Parabéns você completou a quest!",

msgError = "Esta vazio!"

 

Estou meio ausente do fórum qualquer duvida mande mensagem privada ate mais!

Link para o comentário
Compartilhar em outros sites

  • 0

Se você está usando do usuário acima:

 

function onUse(cid, item, frompos, item2, topos)
  local premio = {
	  [1] = {item = 2268, cont = 15}, -- Sorcerer
	  [2] = {item = 2268, cont = 15}, -- Druid
	  [3] = {item = xxxx, cont = 15}, -- Paladin
	  [4] = {item = xxxx, cont = 1} -- Knight
  }
  local config = {
	  effect = 29,
	  msgQuest = "Parabéns você completou a quest!",
	  msgError = "Esta vazio!"
  }
------------------------------------ Só mexa se souber ----------------------
  local player = premio[getPlayerVocation(cid)]

	  doPlayerAddItem(cid, player.item, player.cont)
	  doPlayerAddExp(cid,1000)
	  doPlayerSendTextMessage(cid, 22, config.msgQuest)
	  doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
         doSendMagicEffect(getThingPos(cid), config.effect)
  end

return true
end

 

Se você está usando o meu código:

 

 

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

local pos = {x = 1054, y = 961, z = 7}
local exp = 1000

-- SORCERER
if item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end

-- DRUID
elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
-- PALADIN
elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
-- KNIGHT
elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
else
doPlayerSendTextMessage(cid,22,"It is empty.")
end
end
return 1
end

Editado por Grante
Link para o comentário
Compartilhar em outros sites

  • 0

Vo testa aqui os dois script, aquele que ficar melhor eu do os 2 rep+!

 

 

@TOPIC

 

Mano, ainda nao fico do jeito que eu quero!

Só falta 1 simples coisa!

 

O PLAYER PODE ABRIR O BAU VEZES ELE QUISER!

 

Tem como alguem fazer isso? :x

Editado por heylike
Link para o comentário
Compartilhar em outros sites

  • 0

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

local pos = {x = 1054, y = 961, z = 7}
local exp = 1000

-- SORCERER
if item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 5 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)
-- DRUID
elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 6 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)

-- PALADIN
elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 7 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)

-- KNIGHT
elseif item.uid == UNIQUEIDDOBAU and getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 8 then
doPlayerSendTextMessage(cid,22,"Parabéns você completou a quest!.")
doPlayerAddItem(cid, IDDOITEM, QUANTIDADE)
doPlayerAddExp(cid, exp)
doTeleportThing(cid, pos)
doSendMagicEffect(getThingPos(cid), 29)

end
return 1
end

 

Tenta agora.

Link para o comentário
Compartilhar em outros sites

  • 0

Pronto agora pode usar quantas vezes quiser (usando o meu script você pode por varias vocações facilmente só seguir o modo que eu expliquei)

 

function onUse(cid, item, frompos, item2, topos)
  local premio = {
	  [1] = {item = 2268, cont = 15}, -- Sorcerer
	  [2] = {item = 2268, cont = 15}, -- Druid
	  [3] = {item = xxxx, cont = 15}, -- Paladin
	  [4] = {item = xxxx, cont = 1} -- Knight
  }
  local config = {
	  effect = 29,
	  msgQuest = "Parabéns você completou a quest!",
           exp = 10000 -- configure a experience a ser ganhada!
  }
------------------------------------ Só mexa se souber ----------------------
  local player = premio[getPlayerVocation(cid)]

	  doPlayerAddItem(cid, player.item, player.cont)
	  doPlayerAddExp(cid, config.exp)
	  doPlayerSendTextMessage(cid, 22, config.msgQuest)
	  doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)))
	  doSendMagicEffect(getThingPos(cid), config.effect)

return true
end

Editado por TopMaster
Link para o comentário
Compartilhar em outros sites

  • 0

Como pode ver, ja dei os 2 REP+ prometidos!

Bom, Se eu nao estiver abusando!

Tem como voçê fazer sair uma mensagem no default?

EXPLICAÇAO:

O player abri o bau, é teleportado, ganha os itens certinho,

mais eu quero que saia uma fala no default como se fosse o player que tivesse falado

 

19:19 Down Eghit [29]: 1k Of Exp!!

 

Entendeu +/-?

Se nao for possivel, tudo bem!

Mais se conseguir, eu darei outro REP+!

 

@TOPIC

 

Grante Seu script também deu certo!

 

Mais usei o do nosso amigo "TopMaster", Pois esta mais organizado, e facil de entender!

PRA EU QUE SOU INICIANTE ^^

Editado por heylike
Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal, desculpe usar esse mesmo tópico, sou péssimo em script, gostaria do mesmo script acima, porem, com algumas modificações. Tais ela seria a seguinte.

 

Mage ganharia tal items.

xxxx - Seria o ID do primeiro Item.

yyyy - Seria o ID do segundo item.

zzzz - Seria o ID do terceiro item.

 

 

Knight:

 

xxxx - Seria o ID do primeiro Item.

yyyy - Seria o ID do segundo item.

zzzz - Seria o ID do terceiro item.

 

Paladin:

 

xxxx - Seria o ID do primeiro Item.

yyyy - Seria o ID do segundo item.

zzzz - Seria o ID do terceiro item.

 

OBS: A quest deveria funcionar sempre (conseguir fazer varias vezes e ser teleportado para o Templo. Posion 160 54 7)

e também seria enviada uma mensagem assim, O jogador XXX completou a quest Arcaness e ganhou [se for paladin os itens de paladin, se for knight os itens de knight, assim sucessivamente).

 

Obrigado desde já.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá pessoal, desculpe usar esse mesmo tópico, sou péssimo em script, gostaria do mesmo script acima, porem, com algumas modificações. Tais ela seria a seguinte.

 

Mage ganharia tal items.

xxxx - Seria o ID do primeiro Item.

yyyy - Seria o ID do segundo item.

zzzz - Seria o ID do terceiro item.

 

 

Knight:

 

xxxx - Seria o ID do primeiro Item.

yyyy - Seria o ID do segundo item.

zzzz - Seria o ID do terceiro item.

 

Paladin:

 

xxxx - Seria o ID do primeiro Item.

yyyy - Seria o ID do segundo item.

zzzz - Seria o ID do terceiro item.

 

OBS: A quest deveria funcionar sempre (conseguir fazer varias vezes e ser teleportado para o Templo. Posion 160 54 7)

e também seria enviada uma mensagem assim, O jogador XXX completou a quest Arcaness e ganhou [se for paladin os itens de paladin, se for knight os itens de knight, assim sucessivamente).

 

Obrigado desde já.

 

Duplica essas linhas [4] = {item = xxxx, cont = 1} -- Knight

 

o [4] é o id da vocation, ai voce vai duplicando e mudando o id do item e a quantidade :)

Link para o comentário
Compartilhar em outros sites

  • 0

function onUse(cid, item)


local BUCETA = {
[1] = {{2160, 50},{2510, 20}},
[2] = {{2160, 50},{2510, 20}},
[3] = {{2160, 50},{2510, 20}},
[4] = {{2160, 50},{2510, 20}},
}

for i, v in pairs(BUCETA[getPlayerVocation(cid)]) do
doPlayerAddItem(cid, v[1], v[2])
end
return true
end

 

Só mudar os items para o seu gosto.

Editado por Skymagnum
Link para o comentário
Compartilhar em outros sites

  • 0

function onUse(cid, item)


local BUCETA = {
[1] = {{2160, 50},{2510, 20}},
[2] = {{2160, 50},{2510, 20}},
[3] = {{2160, 50},{2510, 20}},
[4] = {{2160, 50},{2510, 20}},
}

for i, v in pairs(BUCETA[getPlayerVocation(cid)]) do
doPlayerAddItem(cid, v[1], v[2])
end
return true
end

 

Só mudar os items para o seu gosto.

Cara, a duvida ja foi resolvida

á proposito, belo nome pra variavel hein :)

Link para o comentário
Compartilhar em outros sites

  • 0

Pow, Eu fiz umas modificaçoes no script que o nosso amigo "TopMaster", Nos passou!

Vo deixar aqui, se alguem gostar neh hehe, Nao mudo muita coisa, mais o local pra onde o player será teleportado,

Podera ser mudado facilmente

 

 


function onUse(cid, item, frompos, item2, topos)
  local premio = {
			  [1] = {item = 2268, cont = 15}, -- Sorcerer
			  [2] = {item = 2268, cont = 15}, -- Druid
			  [3] = {item = 7368, cont = 15}, -- Paladin
			  [4] = {item = 2396, cont = 1} -- Knight
  }
  local config = {
			  effect = 29,
			  msgQuest = "Parabéns você completou a quest!",
	    exp = 1000 -- configure a experience a ser ganhada!
  }
------------------------------------ Só mexa se souber -----------------------------
 local player = premio[getPlayerVocation(cid)]
 local pos = {x = 1054, y = 961, z = 7}

			  doPlayerAddItem(cid, player.item, player.cont)
			  doPlayerAddExp(cid, config.exp)
			  doPlayerSendTextMessage(cid, 22, config.msgQuest)
			  doTeleportThing(cid, pos)
			  doSendMagicEffect(getThingPos(cid), config.effect)

return true
end

 

Valew!

MINHA DUVIDA FOI SANADA!

 

E a proposito, se alguem quiser ganhar 2 REP+, é só responder minha pergunta por PM!

 


""" eu quero que saia uma fala no default como se fosse o player que tivesse falado

19:19 Down Eghit [29]: 1k Of Exp!! """"

 

E a respeito do nosso amigo,

Skymagnum Achei muito esnobe da sua parte ter usado "BUCETA", como variavel REP-

 

Duvida sanada!!

Link para o comentário
Compartilhar em outros sites

  • 0

/\ oia o outro pensado q eh moderador kk

 

coloca isso \/ ae depois do doPlayerAddExp...

doCreatureSay(cid, config.exp.."k of exp!!", 1)

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

Nossa, como eu me importasse com reputação, e alias você nem pode dar rep-, e a variável é minha então se eu quiser colocar qualquer merda de nome eu coloco, para falar no default.

 

local BUCETA_CABELUDA = "I win 1k of exp."

doCreatureSay(cid, BUCETA_CABELUDA)

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...