Jump to content

MesterLum

Miembro
  • Contador contenido

    93
  • Ingreso

  • Última visita

  • Días ganados

    12

Todo lo publicado por MesterLum

  1. No creo que sea de mucho agrado para nosotros los programadores, para empezar metin2 sí no estoy tan mal corre con direct X con c++, python y servicios que windows ofrece, otra cuestion es que economicamente no creo que sea rentable hacerlo, hasta pienso que seria más rentable hacerlo de 0 a comparación de migrarlo a Java o Kotlin o algun lenguaje que quieras.
  2. The best idea is add a default value or allow value NULL
  3. Yeah, but i prefer debian or centos or fedora. I thinked that your project have SPA with React, Vue... in any case, good luck. In the future i worked for create a project similar but with modern style (Yeah, this is my style even though is a little useless).
  4. Nice Work. I work with Docker. it's a sadness that does not work with BSD. In FreeBSD Docker is in experimental mode, no is a good idea. So services how heroku, azure or others is the best idea.
  5. The price is this: In this moment i not have skype, but i have whatsapp, send me a message private.
  6. Thanks buddy, In addition to this I offer 10 days to return money in case there are problems.
  7. Hello guys, my name is mesterlum, in this moment i developed a curiosity system for client (autopatch), this system is developed in: Golang, React, Electron. The featurs of the system is: *Responsive design. *Modern and distinct langs. *Muliti Languaje. *Multi Theme. *Posibility implemented with resources PHP, MYSQL, or Golang validations with the game. For example: check who has tried to enter, logs... (Flex) -*In the future i implemented security with serverside and clientside. With tokens... *Noticy section This a v.1.0.0 For the clients in the sale I will deliver them: Github project Instructions for compile, versions, and documentation for this project. Support for problems My clients recived updates free... If you need a diferent work the price is variant... 3€,4€... -Photos of the project. https://imgur.com/IoPJNjI https://imgur.com/av1B2Ap https://imgur.com/Jb5UASD https://imgur.com/UB8bR9J Live preview: http://mlum.000webhostapp.com/ Video: The price is 27€ if do you need source code, and the price is 18€ if do you not need source (i configure your project).
  8. Hola, que tal a todos. Ultimamente he estado queriendo volver por aqui, no especificamente a crear un servidor o algo por el estilo, me gustaria regresar para ayudar con lo que pueda. Soy desarrollador de software, me apasiona lo que hago y hace un par de a;os andaba mucho por aqui. El punto es que quiero hacer algo con mi tiempo libre y puedo hacer lo que gusten, que este dentro de mis posibilidades. Soy desarrollador en JavaScript, Java, Python(2,3), c++, Lua entre otros. Normalmente desarrollo paginas web, servicios back-end, aplicaciones mobiles entre otras cosas. Trabajo con: Django, Node.js, Angular4+, React, React-native, Ionic, entre otras tecnologias. Si a alguien le interesa, que tenga un proyecto me puede buscar por aqui mismo o por whatsapp, ya no manejo Skype por cuestiones personales, no pienso cobrar en lo absoluto nada. Que tengan buena noche.
  9. Muchos sources si mal no recuerdo lo traen como una macro, busca en locale_inc.h la seccion de WOLFMAN, o algo por el estilo, y en la seccion del game, en common, service.h busca la corresponiente MACRO del wolfman. Pd: las macros son los #ifdef #endif
  10. Creo que me falto especificar que ya intente arreglarlo en common/tables.h creo y en packet y no he podido, ¿Alguien puede hecharme la manita?
  11. Hola, ¿qué tal chavos? tengo este problema, ¿alguien sabe como solucionarlo? 0427 23:24:09700 :: Phase Select does not handle this header (header: 128, last: 32, 128) 0427 23:24:15571 :: Unknown packet header: 96, last: 253 32 Gracias.
  12. Hola, que tal a todos, hoy vengo a regalarles una parte de lo que vendria siendo un noticiero, seccion de noticias, como quieran decirle, que algo parecido a esto: https://gyazo.com/23058393672cc2c941696405386ddf48 bien, básicamente es un noticiero con scroll infinito empleado ajax y json. es muy básico, por medio de JavaScript solicito datos a travez de ajax a php, php responde y manda a travez de json, JavaScript entiende JSON y plasma el array, en este caso y se refleja en la web. No dare soporte de instalación, y, esta versión no esta terminada del todo. Sí quieres soporte, para adaptarla a tu web, crearle una sección para introducir nuevas noticias etc, entonces en ese caso cobrare servicios. Esto es la conexion, luego veremos como lo utilizaremos. <?php $DB_HOST = "localhost"; $DB_NAME = "host"; $DB_USER = "root"; $DB_PASS = ""; ?> A qui esta la clase de php para la conexión. <?php class conexion{ public static function conection(){ require("daten_inc.php"); try{ $conexion = new PDO("mysql:host=$DB_HOST;dbname=$DB_NAME", "$DB_USER", "$DB_PASS"); $conexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conexion->exec("SET CHARACTER SET UTF8"); }catch(Exception $e){ die ("Error al conectar con la base de datos"); echo "Linea: " . $e->getLine(); } return $conexion; } } ?> Aquí esta la parte de la consulta SQL para la llamada (sinceramente la consulta esta mejor con INER JOIN debido que se tiene que extraer con el id_account la id de la cuenta para mostrarlo) <?php class article{ protected $conection; public function __construct(){ require("conection.php"); $this->conection = conexion::conection(); } // End construct public function get_notice($hasta){ $sql = "SELECT * FROM notice ORDER BY date DESC limit $hasta, 3"; $query = $this->conection->query($sql)->fetchAll(PDO::FETCH_ASSOC); $r = count($query); if ($r == 0) $query = array("status" => "Empty"); echo json_encode($query); } //End get_notice } // End class $x = new article(); $hasta = $_POST["hasta"]; $x->get_notice($hasta); ?> Pasamos al lado de JavaScript, en este caso, viene incluido ya con el metodo AJAX var scroll = true; var pag = 0, hasta; function aumento(){ pag++; hasta = pag*3; } $(document).ready(function(){ //Scroll para las noticias del menu if (pag == 0){ var daten = [{name: "hasta", value: 0}]; //console.log(daten); $.ajax({ url: "page/article.php", data: daten, type: "post", dataType: "json", success : function(date){ console.log(date); if (date.status == "Empty"){ scroll = false; } else{ for (var i=0; i<date.length; i++){ $('.contenedor').append('<article class="article_notice"><header class="header_notices"><p><strong><i>'+ date[i].tittle + '</strong></p></header><section class="section_notices"><p>'+ date[i].body + '</p></section><footer class="footer_notices">autor, fecha</footer></article> '); } } } }) .fail(function(){ alert("No se pudo enviar"); }); } $('.contenedor').scroll(function(){ if (($(this).scrollTop() + $(this).height()) == $(this).prop('scrollHeight') && scroll == true){ aumento(); var daten = [{name: "hasta", value: hasta}]; //console.log(daten); $.ajax({ url: "page/article.php", data: daten, type: "post", dataType: "json", success : function(date){ if (date.status == "Empty"){ scroll = false; } else{ for (var i=0; i<date.length; i++){ $('.contenedor').append('<article class="article_notice"><header class="header_notices"><p><strong><i>'+ date[i].tittle + '</strong></p></header><section class="section_notices"><p>'+ date[i].body + '</p></section><footer class="footer_notices">autor, fecha</footer></article> '); } } } }) .fail(function(){ alert("No se pudo enviar"); }); } //if condicion }); }); Como plus, incluire la parte de la hoja de estilos. (no dare información acerca de los selectores ni nada por el estilo) .notices{ float: right; margin: auto; background-color: transparent; width: 50%; height: 200px; margin-right: 6%; } .titulo_notices{ background-color: grey; text-align: center; font-size: 30px; width: 80%; margin: auto; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-color: orange; border-bottom-width: 5px; border-bottom-style: solid; color: white; margin-top: 50px; } .notices .article_notice{ background-color: transparent; background-color: grey; } .notices .contenedor{ background-color: transparent; overflow: auto; height: 230px; width: 80%; margin: auto; } .header_notices{ margin-left: 5px; margin-top: 6px; margin-bottom: 6px; overflow: hidden; font-size: 30px; } .section_notices{ overflow: auto; text-align: justify; margin-left: 13px; margin-right: auto; text-decoration: none; margin-bottom: 10px; } .footer_notices{ margin-left: 5px; } La parte del HTML <!--Noticias--> <div class="notices"> <div class="titulo_notices">NOTICIAS <i class="fa fa-comments" aria-hidden="true"></i></div> <div class="contenedor"></div> </div> y ya para finalizar, la parte SQL https://mega.nz/#!Rp0DhDqK!nNpe8PSy2BXlbwTuHUanAOs2a09ztY_cWdpMQJQmrqM PD:en la sección del javascript se pueden reducir algunas lineas de codigo con la seccion donde es valor == 0.
  13. Hola, buenas tardes a todos. primero que nada, quiero aclarar que este curso es para todo aquel que tenga interés de aprender a programar, o bien, mínimo que quiera tener conocimientos básicos de programación para incorporación de sistemas, crear sus propias funciones, crear quest (aun que ya haya guías de esto), y, pues bueno, quiero aclarar que esta tendrá un "mini taller", donde pediré practicas, no con el fin de probar que saben, si no que se comprueben a ustedes mismos que saben, mínimo la idea es que lo comprendan, me he dado cuenta que últimamente la gente esta comprando muchos sistemas por "falta de conocimiento", y lo enfatizo así por que esto ya es un negocio, pero bueno. recuerden que aquí solo daré bases para que ustedes puedan hacer sus propias cosas. El curso lo haré a diario, sinceramente no sé cuantos capítulos tendrá de cada uno... y pues bueno, mañana subiré el primer capitulo de c++, pasado de python, después de lua, y por ultimo de php. Tomar en cuenta lo siguiente (No dire de donde sacarlo, eso os corresponde a vosotros mismos): En caso de c++ tener un entorno de desarrollo (visual studio o dev c++, borland, entre otros). En caso de python tener la IDE de python, o cualquier interprete donde podamos correr nuestros progrmas. En caso de lua tener su correspondiente IDE (personalmente pueden probar con metin, eso da igual.). En caso de php tener WAMP, XAMPP o cualquier motor con apache o tambien con hosting, hay muchas partes donde se puede trabajar para ver los resultados. Insisto, no lo daré orientado especialmente a metin2, pero les aseguro que comprenderan muchas cosas, como por ejemplo, los [TAB] de python porque a muchos les tira problemas al momento de instalar algo. Bueno, nos vemos, buena suerte. PD:Si alguien quiere cooperar con las guias, adelante. ++PLUS++ Enseñaré a hacer consultas a base de datos, SQL, MYSQL, MARIA, entre otros, sí es que todo sale bien y se ve interes, así como el manejo de archivos txt, por ejemplo, para darle lectura desde lua para sistemas y crear sistemas como OFLINE mensaje, etc, aunque hay muchisimas ideas. Bueno, hasta luego.
  14. ¿Por que putas no te vez un curso de LUA? y de paso te vez un curso de los arrays...
  15. Hola, (esta es la segunda vez que escribo esta guia), Hoy les explicaré sobre las functions, y les hablare de ellas, su uso, para que nos sirven, entre otras cosas... Una function nos permite más que nada hacer una llamada hacía un algoritmo o "sub-programa" para posteriormente ser utilisado, estos "sub-programas" son de gran utilidad, no solo porque nos ayuda a reducir codigo en nuestra "work space", si no que tambíen, podriamos utilizarlo una y otra vez modificando parametros, haciendo multiples tareas, haciendo LO QUE SEA. Y pues bueno, esta es la estructura básica de una function... function nombre_de_la_function(PARAMETROS) <expresiones> return <---- retorno de valores end ----- cierre de la function y con esto te diras, bien, ¿ahora que coño hago con ello?, PUES MUY FACIL, solo haz tu algoritmo que tu quieras ahí, por ejemplo, haré una function que solo muestre en pantalla... function mester_mola() say("Hola") end ¿Como útilisarla? Bueno, pues muy facil, se usa por ejemplo así: quest temo begin state start begin when 20094.chat."TEMO MOLA" begin mester_mola() end end end cada vez que ponga el nombre de mi function se mostrara eso. Tambíen hay otros tipos de functions, por ejemplo; el que retorna valores... Imaginate lo siguiente, tienes que hacer X cantidad de sumas, y tu dices: "QUE HUEVA HACERLAS TODAS", Pues, aqui esta la solucion, con esto solamente ocuparas hacer algo así: function mester_dios(x,y) X= PARAMETRO 1, Y= PARAMETRO 2 local z = x+y return z end Lo que decimos aqui es que retornara el valor sumado en Z y lo podriamos dar un buen uso así: quest temo_te_amo begin state start begin when 20094.chat."SUMA DE LOS 2 NUMEROS" begin local suma = mester_dios(7,3) el 7 es del parametro X, y el 3 del parametro Y. say(suma) end end end Con esto podriamos ahorrarnos bastante codigo, y, ademas hacer un trabajo mucho más sintetisado, entendible, y facil de modificar. Esto es todo por mi parte, (EL ANTERIOR QUE HABÍA ESCRITO ESTABA MAS COMPLETO, PERO ME DIO HUEVA ESCRIBIR MÁS). Con esto espero que puedan hacer mejores algoritmos, y tambíen que le den un mejor uso a las cosas... PD: Esto tambíen se puede aplicar para C++, solo es cuestion de darle un ojito a las sintaxis, y ver en donde se asignan. SALUDOS, QUE HUEVA TODO.
  16. ¿Cuanto por el curso de MYSQL_QUERY PUES?
  17. Hola, que tal a todos, como hice un capitulo donde menciono esta quest, decidi postearla directamente, esta limpia, solamente tiene las funciones de una guerra, cabe decir que tenia pensarlo hacerla con 2 fases, pero, como siempre me ha ganado la flogera... --------------------------- -- Quest creada por MesterLum -- Mis huevos son sus ojos --------------------------- quest evento_mesterlum begin state start begin when 9004.chat."GM: Evento_reino" with pc.is_gm() begin say_title(""..pc.get_name()..":") say("") local se = select ("Activar evento","Desactivar evento","Salir") if se == 1 then game.set_event_flag("Guerra_Jinno", 1) game.set_event_flag("Guerra_Chunjo", 1) game.set_event_flag("Guerra_Shinso", 1) game.set_event_flag("Jinno", 1) game.set_event_flag("Chunjo", 1) game.set_event_flag("Shinso", 1) game.set_event_flag("Jinno_kill", 1) game.set_event_flag("Chunjo_kill", 1) game.set_event_flag("Shinso_kill", 1) notice_all("Evento_reino activado") elseif se == 2 then game.set_event_flag("Guerra_Jinno", 0) game.set_event_flag("Guerra_Chunjo", 0) game.set_event_flag("Guerra_Shinso", 0) game.set_event_flag("Jinno", 0) game.set_event_flag("Chunjo", 0) game.set_event_flag("Shinso", 0) game.set_event_flag("Jinno_kill", 0) game.set_event_flag("Chunjo_kill", 0) game.set_event_flag("Shinso_kill", 0) notice_all("Evento_reino desactivado") else return end end when 9004.chat."Acerca del evento pvp" begin if game.get_event_flag("Guerra_Chunjo") == 0 and pc.get_empire() == 2 then say_title("El evento:") say("Actualmente esta desactivado") say("") end if game.get_event_flag("Guerra_Chunjo") == 1 and pc.get_empire() == 2 then say_title("El evento:") say("Actualmente esta activo") local temo = select ("Quiero entrar", "Salir") if temo == 1 then pc.warp(819200, 204800) else return end end if game.get_event_flag("Guerra_Jinno") == 0 and pc.get_empire() == 3 then say_title("El evento:") say("Actualmente esta desactivado") say("") end if game.get_event_flag("Guerra_Jinno") == 1 and pc.get_empire() == 3 then say_title("El evento:") say("Actualmente esta activo") local temo1 = select ("Quiero entrar", "Salir") if temo1 == 1 then pc.warp(819200, 204800) else return end end if game.get_event_flag("Guerra_Shinso") == 0 and pc.get_empire() == 1 then say_title("El evento:") say("Actualmente esta desactivado") say("") end if game.get_event_flag("Guerra_Shinso") == 1 and pc.get_empire() == 1 then say_title("El evento:") say("Actualmente esta activo") local temo2 = select ("Quiero entrar", "Salir") if temo2 == 1 then pc.warp(819200, 204800) else return end end end when login with pc.get_map_index() == 43 begin if pc.get_empire() == 1 then game.set_event_flag("Shinso", game.get_event_flag("Shinso")+1) chat(""..game.get_event_flag("Shinso").." en el evento hay esos shinsos") elseif pc.get_empire() == 2 then game.set_event_flag("Chunjo", game.get_event_flag("Chunjo")+1) chat(""..game.get_event_flag("Chunjo").." en el evento hay esos chunjos") elseif pc.get_empire() == 3 then game.set_event_flag("Jinno", game.get_event_flag("Jinno")+1) chat(""..game.get_event_flag("Jinno").." en el evento hay esos Jinno") end if game.get_event_flag("Shinso") == 2 then notice_all("El reino shinso ya alcanso su maximo numero de jugadores, esta listo para comenzar") notice_all("Las puertas para este imperio han sido bloqueadas") game.set_event_flag("Guerra_Shinso", 0) elseif game.get_event_flag("Jinno") == 2 then notice_all("El reino Jinno ya alcanso su maximo numero de jugadores, esta listo para comenzar") notice_all("Las puertas para este imperio han sido bloqueadas") game.set_event_flag("Guerra_Jinno", 0) elseif game.get_event_flag("Chunjo") == 2 then notice_all("El reino Chunjo ya alcanso su maximo numero de jugadores, esta listo para comenzar") notice_all("Las puertas para este imperio han sido bloqueadas") game.set_event_flag("Guerra_Chunjo", 0) end end when kill with npc.is_pc() and pc.get_map_index() == 43 begin loop_timer("Tiempo", 20*1) if pc.get_empire() == 3 then game.set_event_flag("Jinno_kill", game.get_event_flag("Jinno_kill")+1) notice_all("Jinno lleva:"..game.get_event_flag("Jinno_kill").." puntos") elseif pc.get_empire() == 2 then game.set_event_flag("Chunjo_kill", game.get_event_flag("Chunjo_kill")+1) notice_all("Chunjo lleva:"..game.get_event_flag("Chunjo_kill").." puntos") elseif pc.get_empire() == 1 then game.set_event_flag("Shinso_kill", game.get_event_flag("Shinso_kill")+1) notice_all("shinso lleva:"..game.get_event_flag("Shinso_kill").." puntos") end end when Tiempo.timer begin chat("El tiempo ha acabado") if game.get_event_flag("Jinno_kill") > game.get_event_flag("Chunjo_kill") > game.get_event_flag("Shinso_kill") then -------- Aqui shinso pierde notice_all("Shinso ha sido eliminado") elseif game.get_event_flag("Jinno_kill") > game.get_event_flag("Shinso_kill") > game.get_event_flag("Chunjo_kill") then ------- Aqui chunjo pierde notice_all("Chunjo ha sido eliminado") elseif game.get_event_flag("Chunjo_kill") > game.get_event_flag("Shinso_kill") > game.get_event_flag("Jinno_kill") then ------- Aqui jinno pierde notice_all("Jinno ha sido eliminado") end end end end Suerte, falta anexarle funciones para que tenga un mejor uso, suerte.
  18. Tienes razon, se me olvido mencionar los tipos de valores y que retornara... YA LO ANEXO, gracias.
  19. Hola, buenas a todos, estuve viendo que en la sección de quest y/o LUA de este foro no estaba un capitulo de operadores lógicos (y si lo hay borren mi post). PD: ACLARO QUE ALGUNAS DEFINICIONES LAS SAQUE DE INTERNET POR QUE NO SABÍA DECIRLAS CON MIS PROPIAS PALABRAS. Bueno, primero que nada, ¿Qué es un operador lógico?. Los operadores relacionales son símbolos que se usan para comparar dos valores. Si el resultado de la comparación es correcto la expresión considerada es verdadera, en caso contrario es falsa. Por ejemplo, 8>4 (ocho mayor que cuatro) es verdadera, se representa por el valor true del tipo básico boolean, en cambio, 8<4 (ocho menor que cuatro) es falsa, false y tu te preguntaras, ¿Para qué coño me sirve esto en metin2?, bien la respuesta es: Cuando por ejemplo, iniciamos una quest con la siguiente sentencia: when login with pc.is_gm() and pc.get_level() >= 110 begin básicamente a qui estamos haciendo una expresión de tipo bool, en la que si esta es "true" entrara a la función, y en caso de que no se cumpla la expresión lógica no entrara. Tú diras... Mmmmh okey, ya entendí un poco de su utilidad, ¿Pero qué más puedo hacer? y la respuesta es... BASTANTES COSAS. Yo, en lo personal, las expresiones lógicas son uno de mis mejores aliados cuando hablamos de meterle un poco de razonamiento y limitar ACCIONES en un determinado programa. Os daré un mejor ejemplo de como darle un buen uso a los operadores lógicos... (quest completa) http://pastebin.com/7ZppXem3 mira esta sentencía: if game.get_event_flag("Guerra_Jinno") == 1 and pc.get_empire() == 3 then Básicamente aqui estoy diciendo lo siguiente: Si game.get_event_flag("Guerra_Jinno") == 1 Y el pc.get_empire() == 3 entonces hacer lo siguiente: <EXPRESION> Es decir, con los operadores lógicos puedes LIMITAR las cosas para que sea más restringidas las acciones. Cabe mencionar que no solo existen los tipos de operadores que he puesto, tambíen existen una gran variedad como por ejemplo: OR ------ Si es por lo menos una de las acciones esta será un "true". AND ----- Ambos valores tienen que ser "True" para que te regrese un "True" XOR ----- (No sé su sintaxis para el LUA) Sí los valores son diferentes entonces retornara un "True" ETC... AQUI MÁS COMPLETO PARA EL QUE LE INTERESE SABER QUE VALORES RETORNAN: https://www.google.com.mx/search?q=tablas+de+verdad&biw=1600&bih=799&source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwjj4I-JyLbLAhUBU2MKHctUCJEQ_AUIBigB Bien chavos, esto es todo de momento por mí parte, no sé si le falte algo, y si le falta lo anexaré posteriormente... -Mecos HASTA LUEGO.
  20. Hey, hola a todos. Desde hace dias me he preguntado que utilidad podria tener una matriz en un servidor de metin2, y sinceramente creo que es algo que podria tener algo de útilidad, por ejemplo, se pueden hacer itemshop, o algo parecido, guardar datos, o X cosas en la FUNCTION, y pues bueno, he hecho una buena variedad de cosas con ella, y pues, aqui esta mi function (aunque sinceramente no se si ya estaba inventada. Por ejemplo, la útilidad que podriamos darle es que en: (COLUMNA) podríamos poner por ejemplo: ARMAS, y en "RENGLON" podriamos poner X ITEM, o algo así, la funciones o la logica tocara para vosotros. (SOLAMENTE ES UN EJEMPLO) Esta es mi function de la matriz (Básica), aunque claro, podeís hacer muchas cosas... function matriz_temo(x,y) ------ X= VALOR DE COLUMNA, Y = valor del renglon (o vector) for temo = 1, x do say("Columna: ", temo) for temo1 = 1, y do say("Renglon: ", temo1) end end end y este es un ejemplo de la utilisacion en la quest quest matriz_mesterlum begin state start begin when 20094.chat."Matriz" begin matriz_temo(2,3) end end end Suerte, ya ós tocara hacer vuestra logica con esto...
  21. Buenas, yo útiliso mi red local, no útiliso ni hamachi ni nada, pero claro, es solo para mí.
  22. Entiendo como funcionan el select, update, e insert, mi problema es el FROM, where y ese tipo de cosas, más bien, me da problemas en mi mente, por ejemplo: Quisiera hacer lectura de lectura de nickname con ID, por ejemplo: account.account.id from player.player.name Me hace bolas..., ¿Algun link? sí no es mucho pedir.
  23. Heey, qué tal chavos, me preguntaba sí alguien podria ser tan amable de pasarme alguna guia de explicacion de las funciones ó sentencias de las mysql_query, o como queraís llamarlo... Gracias de antemano PD: sí vas a cometar "Buscalo huevon" o algo por el estilo abstente, plox.
×
×
  • Crear nuevo...