Jump to content

Fix -> Papelera de Shang con Sytem Pet Official


Break

Mensajes recomendados

Hay servidores que siguen usando la papelera de shang:

Hay un bug con este sistema y es, que cuando invocas un pet (del sistema pet oficial), y eliminas el item de invocación se crashea el servidor.

Voy a dar una solución bastante sencilla y útil. Si el item se encuentra entre el rango de valores fijados no se elimina.

Lo único que he añadido ha sido la condición:

            -- Aquí hago una condición y es que si el item se encuentra entre 55701 y 55706, no se puede eliminar
            if item_vnum>55700 and item_vnum<55707 then
               syschat ("A la siguiente, que intentes bugear te reviento")
               return
            end

Muestro donde se colocaría 

quest borrar_items begin
	state start begin
		
		when login begin
			cmdchat("BORRAR QID|"..q.getcurrentquestindex())
		end
		
		when button or info begin
			cmdchat("BORRAR INPUT|1")
			local shang = split(input(cmdchat("BORRAR SEND|")), "|")
			cmdchat("BORRAR INPUT|0")
			
			if shang[1] == "BORRAR" then
				borrar_items.Borrar(tonumber(shang[2]), tonumber(shang[3]))
			end
		end
			
		function Borrar(slot, vnum)
			item.select_cell(slot)
			local item_vnum, item_count, item_id = item.get_vnum(), item.get_count(), item.get_id()
			if is_test_server() then
				syschat("---- Debug ----")
				syschat("Vnum: "..tostring(vnum))
				syschat("Slot: "..tostring(slot))
				syschat("ID: "..tostring(item.get_id()))
				syschat("---- End_Debug ----")
			end
			-- Aquí hago una condición y es que si el item se encuentra entre 55701 y 55706, no se puede eliminar
			if item_vnum>55700 and item_vnum<55707 then
			   syschat ("A la siguiente, que intentes bugear te reviento")
			   return
			end
			item.remove_stack()
		end
	end
end

Eso es todo chicos, espero que os sea de ayuda!

 

Un saludo.

Enlace para comentar
Compartir en otros sitios

Mejor usar algo así

local idsellos = {1,2,4}

for i = 0, table.getn(idsellos) do

if ítem.get_vnum() ==idsellos[1] then

chat("no puedes borrar esto")

end

end

Por que si pones "if and then", es lo mismo que > si arrastras ambos sellos al cubo no te dejare eliminarlos < cosa que no es posible y terminarias en las mismas xD

Enlace para comentar
Compartir en otros sitios

hace 1 hora, Dilong dijo:

Mejor usar algo así

local idsellos = {1,2,4}

for i = 0, table.getn(idsellos) do

if ítem.get_vnum() ==idsellos[1] then

chat("no puedes borrar esto")

end

end

Por que si pones "if and then", es lo mismo que > si arrastras ambos sellos al cubo no te dejare eliminarlos < cosa que no es posible y terminarias en las mismas xD

Si lo que quiero que no pueda eliminar el item, cuando lo arrastre al cubo, como lo puse. Funciona correctamente, no elimina el item, sale el mensaje que puse. Y los demas items si lo elimina.

Enlace para comentar
Compartir en otros sitios

hace 1 hora, Dilong dijo:

Mejor usar algo así

local idsellos = {1,2,4}

for i = 0, table.getn(idsellos) do

if ítem.get_vnum() ==idsellos[1] then

chat("no puedes borrar esto")

end

end

Por que si pones "if and then", es lo mismo que > si arrastras ambos sellos al cubo no te dejare eliminarlos < cosa que no es posible y terminarias en las mismas xD

Un for para un búsqueda 😐

Enlace para comentar
Compartir en otros sitios

Unirse a la conversación

Puedes publicar ahora y registrarte más tarde. Si tienes una cuenta, regístrate para publicar con su cuenta.

Guest
Responder a este tema...

×   Has pegado contenido con formato .   Eliminar formato

  Only 75 emoji are allowed.

×   Tu enlace se ha incorporado automáticamente.   Mostrar un enlace en su lugar

×   Se ha restaurado el contenido anterior. .   Borrar editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recientemente navegando por este tema   0 miembros

    • No hay usuarios registrados visitando esta página.
×
×
  • Crear nuevo...