Ir para conteúdo
  • 0

Script para comprar life e mana por x item


masdead

Pergunta

Bom pessoal, preciso de um script que quando o player use o comando !reward ele ganhe 10.000 de life e 10.000 de mana. Obs: O player tera que ter o item ID: 5785. e o comando só podera ser usado uma ves em cada player .

comando do player: !reward

Id item a ser removido: 5785

mensagem para o player: Parabéns, Voçê ganhou 10.000 de hp e 10.000 de mp :)

 

Espero que possam me ajudar. Agradeço !

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Em talkactions/scripts crie um arquivo lua com nome qualquer e coloque isso dentro:

local l = 10000 -- quantidade de life e mana a ser adicionado ao player
local s = 310212 -- storage, somente mexa se souber o que está fazendo

function onSay(cid, words, param)

	if getPlayerStorageValue(cid, s) == -1 then
		setCreatureMaxHealth(cid, getCreatureHealth(cid) + l)
		setCreatureMaxMana(cid, getCreatureMaxMana(cid) + l)
		doPlayerSendTextMessage(cid, "Voce ganhou 10000 de life e de mana")
		setPlayerStorageValue(cid, s, 1)
	return true
	end
end

em talkactions.xml coloque:

<talkaction words="!reward" script="nome_do_arquivo.lua"/>
Editado por Keilost
Link para o comentário
Compartilhar em outros sites

  • 0

 

Em actions/scripts crie um arquivo lua com nome qualquer e coloque isso dentro:

local l = 10000 -- quantidade de life e mana a ser adicionado ao player
local s = 310212 -- storage, somente mexa se souber o que está fazendo

function onUse(cid, item, frompos, item2, topos)

	if getPlayerStorageValue(cid, s) == -1 then
		setCreatureMaxHealth(cid, getCreatureHealth(cid) + l)
		setCreatureMaxMana(cid, getCreatureMaxMana(cid) + l)
		doPlayerSendTextMessage(cid, "Voce ganhou 10000 de life e de mana")
		setPlayerStorageValue(cid, s, 1)
	return true
	end
end

em actions.xml coloque:

<action itemid="5785" event="script" value="nome_do_arquivo.lua" />

Nesse caso o player iria dar use no item e ganhar a life e mana certo?

Link para o comentário
Compartilhar em outros sites

  • 0

 

function onSay(cid, words, param)
 
    if getPlayerStorageValue(cid, 94831) == -1 then
        setCreatureMaxHealth(cid, l0000)
        setCreatureMaxMana(cid, l0000)
        doPlayerSendCancel(cid, "Voce ganhou 10000 de life e de mana")
        doPlayerRemoveItem(cid, 2464, 1)
        setPlayerStorageValue(cid, 94831, 2)
   else
        doPlayerSendCancel(cid, "Voce ja uso o item")
  end
  return true
end
Editado por Zikaduh
Link para o comentário
Compartilhar em outros sites

  • 0

É, se o cara não souber por o script, não vai funcionar mesmo né, tanto que eu testei e funcionou.

 

Dica: é só você colocar

 

doPlayerRemoveItem(cid,item.uid)

 

não precisa colocar o ID

 

e então ficaria assim:

local l = 10000 -- quantidade de life e mana a ser adicionado ao player
local s = 310212 -- storage, somente mexa se souber o que está fazendo

function onSay(cid, words, param)

    if getPlayerStorageValue(cid, s) == -1 then
        setCreatureMaxHealth(cid, getCreatureHealth(cid) + l)
        setCreatureMaxMana(cid, getCreatureMaxMana(cid) + l)
        doPlayerSendTextMessage(cid, "Voce ganhou 10000 de life e de mana")
        doPlayerRemoveItem(cid,item.uid)
        setPlayerStorageValue(cid, s, 1)
    return true
    end
end
Link para o comentário
Compartilhar em outros sites

  • 0


local item = 5785

local HP = 10000

local MP = 10000

function onSay(cid, words)

if getPlayerItemCount(cid, item) > 0 and getPlayerStorageValue(cid, 91811) <= 0 then

setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+HP)

setCreatureMaxMana(cid, getCreatureMaxMana(cid)+MP)

doPlayerSendTextMessage(cid, 27, string.format("Parabéns, você ganhou %d de hp e %d de mp.", HP, MP))

doPlayerRemoveItem(cid, item, 1)

setPlayerStorageValue(cid, 91811, 1)

return true

else

