sader1992

Content Moderator
  • Content Count

    1,235
  • Avg. Content Per Day

    1
  • Joined

  • Last visited

  • Days Won

    48

Everything posted by sader1992

  1. my bad sorry , i misread getequipname to getitemname Dx
  2. try setarray [email protected]$,"Accessory Left","Accessory Right","shoes","Garment","Lower","Middle","Upper","Armor","Left hand","Right hand"; set [email protected]$, ""; for([email protected] = 0; [email protected] <getarraysize([email protected]$); [email protected]++) { if(getequipisequiped([email protected])) { set [email protected]$, [email protected]$ + [email protected]$[[email protected]] + " - " + "[" + getequipname([email protected]) + "]"; [email protected] = 1; } set [email protected]$, [email protected]$ + ":"; }
  3. if you want to use a technique like that , you need to use the real order EQI_COMPOUND_ON (-1) - Item slot that calls this script (In context of item script) EQI_ACC_L (0) - Accessory 1 EQI_ACC_R (1) - Accessory 2 EQI_SHOES (2) - Footgear (shoes, boots) EQI_GARMENT (3) - Garment (mufflers, hoods, manteaux) EQI_HEAD_LOW (4) - Lower Headgear (beards, some masks) EQI_HEAD_MID (5) - Middle Headgear (masks, glasses) EQI_HEAD_TOP (6) - Upper Headgear EQI_ARMOR (7) - Armor (jackets, robes) EQI_HAND_L (8) - Left hand (weapons, shields) EQI_HAND_R (9) - Right hand (weapons) EQI_COSTUME_HEAD_TOP (10) - Upper Costume Headgear EQI_COSTUME_HEAD_MID (11) - Middle Costume Headgear EQI_COSTUME_HEAD_LOW (12) - Lower Costume Headgear EQI_COSTUME_GARMENT (13) - Costume Garment EQI_AMMO (14) - Arrow/Ammunition EQI_SHADOW_ARMOR (15) - Shadow Armor EQI_SHADOW_WEAPON (16) - Shadow Weapon EQI_SHADOW_SHIELD (17) - Shadow Shield EQI_SHADOW_SHOES (18) - Shadow Shoes EQI_SHADOW_ACC_R (19) - Shadow Accessory 2 EQI_SHADOW_ACC_L (20) - Shadow Accessory 1 you are not given us the real script you are using in the first place obviously getequipname([email protected]) wont give the item name as in your photo! sorry , i misread getequipname to getitemname your script's problem is the left accessory the loop start with 1 and the left acc is 0 https://github.com/rathena/rathena/blob/master/doc/script_commands.txt
  4. --------------------------------------- *makepet <pet id>; This command will create a pet egg and put it in the invoking character's inventory. The kind of pet is specified by pet ID numbers listed in 'db/(pre-)re/pet_db.yml'. The egg is created exactly as if the character just successfully caught a pet in the normal way. // This will make you a poring: makepet 1002; Notice that you absolutely have to create pet eggs with this command. If you try to give a pet egg with 'getitem', pet data will not be created by the char server and the egg will disappear when anyone tries to hatch it. --------------------------------------- --------------------------------------- =================== | 8. Pet Commands | =================== @makeegg <egg ID> Creates a Pet Egg based on the given ID. ---------------------------------------
  5. 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
  6. Version 1.0.0

    42 downloads

    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.

    Free

  7. this src mode only allow the player to redeem the reward , it does not auto redeem for the player , the player must redeem the reward hem self the script you use will allow the first account with the gepard id given to redeem the reward , and if he didn't redeem it with that account , he can't redeem it with another account , he only can redeem it with that account (the first account he login with in the day) i will soon create a function for gepard as planed , if you don't want to wait for god knows how long , the key is this , if the player did redeem the reward , the variable #AttendanceDate would be the date of that day
  8. conf/import/char_conf.txt login_ip: 127.0.0.1 char_ip: vps_ip conf/import/map_conf.txt char_ip: 127.0.0.1 map_ip: vps_ip
  9. try this i used rAthena refiner as a base , as you didn't provide any npc prontera,0,0,0 script refiner 444,{ [email protected]_name$ = "refiner"; setarray [email protected][1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW; for([email protected] = 1; [email protected]<getarraysize([email protected]); [email protected]) { if(getequipisequiped([email protected][[email protected]])) { [email protected]$ = [email protected]$ + F_getpositionname([email protected][[email protected]]) + "-[" + getequipname([email protected][[email protected]]) + "]"; [email protected] = 1; } [email protected]$ = [email protected]$ + ":"; } if ([email protected] == 0) { mes "["+ [email protected]_name$ +"]"; mes "I don't think I can refine any items you have..."; close; } [email protected] = [email protected][select([email protected]$)]; if(!getequipisequiped([email protected])) { //custom check mes "["+ [email protected]_name$ +"]"; mes "You're not wearing"; mes "anything there that"; mes "I can refine."; emotion ET_FRET; close; } //Check if the item is refinable... if(!getequipisenableref([email protected])) { mes "["+ [email protected]_name$ +"]"; mes "I don't think I can"; mes "refine this item at all..."; close; } //Check to see if the items is already +10 if(getequiprefinerycnt([email protected]) >= 10) { mes "["+ [email protected]_name$ +"]"; mes "I can't refine this"; mes "any more. This is as"; mes "refined as it gets!"; close; } [email protected] = getequipid([email protected]); // save id of the item [email protected] = getequiprefinerycnt([email protected]); //save refinery count setarray [email protected][0], getequipcardid([email protected],0), getequipcardid([email protected],1), getequipcardid([email protected],2), getequipcardid([email protected],3); [email protected] = getequiprefinecost([email protected], REFINE_COST_NORMAL, REFINE_ZENY_COST); [email protected] = getequiprefinecost([email protected], REFINE_COST_NORMAL, REFINE_MATERIAL_ID); //editing here [email protected] = getequiprefinerycnt([email protected]) +1; if(inarray(.allowed_items,[email protected]) == -1){ mes "sorry, i can't refine " + getitemname([email protected]); end; } switch (getequipweaponlv([email protected])) { case 1: [email protected] = 7; break; case 2: [email protected] = 6; break; case 3: [email protected] = 5; break; case 4: default: [email protected] = 4; break; } mes "["+ [email protected]_name$ +"]"; mes "To refine this I need"; mes [email protected] + " ^003366"+getitemname([email protected])+"^000000 and"; mes "a service fee of " + [email protected] + " Zeny."; mes "Do you really wish to continue?"; next; if(select("Yes:No") == 2){ mes "["+ [email protected]_name$ +"]"; mes "Yeah..."; mes "There's no need to"; mes "rush. Take your time."; close; } if(getequippercentrefinery([email protected]) < 100) { mes "["+ [email protected]_name$ +"]"; mes "Oh no! If I continue to"; mes "refine this, there's a risk it could"; switch([email protected]) { case 985: mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000."; break; default: mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,"; mes "or any added special properties."; break; } next; mes "["+ [email protected]_name$ +"]"; mes "I can't make it any clearer."; mes "Once a weapon is destroyed,"; mes "there's no getting it back."; mes "You really have a chance to"; mes "^FF0000lose this weapon^000000 forever."; mes "Do you still want to refine?"; next; if(select("Yes:No") == 2){ mes "["+ [email protected]_name$ +"]"; mes "I completely agree..."; mes "I might be a great refiner, but sometimes even I make mistakes."; close; } } if((countitem([email protected]) < [email protected]) || (Zeny < [email protected])) { mes "["+ [email protected]_name$ +"]"; mes "You don't seem to have"; mes "enough Zeny or "+getitemname([email protected])+"..."; mes "Go get some more. I'll be"; mes "here all day if you need me."; close; } Zeny = [email protected]rice; delitem [email protected],[email protected]; // anti-hack if (callfunc("F_IsEquipIDHack", [email protected], [email protected]) || callfunc("F_IsEquipCardHack", [email protected], [email protected][0], [email protected][1], [email protected][2], [email protected][3]) || callfunc("F_IsEquipRefineHack", [email protected], [email protected])) { mes "["+ [email protected]_name$ +"]"; emotion ET_FRET; mes "Wait a second..."; mes "Do you think I'm stupid?!"; mes "You switched the item while I wasn't looking! Get out of here!"; close; } if(getequippercentrefinery([email protected]) <= rand(100)) { failedrefitem [email protected]; mes "["+ [email protected]_name$ +"]"; emotion (!rand(5))?ET_MONEY:ET_HUK; [email protected] = rand(1,3); if ([email protected] == 1) { mes "OH! MY GOD!"; mes "Damn it! Not again!"; mes "I'm terribly sorry, but you know practice does make perfect."; mes "Um, right? Heh heh..."; } else if([email protected] == 2) { mes "Nooooooo!"; mes "It broke!"; mes "I-I'm sorry!"; } else { mes "Crap!"; mes "It couldn't take"; mes "much more tempering!"; mes "Sorry about this..."; } close; } mes "["+getarg(0)+"]"; successrefitem [email protected]; emotion ET_SMILE; [email protected] = rand(1,3); if ([email protected] == 1) { mes "Perfect!"; mes "Heh heh!"; mes "Once again,"; mes "flawless work"; mes "from the master~"; } else if([email protected] == 2) { mes "Success...!"; mes "Yet again, my amazing"; mes "talent truly dazzles"; mes "and shines today."; } else { mes "Heh heh!"; mes "I'm all done."; mes "No doubt, my work is"; mes "to your satisfaction."; mes "Sheer, utter perfection~"; } close; OnInit: serattay .allowed_items,1201, 1202, 1203; end; }
  10. in my opinion , "ragnarok hosting services" is a scam (OFC IT'S ONLY MY OPINION) why don't you try to buy a normal vps with the system/ip/protection/specs you want and install rAthena in it using https://github.com/rathena/rathena/wiki ? it would take some work , but again (in my opinion) if you can't setup a server from 0 , don't open one , or look for a partner that can do it in the future you will find bugs/problems in the server , you can't fix it if you don't know the basic just use google and search for a vps with low ping , low price ,1gig ram or more if you want , 10gig storage or more if you want , 1core or more if you want i would suggest Debian 9 2gig ram 2core
  11. i think you already got the answer in discord, however this is the answer if someone wanted it getpartymember getcharid(1),0,[email protected]$[0]; getpartymember getcharid(1),1,[email protected][0]; getpartymember getcharid(1),2,[email protected][0]; for([email protected]=0;[email protected]<getarraysize([email protected]$[0]);[email protected]++){ if(isloggedin([email protected][[email protected]],[email protected][[email protected]])){ if([email protected] = checkvending([email protected]$[[email protected]])){ if ([email protected]&1) mes [email protected]$[[email protected]] + " is currently vending!"; if ([email protected]&4) mes [email protected]$[[email protected]] + " has a buying store!"; if ([email protected]&2) mes [email protected]$[[email protected]] + " is autotrading!"; [email protected]_vinding = true; } } } if([email protected]_vinding) end;
  12. if it work , than it's safe maybe they did change the functions in the iteminfo in 2019 clients , i didn't look up the info about 2019 yet
  13. as the topic owner removed his post and the files are not available anymore i am sorry to close this topic i think he did more than enough to resolve any issue happened with the files to the users , so if you still have some issue and you don't want to search for another guide , i suggest looking inside the topic and you will find a solve for it if you are looking for a new guide , you can check rAthena wiki if you had any issue , i suggest you try to use rAthena Search feel free to post any issue you have in one of our support sections
  14. and how you get that in pve maps ?
  15. ClassNum = 1882 https://github.com/rathena/rathena/wiki/Custom-Items
  16. try if(compare(strcharinfo(3),"@")){ //inside a map that contain '@' in it's name, normally that's mean instance map!. }
  17. - script GlobalMvP::GlobalMvP -1,{ OnNPCKillEvent: if(inarray(getd(".MVP_" + strcharinfo(3)),killedrid) != -1){ query_sql "SELECT `name` FROM `mvp` WHERE `char_id`="+getcharid(0)+"",[email protected]$; if ( [email protected]$ == "" ) { query_sql "INSERT INTO `mvp` (`char_id`,`name`,`kills`,`points`) VALUES (" + getcharid(0) + ",'" + escape_sql(strcharinfo(0)) + "',1,1)"; end; } query_sql "UPDATE `mvp` SET `kills` = (`kills` + 1), `points` = (`points` +1) WHERE `char_id`=" + getcharid(0); } end; function AddMvP { for([email protected]=1;[email protected]<getargcount();[email protected]++){ setd ".MVP_" + getarg(0) + "[" + [email protected] + "]",getarg([email protected]); } return; } OnInit: query_sql("CREATE TABLE IF NOT EXISTS `mvp` (`char_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '0', `kills` int(11) unsigned NOT NULL DEFAULT '0',`points` int(11) unsigned NOT NULL DEFAULT '0', `level` int(11) unsigned NOT NULL DEFAULT '0', KEY `char_id` (`char_id`), KEY `kills` (`kills`), KEY `points` (`level`), KEY `level` (`level`)) ENGINE=MyISAM"); freeloop(1); //AddMvP(<"MAP_NAME">,<MVP ID>{,<MVP ID>}); //you can add as much as you want mvp ids AddMvP("prontera",1002); AddMvP("payon",1002,1003,1004); AddMvP("geffen",1546); freeloop(0); end; }
  18. btw , this will only work on monsters without label something like Lord of Death or biolab 3(with their normal spawn), you need to edit the main script to work , you need to find the npc that have it's label , add your codes to that label too
  19. - script GlobalMvP::GlobalMvP -1,{ OnNPCKillEvent: if(inarray(.AllowedMaps$,strcharinfo(3)) != -1 && inarray(.MVP_IDS,killedrid) != -1){ query_sql "SELECT `name` FROM `mvp` WHERE `char_id`="+getcharid(0)+"",[email protected]me$; if ( [email protected]$ == "" ) { query_sql "INSERT INTO `mvp` (`char_id`,`name`,`kills`,`points`) VALUES (" + getcharid(0) + ",'" + escape_sql(strcharinfo(0)) + "',1,1)"; end; } query_sql "UPDATE `mvp` SET `kills` = (`kills` + 1), `points` = (`points` +1) WHERE `char_id`=" + getcharid(0); } end; OnInit: query_sql("CREATE TABLE IF NOT EXISTS `mvp` (`char_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL DEFAULT '0', `kills` int(11) unsigned NOT NULL DEFAULT '0',`points` int(11) unsigned NOT NULL DEFAULT '0', `level` int(11) unsigned NOT NULL DEFAULT '0', KEY `char_id` (`char_id`), KEY `kills` (`kills`), KEY `points` (`level`), KEY `level` (`level`)) ENGINE=MyISAM"); setarray .AllowedMaps$,"prontera","map_name";//put the names of the allowed maps. setarray .MVP_IDS, 1511,// Amon Ra 1647,// B_EREMES 1785,// Atroce 1630,// BACSOJIN_ 1039,// Baphomet 1874,// BEELZEBUB_ 1272,// Dark Lord 1719,// Detale 1046,// Doppelganger 1389,// Dracula 1112,// Drake 1115,// Eddga 1957,// Entweihen 1418,// Evil Snake Lord 1871,// FALLINGBISHOP 1252,// Garm 1768,// GLOOMUNDERNIGHT 1086,// Golden Bug 1802,// G_MAGALETA 1649,// High Priest Magaleta 1651,// High Wizard Katryne 1832,// Ifrit 1492,// Incantation Samurai 1734,// Kiel_ 1251,// Stormy Knight 1779,// Ktullanux 1688,// Lady Tanee 1640,// G_SEYREN 1646,// Lord Knight Seyren 1373,// Lord of Death 1147,// Maya 1059,// Mistress 1150,// Moonlight flower 1956,// Naght Seiger 1087,// Orc Hero 1190,// Orc Lord 1038,// Osiris 1157,// Pharaoh 1159,// Phreeoni 1502,// Poripori 1623,// RSX 1650,// Sniper Cecil// Sniper Shecil 1583,// Tao Gunka 1708,// Thanatos 1312,// Turtle General 1765,// Valkyrie 1751,// Valkyrie rangdris 1685,// Vesper 1648,// Whitesmith Howard 1917,// Satan Morroc 1658,// Egnigem Cenia 1885,// Zmey Gorynych 1990,// Hard Rock Mamooth 1991;// Tendrillion end; } Also i don't see why the use of sql i think there is already ready-to-use mvp rank scripts if you use the search , it would be better than building your own.
  20. create an achievement , and add the title to it as a reward use "achievementcomplete(<achievement id>{,<char id>})" now the player have the title
  21. try the mapflag 'pvp_nocalcrank' will disable calculation of PvP rankings.
  22. --------------------------------------- *getitembound <item id>,<amount>,<bound type>{,<account ID>}; *getitembound "<item name>",<amount>,<bound type>{,<account ID>}; This command behaves identically to 'getitem', but the items created will be bound to the target character as specified by the bound type. All items created in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in some cases cannot be traded or stored. Valid bound types are: Bound_Account : Account Bound item Bound_Guild : Guild Bound item Bound_Party : Party Bound item Bound_Char : Character Bound item ---------------------------------------
  23. izlude,144,121,3 script JohnDoe NPC::JohnDoe 1_M_MERCHANT,{ mes "[JohnDoe]"; mes "Do you need some Novice Potions?"; switch(select("Yes, please.:I don't need them for now, thank you.")){ clear; case 1: [email protected]$ = "" + gettime(DT_YYYYMMDD); if(#JOHNDOE_DAILY$ == [email protected]$){ mes "you already got the Novice Potions for today"; mes "try again in the next day"; end; } mes "Here, take these."; getitem 569,250; #JOHNDOE_DAILY$ = [email protected]$; mes "Good luck!."; end; case 2: mes "Okay, good luck!"; end; } }
  24. it's better you do it in the src , script base wont be as efficient. if you want , i can move the topic to the Source Support Section.