Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/08/21 in all areas

  1. Hi all, I put together a command-line tool to help save time when porting lots of existing items to an rAthena server: https://github.com/Latiosu/dp2rathena I noticed that the rAthena community often refers to divine-pride.net (DP) as a source of truth, so I figured it would be useful to connect with their API. Summary The tool uses data from divine-pride.net and attempts to map the API response to a desired rAthena database format. Installation Requires Python 3.6+ and pip installed: pip install dp2rathena Usage Generate a divine-pride.net API key if you don't have one yet (registration required), then you can start converting data: Example 1: Store API key and convert items with id 501 and 1101 dp2rathena config dp2rathena item 501 1101 Produces this output: Example 2: Convert mobskills for mobs with id 1002, 1049 and 1299 and save to a file called "attacks.txt" (re-uses stored API key if present) dp2rathena mobskill 1002 1049 1299 > C:\Users\Latios\Desktop\attacks.txt Produces a file in the Desktop folder called "attacks.txt": Example 3: Convert mob with id 20357 to mob_db.yml format dp2rathena mob 20357 Produces following command-line output: Further instructions can be found at the repository: https://github.com/Latiosu/dp2rathena Limitations I've moved this section to the GitHub repository above to keep it up-to-date. --- Let me know if you'd like to be able to convert other data from DP, some other suggestion or any questions. Edit: Add terminal animation for a visual explanation
    1 point
  2. Soon: Post revamp!! ["Not Browedit 3" ?] The old guide can be found here:
    1 point
  3. Hello! My name (not real life) is James. I am a 16 year old programmer from Denver. I code in multiple languages, such as C++, C, NodeJS, Typescript, and Rust! I also do Web Development :3. I've been playing Ragnarok Online since i was a kid, taught by my parents and to this day actually. I hope i can contribute to the rAthena community with my skills in programming. Thank you. Have a good day! ?
    1 point
  4. that i remember gm sprite doesn’t have a mount, try taking off the gm outfit.
    1 point
  5. try https://github.com/rathena/rathena/blob/master/npc/custom/quests/quest_shop.txt
    1 point
  6. Uhm... I´ll try yo explain. Now you have a configuration part: //Change to what requirements you want to use set .@item[0],713,970,607; //Array with items IDs to use (only 1 of them). //set .@itemq[0],1,3,1; //Uncomment if you want to use different quantities for each item, same order, array with quentities to use. set .@zeny,100000; //Money required. set .@result,607; //The obtained item on success. The first array .@item[0] defines the items ID of the brewing formula. You can put from 1-254 different items separated by ",". The example are the items configured in your script 713,970,607. But if you only configure this, it will try to get 1 of each item... but why if you want to pick one of this... three of that... The second (and commented) variable is for that: //set .@itemq[0],1,3,1; if you uncomment this, it will take 1 for the first item, 3 for the second and 1 of the third one. They are in the same order .@item[0],<ITEM ID 1>,<ITEM ID 2>,<ITEM ID 3>...; .@itemq[0],<ITEM ID 1 QUANTITY>,<ITEM ID 2 QUANTITY>,<ITEM ID 3 QUANTITY>...; Then another two vars with the zenys required and the ITEM ID of the brew result. Maybe more than 200 trys is to much and we can limit the imput to max 100. What do you think? I´m putting some corrections in this new version and with a limit of 100 each try (I think maybe the array vars where not being configured correctly). Try this: //======Name======================================== // Potion Brewer NPC //======Version===================================== // 1.0 //======Author(s)=================================== // Sandbox //======Comments==================================== // In loving memory of AstralRO //================================================== //Just for fun... don´t know if it will work! function script int__ { .@i = getstrlen( .@str$ = getarg(0) ) -3; .@is_negative = charat( .@str$, 0 ) == "-"; while ( .@i > .@is_negative ) { .@str$ = insertchar( .@str$, ",", .@i ); .@i -= 3; } return .@str$; } //Change coordinates prontera,144,180,3 script Brewho 46,{ //Configuration, items and zenys: //Change to what requirements you want to use setarray(.@item[0],713,970,607); //Array with items IDs to use (only 1 of them). //setarray(.@itemq[0],1,3,1); //Uncomment if you want to use different quantities for each item, same order, array with quentities to use. set .@zeny,100000; //Money required. set .@result,607; //The obtained item on success. mes "[^0000FF Brewho ^000000]"; mes "Hello, I can teach you how to brew! Teach you, teach you how to brew ^000088Astral Beer^000000"; //Change to what kind of potion do you want to brew menu "Teach me please!",-; next; mes "[^0000FF Brewho ^000000]"; mes "Okay, you'll be needing these.."; mes "^000088"; for( .@i = 0; .@i < getarraysize(.@item); .@i++ ){if(.@itemq[.@i]>0){mes ""+getitemname(.@item[.@i])+" x"+.@itemq[.@i]+"";}else{mes ""+getitemname(.@item[.@i])+"";}} mes "^000000"; mes "Also, a talent fee of "+int__(.@zeny)+" z!"; menu "I've got them master brewer!",-; next; mes "(How many tries?)"; mes "Max: 100"; input .@quantity; next; if(.@quantity < 1){goto Lnenough;} if(.@quantity > 100){set .@quantity,100;} //Checking requirements for( .@i = 0; .@i < getarraysize(.@item); .@i++ ){if(.@itemq[.@i]>0){if(countitem(.@item[.@i]) < (.@quantity*.@itemq[.@i])){goto Lnenough;}}else{if(countitem(.@item[.@i]) < .@quantity){goto Lnenough;}}} if(Zeny < .@zeny){goto Lnenough;} //Must match the requirements above. mes "[^0000FF Brewho ^000000]"; mes "Let's see the results!"; //Uncomment to enable casting effect progressbar "ffff00",1; //Deleting the items! for( .@i = 0; .@i < getarraysize(.@item); .@i++ ){if(.@itemq[.@i]>0){delitem .@item[.@i],(.@itemq[.@i]*.@quantity);}else{delitem .@item[.@i],.@quantity;}} set Zeny,Zeny-.@zeny; for( .@i = 0; .@i < .@quantity; .@i++ ){ //Lets goooo with the chances if(BrewLvl == 0){set @brewchance,rand(1,5);} if(BrewLvl == 1){set @brewchance,rand(1,4);} if(BrewLvl == 2){set @brewchance,rand(1,3);} if(BrewLvl == 3){set @brewchance,rand(1,2);} if(@brewchance == 1) { misceffect 305; set BrewExp,BrewExp+1; getnameditem .@result,strcharinfo(0); //Change Item ID, Must match the potion to be made! set .@ok,.@ok+1; //goto Lsuccess; } else { misceffect 306; set .@ko,.@ko+1; //goto Lfail; } } //Now let´s see the results next; mes "[^0000FF Brewho ^000000]"; //mes "Congratulations! You've succeeded!"; mes "Well, well... let me see."; mes "You succeeded "+.@ok+" time/s and failed "+.@ko+" time/s."; if(BrewExp < 10000){dispbottom "You've gained "+.@ok+" Brewing Exp.";} if(BrewLvl == 0 && BrewExp > 999){ set BrewLvl,1; dispbottom "Congratulations! Your Brewing Mastery is now Level 1!"; announce strcharinfo(0)+"'s Brewing Mastery reached Level 1!",bc_all,0x00FFFF; } else if(BrewLvl == 1 && BrewExp > 4999) { set BrewLvl,2; dispbottom "Congratulations! Your Brewing Mastery is now Level 2!"; announce strcharinfo(0)+"'s Brewing Mastery reached Level 2!",bc_all,0x00FFFF; } else if(BrewLvl == 2 && BrewExp > 9999) { set BrewLvl,3; dispbottom "Congratulations! Your Brewing Mastery is now Level 3!"; announce strcharinfo(0)+"'s Brewing Mastery reached Max Level!",bc_all,0x00FFFF; set BrewExp,0; //Comment this if u don´t wanna clean up this var for the player (max lvl so exp not needed) } close; Lnenough: mes "[^0000FF Brewho ^000000]"; mes "Are you trying to brew me out!?"; close; } PS: I could test this on an offline server and seems to be working fine now.
    1 point
  7. reset look ? might because of your costumes. Some costumes only working on 2020 clients, and some of itemdb in rAthena are items from jRO/iRO which maybe you didnt have it in your base RO files.
    1 point
  8. - script Barricade 78,{ OnInit: bindatcmd "gate", strnpcinfo(0)+"::Oncommand", 99,99; setcell "new_5-1",68,113,68,110,cell_walkable,0; //non walkable monster "new_5-1",68,113,""+getmonsterinfo(1905,0)+"",1905,1; monster "new_5-1",68,112,""+getmonsterinfo(1905,0)+"",1905,1; monster "new_5-1",68,111,""+getmonsterinfo(1905,0)+"",1905,1; monster "new_5-1",68,110,""+getmonsterinfo(1905,0)+"",1905,1; end; Oncommand: if(compare(.@atcmd_parameters$, "open" )) goto L_open; else if(compare( .@atcmd_parameters$, "close")) goto L_close; else{ dispbottom "type - '@gate open' to open the gate"; dispbottom "type - '@gate close' to close the gate"; } end; L_close: setcell "new_5-1",68,113,68,110,cell_walkable,0; //non walkable monster "new_5-1",68,113,""+getmonsterinfo(1905,0)+"",1905,1; monster "new_5-1",68,112,""+getmonsterinfo(1905,0)+"",1905,1; monster "new_5-1",68,111,""+getmonsterinfo(1905,0)+"",1905,1; monster "new_5-1",68,110,""+getmonsterinfo(1905,0)+"",1905,1; end; L_open: announce "The Gate is now OPEN. Good Luck Adventurer.", bc_all; setcell "new_5-1",68,113,68,110,cell_walkable,1; //non walkable atcommand "@killmonster2"; end; } yo mate.
    1 point
  9. View File set and get Variable for Gepard with this you can add a "like" variable that hooked to the unique id that Gepard provide ofc the script wont work without Gepard Shield Faster Explanation: all you need to know if you already know how to script: TO SET EXAMPLE: Account Variable in rAthena EX: #VAR = 10; Character Variable in rAthena EX: VAR = 10; Gepard Variable ? > with this functions EX: gepard_int_set("VAR",10); AFTER THE ABOVE THE RESULT WOULD BE> TO GET EXAMPLE: Account Variable in rAthena EX: mes "" + #VAR;// = 10 Character Variable in rAthena EX: mes "" + VAR;// = 10 Gepard Variable ? > with this functions EX: mes "" + gepard_int_get("VAR");// = 10 Download the test NPCs for more Explanation: Script Header: //===== rAthena Script ======================================= //= set and get for gepard //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 1.0 //===== Compatible With: ===================================== //= rAthena Project //= https://github.com/sader1992/sader_scripts //===== Description: ========================================= <<<<<<< READ ME! //= YOU MUST RUN THE SQL SCRIPT IN YOUR MAIN SQL FIRST!!!!! //= you should add this to the end of your 'rathena/npc/other/Global_Functions.txt' //= gepard_int_get(<"key">,{<index>{,<"unique id">}}); //= gepard_string_get(<"key">,{<index>{,<"unique id">}}); //= gepard_int_set(<"key">,<value>{,<index>{,<"unique id">}}); //= gepard_string_set(<"key">,<"value">{,<index>{,<"unique id">}}); //============================================================ /* //ADD THIS TO YOUR SQL! CREATE TABLE IF NOT EXISTS `gepard_reg_num` ( `unique_id` int(11) unsigned NOT NULL default '0', `key` varchar(32) binary NOT NULL default '', `index` int(11) unsigned NOT NULL default '0', `value` int(11) NOT NULL default '0', PRIMARY KEY (`unique_id`,`key`,`index`), KEY `unique_id` (`unique_id`) ) ENGINE=MyISAM; CREATE TABLE IF NOT EXISTS `gepard_reg_str` ( `unique_id` int(11) unsigned NOT NULL default '0', `key` varchar(32) binary NOT NULL default '', `index` int(11) unsigned NOT NULL default '0', `value` varchar(254) NOT NULL default '0', PRIMARY KEY (`unique_id`,`key`,`index`), KEY `unique_id` (`unique_id`) ) ENGINE=MyISAM; */ Submitter sader1992 Submitted 06/16/2019 Category Utilities Video Content Author sader1992  
    1 point
×
×
  • Create New...