DE
talkaction

[Talkaction] Tente A Sorte

Por Demonbholder, 11 de fev. de 2011 em Actions e Talkactions

script
15
3.2k
11 de fevereiro de 2011 às 01:45

Oi galera, vim trazer para vocês mais uma talkaction meio inútil, mas espero que vocês gostem, ela funciona da seguinte maneira, se você tiver 500k, e usar a talkaction, esse dinheiro vai ser removido, e você ira tentar a sorte, sendo que suas chances são essas:

 

40% de ganhar algum item;
10% de sumonar um ghazbaran que irá te atacar;
50% de não acontecer nada.

 

É claro que o ghazbaran só irá ser sumonado se você estiver em area não protect zone. Certo, para adicionar o script, vá em data/talkaction/scripts, crie um arquivo .lua e cole isto nele:

 

function onSay(cid, words, param)

if doPlayerRemoveMoney(cid, 500000) == TRUE then -- dinheiro necessário

local random = math.random(1, 10)

if (isInArray({1, 2, 3, 4, 5}, random)) then
doPlayerSendTextMessage(cid, 22, "Desculpe, não foi dessa fez, tente novamente.")

elseif random == 6 then
doPlayerAddItem(cid, 2160, 100)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou 500k")

elseif random == 7 then
doPlayerAddItem(cid, 2471, 1)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou um golden helmet")

elseif random == 8 then
doPlayerAddItem(cid, 2469, 1)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou uma dragon scale legs")

elseif random == 9 then
doPlayerAddItem(cid, 2646, 1)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou uma golden boots")

elseif random == 10 and getTilePzInfo(getCreaturePosition(cid)) == FALSE then
doCreateMonster('ghazbaran', getCreaturePosition(cid))

end
end
return doPlayerSendCancel(cid, "Você não tem dinheiro suficiente")
end

 

Versão dois (sem ghazbaran), suas chances vão ser:

 

40% de ganhar algum item;
60% de não acontecer nada.

 

O script da versão dois fica assim:

 

function onSay(cid, words, param)

if doPlayerRemoveMoney(cid, 500000) == TRUE then -- dinheiro necessário

local random = math.random(1, 10)

if (isInArray({1, 2, 3, 4, 5, 10}, random)) then
doPlayerSendTextMessage(cid, 22, "Desculpe, não foi dessa fez, tente novamente.")

elseif random == 6 then
doPlayerAddItem(cid, 2160, 100)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou 500k")

elseif random == 7 then
doPlayerAddItem(cid, 2471, 1)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou um golden helmet")

elseif random == 8 then
doPlayerAddItem(cid, 2469, 1)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou uma dragon scale legs")

elseif random == 9 then
doPlayerAddItem(cid, 2646, 1)
doPlayerSendTextMessage(cid, 22, "Parabéns, você ganhou uma golden boots")

end
end
return doPlayerSendCancel(cid, "Você não tem dinheiro suficiente")
end

 

Depois vá em data/talkactions, abra o arquivo talkactions.xml e cole, entre as tags para players, a seguinte tag:

 

<talkaction words="palavras" event="script" value="nome_do_arquivo.lua"/>

 

Onde words="" são as palavras para ativar a talkactions e value="" é o nome do arquivo .lua que você criou para colar o script acima

 

Script testado em Thyrania 8.5, espero que gostem, valeu.

Editado Fevereiro 11 por Demonbholder

juanbrandoJ
11 de fevereiro de 2011 às 14:29

mais ai o querido ghazbaran n ficaria aonde o o doidão n deu use no itemm ??

 

ai quem ira salvar os noobs ??Chapolin ??

11 de fevereiro de 2011 às 14:37

Kkkkkk, problema é dos jogadores kkkkkk. Editado.

VodkartV
11 de fevereiro de 2011 às 16:10

magina vc lá de boa,compra o item da sorte no npc,ai chega ali na frente do dp,opa vamo ve que item eu vo ganha vamos ver... PORRA UM GHAZBARAN,AI SE ELE TIVER SEM AOL PERDE OS ITEMS e além disso mata todos os amigo/pessoas low level que tiver ali pela cidade uiHSUIHUISHiuHSUIhsUIHuishsuishUIUI

sinitro irmao

11 de fevereiro de 2011 às 23:36

aeuhuaehuahuehua Versão sem ghazbaran adicionada.

2 meses depois...
priextix666P
08 de abril de 2011 às 10:34

