Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 02/20/19 in all areas

  1. Hola a todos!, despues de un tiempo he decidido hacer una montura para GM ya que son los unicos que no he visto que tengan uno. Obiamente es personalizado, espero que les guste!. ------------------------------------------------------------------------------ English Hello everyone, after a while I decided to make a mount for GM because they are the only ones I have not seen that have one. Obviously it is personalized, I hope you like it!. Personalmente no me comvencio del todo la montura de la GM femenina, ya que su postura no coincide perfectamente con los perfiles, es decir la manera o la pose en la que esta sentada... me gustaria modificarle o crear otro cuerpo con una pose distinta pero no tengo mucho talento en el pixel art, si alguien desea ayudarme bienvenido sea! Tambien quisiera modificarle el radio o el tamaño de la sombra de bajo de sus monturas para que se vean acorde a la dimension de la misma, pero nose donde es que se configura, alguna sugerencia? Tengo otros detalles y proyectos en mente tambien que me gustaria hacer y compartir, pero necesito una mano jeje. Saludos! ----------------------------------------------------------------------------------------------- English Personally I do not fully commend the female GM's mount, since her posture does not perfectly match the profiles, that is, the way or the pose she is sitting in ... I would like to modify her or create another body with a different pose but I do not have much talent in pixel art, if someone wants to help me, be welcome! I would also like to modify the radius or size of the bass shadow of their frames so that they look according to the size of the frame, but I do not know where it is configured, any suggestions? I have other details and projects in mind too that I would like to do and share, but I need a hand hehe. Regards!
    3 points
  2. Bonus Expansion Pack Introduction As some of you may know, a long time ago I made a patch for eAthena which included an expanded collection of bonus script commands which could be used on items. I'm guessing this was somewhere in the region of 10 years ago now, so I think it's probably fitting that a newer version be developed. So, development hasn't started yet as I need to dig up the old list and identify which ones haven't already been implemented/which ones can actually be implemented against the new code base. Requests This topic will serve as the base for any and all requests. The purpose of this project is to develop new bonus script commands, or augment existing ones by adding more specific or extra versions. I'm open to the community for any suggestions and requests for the bonuses which will be introduced. Please don't request things like new at-commands or new script commands as I'd like to keep this project specific to bonuses, however I might end up developing some script commands if I find that they're necessary to accomplish a bonus. Pending Implemented Usage The development will take place on a fork of rAthena under a separate branch. Once the initial version is complete I will generate a patch file which can be applied against the master branch of an rAthena repository. Please be advised that I won't be providing support for previous revisions (for example, if you're running a version of rAthena which was available 4 months prior to my patch.) My intention is to keep the forked branch up-to-date with periodic merges of the master branch, and produce new patch files whenever this takes place (and keep historical patches) Thanks
    2 points
  3. Latest Version : Version 2 Second Upload ( 02/20/2019 ) Version 1 : First Upload ( 09/18/2017 ) I hope someone upload this on our forum to make it easier to find This is not MINE but credits to the OWNER ! collection of RO Chibi from Web (c) Gravity Co., Ltd. & Lee MyoungJin(studio DTDS). All rights reserved.(c) GungHo Online Entertainment, Inc. All Rights Reserved.当コンテンツの再利用(再転載・配布など)は、禁止しています。
    2 points
  4. View File Straw Target Dummy Greetings rAthena! I hope you enjoy this npc of Maple Story, it is the second I have done. Please do not claim my work as yours. Please do not sell it or resell it. Submitter Mael Submitted 02/18/2019 Category Monster Sprites Video Content Author Mael & Maple Story  
    2 points
  5. You can try this script by Sehrentos, it's one of the most configurable enchanters I've seen: //===== rAthena Script ======================================= //= Enchant NPC //===== By: ================================================== //= Sehrentos //===== Current Version: ===================================== //= 1.2 //===== Compatible With: ===================================== //= rAthena Project //===== Description: ========================================= //= Enchant player's equipment. Support multiple enchants. //===== Additional Comments: ================================= //= 1.0 Initial script. //= 1.1 Remove enchant option. //= 1.2 Added .max_enchant option. //============================================================ // shop/cashshop/itemshop/pointshop - shop enc_atk -1,501:300; - shop enc_def -1,501:300; - shop enc_stats -1,501:300; prt_in,65,68,4 script Enchant#prt1 4_M_MERCAT1,{ disable_items; switch(select("Attack:Defence:Stats:Remove")) { case 1: @shop_name$ = "enc_atk"; break; case 2: @shop_name$ = "enc_def"; break; case 3: @shop_name$ = "enc_stats"; break; case 4: callsub S_Remove; break; default: end; } callshop @shop_name$, 1; npcshopattach @shop_name$; end; OnInit: // Settings: shop names, currencies, items, prices .max_enchant = 2; // Max amount of enchants 0-4 setarray .shop_name$[0], "enc_atk", "enc_def", "enc_stats"; setarray .shop_currency$[0],"Zeny", "Zeny", "Zeny"; setarray .enc_atk_id[0], 4760, 4761, 4806, 4815, 4814, 4813, 4812, 4826, 4827, 4828, 4829, 4830, 4831, 4819, 4766, 4767,4764,4765, 4807, 4842, 4818, 4817, 4816, 4843, 4844, 4811, 4810, 4809, 4808, 4820, 4821, 4822, 4823, 4824, 4825, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841; setarray .enc_atk_price[0],10000,20000,30000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,10000,20000,30000,5000,7000,10000,20000,10000,20000,30000,40000,50000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000,10000,20000,30000,40000,50000,60000,70000,80000,90000,100000; setarray .enc_def_id[0], 4805, 4850, 4851, 4852,4762, 4763,4786,4787,4788,4789, 4790,4791,4792,4793, 4794,4795,4796,4797,4798,4799,4800,4801, 4802; setarray .enc_def_price[0],10000,20000,40000,60000,5000,12000,2000,4000,6000,8000,10000,3000,5000,9000,12000,1000,2000,3000,4000,5000,2500,5000,10000; setarray .enc_stats_id[0], 4700,4710,4720,4730,4740,4750, 4701,4711,4721,4731,4741,4751, 4702,4712,4722,4732,4742,4752, 4703,4713,4723,4733,4743,4753, 4704,4714,4724,4734,4744,4754, 4705,4715,4725,4735,4745,4755, 4706,4716,4726,4736,4746,4756, 4707,4717,4727,4737,4747,4757, 4708,4718,4728,4738,4748,4758, 4709, 4719, 4729, 4739, 4749, 4759; setarray .enc_stats_price[0],1500,1500,1500,1500,1500,1500, 2500,2500,2500,2500,2500,2500, 3500,3500,3500,3500,3500,3500, 4500,4500,4500,4500,4500,4500, 5500,5500,5500,5500,5500,5500, 6500,6500,6500,6500,6500,6500, 7500,7500,7500,7500,7500,7500, 8500,8500,8500,8500,8500,8500, 9500,9500,9500,9500,9500,9500, 10500,10500,10500,10500,10500,10500; // Load shop items for(.@i = 0; .@i < getarraysize(.shop_name$); .@i++) { .@npc$ = .shop_name$[.@i]; deletearray .@id[0],getarraysize(.@id); deletearray .@price[0],getarraysize(.@price); copyarray .@id[0], getd("."+.@npc$+"_id[0]"), getarraysize(getd("."+.@npc$+"_id")); copyarray .@price[0], getd("."+.@npc$+"_price[0]"), getarraysize(getd("."+.@npc$+"_price")); npcshopdelitem .@npc$,501;// Remove apple for(.@j = 0; .@j < getarraysize(.@id); .@j++) { npcshopadditem .@npc$, .@id[.@j], .@price[.@j]; } } end; OnSellItem: end; OnBuyItem: .@bought_count = getarraysize(@bought_nameid); if(.@bought_count < 1) end; // Get shop data by @shop_name$ .@shop_index = inarray(.shop_name$[0], @shop_name$); if(.@shop_index == -1 || getarraysize(.shop_name$) < 1) { message strcharinfo(0), "Shop was not found!"; debugmes "Incorrect shop array detected in '"+@shop_name$+"'! FIXME!"; end; } copyarray .@shop_id[0], getd("."+@shop_name$+"_id"), getarraysize(getd("."+@shop_name$+"_id")); copyarray .@shop_price[0], getd("."+@shop_name$+"_price"), getarraysize(getd("."+@shop_name$+"_price")); for(.@i = 0; .@i < .@bought_count; .@i++) { .@index = inarray(.@shop_id[0], @bought_nameid[.@i]); if(.@index == -1) { message strcharinfo(0), "Price was not found!"; debugmes "Incorrect price array detected in '"+@shop_name$+"'! FIXME!"; end; } setarray .@bought_cost[getarraysize(.@bought_cost)],.@shop_price[.@index]*@bought_quantity[.@i]; for (.@j = 0; .@j < @bought_quantity[.@i]; .@j++) { setarray .@enchant[getarraysize(.@enchant)],@bought_nameid[.@i]; } } // Count total cost for(.@i = 0; .@i < .@bought_count; .@i++) { .@total_cost = .@total_cost + .@bought_cost[.@i]; } // Currency check if(.shop_currency$[.@shop_index] == "Zeny" && Zeny < .@total_cost) { message strcharinfo(0), "("+.@total_cost+") Not enough "+.shop_currency$[.@shop_index]+"!"; end; } // Other currency checks... // Select equipment (EQI) mes "[ " + strnpcinfo(1) + " ]"; mes "Please select which equipment you want me to enchant."; .@position = callsub(S_SelectPosition); // Check if position has equipment if(!getequipisequiped(.@position)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "You don't have anything equipped there!"; close; } .@item_id = getequipid(.@position); //Equipped item id .@refine = getequiprefinerycnt(.@position); //Equipped refine value .@slots = getitemslots(.@item_id); setarray .@cards[0], getequipcardid(.@position,0), getequipcardid(.@position,1), getequipcardid(.@position,2), getequipcardid(.@position,3); .@cards_count = getarraysize(.@cards); .@enchant_count = getarraysize(.@enchant); /*if(.@enchant_count > .max_enchant) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This item has been crafted or produced and cannot be enchanted."; close; }*/ // Check for enabled refinement /*if(!getequipisenableref(.@position)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "I don't think I can enchant this item at all."; mes "Sorry..."; close; }*/ // Add all card slots for(.@i = 0; .@i < .@slots; .@i++) { setarray .@item[getarraysize(.@item)], (.@cards[.@i] > 0 ? .@cards[.@i] : -1); } // Add previous enchants for(.@i = .@slots; .@i < .@cards_count; .@i++) { if(.@cards[.@i] > 0) { setarray .@item[getarraysize(.@item)], .@cards[.@i]; } } // Add new enchants for(.@i = 0; .@i < .@enchant_count; .@i++) { setarray .@item[getarraysize(.@item)], .@enchant[.@i]; } // Check for produced/crafted items 254,255 if(.@cards[0] == CARD0_FORGE || .@cards[0] == CARD0_CREATE) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This item has been crafted or produced and cannot be enchanted."; close; } // Has card sockets 4 - slots if(.@enchant_count > (.max_enchant - .@slots)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This equipment can hold "+(.max_enchant - .@slots)+" enchant."; close; } // Has free sockets if((.@slots + .@enchant_count) > .max_enchant || getarraysize(.@item) > .max_enchant) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "This item does not have enough free sockets to enchant."; close; } // Confirm the setup clear; mes "[ " + strnpcinfo(1) + " ]^6E6E6E Setup^000000"; for(.@i = 0; .@i < .@enchant_count; .@i++) { mes "Enchant: "+ getitemname(.@enchant[.@i]); } mes "Equipment: "+ getitemname(getequipid(.@position)); mes "Cost: "+.@total_cost+" "+.shop_currency$[.@shop_index]+"."; if (select("Create enchant:Cancel") != 1) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "Farewell."; close; } // Create selected enchant clear; mes "[ " + strnpcinfo(1) + " ]^6E6E6E Done^000000"; mes "Here is your enchanted equipment!"; delequip(.@position); specialeffect2 154; if(.shop_currency$[.@shop_index] == "Zeny") { Zeny = Zeny - .@total_cost; } getitem2 .@item_id, 1, 1, .@refine, 0, (.@item[0] > 0 ? .@item[0] : 0), (.@item[1] > 0 ? .@item[1] : 0), (.@item[2] > 0 ? .@item[2] : 0), (.@item[3] > 0 ? .@item[3] : 0); close; S_Remove: // Select equipment (EQI) mes "[ " + strnpcinfo(1) + " ]"; mes "Please select which equipment you want me to work on."; .@position = callsub(S_SelectPosition); // Check if position has equipment if(!getequipisequiped(.@position)) { clear; mes "[ " + strnpcinfo(1) + " ]"; mes "You don't have anything equipped there!"; close; } .@item_id = getequipid(.@position); //Equipped item id .@refine = getequiprefinerycnt(.@position); //Equipped refine value .@slots = getitemslots(.@item_id); setarray .@cards[0], getequipcardid(.@position,0), getequipcardid(.@position,1), getequipcardid(.@position,2), getequipcardid(.@position,3); .@cards_count = getarraysize(.@cards); .@enchant_count = getarraysize(.@enchant); // Create selected item clear; mes "[ " + strnpcinfo(1) + " ]^6E6E6E Done^000000"; mes "Here is your equipment back!"; delequip(.@position); specialeffect2 169; getitem2 .@item_id, 1, 1, .@refine, 0,0,0,0,0; for(.@i=0; .@i<.@slots; .@i++) { if(.@cards[.@i] > 0) getitem .@cards[.@i], 1; } close; S_SelectPosition: setarray .@indices[1], EQI_HEAD_TOP, EQI_HEAD_MID, EQI_HEAD_LOW, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R; setarray .@position$[1], "Top", "Mid", "Low", "Armor", "Left Hand", "Right Hand", "Garment", "Shoes", "Accessory L", "Accessory R"; setarray .@option[1], 1, 1, 1, 1, 1, 1, 1, 1, 1, 1; // 1=allow, 0=deny for(.@i=1; .@i<getarraysize(.@indices); .@i++) { if(.@option[.@i] && getequipisequiped(.@indices[.@i])) { .@menu$ = .@menu$ + .@position$[.@i] + "-[" + getequipname(.@indices[.@i]) + "]"; } .@menu$ = .@menu$ + ":"; } .@part = .@indices[select(.@menu$)]; return .@part; }
    2 points
  6. I have so many people asking how in my Discord PMs, so I'm writing this so I could copy-paste the link... This will be a step-by-step guide. But please use the Forum's search bar or Google search in case you are not familiar with some terms or programs. Client Part [2015-10-01aRagexeRE to 2017-06-14aRagexeRE] 1. There's a patch in NEMO that can disable Summoner, use it. Client Part [2017-06-21RagexeRE or later] 1. Use GRF Editor to open your GRF, search for ExternalSettings. One or more files will appear. If nothing shows up, grab one from data.grf. 2. If your use a Sakray(RagexeRE) client, click externalsettings_XX_sak.lub. Otherwise click externalsettings_XX.lub. XX will be the shorthand of the country name which is associated to your langtype. After that, click the Save As button to save the decompiled Lua file. 3. Open the file with any text editor that does not have Notepad in its name. ? 4. You'll see a lot of things you can customize. Let's ignore those. Find the line with this code MakeableRace = { Doram = true } 5. What's next? Let's change the value to false. 6. Save the file and put the edited Lua file back into your GRF. Make sure the file extension is lub not lua. 7. Now we're done with the client editing. Let's also configure the server just in case a smartass use WPE or edit the Lua file back. Server Part 1. Open conf/char_athena.conf in your server files. 2. Find this part // Restrict certain class from being created. (Only functional on 20151001aRagexe or later) // 0: No character creation is allowed // 1: Only novice is allowed to be created (pre-renewal default) // 2: Only summoner is allowed to be created // 3: Both novice and summoner can be created (renewal default) // Uncomment to customize the restriction //allowed_job_flag: 3 3. Uncomment the last line. (Yes, remove the slashes) 4. Change the value to 1. 5. Save the file. We're done now. 6. Oh, and don't forget to restart your server if it was running. PS. Don't PM me to get support, those PMs will be ignored.
    1 point
  7. 1 point
  8. Hi, you can find many sample files in folder npc/re/merchants/enchant_**.txt This is my script that give 3 random enchants in 1 roll. prontera,156,186,4 script stest 857,{ .@part = EQI_ARMOR; .@item_to_test = 2302; // Cotton Shirt [1] if (!countitem(.@item_to_test)) { specialeffect2 EF_STEAL; getitem2 .@item_to_test,1,1,7,0,4003,0,0,0; message strcharinfo(0),"You got a Cotton Shirt to test."; end; } if (!getequipisequiped(.@part)) { message strcharinfo(0), "Make sure you're wearing the equipment first."; end; } // Enchant stones setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2 setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1 setarray .@enchant_slot3[0],4764,4799,4766,4788; //Critical5,HP500,Atk2,Mdef6 // Random .@enchant_1 = .@enchant_slot1[rand(getarraysize(.@enchant_slot1))]; .@enchant_2 = .@enchant_slot2[rand(getarraysize(.@enchant_slot2))]; .@enchant_3 = .@enchant_slot3[rand(getarraysize(.@enchant_slot3))]; // Get current refine to keep refine .@equip_refine = getequiprefinerycnt(.@part); // Get current card to keep card setarray .@equip_card[0], getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3); // Delete item delitem .@item_to_test,1; // Cotton Shirt [1] // Can break armor? if (rand(100) < 50) { specialeffect2 EF_SUI_EXPLOSION; message strcharinfo(0),"Oh Shit!"; end; } else { // Effect specialeffect2 EF_REPAIRWEAPON; emotion ET_BEST; // Get a new item getitem2 .@item_to_test,1,1,.@equip_refine,0,.@equip_card[0],.@enchant_1,.@enchant_2,.@enchant_3; message strcharinfo(0),"Yay!"; } end; } It took me about 15 minutes..., hope it helps you ?
    1 point
  9. Hello folks ? Still around making graphics. No much time to make a fancy presentation ... you know me; I know you so ... Here is a Prontera renewal map. Whats new? well I did it in 3 days. Right only 3 days. With a method that combines a bit of coding, a scup of 3D... hexing and a pinch of photography (psst I work as photographer IRL ? ) ... so I can melt all of that and make themed prontera maps very fast. Very fast. I tried my luck updating the very old valentines prontera with a renewal look. Some melted cocoa, bars of chocolate on floor, powdered chocolate on roofs and topping... Who can't love topping? The screenshots below. Happy Valentines; love you all
    1 point
  10. *openmail({<char_id>}); This will open a character's Mail window on the client connected to the invoking character. mes "Close this window to open your mail inbox."; close2; openmail; end;
    1 point
×
×
  • Create New...