Ir para conteúdo
  • 0

[Pedido]: Script De Vida E Mana


NightmareRullesz

Pergunta

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á!

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

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

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

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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.

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

  • 0

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

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

  • 0

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)

Link para o comentário
Compartilhar em outros sites

  • 0

É 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á!

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

  • 0

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

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

  • 0

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

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

  • 0

@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) ?

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

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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.

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

  • 0

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

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

  • 0

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 (:

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

×
×
  • Criar Novo...