Jump to content

jaBote

Community Contributors
  • Content Count

    2037
  • Joined

  • Last visited

  • Days Won

    43

Reputation Activity

  1. Upvote
    jaBote got a reaction from Roberto in Hercules Ultimate Localization Design   
    Please remember any .pot files are not for smoking. We at Hercules are always concerned for your health. (Joke based on one Jman told in IRC)
  2. Upvote
    jaBote got a reaction from Kichi in Hercules Ultimate Localization Design   
    Please remember any .pot files are not for smoking. We at Hercules are always concerned for your health. (Joke based on one Jman told in IRC)
  3. Upvote
    jaBote got a reaction from evilpuncker in IND please!   
    Change OP for Ind:
     

  4. Upvote
    jaBote reacted to Ind in Hercules Ultimate Localization Design   
    Hercules Ultimate Localization Design
    Hello~! - What?!
    Servers are now able to run under any number of languages, without having any of the default files modified Designed by Haruna and Ind  
    Translating NPCs without editing them
    By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes) A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base When you have a new .po file you want map server to use, add it to db/translations.conf Easy to Maintain
    Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use Script Command Macro
    Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime) Special Thanks to
    Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them Links~!
    Commit Editing Example
  5. Upvote
    jaBote got a reaction from Hadeszeus in Query Question mysql   
    Never done anything like this, but if you feel like experimenting try the cursors example here: http://www.databasejournal.com/features/mysql/mysql-cursors-and-loops.html
     
    Of course, experiment as much as you want in a backup or a test DB . The query you want to use for each cursor repetition is like this:
     
    INSERT INTO `char_reg_num_db` (`char_id`, `key`, `index`, `value`) VALUES (EVERY_CHAR_ID_GOES_HERE, 'limit_var', '0', '1');  
    Or you could get even smarter and do something like this (totally untested) code:
    -- Copy structure of char_reg_num_db into a temporary tableCREATE TABLE IF NOT EXISTS `temp_table` ( `char_id` int(11) unsigned DEFAULT '0', `key` varchar(32) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT '', `index` int(11) unsigned DEFAULT '0', `value` int(11) DEFAULT '0', PRIMARY KEY (`char_id`,`key`,`index`), KEY `char_id` (`char_id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;-- Add all existing char_ids into our tableINSERT INTO `temp_table` (`char_id`) SELECT `char_id` FROM `char`;-- Add the data we want to add for every user (row in the table)UPDATE `temp_table` SET `key` = 'limit_var', `index` = '0', `value` = '1' WHERE 1;-- Insert the temporary data into our char_reg_num_db tableINSERT INTO `char_reg_num_db` SELECT * FROM `temp_table`;-- Drop our temporary tableDROP TABLE `temp_table`;  
     And that's it. Hope it works. You should restart the server or make all your users relog for this to take effect.
  6. Upvote
    jaBote reacted to Yommy in What kind of RO interests the Ragnarok community?   
    easy, setup a really shit server and have no clue about what you are doing, then you are destined for 2000 players.but be careful, any kind of professionalism in your setup, you are lucky to get 200 players
     
    good luck
  7. Upvote
    jaBote reacted to goddameit in Increase monster HP on certain Maps   
    mob_spawn
     
    status_calc_mob(md, SCO_FIRST);
     
     
    if( md->bl.m == SPECIAL_MAP_ID ) { md->battle_status.max_hp += 9999999999;} 
  8. Upvote
    jaBote reacted to Ai4rei in RO Open Setup, v3.1.0.627 - last updated 2023/11/18   
    Currently all of the translations are complete, except for 2 or 3 bits from Russian.
  9. Upvote
    jaBote got a reaction from ShadowLight in Rebirth command   
    The job change to High Novice should be made on the script before issuing the resetlvl(1) script command if you want to make your players rebirth.
     
    So, the sequence for getting someone to transcend is like this:
     
    jobchange Job_Novice_High;resetlvl(1); resetlvl(1) will automatically give the 100 stat points, First Aid and Trick Dead skills if the new job is High Novice.
  10. Upvote
    jaBote got a reaction from Miнαєl in Hercules Radio   
    Find this line:
    announce strnpcinfo(1) +": Now playing '"+ .song$[.@option] +"' by "+ .artist$[.@option] +".", bc_map;  
    and change to this:
    announce strnpcinfo(1) +": Now playing '"+ .song$[.@option] +"' by "+ .artist$[.@option] +" as requested by "+ strcharinfo(0) +".", bc_map;
  11. Upvote
    jaBote got a reaction from Legend in RO Open Setup, v3.1.0.627 - last updated 2023/11/18   
    Meep meep
     
    IDINFOICON_SOUND_MISSINGFILES, "Aviso: Los archivos de "Miles Sound System" faltan o están corruptos.nnFaltan todos o algunos de los siguientes archivos: 'mss32.dll', 'mssfast.m3d', 'mp3dec.asi'. La música del juego podría no funcionar." IDCHECKBOX_MONSTERHP, "Activa o desactiva mostrar la barra de vida restante (HP) de los monstruos.nnUso en el juego: /monsterhp" IDCHECKBOX_Q1, "Activa o desactiva el mapeo de F9 al ratón.nPermite utilizar la skill asignada a la tecla F9 con un click derecho.nnUso en el juego: /quickspell o /q1" IDCHECKBOX_Q2, "Activa o desactiva el mapeo de F7 y F8 al ratón.nPermite utilizar skills asignadas a las teclas F7 y F8 desplazando la rueda del ratón hacia arriba y abajo, respectivamente.nnUso en el juego: /quickspell2 o /q2"
  12. Upvote
    jaBote reacted to Kong in Euphy's All-in-One NPC (Parse Error)   
    EDIT: Nevermind already found the problem. Deprecated script commands
  13. Upvote
    jaBote reacted to Jguy in HAT - The Hercules Admin Tool!   
    Hi Emistry!
     
    This was already on my list. I'm not certain how I want to do it though. So far I think I have two options on what I can do/how I want to do it:
     
    * If the Control Panel can start/stop your server (which I hope it can), I can force the CP to start the map-server in a screen of my choosing and then I can send command with the Hercules Console Input . However, this (I believe) would require you to install the panel ON the server running Hercules. Obviously this would also allow me to pass commands to the running server via an SSH socket, such as apt-get update / yum update and such. But! The caveat is that the user would have to install apache/php/php5-mysql on the server running Hercules. While a few people accessing the Tool on a non-constant basis wouldn't require a huge amount of server resources (I think on my tests while I'm actively doing stuff my apache uses around 30MB of RAM, maybe less) it's still requiring those server resources. What I have going for me in this scenario is that Ind has been wonderful in reducing the amount of memory Hercules takes therefore making this somewhat possible.
    * Alternatively, I've already put together a hidden NPC that I could use to pass @/# commands to in-game. Store them in a SQL table and then have the NPC poll the table every few minutes for a new command. The issue with this is if you wanted to pass a command to an online player and you issue the command through the CP and that player logs off before the command is executed, the command will fail, and I do not believe the atcommand and charcommand script commands have a way to communicate back to anything that they failed.
     
    EDIT: A solution to the second point I suppose is check to see if the character is online when the command is supposed to be ran. Not online? Sends a query back to the table that states the command has/will fail because the character in question is offline. In this way I can also make the CP save commands for when the player IS online, but then I'd have to have the NPC poll the table close to every minute, not sure how much lag that might cause.
  14. Upvote
    jaBote reacted to Ragno in Exp boost on certain maps   
    Maybe using "bexp" and "jexp" mapflags may boost exp rates in certain maps as you want to do.
  15. Upvote
    jaBote got a reaction from mleo1 in how to make npc dynamic pub? plus questions   
    Answering to your second question (as the other ones have already been addressed): yes, you can omit the end; sentence if it's the last line of code before the closing curly brace of the NPC since it'll be assumed. Anyways, it's good practice to place it to end your script in any case wherever you'd want to end it, to avoid any possibly unexpected behavior.
  16. Upvote
    jaBote reacted to evilpuncker in item_cash_db.txt Make item has expiration date after 7days when purchased   
    do as gravity did, create a "box" of the item and add rentitem command on it
  17. Upvote
    jaBote got a reaction from vBrenth in Introducing Hercules Channel System   
    I find this last suggestion of use.
  18. Upvote
    jaBote reacted to Tokeiburu in What do you think about the new Prontera?   
    Heya, if anyone's interested, I made a GRF with the new prontera maps but with downgraded model files. Older clients will be able to load the maps just fine
     
    http://www.mediafire.com/download/7hcz6u9vl4vjhb4/newprontera.grf
  19. Upvote
    jaBote reacted to Ragno in Sprite High wizard kro e iro   
    Si, pero solo cuidando que las carpetas queden en el mismo orden. Por ejemplo, en el archivo que envié se encuentra la carpeta "sprite". Esa carpeta es la misma que viene en tu grf, pero que contiene solo los sprites de hw y para agregarla solo hace falta colocarla dentro de la raíz de tu grf. Si por el contrario agregas esa carpeta sprite dentro de la carpeta sprite de tu grf, los archivos no se encontrarán en la ruta correcta y el cliente no podrá encontrarlos.
     
    En resumen, la ruta de los sprites del hw debe quedar como sigue:
     
    archivo .grfdataspriteÀΰ£Á·¸öÅë¿©(sprites female)
    archivo .grfdataspriteÀΰ£Á·¸öÅë³²(sprites male)
  20. Upvote
    jaBote got a reaction from Doch in Servidor oficial de Ragnarök Online para España   
    Realmente no me molesta tanto el hecho de que hayan quitado el dominio a Melfina y poner ellos su web. El dominio era suyo y que sepa, podría objetar transferírselo o revenderlo a un precio superior porque no ha sido usado con fines especulativos ni ilegales dentro de la legislación española. Aún así, estando yo en el lugar de Melfina y siendo una persona sin apenas medios y ellos una empresa pues entiendo que el dominio haya sido cedido sin más, aunque lo que espero y deseo que lo haya revendido y a un precio bien alto.
     
    Ahora bien, lo que me enerva y me hace perder la templanza, es la GUARRADA que han hecho con la página de los tops. No solo es moralmente reprochable reproducir la página (incluye datos de webs de terceros que querían promocionarse) eliminando además el contenido de copyright en el pie de la página sin permiso del dueño original, sino que es de tener poco estilo que hayan hecho eso como una sucia treta para conseguir mercado. Estoy prácticamente seguro de que van a guardar registros de entrada de todas las votaciones entrantes de los tops (actualmente da un error 300 pero todo acceso se sigue guardando en los logs de apache a menos que se desactiven) y de los clicks que se hagan de salida (¿de ahí el campo pixeltracking que se envía por GET?), que es lo que más me preocupa de todo esto. Rastrean el tráfico de entrada y salida para saber qué usuarios vienen de qué webs, y luego si haces click en ellos saben a qué servidor pretendías dirigirte (aunque te redirijan a su "nueva web") y viendo lo que ya han hecho son perfectamente capaces de "tomar medidas", que ya me imagino yo lo que serán.
     
    Por cierto, lo digo y me reafirmo: Los servidores privados son algo alegal salvo que se utilice un cliente suyo original o modificado, que es cuando estaría en contra de los términos del servicio de casi cualquier empresa que explote algún software privativo y ya sí que roza los términos de la ilegalidad.
     
    Pero claro, aunque hagan algo ya no solo de mal gusto y rozando la competencia desleal si los servidores privados fueran legales (porque lo del top es conseguir usuarios educadamente, ¿verdad?) sino que quiénes van a denunciarlo, ¿los que tienen un servidor privado al margen de la ley? ¿Para que luego arremetan contra esos mismos servidores? ¡ANDA YA! Es más, como son ellos quienes tienen la "legalidad" de su mano, somos nosotros a ojos de la ley quienes les hacemos competencia desleal.
     
    Nos vendieron un servidor oficial español y lo que tenemos es una burda traducción que de momento no deja de ser poco más que (en mi opinión) una farsa y lo único que veo es están haciendo es tratar de hundir el panorama del Ragnarök Online hispano, porque seguro que también tratarán de hacerse notar en servidores de América Latina de alguna forma. Si eres el dueño de un servidor hispanohablante de fuera de España y desconoces la extensión geográfica de su licencia, ¿qué harías si te llegara una carta de cese y desista? Yo no sabría qué hacer.
     
    En serio, no doy crédito a lo que ven mis ojos. Antes no me preocupaba su presencia (incluso me alegraba descontando la gran torpeza con que se hizo el tráiler de presentación), pero ahora no tanto después de ver qué tan rastrero se puede llegar a ser.
     
    Por cierto: por si le da a algún respetable miembro de la empresa idc-games por pasarse por aquí, recuerdo que los posts vertidos en los foros (y, en particular, este mismo) son meras opiniones. Que ponga a parir las guarradas que EN MI OPINIÓN se han hecho en la empresa no constituye aún ningún delito en España (ni tan siquiera difamación porque no estoy mintiendo), por suerte .
     
    Mi recomendación para quien desee jugar al fRO en español (o en lo que se supone que es español actualmente, digo) y no esté de acuerdo con estas políticas es que se haga una cuenta desde la web OFICIAL de fRO (http://www.ragnarokeurope.com) y evite usar la plataforma de IDC-GAMES en el registro y para cualquier otra cosa. Luego puede escoger cambiar el idioma del cliente al iniciarlo, y el de los textos de NPC hablando con los NPC traductores que hay en las ciudades principales, al menos. Y las compras, al fRO oficial y todo en inglés o en francés según lo que se te de mejor, para que les deje menos comisiones. Y a ver si logramos que se vayan por donde han venido. O también hacer las cosas por Steam puede ser una alternativa.
     
    Al menos si desaparecen o dejan de ofrecer el RO la traducción española se quedará y podremos usarla. O al menos si tiene arreglo.
     
    Un saludo.
  21. Upvote
    jaBote got a reaction from adrian26v2 in Announce Emperium Breaker   
    Nope, it happens with current npc/guild/agit_main.txt file:
     
      // Respawn the Emperium, and display new owners. sleep 500; // Slow down script execution slightly. if( agitcheck() ) donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena"; sleep 7000; announce "The [" + getcastlename(strnpcinfo(2)) + "] castle has been conquered by the [" + getguildname(.@GID) + "] guild.",bc_all|bc_woe; end;  
    The sleep script command detaches RID from script, so it won't be able to get any user name with strcharinfo() and push an empty string. Either get the char name before the sleep commands and save to a temporary variable, or change all sleep to sleep2, which will retain attached RID to the script.
  22. Upvote
    jaBote reacted to evilpuncker in Depurar pico de processamento Map server   
    tenho 99% de certeza de que seu problema é por causa de scripts mal feitos rodando continuamente e causando o alto consumo de recursos do VPS
  23. Upvote
    jaBote got a reaction from tupe1387 in Reset NPC   
    Maybe this untested NPC edit could help you do that? I took a different approach than Happy's because I think it's a bit cleaner this way:
     
    //===== Hercules Script ======================================//= Reset NPC//===== By: ==================================================//= Hercules Dev Team//===== Current Version: =====================================//= 1.3//===== Description: =========================================//= Resets skills, stats, or both.//===== Additional Comments: =================================//= 1.0 First Version//= 1.1 Optimized for the greater good. [Kisuka]//= 1.2 Cleaning [Euphy]//= 1.3 All statuses removed upon skill reset. [Euphy]//===== Custom Additions: ====================================//= 1.3a Custom reset limits. Modernized syntax [jaBote]//============================================================prontera,150,193,4 script Reset Girl 4_F_TELEPORTER,{ .@ResetStat = 5000; // Zeny for stat reset .@ResetSkill = 5000; // Zeny for skill reset .@ResetBoth = 9000; // Zeny for resetting both together .@MaxReset = 3; // Max amount of resets. Must be positive. mes "[Reset Girl]"; mes "I am the Reset Girl."; if (.@MaxReset) { mes "You can reset your character up to " + .@MaxReset + " times."; if (ResetCount >= .@MaxReset) { mes "Sorry, you've already used all of your available resets."; close; } mes "You've already used this service for " + ResetCount + " time(s)."; } mes "Reset Stats: "+ .@ResetStat +"z"; mes "Reset Skills: "+ .@ResetSkill +"z"; mes "Reset Both: "+ .@ResetBoth +"z"; mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { case 1: mes "[Reset Girl]"; if (Zeny < .@ResetSkill) { mes "Sorry, you don't have enough Zeny."; close; } if (.@MaxReset) ResetCount++; Zeny -= .@ResetSkill; sc_end SC_ALL; resetskill; mes "There you go!"; close; case 2: mes "[Reset Girl]"; if (Zeny < .@ResetStat) { mes "Sorry, you don't have enough Zeny."; close; } if (.@MaxReset) ResetCount++; Zeny -= .@ResetStat; resetstatus; mes "There you go!"; close; case 3: mes "[Reset Girl]"; if (Zeny < .@ResetBoth) { mes "Sorry, you don't have enough Zeny."; close; } if (.@MaxReset) ResetCount++; Zeny -= .@ResetBoth; sc_end SC_ALL; resetskill; resetstatus; mes "There you go!"; close; case 4: close; }}
  24. Upvote
    jaBote got a reaction from Alexandria in Reset NPC   
    Maybe this untested NPC edit could help you do that? I took a different approach than Happy's because I think it's a bit cleaner this way:
     
    //===== Hercules Script ======================================//= Reset NPC//===== By: ==================================================//= Hercules Dev Team//===== Current Version: =====================================//= 1.3//===== Description: =========================================//= Resets skills, stats, or both.//===== Additional Comments: =================================//= 1.0 First Version//= 1.1 Optimized for the greater good. [Kisuka]//= 1.2 Cleaning [Euphy]//= 1.3 All statuses removed upon skill reset. [Euphy]//===== Custom Additions: ====================================//= 1.3a Custom reset limits. Modernized syntax [jaBote]//============================================================prontera,150,193,4 script Reset Girl 4_F_TELEPORTER,{ .@ResetStat = 5000; // Zeny for stat reset .@ResetSkill = 5000; // Zeny for skill reset .@ResetBoth = 9000; // Zeny for resetting both together .@MaxReset = 3; // Max amount of resets. Must be positive. mes "[Reset Girl]"; mes "I am the Reset Girl."; if (.@MaxReset) { mes "You can reset your character up to " + .@MaxReset + " times."; if (ResetCount >= .@MaxReset) { mes "Sorry, you've already used all of your available resets."; close; } mes "You've already used this service for " + ResetCount + " time(s)."; } mes "Reset Stats: "+ .@ResetStat +"z"; mes "Reset Skills: "+ .@ResetSkill +"z"; mes "Reset Both: "+ .@ResetBoth +"z"; mes "Please select the service you want:"; next; switch(select("^FF3355Reset Skills:Reset Stats:Reset Both^000000:Cancel")) { case 1: mes "[Reset Girl]"; if (Zeny < .@ResetSkill) { mes "Sorry, you don't have enough Zeny."; close; } if (.@MaxReset) ResetCount++; Zeny -= .@ResetSkill; sc_end SC_ALL; resetskill; mes "There you go!"; close; case 2: mes "[Reset Girl]"; if (Zeny < .@ResetStat) { mes "Sorry, you don't have enough Zeny."; close; } if (.@MaxReset) ResetCount++; Zeny -= .@ResetStat; resetstatus; mes "There you go!"; close; case 3: mes "[Reset Girl]"; if (Zeny < .@ResetBoth) { mes "Sorry, you don't have enough Zeny."; close; } if (.@MaxReset) ResetCount++; Zeny -= .@ResetBoth; sc_end SC_ALL; resetskill; resetstatus; mes "There you go!"; close; case 4: close; }}
  25. Upvote
    jaBote reacted to xiao in Error al entrar a BG   
    No, no son BGs oficiales xD. Pero ya arregle el problema, era agregar los nombres de los mapas en el map_cache nadamas.. Gracias por responder saludos
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.