Ir para conteúdo
Entre para seguir isso  
bomba

Multi-Client check

Recommended Posts

bomba    0
bomba

Nome: Multi-Client check.
.
Versão: 1.0.
.
Tipo do script: Talkaction.
.
Servidor Testado: TFS.
.
Autor: n/a

 

Comando para ver quem esta usando Tibia MC, como usar?

/check

 

Arquivo.LUA:

\data\talkactions\scripts\mc_check.lua:

function convertIntToIP(int, mask)
   local mask = mask or 4294967295

   local b4 = bit.urshift(bit.uband(int, 4278190080), 24)
   local b3 = bit.urshift(bit.uband(int, 16711680), 16)
   local b2 = bit.urshift(bit.uband(int, 65280), 8)
   local b1 = bit.urshift(bit.uband(int, 255), 0)
   if(mask ~= nil) then
       local m4 = bit.urshift(bit.uband(mask, 4278190080), 24)
       local m3 = bit.urshift(bit.uband(mask, 16711680), 16)
       local m2 = bit.urshift(bit.uband(mask, 65280), 8)
       local m1 = bit.urshift(bit.uband(mask, 255), 0)
       if((m1 == 255 or m1 == 0) and (m2 == 255 or m2 == 0) and (m3 == 255 or m3 == 0) and (m4 == 255 or m4 == 0)) then
           if m1 == 0 then b1 = "x" end
           if m2 == 0 then b2 = "x" end
           if m3 == 0 then b3 = "x" end
           if m4 == 0 then b4 = "x" end
       else
           if(m1 ~= 255 or m2 ~= 255 or m3 ~= 255 or m4 ~= 255) then
               return b1 .. "." .. b2 .. "." .. b3 .. "." .. b4 .. " : " .. m1 .. "." .. m2 .. "." .. m3 .. "." .. m4
           end
       end
   end

   return b1 .. "." .. b2 .. "." .. b3 .. "." .. b4
end

function onSay(cid, words, param)
   if(getPlayerAccess(cid) == 0) then
       return TRUE
   end

   local players = getOnlinePlayers()
   local IPs = {}
   local multiClients = {}
   local multiClientIPs = {}
   for i, player in ipairs(players) do
       local ip = getIPByName(player)
       local pos = table.find(IPs, ip)
       if(pos ~= nil) then
           if(not table.isStrIn(players[pos], multiClients)) then
               table.insert(multiClients, players[pos])
               table.insert(multiClientIPs, ip)
           end
           table.remove(players, pos)
           table.remove(IPs, pos)
           table.insert(multiClients, player)
           table.insert(multiClientIPs, ip)
       end
       table.insert(IPs, ip)
   end

   if(table.maxn(multiClients) > 0) then
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently online players with same IP address(es):")
       for i, multiClient in ipairs(multiClients) do
           doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, multiClient .. " (" .. convertIntToIP(multiClientIPs[i]) .. ")")
       end
   else
       doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Currently there aren't any players with same IP address(es).")
   end
   return FALSE
end

 

Arquivo.XML:

\data\talkactions\talkactions.xml:

<talkaction words="/check" script="mc_check.lua"/>

 

Como e um download nao precisa de um tutorial explicando como instalar.

Compartilhar este post


Link para o post
Nord    2
Nord

Mas que coisa, fiquei de cara (claro, não da de tirar), usou cada função que nunca tinha visto ou ouvido falar e fez o que eu pensei que não dava por scripting.

 

Aprovado

Compartilhar este post


Link para o post
Elys Zarox    0
Elys Zarox

Oo eu pensando em usar programas pra fazer isso, vlw ai cara por posta aqui =]

Compartilhar este post


Link para o post
sky sorcerer    0
sky sorcerer

Lol por isso que eu gosto de servers XML..

porque todos os server xml kie u ja usei vem com varios commandos como ESSe aew e varios otros...

Tfs nunca tem commandos bom.

Compartilhar este post


Link para o post
Mock    32
Mock
Lol por isso que eu gosto de servers XML..

porque todos os server xml kie u ja usei vem com varios commandos como ESSe aew e varios otros...

Tfs nunca tem commandos bom.

isso pq XML ja vem pronto tfs vc pode EDITA os comandos vc pode por p exemplo se o cara e tutor e so saber usar o comando /info nomedoplayer vc pode por p se ele usar + de 5x ele n poder usar + ou pode se ele usar tirar mana hp sei la :P ai vc pode faze oq quiser.

@topico

Mto bom n sabia q dava p fazer via lua.

Compartilhar este post


Link para o post
UrsO    0
UrsO

O mais legal é que é por talkactions, não precisa compiliar o servidor com a função nem nada...

 

Legal ;]

Compartilhar este post


Link para o post
Snap    0
Snap

Edita o post e coloca ae.. E avisa que só funciona pra versão 0.3 do TFS

 

Autor: Elf, TFS Developer.

Compartilhar este post


Link para o post
Marcelo Côrtes    0
Marcelo Côrtes
O mais legal é que é por talkactions, não precisa compiliar o servidor com a função nem nada...

 

Legal ;]

 

Legal também que com o tanto de funções, se tiver bastante online e não for num dedicado, não vai dar muito certo...

Não recomendaria um gm lá do ot polaco fazer isso... ^^

 

~nice code

bem complexo o code...

Compartilhar este post


Link para o post
phmarins    0
phmarins

Eita cara, errebentou aí ein? Muita imaginação isso :) nota 10 seu trabalho!

Compartilhar este post


Link para o post
Jereziah    0
Jereziah

O.o

Gostei mesmo cara.

Me surpreendeu agora.

Vou usa-lo Concerteza.

 

Muito Obrigado pelo Post.

Compartilhar este post


Link para o post
Kaska.    0
Kaska.

Parabéns, muito rox :B

 

Continue assim e tera futuro :D

Compartilhar este post


Link para o post
MotoBoy    0
MotoBoy

=O~~

cara.. tentei elr seu script.. mais tah impossivel x.x

num conheço um monte de comando ae

vc fez do 0 msm? soh vc? x.x

parabéns cara.. vc eh um futuro Nostradamus x.x

flws~~

Compartilhar este post


Link para o post
mendez    0
mendez
=O~~

cara.. tentei elr seu script.. mais tah impossivel x.x

num conheço um monte de comando ae

vc fez do 0 msm? soh vc? x.x

parabéns cara.. vc eh um futuro Nostradamus x.x

flws~~

 

Vcs taum perdendo a noção?

isso ai vem no tfs oO

Compartilhar este post


Link para o post
Mock    32
Mock
getIPByName(player)

pena q no q eu uso 2.14 n tem essa função :/

Compartilhar este post


Link para o post
gnomow157    0
gnomow157
getIPByName( player)

 

Mesmo problema aqui xD

Compartilhar este post


Link para o post
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×