Random Item

Newtonnotwen
em Actions e Talkactions

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Ao clicar em um item tem chance de vir aleatoriamente outros.

 

Em actions.xml adicione:

<action itemid="1947" event="script" value="random.lua"/>

Editando:

 

-Vermelho: Item id

-Verde: nome do arquivo

 

Em data/actions/scrips crie um arquivo.lua, nomeio para random e adicione:

items = {

[0] = {id = 7735, count = 1, chance = 2},

[1] = {id = 7735, count = 1, chance = 5},

[2] = {id = 7735, count = 1, chance = 10},

[3] = {id = 7735, count = 1, chance = 15},

[4] = {id = 7735, count = 1, chance = 30},

[5] = {id = 7735, count = 1, chance = 100}

}

function onUse(cid, item, fromPos, itemEx, toPos)

for i = 0, #items do

if (items.chance > math.random(1, 100)) then

doPlayerAddItem(cid, items.id, items.count)

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items.id)..'!', TALKTYPE_MONSTER)

end

end

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER)

end

Editando:

 

-Vermelho: Id do item

 

-Verde: Quantidade

-Laranja: Chance (de 0.1 a 100)

-Roxo: Mensagem quando receber o item

-Marrom: Mensagem quando não receber nada

 

Obs: A chance pode ser 0.1, 0.2... (Apenas UM numero depois do ponto)

 

Se quiser adicionar mais itens na lista faça o seguinte:

items = {

[0] = {id = 7735, count = 1, chance = 2},

[1] = {id = 7735, count = 1, chance = 5},

[2] = {id = 7735, count = 1, chance = 10},

[3] = {id = 7735, count = 1, chance = 15},

[4] = {id = 7735, count = 1, chance = 30},

[4] = {id = 7735, count = 1, chance = 30},

[5] = {id = 7735, count = 1, chance = 100}

}

function onUse(cid, item, fromPos, itemEx, toPos)

for i = 0, #items do

if (items.chance > math.random(1, 100)) then

doPlayerAddItem(cid, items.id, items.count)

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items.id)..'!', TALKTYPE_MONSTER)

end

end

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER)

end

Observe que dupliquei a parte laranja, depois faça:

items = {

[0] = {id = 7735, count = 1, chance = 2},

[1] = {id = 7735, count = 1, chance = 5},

[2] = {id = 7735, count = 1, chance = 10},

[3] = {id = 7735, count = 1, chance = 15},

[4] = {id = 7735, count = 1, chance = 30},

[5] = {id = 7735, count = 1, chance = 30},

[6] = {id = 7735, count = 1, chance = 100}

}

function onUse(cid, item, fromPos, itemEx, toPos)

for i = 0, #items do

if (items.chance > math.random(1, 100)) then

doPlayerAddItem(cid, items.id, items.count)

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items.id)..'!', TALKTYPE_MONSTER)

end

end

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER)

end

-Laranja: Parte adicionada

-Vermelho: Numero alterado

 

Para retirar:

items = {

[0] = {id = 7735, count = 1, chance = 2},

[1] = {id = 7735, count = 1, chance = 5},

[2] = {id = 7735, count = 1, chance = 10},

[3] = {id = 7735, count = 1, chance = 15},

RETIRADO O NUMERO 4

[5] = {id = 7735, count = 1, chance = 100}

}

function onUse(cid, item, fromPos, itemEx, toPos)

for i = 0, #items do

if (items.chance > math.random(1, 100)) then

doPlayerAddItem(cid, items.id, items.count)

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items.id)..'!', TALKTYPE_MONSTER)

end

end

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER)

end

Observe que retirei uma parte (em laranja), depois faça:

items = {

[0] = {id = 7735, count = 1, chance = 2},

[1] = {id = 7735, count = 1, chance = 5},

[2] = {id = 7735, count = 1, chance = 10},

[3] = {id = 7735, count = 1, chance = 15},

[4] = {id = 7735, count = 1, chance = 100}

}

function onUse(cid, item, fromPos, itemEx, toPos)

for i = 0, #items do

if (items.chance > math.random(1, 100)) then

doPlayerAddItem(cid, items.id, items.count)

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items.id)..'!', TALKTYPE_MONSTER)

end

end

doRemoveItem(item.uid, 1)

return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER)

end

-Vermelho: Modifique o numero para o seu antecessor (no caso 5 para 4)

 

Imagem:

createitem.png

 

 

----------------------------------------Editado

 

Obs: Créditos foram editados por uma analise do Vodkart.

 

Créditos:

 

Everllord - Script

Newtonnotwen - Edição e tutorial

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

esse script é seu?

bossisg.png

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

A estrutura sim, as tags parcialmente.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

então da uma olhada aqui:

 

http://www.xtibia.co...sente-de-natal/

 

e compara com o seu

 

 

