DA

Account Manager

Por Darkwath, 21 de jan. de 2012 em Scripts

20
6.1k
DarkwathD
21 de janeiro de 2012 às 18:37

Tem como colocar limite de account manager online?

por causa de nuker :x

sylar07S
21 de janeiro de 2012 às 18:45

Tem como colocar limite de account manager online?

por causa de nuker :x

 

Olá, tudo bem?

 

- Existe sim um método, mas não é pra limitar o account manager, e sim á quantidade de contas que um certo "ip" pode logar

e então você defini o número de contas, ex: 2 conta por IP

 

- Desse jeito, se o suposto 'nuker' tentar usar programas, para logar diversos account manager, o script não irá permitir e fará ele logar apenas + 1 account manager, e automáticamente deslogar os demais.

 

Se você deseja adicionar o script, faça o seguinte:

 

Entre na pasta "\data\globalevents\scripts" e crie um novo script com o nome "anti_nuker.lua" dentro do script coloque o seguinte:

 

 

--[[
Anti-nuker System by Sylar07
]]--
local config = {
msg = "Tibia system has detected that you are multi clienting.",
maxMultiClients = 2,
allowGroupId = 2,
ignoreIps = {}
}
function onLogin(cid)
if getPlayerGroupId(cid) >= config.allowGroupId then
return TRUE
end
local number
local playersOnline = getPlayersOnline()
for _, pid in pairs(playersOnline) do
local pip = getPlayerIp(pid)
if cid ~= pid and getPlayerIp(cid) == pip and not isInArray(config.ignoreIps, doConvertIntegerToIp(getPlayerIp(cid))) then
number = (number or 0) + 1
if number > config.maxMultiClients then
return FALSE, doPlayerPopupFYI(cid, config.msg)
end
end
end
return TRUE
end

 

Entenda o script:

 

Nessa parte, é definido á mensagem que irá aparecer quando o player logar com mais de uma conta.

 

msg = "Tibia system has detected that you are multi clienting.",

 

Aqui, indica á quantidade player por "ip" no exemplo, está indicado duas contas por "ip".

 

maxMultiClients = 2,

 

E essa parte permite que players com 'GroupId=2" podem logar com quantidade ilimitada de contas.

 

allowGroupId = 2,

 

Aqui você pode abrir uma exceção para algum ip, por exemplo:

 

ignoreIps = {"127.0.0.1"}

 

Continuando:

 

Após inserir adicionar o script "anti_nuker.lua" na pasta "\data\globalevents\scripts" adicione a seguinte tag no arquivo "globalevents.xml" que encontra-se na pasta de mesmo nome.

 

<event type="login" name="AntiNuker" event="script" value="anti_nuker.lua"/>

Editado Janeiro 21 por sylar07

DarkwathD
21 de janeiro de 2012 às 18:50

hm e onde eu configuro isso?

bepokemonB
21 de janeiro de 2012 às 19:00

Limitar Account Managers.

local maxAccMngr = 5 -- Número máximo de account managers

function onLogin(cid)
local count = 0
if getCreatureName(cid) ~= 'Account Manager' then return true end

for _,pid in ipairs(getPlayersOnline()) do
if getCreatureName(pid) == 'Account Manager' then
count = count+1
end
end

if count >= maxAccMngr then
return doRemoveCreature(cid), false
end
return true
end

sylar07S
21 de janeiro de 2012 às 19:05

hm e onde eu configuro isso?

 

- Acabei de editar o tutorial no meu primeiro post.

Acredito que este método que eu postei seja sua melhor opção

- já pensou limitar 5 account manager e tiver 10 pessoas querendo entrar no seu ot?

você acaba perdendo player...

 

- No método que passei, só limita á quantidade de contas online por "ip" e não o account manager, que é super importante para o servidor e seu crescimento.

Editado Janeiro 21 por sylar07

DarkwathD
21 de janeiro de 2012 às 19:33

red dado :D

Editado Janeiro 25 por Darkwath

1 mês depois...
HisashiitYamagutiH
04 de fevereiro de 2012 às 17:04

LOL, kkkk, o do Byerne é bem superior, se tiver mais de 10 pessoas logadas no account manager ao mesmo tempo, isso seria muita sorte, pois é raro, caso você limitar o número de pessoas onlines por IP, ai sim você iria estar perdendo player, dã.

Existem pessoas da Lan-House que tentao entrar em ot server e se um nerd grita lá, vamos entrar nesse ot server, eu ouvi falar muito bem dele, o resto entra tbm e se só poder entrar 2 ou 3 pessoas por ip, vai perder uma grande parte da Lan-House.

 

Pensa véi, o do Byerne é sem dúvida, muito melhor.

bepokemonB
04 de fevereiro de 2012 às 17:23

LOL, kkkk, o do Byerne é bem superior, se tiver mais de 10 pessoas logadas no account manager ao mesmo tempo, isso seria muita sorte, pois é raro, caso você limitar o número de pessoas onlines por IP, ai sim você iria estar perdendo player, dã.

Existem pessoas da Lan-House que tentao entrar em ot server e se um nerd grita lá, vamos entrar nesse ot server, eu ouvi falar muito bem dele, o resto entra tbm e se só poder entrar 2 ou 3 pessoas por ip, vai perder uma grande parte da Lan-House.

 

Pensa véi, o do Byerne é sem dúvida, muito melhor.

 

Obrigado, mas a questão também não é essa. Eu só fiz exatamente oque ele pediu. Dá pra blokear apenas account managers com IPs iguais. Sem muita dificuldade.

HisashiitYamagutiH
04 de fevereiro de 2012 às 18:35

Já estou usando no meu ot server, valeu ae. :).

Vou tedar rep+ amanhã, é que hoje eu já dei pra o meu amigo, xD.

bepokemonB
04 de fevereiro de 2012 às 18:46

 

.

 

 

Para quem quiser com IP e Account Managers:

Sem identação:

 

function getMyAccountManagersByIp(cid)
local c = 0
for _,pid in pairs(getPlayersByIp(getPlayerIp(cid)))
if getCreatureName(pid) == "Account Manager" then
c = c+1
end
end
return c
end

local maxAccMngr = 5 -- Número máximo de account managers

function onLogin(cid)
if getCreatureName(cid) ~= 'Account Manager' then return true end

if getMyAccountManagersByIp(cid) >= maxAccMngr then
return false, doRemoveCreature(cid)
end
return true
end

 

 

Identado:

Pastebin

Editado Fevereiro 4 por Byerne

DarkwathD
04 de fevereiro de 2012 às 19:17

ei cara como q eu ponho no config lua?

bepokemonB
04 de fevereiro de 2012 às 19:19

ei cara como q eu ponho no config lua?

 

Como assim?

DarkwathD
04 de fevereiro de 2012 às 19:26

config nao falei errado kkkkk

é q eu pus ake no global events e nao funfo acabaro de me nukar

bepokemonB
04 de fevereiro de 2012 às 19:39

É em creaturescripts. Coloque isto dentro do login.lua em qualquer lugar depois de:

function onLogin(cid)

E antes de:

return TRUE
end

Editado Fevereiro 4 por Byerne

DarkwathD
04 de fevereiro de 2012 às 19:56

colokei

meu ot caiu bunito