return doPlayerSendCancel(cid, "Você já usou este comando, ou não possui o item.")

end

return true

end

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

  • 0

 

É, se o cara não souber por o script, não vai funcionar mesmo né, tanto que eu testei e funcionou.

 

Dica: é só você colocar

 

doPlayerRemoveItem(cid,item.uid)

 

não precisa colocar o ID

 

e então ficaria assim:

local l = 10000 -- quantidade de life e mana a ser adicionado ao player
local s = 310212 -- storage, somente mexa se souber o que está fazendo

function onSay(cid, words, param)

    if getPlayerStorageValue(cid, s) == -1 then
        setCreatureMaxHealth(cid, getCreatureHealth(cid) + l)
        setCreatureMaxMana(cid, getCreatureMaxMana(cid) + l)
        doPlayerSendTextMessage(cid, "Voce ganhou 10000 de life e de mana")
        doPlayerRemoveItem(cid,item.uid)
        setPlayerStorageValue(cid, s, 1)
    return true
    end
end

Instalei corretamento todos os que me passaram aqui. Alguns nem funcionam,outros funcionando mais com erro. quando o comando é usado, ele diz que o player ganhou 10.000 de hp e mana mesmo sem o player ter o item 5785. e depois diz qe ja usou o comando quando tenta usar Novamento.

Oque eu preciso é o seguinte: !reward = Player Ganhar 10.000 de life e mana, Item 5785 ser removido. E só puder usar uma vez. e só funcionar se o player tiver o item 5785. Agradeço pela atenção. Mais o script não deu certo. poderia me ajudar nisso ?

Link para o comentário
Compartilhar em outros sites

  • 0

O do Zipter ta funcionando... ele apenas esqueceu de um ")"... quando der erro em algum script poste o erro aqui, para sabermos o que deu de errado.

 

Usa essa versão:

 

local item = 5785
local HP = 10000
local MP = 10000
function onSay(cid, words)
    if getPlayerItemCount(cid, item) > 0 and getPlayerStorageValue(cid, 91811) <= 0 then
        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+HP)
        setCreatureMaxMana(cid, getCreatureMaxMana(cid)+MP)
        doPlayerSendTextMessage(cid, 27, string.format("Parabens, voce ganhou %d de hp e %d de mp.", HP, MP))
        doPlayerRemoveItem(cid, item, 1)
        setPlayerStorageValue(cid, 91811, 1)
        return true
    else
        return doPlayerSendCancel(cid, "Voce ja usou este comando, ou não possui o item.")
    end
    return true
end

 

---TESTADO. FUNCIONANDO 100% (claro)

 

-Não esquece, não fui eu que fiz. Se for dar rep da pro Zipter. :p

Link para o comentário
Compartilhar em outros sites

  • 0

O do Zipter ta funcionando... ele apenas esqueceu de um ")"... quando der erro em algum script poste o erro aqui, para sabermos o que deu de errado.

 

Usa essa versão:

 

local item = 5785
local HP = 10000
local MP = 10000
function onSay(cid, words)
    if getPlayerItemCount(cid, item) > 0 and getPlayerStorageValue(cid, 91811) <= 0 then
        setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+HP)
        setCreatureMaxMana(cid, getCreatureMaxMana(cid)+MP)
        doPlayerSendTextMessage(cid, 27, string.format("Parabens, voce ganhou %d de hp e %d de mp.", HP, MP))
        doPlayerRemoveItem(cid, item, 1)
        setPlayerStorageValue(cid, 91811, 1)
        return true
    else
        return doPlayerSendCancel(cid, "Voce ja usou este comando, ou não possui o item.")
    end
    return true
end

 

---TESTADO. FUNCIONANDO 100% (claro)

 

-Não esquece, não fui eu que fiz. Se for dar rep da pro Zipter. :p

Vlw . Agora funfo

Link para o comentário
Compartilhar em outros sites

  • 0

@Incur

Obrigado pela correção. Fazer códigos correndo tem mesmo suas desvantagens.

@autor

Em casos como este, seria interessante (e ajudaria muito...) você seguir uma regra da área de pedidos e dúvidas de scripting (dúvida que a maioria já tenha se quer aberto o link das regras, infelizmente).

  • Se o script não funcionou, é necessário que você descreva porque não funcionou, o que fez na instalação, o que mudou no script para que o voluntário consiga te ajudar.

Só responder "não funcionou" não ajudará em nada.

Sanado, movido.

Editado por zipter98
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...