Jump to content
×
×
  • Create New...

BUGS: Clonar item e "derrubar" servidores


Recommended Posts

  • Diretor

Hoje eu percebi que muitas pessoas estão levando a melhor com bugs de otserver.

E eu vim aqui ensinar para vocês como fazer tais bugs, e para quem administra um servidor também saber como tal bug é feito e assim pensar em uma forma de fixar.

 

 

Bug de mochilas:

Spoiler

Consiste em comprar qualquer mochila (ou algo que dê para guardar itens dentro).

Você fica comprando sem parar, uma hora o servidor vai bugar e cair.

Morte no trade:

Spoiler

Você encontra um npc de venda que possua algum monstro por perto.

Assim que achar você entra em troca com o npc (hi/trade) e se mata para um monstro perto.

O servidor vai começar a retornar vários erros e cair.

Bug da nurse:

Spoiler

Esse aqui é exclusivo para os poketibias:

Você abre o chat de npc perto da nurse joy e começa a spammar "hi".

O servidor vai sobrecarregar e cair.

Clonar item por guild:

Spoiler

Esse bug é mais complexo, vamos aos passos:

  1. Crie um personagem secundário
  2. Logue no seu personagem com item e no secundário ao mesmo tempo
  3. Dê itens do personagem "principal" para o personagem secundário
  4. Relogue no personagem secundário
  5. Crie uma guilda com o personagem principal (!createguild <nome>)
  6. Invite o personagem secundário (!invite <nick>)
  7. Não aceite o convite!
  8. Delete a guilda com o personagem principal (!removeguild)
  9. Devolva os itens para o personagem principal
  10. Relogue no personagem secundário

 

 

Bom, a minha ideia é mostrar como os bugs são feitos para os donos de servidores arrrumar.

Obrigado pela atenção!

Até a próxima.

Link to post
Share on other sites
  • Diretor

Show , realmente muitos servidores sofrem com esses BUGS! Inclusive no meu tinha o do NPC e o de clonar item na guild, mas felizmente concertei xD

Vale lembrar que muitos server também tem problema com o BOT, ao usar o Party em si mesmo o servidor crasha.

Link to post
Share on other sites
  • Diretor
Agora, Yan Liima disse:

Show , realmente muitos servidores sofrem com esses BUGS! Inclusive no meu tinha o do NPC e o de clonar item na guild, mas felizmente concertei xD

Vale lembrar que muitos server também tem problema com o BOT, ao usar o Party em si mesmo o servidor crasha.

Depois me manda os passos direito desse do BOT que eu coloco aqui :)

Link to post
Share on other sites

A pouco tempo atrás tinha um cara me ameçando com esse bug de usar party em si mesmo mandando codigos invalidos para o Mysql, eu só descobri que se tratava de uma coisa besta em outro forum!

Link to post
Share on other sites

Tem o bug da house também, que é:

Entra em uma house e dê o comando !invite, após abrir a aba de convidados, escreva:

*down

*down

*down

*down 

E salve, depois fique usando o comando "!invite" e dando ok, até chegar uma hora em que o servidor vai crashar, é bem usado também 

 

Link to post
Share on other sites
  • 2 weeks later...

Solução pro bug da party:
Em game.cpp procure por:

Party* party = player->getParty();

E adicione acima: 

if (invitedPlayer == player)
        return false;

O crash acontece quando usam elfbot e dão party em si mesmo.
Créditos: Gesior.pl

EDIT:
Bug nas portas que empurram items (Geralmente são as que precisam de level pra entrar).
Abra a porta, coloque vários items na stack e saia. Quando a porta fechar, vai crashar o seu cliente e o de todos que estiverem perto(Na mesma tela). Não sei como fica o servidor, mas da forma que testei (Criei vários items estacáveis com o GOD >/i gold), ele não caiu, mas provavelmente dê lag.
EDIT 2:
Quando teve o clean, deu crash nos clientes que eu tinha aberto.
Solução:
Mudar a quantidade máxima de item por tile e/ou tirar a script de transformar gold. (Já que na maioria dos OTs é relativamente fácil fazer dinheiro, tirar esse script diminuirá a quantidade de lixo que um player pode produzir.)

 

EDIT3:
Sobre o bug das mochilas:
Script auxiliar(Se tiver pego o de antes desse edit, mude):
Vá em: ...\data\npc\lib\npcsystem procure por: -- Handles onBuy events. If you wish to handle this yourself, use the CALLBACK_ONBUY callback.
E substitua a função por essa:
 

function NpcHandler:onBuy(cid, itemid, subType, amount, ignoreCap, inBackpacks)

		local config = {
		sto = 11000, --storage
		tempo = 60, --tempo de cooldown para comprar novamente
		it = {2144, 2149}, --id dos itens
		total = 10 --total de itens que pode ser comprado por vez
		}
		
		if isInArray(config.it, itemid) and amount >= config.total then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "nao pode comprar mais que "..config.total.." itens desse.")
			return false
		elseif getPlayerStorageValue(cid, config.sto) > os.time() and isInArray(config.it, itemid) and amount <= config.total then
			doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "espere "..(getPlayerStorageValue(cid, config.sto) - os.time()).." segundo(s) para comprar novamente.")
			return false
		elseif isInArray(config.it, itemid) and amount <= config.total then
			setPlayerStorageValue(cid, config.sto, os.time() + config.tempo)
		end
		
		local callback = self:getCallback(CALLBACK_ONBUY)
		if(callback == nil or callback(cid, itemid, subType, amount, ignoreCap, inBackpacks)) then
			if(self:processModuleCallback(CALLBACK_ONBUY, cid, itemid, subType, amount, ignoreCap, inBackpacks)) then
				--
			end
		end
	end

 

Edited by gabriel28
Link to post
Share on other sites
  • 2 months later...
  • 9 months later...
  • 3 months later...
  • 3 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now