-
Content Count
133 -
Joined
-
Last visited
-
Days Won
13
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by Ragno
-
That is possible only when translated from Spanish to English, because Huld generates two different lines in that case and both of them can be translated separately. However, to use that soultion we sould edit the original English text to make it different for male and female players. It would be something like this: if (Sex == SEX_MALE) mes("Welcome to Prontera."); else mes("Welcome to Prontera."); Notice that there is a second space in the second sentence. That makes it different and Huld generates an unique string for both cases. I don't think it would be the best solution, because it would need to edit every single script in npc folder to do an edition that is not needed in every language and Huld's existance is to integrate the existance of every language to the same script. I don't know how exactly works Huld, but I can think in another idea that maybe could help in this kind of cases. What about put a second translation in the same script, something like this: #: npc/cities/prontera.txt # mes "Welcome to Prontera."; msgctxt "Guard#pront::prtguard" msgid "Welcome to Prontera." msgstr "Bienvenido a Prontera.":"Bienvenida a Prontera." So, this wouldn't need to edit the original script and when Huld detect there is a second string, let him knows the first one stands for male players and the second one stands for female players. It would be even more easier, since it doesn't involve any sprint command. Another idea that I have is maybe create another command than msgstr, one that let huld know that the translated string has a different translation according to the gender of the player.
-
[Instance]Horror Toy Factory (Aegis Server)
Ragno replied to chao93's topic in Quest, Shops, Functions & Algorithms Releases
It has been sended pull request with the conversion of the scripts provided by @esu1214, however it stills lack this features: setmobdata and getmobdata commands Skills 716 and 719 for Spectrum Celine and Hidden Mob monsters The parts from the script invoking that has been commented until devs finish the emulation of those contents. However, it is still playable. Pull request: https://github.com/HerculesWS/Hercules/pull/1539 -
Please, also make the server save the language that player has selected even after player logs out, because they have to select it every time they log in again.
-
As pointed by @4144 in this post, there is some words that may have different translations according to the gender of the player. In example, there is this Guard in Prontera that says: "Welcome to Prontera." When translated to Spanish, this sentence can have two different translations according to the player: "Bienvenido a Prontera" -> Male players "Bienvenida a Prontera" -> Female players And this can't be avoided without alter the original sentence. Would it be possible to make a special feature to mark sentences like this one so huld can make a differentiation of gender? I'm thinking in something like this: #: npc/cities/prontera.txt # mes _%("Welcome to Prontera."); msgctxt "Guard#pront::prtguard" msgid "Welcome to Prontera." msgstr sprintf("%s a Prontera.", Sex == SEX_MALE ? "Bienvenido" : "Bienvenida") So, huld could recognice the sprintf command instead of a string and calculate the string to show according to the condition. Thank you!
-
Huld doesn't support \r in mes command (tested on Hercules-68947c86d5fe3eb2686c9b3393e3db0df083bb11 version). Example: Script: mes("It seems those limbs belong to that ugly octopus. That monster should be taken care of,\r" "but it's hard for ourselves only to make it happen, hehe."); Generated translation: #: npc/re/instances/octopus_cave.txt # mes("It seems those limbs belong to that ugly octopus. That monster should be taken care of,\r" msgctxt "Starfish" msgid "It seems those limbs belong to that ugly octopus. That monster should be taken care of,\rbut it's hard for ourselves only to make it happen, hehe." msgstr "Parece que esas extremidades pertenecen a ese horrible pulpo. Alguien debería encargarse de ese monstruo,\rpero el hacerlo es muy difícil para nosotros solos, hehe." Even when there is a translation, huld always shows English text.
-
According to Aegis scripts you post about Horror Toy Factory, this is the AegisName from this two items: --------------------------------------------------- ID AegisName AegisName (HTF) --------------------------------------------------- 2976 Red_Lanter Red_Lantern 18849 Celine_Ribbo Celines_Ribbon Both can be found into in_xmas.txt script. Also, Horror Toy Factory monster's drops adds some new items with an unknown official AegisName: 6683 Dried_Flower 7643 Bloody_Letter 7644 Draft_Letter 31016 Decorated_Evil_Tree_Card 31017 Brutal_Tattered_Cookie_Card 31018 Evil_Enchanted_Box_Card 31019 Eerie_Spirit_Card 31020 Evil_Chill_Ghost_Card 31021 Dancing_Marionette_Card 31022 Dumped_Teddy_Bear_Card 31023 Celine_Kimi_Card
-
[Instance]Horror Toy Factory (Aegis Server)
Ragno replied to chao93's topic in Quest, Shops, Functions & Algorithms Releases
I have converted it to Hercules format: xm_d - Hercules.rar This uses AnnieRuru's Plugin: http://herc.ws/board/topic/11097-setmobdata-getmobdata/ in the battle against Celine Kimi. I have still not played it, only converted trying to be as close as possible to the original scripts. However, I duplicate some npcs in order to compact script and make it more readable. I hope this helps to Ridley's script and make it easier to other people to translate it from chinese. -
I'm having problems with translations plugin. This is the npc: prontera,50,50,0 script NPC_TEST PORING,{ mes "A little " + (Sex == SEX_MALE ? "boy" : "girl") + ". Who are you?"; mes "Oh! you are " + strcharinfo(PC_NAME) + ", nice to meet you."; close; } In the example, all the text is included on generated translations file, but the line ", nice to meet you." is not. It seems like if the strcharinfo command ends the line (even when the conditional boy/girl is all included and reanudates the line). #: npc/test.txt # mes "A little " + (Sex == SEX_MALE ? "boy" : "girl") + ". Who are you?"; msgctxt "NPC_TEST" msgid "A little " msgstr "" #: npc/test.txt # mes "A little " + (Sex == SEX_MALE ? "boy" : "girl") + ". Who are you?"; msgctxt "NPC_TEST" msgid "boy" msgstr "" #: npc/test.txt # mes "A little " + (Sex == SEX_MALE ? "boy" : "girl") + ". Who are you?"; msgctxt "NPC_TEST" msgid "girl" msgstr "" #: npc/test.txt # mes "A little " + (Sex == SEX_MALE ? "boy" : "girl") + ". Who are you?"; msgctxt "NPC_TEST" msgid ". Who are you?" msgstr "" #: npc/test.txt # mes "Oh! you are " + strcharinfo(PC_NAME) + ", nice to meet you."; msgctxt "NPC_TEST" msgid "Oh! you are " msgstr "" That is because since commits on Jun 25, 2016 it was moved translations template generator to a plugin and it is now needed to build the plugin to use it. You can build the plugin following this instructions (based on wiki) : 1. Open folder \vcproj-14\ 2. Copy and paste plugin-sample.vcxproj to duplicate it. 3. Rename file "plugin-sample.vcxproj" to "generate-translations.vcxproj" 4. Open generate-translations.vcxproj in Notepad++ 5. Find this line: <ProjectName>plugin-sample</ProjectName> 6. Rename 'plugin-sample' to 'generate-translations' 7. Find this line: <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">generate-translations</TargetName> 8. Rename sample to generate-translations 9. Find this line: <ClCompile Include="..\src\plugins\sample.c" /> 10. Renae sample to generate-translations 11. Save changes and close 12. Open MSVC. Do right-clic on Solution 'Hercules-14'. Select Add -> Existing Project... 13. Select generate-translations.vcxproj in folder \vcproj-14\ 14. Right-click Hercules-14, Select Build-Solution 15. Add it to /conf/plugins.conf plugins_list: [ /* Enable HPMHooking when plugins in use rely on Hooking */ "HPMHooking", // <-- Uncomment this //"db2sql", //"sample", //"other", "generate-translations", // loads generate-translations plugin ]
-
iRO Weekly Turn-In Event - Gramps NPC
Ragno replied to Ragno's topic in Quest, Shops, Functions & Algorithms Releases
Here is version 1.1 for Gramps script: Gramps_Weekly_TurnIn_1.1.txt Since this version, Gramps Turn-In can be configured with a special npc located in sec_in01,98,180. This npc allows a GM to set and update turn-in quest and maps without the need of disconnection. Gramps npc has been changed to use global permanent variables to resist disconnection. However, maps available are only the duplicated versions for pay_dun00, gef_dun03 and mosk_dun02. This will be updated when map changes on iRO and obtain the official map warp destination and npc positions for new maps. GMs may want to set custom destinations in the meantime. Monsters are now spawned according to Gramps configuration, and also added a special spawn for previous week monsters. The quests and monsters are organized with the propper kind of map with official parameters (high level monsters will not be available to put as target in low level map). Data for quests and monsters categorization has been obtained from iRO Wiki Archive data. Please report andy issue or suggestion you may find with this new version. -
iRO Scripts + database releases
Ragno replied to Sephus's topic in Quest, Shops, Functions & Algorithms Releases
Cool release bro. I'm happy to met other people who share interest to emulate iRO content. -
iRO Weekly Turn-In Event - Gramps NPC
Ragno replied to Ragno's topic in Quest, Shops, Functions & Algorithms Releases
I haven't considered it because this is iRO content, and I understand there is no interest to follow that. However, I will propose it as a suggestion just after finish some changes I want to do to add a gm control and monsters spawns. -
The following script emulates iRO's Weekly Turn-In Event (Gramps NPC). This was made by having direct interaction with Gramps npc ingame. For more details please check: Weekly Turn-In Events - iRO Wiki Special thanks to: ZacktheBear from AtlantisRO. This would not have been possible without his invaluable help by providing replay data and testing. Resources: Gramps_Weekly_TurnIn_1.1.txt quest_db.conf.txt questid2display.txt resnametable.txt Previous Versions: Gramps_Weekly_TurnIn.txt Some notes about this script: This script uses special maps to warp players. Please prepare the map-cache according to data provided. Some quest gives Zeny reward, but it is not clear which one gives and which one doesn't. Please provide any data to know how does this works to update properly. I use the variable "vip_status" to identify the vip status from vip system. You may want to modify it as your own needs. Since version 1.1, Gramps Turn-In can be configured with a special npc located in sec_in01,98,180. This npc allows a GM to set and update turn-in quest and maps without the need of disconnection. Gramps npc has been changed to use global permanent variables to resist disconnection. However, maps available are only the duplicated versions for pay_dun00, gef_dun03 and mosk_dun02. This will be updated when map changes on iRO and obtain the official map warp destination and npc positions for new maps. GMs may want to set custom destinations in the meantime. Monsters are now spawned according to Gramps configuration, and also added a special spawn for previous week monsters. The quests and monsters are organized with the propper kind of map with official parameters (high level monsters will not be available to put as target in low level map). Data for quests and monsters categorization has been obtained from iRO Wiki Archive data. Please feel free to make any suggestion for improve this script and report any issue you may find.
-
According to kRO 2014.02.01 Notice it was added a Guild Storage NPC in every city: I have this questions about this update: How does this npc works? Is it an independent npc or it was added via Kafra Employee? Can every guild member access the guild storage? Or only those who has the storage check in guild window? What are the requisits to use it? And also want to request for somebody with kRO account to please bring screenshots (or video if possible) with the official dialogues of this npc to make it a script. Thanks!
-
iRO has the clan system active since some months, and players can apply to a clan. Here are some observations: Clan Master (I guess) is the npc who joins player to the clan. There is four clans on iRO right now (Sword, Arc Wand, Golden Mace and Crossbow). Guilded players can't join a clan. When joining a clan it is displayed the clan logo just like in the picture. When you pass the mouse over the clan master npc, it shows the clan logo in his name: This are the buffs seted when player joins the clan. This buff is like any other buff, is permanent and is removed when leave the clan. And this are the dialogues and messages from that four npcs: I used a "clan()" fictional command to indicate the kind of activity every npc do. I hope this help
-
iRO 13th Anniversary Quest Event
Ragno replied to Ragno's topic in Quest, Shops, Functions & Algorithms Releases
Damnd, you were faster xD I just finished it I didn't know you were doing it I just did this for fun, to have some record in time about this content, like an archive. 1.1 - Applied a missed playtime argument in one questprogress and changed one message from global message to map announcement. -
iRO 13th Anniversary Quest Event
Ragno replied to Ragno's topic in Quest, Shops, Functions & Algorithms Releases
Thank you and sure, I will release a rAthena version. About the question, no, this is not part of Weekly Turn-In Events, this is an independent event that uses the same npc to make the story. Also, turn-in npc is still available while this quest is active. -
The following script emulates the iRO's 13th Anniversary Quest Event active on 2016 June in iRO. This was made by directly doing this quest on iRO. For more details please check: Event Notice || iRO Wiki Resources: iRO_13th_Anniv_1.1.txt items data.txt questid2display.txt quest_db.txt Feel free to make any question.
-
The following script emulates the Bounty Board Quests from iRO. This was made by having direct interaction with all the npcs, directly doing some of this quest and also using iRO Wiki information as a source. This quest uses a special function designed to concentrate and manage all the bounties in a few lines, to make it easy to update, modify or even create custom bounties. iRO Bounty Boards v1.0.rar For more details please check: Bounty Board Quests - iRO Wiki Special thanks to: Trixtan and ZacktheBear from AtlantisRO. This would not have been possible without their invaluable help. Some notes about this: There are some errors in iRO's npc. In example, in Juno the Bounty 70-110 for Juno with a char base level 127, the Bounty says it is for levels 70-100 (not 110, as his name says). This error was caused because this quests were implemented before update that expands max base level to 175 and it seems that iRO's npc were scripted individually one by one, not as a function, so, this errors may be only little bugs when updating values. This kind of error is present in some bounties for Lighthalzen, Hugel, and don't remember which other one. However, all the npcs presented here are using the information provided by iRO Wiki and presents information ingame avoiding this kind of errors. I have not added the questinfo command to show quest mark, because the equivalent in iRO has an argument to check player's base level, so the mark doesn't active with all the players, but only the ones that are in the base level limit. Some to-do : I'm missing base/job exp for False Angel and Mini Demon (Geffen Bounties), since that information is not present in iRO Wiki and I haven't The Sign quest. If somebody can open Portal to Geffenia, i will update that values. Bounties for biolab 2 and 3 has a special function, it is like containing two boards in one, since a player can choose to do all bounties for monsters from 3rd level and all bounties for monsters from 4th level (to receive the reward for all the bounties completed). I also forget to add the vip function to Collect All Bounties. This quests are a close emulation to iRO's Bounty Boards. We hope players can enjoy this quests. If you detect any error or have a suggestion, please feel free to comment it.
-
Thanks for the replies. The Crash occurrs in "battle.c:5850" function "battle_reflect_damage" if( (--sc->data[sC_LG_REFLECTDAMAGE]->val3) <= 0 ) The function "battle_reflect_damage" is called from the line "battle.c:5620" (function "battle_calc_weapon_attack") battle->reflect_damage(target, src, &wd, skill_id); Also, in this battle.c in the line 4107 (function "Damage battle_calc_misc_attack") md.damage = md.damage*(1000 + tstatus->mdef) / (1000 + tstatus->mdef * 10) - tstatus->mdef2; If the value "tstatus->mdef" is -100 you got a crash by division by 0 in this part "(1000 + tstatus->mdef * 10)" This is the battle.c that has the crash: battle.c I'm posting this on bugtracker. Edit: Cannot start a new Issue in bugtracker. This is not the Reflect Damage Skill ID. Did you changed something in battle.c? No, we have not edited this part of the src.
-
We are having a map crash related to Royal Guard skill Reflect Damage, and have some problems to individualice/reproduce the problem. This is the report we have: Core was generated by `./map-server'. Program terminated with signal 11, Segmentation fault. #0 battle_reflect_damage (target=0x324bb60, src=0x7f612ac13f4c, wd=0x7ffe6c7ae200, skill_id=26320) at battle.c:5851 5851 if( (--sc->data[SC_LG_REFLECTDAMAGE]->val3) <= 0 ) Missing separate debuginfos, use: debuginfo-install glibc-2.12-1.166.el6_7.3.x86_64 keyutils-libs-1.4-5.el6.x86_64 krb5-libs-1.10.3-42.el6.x86_64 libcom_err-1.41.12-22.el6.x86_64 libgcc-4.4.7-16.el6.x86_64 libselinux-2.0.94-5.8.el6.x86_64 mysql-libs-5.1.73-5.el6_6.x86_64 nss-softokn-freebl-3.14.3-23.el6_7.x86_64 openssl-1.0.1e-42.el6.x86_64 pcre-7.8-7.el6.x86_64 zlib-1.2.3-29.el6.x86_64 (gdb) BT FULL #0 battle_reflect_damage (target=0x324bb60, src=0x7f612ac13f4c, wd=0x7ffe6c7ae200, skill_id=26320) at battle.c:5851 change = false sce_d = <value optimized out> d_bl = <value optimized out> ssc = <value optimized out> damage = 0 rdamage = <value optimized out> trdamage = <value optimized out> sd = 0x0 tsd = 0x324bb60 sc = <value optimized out> tick = 80965520 delay = 300 rdelay = <value optimized out> max_reflect_damage = 31277 #1 0x0000000000467842 in battle_calc_weapon_attack (src=0x7f612ac13f4c, target=0x324bb60, skill_id=<value optimized out>, skill_lv=0, wflag=0) at battle.c:5621 damage = 1 skillratio = <value optimized out> temp = <value optimized out> s_ele = 0 ---Type <return> to continue, or q <return> to quit--- s_ele_ = 0 i = <value optimized out> nk = 0 n_ele = true sd = 0x0 tsd = 0x324bb60 wd = {damage = 0, damage2 = 0, type = 0, div_ = 1, amotion = 768, dmotion = 748, blewcount = 0, flag = 529, dmg_lv = ATK_DEF} sc = <value optimized out> tsc = 0x324bfc0 sstatus = 0x7f612ac142cc tstatus = 0x1 flag = {hit = 1, cri = 0, idef = 0, idef2 = 0, pdef = 0, pdef2 = 0, infdef = 0, arrow = 0, rh = 1, lh = 0, weapon = 1, tdef = 0, distinct = 0} __func__ = "battle_calc_weapon_attack" #2 0x0000000000466bd9 in battle_calc_attack ( attack_type=<value optimized out>, bl=<value optimized out>, target=0x324bb60, skill_id=<value optimized out>, skill_lv=<value optimized out>, count=0) at battle.c:5654 d = {damage = 0, damage2 = -4294967296, type = 14, div_ = 0, amotion = 0, dmotion = 0, blewcount = 2819, flag = 65535, dmg_lv = ATK_NONE} ---Type <return> to continue, or q <return> to quit--- sd = 0x0 __func__ = "battle_calc_attack" #3 0x0000000000463fd5 in battle_weapon_attack (src=0x7f612ac13f4c, target=0x324bb60, tick=80965517, flag=0) at battle.c:6164 sd = 0x0 tsd = 0x324bb60 sstatus = 0x7f612ac142cc tstatus = 0x324bf58 sc = 0x7f612ac1433c tsc = 0x324bfc0 damage = <value optimized out> skillv = <value optimized out> wd = <value optimized out> __func__ = "battle_weapon_attack" #4 0x000000000062b80a in unit_attack_timer_sub (src=0x7f612ac13f4c, tid=<value optimized out>, tick=80965517) at unit.c:2194 target = 0x324bb60 ud = 0x7f612ac13f6c sstatus = 0x7f612ac142cc sd = <value optimized out> md = 0x7f612ac13f4c range = 0 #5 0x000000000062b9e4 in unit_attack_timer (tid=1775, tick=80965517, ---Type <return> to continue, or q <return> to quit--- id=<value optimized out>, data=<value optimized out>) at unit.c:2225 bl = 0x7f612ac13f4c #6 0x000000000064091a in do_timer (tick=80965519) at timer.c:489 tid = 1775 diff = -2 __func__ = "do_timer" #7 0x0000000000644c2b in main (argc=<value optimized out>, argv=<value optimized out>) at core.c:464 next = <value optimized out> retval = 0 (gdb) Do you have any opinion about this?
-
I see now, thanks again for the reply Dastgir
-
Thanks for the reply Dastgir, i did not consider the episode difference.
-
The following script emulates the Spotlight Quest: Adventure of the Tarnished Lamp active on 2016 June in iRO. This was made directly doing the quest. For more details please check: Event Notice || iRO Wiki This quest requires an special spawn of Byorgue monster named "Byorgue Mercenary" who hasn't any exp/drops and has the following stats: Resources: iRO_Event_2016-06.txt questid2display.txt quest_db.txt Feel free to make any question.
-
Recently we have noticed that monsters in Hercules are giving 200% base experience and 166% job exp in comparisson to kRO's website gnjoy. In example: Miming: Hercules: 9230 BaseExp / 6300 JobExp kRO: 4615 BaseExp / 3780 JobExp Little Fatum: Hercules: 9750 BaseExp / 6500 JobExp kRO: 4875 BaseExp / 3900 JobExp Angra Mantis: Hercules: 10126 BaseExp / 7020 JobExp kRO : 5063 BaseExp / 4212 JobExp Pom Spider: Hercules: 10412 BaseExp / 8037 JobExp kRO: 5206 BaseExp / 4821 JobExp Salamander: Hercules: 7694 BaseExp / 7139 JobExp kRO: 3847 BaseExp / 3569 JobExp Does kRO do an update to change this values? Why are differences in this values?
-
Thanks for the reply Dastgir, but I wanted to know how is determined the AegisName for official items in general, not only for implement new gears, but also to know why are differences with rAthena in some cases. In example, this is the AegisName for Orc Baby Card (4375) : Hercules: Orc_Baby_Card_Card rAthena: Orc_Baby_Card This are the differences between both emulators: I think there should be a meaning in having "Orc_Baby_Card_Card" instead of "Orc_Baby_Card", but I don't know what could it be.