All Activity
- Today
-
@free online games Oh, cool! So you don't need to mess with the source code anymore for skill damage. That's way easier. Just edit the .txt file and reload. Good to know for my own server setup!
-
Your website is a great source of information! Prestige Southern Star The paper combines interesting concepts with useful information.
-
Hello. Change trade_unconditional: true to trade_unconditional: false. You can learn more about the functions of each permission in: /doc/permissions.txt
-
@Racaae the script is fine however this is the script do - The Rebirth count doesnt list in SQL - Stat Points Doesnt clear out after rebirth only the allocated stats In what line I can edit the reward for Grand Reset, all I can see was the reward for the Reset after they reach 150 reset NOTE: Increasing materials every reset was good Thank you in advance
-
How did you get to this, though? My rAthena's bodystyle atcmd only allows until 4316.
-
hello im wondering how to edit gm permission event its level 99 it cant drop the item or cant trade if the item is not tradable or droppable so i cant test the item on time without using normal player ty - Id: 99 Name: Admin Level: 99 Inherit: Support: true Law Enforcement: true LogCommands: true Permissions: can_trade: true can_party: true command_enable: true all_skill: false all_equipment: false skill_unconditional: false use_check: true use_changemaptype: true all_commands: true channel_admin: true can_trade_bounded: true item_unconditional: false bypass_stat_onclone: true bypass_max_stat: true macro_register: true trade_unconditional: true #all_permission: true
-
I can't find the sprite of golden peco in highrate server to modify it, i tried to look one by one and still can't find it can anyone help me? I'm new to editing GRF and im using GRF editor. Golden Peco ID: 20516
-
I can't find the sprite of golden peco in highrate server to modify it, i tried to look one by one and still can't find it can anyone help me? I'm new to editing GRF and im using GRF editor
-
You can't. Nemo checks it's enviroment and it won't launch if is detected as VM
-
I tested it myself, and it seems that the transaction completes without any issues.
-
Thanks! I found the problem. char.c int mmo_char_tobuf(uint8* buffer, struct mmo_charstatus* p) { unsigned short offset = 0; uint8* buf; if( buffer == NULL || p == NULL ) return 0; buf = WBUFP(buffer,0); WBUFL(buf,0) = p->char_id; WBUFL(buf,4) = min(p->base_exp, INT32_MAX); WBUFL(buf,8) = p->zeny; WBUFL(buf,12) = min(p->job_exp, INT32_MAX); WBUFL(buf,16) = p->job_level; WBUFL(buf,20) = 0; // probably opt1 WBUFL(buf,24) = 0; // probably opt2 WBUFL(buf,28) = p->option; WBUFL(buf,32) = p->karma; WBUFL(buf,36) = p->manner; WBUFW(buf,40) = min(p->status_point, INT16_MAX); WBUFL(buf,42) = p->hp; WBUFL(buf,46) = p->max_hp; offset+=4; buf = WBUFP(buffer,offset); WBUFW(buf,46) = min(p->sp, INT16_MAX); WBUFW(buf,48) = min(p->max_sp, INT16_MAX); WBUFW(buf,50) = DEFAULT_WALK_SPEED; // p->speed; WBUFW(buf,52) = p->class_; WBUFW(buf,54) = p->hair; //When the weapon is sent and your option is riding, the client crashes on login!? WBUFW(buf,56) = p->option&(0x20|0x80000|0x100000|0x200000|0x400000|0x800000|0x1000000|0x2000000|0x4000000|0x8000000) ? 0 : p->weapon; WBUFW(buf,58) = p->base_level; WBUFW(buf,60) = min(p->skill_point, INT16_MAX); WBUFW(buf,62) = p->head_bottom; WBUFW(buf,64) = p->shield; WBUFW(buf,66) = p->head_top; WBUFW(buf,68) = p->head_mid; WBUFW(buf,70) = p->hair_color; WBUFW(buf,72) = p->clothes_color; memcpy(WBUFP(buf,74), p->name, NAME_LENGTH); WBUFB(buf,98) = min(p->str, UINT8_MAX); WBUFB(buf,99) = min(p->agi, UINT8_MAX); WBUFB(buf,100) = min(p->vit, UINT8_MAX); WBUFB(buf,101) = min(p->int_, UINT8_MAX); WBUFB(buf,102) = min(p->dex, UINT8_MAX); WBUFB(buf,103) = min(p->luk, UINT8_MAX); WBUFW(buf,104) = p->slot; WBUFW(buf,106) = ( p->rename > 0 ) ? 0 : 1; // Commenting out that one line of code allows the character to show up on the character select screen. // offset += 2; #if (PACKETVER >= 20100720 && PACKETVER <= 20100727) || PACKETVER >= 20100803 mapindex_getmapname_ext(mapindex_id2name(p->last_point.map), (char*)WBUFP(buf,108)); offset += MAP_NAME_LENGTH_EXT; #endif #if PACKETVER >= 20100803 WBUFL(buf,124) = TOL(p->delete_date); offset += 4; #endif #if PACKETVER >= 20110111 WBUFL(buf,128) = p->robe; offset += 4; #endif #if PACKETVER != 20111116 //2011-11-16 wants 136, ask gravity. #if PACKETVER >= 20110928 // change slot feature (0 = disabled, otherwise enabled) if( !char_move_enabled ) WBUFL(buf,132) = 0; else if( char_moves_unlimited ) WBUFL(buf,132) = 1; else WBUFL(buf,132) = max( 0, (int)p->character_moves ); offset += 4; #endif #if PACKETVER >= 20111025 WBUFL(buf,136) = ( p->rename > 0 ) ? 1 : 0; // (0 = disabled, otherwise displays "Add-Ons" sidebar) offset += 4; #endif #endif return 106+offset; } Meanwhile, I ran into a new issue. When I try to select a character to enter the game, I immediately get the message: "This character has been frozen", and I can't get in. Later on, I found the function int parse_char(int fd) in char.c, which handles incoming packets from the client. When logging in, it receives packet 0x65 When creating a character, it gets 0x67 When selecting a character, it’s supposed to receive 0x66 But in my case, that packet (0x66) never gets triggered—parse_char doesn’t even fire at all. Also, I searched through the server code and couldn’t find the message "This character has been frozen" anywhere, which makes me think the client itself might be blocking the login on its own. But why? As far as I can tell, the character data looks totally normal. The character’s location is set to prontera,150,150, and data.grf definitely includes the required files: prontera.gat, prontera.gnd, and prontera.rsw. So now I’m wondering—what else could be going wrong here?
- Yesterday
-
I have a problem when someone buys something from the Vending When the purchase is complete, the game will show an Ragexe error window If i use command @at offline mode it's can buy item If anyone else has this problem, please test it.
-
Thanks man i'll try this one out appreciate it so much
-
Found the fix for my earlier question for bodystyle and alternate sprites and turns out they are indeed in the client just at a later used it: Rune Knight JPN Alternate starts at 4332 and you can go higher by 1 for the other jobs. thought I'd quote you so you can see the answer since you were interested.
-
Yes, I downloaded the rAthena project from here: https://github.com/rathena/rathena Then I checked out this specific commit: 7a057f7f4a853c3a5de6f93bfd9d7a5741549ada—because the commit message said it was for EP13, and my client executable is for EP13.2. I only made a few changes: Changed packet_db_ver from default to 25. Set packet_ver_flag to 0x00010000, which seemed the most appropriate for a late-2009 client like EP13.2. As for packet_ver_flag2, I couldn’t find a matching version, so I tried a few different values, but none of them made any real difference. Commented out map names that don’t exist in the database—otherwise, map-server_sql.exe would throw a ton of errors when starting. Other than that, I just configured the localhost and DB credentials. Since I can create characters just fine, I think those parts are working correctly. The client itself comes from an installation disc released in Taiwan around 2009 by the local publisher. Here’s roughly the process I followed: Installed XAMPP, created a MySQL database called ragnarok, and imported the following SQL files in order from rathena/sql-files: main.sql, item_db.sql, item_db2.sql, mob_db.sql, and mob_db2.sql. Created grf_files.txt under rathena/tools/mapcache/, pointing it to my client’s data.grf, then used mapcache.exe to generate the map cache. Opened data.grf using GRF Editor and edited clientinfo.xml to: <address>127.0.0.1</address> <version>25</version> I wasn’t sure what to set for <langtype>, so I just left it as the original value: 4. Launched Apache, MySQL, login-server_sql.exe, char-server_sql.exe, and map-server_sql.exe in order. Opened Ragnarok.exe from the main client folder. Once I get to the character select screen, if there are any character entries, the client crashes—because it tries to load an invalid .pal file: palette\몸\검사_남_24929.pal. I'm starting to wonder if the client itself also needs to be modified—maybe the data format it's receiving doesn't match what it expects, and that’s what’s causing the crash?
-
/* CREATE TABLE IF NOT EXISTS `rebirth_system` ( `account_id` int(11) unsigned NOT NULL default '0', `name` varchar(255) NOT NULL DEFAULT 'NULL', `num_rebirth` int(11) unsigned NOT NULL default '0', `last_ip` varchar(100) NOT NULL default '', PRIMARY KEY (`account_id`) ) ENGINE=MyISAM; */ prontera,141,179,5 script Rebirth System 531,{ function checkItem; // check if player have all item required function colorItemrequired; // color the text. Red : not enough item, green otherwise function deleteItem; // delete all items required function displayItemneed; // display all items need at start function getItemReward; // give the items reward //function weightreq; // check if your current weight is highter than weight high novice .@eac = eaclass(); if ( num_rebirth == .reset_max ) { mes "You can only rebirth x"+ .reset_max +"."; emotion e_gasp; close; } else if( BaseLevel < 255 || JobLevel < 120 || ( !( .@eac&EAJL_2 ) || !Upper ) && ( Class != Job_Ninja && Class != Job_Gunslinger && Class != Job_Soul_Linker && Class != Job_Star_Gladiator) ) { mes "You must be rebirth max level/max job level."; close; } mes "Items need :"; displayItemneed(); next; switch( select( "^777777~ Rebirth", "~ Informations", "~ Rebirth ranking", "~ Good bye^000000" ) ) { case 1: checkItem(); deleteItem(); break; case 2: mes "You can only rebirth ^ff0000x"+ .reset_max +"^000000. You already rebirth ^ff0000x"+ num_rebirth +"^000000."; mes "Each rebirth you get ^ff0000"+ .num_status +"^000000 status points and after ^ff0000"+ .change_reward +"^000000 rebirth, you get only some items."; close; case 4: mes "Bye."; close; case 3: mes "TOP 50 of rebirth."; mes "Name - Number of rebirth"; .@size = query_sql( "select `name`, `num_rebirth` from `rebirth_system` order by `num_rebirth` desc limit 50", .@name$, .@value ); if( .@size ) { for( .@i = 0; .@i < .@size; .@i++ ) mes "^777777"+ ( .@i +1 ) +"^000000 : "+ .@name$[.@i] +" : ^FF0000"+ .@value[.@i] +"^000000"; } else mes "^0000ff* the list is empty *^000000"; close; } num_rebirth += 1; if ( Upper ) { // just in case the user change the setting... lastJob = roclass( .@eac&EAJ_UPPERMASK ); jobchange Job_Novice_High; } else jobchange Job_Novice; resetlvl 1; if ( num_rebirth < .change_reward ) { if ( Class == Job_Novice ) StatusPoint = 48; StatusPoint = StatusPoint + .num_status * num_rebirth; } else { StatusPoint = StatusPoint + .num_status * .change_reward; getItemReward(); query_sql "insert into `rebirth_system` ( `account_id`, `name`, `num_rebirth`, `last_ip` ) select "+ getcharid(3) +", '"+ escape_sql( strcharinfo(0) ) +"', '"+ num_rebirth +"',`login`.`last_ip` from `login` where `login`.`account_id` = "+ getcharid(3) +" on duplicate key update `rebirth_system`.`num_rebirth` = `rebirth_system`.`num_rebirth` +1"; announce "[ Rebirth system ] : "+ strcharinfo(0) +" Successfully Rebirth!", 0; close; } function checkItem { for ( ; .@i < .size_item; .@i += 2 ) if ( countitem( .item_req[.@i] ) < .item_req[ .@i+1 ] + num_rebirth ) { mes "You don't have enought "+ getitemname( .item_req[.@i] ) +". ^ff0000["+ countitem( .item_req[.@i] ) +"/"+ ( .item_req[ .@i+1 ] + num_rebirth ) +"]^000000"; close; } if ( num_rebirth >= .change_reward ) if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) ) { mes "You don't have enought "+ getitemname( .add_item_req[0] ) +". ^ff0000["+ countitem( .add_item_req[0] ) +"/"+ ( .add_item_req[1] + num_rebirth - .change_reward ) +"]^000000"; close; } return; } function colorItemrequired { if ( countitem( .item_req[ getarg(0) ] ) < .item_req[ getarg(0)+1 ] + num_rebirth ) return "^ff0000"; return "^00ff00"; } function deleteItem { for ( ; .@i < .size_item; .@i += 2 ) delitem .item_req[.@i], ( .item_req[ .@i+1 ] + num_rebirth ); if ( num_rebirth >= .change_reward ) delitem .add_item_req[0], ( .add_item_req[1] + num_rebirth - .change_reward ); return; } function displayItemneed { for ( ; .@i < .size_item; .@i += 2 ) mes colorItemrequired( .@i ) +" - x"+ ( .item_req[ .@i+1 ] + num_rebirth ) +" "+ getitemname( .item_req[.@i] ); if ( num_rebirth >= .change_reward ) { if ( .add_item_req[1] + num_rebirth - .change_reward > countitem( .add_item_req[0] ) ) .@color$ = "^ff0000"; else .@color$ = "^00ff00"; mes .@color$ +"- x"+ ( .add_item_req[1] + ( num_rebirth - .change_reward ) ) +" "+ getitemname( .add_item_req[0] ); } return; } function getItemReward { for ( ; .@i < .size_reward; .@i += 2 ) getitem .reward[.@i], .reward[ .@i+1 ]; return; } function weightreq { if ( Weight > 50000 ) { mes "You have too much items on you. Your weight will be too high after rebirth."; close; } return; } OnInit: .reset_max = 200; // how much reset max .change_reward = 150; // after the set rebirth, change reward .num_status = 10; // + X number of status points // item required <item ID>, <number> setarray .item_req, 7179, 50, 7227, 50, 969, 300; .size_item = getarraysize( .item_req ); // additionnal items after rebirth >> .change_reward // <item ID>, <number> setarray .add_item_req, 7179, 100; // rewards <item ID>, <number> setarray .reward, 674, 50; .size_reward = getarraysize( .reward ); end; } Can anyone help me modify this script I thin its from @Capuche - After Rebirth the character will not go back to High Novice instead stay on same class but the stats will reset - Doing Grand Rebirth all Rebirth Count will be back to 0 - Max Grand Rebirth can be modify - After reaching the Max Rebirth there will be a Grand Rebirth that gives a certain Items that can be modify - Ranking for Highest Grand Rebirth Thank you in advance
-
rokimoki donated to a project: June Funding
-
https://drive.google.com/file/d/1z2DjlVU9ddsMoqo90JGjkmeGZdQYWMsj/view?usp=sharing
-
The files arent public in that link (google drive requires access). Would it be possible to make it public or someone to re-upload the client?
-
in the active quest tab its already english but in the new quest tab it still korean i wonder how to translate the new Quest tab
-
i try to put the roenglish system en OngoingQuests/lub then i patch it in customize OngoingQuestInfolist.lub and while searching i dont have the file this file questinfo_f.lub
-
How to have custom option name for item_randomopt_db
Racaae replied to ahakiko's question in Source Support
Hi. Yes, it it possible to have custom name and id without adding custom one to the source. No, you can't use const.yml. Add the custom random options in \db\import\item_randomopt_db.yml. (The Id and Option values are unique and need to be the same in all 3 files.) Example: Body: - Id: 255 Option: VAR_SUPERAHAKIKO Script: | bonus bMaxHP,getrandomoptinfo(ROA_VALUE); - Id: 256 Option: VAR_HYPERCUSTOMEFFECT Script: | bonus bMaxSP,getrandomoptinfo(ROA_VALUE); Then save the file and use @reloaditemdb or restart the server. You have custom random options! Now to add names, inside the client folder/grf: open \data\LuaFiles514\Lua Files\Datainfo\enumvar.lub and add your custom options following the example: VAR_HEAL_PLUS = { 253, 254 }, VAR_CRITICAL_RATE = { 254, 253 }, VAR_SUPERAHAKIKO = { 255, 255 }, VAR_HYPERCUSTOMEFFECT = { 256, 256 }, EnumVAR_LAST = { 257, 0 } Then open \data\LuaFiles514\Lua Files\Datainfo\addrandomoptionnametable.lub and follow the example to add the ingame names. [EnumVAR.VAR_HEAL_PLUS[1]] = "H.PLUS + %d", [EnumVAR.VAR_CRITICAL_RATE[1]] = "C.RATE + %d", [EnumVAR.VAR_SUPERAHAKIKO[1]] = "All stats + %d", [EnumVAR.VAR_HYPERCUSTOMEFFECT[1]] = "All traits + %d", [EnumVAR.EnumVAR_LAST[1]] = "END" -
Hello. RecommendedQuestInfoList_True_EN is part of the old translation process. Current ROenglishRE project uses the renamed System folder (SystemEN). Avoid mixing components from the old and new. If you want to continue using RecommendedQuestInfoList_True_EN: Check your client folder/grf for the following files: /System/RecommendedQuestInfoList_True_EN.lub /System/OngoingQuestInfoList_True_EN.lub Did you find them in the correct folder? Are they decompiled? Are they in the language you want? Also, check: /data/luafiles514/lua files/datainfo/questinfo_f.lub Try opening this file. It should not contain the following lines — if it does, delete the file. dofile("SystemEN/OngoingQuests_C.lub") dofile("SystemEN/RecommendedQuests_C.lub")
-
Hello. Put this in \conf\import\battle_conf.txt. Then save the file and use @reloadbattleconf or restart the server. skill_trap_type: 1