Script para comprar life e mana por x item

masdead
em Scripts
  • 1
  • 2

masdead

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/04/10Posts: 857

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 !

fitaisolante

Le dur à cuire
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 25/12/07Posts: 152Char no Tibia: Tony Scott

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"/>

Banido por falta de ética e desonestidade.

Duuhzinhow

Projeto ViteraOt
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 14/01/14Posts: 276Gênero: MasculinoChar no Tibia: Sonda retro

 

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?

fitaisolante

Le dur à cuire
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 25/12/07Posts: 152Char no Tibia: Tony Scott

Ah foi mal rsrs.. Estava fazendo outro código action e acabei confundindo...

 

 

Editei acima

Banido por falta de ética e desonestidade.

masdead

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/04/10Posts: 857

Os script nem funciono. Quando digito !reward sai escrito normal e o player não ganha nem life nem mana. e o item tbm não é removido. Alguem pode ajudar pf ?

Zikaduh

Projeto CS-Tibia
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 02/07/13Posts: 115Char no Tibia: Naoti

 

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

Breve:

Counter-Strike_logo_white1_rez.jpg

Contato

Skype: Jv.alves97

Atenciosamente: Zikaduh

fitaisolante

Le dur à cuire
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 25/12/07Posts: 152Char no Tibia: Tony Scott

É, 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

Banido por falta de ética e desonestidade.

Zikaduh

Projeto CS-Tibia
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 02/07/13Posts: 115Char no Tibia: Naoti

kkkk mals so iniciante hehhee.

e eu errei eu pra min era um action mas e uma talkaction

Breve:

Counter-Strike_logo_white1_rez.jpg

Contato

Skype: Jv.alves97

Atenciosamente: Zikaduh

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino


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

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

masdead

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/04/10Posts: 857

 

É, 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 ?

Incur

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 22/12/12Posts: 90

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

DuuhCarvalho

:)
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 19/01/12Posts: 988Gênero: MasculinoChar no Tibia: Xerife Woody

Ignorem vii agr a resposta da correçāo

É que to pelo celular.

masdead

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 09/04/10Posts: 857

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

zipter98

avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 20/09/12Posts: 2553Gênero: Masculino

@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.

Não respondo PMs solicitando suporte. Já existem seções no fórum para isto.

fitaisolante

Le dur à cuire
avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 25/12/07Posts: 152Char no Tibia: Tony Scott

Eu não acho certo as pessoas se envolverem no tópico, eu estou aprendendo script e no final das contas eu nem aprendo com o meu erro pois criaram outro código.

Banido por falta de ética e desonestidade.

  • 1
  • 2