All Activity
- Today
-
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
-
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.
-
UPDATES!! NOW, integrated with the Gemini Chatbot API for the Editor! Just ask it, and it will provide code for you directly in rAthena Text Editor. Simply provide your Gemini API key. We're using the latest and fastest Gemini model: "gemini-2.5-flash-preview-05-20".
-
try to replace the clif_changelook(&sd->bl,LOOK_BODY2,sd->status.body); with clif_changelook(sd,LOOK_BODY2,sd->status.body);
-
Utility: All In One - Random Options Script
Metrius replied to sader1992's topic in Utility Script Releases
also does anyone know how many itens we can put in to each id before we got a error or doest work? -
Utility: All In One - Random Options Script
Metrius replied to sader1992's topic in Utility Script Releases
anyone is able to have more than 4 groups ids? when i put a 5 i get the error "[Error]: script:run_script_main: infinity loop ! " -
I tested it with the latest rAthena version, and it works correctly. Are you perhaps using the 2025-05-08 client version?