Jump to content

Dragonslayer

Miembro
  • Contador contenido

    364
  • Ingreso

  • Última visita

  • Días ganados

    53

Todo lo publicado por Dragonslayer

  1. 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 http://metin2zone.net/index.php?/topic/20552-c-get-attr-set-attr/#entry118109 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.
  2. Archivo: questlua_item.cpp Antes de meter esto, quiero que sepais que item.set_value = item.set_attr. int item_get_attr(lua_State* L) { LPITEM item = CQuestManager::instance().GetCurrentItem(); if(!lua_isnumber(L,1) || !item) { return 0; } int bonus = lua_tonumber(L,1); if(bonus < 0 || bonus > 6) { return 0; } TPlayerItemAttribute attr = item->GetAttribute(bonus); lua_pushnumber(L,attr.bType); lua_pushnumber(L,attr.sValue); return 2; } int item_set_attr(lua_State* L) { LPITEM item = CQuestManager::instance().GetCurrentItem(); if (!lua_isnumber(L,1)||!lua_isnumber(L,2)||!lua_isnumber(L,3)||!item) { lua_pushnumber(L,0); return 1; } int bonus = lua_tonumber(L,1); if (bonus <0 || bonus > 6) { lua_pushnumber(L,0); return 1; } item->SetForceAttribute(bonus,lua_tonumber(L,2),lua_tonumber(L,3)); lua_pushnumber(L,1); return 1; } { "get_attr", item_get_attr }, { "set_attr", item_set_attr },
  3. 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.
  4. Esta que se acuerda XDDDD. Se ve interesante, facil, practico y sencillo.
  5. Estas poniendo demasiada exp para subir de nivel. El limite es 2.1kkk
  6. El error esta antes de eso. De todas formas no hay que tocar el archivo chat_item
  7. Parece una gilipollez pero es de gran ayuda muchas veces XD Buen aporte
  8. Sabes que para esto, tienes que tener el firewall bien instalado no?
  9. No me gusta hacer este tipo de post. Pero solo lo hago porque no quiero que nadie intente lucrarse de algo que esta publico, con el desconocimiento de los "compradores" o con tal de revender un trabajo que no es suyo. Bueno basicamente es todo lo importante del rotten. Si quereís sacar algo os buscais la vida. No pienso ayudar a nadie en esto. MEGA Ale a ver si no lo dejais seco. Y antes de publicar cosas por separado de este cliente, pensar en el trabajo que han hecho ellos. Un saludo.
  10. Yo quería el psd en su día, seguramente si lo hubiera tenido tendría esta interfaz. Buen aporte.
  11. Porque yo en mi server tengo 24, si tu tienes 13 pues pones 13. Esto es una guía interactiva, no la tienes que seguir al pie de la letra.
  12. Dios me acabo de dar cuenta, estan bestiales estas armas. Gracias por traerlas XD
  13. Tercera vez ya. A ver si leemos mejor. "Ahora añadiremos cuantos rangos hay y cual sera el rango invisible"
  14. Ahora añadiremos cuantos rangos hay y cual sera el rango invisible, el que no se ve el nombre, por defecto es el neutral pero si hemos añadido hay que cambiarle el numero. Archivo InstanceBase.h Pues revisa una cuarta vez. Ademas de que justo encima de tu mensaje tienes la solucion .....
  15. ... Tienes una barra para moverla ... Buen aporte esta interesante. Me gusta la parte de "siempre estoy tocando los huevos" XD
  16. Toma esta quest. quest perfect begin state start begin when 50512.use with begin table.foreachi(special.active_skill_list[pc.get_job()+1][pc.get_skill_group()],function(r,skill) pc.set_skill_level(skill,40) end) chat("Has recibido tus P") item.remove() end end end
  17. Porque no lo lees bien? "Ya casi acabamos, ahora vamos al Visual Studio, Tools->Options->Project and Solutions->VC++ Directories=>Select Include files y hay buscamos nuestra carpeta include_stuff, en el mismo sitio ahora seleccionamos Library Files y buscamos nuestra carpeta lib_stuff."
×
×
  • Crear nuevo...