Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/27/19 in all areas

  1. Need the latest kRO Install folder for your private server? Look no further! ----> Download <---- Latest: 2023-04-04 Installation: Official kRO Updated: 04/04/2023 Download Link: https://mega.nz/folder/jUsDgRxQ#ttLmLjPY9p9cfU5_ShWVCw Package contains RSU RO Patcher Lite for kRO and kRO RE by [Ai4rei] This package is maintained by [Akkarin] Note: Due to continued abuse of my webservers, the files have been moved to MEGA. You can download an extractable .zip of an installed kRO directory, or you can download the official installer from kRO's website. Note: If you require older maps that are compatible with 2021 and older clients, download the 2021 .zip. A fan of this topic? Hit the rep button
    1 point
  2. Hello there, Some of you might know this already and maybe have read the original guide for it. But for those who doesn't know it yet, see below. Note: I’m sharing the steps on how to do it using CentOS7 for the proxy server/VM while the main server/VM will be anything you like as long as rAthena supports it. Before everything else, I would like you to know that this guide will only work on CentOS7 and this doesn’t guarantee that it will provide low latency to your players since its main function is to HIDE the IP of your MAIN VPS to avoid being bombarded with unwanted traffic. In the event, you received lots of traffic on your proxy, you can just reject it on your main VPS via firewall rules/iptables. Requirements Spare VPS to configure the proxy Patch your client using updated "Enable Proxy Support" patch provided by 4144's NEMO & Functor DO NOT patch "Skip Service Select" since you need it to choose from the multiple connections. Add multiple connection on your clientinfo.xml/sclientinfo.xml Configure subnet_athena.conf to prevent sending real IP in network packets from login and char servers. (Functor) (Optional) Enable "Cancel to Select Service" Patch VPS Configuration (IMPORTANT) Note: Again, make sure that your VPS is using CentOS7 since this was tested under the said OS and working 100% Follow the commands provided below. /* Port Forwarding CentOS 7 FirewallD */ // ======================================================================== // Please read the comments per line it is self-explanatory. // Important Parameters: // INSERT_ZONE = output of the get default zone // INSERT_IP = is the public IP of your main VPS or server // If you like the guide give it a thumbs up! // ======================================================================== // This command is to get the default zone being used by your VM. firewall-cmd --get-default-zone // This command is to check all rules applied to your VM by the current active zone. firewall-cmd --zone=INSERT_ZONE --list-all // Enabling Masquerade Status (IP Forwarding). // This is the important configuration else below won't work firewall-cmd --zone=INSERT_ZONE --add-masquerade --permanent // IP/Traffic forwarding // Make sure you have configured masquerade firewall-cmd --zone="INSERT_ZONE" --add-forward-port=port=6900:proto=tcp:toport=6900:toaddr=INSERT_IP --permanent firewall-cmd --zone="INSERT_ZONE" --add-forward-port=port=6121:proto=tcp:toport=6121:toaddr=INSERT_IP --permanent firewall-cmd --zone="INSERT_ZONE" --add-forward-port=port=5121:proto=tcp:toport=5121:toaddr=INSERT_IP --permanent // Add rules for ro-ports (assuming that you didn't change the port) firewall-cmd --zone=INSERT_ZONE --add-port=6900/tcp --permanent firewall-cmd --zone=INSERT_ZONE --add-port=6121/tcp --permanent firewall-cmd --zone=INSERT_ZONE --add-port=5121/tcp --permanent // Reload rules to take effect firewall-cmd --reload clientinfo.xml/sclientinfo.xml Configuration (IMPORTANT) The example below shows how to configure multiple connections/tunnel to your VPS. (P.S. I'm not quite sure how many connection is the limit that can be defined on the xml) <?xml version="1.0" encoding="euc-kr" ?> <clientinfo> <desc>Ragnarok Online Client Information</desc> <servicetype>america</servicetype> <servertype>primary</servertype> <connection> <display>^FF0000[ SE Asia ]^000000 - Connection Tunnel</display> <balloon>This server is dedicated to SEA Region to possibly reduce latency.</balloon> <address>INSERT_IP_HERE</address> <port>6900</port> <version>46</version> <langtype>1</langtype> <registrationweb>https://rathena.org/board</registrationweb> <loading> <image>loading00.jpg</image> <image>loading01.jpg</image> </loading> <yellow> <admin>2000000</admin> </yellow> </connection> <connection> <display>^FF0000[ US Central ]^000000 - Connection Tunnel</display> <balloon>This server is dedicated to US Central Region to possibly reduce latency.</balloon> <address>INSERT_IP_HERE</address> <port>6900</port> <version>46</version> <langtype>1</langtype> <registrationweb>https://rathena.org/board</registrationweb> <loading> <image>loading00.jpg</image> <image>loading01.jpg</image> </loading> <yellow> <admin>2000000</admin> </yellow> </connection> <connection> <display>^FF0000[ US West ]^000000 - Connection Tunnel</display> <balloon>This server is dedicated to US West Region to possibly reduce latency.</balloon> <address>INSERT_IP_HERE</address> <port>6900</port> <version>46</version> <langtype>1</langtype> <registrationweb>https://rathena.org/board</registrationweb> <loading> <image>loading00.jpg</image> <image>loading01.jpg</image> </loading> <yellow> <admin>2000000</admin> </yellow> </connection> </clientinfo> subnet_athena.conf (IMPORTANT) Change the default value (shown below) subnet: 255.0.0.0:127.0.0.1:127.0.0.1 TO subnet: 0.0.0.0:127.0.0.1:127.0.0.1 As per Functor, "If you will just apply the patch of EXE - game client will not use these IPs from network packets. But players will be able to find real IP by using any network sniffer.". That's it. If you have question, drop by a comment. ROK On! Original Links: Ragnarok Proxy Setup (Hide your VPS IP) Other: Setting up 2020 rAthena Server | Setting up 2020 Client - rAthena based
    1 point
  3. Hello friends, I always see members posting wonderful materials and I have already bought some too and today I would like to leave one of my most exclusive materials. I'm not a professional, but I worked with design all my life, I'm a professional photographer so Photoshop was always my friend. Today I want to show you my Launcher Custom project, I call it ExtremeX. What is it and what is it for? The Launcher replaces the old ragnarok default Login screen, giving a better look like the new MMORPG It also has an external video system, where you can remove and change the background video when you want For your convenience the design of it you choose 100%, we already have several clients and soon below I will leave the ones that I already did. - INTEGRATED THOR UPDATE - CUSTOM DESIGN - INTEGRATED VIDEO - SAVE USER - STOP ANIMATION - MINIMIZER (IT IS MINIMIZED WHILE THE GAME IS ACTIVE, AFTER THE CLOSE OF HEXED THE LAUNCHER RETURNS) This launcher does not interfere with SHIELD or GEPARD because it is an external application via sso packet. the integrated updater is the "thor patcher" HEXEDS PERMITTED: 2013+ that accept SSO LOGIN PACKET in diff VIDEO PRESENTATION: other options such as "BECOME VIP, REGISTER ACCOUNT, CREATE ACCOUNT AND VOTE" are also easily added to the customer's taste. Good, this is it! Thank you for viewing my portfolio.
    1 point
  4. - script respawnMvp -1,{ OnInit: setarray .mob_id[0],1857,1002,1031,1113,1613,1836; .monster = .mob_id[rand(getarraysize(.mob_id))]; monster "prontera",154,172,"--en--", .monster, 1, "respawnMvp::OnKill"; announce "MVP "+getmonsterinfo(.monster, 0)+" has spawned!",0; end; OnKill: announce getmonsterinfo(.monster, 0)+ " was killed by "+strcharinfo(0)+".",0; .monster = .mob_id[rand(getarraysize(.mob_id))]; monster "prontera",154,172,"--en--", .monster, 1, "respawnMvp::OnKill"; announce "MVP "+getmonsterinfo(.monster, 0)+" has spawned!",0; end; }
    1 point
  5. Version 1

    1873 downloads

    Town of Beginnings from SAOI'm releasing this map that I made a while ago for a SAO-RAG project that has been put on hold, and i felt like it's too good of a map to put it on a shelf ;]Hope you guys enjoy the release. ;] Some files inside include the color changes on some texture files, so keep that in mind, and delete them if you want.
    Free
    1 point
  6. Version 1.0

    3754 downloads

    Hi all, This is a basic damage font alternative which can be used to bring a little more high definition resolution to Ragnarok! I made this purely because I was tired of staring at the hideously stretched and over-pixelated damage numbers while I was doing some testing. Feel free to give it a try! There is a slightly wider spacing between digits that I wasn't able to close off because the client must determine spacing/positionings between, but if you want to reduce some of the spacing I have provided another .act file suffixed "_larger" which reduces the spacing but makes the damage text a bit larger. Thanks
    Free
    1 point
  7. Actually there is but it needs Temporal Crystal (ID: 6607) // Merchant //============================================================ glast_01,210,273,5 script Hugin's Buttler 69,{ disable_items; if (MaxWeight - Weight < 1000) { mes "Your bag is too heavy. Reduce some weight and come back."; close; } mes "[Hugin's Buttler]"; mes "Bring Temporal Crystal items for various Temporal boots items. Pick something you want."; next; switch (select("Cancel","Buy Temporal Boots (Need 1 Temporal Crystal)","Upgrade Temporal Boots (Need 5 Temporal Crystals)")) { case 1: mes "[Hugin's Buttler]"; mes "Come back whenever you want."; close; case 2: if (countitem(6607) > 0) { mes "[Hugin's Buttler]"; mes "Take these Temporal Boots. We can upgrade your Temporal Boots with 5 Temporal Crystals."; delitem 6607,1; //Temporal_Crystal getitem 2499,1; //Temporal_Boots close; } mes "[Hugin's Buttler]"; mes "You need more Temporal Crystals. Come back when you get some more Temporal Crystals during your travel through Old Glast Heim."; close; case 3: set .@part,EQI_SHOES; if (!getequipisequiped(.@part)) { mes "[Hugin's Buttler]"; mes "Only the item you are wearing can be upgraded."; mes "Wear the ^0000FFTemporal Boots^000000 you want to upgrade, and then talk to me once again."; close; } if (isequipped(2499)) { if (countitem(6607) > 4) { mes "[Hugin's Buttler]"; mes "You can trade ^0000FF1 Temporal Boots and 5 Temporal Crystals^000000 for 1 of the following items. ^FF0000Previous refine rate will not be retained with these new ones^000000."; next; setarray .@type$[0],"Strength","Intelligence","Agility","Vitality","Dexterity","Lucky"; setarray .@equip_type[0],22000,22001,22002,22003,22004,22005; set .@select,select("Cancel","Str Boots","Int Boots","Agi Boots","Vit Boots","Dex Boots","Luk Boots"); switch (.@select) { case 1: mes "[Hugin's Buttler]"; mes "Come back anytime you want."; close; case 2: case 3: case 4: case 5: case 6: case 7: mes "[Hugin's Buttler]"; mes "Are you sure about buying Temporal ^FF0000"+.@type$[.@select-2]+"^000000 Boots? There's no refunds."; next; if (select("Think again","Yes, I am sure.") == 2) { mes "[Hugin's Buttler]"; mes "The boots have been upgraded as you want."; delequip .@part; delitem 6607,5; //Temporal_Crystal getitem .@equip_type[.@select-2],1; //Temporal_Str_Boots,Temporal_Int_Boots,Temporal_Agi_Boots,Temporal_Vit_Boots,Temporal_Dex_Boots,Temporal_Luk_Boots close; } mes "[Hugin's Buttler]"; mes "Ok, come back again when you are sure."; close; } } mes "[Hugin's Buttler]"; mes "Not enough Temporal Crystals. You need 5 Temporal Crystals to upgrade your item."; close; } mes "[Hugin's Buttler]"; mes "You are not wearing the Temporal Boots. Talk to me once you're wearing them."; close; } } // Enchant and Socket NPC //============================================================ glast_01,212,273,4 script Hugin's Magic Master 66,{ disable_items; if (MaxWeight - Weight < 1000) { mes "Your bag is too heavy. Reduce some weight and come back."; close; } mes "[Hugin's Magic Master]"; mes "So you came to enchant the Temporal Boots. Be aware that Boots with sockets cannot be enchanted, and this upgrade is only possible for the boots you are wearing."; next; if (select("How does the enchanting work?","Give effect to my Temporal Boots") == 1) { mes "[Hugin's Magic Master]"; mes "You can keep obtain ^0000FFCoagulated Spell^000000 through your travel times."; next; mes "[Hugin's Magic Master]"; mes "I can enchant your Temporal Boots items depands on the amount of that item. ^0000FFNot normal type boots^000000. Only possible for those 6 expanded version boots."; next; mes "[Hugin's Magic Master]"; mes "But, once you put a socket into the item, you cannot enchant it. Make sure to remember that."; next; mes "[Hugin's Magic Master]"; mes "I don't give out effect randomly. You can pick which effect you want for the item."; next; mes "[Hugin's Magic Master]"; mes "Of course it is for 4th slot only. You can have small effect at the start, and then the effect gets stronger."; next; mes "[Hugin's Magic Master]"; mes "To get to the final option upgrade, it will require way more Coagulated Spell items. Don't forget that."; next; mes "[Hugin's Magic Master]"; mes "Once the 4th slot completes the best option, you get to have a random bonus effect to the 3rd slot. With.. certain payment~"; next; mes "[Hugin's Magic Master]"; mes "Also, you don't lose the item even if the enchant fails, we also guarantee keeping card and refine rate. But we can't initialize enchanting."; next; mes "[Hugin's Magic Master]"; mes "Phew..."; mes "Anyways, that's all for basic enchant information. Now you should see for yourself."; close; } set .@part,EQI_SHOES; if (!getequipisequiped(.@part)) { mes "[Hugin's Magic Master]"; mes "Are you wearing the item?"; close; } set .@equip_id,getequipid(.@part); set .@equip_name$,getequipname(.@part); set .@card3,getequipcardid(.@part,3); setarray .@enchant1st[0],4808,4832,4814,4741,4869,4752; //Fighting_Spirit4,Expert_Archer1,Spell2,Vitality2,DelayafterAttack1Lv,Luck3 setarray .@enchant2nd[0],4820,4833,4813,4742,4872,4753; //Fighting_Spirit5,Expert_Archer2,Spell3,Vitality3,DelayafterAttack2Lv,Luck4 setarray .@enchant3rd[0],4821,4834,4812,4861,4873,4754; //Fighting_Spirit6,Expert_Archer3,Spell4,MHP1,DelayafterAttack3Lv,Luck5 setarray .@enchant4th[0],4822,4835,4826,4862,4881,4755; //Fighting_Spirit7,Expert_Archer4,Spell5,MHP2,DelayafterAttack4Lv,Luck6 setarray .@enchant_cost[0],1,4,15,30,10; switch (.@equip_id) { case 22000: //Temporal_Str_Boots case 22001: //Temporal_Int_Boots case 22002: //Temporal_Agi_Boots case 22003: //Temporal_Vit_Boots case 22004: //Temporal_Dex_Boots case 22005: //Temporal_Luk_Boots if (!.@card3) { //4th slot 1st try enchanting set .@cost,.@enchant_cost[0]; set .@number,1; mes "[Hugin's Magic Master]"; mes "Want to enchant ^0000FF"+.@equip_name$+"^000000?"; mes "For the "+.@number+"st enchanting, you need ^0000FF"+.@cost+"^000000 Coagulated Spell items."; next; set .@select,select("Quit","Fighting Spirit","Archery","Spell","Vitality","Attack Speed","Lucky"); switch (.@select) { case 1: mes "[Hugin's Magic Master]"; mes "Ok, come back when you are ready."; close; case 2: set .@enchant,.@enchant1st[.@select-2]; break; case 3: set .@enchant,.@enchant1st[.@select-2]; break; case 4: set .@enchant,.@enchant1st[.@select-2]; break; case 5: set .@enchant,.@enchant1st[.@select-2]; break; case 6: set .@enchant,.@enchant1st[.@select-2]; break; case 7: set .@enchant,.@enchant1st[.@select-2]; break; } } else { if (.@card3 == .@enchant1st[0] || .@card3 == .@enchant1st[1] || .@card3 == .@enchant1st[2] || .@card3 == .@enchant1st[3] || .@card3 == .@enchant1st[4] || .@card3 == .@enchant1st[5]) { set .@cost,.@enchant_cost[1]; set .@number,2; } else if (.@card3 == .@enchant2nd[0] || .@card3 == .@enchant2nd[1] || .@card3 == .@enchant2nd[2] || .@card3 == .@enchant2nd[3] || .@card3 == .@enchant2nd[4] || .@card3 == .@enchant2nd[5]) { set .@cost,.@enchant_cost[2]; set .@number,3; } else if (.@card3 == .@enchant3rd[0] || .@card3 == .@enchant3rd[1] || .@card3 == .@enchant3rd[2] || .@card3 == .@enchant3rd[3] || .@card3 == .@enchant3rd[4] || .@card3 == .@enchant3rd[5]) { set .@cost,.@enchant_cost[3]; set .@number,4; } else if (.@card3 == .@enchant4th[0] || .@card3 == .@enchant4th[1] || .@card3 == .@enchant4th[2] || .@card3 == .@enchant4th[3] || .@card3 == .@enchant4th[4] || .@card3 == .@enchant4th[5]) { set .@card2,getequipcardid(.@part,2); set .@cost,.@enchant_cost[4]; if (.@card2) { mes "[Hugin's Magic Master]"; //Custom text mes "Your shoes have reached the maximum option to enchant."; mes "Please bring me a new one if you want me to enchant again."; close; } //3rd slot random enchanting switch (.@card3) { case 4822: //Fighting_Spirit7 case 4835: //Expert_Archer4 case 4826: //Spell5 case 4862: //MHP2 case 4881: //DelayafterAttack4Lv case 4755: //Luck6 set .@enchant,callfunc("F_Rand",4875,4876,4877,4878,4879,4880); //Bear's_Power,Runaway_Magic,Speed_Of_Light,Muscle_Fool,Hawkeye,Lucky_Day mes "[Hugin's Magic Master]"; //Custom text mes "Seems you already completed the best upgrade option in your 4th slot."; mes "For that I can give a random bonus effect to your 3rd slot. And of course, with certain payment..."; next; mes "[Hugin's Magic Master]"; mes "Enchanting ^0000FF"+.@equip_name$+"^000000's 3rd slot for obtaining a random bonus effect. Requires ^0000FF"+.@cost+"^000000 Coagulated Spell items."; next; if (select("Quit","Effect Upgrade!") == 1) { mes "[Hugin's Magic Master]"; mes "Ok, come back when you are ready."; close; } if (countitem(6608) < .@cost) { mes "[Hugin's Magic Master]"; mes "Hmm, you are missing "+(.@cost - countitem(6608))+" Coagulated Spell items. Go get more, and then we can talk about more enchants."; close; } specialeffect2 EF_REPAIRWEAPON; set .@equip_refine,getequiprefinerycnt(.@part); delitem 6608,.@cost; //Coagulated_Spell delequip .@part; mes "[Hugin's Magic Master]"; mes "This is it! This special stone is now yours."; mes "Hahaha... I am really the only master of these things."; mes "Thank you for believing in me."; getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,.@enchant,.@card3; close; } } //4th slot 2nd try enchanting if (.@card3 == .@enchant1st[0]) set .@enchant,.@enchant2nd[0]; else if (.@card3 == .@enchant1st[1]) set .@enchant,.@enchant2nd[1]; else if (.@card3 == .@enchant1st[2]) set .@enchant,.@enchant2nd[2]; else if (.@card3 == .@enchant1st[3]) set .@enchant,.@enchant2nd[3]; else if (.@card3 == .@enchant1st[4]) set .@enchant,.@enchant2nd[4]; else if (.@card3 == .@enchant1st[5]) set .@enchant,.@enchant2nd[5]; //4th slot 3rd try enchanting if (.@card3 == .@enchant2nd[0]) set .@enchant,.@enchant3rd[0]; else if (.@card3 == .@enchant2nd[1]) set .@enchant,.@enchant3rd[1]; else if (.@card3 == .@enchant2nd[2]) set .@enchant,.@enchant3rd[2]; else if (.@card3 == .@enchant2nd[3]) set .@enchant,.@enchant3rd[3]; else if (.@card3 == .@enchant2nd[4]) set .@enchant,.@enchant3rd[4]; else if (.@card3 == .@enchant2nd[5]) set .@enchant,.@enchant3rd[5]; //4th slot 4th try enchanting if (.@card3 == .@enchant3rd[0]) set .@enchant,.@enchant4th[0]; else if (.@card3 == .@enchant3rd[1]) set .@enchant,.@enchant4th[1]; else if (.@card3 == .@enchant3rd[2]) set .@enchant,.@enchant4th[2]; else if (.@card3 == .@enchant3rd[3]) set .@enchant,.@enchant4th[3]; else if (.@card3 == .@enchant3rd[4]) set .@enchant,.@enchant4th[4]; else if (.@card3 == .@enchant3rd[5]) set .@enchant,.@enchant4th[5]; mes "[Hugin's Magic Master]"; mes "Enchanting ^0000FF"+.@equip_name$+"^000000's 4th slot as ^0000FF"+.@number+"^000000 level effect. Requires ^0000FF"+.@cost+"^000000 Coagulated Spell items."; next; if (select("Quit","Effect Upgrade!") == 1) { mes "[Hugin's Magic Master]"; mes "Ok, come back when you are ready."; close; } if (countitem(6608) < .@cost) { mes "[Hugin's Magic Master]"; mes "Hmm, you are missing "+(.@cost - countitem(6608))+" Coagulated Spell items. Go get more, and then we can talk about more enchants."; close; } } break; default: mes "[Hugin's Magic Master]"; mes "This is not the right item for this enchant."; mes "Remember, only those 6 types of Temporal Boots are available for enchanting."; close; } specialeffect2 EF_REPAIRWEAPON; set .@equip_refine,getequiprefinerycnt(.@part); delitem 6608,.@cost; //Coagulated_Spell delequip .@part; mes "[Hugin's Magic Master]"; mes "Trying for enchant number ^630000"+.@number+"^000000."; getitem2 .@equip_id,1,1,.@equip_refine,0,0,0,0,.@enchant; close; } glast_01,210,270,8 script Hugin's Craftsman 726,{ disable_items; if (MaxWeight - Weight < 1000) { mes "Your bag is too heavy. Reduce some weight and come back."; close; } mes "[Hugin's Craftsman]"; mes "That Magic Master always says that enchanting Temporal Boots is the best. But, I think quite different."; next; mes "[Hugin's Craftsman]"; mes "I think putting a slot into the item would be the best. Even with some risk of failing."; next; mes "[Hugin's Craftsman]"; mes "Bring me ^0000FF5 Temporal Crystals^000000, and I will try to put a slot into your advanced Temporal Boots. But, it's possible to ^FF0000fail and break the item^000000. Is that ok?"; next; if (select("Cancel","Take the risk and try to add a slot") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } set .@part,EQI_SHOES; if (!getequipisequiped(.@part)) { mes "[Hugin's Craftsman]"; mes "Are you sure you are wearing the item?"; close; } set .@equip_id,getequipid(.@part); switch (.@equip_id) { case 22000: //Temporal_Str_Boots case 22001: //Temporal_Int_Boots case 22002: //Temporal_Agi_Boots case 22003: //Temporal_Vit_Boots case 22004: //Temporal_Dex_Boots case 22005: //Temporal_Luk_Boots mes "[Hugin's Craftsman]"; mes "And ^FF0000all enchant or refine rates will be lost if you fail this.^000000"; mes "Still want to risk it?"; next; if (select("Cancel","I am ok with it!") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } mes "[Hugin's Craftsman]"; mes "Once again, ^FF0000That Magic Master won't enchant any item with a slot.^000000"; mes "Still want to proceed?"; next; if (select("Cancel","I understand. Try to slot it.") == 1) { mes "[Hugin's Craftsman]"; mes "Ok, come back anytime you want."; close; } if (countitem(6607) < 5) { mes "[Hugin's Craftsman]"; mes "You must bring ^0000FF5 Temporal Crystal items^000000. Nothing is free you know..."; close; } set .@random,rand(1,100); if (.@random <= 80) { //Custom rates mes "[Hugin's Craftsman]"; mes "Arrggg, we failed. Better luck next time."; specialeffect2 EF_PHARMACY_FAIL; delitem 6607,5; //Temporal_Crystal delequip .@part; close; } mes "[Hugin's Craftsman]"; //Custom text mes "Yuhuu~ we succeed. Here you are..."; mes "A slot has been added to your advanced Temporal Boots."; mes "Thank you for believing in me."; specialeffect2 EF_PHARMACY_OK; delitem 6607,5; //Temporal_Crystal delequip .@part; if (.@equip_id == 22000) { getitem 22006,1; //Temporal_Str_Boots_ } else if (.@equip_id == 22001) { getitem 22009,1; //Temporal_Int_Boots_ } else if (.@equip_id == 22002) { getitem 22010,1; //Temporal_Agi_Boots_ } else if (.@equip_id == 22003) { getitem 22007,1; //Temporal_Vit_Boots_ } else if (.@equip_id == 22004) { getitem 22008,1; //Temporal_Dex_Boots_ } else if (.@equip_id == 22005) { getitem 22011,1; //Temporal_Luk_Boots_ } close; default: mes "[Hugin's Craftsman]"; mes "This is not it! We need ^0000FFAdvanced Temporal Boots^000000 items! The item ^0000FFwith a stat effect and without a slot^000000!"; close; } }
    1 point
×
×
  • Create New...