[Pedido]: Script De Vida E Mana

NightmareRullesz
em Scripts

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

Olá, eu gostaria de lhes pedir que se possível me arrumassem um script de visualizar vida e mana de um jogador, porém só pode utilizar o comando que for premium account.

 

Se possível puderem responder este meu tópico eu agradeço.

 

 

Grato desde-já!

RafaelMan

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/06/06Posts: 5Char no Tibia: Ises Ajah

Acabei de postar esta função mostrando também os skills do player aqui ~> [Pedido] Talk Spy

 

Para que apenas jogadores premium consigam visualizar, utilize esta função:

 

function onSay(cid, words, param, channel)

-- Verifica se há parâmetro no comando
if(param == '') then 
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Digite o nome do player. Ex.: !Whois Nome do Player")
	return true
end

-- Verifica se o player é premium
if(getPlayerPremiumDays(cid) == 0) then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você precisa ser Premium Account (VIP) para usar este comando!")
	return true
end

-- Busca as informações do player de acordo com o nome (param) digitado
player = db.getResult("SELECT name, level, maglevel, healthmax, manamax FROM players WHERE UPPER(name) = UPPER('".. param .."')")

-- Verifica se aquele nome/player existe
if(player:getID() == -1) then
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Nome '".. param .."' inválido. Ex.: !Whois Nome do Player")
	return true
end

-- Monta o texto que vai aparecer na tela
local txt = "Nome: " .. player:getDataString("name") .. "\n"
txt = txt .. "Life: " .. player:getDataInt("healthmax") .. "\n"
txt = txt .. "Mana: " .. player:getDataInt("manamax") .. "\n\n"
txt = txt .. "Magic lvl: " .. player:getDataInt("maglevel") .. "\n"

local playerid = getPlayerGUIDByName(param)

-- Busca skill club
local club = db.getResult("SELECT value FROM player_skills WHERE skillid = 1 AND player_id = ".. playerid):getDataInt("value")
txt = txt .. "Club: " .. club .. "\n"
-- Busca skill sword
local sword = db.getResult("SELECT value FROM player_skills WHERE skillid = 2 AND player_id = ".. playerid):getDataInt("value")
txt = txt .. "Sword: " .. sword .. "\n"
-- Busca skill axe
local axe = db.getResult("SELECT value FROM player_skills WHERE skillid = 3 AND player_id = ".. playerid):getDataInt("value")
txt = txt .. "Axe: " .. axe .. "\n"
-- Busca skill distance
local distance = db.getResult("SELECT value FROM player_skills WHERE skillid = 4 AND player_id = ".. playerid):getDataInt("value")
txt = txt .. "Distance: " .. distance .. "\n"
-- Busca skill shielding
local shielding = db.getResult("SELECT value FROM player_skills WHERE skillid = 5 AND player_id = ".. playerid):getDataInt("value")
txt = txt .. "Shielding: " .. shielding .. "\n"

-- Abre uma janela com as informações acima
doPlayerPopupFYI(cid, txt)	

end

 

No talkactions.xml adicione:

 

<talkaction words="!whois" event="script" value="whois.lua"/>

 

Para usar a função digite: !whois Nome do Player

 

Irá aparecer uma janela com todas as informações: nome, level, vida, mana, ml e skills.

 

A função está toda comentada. Você pode alterar/excluir as informações que quiser.

 

Para utiliar o comando a cada X segundos, vou ficar devendo =/

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

Como funciona esse script?

Você usa no jogador e mostra todas as informações de uma vez ou é uma por uma?

 

 

~~~~

 

Não pegou aqui, deu o seguinte erro:

 

[02/11/2011 23:38:53] [Error - LuaScriptInterface::loadFile] cannot open data/talkactions/scripts/whois.lua: No such file or directory

[02/11/2011 23:38:53] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/whois.lua)

[02/11/2011 23:38:53] cannot open data/talkactions/scripts/whois.lua: No such file or directory

RafaelMan

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 17/06/06Posts: 5Char no Tibia: Ises Ajah

Como funciona esse script?

Você usa no jogador e mostra todas as informações de uma vez ou é uma por uma?

Para usar a função digite: !whois Nome do Player

Irá aparecer uma janela com todas as informações: nome, level, vida, mana, ml e skills.

 

Não pegou aqui, deu o seguinte erro:

 

[02/11/2011 23:38:53] [Error - LuaScriptInterface::loadFile] cannot open data/talkactions/scripts/whois.lua: No such file or directory

[02/11/2011 23:38:53] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/whois.lua)

[02/11/2011 23:38:53] cannot open data/talkactions/scripts/whois.lua: No such file or directory

 

Está dizendo que o arquivo whois.lua não foi encontrado. Você criou ele na pasta data/talkactions/scripts/???

