Jump to content

[RLS]Borrar items desde el inventario.


Shang

Mensajes recomendados

PD: me podrías decir si se puede, como has echo para que se vea que es +9 el arma? 8401409b3a8405a990625216298cf416.png

 

Binario. Eso es cosa de sema. Si quieres comprárselo habla con el por skype.

 

Esta que se acuerda XDDDD.

 

Se ve interesante, facil, practico y sencillo.

 
Lleva parte de python, tan sencillo no es... xD
Enlace para comentar
Compartir en otros sitios

 

 
Lleva parte de python, tan sencillo no es... xD

 

Ya has dicho mucho gracias...xDD 

 

pd:  lo que no me acuerdo es donde poner  lo de :

## Print

                {

                    "name":"Money_Slot",

                    "type":"button",

Pero ahora lo busco gracias :3
Enlace para comentar
Compartir en otros sitios

 

 
Lleva parte de python, tan sencillo no es... xD

 

El que lo de las +9?, o  tu sistema?, Si yo no te digo que sea facil de hacer este sistema, si me pongo yo a lo mejor duro 10 veces mas o ni lo consigo.

Con sencillo me refiero a que es muy facil de borrar los items.

 

Yo lo que haría, seria coger un cmd, y conectar el boton con quest, pero supongo que con eso lo de arrastrar no funcionaría.

Enlace para comentar
Compartir en otros sitios

El que lo de las +9?, o  tu sistema?, Si yo no te digo que sea facil de hacer este sistema, si me pongo yo a lo mejor duro 10 veces mas o ni lo consigo.

Con sencillo me refiero a que es muy facil de borrar los items.

 

Yo lo que haría, seria coger un cmd, y conectar el boton con quest, pero supongo que con eso lo de arrastrar no funcionaría.

 

Es lo que hace la quest, pero manda a borrar el item cuando pulsas en Si enviando el slot y el vnum. Porque no puedes hacerlo sin elegir el slot ni el vnum del item, sinó no borraría nada xD.

 

Me referia a lo de +9 en el item que lleva python también aparte de editar el binario.

Enlace para comentar
Compartir en otros sitios

Es lo que hace la quest, pero manda a borrar el item cuando pulsas en Si enviando el slot y el vnum. Porque no puedes hacerlo sin elegir el slot ni el vnum del item, sinó no borraría nada xD.

 

Me referia a lo de +9 en el item que lleva python también aparte de editar el binario.

Shang no me coge la quest, xD he puesto esto:

### questlua_item.cpp

 
Debajo de la función item_remove (int item_remove(lua_State* L)), pegar esto:
 
int item_remove_stack(lua_State* L)
{
CQuestManager& q = CQuestManager::instance();
LPITEM item = q.GetCurrentItem();
if (item != NULL) {
if (q.GetCurrentCharacterPtr() == item->GetOwner()) {
ITEM_MANAGER::instance().RemoveItem(item);
} else {
sys_err("Tried to remove invalid item %p", get_pointer(item));
}
q.ClearCurrentItem();
}
 
return 0;
}
 
Debajo de:
 
{ "remove", item_remove },
 
Pegar esto:
 
{ "remove_stack", item_remove_stack },
 
Créditos: Vanilla.

en questlib.lua, si es en el sourcer avisame que lo pongo,) pero la quest me da core dumped:

2ce812eb6ada6975c352d5daf42e0857.png
Todo lo demás está genial  solo falta a comodar correctamente:p
Enlace para comentar
Compartir en otros sitios

Mmm que pone en el txt? No pone source? Si pone source es por algo. También necesitarás la lib de mijago para el mysql_query y la función item.get_attr, que si no la tienes, le pediré permiso a PACI por si puedo pasarla, ya que es suya la que tengo.

Enlace para comentar
Compartir en otros sitios

Mmm que pone en el txt? No pone source? Si pone source es por algo. También necesitarás la lib de mijago para el mysql_query y la función item.get_attr, que si no la tienes, le pediré permiso a PACI por si puedo pasarla, ya que es suya la que tengo.

Vale muchas gracias ahora lo pondré en el sourcer y mirare s ver si tengo la función aunque lo dudo mucho

Enlace para comentar
Compartir en otros sitios

Edit: sigue igual# no coge la quest 

function string:split(delimiter)
	local result = {}
	local from = 1
	local delim_from, delim_to = string.find(self, delimiter, from)

	while delim_from do
		table.insert(result, string.sub(self, from , delim_from-1))
		from = delim_to + 1
		delim_from, delim_to = string.find(self, delimiter, from)
	end
	table.insert(result, string.sub(self, from))
	return result
end

function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end

mysql_query = function(query)
	local version, MYSQL_LOGS = 55, get_locale_base_path().."/quest/io/mysql_logs"
 
	if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
	if version == 51 then
		os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)
	elseif version == 55 then
		os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi)
	else
		return 0
	end
	os.execute ("echo '"..pc.get_account_id().." : "..pc.get_name().." Realiza: "..query.."' >> "..MYSQL_LOGS)
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
    for i = 2, table.getn(t) do 
		table.foreach(t[i],function(a,b)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(b) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(b) or b or 'NULL'
		end)
	end
    out.__lines = t[1]
    return out
end

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

PD: Veo sobrecargar la quest usando mysql_query para eso, si fuera la función mysql del source no vería problema, pero esta consume mas.

