JH
pedido

Bau que da Varios Items,

Por jhonatanp, 06 de mar. de 2014 em Scripts

script
9
1.6k
jhonatanpJ
06 de março de 2014 às 16:38

Gostaria de um bau de quest que poderia dar em torno de 10 items, tentei achar este script mais até agora não consegui.




Protocolo : 8.54.


KluivertK
06 de março de 2014 às 16:54

Você quer random?

 

eu fiz pra da tudo de uma vez

 

obs: não testei

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local item = {xx, xx, xx, xx, xx, xx, xx, xx, xx, xx}
local level = xx
 
    if getPlayerStorageValue(cid, 10) and getPlayerLevel(cid) >= level then
       doPlayerAddItem(cid, item)
       doPlayerSendTextMessage(cid, 21, "Parabéns!")
    else
       doPlayerSendCancel(cid, "Vazio")
       setPlayerStorageValue(cid, 10, 1)
    return true
  end
end            

Editado Março 6 por Kluivert

06 de março de 2014 às 17:22

 

Você quer random?

 

eu fiz pra da tudo de uma vez

 

obs: não testei

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local item = {xx, xx, xx, xx, xx, xx, xx, xx, xx, xx}
local level = xx
 
    if getPlayerStorageValue(cid, 10) and getPlayerLevel(cid) >= level then
       doPlayerAddItem(cid, item)
       doPlayerSendTextMessage(cid, 21, "Parabéns!")
    else
       doPlayerSendCancel(cid, "Vazio")
       setPlayerStorageValue(cid, 10, 1)
    return true
  end
end            

 

Kluivert..

na função getPlayerStorageValue você fez certo só que esqueceu de colocar pra verificar se a storage do player é menor que 1 . usando "Operadores Relacionais"(<=, >=, <, >, ==, ~=) . ex: getPlayerStorageValue(cid, STORAGE) ~= 0 . é só um exemplo não é o correto do script.

 

você também colocou pra verificar o level do player coisa que não é necessária no caso do pedido !

 

usou um return true fora de hora , não vai ocorrer um erro, mais nesse caso o correto seria usar depois do 'end' da verificação

 

ex:

function duuhCarvalho(blablabla)

if ... then
...
else
...
end

return true
end

Fora isso Parabéns você está evoluindo ! mdr.gif

KluivertK
06 de março de 2014 às 17:37

 

 

Você quer random?

 

eu fiz pra da tudo de uma vez

 

obs: não testei

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local item = {xx, xx, xx, xx, xx, xx, xx, xx, xx, xx}
local level = xx
 
    if getPlayerStorageValue(cid, 10) and getPlayerLevel(cid) >= level then
       doPlayerAddItem(cid, item)
       doPlayerSendTextMessage(cid, 21, "Parabéns!")
    else
       doPlayerSendCancel(cid, "Vazio")
       setPlayerStorageValue(cid, 10, 1)
    return true
  end
end            

 

Kluivert..

na função getPlayerStorageValue você fez certo só que esqueceu de colocar pra verificar se a storage do player é menor que 1 . usando "Operadores Relacionais"(<=, >=, <, >, ==, ~=) . ex: getPlayerStorageValue(cid, STORAGE) ~= 0 . é só um exemplo não é o correto do script.

 

você também colocou pra verificar o level do player coisa que não é necessária no caso do pedido !

 

usou um return true fora de hora , não vai ocorrer um erro, mais nesse caso o correto seria usar depois do 'end' da verificação

 

ex:

function duuhCarvalho(blablabla)

if ... then
...
else
...
end

return true
end

Fora isso Parabéns você está evoluindo ! mdr.gif

 

 

Erros bestas meu :D mas vlw ae, vai ajudar eu a evoluir mais !

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
local item = {xx, xx, xx, xx, xx, xx, xx, xx, xx, xx}
local level = xx
 
    if getPlayerStorageValue(cid, 10) == 0 and getPlayerLevel(cid) >= level then
       doPlayerAddItem(cid, item)
       doPlayerSendTextMessage(cid, 21, "Parabéns!")
    else
       doPlayerSendCancel(cid, "Vazio")
       setPlayerStorageValue(cid, 10, 1)
    end
  return true
end          
06 de março de 2014 às 18:10

recomendaria colocar ' <= 0 ' já que a storage fica -1 no player .

assim se for menor ou igua a 0 ele ganha se não , não ganha .

KluivertK
06 de março de 2014 às 18:14

recomendaria colocar ' <= 0 ' já que a storage fica -1 no player .

assim se for menor ou igua a 0 ele ganha se não , não ganha .

 

Resolvi abri o ot e testa, ai não tava conseguindo usar a tabela :D

fiz sem a tabela porem esta fucionando normalmente!

 

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
    if getPlayerStorageValue(cid, 101) == -1 then
       doPlayerSendTextMessage(cid, 21, "Parabéns!")
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       setPlayerStorageValue(cid, 101, 1)
    else
       doPlayerSendCancel(cid, "Vazio")
    end
  return true
end          
zipter98Z
06 de março de 2014 às 18:17

Ainda sobre o código do Kluivert, recomendaria alterar a parte do doPlayerAddItem para o seguinte método:

1º- Alterar a tabela, adicionando dentro da "principal" "minitabelas", onde o primeiro índice destas indicaria o ID do item, e o segundo índice, a quantidade.

Ex.:

local table = {{ID do item, quantia}, {ID do item, quantia}, {ID do item, quantia}, ...}

2º- Com a tabela alterada da maneira que indiquei, você adicionaria os items ao jogador com um looping.

Ex.:

for i = 1, #table do
    local item = table[i]
    doPlayerAddItem(cid, item[1], item[2])
end

PS1: Quando digo "Ainda sobre o código do Kluivert...", me refiro ao primeiro código.

PS2: Esta maneira que indiquei não altera a funcionalidade (em relação ao seu código acima), porém, além de deixá-lo mais simples (e menor), digamos que deixa-o "mais belo", rs.

Editado Março 6 por zipter98

jhonatanpJ
06 de março de 2014 às 18:19

Apos eu chegar do colegio irei testar, obrigado pela ajuda.

06 de março de 2014 às 18:26

 

recomendaria colocar ' <= 0 ' já que a storage fica -1 no player .

assim se for menor ou igua a 0 ele ganha se não , não ganha .

 

Resolvi abri o ot e testa, ai não tava conseguindo usar a tabela :D

fiz sem a tabela porem esta fucionando normalmente!

function onUse(cid, item, fromPosition, itemEx, toPosition)
 
    if getPlayerStorageValue(cid, 101) == -1 then
       doPlayerSendTextMessage(cid, 21, "Parabéns!")
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       doPlayerAddItem(cid, xx, 1) -- id do item e a quantidade!
       setPlayerStorageValue(cid, 101, 1)
    else
       doPlayerSendCancel(cid, "Vazio")
    end
  return true
end          

 

Parabéns foi uma boa ideia, funcionará perfeitamente!

Mais como o zipter recomendou é mais acessível em looping .

o script fica menor e mais bonito !