Eu utilizo o tfs 0.4. Olhe a estrutura dos seus arquivos na pasta de talkactions, veja como eles estão declarados e faça da mesma maneira.

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

Como funciona esse script?

Você usa no jogador e mostra todas as informações de uma vez ou é uma por uma?

Para usar a função digite: !whois Nome do Player

Irá aparecer uma janela com todas as informações: nome, level, vida, mana, ml e skills.

 

Não pegou aqui, deu o seguinte erro:

 

[02/11/2011 23:38:53] [Error - LuaScriptInterface::loadFile] cannot open data/talkactions/scripts/whois.lua: No such file or directory

[02/11/2011 23:38:53] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/whois.lua)

[02/11/2011 23:38:53] cannot open data/talkactions/scripts/whois.lua: No such file or directory

 

Está dizendo que o arquivo whois.lua não foi encontrado. Você criou ele na pasta data/talkactions/scripts/???

Eu utilizo o tfs 0.4. Olhe a estrutura dos seus arquivos na pasta de talkactions, veja como eles estão declarados e faça da mesma maneira.

 

Entendi, mas eu nomeei certinho os arquivos ;x

 

Isso aqui é a versão?

<?xml version="1.0" encoding="UTF-8"?>

 

 

~~

 

Sou novo nesses negócios, estou aprendendo ainda ;D

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

as veses o problema ta nas sourcers do server

 

bom com o do rafaelman n ta funfando ae

eu posto um mais antes presiso de uma informaçao

e pra a vida do pro prio player que digita?

ex:se fala "!myhp"

aparece pra voce uma mensagem

"voce tem x de hp"

 

ou se que um pra ve hp dos ourtos players?

ex; se fala "!hp lordbug'

aparece uma mensagem

"o player lord bug tem x hp"

(sendo x um numero ficticio,ex: x = 1000)

^w^

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

É mais ou menos assim mesmo cara.

Se o jogador diz "!vida" vai aparecer a vida dele (atual e total).

Se o jogador diz "!vida Fulano de Tal" vai aparecer a vida do outro jogador (atual e total).

 

Um sistema parecido com o do RadBR. Se esse server for de seu conhecimento você já tem mais ou menos uma noção de como é que funciona..

 

Se não for possível aparecer o do próprio jogador que usa o comando não tem problema, se aparecer a do jogador escolhido já está ótimo para mim.

 

Grato, desde-já!

jedian1

Cuidado, Espada inflamável!
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/01/10Posts: 17Char no Tibia: NemTeConto

function onSay(cid, words, param, channel)
local t = getPlayerByNameWildcard(param)
   if param == '' then
   return doPlayerPopupFYI(cid, "Jogador = "..getPlayerName(cid).."\nLife = "..getCreatureHealth(cid).."/"..getCreatureMaxHealth(cid).."\nMana = "..getCreatureMana(cid).."/"..getCreatureMaxMana(cid)) 
   end
   if isPlayer(t) then
      doPlayerPopupFYI(cid, "Jogador = "..param.."\nLife = "..getCreatureHealth(t).."/"..getCreatureMaxHealth(t).."\nMana = "..getCreatureMana(t).."/"..getCreatureMaxMana(t))
      return true
   else
      return doPlayerSendCancel(cid, 'Jogador não encontrado')
   end
return true
end      

testei e aqui funcionou, testa aí.

Ah, e coloquei tudo junto, se o player escrever digamos !life, aí aparece mana e life

tag:

<talkaction words="!life" event="script" value="nomescript.lua"/>

Afogamento é uma coisa de dar água na boca!



 

Todos os Cogumélos são comestíveis, alguns, só uma vez!

 

920384.png

 

Ei Você aí!

É, Você mesmo, que está lendo minha assinatura!

Você concerteza viu que meu post ali em cima foi muuuuito útil né?

Então...

Me da REP +!!

e Upa o Barkis(meu pet) também!

Fir3element

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 16/06/08Posts: 998Gênero: Masculino

-- Não vi que ja tinham postado, mas ta ai :DD

 

talkactions/talkactions.xml

<talkaction words="!hp;!mana" event="script" value="hp_mana.lua"/>

 

talkactions/scripts/hp_mana.lua

function onSay(cid, words, param, channel)
   if words == "!hp" then
      return doSendAnimatedText(getCreaturePosition(cid), "Vida atual:"..getCreatureHealth(cid).."\nVida total: "..getCreatureMaxHealth(cid)..".", 25)
   end

   if words == "!mana" then
      return doSendAnimatedText(getCreaturePosition(cid), "Mana atual:"..getCreatureMana(cid).."\nMana total: "..getCreatureMaxMana(cid)..".", 25)
   end
   return true
