Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/14/19 in all areas

  1. Hey guys, i never share things here, but hey, glad to help ~ This is my custom implementation of the Mechanic new costume, and work like this. This new sprite only work when u use the "Bodystyle 1" on the mechanic class, that means we keep the old mechanic costume as "bodystyle 0" In addition to that, i add the Attack animation for 2 genders and the first 3 palettes. In the file i put the new Gravitational Cart as "Cart 3" but, u guys can rename or replace it as you like ~ To make it work, just drag all the rar content on your current grf and it´s done ~ Additional note: Some old clients read the mechanic sprite or palete whit a different name, so, in that case, just replace the name of the files as the name that your client or grf are reading it. mechanic_full_new_stuff.rar
    4 points
  2. These are a showcase of some stuff I have created in my test server. From time to time I will also give back to the community with free releases every now and then. Please note that these showcases,releases and entries do not translate in me being a decent coder. I merely enjoy coding for RO in general. With that said, enjoy and hopefully you find the contents within, inspiring. Personalized MvP Ranker - 100% Working Weekly Ranking All Time Ranking Personal MvP Kill Tracker Weekly Ranking Rewards Exclusive Top 3 Rank Title Titles reset on a weekly basis as well (Sunday) Midgard Adventurer Association - 100% Working Tier-based quests Tier-based shop Tier-based rewards Tier-based titles Repeatable quests for Adventurer XP grinding Item Collection quest required to rank up Personalized WoE Ranker - Discontinued until further notice Weekly Ranking Monthly Ranking All Time Ranking Break Record Repair Barricade Record Kill Record Exclusive Top 3 Rank Title Record (Breaker, Killer, Repairer) Titles reset on a monthly basis as well (First day of the month) Video Preview [ Will edit soon ] Freebies Section Support NPC Let's you control when players can use @request Allows staff members announce to players that they are either Available now, or Unavailable King of Poring (King of Emperium) - Discontinued until further notice 4 teams duke it out in a PvP Arena Win conditions are: Be the last team standing OR obliterating the poor poring at the middle of everything Each corner has their Healer and Buffer NPC, providing most buffs to the players prior to the match When the round begins, Healer and Buffer NPC will disappear, along side the invisible barriers Time limit of 15 minutes is in play, if it exceeds 15 minutes, players with the most surviving members will win Rewards will be distributed to all participants, winners will have their own special reward Equipment / Weapon Disassembly - Non-extended version Disassembles equipment / weapons to produce Elunium/Oridecon respectively Shields, Headgears and Accessories are treated as "Equipment/Armor" Items listed in the OnInit file are considered as black listed More will be coming soon, stay tuned.
    2 points
  3. There are few skills untranslated, but as I have heard zackdreaver is thinking about dropping this project, since it's too time consuming when he doesn't have mich time to begin with. So I thought about... I cloned his repository and started to work on it myself. For those who are interested: https://github.com/llchrisll/ROenglishRE I also made an discord server, so if someone want's to talk about the translation, he/she can do that there. Link is at GitHub. Regards, Chris
    2 points
  4. Update: I will be releasing the Greed Hoarder script for free later this week or the next (all bugs fixed) If you have bought the Greed Hoarder script, feel free to DM me for a refund Work in Progress Equipment/Weapon Disassembly (this will be a free release when I finish it) Mainly for changing how refining works in official RO to widely extend end-game potential Costume Evolution Upgrading your costumes' rarity, granting it additional stats in the process
    1 point
  5. data.rar do you mind try this data
    1 point
  6. edit .event_time = .@timer + .event_cd - 1; // deduct 1 sec from current time to .event_time = .@time + .event_cd - 1; // deduct 1 sec from current time poring_catcher_v2.txt
    1 point
  7. // credits to Annieruru - script Stylist -1,{ mes .npc_name$; mes "Eu posso mudar sua aparência."; if( .item_size ){ mes " "; mes "^777777[ TAXAS DO SERVIÇO ]^000000"; for( .@i = 0; .@i < .menu_size; .@i++ ) if( .npc_mode & ( 1 << .@i ) ) if( .item[.@i] ) mes "^0055FF"+.menu_name$[.@i]+" : ^777777"+ .item[.@i] +" x "+getitemname(7420)+"^000000"; else mes "^0055FF"+.menu_name$[.@i]+" : ^777777Free of Charge^000000"; } next; .@style = ( select( .npc_menu$ ) - 1 ); .@style_value = getlook( .look_type[.@style] ); deletearray .@blacklist; switch( .@style ){ Case 0: .@blacklist$ = ","+getd( ".blacklist_hairstyle_"+Sex+"$" )+","; break; Case 1: .@blacklist$ = ","+getd( ".blacklist_haircolor_"+Sex+"$" )+","; break; Case 2: .@blacklist$ = ","+getd( ".blacklist_clothe_"+Sex+"$" )+","; break; default: break; } .@style_number = .min_style[.@style]; do{ next; mes .npc_name$; mes "Current "+.menu_name$[.@style]+" : ^0055FF"+.@style_number+"th^000000"; mes " "; .@removed = 0; if( compare( .@blacklist$,","+.@style_number+"," ) ){ mes "^FF0000NOTE : This style REMOVED^000000"; .@removed = 1; setlook .look_type[.@style],.min_style[.@style]; }else{ setlook .look_type[.@style],.@style_number; if( .item[.@style] ){ mes "Cost : ^777777"+ .item[.@style] +" x "+getitemname(7420)+"^000000"; mes " "; } } .@next = .@style_number + 1; .@prev = .@style_number - 1; if( .@next > .max_style[.@style] ) .@next = .min_style[.@style]; if( .@prev < .min_style[.@style] ) .@prev = .max_style[.@style]; .@select = prompt( "Próximo - [ ^777777"+.@next+"th Style^000000 ]", "Voltar - [ ^777777"+.@prev+"th Style^000000 ]", "Pular para...", ( .@removed )?"":"^0055FFCerto, eu quero esse "+.menu_name$[.@style]+"^000000" ); switch( .@select ){ Case 1: .@style_number = .@next; break; Case 2: .@style_number = .@prev; break; Case 3: mes "Available Style : ^0055FF"+.min_style[.@style]+" ~ "+.max_style[.@style]+"^000000."; input .@style_number,.min_style[.@style],.max_style[.@style]; break; Case 4: if( .@style_value == .@style_number ){ mes "Swt..this is your original hairstyles."; } else if( .item[.@style] && countitem(7420) < .item[.@style] ){ mes "You dont have enough "+getitemname(7420)+" to change this "+.menu_name$[.@style]+"."; }else{ mes "Aproveite seu ^0055FFNEW "+.menu_name$[.@style]+" !!"; if( .item[.@style] ) delitem 7420, .item[.@style]; .@style_value = .@style_number; } default: setlook .look_type[.@style],.@style_value; break; } }while( .@select != 4 && .@select != 255 ); close; OnInit: // NPC name .npc_name$ = "[^0055FF ::: Estilista ::: ^000000]"; // NPC Mode ( Bitmask ) // 1 - Enable Hairstyle // 2 - Enable Hair Color // 4 - Enable Cloth Color .npc_mode = 7; // Menu Name setarray .menu_name$, "Cor do Cabelo", "Cor do Cabelo", "Cor da Roupa"; // Payment (7420) setarray .item, 100000, // Hairstyle 0, // Hair Color 35000; // Cloth Color // Blacklisted Style for each style and each gender. // --- Female --- .blacklist_hairstyle_0$ = "2,4,6"; .blacklist_haircolor_0$ = "1,3,5"; .blacklist_cloth_0$ = "143,188,261"; // --- Male --- .blacklist_hairstyle_1$ = "3,5,7"; .blacklist_haircolor_1$ = "2,4,6"; .blacklist_cloth_1$ = "143,188,261"; // Dont edit setarray .min_style,getbattleflag( "min_hair_style" ),getbattleflag( "min_hair_color" ),getbattleflag( "min_cloth_color" ); setarray .max_style,getbattleflag( "max_hair_style" ),getbattleflag( "max_hair_color" ),getbattleflag( "max_cloth_color" ); .menu_size = getarraysize( .menu_name$ ); .item_size = getarraysize( .item ); setarray .look_type,LOOK_HAIR,LOOK_HAIR_COLOR,LOOK_CLOTHES_COLOR; for( .npc_menu$ = ""; .@i < .menu_size; .@i++ ) .npc_menu$ = .npc_menu$ + ( ( .npc_mode & ( 1 << .@i ) )? .menu_name$[.@i]:"" ) +":"; end; } // NPC Lists prontera,175,202,4 duplicate(Stylist) Estilista#4 878 @IsabelaFernandez Dont forget to edit this part : // Payment (7420) = item amount setarray .item, 100000, // Hairstyle 0, // Hair Color 35000; // Cloth Color
    1 point
  8. Updated with Mastery Video (+200 masteries) Masteries can completely OP a skill when reaching max level as in sample video
    1 point
  9. All 3 are downloading for me in the first post of the topic that I started. You really should read from the beginning, lol. Have a nice day. Peopleperson49 I would like to point out that if you look at the script and item type commands doc, most stuff there never came from the official servers. Someone along the way said that would be something useful and they added it. This isn't anything different. Their is no negatives to adding them in anyway except the few minutes time of already overworked DEVs... They are quite powerful commands that have a lot of versatility. Once added they would only make rA stronger overall. Since they are simple items type commands their isn't much difficulty adding them to the git. As I said before it just takes a few minutes for someone with DEV access to add them. Once added they are there forever. Peopleperson49
    1 point
  10. 1 point
  11. The only way we are able to provide the Hom AI with the 2018 client is through our custom NovaEXT extension made solely by one of our developers Phaicm. I am not sure how the NEMO patch works if at all for the Hom support, but if it doesn't work you'd probably be better off asking @Normynator to try to add the feature to his Paint in Black extension.
    1 point
  12. After if (dupmapid < 0) { ShowError("duplicatecreate: Map not found. (%s)\n", mapa); script_pushint(st, 0); return 0; } Add: struct map_data *mapdata = map_getmapdata(dupmapid); int tries = 0; if(x <= 0 || y <= 0) { do { x = rnd()%(mapdata->xs-2)+1; y = rnd()%(mapdata->ys-2)+1; } while(map_getcell(dupmapid,x,y,CELL_CHKNOPASS) || (tries++) < 1000); } if (tries > 1000) { ShowError("duplicatecreate: Impossible to find a valid spot in (%s)\n", mapa); return SCRIPT_CMD_FAILURE; } Didn't test it but should work
    1 point
  13. Lacking break on strip armor code. int d = 0; // By pass FCP when using single strip skills by 15%(requires Glistening Coat). if ( sd && tsc && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE && rand()%100 < 75 && ( skill_id == RG_STRIPWEAPON && tsc->data[SC_CP_WEAPON] || skill_id == RG_STRIPSHIELD && tsc->data[SC_CP_SHIELD] || skill_id == RG_STRIPARMOR && tsc->data[SC_CP_ARMOR] || skill_id == RG_STRIPHELM && tsc->data[SC_CP_HELM] ) ) { int item_id = 7139; // Glistening Coat int ii; ARR_FIND( 0, MAX_INVENTORY, ii, sd->inventory.u.items_inventory[ii].nameid == item_id ); if ( ii < MAX_INVENTORY ) { pc_delitem( sd, ii, 1, 0, 0, LOG_TYPE_CONSUME); switch ( skill_id ) { case RG_STRIPWEAPON: status_change_end( bl, SC_CP_WEAPON, INVALID_TIMER ); sc_start(src,bl,SC_STRIPWEAPON,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case RG_STRIPSHIELD: status_change_end( bl, SC_CP_SHIELD, INVALID_TIMER ); sc_start(src,bl,SC_STRIPSHIELD,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; case RG_STRIPARMOR: status_change_end( bl, SC_CP_ARMOR, INVALID_TIMER ); sc_start(src,bl,SC_STRIPARMOR,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; // <-- this part was missing case RG_STRIPHELM: status_change_end( bl, SC_CP_HELM, INVALID_TIMER ); sc_start(src,bl,SC_STRIPHELM,100,skill_lv,skill_get_time(skill_id,skill_lv)); break; } clif_skill_nodamage( src, bl, skill_id, skill_lv, i ); break; } }
    1 point
  14. I do not know what you're talking about ? i think you're not following the modified script. if you want to choose a rate% just modify this: if ( rand(100) < 50 ) { // 50% chance to get the item
    1 point
  15. prontera,150,150,4 script Quest NPC 1_M_MERCHANT,{ mes "[Quest NPC]"; mes "I have an awesome item list here, you want to take a simple quest?."; next; menu "Nope i dont want!",-, "Yes show me the list.",M_DO; mes "[Quest NPC]"; mes "Ok bye.."; emotion ET_HAH; close; M_DO: mes "[Quest NPC]"; mes "You can select one from the following..."; next; menu "ITEM1",A_ITEM1,"ITEM2",A_ITEM2,"ITEM3",A_ITEM3,"ITEM4",A_ITEM4,"ITEM5",A_ITEM5,"ITEM6",A_ITEM6; // -------------------------------------------------------- A_ITEM1: mes "[Quest NPC]"; mes "You want this gear?"; mes "You need this items before you have mine."; mes "Poring Coins [300 ea]"; mes "Mithril Coins [500 ea]"; mes "Ghostring Card [1 ea]"; next; if(select("Get It:Cancel")==2) goto M_END; if(countitem(7539) < 300 || countitem(674) < 500 || countitem(4047) < 1) { mes "[Quest NPC]"; mes "Not enough coins"; close; } else { mes "[Quest NPC]"; delitem 7539,300; delitem 674,500; delitem 4047,1; progressbar "FFFFFF",2; if ( rand(100) < 50 ) { // 50% chance to get the item specialeffect2 610; mes "Success !"; getitem 999,1; // Item ID Number close; } else { specialeffect2 611; mes "Failed"; close; } // -------------------------------------------------------- A_ITEM2: mes "[Quest NPC]"; mes "You want this gear?"; mes "You need this items before you have mine."; mes "Poring Coins [300 ea]"; mes "Mithril Coins [500 ea]"; mes "Ghostring Card [1 ea]"; next; if(select("Get It:Cancel")==2) goto M_END; if(countitem(7539) < 300 || countitem(674) < 500 || countitem(4047) < 1) { mes "[Quest NPC]"; mes "Not enough coins"; close; } else { mes "[Quest NPC]"; delitem 7539,300; delitem 674,500; delitem 4047,1; progressbar "FFFFFF",2; if ( rand(100) < 50 ) { // 50% chance to get the item specialeffect2 610; mes "Success !"; getitem 999,1; // Item ID Number close; } else { specialeffect2 611; mes "Failed"; close; } // -------------------------------------------------------- A_ITEM3: mes "[Quest NPC]"; mes "You want this gear?"; mes "You need this items before you have mine."; mes "Poring Coins [300 ea]"; mes "Mithril Coins [500 ea]"; mes "Ghostring Card [1 ea]"; next; if(select("Get It:Cancel")==2) goto M_END; if(countitem(7539) < 300 || countitem(674) < 500 || countitem(4047) < 1) { mes "[Quest NPC]"; mes "Not enough coins"; close; } else { mes "[Quest NPC]"; delitem 7539,300; delitem 674,500; delitem 4047,1; progressbar "FFFFFF",2; if ( rand(100) < 50 ) { // 50% chance to get the item specialeffect2 610; mes "Success !"; getitem 999,1; // Item ID Number close; } else { specialeffect2 611; mes "Failed"; close; } // -------------------------------------------------------- A_ITEM4: mes "[Quest NPC]"; mes "You want this gear?"; mes "You need this items before you have mine."; mes "Poring Coins [300 ea]"; mes "Mithril Coins [500 ea]"; mes "Ghostring Card [1 ea]"; next; if(select("Get It:Cancel")==2) goto M_END; if(countitem(7539) < 300 || countitem(674) < 500 || countitem(4047) < 1) { mes "[Quest NPC]"; mes "Not enough coins"; close; } else { mes "[Quest NPC]"; delitem 7539,300; delitem 674,500; delitem 4047,1; progressbar "FFFFFF",2; if ( rand(100) < 50 ) { // 50% chance to get the item specialeffect2 610; mes "Success !"; getitem 999,1; // Item ID Number close; } else { specialeffect2 611; mes "Failed"; close; } // -------------------------------------------------------- A_ITEM5: mes "[Quest NPC]"; mes "You want this gear?"; mes "You need this items before you have mine."; mes "Poring Coins [300 ea]"; mes "Mithril Coins [500 ea]"; mes "Ghostring Card [1 ea]"; next; if(select("Get It:Cancel")==2) goto M_END; if(countitem(7539) < 300 || countitem(674) < 500 || countitem(4047) < 1) { mes "[Quest NPC]"; mes "Not enough coins"; close; } else { mes "[Quest NPC]"; delitem 7539,300; delitem 674,500; delitem 4047,1; progressbar "FFFFFF",2; if ( rand(100) < 50 ) { // 50% chance to get the item specialeffect2 610; mes "Success !"; getitem 999,1; // Item ID Number close; } else { specialeffect2 611; mes "Failed"; close; } // -------------------------------------------------------- A_ITEM6: mes "[Quest NPC]"; mes "You want this gear?"; mes "You need this items before you have mine."; mes "Poring Coins [300 ea]"; mes "Mithril Coins [500 ea]"; mes "Ghostring Card [1 ea]"; next; if(select("Get It:Cancel")==2) goto M_END; if(countitem(7539) < 300 || countitem(674) < 500 || countitem(4047) < 1) { mes "[Quest NPC]"; mes "Not enough coins"; close; } else { mes "[Quest NPC]"; delitem 7539,300; delitem 674,500; delitem 4047,1; progressbar "FFFFFF",2; if ( rand(100) < 50 ) { // 50% chance to get the item specialeffect2 610; mes "Success !"; getitem 999,1; // Item ID Number close; } else { specialeffect2 611; mes "Failed"; close; } M_END: mes "[Quest NPC]"; mes "See you..."; emotion ET_SLEEPY; close; } } } } } } }
    1 point
  16. 6/10 pssst: Activate Windows
    1 point
  17. Version 1.0.0

    165 downloads

    Min votes configured: 3 // Can be changed Can vote on yourself: Disabled // Can be activated.
    Free
    1 point
  18. View File [UnOfficial] Skyfortress Drop/reroll enchantment Functions README FIRST! those are UnOfficial there is 2 main scripts the first one (you need to add it first to your .conf file) SkyFortress_Functions this have the main functions HEADER >> (read it before you use the script) the 2nd main file is SkyFortress_reroll this for the reroll npc this npc requir https://github.com/rathena/rathena/pull/4195 if you didn't apply this PR the npc will give you error! the 3rd file SkyFortress_Test is just for test , do not use it unless you want to test and edit the script to add the drop to your instance , you need to edit the instance script it self , as this not normal drop , it's on event kill drop. if you have problem with the script , you can use the forum post to report it to me, and me or someone else will help you fix it. Submitter sader1992 Submitted 09/15/2019 Category Utilities Video Content Author sader1992
    1 point
  19. Version 1.0.0

    587 downloads

    this patch make the player must have a variable true to claim his attendance reward the variable is #Attendance_YYYYMMDD ofc the variable change each day this will allow you to create a script to make for example a quest that the player must do every day to claim the attendance like for example the player must kill 500 monster before he can claim his attendance or must gather items or must be x level or must player x amount of time in the day so he can claim the reward of all the above the file include an information script file that have 2 function , one to set the variable and one to get the variable value (if you want to use them , just add them to your rathena/npc/other/Global_Functions.txt) it also include 2 example quests for you to get some inspiration to create your own script TODO: create function for gepard
    Free
    1 point
  20. Version 20190611-34971e57

    506 downloads

    INFORMATION: The main target for usage only for server that use kRO client Client 2015-08-26 or newer or some functions (especially the cart selection) will be fail This mod in few words, You can set Genetic's cart sprite for level 1 Merchant, change its max weight and max item numbers rAthena Requirement: Git Hash: 2e15fae7 (2018-05-05) You can config cart related values for Weight limit Max item numbers Level requirement Job requirement But, because the client is not customizable (I meant I can't edit the client), there are things that cannot be changed related with client/PACKETVER. So, because I modified the MC_CHANGECART to MC_CARTDECORATE (sending ZC_SELECTCART) PACKETVER MAX_CARTS ZC_SELECTCART Weight Limit Max Items Level Req Job Req 20150826 + 12 YES YES YES YES YES 20120201 + 9 not supported YES YES useless useless Older 5 not supported YES YES useless useless Don't forget to add MC_CARTDECORATE as quest skill to preferred player. Forgot to took SS, so just watch the Video Ok, that's all. Any bug & suggestion please tell me. If you find a way or know how to make patch (hex the client) to add more carts, please tell the community
    Free
    1 point
  21. Greetings, everyone. New content for Valentine's Day were added: Valentine's Day 32bit Headgear Auras All of them available in 12 colours. And if you haven't had the time, I've also recently added a new freebie:
    1 point
  22. goto \data\luafiles514\lua files\datainfo and edit this tb_cashshop_banner.lub
    1 point
×
×
  • Create New...