Jump to content
Shang

[RLS]Borrar items desde el inventario.

Recommended Posts

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

Share this post


Link to post
Share on other sites

 

 
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

Share this post


Link to post
Share on other sites

 

 
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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

 

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

Share this post


Link to post
Share on other sites

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

No te digo que te pase, pero es consumir recursos a lo tonto, es mi opinión.

Pero vamos que aun asi consume una mierda. Pero la funcion mysql por source es mucho mejor, solo es un consejo.

Share this post


Link to post
Share on other sites
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 ^^

Share this post


Link to post
Share on other sites
Guest Caes   
Guest Caes

 

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

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


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...