end

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

@Jedian

Valeu cara, só vou modificar (tentar ^^) pra aparecer no default :D

Meu Rep+ de hoje é seu.

 

 

@Fire

O seu não funcionou aqui ;x

Mais valeu a intenção, amanhã te do um rep++

 

 

Edit ~~

 

@Jedian

Só uma coisinha, por que quando eu falo !mana (pra ver a minha mana) aparece a mensagem que cancela (Jogador não encontrado) ?

jedian1

Cuidado, Espada inflamável!
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/01/10Posts: 17Char no Tibia: NemTeConto

Talvez, durante a sua modificação, você alterou algo que não devia, aqui testei de todos os jeitos, e funcionou.

Poste como tá agora, ah, e não que importe muito, você fez o contrário, deu primeiro a rep do fireelement, e não deu a minha '-', só pra avisar mesmo.

Afogamento é uma coisa de dar água na boca!



 

Todos os Cogumélos são comestíveis, alguns, só uma vez!

 

920384.png

 

Ei Você aí!

É, Você mesmo, que está lendo minha assinatura!

Você concerteza viu que meu post ali em cima foi muuuuito útil né?

Então...

Me da REP +!!

e Upa o Barkis(meu pet) também!

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

Poots cara, nem tinha reparado, mas pode ficar tranquilo, vou te dar seu rep+.. mals ae!

 

Eu separei o de vida com o de mana, no caso só fiz o de mana, iria fazer o de vida, mas deu erro no negócio (fico mostrando a mensagem quando vejo minha mana) e aí eu parei..

 

Fico assim;

 

function onSay(cid, words, param)

local t = getPlayerByNameWildcard(param)

if param == '' then

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana atual: "..getCreatureMana(cid).." \nMana máxima: "..getCreatureMaxMana(cid))

end

if isPlayer(t) then

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana de [ "..param.." ] atual: "..getCreatureMana(t).." \nMana de [ "..param.." ] máxima "..getCreatureMaxMana(t))

return true

else

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Este jogador não está online ou não existe.')

end

return true

end

 

~~

 

Edit

 

Acabei de conseguir brother, coloquei um return true depois da mensagem ali no de cima.

Ficou assim.

 

function onSay(cid, words, param)

local t = getPlayerByNameWildcard(param)

if param == '' then

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana atual: "..getCreatureMana(cid).." \nMana máxima: "..getCreatureMaxMana(cid))

return true

end

if isPlayer(t) then

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana de [ "..param.." ] atual: "..getCreatureMana(t).." \nMana de [ "..param.." ] máxima "..getCreatureMaxMana(t))

return true

else

doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Este jogador não está online ou não existe.')

end

return true

end

 

Onde eu coloquei.

 

Agora só vou tentar por pra poder só ver a vida/mana dos outros quem for PREMMY ACCOUNT.

Mais uma vez repito, desculpe pela confusão, assim que liberar te dou seu rep.

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

por promto ta com so premiun usa

 

function onSay(cid, words, param)
local t = getPlayerByNameWildcard(param)
if isPremium(cid) then
if param == '' then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana atual: "..getCreatureMana(cid).." \nMana máxima: "..getCreatureMaxMana(cid))
return true
end
if isPlayer(t) then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana de [ "..param.." ] atual: "..getCreatureMana(t).." \nMana de [ "..param.." ] máxima "..getCreatureMaxMana(t))
return true
else
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Este jogador não está online ou não existe.')
end
else
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'você é premium account.')
end
return true
end

 

kkkk tinha esquecido de fexa o code e o spoiler qunado postei

^w^

NightmareRullesz

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 02/11/11Posts: 9

por promto ta com so premiun usa

 

function onSay(cid, words, param)
local t = getPlayerByNameWildcard(param)
if isPremium(cid) then
if param == '' then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana atual: "..getCreatureMana(cid).." \nMana máxima: "..getCreatureMaxMana(cid))
return true
end
if isPlayer(t) then
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, "\nMana de [ "..param.." ] atual: "..getCreatureMana(t).." \nMana de [ "..param.." ] máxima "..getCreatureMaxMana(t))
return true
else
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'Este jogador não está online ou não existe.')
end
else
doPlayerSendTextMessage(cid,MESSAGE_STATUS_CONSOLE_BLUE, 'você é premium account.')
end
return true
end

 

kkkk tinha esquecido de fexa o code e o spoiler qunado postei

 

Pow cara, já eu consegui fazer mais cedo, rs.. mas valeu assim mesmo (:

pessoa93

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 20/10/10Posts: 911Char no Tibia: Felipe Pessoa

Segundo o dono do tópico a duvida foi resolvida, vou mover para duvidas sanadas.

---------------