MA

[Resolvido] Problema No Script

Por MatheusGlad, 29 de mar. de 2010 em Archived

otserv
tibia
script
8
1.1k
MatheusGladM
29 de março de 2010 às 15:34

Tipo o script eh o seguinte, uma talkaction que a pessoa fala !apostar e randomiza varios ids para serem dados, e tira dinheiro.

 

O erro eh o seguinte: Quando eu uso a talkaction tira o dinheiro e n da o item =/

 

Script:

-- Script por MatheusMkalo(Xtibia) --

function onSay(cid, words, param)

local itemsid = {2076,5797}

if doPlayerRemoveMoney(cid, 100) == 1 then

doPlayerAddItem(cid, math.random(#itemsid))

else

doPlayerSendCancel(cid, 'Voce nao tem dinheiro para apostar!')

 

end

return TRUE

end

 

Ajuda ai n to consiguindo oO

Quero botar no Xtibia pras pessoas usarem, como n tem nenhum aki no xtibia

 

Ps: Irei botar creditos de quem ajudar é claro.

Editado Março 29 por MatheusMkalo

george100G
29 de março de 2010 às 15:42
local items ={2076,5797}
doPlayerAddItem(cid, items[math.random(#items)])

Editado Março 29 por Critico

MatheusGladM
29 de março de 2010 às 15:52

Nao funcionou =/

Botei assim:

function onSay(cid, words, param)

local items ={2076,5797}

 

if doPlayerRemoveMoney(cid, 100) == 1 then

doPlayerAddItem(cid, items[math.random(#items)])

else

doPlayerSendCancel(cid, 'Voce nao tem dinheiro para apostar!')

 

end

return TRUE

end

joaohdJ
29 de março de 2010 às 16:06

Testa ae e ve se vai:

 

function onSay(cid, words, param)
local items = {2076,5797}
local price = 100
local chance = math.random(1, table.maxn(items))
     if getPlayerMoney(cid) >= price then
                if doPlayerRemoveMoney(cid, price) then
                   doPlayerAddItem(cid, items[chance], 1)
                else
                   doPlayerSendCancel(cid, "Você não tem dinheiro para apostar. O preço é " .. price .. " gold pieces.")
                end
                else
                   doPlayerSendCancel(cid, "Você não tem dinheiro para apostar. O preço é " .. price .. " gold pieces.") 

                   end
                   return TRUE
                   end

 

 

Ps: tomei a liberdade de adicionar condições a mais no script para maior segurança.

 

flw

Editado Março 29 por apocarai

MatheusGladM
29 de março de 2010 às 18:36

Valeu lesk pela ajuda

So queria pedir mais uma coisa, tava tentando aki fazer com que ele desce fail as vezes so que n to consiguindo.

 

Tipo voce fala !apostar e tem 50% chance de acerta e se errar falar Fail!

 

Como vo botar no xtibia o negocio da chance se voce puder fazer assim

"local acerto ="

pra eu poder indicar aonde mudar xD

 

Seria mais ou menos assim

50% de chance de dar acerto e se der acerto randomizar um dos itens do local items

Editado Março 29 por MatheusMkalo

joaohdJ
30 de março de 2010 às 12:56

Assim então:

 

function onSay(cid, words, param)
local items = {2076,5797}
local price = 100
local chance = math.random(1, table.maxn(items))

     if getPlayerMoney(cid) >= price then
                if doPlayerRemoveMoney(cid, price) then
                   if math.random(100) >= 50 then
                   doPlayerAddItem(cid, items[chance], 1)
                   else
                       doPlayerSendCancel(cid, "Você não obteve sucesso.")
                       end
                       else
                           doPlayerSendCancel(cid, "Você não tem dinheiro para apostar. O preço é " .. tonumber(price) .. " gold pieces.")
                        end
                        else
                            doPlayerSendCancel(cid, "Você não tem dinheiro para apostar. O preço é " .. tonumber(price) .. " gold pieces.") 

                            end
                            return TRUE
                            end

 

 

flw

MatheusGladM
30 de março de 2010 às 13:29

Valeu a ajuda, ja ta no xtibia com seus creditos xD

 

Fechem o topico (reported!)

VildenV
30 de março de 2010 às 13:32

Dúvida sanada, tópico fechado.

 

 

Rep+ para Apocarai