All Activity
- Past hour
- Today
-
[Showcase] Custom MVP Mechanics Script - Strategic Combat Enhancements
Vy Low replied to takechi's topic in Script Showcase
great features, kinda reminds of diablo haha, will this be release to the public? -
Would it be possible to change the drop rate in each case as well?
-
Hey everyone, I wanted to showcase a custom MVP mechanic system I've been developing for Ragnarok Online using rAthena. The idea is to bring more dynamic, thematic, and visually appealing mechanics to MVP encounters โ moving beyond the usual tank-and-spank format. DISCORD Takechiii#8303 ๐ What does this system do? Allows MVPs to execute custom attack patterns on specific map coordinates. Works on an 11x11 grid centered around the MVP (6x6 coordinate) to trigger precise damage zones. Each MVPโs behavior can be thematically tailored (e.g., feline patterns for Moonlight Flower, curses for Osiris, etc.). Easily reusable and expandable for other bosses or PvE events. This system is inspired by raid-style battles. Itโs ideal for: Custom instances MVP events with multiple phases Progressive PvE challenges Iโm still refining the system and adding new mechanics and visual effects. Iโm open to feedback, suggestions, or even collaborations!Thanks for watching and reading! Video Preview:
- 1 reply
-
- 1
-
-
Ich muss sagen ich kenne mich mit Renewal nicht aus - ich hab aufgehรถrt zu spielen (auf den offiziellen Servern) als die 4th Classes gekommen sind. Ich weiร also gar nicht was sich da alles genau geรคndert hat - daher auch mein Problem, dass ich nicht wirklich einen eigenen Server machen kann, weil mir viele Grundlegende Ro Kenntnisse fehlen. Ich kรถnnte maximal unterstรผtzen. Ich weiร nicht ob es zB sinn macht einen Renewal Server zu erstellen aber die 4th Classes zu disablen.
-
rAthena Text Editor (Offline, Browser-Based)
Akbare-2nd replied to Jinun's topic in Project Releases
-
how to add the icon ? in the picture? is there a specific rathena update
-
Hello, Functor, I hope you are well. I am also looking for you and adding your discord. I hope you are safe.
-
Hello, Functor, I hope you are well. I am also looking for you and adding your discord. I hope you are safe.
-
4th job skills have envenom animation for unknown reason
Izza Koshkina posted a question in General Support
Hopefully this is fine to post here, I don't think it is a client issue where most animation posts generally end up I have some skills that properly display skill animations, but they also do the envenom skill animation+sound every time they hit a target (They are not supposed to have this animation/sound). This is just happening on some 4th job skills. Anybody know why this happens, and how to fix it? I can't seem to find much about this. I have been experimenting in skill.cpp (as I assume that is where the problem likely originates), using various lines like clif_skill_damage, clif_skill_nodamage. Even when I removed any lines that would show the skills animation, the "envenom" part still remains. -
by default you should be able to login with multiple accounts, maybe you made some modification on the conf folder? perhaps // Maximum users able to connect to the server. // Set to 0 to disable users to log-in. (-1 means unlimited) max_connect_user: -1
-
yes i using the 2025-05-08 client
-
Link: https://github.com/TBlazeWarriorT/TBlazeWarriorT-Utility-Scripts/tree/main/NP%2B%2B rAthena Autocomplete Screenshots:
- 1 reply
-
- 4
-
-
-
-
Cool stuff, I make an almost identical thing a few weeks ago to translate mine
-
con el permiso de no ofender al autor del script, quisiera que me ayudaran a colocarle un comando como el del archivo adjunto que seria fusiรณn. - actualmente se le habla al npc pero quisiera que se le agregara la opciรณn @claim, para tener dialogo desde el comando con el script de codigo de canje. - el archivo andjunto es otro script que ya tiene el @claim por lo cuรกl quienes me ayuden lo podrian sacar de allรญ, en realidad yo lo intente pero no lo logre. - si es posible tambiรฉn modificar la opciรณn de que el administrador pueda crear la clave de cรณdigo en el chat de gm. //--- Coupon NPC 1.1.2 -------------------------------------------// //----------------------------------------------------------------// // ttt 000000000 // ttt 000 000 // ttttttttt rrrrrrrrr 000 000 nnnnnnnnn // ttt rrr 000 000 nnn nnn // ttt rrr 000 000 nnn nnn // ttt rrr 000 000 nnn nnn // ttttt rrr 000000000 nnn nnn //----------------------------------------------------------------// //--- Changelogs: ------------------------------------------------// // 1.0.0 Release // 1.1.0 Added code type feature (normal|md5-hash) // 1.1.0 Added prevention for typing 0 into Item ID or Amount // 1.1.0 Added a feature for gms to see available coupons // 1.1.0 Minor bug fixes // 1.1.1 Fixed a bug that caused duplicating items // 1.1.2 Added announce if player got a item //----------------------------------------------------------------// //--- Main Script ------------------------------------------------// prontera,146,173,5 script Coupon Jack 807,{ //Set code type (0 = normal | 1 = MD5-Hash) set .code_type, 0; //Set code length set .code_length, 16; //Set Min. GM Level to add new coupons set .code_gmlvl, 99; setarray .coupon_code$[0],"a","b","c","d","e","f","g","h","i","j","k","l", "m","n","o","p","q","r","s","t","u","v","w","x", "y","z","0","1","2","3","4","5","6","7","8","9"; if(getgmlevel() >= .code_gmlvl) { mes "[^FF7700Coupon Jack^000000]"; mes "Welcome " + strcharinfo(0) + "."; next; switch(select("Add Coupon:Show Coupons:Exit")) { case 1: mes "[^FF7700Coupon Jack^000000]"; mes "Enter Item ID:"; input @coupon_item; next; if(@coupon_item <= 0) goto L_error; mes "[^FF7700Coupon Jack^000000]"; mes "Enter Item Amount:"; input @coupon_amount; next; if(@coupon_amount <= 0) goto L_error; for(set @i, 0; @i < .code_length; set @i, @i+1) { set @random_char, rand(0,(getarraysize(.coupon_code$)-1)); set @new_coupon$, @new_coupon$ + .coupon_code$[@random_char]; } if(.code_type==1) { set @new_coupon$, md5(@new_coupon$); } mes "[^FF7700Coupon Jack^000000]"; mes "Coupon added."; query_sql "INSERT INTO `coupons` (`code`, `item_id`, `item_amount`) VALUES ('"+@new_coupon$+"', "+@coupon_item+", "+@coupon_amount+")"; set @new_coupon$, ""; close; case 2: mes "[^FF7700Coupon Jack^000000]"; mes "--------------------------------"; query_sql "SELECT `code`, `item_id`, `item_amount` FROM `coupons`", .@available_code$, .@available_item, .@available_amount; for(set @i, 0; @i < getarraysize(.@available_code$); set @i, @i+1) { mes "Item: " + getitemname(.@available_item[@i]); mes "Amount: " + .@available_amount[@i]; mes "Code: " + .@available_code$[@i]; mes "--------------------------------"; } close; case 3: mes "[^FF7700Coupon Jack^000000]"; mes "Have a nice day."; close; } } mes "[^FF7700Coupon Jack^000000]"; mes "Welcome to the Coupon Codes System. How can I help you?"; next; switch(Select("Submit Coupon:Exit")) { case 1: mes "[^FF7700Coupon Jack^000000]"; mes "Please enter your Coupon Code:"; input @my_code$; next; query_sql "SELECT `code`, `item_id`, `item_amount` FROM `coupons`", .@available_code$, .@available_item, .@available_amount; for (set @i, 0; @i < getarraysize(.@available_code$); set @i, @i+1) { if(@my_code$==.@available_code$[@i]) { mes "[^FF7700Coupon Jack^000000]"; mes "You get ^0000FF" + getitemname(.@available_item[@i]) + " - " + .@available_amount[@i] + " ea.^000000"; query_sql "DELETE FROM `coupons` WHERE `code`='"+@my_code$+"'"; getitem .@available_item[@i],.@available_amount[@i]; //announce "Coupon Jack: " + strcharinfo(0) + " got " + .@available_amount[@i] + getitemname(.@available_item[@i]) + "(s).",0; close; } } mes "[^FF7700Coupon Jack^000000]"; mes "This Coupon Code doesn't exist."; close; case 2: mes "[^FF7700Coupon Jack^000000]"; mes "Have a nice day."; close; } L_error: mes "[^FF7700Coupon Jack^000000]"; mes "Invalid Number"; close; OnInit: query_sql "CREATE TABLE IF NOT EXISTS `coupons` (`code` TINYTEXT NOT NULL, `item_id` INT NOT NULL, `item_amount` INT NOT NULL, INDEX `code` (`code`(32)) ) ENGINE=MyISAM"; } npc de tron.txt npc_LIL TROLL.txt
-
Hello rAthena Community, I'm currently developing a Unity client for an rAthena-based server (PACKETVER 20230302) and I've encountered an unknown packet after character selection. Here's the sequence of packets I'm successfully parsing from the character server: 1. Login and authentication packets (e.g., 0x0065 response) 2. Character slot info (e.g., 0x082D) 3. Character list data (0x006B) - Parsed successfully, character details are correct. 4. Character list page info (0x09A0) - Parsed successfully. Immediately after processing the 0x09A0 packet, my client receives a packet with ID `0x0D00`. My client logs show the following for this `0x0D00` packet: - Packet ID: `0x0D00` - Declared total length (from bytes 2-3 of the packet): `29` (0x001D) - This means the data payload (excluding the 2-byte ID and 2-byte length field) is `25` bytes. The HEX dump of this 25-byte data payload is: `0F 00 00 0F 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00` I've searched through my rAthena server source files (including `char_clif.c`, `mmo.h`, `packets.hpp`, etc.) but I cannot find any explicit definition or usage of a packet with the ID `0x0D00` that would be sent from the character server to the client after character selection with this specific length and payload. I suspect this `0x0D00` packet contains crucial information for connecting to the map server (e.g., selected Character ID for map server, Map Server IP, Port, and session/auth keys). However, without knowing its structure, I cannot parse it correctly. My current attempts to parse it based on common map server info structures with a 25-byte payload yield unusual values (e.g., Map IP 15.0.0.0, Port 0). Could anyone please help me identify the structure of this `0x0D00` packet (with a 25-byte payload) that is sent after character selection? Specifically, what do these 25 bytes represent? Is this a standard rAthena packet for a specific `PACKETVER` (my server is `20230302`), or could it be a custom packet? Any insights or pointers to relevant source code sections would be greatly appreciated. Thank you!
-
์๋ ํ์ธ์ rAthena ์ปค๋ฎค๋ํฐ ์ฌ๋ฌ๋ถ, ํ์ฌ rAthena ๊ธฐ๋ฐ ์๋ฒ(PACKETVER 20230302)์ฉ Unity ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ๋ฐ ์ค์ธ๋ฐ, ์บ๋ฆญํฐ ์ ํ ํ ์ ์ ์๋ ํจํท์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ค์์ ์บ๋ฆญํฐ ์๋ฒ์์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ ํจํท ์ํ์ค์ ๋๋ค. 1. ๋ก๊ทธ์ธ ๋ฐ ์ธ์ฆ ํจํท(์: 0x0065 ์๋ต) 2. ๋ฌธ์ ์ฌ๋กฏ ์ ๋ณด(์: 0x082D) 3. ๋ฌธ์ ๋ชฉ๋ก ๋ฐ์ดํฐ(0x006B) - ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์๋์์ผ๋ฉฐ, ๋ฌธ์ ์ธ๋ถ ์ ๋ณด๊ฐ ์ ํํฉ๋๋ค. 4. ๋ฌธ์ ๋ชฉ๋ก ํ์ด์ง ์ ๋ณด(0x09A0) - ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์๋์์ต๋๋ค. 0x09A0 ํจํท์ ์ฒ๋ฆฌํ ์งํ, ํด๋ผ์ด์ธํธ๋ ID๊ฐ `0x0D00`์ธ ํจํท์ ์์ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ ๋ก๊ทธ์๋ ์ด `0x0D00` ํจํท์ ๋ํ ๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๊ฐ ๊ธฐ๋ก๋์ด ์์ต๋๋ค. - ํจํท ID: `0x0D00` - ์ ์ธ๋ ์ด ๊ธธ์ด(ํจํท์ 2~3๋ฐ์ดํธ): `29` (0x001D) - ์ด๋ ๋ฐ์ดํฐ ํ์ด๋ก๋(2๋ฐ์ดํธ ID์ 2๋ฐ์ดํธ ๊ธธ์ด ํ๋ ์ ์ธ)๊ฐ `25` ๋ฐ์ดํธ์์ ์๋ฏธํฉ๋๋ค. ์ด 25๋ฐ์ดํธ ๋ฐ์ดํฐ ํ์ด๋ก๋์ HEX ๋คํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. `0F 00 00 0F 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00` rAthena ์๋ฒ ์์ค ํ์ผ(`char_clif.c`, `mmo.h`, `packets.hpp` ๋ฑ)์ ๊ฒ์ํ์ง๋ง, ์ด ํน์ ๊ธธ์ด์ ํ์ด๋ก๋๋ก ๋ฌธ์ ์ ํ ํ ๋ฌธ์ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๋ ID๊ฐ `0x0D00`์ธ ํจํท์ ๋ํ ๋ช ์์ ์ ์๋ ์ฌ์ฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด `0x0D00` ํจํท์๋ ๋งต ์๋ฒ ์ฐ๊ฒฐ์ ์ค์ํ ์ ๋ณด(์: ๋งต ์๋ฒ์ ์ ํ๋ ์บ๋ฆญํฐ ID, ๋งต ์๋ฒ IP, ํฌํธ, ์ธ์ /์ธ์ฆ ํค)๊ฐ ํฌํจ๋์ด ์์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ํ์ง๋ง ํจํท์ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ฅด๋ ์ ๋๋ก ๋ถ์ํ ์ ์์ต๋๋ค. 25๋ฐ์ดํธ ํ์ด๋ก๋๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ฐ์ ์ธ ๋งต ์๋ฒ ์ ๋ณด ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์ํ๋ ค๊ณ ์๋ํ์ง๋ง, ์์์น ๋ชปํ ๊ฐ(์: ๋งต IP 15.0.0.0, ํฌํธ 0)์ด ์์ฑ๋์์ต๋๋ค. ๋ฌธ์ ์ ํ ํ ์ ์ก๋๋ 25๋ฐ์ดํธ ํ์ด๋ก๋๋ฅผ ๊ฐ์ง `0x0D00` ํจํท์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ๋ฐ ๋์์ ์ฃผ์ค ์ ์์๊น์? ๊ตฌ์ฒด์ ์ผ๋ก, ์ด 25๋ฐ์ดํธ๋ ๋ฌด์์ ๋ํ๋ด๋ ๊ฑธ๊น์? ์ด ํจํท์ ํน์ `PACKETVER`(์ ์๋ฒ๋ `20230302`์ ๋๋ค)์ ๋ํ ํ์ค rAthena ํจํท์ธ๊ฐ์, ์๋๋ฉด ์ฌ์ฉ์ ์ง์ ํจํท์ผ๊น์? ๊ด๋ จ ์์ค ์ฝ๋ ์น์ ์ ๋ํ ํต์ฐฐ๋ ฅ์ด๋ ์ง์นจ์ ์ ๊ณตํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
-
์๋ ํ์ธ์ rAthena ์ปค๋ฎค๋ํฐ ์ฌ๋ฌ๋ถ, ํ์ฌ rAthena ๊ธฐ๋ฐ ์๋ฒ(PACKETVER 20230302)์ฉ Unity ํด๋ผ์ด์ธํธ๋ฅผ ๊ฐ๋ฐ ์ค์ธ๋ฐ, ์บ๋ฆญํฐ ์ ํ ํ ์ ์ ์๋ ํจํท์ ๋ฐ๊ฒฌํ์ต๋๋ค. ๋ค์์ ์บ๋ฆญํฐ ์๋ฒ์์ ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ ํจํท ์ํ์ค์ ๋๋ค. 1. ๋ก๊ทธ์ธ ๋ฐ ์ธ์ฆ ํจํท(์: 0x0065 ์๋ต) 2. ๋ฌธ์ ์ฌ๋กฏ ์ ๋ณด(์: 0x082D) 3. ๋ฌธ์ ๋ชฉ๋ก ๋ฐ์ดํฐ(0x006B) - ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์๋์์ผ๋ฉฐ, ๋ฌธ์ ์ธ๋ถ ์ ๋ณด๊ฐ ์ ํํฉ๋๋ค. 4. ๋ฌธ์ ๋ชฉ๋ก ํ์ด์ง ์ ๋ณด(0x09A0) - ์ฑ๊ณต์ ์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์๋์์ต๋๋ค. 0x09A0 ํจํท์ ์ฒ๋ฆฌํ ์งํ, ํด๋ผ์ด์ธํธ๋ ID๊ฐ `0x0D00`์ธ ํจํท์ ์์ ํฉ๋๋ค. ํด๋ผ์ด์ธํธ ๋ก๊ทธ์๋ ์ด `0x0D00` ํจํท์ ๋ํ ๋ค์๊ณผ ๊ฐ์ ์ ๋ณด๊ฐ ๊ธฐ๋ก๋์ด ์์ต๋๋ค. - ํจํท ID: `0x0D00` - ์ ์ธ๋ ์ด ๊ธธ์ด(ํจํท์ 2~3๋ฐ์ดํธ): `29` (0x001D) - ์ด๋ ๋ฐ์ดํฐ ํ์ด๋ก๋(2๋ฐ์ดํธ ID์ 2๋ฐ์ดํธ ๊ธธ์ด ํ๋ ์ ์ธ)๊ฐ `25` ๋ฐ์ดํธ์์ ์๋ฏธํฉ๋๋ค. ์ด 25๋ฐ์ดํธ ๋ฐ์ดํฐ ํ์ด๋ก๋์ HEX ๋คํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. `0F 00 00 0F 0F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00` rAthena ์๋ฒ ์์ค ํ์ผ(`char_clif.c`, `mmo.h`, `packets.hpp` ๋ฑ)์ ๊ฒ์ํ์ง๋ง, ์ด ํน์ ๊ธธ์ด์ ํ์ด๋ก๋๋ก ๋ฌธ์ ์ ํ ํ ๋ฌธ์ ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ์ ์ก๋๋ ID๊ฐ `0x0D00`์ธ ํจํท์ ๋ํ ๋ช ์์ ์ ์๋ ์ฌ์ฉ๋ฒ์ ์ฐพ์ ์ ์์ต๋๋ค. ์ด `0x0D00` ํจํท์๋ ๋งต ์๋ฒ ์ฐ๊ฒฐ์ ์ค์ํ ์ ๋ณด(์: ๋งต ์๋ฒ์ ์ ํ๋ ์บ๋ฆญํฐ ID, ๋งต ์๋ฒ IP, ํฌํธ, ์ธ์ /์ธ์ฆ ํค)๊ฐ ํฌํจ๋์ด ์์ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค. ํ์ง๋ง ํจํท์ ๊ตฌ์กฐ๋ฅผ ๋ชจ๋ฅด๋ ์ ๋๋ก ๋ถ์ํ ์ ์์ต๋๋ค. 25๋ฐ์ดํธ ํ์ด๋ก๋๋ฅผ ์ฌ์ฉํ๋ ์ผ๋ฐ์ ์ธ ๋งต ์๋ฒ ์ ๋ณด ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ถ์ํ๋ ค๊ณ ์๋ํ์ง๋ง, ์์์น ๋ชปํ ๊ฐ(์: ๋งต IP 15.0.0.0, ํฌํธ 0)์ด ์์ฑ๋์์ต๋๋ค. ๋ฌธ์ ์ ํ ํ ์ ์ก๋๋ 25๋ฐ์ดํธ ํ์ด๋ก๋๋ฅผ ๊ฐ์ง `0x0D00` ํจํท์ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๋ ๋ฐ ๋์์ ์ฃผ์ค ์ ์์๊น์? ๊ตฌ์ฒด์ ์ผ๋ก, ์ด 25๋ฐ์ดํธ๋ ๋ฌด์์ ๋ํ๋ด๋ ๊ฑธ๊น์? ์ด ํจํท์ ํน์ `PACKETVER`(์ ์๋ฒ๋ `20230302`์ ๋๋ค)์ ๋ํ ํ์ค rAthena ํจํท์ธ๊ฐ์, ์๋๋ฉด ์ฌ์ฉ์ ์ง์ ํจํท์ผ๊น์? ๊ด๋ จ ์์ค ์ฝ๋ ์น์ ์ ๋ํ ํต์ฐฐ๋ ฅ์ด๋ ์ง์นจ์ ์ ๊ณตํด ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค!
- Yesterday
-
Hi there. I've set up a test server and am doing some testing on it. I'd like to be able to have 2 accounts log in at the same time. Is there a setting I'm missing somewhere to allow this? At the mo, the second account is disconnected right after logging in. Thanks in advance for any input
-
@imdango Thank you for posting the solution! Quickest google search and bug fix of my life thanks to you!
-
Unfortunately no answers yet
-
Thanks @Brynner, it's solved my issue.
-
Another simple update, just added a panel to show currency total for the account and also a Buy Currency button (if configured), can be linked to any page to buy the currency. Either donate module or anything custom.