items = { 
[0] = {id = 7735, count = 1, chance = 2}, 
[1] = {id = 7735, count = 1, chance = 5}, 
[2] = {id = 7735, count = 1, chance = 10}, 
[3] = {id = 7735, count = 1, chance = 15}, 
[4] = {id = 7735, count = 1, chance = 30}, 
[4] = {id = 7735, count = 1, chance = 30}, 
[5] = {id = 7735, count = 1, chance = 100} 
} 
function onUse(cid, item, fromPos, itemEx, toPos) 
for i = 0, #items do 
if (items[i].chance > math.random(1, 100)) then 
doPlayerAddItem(cid, items[i].id, items[i].count) 
doRemoveItem(item.uid, 1) 
return doCreatureSay(cid, 'Wow Você Ganho! Seu Item e '..getItemNameById(items[i].id)..'!', TALKTYPE_MONSTER) 
end 
end 
doRemoveItem(item.uid, 1) 
return doCreatureSay(cid, 'Não ganhei nada!', TALKTYPE_MONSTER) 
end

bossisg.png

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Obviamente idênticos, mas editei parcialmente as tags, porem por justa razão darei os merecidos créditos.

 

Para falar a verdade esse script já estava em meu ot só fiz edita-lo.

 

Créditos by:

 

Overllord

Newtonnotwen

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

Não é por nada não, mas quando for criar um tópico com algum código adicione o nome do autor, mesmo que você não souber quem criou coloque:

 

Autor: desconhecido

 

ou

 

Autor: fulano e ciclano

 

isso evita que te reportem por ripping, e n queremos isso né amg?

bossisg.png

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Obviamente.

 

Obrigado inicialmente pelo aviso e agradecido pelo termo amigo.

 

​ Créditos atualizados.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

rhamer

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 26/10/09Posts: 147Char no Tibia: Rhamer

gostei do script vou ussar no meu projeto

otserver.png

LGV Host ainda vem com proteção ant-ddos gratis

Semi-Dedicado 02
Processador: Intel Power Xeon (1 core)
Memória: 1GB Ram
Hard Disk: 100 GB
Tráfego: Ilimitado
IP: 1 Fixo
Uplink: 1000 Mbps Full Duplex
OS: Windows/Linux
Painel de Reboot: Sim
Valor: R$ 40,00
Melhor oferta

Semi-Dedicado 02
para você que esta "começando com um ot"

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Pronto, melhorei o tutorial para adicionar ou remover mais opções de itens.

 

Se não tiver bem explicado avisa.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

1579091

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 06/11/11Posts: 1088Char no Tibia: Stroked

Dahora, mais sei la ta meio bugado isso, o maximo q vai é uns 3 iten dps n vai sla ta meio estranho..

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Deve ser a chance.

 

Põe 100% que vem todos.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

1579091

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 06/11/11Posts: 1088Char no Tibia: Stroked

Bom, tenho um random item tambem q é mto eficaz e é super na sorte mesmo, n tem valor de tanto de chanse, é pura sorte mesmo:

 

 

local PRESENT_BLUE = {2687, 6394, 6280, 6574, 6578, 6575, 6577, 6569, 6576, 6572, 2114}

local PRESENT_RED = {2152, 2152, 2152, 2153, 5944, 2112, 6568, 6566, 2492, 2520, 2195, 2114, 2114, 2114, 6394, 6394, 6576, 6576, 6578, 6578, 6574, 6574}

 

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

local count = 1

if(item.itemid == 6570) then

local randomChance = math.random(1, #PRESENT_BLUE)

if(randomChance == 1) then

count = 10

elseif(randomChance == 2) then

count = 3

end

doPlayerAddItem(cid, PRESENT_BLUE[randomChance], count)

elseif(item.itemid == 6571) then

local randomChance = math.random(1, #PRESENT_RED)

if randomChance > 0 and randomChance < 4 then

count = 10

end

doPlayerAddItem(cid, PRESENT_RED[randomChance], count)

end

 

doSendMagicEffect(fromPosition, CONST_ME_GIFT_WRAPS)

doRemoveItem(item.uid, 1)

return true

end

 

 

No caso peguei da surpriese bag (em vermelho é o id das surprise bags, são duas)

Em verde é o id dos items que vao vir..

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

if randomChance > 0 and randomChance < 4 then = Tem chance.

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif

Newtonnotwen

Só quero saber o porque, o resto são detalhes.
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/08/12Posts: 762

Todo script você que escolhe o random cara, esses mesmo:

 

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

local count = 1

if(item.itemid == 6570) then

local randomChance = math.random(1, #PRESENT_BLUE)

if(randomChance == 1) then

count = 10

elseif(randomChance == 2) then

count = 3

end

doPlayerAddItem(cid, PRESENT_BLUE[randomChance], count)

elseif(item.itemid == 6571) then

local randomChance = math.random(1, #PRESENT_RED)

if randomChance > 0 and randomChance < 4 then

count = 10

end

b5feb15da83eca8bd379039567f3992860f398f765aea98c57dcd2a1ffb0d35ca20603caaf7d9f03da39a3ee5e6b4b0d3255bfef95601890afd807098c4de7dfec2a3351efcdaa9ed8451e6c.gif