Jump to content

fakzo

Members
  • Content Count

    14
  • Joined

  • Last visited

1 Follower

About fakzo

  • Rank
    Novato

Recent Profile Visitors

289 profile views
  1. Hola, estoy haciendo una especie de bot que se inyecta en un cliente, quiero obtener el objeto de la clase GameWindow del archivo game.py que se está utilizando en el cliente. Es decir, podría crear un objeto de la clase GameWindow, pero no sería el que se está utilizando, necesito en particular el que se está utilizando así puedo acceder al estado actual del objeto y obtener un poco de información actual o modificar algunas cosas. Quizás estoy intentando algo imposible, o quizás desconozco mucho jaja. Saludos!
  2. Gracias por sus respuestas! He logrado compilando el source/db que me lea los protos, pero ahora tengo otro problema jaja, el servidor arroja connecction refused. El syrrer de la carpeta db arroja lo siguiente: SYSERR: Jul 21 23:02:17 :: Start: TABLE_POSTFIX not configured use default SYSERR: Jul 21 23:02:17 :: ChildLoop: AsyncSQL: query failed: Data truncated for column 'size' at row 1 (query: replace into mob_proto (vnum, name, locale_name, type, rank, battle_type, level, size, ai_flag, setRaceFlag, setImmuneFlag, on_click, empire, drop_item, resurrection_vnum, folder, st, dx, ht, iq, damage_min, damage_max, max_hp, regen_cycle, regen_percent, exp, gold_min, gold_max, def, attack_speed, move_speed, aggressive_hp_pct, aggressive_sight, attack_range, polymorph_item, enchant_curse, enchant_slow, enchant_poison, enchant_stun, enchant_critical, enchant_penetrate, resist_sword, resist_twohand, resist_dagger, resist_bell, resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison, dam_multiply, summon, drain_sp, skill_vnum0, skill_level0, skill_vnum1, skill_level1, skill_vnum2, skill_level2, skill_vnum3, skill_level3, skill_vnum4, skill_level4, sp_berserk, sp_stoneskin, sp_godspeed, sp_deathblow, sp_revive) values (102, "??", "Wolf", 0, 0, 0, 3, 0, 0, 1, 0, 0, SYSERR: Jul 21 23:02:17 :: ChildLoop: AsyncSQL: query failed: Data truncated for column 'size' at row 1 (query: replace into mob_proto (vnum, name, locale_name, type, rank, battle_type, level, size, ai_flag, setRaceFlag, setImmuneFlag, on_click, empire, drop_item, resurrection_vnum, folder, st, dx, ht, iq, damage_min, damage_max, max_hp, regen_cycle, regen_percent, exp, gold_min, gold_max, def, attack_speed, move_speed, aggressive_hp_pct, aggressive_sight, attack_range, polymorph_item, enchant_curse, enchant_slow, enchant_poison, enchant_stun, enchant_critical, enchant_penetrate, resist_sword, resist_twohand, resist_dagger, resist_bell, resist_fan, resist_bow, resist_fire, resist_elect, resist_magic, resist_wind, resist_poison, dam_multiply, summon, drain_sp, skill_vnum0, skill_level0, skill_vnum1, skill_level1, skill_vnum2, skill_level2, skill_vnum3, skill_level3, skill_vnum4, skill_level4, sp_berserk, sp_stoneskin, sp_godspeed, sp_deathblow, sp_revive) values (103, "????", "Alpha-Wolf", 0, 0, 0, 4, 0, 0, 1 ..... Esto se repite con todos los mobs creo. Luego sigue esto. ..... SYSERR: Jul 21 23:02:20 :: ChildLoop: AsyncSQL: query failed: Out of range value for column 'socket_pct' at row 1 (query: replace into item_proto (vnum, type, subtype, name, locale_name, gold, shop_buy_price, weight, size, flag, wearflag, antiflag, immuneflag, refined_vnum, refine_set, magic_pct, socket_pct, addon_type, limittype0, limitvalue0, limittype1, limitvalue1, applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, value0, value1, value2, value3, value4, value5 ) values (180, 1, 0, "¼­¸ð°Ë+0", "Giftschwert+0", 360000, 360001, 0, 2, 1, 16, 32, 0, 181, 19, 1, 255, 0, 0, 0, 0, 7, 17, 0, 0, 0, 0, 0, 0, 0, 100, 140, 0, -1 ) errno: 1264) SYSERR: Jul 21 23:02:20 :: ChildLoop: AsyncSQL: query failed: Out of range value for column 'socket_pct' at row 1 (query: replace into item_proto (vnum, type, subtype, name, locale_name, gold, shop_buy_price, weight, size, flag, wearflag, antiflag, immuneflag, refined_vnum, refine_set, magic_pct, socket_pct, addon_type, limittype0, limitvalue0, limittype1, limitvalue1, applytype0, applyvalue0, applytype1, applyvalue1, applytype2, applyvalue2, value0, value1, value2, value3, value4, value5 ) values (181, 1, 0, "¼­¸ð°Ë+1", "Giftschwert+1", 360000, 360001, 0, 2, 1, 16, 32, 0, 182, 20, 1, 255, 0, 0, 0, 0, 7, 18, 0, 0, 0, 0, 0, 0, 0, 100, 140, 8, -1 ) errno: 1264) ..... Y asi se repite con muchos items, no con todos, solo con algunos. Finalmente continúa así ..... SYSERR: Jul 21 23:02:22 :: Load: DirectQuery failed(SELECT IP_FROM, IP_TO, COUNTRY_NAME FROM iptocountry) SYSERR: Jul 21 23:02:36 :: Process: FDWATCH: peer null in event: ident 22 SYSERR: Jul 21 23:02:36 :: Process: FDWATCH: peer null in event: ident 22 SYSERR: Jul 21 23:02:36 :: Process: FDWATCH: peer null in event: ident 22 SYSERR: Jul 21 23:02:36 :: Process: FDWATCH: peer null in event: ident 24 SYSERR: Jul 21 23:02:36 :: Process: FDWATCH: peer null in event: ident 24 SYSERR: Jul 21 23:02:36 :: Process: FDWATCH: peer null in event: ident 24 SYSERR: Jul 21 23:02:37 :: Process: FDWATCH: peer null in event: ident 21 SYSERR: Jul 21 23:02:37 :: Process: FDWATCH: peer null in event: ident 23 SYSERR: Jul 21 23:02:37 :: Process: FDWATCH: peer null in event: ident 20 SYSERR: Jul 21 23:02:57 :: Process: FDWATCH: peer null in event: ident 22 SYSERR: Jul 21 23:02:57 :: Process: FDWATCH: peer null in event: ident 22 SYSERR: Jul 21 23:02:57 :: Process: FDWATCH: peer null in event: ident 22 SYSERR: Jul 21 23:02:57 :: Process: FDWATCH: peer null in event: ident 20 SYSERR: Jul 21 23:02:57 :: Process: FDWATCH: peer null in event: ident 24 SYSERR: Jul 21 23:02:58 :: Process: FDWATCH: peer null in event: ident 21 SYSERR: Jul 21 23:02:58 :: Process: FDWATCH: peer null in event: ident 23 Modifiqué los valores de la columna socket_pct llevándolos a 0, para que no exceda el rango, igualmente me sale el mismo error, y como podemos observar en el syrrer lo lee como 255, no se por qué.. socket_pct creo que tiene como valores posibles (-128, 127), según navicat el "tipo de dato" de la columna es TINYINT = 1 Byte (8 bits) -> (-128 hasta 127) o sin signo (0 hasta 255).. Aunque no se, ya me estoy perdiendo. Se que esto modifica un poco el tema central del post, pero si alguien puede ayudarme quizás no vale la pena abrir un nuevo post. Saludos!
  3. Hola, gracias por su ayuda y disculpen la tardanza! Así está la carpeta /game/db/ aunque en este caso es /game/Datenbank/ Luego le he agregado aquí mismo los archivos 'item_proto.txt', 'item_names.txt', 'mob_proto.txt', 'mob_names.txt' y como dije con anterioridad no hubo diferencia alguna.. como si no los hubiese "leído" ya que nunca se los "llamó". Hola, gracias por tu respuesta. Si, he intentado por Navicat, desafortunadamente no he logrado nada :( Saludos!
  4. Hola, gracias por tu respuesta. Efectivamente los archivos no están e inicia perfectamente. No se cómo, no se por qué pero funciona de otra manera. No estaban los archivos en la carpeta /game/db/.. Agregué unos y no se modificaron los nombres, no me dio error ni nada, no cambio absolutamente nada.. Al parecer tiene otra configuración, cosa que no se donde puedo ver.. Sería una pena tener que cambiar de files porque no puedo traducirlas :(
  5. Gracias por tu ayuda, he intentando creando los archivos, pero nada ha sucedido, los nombres siguen iguales que antes. Saludos
  6. Hola, he leído en el foro que para traducir las files, unas de las cosas que debes hacer es traducir el archivo item_proto.txt y mob_proto.txt que se encuentran en /game/db/.. He hecho algo de esto con otras files y todo bien. El problema es que ahora estoy trabajando con unas files que no tienen estos archivos! He buscado en todas las carpetas y no están. Como se puede traducir esto? He probado, simplemente por probar, traduciendo en la bases de datos, así como los files viejos, pero como era de esperar nada ha sucedido. Espero que alguien pueda guiarme, saludos!
  7. Muchas gracias a todos por sus respuestas y su ayuda! Ya he logrado resolverlo. Lo primero que hice fue eliminar los dos archivos mencionados y los deje limpios, ahí inició correctamente el servidor. Entonces supe que efectivamente estaba ahí el error. Luego no quedo otra que ir solucionando a mano y viendo que mobs o items no existen, porque error de sintaxis no había. Saludos!
  8. Gracias por tu respuesta, he dejado el server abierto por media hora aproximadamente y sigue dando 'Connection refused'. Ahh, me dejé guiar por las respuestas de este post... Aquí dejo el syrrer core3 ch1: SYSERR: Jul 15 19:42:36 :: socket_connect: HOST localhost:26842, could not connect. SYSERR: Jul 15 19:42:36 :: ChildLoop: AsyncSQL: query failed: Out of range value for column 'time' at row 1 (query: INSERT INTO bootlog (time, hostname, channel) VALUES(NOW(), 'channel1', 1) errno: 1264) SYSERR: Jul 15 19:42:36 :: LoadPackageCryptInfo: [PackageCryptInfo] Failed to load package/cshybridcrypt_metin2_patch_w20_sound.dat SYSERR: Jul 15 19:42:36 :: LoadPackageCryptInfo: [PackageCryptInfo] Failed to load package/cshybridcrypt_metin2_patch_w21_etc.dat SYSERR: Jul 15 19:42:36 :: LoadPackageCryptInfo: [PackageCryptInfo] Failed to load package/cshybridcrypt_metin2_patch_ds.dat SYSERR: Jul 15 19:42:36 :: LoadPackageCryptInfo: [PackageCryptInfo] Failed to load package/cshybridcrypt_metin2_patch_dss_box.dat SYSERR: Jul 15 19:42:39 :: socket_connect: HOST localhost:26842, could not connect. SYSERR: Jul 15 19:42:42 :: socket_connect: HOST localhost:26842, could not connect. SYSERR: Jul 15 19:42:45 :: socket_connect: HOST localhost:26842, could not connect. SYSERR: Jul 15 19:42:48 :: socket_connect: HOST localhost:26842, could not connect. Las ultimas lineas se repiten sucesivamente. Las lineas de [PackageCryptInfo] según lo leído en el post que pasé no tiene mucha importancia.. Luego lo otro no sé. En el core 1 salen solo las lineas de 'could not connect' y de [PackageCryptInfo] Saludos y gracias por sus respuestas!
  9. Hola! Estoy por iniciar unas files que he descargado y sin haber editado nada al iniciar el ch1 me sale el error 'Connection refused'. Primero quiero aclarar que soy nuevo en esto así que quizás digo cosas tontas jaja. Según he leído en los comentarios del post donde se publicaron tales files el error se debe a un error en los archivos 'mob_drop_item.txt' y 'special_item_group.txt'. Ademas he leído en este foro que el error 'Connection refused' se produce por problema en archivos de este "estilo". Ahora el problema es que no puedo saber si es un error de sintaxis o por ejemplo un error del estilo de que el mob al cual se le esta añadiendo un drop no existe. En los syrrers no hay nada. Cómo puedo saber en que linea está el error? Suponiendo que no hay una forma directa de esto y solo queda hacerlo a mano, que tipos de errores de sintaxis hay para estos archivos? Por ejemplo, Las tabulaciones son obligatorias o se pueden poner espacios en su lugar? Puedo poner dos grupos distintos con un mismo mob? Hay alguna restricción en el nombre del grupo? puede haber dos iguales? Como seria la sintaxis "básica" de cada uno en pseudocódigo? Por si no me explico bien en la última pregunta me refiero a por ejemplo para ''mob_drop_item.txt' la sintaxis por lo que he leído sería algo así: En el caso del otro archivo, 'special_item_group.txt', estoy mas perdido. Espero que alguien pueda orientarme un poco, saludos!
  10. Gracias por tu ayuda. Reinstalé directx, actualicé todos los drivers, también instalé por las dudas diversos programas como .Net framework, entre otros. Que más puede estar causando el impedimento con la función SaveScreenShot de la librería grp?... Más especificamente el error "Failed to lock the surface". Ya no se me ocurre. Llevo tiempo con esto y no sé que más hacer. Espero que puedas ayudarme o alguien pueda decirme otra posible causa a este error. Gracias, saludos!
  11. La verdad es que le he metido ganas pero no he podido solucionarlo, no tengo ni idea que lleva a dicho error. Copio exactamente lo mismos archivos del cliente que tengo en mi pc con win 7 64bits a esta que tiene win XP 32bits y ya salta el dicho error. Por lo tanto deduzco que es algún impedimento del sistema operativo o alguna configuración errónea, lo cual me suena tonto, pero no se me ocurre que más probar. Pensé que quizás el error se producía por falta de permisos o porque algún software externo impedía que se capture o se guarde la imagen. Desactivé y/o desinstalé todo programa que pudiese impedir que se lleve a cabo correctamente la función, pero no obtuve nada. La computadora con win XP 32 bits está formateada y no tiene prácticamente nada, solo librerías y componentes necesarios para que funcione el Metin2. Si alguien me sabe decir las posibles causas por la cual se produce el error Failed to lock the surface (0x88760827), le estaría muy agradecido. Bueno nada mas que decir, Saludos!
  12. Muchas gracias, me había fijado en el syrrer.txt pero no había encontrado nada. Por lo tanto ahora procedí a hacer un programa que sólo se encargue de capturar una imagen y ahí noté en el syrrer el error Failed to lock the surface (0x88760827). Este error aparece claramente en en código fuente que me has pasado. Muchas gracias! Intentaré solucionarlo, no se bien a que va el error, pero de como estaba a como estoy es un gran avance jaja. Saludos!
  13. Hola a todos. Estuve desarrollando un pequeño programa en Python para uso personal. El programa está relacionado a metin2 obviamente y utiliza las librerías que el cliente de metin2 "ofrece". He realizado el programa para un determinado servidor, mientras yo utilizaba Windows 7 64 bits como sistema operativo. El problema sucedió cuando quise probar éste mismo programa en el mismo servidor para el cual se ha creado pero utilizando como sistema operativo Windows XP 32 bits. El problema ocurre con la librería GRP al utilizar una función que ésta ofrece (SaveScreenShotToPath). La función SaveScreenShotToPath perteneciente a la librería GRP se encarga de capturar una imagen de la pantalla y guardarla en una dirección determinada. Espera un parámetro, el cual será la dirección donde se guardará la dicha imagen y devuelve dos valores, un primer valor boolean y un segundo el cual es un string. El boolean devuelve True si se guardó correctamente la imagen o False en caso contrario. La cadena de texto retornada es el nombre que se le ha dado a la imagen. Todo esto funciona perfectamente cuando utilizo el programa en Win 7 64bits, pero al utilizarlo en Win XP 32bits el primer valor boolean retornado es False. Es decir se produjo un fallo al guardar/capturar la imagen. No me explico por qué. Intente cambiando la dirección pensando que quizás el formato de ésta era errónea, pero nada. Probé utilizando otra función de la misma librería llamada SaveScreenShot, esta retorna lo mismo que la anterior pero no espera ningún valor, simplemente guarda la imagen en la carpeta "Documents/Metin2". Obtuve el mismo resultado, fallo al guardar la imagen. No puedo saber porque se produce dicho fallo. Tampoco conozco como están hechas las funciones, para mi son como cajas negras donde yo introduzco valores de entrada y obtengo valores de salidas. La función sirve y se llama correctamente, pero no retorna los valores esperados. Sería de gran ayuda si alguien me podría explicar las posibles causas por la que quizás se produzca el fallo al guardar o capturar la imagen (pongo guardar o capturar ya que no se en que momento se produce el fallo). También me serviría mucho si alguien tiene source code de estas funciones, para así verlas y quizás puedo interpretar por qué se produce el fallo. Gracias por su atencion, saludos!
  14. fakzo

    Python urllib2

    Hola a todos! Primero que nada no se si este post va aquí, si no es así mis disculpas y espero que sea redirigido a donde corresponda. El tema en si no tiene que ver con algo de metin2, pero espero que alguien sepa resolver mi duda. Estoy haciendo un pequeño programa en python para ingresar a webs y luego poner datos, bueno la cuestión es que no puedo a avanzar, porque me he quedado trabado en una cosa. Les pondré solo la parte del problema aqui. import urllib2 f = urllib2.urlopen("http://www.lapaginaweb.com") y en otra linea, con la misma conexión, f, quiero acceder a otros directorios y colocar mis datos (No me digan de hacer eso en una linea, necesito hacerlo en lineas distintas, en una linea acceder y en otra colocar datos, pero todo en una misma conexión). Bien, suponiendo que la "palabra" que necesito sea 'open', quedaría el código algo así (pongo esto para que me comprendan mejor) import urllib2 f = urllib2.urlopen("http://www.lapaginaweb.com") f.open(/login.html, datos) Gracias por leer mi problema y su respuesta! Saludos!
×
×
  • Create New...