Jump to content

iraciz

Members
  • Posts

    562
  • Joined

  • Last visited

  • Days Won

    8

Everything posted by iraciz

  1. 1- DESCARGAR NUESTRO EMULADOR Lo primero que necesitaremos es nuestro emulador rAthena ultima revisión y para ello debemos descargar Tortoise SvN aqui: https://tortoisesvn.net/downloads.html Una vez descargamos el Tortoise Svn nos vamos al escritorio y creamos una carpeta con nombre rAthena, a dicha carpeta le damos click derecho y elegimos la opcion SVN Checkout... Se abrirá la ventana de CheckOut y en el URL of repository colocamos https://github.com/rathena/rathena/trunk y en Revision ponemos HEAD Al darle Ok, el programa empezara a descargar el emulador a la carpeta rAthena, si todo salio bien habrás descargado con éxito tu emulador con la ultima revisión del repositorio. 2- CREAR NUESTRO SERVIDOR Una vez descargado el emulador, necesitaremos crear nuestra base de datos SQL en nuestro ordenador, con las credenciales del servidor, para ello vamos a necesitar el programa MySql Nos dirigimos a este link https://dev.mysql.com/downloads/installer/ y elegimos la opción mas pesada de 420 MB. Al momento de instalarlo nos irán saliendo las opciones de configuración, en la de High Availability marcamos la primera opción, Standalone MySQL Server y le damos next En la Opcion Type and Networkimg elegimos Development Computer y NO TOCAMOS ABSOLUTAMENTE MAS NADA DENTRO DE ESTA CONFIGURACION! le damos Next y entraremos en el Methodo de Autenticacion, aqui solamente marcamos Use Legacy y le damos al Next En Account & Roles, para el password de Root pondremos como pasword ragnarok en minúsculas, ragnarok es la que contraseña que viene por defecto en el inter athena conf del emulador. En Windows Service dejamos todo como esta y le damos next En la siguiente ventana, le damos a EXECUTE para que se empiezen a aplicar todas las configuraciones, Cuando todos los ganchos están en verde indica que se instalo bien tu servidor, En este punto, tienes instalado tu servidor local en tu computadora y esta corriendo. 3- DESIGNAR EL NOMBRE CORRECTO DE NUESTRO SERVIDOR ROOT EN LOS COMPONENTES DEL SERVIDOR Ya que tenemos nuestro servidor Root en la computadora, nos vamos a nuestro folder de emulador rAthena, buscamos la carpeta conf, y dentro encontraremos el archivo inter_athena, como este es un archivo de texto le damos a editar, y nos vamos a la parte de Global SQL Settings En la linea 31, en login_server_id reemplazamos ragnarok por root, pues root es el servidor SQL que instalamos en nuestro ordenador, y deberá quedar así: // MySQL Login server login_server_ip: 127.0.0.1 login_server_port: 3306 login_server_id: root login_server_pw: ragnarok login_server_db: ragnarok login_codepage: login_case_sensitive: no En la parte de ipban_db_id también cambiamos el ragnarok y ponemos root, debera quedar asi: ipban_db_ip: 127.0.0.1 ipban_db_port: 3306 ipban_db_id: root ipban_db_pw: ragnarok ipban_db_db: ragnarok ipban_codepage: En el char_server_id reemplazamos ragnarok y ponemos root, debera quedar asi: // MySQL Character server char_server_ip: 127.0.0.1 char_server_port: 3306 char_server_id: root char_server_pw: ragnarok char_server_db: ragnarok El map_server_id también le reeplazamos el ragnarok y le ponemos el nombre root ya que este es el nombre dado por nuestro servidor sql, deberá quedar asi: // MySQL Map Server map_server_ip: 127.0.0.1 map_server_port: 3306 map_server_id: root map_server_pw: ragnarok map_server_db: ragnarok Por ultimo pero no menos importantes los logs, en log_db_id reemplazamos ragnarok por root, debiendo quedar así: // MySQL Log Database log_db_ip: 127.0.0.1 log_db_port: 3306 log_db_id: root log_db_pw: ragnarok log_db_db: ragnarok log_codepage: log_login_db: loginlog CHAR_ATHENA Ya que terminamos de ajustar el inther athena conf, nos vamos al char_athena conf, esta parte es importante porque aquí seteamos el mapa de inicio de nuestros personajes creados. Eliges el mapa de inicio de tus novice para renewal o pre renewal.. Te recomiendo usar una data renewal si vas a usar un punto de partida renewal, NO PUEDES ser renewal sin data renewal pues se te pondra la pantalla negra cuando logees tu char... mas adelante te enseñare como configurar tu emulador para renewal o pre-renewal Dentro de char_athena también desactivamos algo bastante molesto llamado pincode, solo basta encontrar la linea que dice pincode_enabled y ponemos no, deberá quedar así: //=================================== // Pincode system //=================================== // NOTE: Requires client 2011-03-09aragexeRE or newer. // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse. // Default: yes pincode_enabled: no LOGIN_ATHENA Aquí solo necesitamos ajustar una sola cosa! y es el poder Habilitar la creación de nuestro personaje con _M o _F En la linea 54 de este file ponemos yes en la opcion "//Can you use _M/_F to make new accounts o the server? Debera quedar así: // Can you use _M/_F to make new accounts on the server? // Note: This only works if client side password encryption is not enabled. new_account: yes terminamos las configuraciones del emulador por ahora. 4- GESTIONAR NUESTRA BASE DE DATOS Una vez configurado el inter_athena.conf char_athena.conf y login_athena.conf necesitaremos un programa para crear nuestra BASE DE DATOS, yo recomiendo altamente el programa HeidiSQL por su facilidad de uso, este es el primero que use cuando empece a crear servers, y nunca me ha fallado. Link de descarga aqui: https://www.heidisql.com/download.php Una vez tenemos Instalado Heidi!, procedemos a crear la base de datos de nuestro servidor, elegimos Nueva, Aquí Lo importante es mantener el usuario root ya que ese es el nombre de nuestro servidor de datos sql, en contraseña debemos poner ragnarok en minuscula, pues es la clave que elegimos al instalar mysql y son las claves de los componentes que vienen por defecto en el inter_atena.conf. Al nombre de la sesión le puedes poner el que mas te guste, yo lo dejare en unnamed para guiarlos mejor. Cuando la tenemos creada le damos a abrir, hacemos click derecho sobre Unnamed o el nombre de sesion que le hayas dado, eliges crear nuevo, y le das click a base de datos. Es MUY MUY IMPORTANTE que el nombre de la base de datos sea ragnarok pues es el mismo nombre que tienen los componentes del server en el inter_atena.conf que previamente configuramos ok? Una vez creada la base de datos ragnarok la seleccionamos y nos vamos a la pestaña archivo Al abrir la pestaña archivo seleccionamos cargar archivo SQL, y se nos abrirá la ventana de exploración, en la cual elegimos rAthena, luego sql-files y elegimos main y logs con control, una vez seleccionados main y logs le damos a abrir. Una vez abiertas dirígete a la pestaña main, y ejecutala dandole click al triangulo azul, veras como se van cargando las tablas en la base de datos ragnarok Una vez terminada de cargar las main, selecciona la de logs y procede con lo mismo, click al triangulo para ejecutar, la tabla logs es importante ya que esta registra los movimientos de items, objetos comandos, en fin es como una bitacora que ni so se carga el emulador se la pasara enviando warnings. Otros sql-files que podrias cargar dentro de la db ragnarok serian el roulette_default_data por si quieres implementar la ruleta en tu servidor, pero los premios y requisitos de la ruleta se configuran en esa misma tabla y no en scripts. Cuando se ha cargado todo, presiona f5, esto recargara las tablas, en pocas palabras actualizara o refrescara heidi y MAGIA puedes ir a la tabla login, y luego a la pestaña datos, la account_id 1 es del sistema y esa no la puedes ocupar para tu char, alli van a parar los chars que creas en tu server, para ser ADMIN con todos los comandos debes ponerte 99 el el group id. Ya tenemos servidor, y base de datos. 5- COMPATIBILIZAR EL EJECUTABLE Y COMPILAR NUESTRO EMULADOR Antes de Encender nuestro emulador debemos configurarlo y luego compilarlo. El cliente o ejecutable que recomiendo es 2018-06-20eRagexeRE.exe pues es el que considero mas estable, este ejecutable lo puedes descargar en el post de MathReaper Para compatibilizar el exe con el emulador debes ir a tu carpeta rAthena y elegir la carpeta SCR, (ya estamos en territorios de alto riesgo), dentro de la carpeta scr nos vamos a la carpeta config y abrimos packets.hpp Para tener una mejor experiencia editando estos archivos, recomiendo el programa notepad++ lo puedes descargar aqui: https://notepad-plus-plus.org/downloads/ al abrir packets.hpp encontraremos la linea que tiene asignada la versión del exe #ifndef PACKETVER /// Do NOT edit this line! To set your client version, please do this instead: /// In Windows: Add this line in your src\custom\defines_pre.hpp file: #define PACKETVER YYYYMMDD /// In Linux: The same as above or run the following command: ./configure --enable-packetver=YYYYMMDD #define PACKETVER 20200401 #endif en el #define PACKETVER 20200401 debemos cambiar y asignar el exe que les recomendé en este caso el 20180620 el texto deberá quedar así #ifndef PACKETVER /// Do NOT edit this line! To set your client version, please do this instead: /// In Windows: Add this line in your src\custom\defines_pre.hpp file: #define PACKETVER YYYYMMDD /// In Linux: The same as above or run the following command: ./configure --enable-packetver=YYYYMMDD #define PACKETVER 20180620 #endif Para Evitar la Black Screen del Exe al seleccionar tu personaje deberás editar y agregar tu packet version en el siguiente archivo: SCR/CUSTOM/ defines_post.hpp defines_pre.hpp si lo vas a hacer pre renwal editas el defines_pre.hpp si lo vas a hacer renewal entonces edintas el defines_post.hpp // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder #ifndef CONFIG_CUSTOM_DEFINES_PRE_HPP #define CONFIG_CUSTOM_DEFINES_PRE_HPP /** * rAthena configuration file (http://rathena.org) * For detailed guidance on these check http://rathena.org/wiki/SRC/config/ **/ #define PACKETVER 20180620 #endif /* CONFIG_CUSTOM_DEFINES_PRE_HPP */ RENEWAL O PRE? El emulador viene RENEWAL por defecto, si queremos ser pre renewal tenemos que ir a la carpeta SCR de nuestro rAthena, luego a la carpeta config y abrimos renewal.hpp Una vez abierto lo único que debemos hacer es comentar la parte que dice #define Renewal, comentar no es mas que colocar dos slashes // al inicio del define de renewal! como muestra la imagen para deshabilitar todas las características de renewal solo basta con dejar el texto asi: //#define Renewal COMPILACION Una vez hecho todos estos cambio debemos compilar nuestro emulador! Para compilar el emulador necesitas tener instalado el Visual Studio Community, lo podrás conseguir en este link: https://visualstudio.microsoft.com/es/downloads/ Al momento de instalarlo deberás elegir las herramientas C+ yo recomiendo la universal windows platform development y desktop developtment with C++. el resto nisiquiera la vamos a mirar. Una vez tenemos el Visual Instalado nos vamos a la carpeta de nuestro emulador y abrimos la solución, de nombre rAthena.sln Una vez Abierta la solución!, ASEGURATE DE ELEGIR RELEASE como lo muestro en la IMAGEN y no Debug, luego click derecho en Solución rAthena y click a Compilar Solución, ahora deberás esperar que se compilen todos los proyectos Si tu compilación fue exitosa tendrás correctos todos los resultados Ya puedes abrir tu emulador, para ello ve a la carpeta rAthena y abre individualmente los proyectos loginserv charserv y mapserv Si quieres ahorrarte el trabajo de abrir siempre los 3 componentes del server cada vez que inicies tu emulador, abre solamente runserver, lamentablemente esto viene bugeado, y no se ha corregido, por lo cual tuve que editarlo para que funcionara, si lo quieres, PUEDES DESCARGAR ESTOS CON TODA CONFIANZA Y METERLOS EN TU CARPETA RATHENA, Reemplazando los que vienen por defecto, con esto podras abrir el emulador usando solo runserver. pero necesitaras estos 2 archivos que voy a poner aqui abajo: runserver.bat y serv.bat Si seguiste bien todas las indicaciones, tendrás abierto un emulador optimo y sin ningún error!. 6- CREAR NUESTRO CLIENTE Y DIFFEAR NUESTRO EXE PARA EMPEZAR A JUGAR NUESTRO EMULADOR Antes que nada necesitas el KRO COMPLETO, EL JUEGO RAGNAROK , Lo puedes descargar aquí mismo, Nuestro administrador Akkarin nos compartió el ultimo cliente en este topic: Una ves terminado de descargar y extraer el KRO Limpio, necesitaras crear los archivos de tu propio cliente, Estos archivos del cliente son los GRF y la Data Traducida que tiene Archivos Luas, Descripcion de Objetos, Quests, Entre Otros, y son los que deberás exportar a tu Ragnarok Limpio. Tengo a Disposición un RAR Limpio, con los archivos necesarios y básicos para un cliente, consta de 2 GRF's uno llamado Custom y Otro llamado Pal, tambien tiene un exe pre difeado que puedes usar para ir testeando tu servidor. Si tu servidor va a ser Pre Renewal, con los items, mapas, y descripciones de pre renewal deberas bajar este rar de mi unidad Drive: - https://drive.google.com/file/d/1M8gvEWnumjPwNwzXLrACBYYAqE3ptoRp/view?usp=sharing Si tu servidor va a ser RENEWAL con la descripcion de items, y mapas renewal deberas bajar este rar de mi unidad Drive: https://drive.google.com/file/d/18Pn4Zw0q_-yBTkE9n30JN8hGLGmL6iyo/view?usp=sharing Al descargar y extraerse, lo único que deberás hacer copiarlo todo y pegarlo a la carpeta del ro limpio. TODO LO QUE TE PIDA REEMPLAZAR LO REEMPLAZAS! estos archivos podrás editarlos o preservarlos por si quieres crear un instalador para tu usuarios. Si tienes el emulador encendido, puedes intentar entrar a tu servidor ejecutando el exe pre diffeado que acabas de pegar en tu ragnarok limpio, el de nombre 2018-06-20eRagexeRE_patched que te incluí en el RAR, Si te sale THE EXE HAS CHANGED al principio, cierra y vuelve a abrir, esto pasa una sola vez y te indica que el ejecutable que se usa es el de tu servidor y no el de Kro, Cuando abras podrás crear tu personaje, lo que indica que estas en el servicio correcto. Si quieres diffear tu propio ejecutable deberás descargar nemo Patcher en este Link: https://gitlab.com/4144/Nemo/ En imput exe file subes el ejecutable que hayas descargado, recuerda que debe ser la misma versión que definiste en tu emulador, en output es donde se va a generar el ejecutable diffeado, pones Load Client y se cargaran todos los parches posibles para el exe. Algunos diff Recomendados y Otros necesarios para que el cliente arranque sin problemas son: @ Bug Fix (Recommended) Allow close cutin by pressing esc key Allow space in guild name Always Load Client Plugins [Experimental] Always Show Resurrection Button Always Use Email for Char Deletion Always load Korea ExternalSettings lua file Cancel to Login Window (Recommended) Change RecommendedQuestInfoList*.lub path aqui escribes system\OngoingQuestInfoList Change character display deletion time from actual date to relative date Change minimal screen resolution limit Change new char name field height AQUI PONES 17 esto muestra el nombre correctamente al momento de crear tu personaje Chat Flood Remove Limit Custom Window Title aqio pones el nombre que le quieres dar a tu ventana de ragnarok Disable 1rag1 type parameters (Recommended) Disable Help Message on Login (Recommended) Disable Swear Filter Disconnect to Login Window Enable /who command (Recommended) Enable DNS Support (Recommended) Enable Effect for all Maps [Experimental] Enable Emblem hover for BG Enable Monster Tables Enable Multiple GRFs (Recommended) solo el recommended Enable Shortcut All Item Enable Title Bar Menu botones en tu ventana de ragnarok Enable guild while in clan si quieres guild mientras estas en clan, deberas modificar el script de clans en rathena para pasar este filtro Enforce Official Login Background Extend Chat Box Extend Chat Room Box Extend Npc Dialog Box Extend PM Box Fix Camera Angles (Recommended) Fix Homunculus attack AI Fix achievement counters for each type of achievement Por si habilitaras achievements Fix act delay for act files with many frames Fix item description bug Hide build info in client (Recommended) Hide packets from peek (Recommended) Hide zero date (1969-01-01) in guild members window Ignore /account: command line argument Ignore Lua Errors --- esto lo puedes desactivar cuando tengas tu cliente terminado Ignore Missing Palette Error --- esto lo puedes desactivar cuando tengas tu cliente terminado Ignore Resource Errors --- esto lo puedes desactivar cuando tengas tu cliente terminado Increase Headgear ViewID Ponle 4000, asumiento que meteras hat custom, ragnarok ya supero las 2000 IDS Increase Zoom Out 75% o max como quieras Increase hair style limit for human only in game (old) Load Custom lua file instead of iteminfo*.lub (Recommended) aqui debes poner System/iteminfo.lua Only First Login Background Read msgstringtable.txt (Recommended) Remove Gravity Ads (Recommended) Remove Gravity Logo (Recommended) Remove Hourly Announce (Recommended) Remove Serial Display (Recommended) Remove wrong chars from cash shop Restore Cash Shop Icon Restore Login Window (Recommended) Show Register Button boton de redireccion al enlace de registro de chars que hayas puesto en tu sclientinfo Show Replay Button aqui se reproduciran las partidas que grabes en tu ragnarok Skip License Screen Skip some hidden menu icon buttons si desactivaste botones este parche hara que se acomoden los espacios vacios entre botones ocultos Translate Client (Recommended) Use Ascii on All LangTypes (Recommended) Use Default Web Browser In Cashshop Use Default Web Browser for URL Use Normal Guild Brackets (Recommended) Use Official Cloth Palettes Necesario para que se muestren las paletas de colores Use Plain Text Descriptions (Recommended) Use Ragnarok Icon Use Tilde for Matk Los Diff que de ningún modo debes activar: Always Call SelectKoreaClientInfo() (Recommended) Aunque Diga recomended NO LO HABILITES Change Walk To Delay Incomodo, acelera la resuesta de clicks hara que camines hacia un npc aun despues de abrir su dialogo HKLM To HKCU NO LO HABILITES Skip Service Selection Screen NO LO HABILITES si rompes el protocolo de seleccion de servicio no podras abrir el select char window EDICIÓN DE GRF Y SCLIENTINFO El programa para editar tu grf sera GRF EDITOR de Tokei, este programa es el equivalente a un arma forjada por el mismo Hefesto, así recuerda darle un upvote si llegas a descargarlo Con este programa abres tu Custom.grf y podrás visualizar los archivos del GRF de tu servidor, recuerda que siempre que vayas a aplicar un cambio, deberás tener el exe del ragnarok cerrado. En la carpeta data de tu Custom.grf se encuentra el sclientinfo.xml, en el campo Display editas El nombre del servidor que se mostrara cuando abras tu ejecutable, podrás asignar o remover las ropas de game master, tambien podrás cambiar el link del web de registro al que te dirige el boton register. Si vas a subir tu emulador a un host deberas editar el sclientinfo y poner la ip en donde esta montado tu servidor. El orden de lectura de los GRF se asigna en un archivo llamado Data.ini y el orden debera ir asi: [Data] 1=custom.grf 2=palette.grf 3=rdata.grf 4=data.grf Como ha notado, el grf de palettes está aislado, si bien no es muy pesado, esta lleno de miles de archivos pals, si llegaras a descargar las paletas de kamishi te recomiendo usar un grf exclusivo de paletas y no mezclarlo con tu custom pues estanos hablado de mas de 40mil archivos que tomaran bastante tiempo en empaquetarse. ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- Montar el Servidor a un Host Hasta Este Punto de la guía! ya tienes tu Servidor Local, Tu Emulador Funcional sin errores, Tu cliente con Exe y GRF custom. Para Montar tu emulador a un host recomiendo el programa WinSCP https://winscp.net/eng/download.php Abres Winscp y colocas las credenciales que te entrego tu proveedor de servicios Host Pasas el Emulador a la carpeta raiz de tu host Cambias los datos de tu char_athena.conf en este file editas el // Login Server IP y el // Character Server IP pones la ip del host. Edita tambien el // Server Communication username and password. Porque el default S1 Y P1 todos lo conocen, este debe coinicidir con la de tu main sql. En login_athena.conf no se editan ips. pero puedes volver a habilitar o deshabilitar la creacion de chars usando _M o _F, esto por si quieres que los registros sean únicamente por Control Panel // Can you use _M/_F to make new accounts on the server? // Note: This only works if client side password encryption is not enabled. new_account: no En map_athena.conf Colocas el mismo server comunication username y password que tienes en tu sql y en tu char_athena.conf, el default es S1 y P1 pero tu elige uno que nadie conozca. // Interserver communication passwords, set in account.txt (or equiv.) userid: passwd: En inter_athena.conf Aqui no se editan ips ni puertos, aquí solamente se se colocan las credenciales de las _db: y _pw: correspondientes a las que tienes creadas en la base de datos de tu proveedor de servicios. // MySQL Login server login_server_ip: 127.0.0.1 login_server_port: 3306 login_server_id: root login_server_pw: login_server_db: login_codepage: login_case_sensitive: no ipban_db_ip: 127.0.0.1 ipban_db_port: 3306 ipban_db_id: root ipban_db_pw: ipban_db_db: ipban_codepage: // MySQL Character server char_server_ip: 127.0.0.1 char_server_port: 3306 char_server_id: root char_server_pw: char_server_db: // MySQL Map Server map_server_ip: 127.0.0.1 map_server_port: 3306 map_server_id: root map_server_pw: map_server_db: // MySQL Log Database log_db_ip: 127.0.0.1 log_db_port: 3306 log_db_id: root log_db_pw: log_db_db: log_codepage: log_login_db: loginlog Abrir y Compilar tu emulador remotamente Para abrir tu emulador cargado al host, necesitaras un programa llamado Putty que puedes descargar aqui https://www.putty.org/ Al abrirlo en el campo Host Name or IP adress colocas la Ip de tu host y le das OPEN Ya estas dentro de tu vps, y el te va a solicitar el user y el password que te proporciono el Host, debes tener cuidado al colocar el password porque no se van a mostrar los typing en la consola. Al entrar exitosamente tendras un display de los comandos preparados por su proveedor, generalmente son ON, OFF, PREPARAR, COMPILAR etc. Con los que puedes arrancar, detener, reiniciar o compilar el emulador que tienes cargado en el host. Deberas compilar y iniciar el emulador después de haber editado los confs con los datos del host. Aqui vemos el trabajo de compilación mediante vps Aqui vemos como ha iniciado el servidor, debe estar lleno de status y no errores Aqui un logeo exitoso Recuerda editar tu sclientinfo y ponerle la ip de tu provedor de host.
  2. Edit your pal grf, you have to import the kro default palletes just for the hairstyles! not bodies to your first read grf..... save and problem will be solved.. by the way.. diff your exe with char name height to 17 to show the whole name in the char creation panel.
  3. : DB error - Table 'ragnarok.autotrade_merchants' doesn't exist [Debug]: at C:\Users\Mario Zicari\Desktop\rAthena\src\map\script.cpp:16996 - SELECT `login`.`account_id` FROM `login` INNER JOIN `char` ON `char`.`account_id` = `login`.`account_id` WHERE `last_ip` = '127.0.0.1' AND `char`.`online` = 1 AND `login`.`account_id` NOT IN ( SELECT `account_id` FROM `autotrade_merchants` ) [Debug]: Source (NPC): Only1perIP (invisible/not on a map)
  4. Solved by my own means. Autotrade merchants are not counting in the multi login ip filter, Only 3 accounts per IP and the fourth was kicked. Also added an exception, just in case there are confirmed brothers, couples, etcm in different pcs but using same ip: if (#brothers) end; - script Only3perIP -1,{ OnPCLoginEvent: if (getgmlevel() >= 99) end; if (#brothers) end; set .@myname$, strcharinfo(0); if (query_sql("SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id WHERE login.last_ip='"+getcharip()+"' AND `char`.online=1 AND `char`.char_id!="+getcharid(0), .@name$) >= 2) { for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { if (!checkvending(.@name$[.@i]) ) set .@sameip, .@sameip +1; } if (.@sameip >= 3) { announce "Lo sentimos, Solo se permite un maximo de 3 cuentas logeadas por IP.", bc_self; mes "Suzaku Ro"; mes "Lo sentimos, solo se permite un maximo de 3 cuentas logeadas por IP!"; sleep 4000; atcommand "@kick " + .@myname$; } } end; }
  5. You have to replace that, for the one I provided and compile your server. case TK_JUMPKICK: //Different damage formulas depending on damage trigger if (sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == skill_id) skillratio += -100 + 4 * status_get_lv(src); //Tumble formula [4%*baselevel] else if (wd->miscflag) { skillratio += -100 + 4 * status_get_lv(src); //Running formula [4%*baselevel] if (sc && sc->data[SC_SPURT]) //Spurt formula [8%*baselevel] skillratio *= 2; } else skillratio += -70 + 10 * skill_lv; break;
  6. Your lines are not the same as latest rathena, that's why your damage formula is messed up in game.
  7. Can't reproduce your issue in latest revision Suzaku Ro _Mid Rates_ 2020-06-17 11-29-38.mp4 Please go to the battle.c in your SCR and check your damage formula, your line must be the same as below: case TK_JUMPKICK: //Different damage formulas depending on damage trigger if (sc && sc->data[SC_COMBO] && sc->data[SC_COMBO]->val1 == skill_id) skillratio += -100 + 4 * status_get_lv(src); //Tumble formula [4%*baselevel] else if (wd->miscflag) { skillratio += -100 + 4 * status_get_lv(src); //Running formula [4%*baselevel] if (sc && sc->data[SC_SPURT]) //Spurt formula [8%*baselevel] skillratio *= 2; } else skillratio += -70 + 10 * skill_lv; break;
  8. Dont know how or where to apply this, sorry for taking your time.
  9. Good Day, I found this script, and it's working fine, but is also counting the autotrade merchants! to the point if you have an autotrade logged out, you can't dual login! Any possible way to not count the autotrade merchants in this script? In order to keep an autotrade vending and still log with two maximun same ip accounts. Thanks in advance. - script Only2perIP -1,{ OnPCLoginEvent: if (getgmlevel() >= 99) end; set .@myname$, strcharinfo(0); if (query_sql("SELECT `char`.`name` FROM `char` LEFT JOIN login ON `char`.account_id=login.account_id WHERE login.last_ip='"+getcharip()+"' AND `char`.online=1 AND `char`.char_id!="+getcharid(0), .@name$) >= 2) { for (set .@i,0; .@i<getarraysize(.@name$); set .@i,.@i+1) { if (checkvending(.@name$[.@i]) != 2) set .@sameip, .@sameip +1; } if (.@sameip >= 2) { announce "Sorry, only 2 accounts per IP can be logged in at a time.", bc_self; sleep 1000; atcommand "@kick " + .@myname$; } } end; }
  10. Thank you, that was just the scripting lesson I needed! Now is woking fine... This will prevent GM's recalling normal users to enjoy the vip features map.. by the way, I noticed that the VIP status will be updated on player relog , if the vip timer expires in an account, she/he will still vip until reloggin.
  11. I need help to let only vip accounts and game masters lvl 99 stay in the script map "vip". Is difficult for me because I have to apply 3 filters and I'm not good scripter. //-----VIP MAP FILTER ACCES----- - script VIPFILTER -1,{ OnPCLoadMapEvent: if (getgmlevel()>=99) showscript strcharinfo(0)+" : Admin Level Account Confirmed!."; if (vip_status(VIP_STATUS_ACTIVE)){ showscript strcharinfo(0)+" : VIP Account Confirmed!."; }else{ showscript strcharinfo(0)+" : Your account is not VIP! or i'ts time has expired! Defaulting Save Point."; sleep2 2000; specialeffect2 18; savepoint "new_1-1",47,63; sleep2 2000; warp "new_1-1",47,63; end; } } //------Enable map OnPCLoadMapEvent------------------- vip mapflag loadevent Non VIP accounts and Not GM's, who enter "vip" map will have their save point defaulted and also be warped to that spot, GMs and vip will have the allowance message! and can stay there, I tried my best but i can't get it work as expected, could you lend me a hand? upvote spolier.
  12. Edit: I managed to stop them a little bit changing some numbers.. //Make sure walk delay is not decreased if (DIFF_TICK(ud->canmove_tick, tick+delay) > 450) //Immune to being stopped for double the flinch time if (DIFF_TICK(ud->canmove_tick, tick-delay) > 300) I don't understand C+ but I think those are the timers for the walk delay time applied and the can move time after the delay, and it's applied in a kind of cycle. I wish to make this timers tighter, Not so much walk delay and not so much imune to walk delay time. In the attached video bellow you wil see, the damage move delay and the can move grace time The whole lines in unit.c /** * Applies a walk delay to a unit * @param bl: Object to apply walk delay to * @param tick: Current tick * @param delay: Amount of time to set walk delay * @param type: Type of delay * 0: Damage induced delay; Do not change previous delay * 1: Skill induced delay; Walk delay can only be increased, not decreased * @return Success(1); Fail(0); */ int unit_set_walkdelay(struct block_list *bl, t_tick tick, t_tick delay, int type) { struct unit_data *ud = unit_bl2ud(bl); if (delay <= 1 || !ud) return 0; if (type) { //Bosses can ignore skill induced walkdelay (but not damage induced) if(bl->type == BL_MOB && status_has_mode(status_get_status_data(bl),MD_STATUS_IMMUNE)) return 1; //Make sure walk delay is not decreased if (DIFF_TICK(ud->canmove_tick, tick+delay) > 450) return 1; } else { // Don't set walk delays when already trapped. if (!unit_can_move(bl)) { unit_stop_walking(bl,4); //Unit might still be moving even though it can't move return 0; } //Immune to being stopped for double the flinch time if (DIFF_TICK(ud->canmove_tick, tick-delay) > 300) return 0; } ud->canmove_tick = tick + delay; if (ud->walktimer != INVALID_TIMER) { // Stop walking, if chasing, readjust timers. if (delay == 100) // Minimal delay (walk-delay) disabled. Just stop walking. unit_stop_walking(bl,0); else { // Resume running after can move again [Kevin] if(ud->state.running) add_timer(ud->canmove_tick, unit_resume_running, bl->id, (intptr_t)ud); else { unit_stop_walking(bl,4); if(ud->target) add_timer(ud->canmove_tick+1, unit_walktobl_sub, bl->id, ud->target); } } } return 1; } Suzaku Ro _Mid Rates_ 2020-06-11 07-11-52.mp4
  13. Nice script Emistry! But the edited lines are not blocking the access to the guild dungeons, they are blocking the casttle maps instead. @Emistry Can I attach my script, so you can note what I want exactly? I will be totally grateful and indebted to you, if you help me with this part I need to PREVENT non castle owners access to the second edition guild dungeon warper in my warper script but I can't do it, I tried copying the flower script but it's difficult to know their arrays. Line 3653 and line 3654 block that users for going into Guild dungeons //-NEED RACHEL CASTTLE OWNER FILTER Go("arug_dun01",0,0); //-NEED YUNO CASTTLE ONWER FILTER Go("schg_dun01",0,0); warper.txt
  14. View File 6 recolored Protect Cloths (Update) Added an aditional Green Color! Submitter iraciz Submitted 06/09/2020 Category Headgears Video Content Author iraciz  
      • 1
      • Like
  15. Version 2.0.0

    434 downloads

    Added an aditional Green Color!
    Free
  16. Here http://nn.ai4rei.net/dev/npclist/?qq=8
  17. Ok you mean the aggresive mode, you can guide using the mob db structure // Structure of Database : // ID,Sprite_Name,kROName,iROName,LV,HP,SP,EXP,JEXP,Range1,ATK1,ATK2,DEF,MDEF,STR,AGI,VIT,INT,DEX,LUK,Range2,Range3,Scale,Race,Element,Mode,Speed,aDelay,aMotion,dMotion,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3per,Drop1id,Drop1per,Drop2id,Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,Drop7id,Drop7per,Drop8id,Drop8per,Drop9id,Drop9per,DropCardid,DropCardper 0x3095 1585,MIME_MONKEY,Mime Monkey,MimeMonkey,40,6000,0,200,22,3,300,350,40,40,1,40,40,40,40,30,10,12,1,3,21,0x3095,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,741,5,619,20,0,0,0,0,0,0
  18. El mime monkey eh? agregale la skill al mob_skill_db 1585,Mime Monkey@MO_EXTREMITYFIST,chase,271,5,1000,2000,0,no,target,always,0,,,,,,, si quieres que pase un tiempo entre reuso de skill agregale el delay al cero antes del no en milisegundos Tambien puedes ver la estructura, no hace daño aprender un poco. // Structure of Database: // MobID,Dummy value (info only),State,SkillID,SkillLv,Rate,CastTime,Delay,Cancelable,Target,Condition type,Condition value,val1,val2,val3,val4,val5,Emotion,Chat
  19. Pheww.. I knew this was going to happen Thankyou my friend, because of your last diff, I managed to get those battleground in my server, I feel myself lucky.
  20. View File 4 Recolored Fire Mufflers Item, Collection, Drop, and Sprites included. Submitter iraciz Submitted 06/03/2020 Category Headgears Video Content Author iraciz  
      • 1
      • Like
  21. Version 1.0.0

    404 downloads

    Item, Collection, Drop, and Sprites included.
    Free
  22. Worked now... I exported the .yml files to all posible locations, import, de, and db_pre.re
  23. Same problem Here! help CheckAttendance.lub Config = { StartDate = 20200601, EndDate = 20201231 } Reward = { { 1, 501, 1 }, { 2, 501, 1 }, { 3, 501, 5 }, { 4, 501, 5 }, { 5, 501, 1 }, { 6, 501, 1 }, { 7, 501, 3 }, { 8, 501, 5 }, { 9, 501, 5 }, { 10, 501, 1 }, { 11, 501, 2 }, { 12, 501, 3 }, { 13, 501, 5 }, { 14, 501, 5 }, { 15, 501, 5 }, { 16, 501, 5 }, { 17, 501, 5 }, { 18, 501, 5 }, { 19, 501, 10 }, { 20, 501, 1 } } function main() result, msg = InsertCheckAttendanceConfig(Config.EvendOnOff, Config.StartDate, Config.EndDate) if not result then return false, msg end for k, rewardtbl in pairs(Reward) do result, msg = InsertCheckAttendanceReward(rewardtbl[1], rewardtbl[2], rewardtbl[3]) if not result then return false, msg end end return true, "success" end Attendance YML # This file is a part of rAthena. # Copyright(C) 2019 rAthena Development Team # https://rathena.org - https://github.com/rathena # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. # ########################################################################### # Attendance Database ########################################################################### # # Attendance Settings # ########################################################################### # - Start Start date. # End End date. # Rewards: List of rewards for each day. # - Day Reward day. # ItemId Item ID. ########################################################################### Header: Type: ATTENDANCE_DB Version: 1 Body: - Start: 20200601 End: 20201231 Rewards: - Day: 1 ItemId: 501 Amount: 2 - Day: 2 ItemId: 501 Amount: 2 - Day: 3 ItemId: 501 Amount: 2 - Day: 4 ItemId: 501 Amount: 2 - Day: 5 ItemId: 501 Amount: 2 - Day: 6 ItemId: 501 Amount: 2 - Day: 7 ItemId: 501 Amount: 2 - Day: 8 ItemId: 501 Amount: 2 - Day: 9 ItemId: 501 Amount: 2 - Day: 10 ItemId: 501 Amount: 2 - Day: 11 ItemId: 501 Amount: 2 - Day: 12 ItemId: 501 Amount: 2 - Day: 13 ItemId: 501 Amount: 2 - Day: 14 ItemId: 501 Amount: 2 - Day: 15 ItemId: 501 Amount: 2 - Day: 16 ItemId: 501 Amount: 2 - Day: 17 ItemId: 501 Amount: 2 - Day: 18 ItemId: 501 Amount: 2 - Day: 19 ItemId: 501 Amount: 2 - Day: 20 ItemId: 501 Amount: 2 Battleconf checked Permissions checked. Why still giving me the currently no attendance check event? I used your generator from this link https://secretdataz.github.io/attendance-generator/ Is not opening!
  24. not working
×
×
  • Create New...