Leaderboard
Popular Content
Showing content with the highest reputation on 05/02/23 in Posts
-
< Stolao's Script Collection> Please Comment, Good or Bad i want to know your guys thoughts on what i should do next. Update History At Afk At Commands Auto Event Custom Functions Daily Login Reward Ex Job Master Floating Rates Fly-Wings Group Buffs Mvp Speed Run Non-Abuse Healer Poring Power Pvp Ladder Mining -Unsupported, Bug Fixes Only- Weapon Mastery -Unsupported, Bug Fixes Only- Coming soon to a server near you1 point
-
Heya, This tool parses replay files (rrf) and outputs a readable format. It is used to gather data from official replay files by extracting NPC dialogues, quest status, skill cast time, after-cast delay, etc. Say you want to replicate an official instance, you would get a replay of it and then extract the data using this tool. You'll be able to follow along the mes dialogues, the next statements, etc, when making the actual script. You can save a lot of time doing so. It is a tool I've been using heavily for many years now and it was made to fit my needs, so some stuff may not seem very useful to you. Because of this, I'm making the project public so you're free to add more features/information as you see fit. The source for the Replay format as far as I'm aware is from Dia (from Divine Pride), so huge thanks on that side. Download: https://github.com/Tokeiburu/Rrf-Parser/releases Git repo: https://github.com/Tokeiburu/Rrf-Parser Some replays may not work as this tool was made specifically for kRO replays (and I've been removing support for older versions throughout the years). How it works Change the replay path to your replay and click "Parse Replay" to start the process. Once that's done, you should get the output shown above. Choose the parsing options on the left if you don't want to include useless data. It may be useful for some though. The [output] options are files generated in your folder\output\file.txt. Main output NPC scripts. All the NPCs that have been seen (in order) will be put there with a pre-made script. It will also show "npc_avail" for some very specific NPCs. On kRO, some NPCs don't actually have a view ID but are actually characters with a style. This is what npc_avail is for (though it's not something rAthena supports at the moment). For example: 1@exnw,12,107,3 script ³ªÀÌÆ® ¿öÄ¡#nw3 npc_avail[4306,0,21,7,0,0,0,0,0,0,0],{ end; } Which corresponds to: p.job,p.sex,p.head,p.headpalette,p.weapon,p.shield,p.accessory,p.accessory2,p.accessory3,0,p.bodypalette Equipment. The next entry in the main output is the player equipment with the @item2 command to remake the gears quickly. This only includes equipped items. The other pieces of equipment in the inventory are not included there. Monster spawned. This part will include all the monsters that have spawned and it will not show them more than once. Packet output. That is the main part of the parsed script. It will give you the script lines, cutins, and much more. It will detect cloakoffnpcself, but don't trust the output blindly either. Sometimes kRO just hides a NPC for dumb reasons. Though usually it should be accurate. Parsing options Most of the fields are self-explanatory, so I'll only go over those that aren't. Show raw packets. Outputs the packets in hexadecimals rather than a readable format. Revert instance names. Looks for ###1@name in map names and reverts it back to the original map name. This also changes NPC names that got converted such as something#ins_0o1 to something#ins. Generic packet. This one contains pretty much everything not included in the other options. UnitWalk packet. This one is disabled by default, but you might consider turning it on if you're doing newer instances because kRO uses those a lot lately. When a NPC moves, it will be shown there. mob_data.conf A special file is generated alongside the replay in the output folder called "mob_data.conf" (though it's not a real libconf format). The mob_data.conf file contains data gathered from the mobs inside the replay such as mob level, speed, damage motion, attack motion, boss type, skills used and mob drops. As far as mob drops go however, be careful as the tool makes a lot of estimation there. For example: Mob Death: 148 Drops: 1000364,135 Dropped: 2 The above means the mob has been killed 148 times, and only one drop has been seen (1000364). The estimated drop rate is 1.35%. A drop is defined as an item dropped alongside the unit_dead packet. So it may be wrong, or if the mob is looter type, you'll get a bunch of invalid results. Though usually it's a fair estimation. Tool > Translation helper So if you put the following as the input: select("¾îµð·Î °¡¸é µÇÁÒ?:"); // TICK: 19263 ms, INTERVAL: 0, FORMAT: 0:19 mes "[¸¶¶÷]"; // TICK: 19746 ms, INTERVAL: 433, FORMAT: 0:19 mes "¾ÆÀÌ»þ°¡ ¾îµð¼ »ì¾ÒÁö? ¾Æ! ÀÌ <NAVI>[ÀÂÊ]<INFO>wolfvill,99,178,0,101,0</INFO></NAVI>¿¡ °¡¸é ¾ÆÀÌ»þÀÇ ÁýÀÌ ÀÖ¾î¿ä."; // TICK: 19746 ms, INTERVAL: 0, FORMAT: 0:19 next; // TICK: 19746 ms, INTERVAL: 0, FORMAT: 0:19 mes "[½ºÄ«´Ï¾Æ]"; // TICK: 20129 ms, INTERVAL: 0, FORMAT: 0:20 mes "ÇÏÁö¸¸ ¸»Çصµ ¼Ò¿ë ¾øÀ» °É¿ä? ¼³µæÇÑ´Ù¸é, ´ç½Å¿¡ ´ëÇÑ ³» »ý°¢µµ ¹Ù²ÙÁÒ."; // TICK: 20129 ms, INTERVAL: 0, FORMAT: 0:20 npctalk "½ºÄ«´Ï¾Æ, ¸ðÇè°¡´ÔÀº ³× »ý°¢À¸·Î °¡Ä¡°¡ Æò°¡µÇ´Â ºÐÀÌ ¾Æ´Ï¼Å.", "¸¶¶÷#wms01"; // TICK: 20129 ms, INTERVAL: 0, FORMAT: 0:20 npctalk "´©°¡ ¹¹·¡? ÀßÇØÁÙ °Å¶ó°í.", "½ºÄ«´Ï¾Æ#wms01"; // TICK: 20129 ms, INTERVAL: 0, FORMAT: 0:20 next; // TICK: 20129 ms, INTERVAL: 0, FORMAT: 0:20 mes "[¸¶¶÷]"; // TICK: 20479 ms, INTERVAL: 33, FORMAT: 0:20 mes "¸ðÇè°¡´Ô, ±×·³ ´Ù³à¿À¼¼¿ä! ³ªµµ À̸¸ °¥°Ô!"; // TICK: 20479 ms, INTERVAL: 0, FORMAT: 0:20 setquest 17510; // State = 1, Time = 0 // TICK: 20479 ms, INTERVAL: 0, FORMAT: 0:20 close; // TICK: 20480 ms, INTERVAL: 1, FORMAT: 0:20 You would get the following as the output: 어디로 가면 되죠? [마람] 아이샤가 어디서 살았지? 아! 이 [윗쪽]에 가면 아이샤의 집이 있어요. <NAVI>[윗쪽]<INFO>wolfvill,99,178,0,101,0</INFO></NAVI> [윗쪽] next; [스카니아] 하지만 말해도 소용 없을 걸요? 설득한다면, 당신에 대한 내 생각도 바꾸죠. 스카니아, 모험가님은 네 생각으로 가치가 평가되는 분이 아니셔. 누가 뭐래? 잘해줄 거라고. next; [마람] 모험가님, 그럼 다녀오세요! 나도 이만 갈게! setquest 17510; close; It extracts the content and puts them in Korean for easier google/papago translate copy paste. The "select" content will be extracted, same for <NAVI> and a few other annoying cases where you end up spending more time removing the tags than actually translating. Tool > Replay simulation This one is meant to "transform" a replay into a script so that you can view it on your own server. The input account ID is your account id, on the test server you'll be on. This is required for the script to work correctly. You will get an output similar to - script REPLAY_SIMULATION -1,{ end; OnTimer1: attachrid(2000012); sendpacket("ff09620006aa010000000000002c0100000000040000008928000000000000000000000000000000000000000000000000000000000000000000000000000024472500000000000000ffffffffffffffff000000b9ccb8aebecf23657031385f7776"); sendpacket("ff09600006a9010000000000002c0100000000040000008828000000000000000000000000000000000000000000000000000000000000000000000000000023c72500000000000000ffffffffffffffff000000b8b6b6f723657031385f7776"); sendpacket("ff09620006ab010000000000002c0100000000000000008b28000000000000000000000000000000000000000000000000000000000000000000000000000023c71500000000000000ffffffffffffffff000000c0ccb9c7b8b123657031385f7776"); end; OnInit: initnpctimer; end; } Then load the script and your character will redo what the replay file was doing. You'll probably have to put your character where the replay starts as otherwise some weird stuff is gonna happen. You'll also need the following script command as well: BUILDIN_DEF(sendpacket,"s"), BUILDIN_FUNC(sendpacket) { const char *input = script_getstr(st,2); struct block_list *bl = map_id2bl(st->rid); unsigned char buf[10000]; int len = strlen(input); int i; for (i = 0; i < len; i += 2) { sscanf(&input[i], "%2hhx", &buf[i/2]); } if (!bl) { npc_timerevent_stop(map_id2nd(st->oid)); st->state = END; return SCRIPT_CMD_FAILURE; } clif_send(buf, len / 2, map_id2bl(st->rid), SELF); return SCRIPT_CMD_SUCCESS; } Notes This is a tool I do not plan on spending a whole lot of time on. It would be a nightmare to maintain in the first place. I will add requested features if any for a short time, but it would be much easier to add such features yourself if you are planning to use this as a base for your own needs. If you want to handle a new packet, simply go in RrfParser\Packet\PacketDecoder.cs and add it as you want. Only those I needed were handled. The display timers are both useful and annoying. Once I'm done with a script, I usually run a quick regex to wipe out all comments and that solves that problem. //.*1 point
-
i guys, now I'm in this board too and I'm happy to be able to work with you guys once again . NOTE: For those who don't know yet, but I unofficially continue Zackdreaver's Renewal Translation Project and I'm pretty much stopping with NPC scripting so I can focus on that as it's a better project to help the community. You can find more about it at my comment here - or in my signature is a link to the GitHub repo. Some rules for my releases: 1.) I will not support scripts you have modified by yourself, like changing mayor part of the code. 2.) Do NOT steal, pretend that you are the creator of these scripts - give credits accordingly . 3.) Like everyone else, I don't like it if someone remove the credits in the NPC Header. Anyway, if you follow these rules we won't have problems . For those who didn't took a look at my signature yet, my whole scripts are available via GitHub now. Topic Changelog: > 11-19/2011: Created my script collection and re-released my scripts from eAthena. > 11-24/2011: Added Restaurant, Login Settings, Global NPC Handler, Variable & Array Reader > 12-17/2011: Updated Restaurant and Virtual Password, Added Character Manager for Test Servers > 12-19/2011: Added PvP-GvG-MvP Arena > 12-20/2011: Added new feature to Character Manager > 01-08/2012: Added Card Compounder > 01-12/2012: Added Dynamic Shop > 01-18/2012: Added Vote NPC v1.0 > 10-13/2012: Added Fame System v1.1 > 10-16/2013: Added Training System v1.0 and Mob Invasion Event v1.0 > 09-22/2015: Added Quest System v1.0 > 06-11/2015: Updated Dynamic Shop v1.0 to v1.1 > 10-01/2015: Updated Quest System v1.0 and Fame System to v1.2 > 10-03/2015: Added Dungeon Party System v1.0 > 10-17/2015: Optimized this post a bit, how do you guys like it? > 09-07/2017: Cleaned up the Collection, see below for details. > 11-10/2017: Major update of older scripts > 12-31/2017: Updated Quest System v1.2 > 01-15/2018: Updated Training System v1.0 to v2.0 Added Mass Seller and Daily Reward NPC Added Dungeon Quest Service v1.0 + SQL file > 10-25/2018: Split Topic into Sections (Released, Requests, Additional and Unofficial) Added Instanced Loot System Added every requested Script so far Added Pagination function and GetMobData function Added Unofficial Excellion Gear NPC's and Nightmare Bio Lab NPC's Added Armor Enchanter Fixed Card Compounder > 05-28/2019: Added Battle Royale and Hunting Grounds Script Removed Broadcaster duo unnecessarity > Channel System Removed Unofficial Nightmare Bio Lab official implementation Removed Unofficial modified Morse Cave Instances by Alayne Updated Mob Invasion to v1.1 Modified Costume Enchanter v1.2 Modified Gold Room Battle v1.1 Removed every Update Log from the Scripts, leaving only the Features present > 06-10/2019: Added Mystic Enchanter + Mystic Enchanter without Random Option Support > 07-12/2019: Added the either forgotten or accidently deleted Last Man Standing v1.0 Added Dynamic Battleground Arena v1.0 > 05-02/2020: Removed useless scripts > 05-07/2020: Updated Mystic Enchanter to v1.1 > 11-06/2020: Removed Excellion Gear NPC (unofficial scripts are only visible on the repository) Updated Quest System and Hunting Grounds Instance, Old Glast Heim Hard > 04-06-2021: Removed Dynamic Battleground Arena Git Changelog Released Scripts Entertainment Arena Master v1.6 Last Man Standing v1.0 Mob Invasion Event v1.1 (I know there are many of these already around, but I wanted to try one for myself) Hunting Grounds Instance v1.0 Battle Royale v1.0 Utility InGame CP v1.3 Restaurant v1.0 Card Compounder v1.1 Dynamic Shop v1.1 Mass Seller v1.1 Daily Reward v1.0 Mystic Enchanter v1.1 Warning: This Enchanter disturbs Game Balance, as it allows to enchant everything you set it to! Though I added limitations and many settings to restrict that as much as possible. System Security System v2.1 Virtual Password v1.3 Fame System v1.3 Training System v2.0 Quest System v1.4 Dungeon Quest System v1.0 Instanced Loot System v1.0 Extra Pagination Function v1.0 GetMobData Function v1.0 Requests Vote NPC v1.2 Request by PapaZola Monster Slaughter Event v1.0 Reqzest by PapaZola Costume Enchanter v1.2 Request by Vegas Freebie NPC ... Forgot who requested it Gold Room PvP v1.1 Request by Paulinds MvP Ranker v1.2 Request by Radian Best regards, Chris1 point