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

heylike
em Scripts
  • 1
  • 2

heylike

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/13Posts: 12Char no Tibia: secret

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 *

Grante

Masoq?
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/02/13Posts: 9

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.

grantesign.png

A dor que não pode se sentir, é a dor que está oculta em nossas ações.

heylike

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/13Posts: 12Char no Tibia: secret

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

topmaster

I can help us?
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/01/11Posts: 41Char no Tibia: What?

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!

Servidor que recomendo a todos jogarem Versão 8.60 Full Global Dedicado em Linux, sem lag e sem corrupção visite e confira: site/ip: silenthill.servegame.com

Sou aprendiz de Scripter, se te ajudei não custará nada você me reputar dando REP+

k4k1hw.jpg

Clique na imagem acima e curta nossa pagina no facebook.

Aguardem, em breve!

Melhor empresa para hospedar o seu servidor, ótimo suporte e produtos, não deixe de conferir!!

http://ZZPSGEU.TK

Melhor empresa para hospedar o seu servidor, ótimo suporte e produtos, não deixe de conferir!!

 

 

Grante

Masoq?
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/02/13Posts: 9

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

grantesign.png

A dor que não pode se sentir, é a dor que está oculta em nossas ações.

heylike

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/13Posts: 12Char no Tibia: secret

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

Grante

Masoq?
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 01/02/13Posts: 9

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.

grantesign.png

A dor que não pode se sentir, é a dor que está oculta em nossas ações.

topmaster

I can help us?
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 25/01/11Posts: 41Char no Tibia: What?

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

Servidor que recomendo a todos jogarem Versão 8.60 Full Global Dedicado em Linux, sem lag e sem corrupção visite e confira: site/ip: silenthill.servegame.com

Sou aprendiz de Scripter, se te ajudei não custará nada você me reputar dando REP+

k4k1hw.jpg

Clique na imagem acima e curta nossa pagina no facebook.

Aguardem, em breve!

Melhor empresa para hospedar o seu servidor, ótimo suporte e produtos, não deixe de conferir!!

http://ZZPSGEU.TK

Melhor empresa para hospedar o seu servidor, ótimo suporte e produtos, não deixe de conferir!!

 

 

heylike

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/13Posts: 12Char no Tibia: secret

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

GuuhMaster

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 12/08/11Posts: 101Char no Tibia: Tomurka

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

assinaturasite.png

Gears

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 11/01/13Posts: 576Char no Tibia: Darashia del Shee

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

Estagiário 24/01/2013

pedido para sair : 23/02/2013

Volta como estagiário: 11/04/2013

Pedido para sair: 10/05/2013

Skymagnum

Hamburguer
avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 02/08/12Posts: 1025Char no Tibia: Maurolkit

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.

jeoz.png

Gears

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 11/01/13Posts: 576Char no Tibia: Darashia del Shee

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

Estagiário 24/01/2013

pedido para sair : 23/02/2013

Volta como estagiário: 11/04/2013

Pedido para sair: 10/05/2013

heylike

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 03/02/13Posts: 12Char no Tibia: secret

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

Slicer

Insanity
avatar
Príncipe
Príncipe

INFOS

Grupo: PríncipeRegistrado: 19/08/10Posts: 4014Gênero: Masculino

/\ oia o outro pensado q eh moderador kk

 

coloca isso \/ ae depois do doPlayerAddExp...

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

"Só a beira do abismo que os seres humanos acham forças para mudar."... E isso me da nojo... ¬¬

"Insanity is doing the exact... same fucking thing... over and over again expecting... shit to change... That. Is. Crazy." -Vass/Einstein

 

  • 1
  • 2