cara achei as duas versões muito legais, embora haja o problema de causa desordem em frent ao dp caso um ghaz seja criado é também um script bem útil para deixar o ot mais dinâmico, só me fala uma coisinha fera tem como tu por esse script como um item a ser usado em vez de talk actiion? desd ja agradesço!!.. ;s

08 de abril de 2011 às 13:03

Ser usado e sumir ou que o jogador só possa usar uma vez mesmo?

TedescooT
08 de abril de 2011 às 13:11

me ajude here http://www.xtibia.com/forum/topic/154799-pedido-script/ :

3062953
08 de abril de 2011 às 13:19

Ser usado e sumir ou que o jogador só possa usar uma vez mesmo?

 

ai demonbholder queria pedir a msm coisa que o cara la, tipo, vc da use num item(ex:maquina de cassino) e ganha dinheiro

ou nao ganha nada, mais o item continua la, seria tipo um item de mapa.(estatua)

08 de abril de 2011 às 13:58

@Sazu

 

É para remover o dinheiro do jogador? Se for tente:

 

function onUse(cid, item)

if doPlayerRemoveMoney(cid, 500000) == TRUE then -- dinheiro necessário

local random = math.random(1, 10)
local chance = {
[1] = {id = 2160, quant = 100, message = "Parabéns, você ganhou 500k."},
[2] = {id = 2471, quant = 1, message = "Parabéns, você ganhou um golden helmet."},
[3] = {id = 2469, quant = 1, message = "Parabéns, você ganhou uma dragon scale legs."},
[4] = {id = 2646, quant = 1, message = "Parabéns, você ganhou uma golden boots."},
}

for ite, res in pairs(chance) do
if ite == random then
doPlayerSendTextMessage(cid, 22, chance[random].message)
doPlayerAddItem(cid, chance[random].id, chance[random].quant)
break
end
end
end

return TRUE
end

 

No caso acima há 4 chances de vir itens, se quiser aumentar ou diminuir esses itens, edite a tabela chance logo acima, onde o numero entre colchetes deve ser de 1 a 10. A cada número que tu adicionar vai aumentar a chance.

 

Caso não queira que o dinheiro seja removido, retire estas linhas:

 

if doPlayerRemoveMoney(cid, 500000) == TRUE then -- dinheiro necessário

 

e

 

retire qualquer end ACIMA do return TRUE.

 

Até mais.

3062953
09 de abril de 2011 às 09:17

-----EDITED---

 

funciono certin :D vlws

 

dps do rep usei meu hj ja :s

 

 

tipo, tem como eu botar % em cada item assim:

10% = golden helmet

30% = demon helmet

50% = royal helmet

20% = magic sword

 

fazer cada item ter sua chance de vir em vez de randon?

Editado Abril 9 por Sazu

09 de abril de 2011 às 15:57

Tem sim. Alguma chance de não vir nada?

 

OBS: Ajudaria se não citasse meus posts.

 

Até mais.

Editado Abril 9 por Demonbholder

3062953
09 de abril de 2011 às 18:54

tipo, sim tem chance de nao vir ficando assim +/-

 

40% crystal coin

20% magic sword

10% soft boots

30% nothing

________________________________________________

 

e demonbholder queria pedir que vc coloca-se exasthed de 2segs :s

10 de abril de 2011 às 13:31

Feito:

 

function onSay(cid, item)

if getPlayerStorageValue(cid, 30047) - os.time() <= 0 then
if doPlayerRemoveMoney(cid, 500) == TRUE then -- dinheiro necessário

local random = math.random(1, 10)
local chance = {
{id = 2160, quant = 1, message = "Parabéns, você ganhou uma crystal coin.", mat = {1,2,3,4}},
{id = 2400, quant = 1, message = "Parabéns, você ganhou uma magic sword.", mat = {5,6}},
{id = 2640, quant = 1, message = "Parabéns, você ganhou uma soft boots.", mat = {7}},
}

for ite, res in pairs(chance) do
if table.find(chance[ite].mat, random) then
doPlayerSendTextMessage(cid, 22, chance[ite].message)
doPlayerAddItem(cid, chance[ite].id, chance[ite].quant)
setPlayerStorageValue(cid, 30047, 2 + os.time())
break
end
end
end
end

return TRUE
end

 

Da uma testada ai, eu testei mas editei bastante o script depois.

champzikaC
10 de abril de 2011 às 15:19

Nossa , otimo script .

irei usar no meu ot amanha eu te dou rep+