Enlace para comentar
Compartir en otros sitios

 

function string:split(delimiter)
	local result = {}
	local from = 1
	local delim_from, delim_to = string.find(self, delimiter, from)

	while delim_from do
		table.insert(result, string.sub(self, from , delim_from-1))
		from = delim_to + 1
		delim_from, delim_to = string.find(self, delimiter, from)
	end
	table.insert(result, string.sub(self, from))
	return result
end

function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end

mysql_query = function(query)
	local version, MYSQL_LOGS = 55, get_locale_base_path().."/quest/io/mysql_logs"
 
	if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
	if version == 51 then
		os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)
	elseif version == 55 then
		os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi)
	else
		return 0
	end
	os.execute ("echo '"..pc.get_account_id().." : "..pc.get_name().." Realiza: "..query.."' >> "..MYSQL_LOGS)
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
    for i = 2, table.getn(t) do 
		table.foreach(t[i],function(a,b)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(b) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(b) or b or 'NULL'
		end)
	end
    out.__lines = t[1]
    return out
end
Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

PD: Veo sobrecargar la quest usando mysql_query para eso, si fuera la función mysql del source no vería problema, pero esta consume mas.

._. Llevo usando ese sistema un mes y no me ha pasado nada...

Enlace para comentar
Compartir en otros sitios

function string:split(delimiter)
	local result = {}
	local from = 1
	local delim_from, delim_to = string.find(self, delimiter, from)

	while delim_from do
		table.insert(result, string.sub(self, from , delim_from-1))
		from = delim_to + 1
		delim_from, delim_to = string.find(self, delimiter, from)
	end
	table.insert(result, string.sub(self, from))
	return result
end

function split(str, delim, maxNb)
    if str == nil then return str end
    if string.find(str, delim) == nil then return { str } end
    if maxNb == nil or maxNb < 1 then maxNb = 0 end
    local result = {}
    local pat = "(.-)" .. delim .. "()"
    local nb = 0
    local lastPos
    for part, pos in string.gfind(str, pat) do
        nb = nb + 1
        result[nb] = part
        lastPos = pos
        if nb == maxNb then break end
    end
    if nb ~= maxNb then result[nb + 1] = string.sub(str, lastPos) end
    return result
end

mysql_query = function(query)
	local version, MYSQL_LOGS = 55, get_locale_base_path().."/quest/io/mysql_logs"
 
	if not pre then
        local rt = io.open('CONFIG','r'):read('*all')
        pre,_= string.gsub(rt,'.+PLAYER_SQL:%s(%S+)%s(%S+)%s(%S+)%s(%S+).+','-h%1 -u%2 -p%3 -D%4')
    end
    math.randomseed(os.time())
    local fi,t,out = 'mysql_data_'..math.random(10^9)+math.random(2^4,2^10),{},{}
	if version == 51 then
		os.execute('mysql '..pre..' --e='..string.format('%q',query)..' > '..fi)
	elseif version == 55 then
		os.execute('mysql '..pre..' -e'..string.format('%q',query)..' > '..fi)
	else
		return 0
	end
	os.execute ("echo '"..pc.get_account_id().." : "..pc.get_name().." Realiza: "..query.."' >> "..MYSQL_LOGS)
    for av in io.open(fi,'r'):lines() do table.insert(t,split(av,'\t')) end; os.remove(fi);
    for i = 2, table.getn(t) do 
		table.foreach(t[i],function(a,b)
        out[i-1]               = out[i-1] or {}
        out[i-1][a]            = tonumber(b) or b or 'NULL'
        out[t[1][a]]           = out[t[1][a]] or {}
        out[t[1][a]][i-1]      = tonumber(b) or b or 'NULL'
		end)
	end
    out.__lines = t[1]
    return out
end

Debes iniciar sesión para ver el contenido del enlace en esta publicación.

 

PD: Veo sobrecargar la quest usando mysql_query para eso, si fuera la función mysql del source no vería problema, pero esta consume mas.

 

Gracias ^^

Enlace para comentar
Compartir en otros sitios

 

 

PD: Veo sobrecargar la quest usando mysql_query para eso, si fuera la función mysql del source no vería problema, pero esta consume mas.

 

¿En que te basas para decir eso?, mysql_query es una función en lua que ejecuta el comando "mysql" en el sistema, el cual es el cliente que mysql trae, y vamos que no hay nada más optimo para ejecutar una consulta que el propio cliente de mysql.

Sobrecargar...

Enlace para comentar
Compartir en otros sitios

¿En que te basas para decir eso?, mysql_query es una función en lua que ejecuta el comando "mysql" en el sistema, el cual es el cliente que mysql trae, y vamos que no hay nada más optimo para ejecutar una consulta que el propio cliente de mysql.

Sobrecargar...

Sinceramente no me baso en la propia función mysql, si no a la hora antes de que se ejecute. Pero vamos que si tu me dices que es lo mismo, me lo creo. No soy ningun experto en esto, y tu controlas de esto mucho mas que yo.

Enlace para comentar
Compartir en otros sitios

en pocas ejecucciones es mejor la funcion lua, en + de 300-400 funciones a la vez, se recomienda que funcione internamente, por source, consume menos, es mas rapido, y produce menos lag a nivel usuario.

 

Y esto esta mas que comprovado, por resultados obtenidos de testeo.

 

Concuerdo, con dragon en que es mejor internamente.

 

Saludos

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