Jump to content

SovietBR

Members
  • Posts

    20
  • Joined

  • Last visited

Profile Information

  • Gender
    Male
  • Location
    Brazil

Recent Profile Visitors

13882 profile views

SovietBR's Achievements

Santa Poring

Santa Poring (3/15)

  • Collaborator
  • Reacting Well
  • One Year In
  • One Month Later
  • Week One Done

Recent Badges

1

Reputation

  1. I don't know if still of use for you, but I was looking for this too and I find it there.
  2. For the people losting ExP when finishing the quest, you have to change the "set BaseExp xxxx" and "Set JobExp yyyy" to only "getexp xxxx, yyyy". @hershel7777 you need to create a line in the npc/scripts_custom.config with the directory of the .txt of this script, like: npc: npc/custom/quests/collection/daily_quests.txt
  3. Hey guys. Just wanna share the script that I did inspired by the Legendary Lost Sectors from Destiny 2. I'm really new at this, but I think it came out pretty nice. How does it works: The NPC will have 3 difficuties to choose from, each one with some dungeons. The mission is kindda simple, you just need to kill all the normal monsters types inside it. You can add the bosses too if you want. Reward System: The reward system is the nice part of it. After finish a dungeon, the system will randomly select a reward from six pools. The easiest one have 20% and the hardest one has 0,1%, and there's the one that gets pick in case any other has not. The difficulty of the dungeon increase the chances and how many rolls it will have, for example, an hard dungeon will roll for rewards 3 times and have 1,5% chances of getting the best items. Like I said, I'm new at coding, so if you guys have suggestions to improve this NPC, feel free to share here. Legendary Dungeon Master.txt
  4. Hello everyone! I want to share my first script here so you guys can tell what you think of it! How it works: The NPC will have a selection of random monsters, divide by a range of levels, from 1 to 9, 10 to 19 and so on. The player have to bring some itens and some zeny for the summoning, also, he has to be at the range level of the monster he wants to summon. The normal summons stay for 6 hours, and the MvPs stay for 12h. The only thing I can't undo is the monster disapearing when the player logs out. Let me know what do you guys think. ///////////////////SovietBR////////////////////// prontera,168,328,4 script Reginleif 811,{ mes "[Reginleif, the Valkyrie]"; mes "Hello!"; mes "I have the power to summon monsters that can aid you in fights."; mes "They can be a little expensive, but you can summon as much as you need."; mes "Also, you need to be at the range level of the summon."; next; mes " Normal and mini bosses monsters stay with you for 6 hours."; mes " MvP stay for 12 hours."; mes " The cacth is, if you die or disconect, they disapear. Also, they can die in battle, so be carefull."; next; // Selection menu switch(select("Buy Scrolls","1 - 9","10 - 19","20 - 29","30 - 39","40 - 49","50 - 59","60 - 69","70 - 79","80 - 89","90-99","Mini-Boss","MvP")) { case 1: mes "Do you want to buy some healing scrolls"; mes "You can use them on your summons."; mes "1000z each."; if (select("Yes, please!","No, thanks.") == 1) { // Prompt the player to enter the number of items mes "How many healing scrolls would you like to buy?"; input .@amount; // Get the number of items the player wants if (.@amount < 1) { mes "Please enter a valid amount."; close; } set .@itemCost, 1500 * .@amount; if (Zeny < .@itemCost) { mes "You do not have enough zeny."; } else { // Deduct the zeny and give the items to the player set Zeny, Zeny - .@itemCost; getitem 12002, .@amount; mes "You have purchased " + .@amount + " healing scroll(s)."; } close; } break; case 2: set .@zenyCost, 10000; // Zeny cost for summon setarray .@itemCostID[0], 673, 909, 916, 940; // Item IDs for required items setarray .@itemCostQty[0], 10, 20, 10, 940; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 2) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1002 360"; break; case 1: atcommand "@summon 1007 360"; break; case 2: atcommand "@summon 1063 360"; break; case 3: atcommand "@summon 1010 360"; break; case 4: atcommand "@summon 1051 360"; break; case 5: atcommand "@summon 1167 360"; break; case 6: atcommand "@summon 1052 360"; break; case 7: atcommand "@summon 1012 360"; break; case 8: atcommand "@summon 1004 360"; break; case 9: atcommand "@summon 1751 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 3: set .@zenyCost, 20000; // Zeny cost for summon setarray .@itemCostID[0], 603, 932, 938, 921; // Item IDs for required items setarray .@itemCostQty[0], 20, 20, 20, 10; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 10) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1076 360"; break; case 1: atcommand "@summon 1175 360"; break; case 2: atcommand "@summon 1070 360"; break; case 3: atcommand "@summon 1094 360"; break; case 4: atcommand "@summon 1024 360"; break; case 5: atcommand "@summon 1014 360"; break; case 6: atcommand "@summon 1162 360"; break; case 7: atcommand "@summon 1128 360"; break; case 8: atcommand "@summon 1077 360"; break; case 9: atcommand "@summon 1066 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 4: set .@zenyCost, 30000; // Zeny cost for summon setarray .@itemCostID[0], 673, 1019, 911, 934; // Item IDs for required items setarray .@itemCostQty[0], 30, 20, 15, 5; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 20) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1033 360"; break; case 1: atcommand "@summon 1114 360"; break; case 2: atcommand "@summon 1058 360"; break; case 3: atcommand "@summon 1784 360"; break; case 4: atcommand "@summon 1023 360"; break; case 5: atcommand "@summon 1122 360"; break; case 6: atcommand "@summon 1139 360"; break; case 7: atcommand "@summon 1106 360"; break; case 8: atcommand "@summon 1152 360"; break; case 9: atcommand "@summon 1028 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 5: set .@zenyCost, 40000; // Zeny cost for summon setarray .@itemCostID[0], 673, 901, 996, 905; // Item IDs for required items setarray .@itemCostQty[0], 40, 20, 2, 20; // Quantities of required items mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 30) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1026 360"; break; case 1: atcommand "@summon 1134 360"; break; case 2: atcommand "@summon 1188 360"; break; case 3: atcommand "@summon 1404 360"; break; case 4: atcommand "@summon 1165 360"; break; case 5: atcommand "@summon 1248 360"; break; case 6: atcommand "@summon 1045 360"; break; case 7: atcommand "@summon 1041 360"; break; case 8: atcommand "@summon 1151 360"; break; case 9: atcommand "@summon 1881 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 6: set .@zenyCost, 50000; // Zeny cost for summon setarray .@itemCostID[0], 673, 994, 912, 510; // Item IDs for required items setarray .@itemCostQty[0], 50, 3, 30, 10; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 40) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1140 360"; break; case 1: atcommand "@summon 1499 360"; break; case 2: atcommand "@summon 1776 360"; break; case 3: atcommand "@summon 1037 360"; break; case 4: atcommand "@summon 1102 360"; break; case 5: atcommand "@summon 1156 360"; break; case 6: atcommand "@summon 11383 360"; break; case 7: atcommand "@summon 1403 360"; break; case 8: atcommand "@summon 1065 360"; break; case 9: atcommand "@summon 1061 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 7: set .@zenyCost, 60000; // Zeny cost for summon setarray .@itemCostID[0], 673, 7188, 7066, 938; // Item IDs for required items setarray .@itemCostQty[0], 60, 20, 10, 50; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 50) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1493 360"; break; case 1: atcommand "@summon 1257 360"; break; case 2: atcommand "@summon 1213 360"; break; case 3: atcommand "@summon 1410 360"; break; case 4: atcommand "@summon 1584 360"; break; case 5: atcommand "@summon 1778 360"; break; case 6: atcommand "@summon 1512 360"; break; case 7: atcommand "@summon 1131 360"; break; case 8: atcommand "@summon 1652 360"; break; case 9: atcommand "@summon 1655 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 8: set .@zenyCost, 70000; // Zeny cost for summon setarray .@itemCostID[0], 673, 995, 1036, 997; // Item IDs for required items setarray .@itemCostQty[0], 70, 5, 20, 5; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 60) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1777 360"; break; case 1: atcommand "@summon 1154 360"; break; case 2: atcommand "@summon 1772 360"; break; case 3: atcommand "@summon 1314 360"; break; case 4: atcommand "@summon 1377 360"; break; case 5: atcommand "@summon 1385 360"; break; case 6: atcommand "@summon 1310 360"; break; case 7: atcommand "@summon 1382 360"; break; case 8: atcommand "@summon 1318 360"; break; case 9: atcommand "@summon 1717 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 9: set .@zenyCost, 80000; // Zeny cost for summon setarray .@itemCostID[0], 673, 967, 1045, 702; // Item IDs for required items setarray .@itemCostQty[0], 80, 20, 50, 2; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 70) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1316 360"; break; case 1: atcommand "@summon 1201 360"; break; case 2: atcommand "@summon 1319 360"; break; case 3: atcommand "@summon 1769 360"; break; case 4: atcommand "@summon 1735 360"; break; case 5: atcommand "@summon 1098 360"; break; case 6: atcommand "@summon 1837 360"; break; case 7: atcommand "@summon 1366 360"; break; case 8: atcommand "@summon 1379 360"; break; case 9: atcommand "@summon 1219 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 10: set .@zenyCost, 90000; // Zeny cost for summon setarray .@itemCostID[0], 673, 1036, 7326, 7347; // Item IDs for required items setarray .@itemCostQty[0], 90, 30, 10, 20; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 80) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,9)) { case 0: atcommand "@summon 1713 360"; break; case 1: atcommand "@summon 1867 360"; break; case 2: atcommand "@summon 1268 360"; break; case 3: atcommand "@summon 2016 360"; break; case 4: atcommand "@summon 2015 360"; break; case 5: atcommand "@summon 2021 360"; break; case 6: atcommand "@summon 1978 360"; break; case 7: atcommand "@summon 1635 360"; break; case 8: atcommand "@summon 1671 360"; break; case 9: atcommand "@summon 1286 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 11: set .@zenyCost, 100000; // Zeny cost for summon setarray .@itemCostID[0], 673, 603, 6090; // Item IDs for required items setarray .@itemCostQty[0], 100, 10, 10; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 90) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,6)) { case 0: atcommand "@summon 1637 360"; break; case 1: atcommand "@summon 1634 360"; break; case 2: atcommand "@summon 1639 360"; break; case 3: atcommand "@summon 2024 360"; break; case 4: atcommand "@summon 1989 360"; break; case 5: atcommand "@summon 1992 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 12: set .@zenyCost, 500000; // Zeny cost for summon setarray .@itemCostID[0], 673, 619, 7054, 7053, 7097, 994; // Item IDs for required items setarray .@itemCostQty[0], 100, 10, 50, 50, 50, 50;// Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 90) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,14)) { case 0: atcommand "@summon 1093 360"; break; case 1: atcommand "@summon 1120 360"; break; case 2: atcommand "@summon 1096 360"; break; case 3: atcommand "@summon 1582 360"; break; case 4: atcommand "@summon 1388 360"; break; case 5: atcommand "@summon 1302 360"; break; case 6: atcommand "@summon 1830 360"; break; case 7: atcommand "@summon 1700 360"; break; case 8: atcommand "@summon 1754 360"; break; case 9: atcommand "@summon 1833 360"; break; case 10: atcommand "@summon 1918 360"; break; case 11: atcommand "@summon 1720 360"; break; case 12: atcommand "@summon 1831 360"; break; case 13: atcommand "@summon 1709 360"; break; } mes "Your new friend has been summoned."; } } else { mes "Summoning cancelled."; } break; case 13: set .@zenyCost, 5000000; // Zeny cost for summon setarray .@itemCostID[0], 673, 714, 994, 1022, 1015, 607, 724, 995, 996, 720, 725, 7005, 523, 7563, 1020, 7327, 526, 967, 7094, 603; // Item IDs for required items setarray .@itemCostQty[0], 500, 5, 20, 50, 50, 10, 2, 20, 20, 20, 10, 50, 10, 50, 50, 10, 10, 10, 5, 10; // Quantities of required items // Display the cost to the player mes "To summon a monster, you will need:"; mes "Those stay for 12 hours."; mes "Zeny: " + .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { mes getitemname(.@itemCostID[.@i]) + ": " + .@itemCostQty[.@i]; } if(select("Yes:No") == 1) { // Check if the player has enough zeny and items if (Zeny < .@zenyCost || countitem(.@itemCostID[0]) < .@itemCostQty[0] || countitem(.@itemCostID[1]) < .@itemCostQty[1] || countitem(.@itemCostID[2]) < .@itemCostQty[2] || BaseLevel < 95) { mes "You don't have enough zeny, items, or level."; } else { // Deduct zeny and items set Zeny, Zeny - .@zenyCost; for (set .@i, 0; .@i < getarraysize(.@itemCostID); set .@i, .@i + 1) { delitem .@itemCostID[.@i], .@itemCostQty[.@i]; } // Summon the monster switch(rand(0,41)) { case 0: atcommand "@summon 1086 720"; break; case 1: atcommand "@summon 1115 720"; break; case 2: atcommand "@summon 1150 720"; break; case 3: atcommand "@summon 1159 720"; break; case 4: atcommand "@summon 1112 720"; break; case 5: atcommand "@summon 1583 720"; break; case 6: atcommand "@summon 1492 720"; break; case 7: atcommand "@summon 1046 720"; break; case 8: atcommand "@summon 1418 720"; break; case 9: atcommand "@summon 1252 720"; break; case 10: atcommand "@summon 1059 720"; break; case 11: atcommand "@summon 1190 720"; break; case 12: atcommand "@summon 1251 720"; break; case 13: atcommand "@summon 1087 720"; break; case 14: atcommand "@summon 1038 720"; break; case 15: atcommand "@summon 1658 720"; break; case 16: atcommand "@summon 1272 720"; break; case 17: atcommand "@summon 1871 720"; break; case 18: atcommand "@summon 1039 720"; break; case 19: atcommand "@summon 1147 720"; break; case 20: atcommand "@summon 1785 720"; break; case 21: atcommand "@summon 1885 720"; break; case 22: atcommand "@summon 1630 720"; break; case 23: atcommand "@summon 1389 720"; break; case 24: atcommand "@summon 1623 720"; break; case 25: atcommand "@summon 1688 720"; break; case 26: atcommand "@summon 1768 720"; break; case 27: atcommand "@summon 1734 720"; break; case 28: atcommand "@summon 1719 720"; break; case 29: atcommand "@summon 2068 720"; break; case 30: atcommand "@summon 1157 720"; break; case 31: atcommand "@summon 1373 720"; break; case 32: atcommand "@summon 1312 720"; break; case 33: atcommand "@summon 1685 720"; break; case 34: atcommand "@summon 1779 720"; break; case 35: atcommand "@summon 1751 720"; break; case 36: atcommand "@summon 1650 720"; break; case 37: atcommand "@summon 1917 720"; break; case 38: atcommand "@summon 1647 720"; break; case 39: atcommand "@summon 1832 720"; break; case 40: atcommand "@summon 1751 720"; break; } mes "You now have a demi-god by your side, make god use of him."; } } else { mes "Summoning cancelled."; } break; } close; }
  5. Hi, I'm tryng to make a NPC that can lock the max level of a player when asked so, but it's reversable. The max level o the server is 250/130, but the NPC would cap that to 99/70 if the player want. The easiest way I found was to make the player go back to 99/70 everytime he level up above that. This is the script I'm trying to work on: prontera,150,150,5 script test 714,{ mes "[Level Cap Setter]"; mes "Hello, adventurer!"; mes "Would you like to cap your base level at 99 and job level at 70?"; mes "Or, if you want to remove the cap, I can help with that too."; next; if (#BaseLevelCap == 99 && #JobLevelCap == 70) { switch(select("Uncap my levels:Cancel")) { case 1: mes "[Level Cap Setter]"; set #BaseLevelCap, 0; set #JobLevelCap, 0; mes "Your levels are now uncapped."; close; case 2: mes "[Level Cap Setter]"; mes "No problem, feel free to come back anytime!"; close; } } else { switch(select("Cap my levels:Cancel")) { case 1: mes "[Level Cap Setter]"; set #BaseLevelCap, 99; set #JobLevelCap, 70; mes "Your base level will now be capped at 99 and job level at 70."; mes "If you reach level 99/70, you will be reset to level 99/70 and lose any excess experience."; close; case 2: mes "[Level Cap Setter]"; mes "No problem, feel free to come back anytime!"; close; } } OnInit: // Initialize global variables to zero set #BaseLevelCap, 0; set #JobLevelCap, 0; end; } OnPCBaseLevelUpEvent: if (#BaseLevelCap == 99 && BaseLevel > #BaseLevelCap) { set BaseLevel, #BaseLevelCap; set BaseExp, 0; mes "[Level Cap Setter]"; mes "You have reached the base level cap. Your base level is now reset to 99."; end; } OnPCJobLevelUpEvent: if (#JobLevelCap == 70 && JobLevel > #JobLevelCap) { set JobLevel, #JobLevelCap; set JobExp, 0; mes "[Level Cap Setter]"; mes "You have reached the job level cap. Your job level is now reset to 70."; end; } And those are the errors I'm getting: I have try to change to "OnPcBaseLVUpEvent" too, but still gives the same errors. I'll be really greatfull if someone could give me a hand on this. Thanks!
  6. Hi, sorry for ressurrect this post but, can you please show me where or how I enable pet_str?
  7. I'm trying to add the Battle Manual effect to this script, but I don't know how to make it. - script 175Exp -1,{ OnNPCKillEvent: if(BaseLevel >= 99 && BaseLevel <= 120 && getmonsterinfo(killedrid, 1) >= 70) { BaseExp = BaseExp + 100 * getmonsterinfo(killedrid, 3); JobExp = JobExp + 50 * getmonsterinfo(killedrid, 4); } else if(BaseLevel >= 120 && BaseLevel <= 139 && getmonsterinfo(killedrid, 1) >= 70) { BaseExp = BaseExp + 3000 * getmonsterinfo(killedrid, 3); JobExp = JobExp + 2500 * getmonsterinfo(killedrid, 4); } else if(BaseLevel >= 140 && BaseLevel <= 159 && getmonsterinfo(killedrid, 1) >= 70) { BaseExp = BaseExp + 3000 * getmonsterinfo(killedrid, 3); JobExp = JobExp + 1500 * getmonsterinfo(killedrid, 4); } else if(BaseLevel >= 160 && BaseLevel <= 180 && getmonsterinfo(killedrid, 1) >= 70) { BaseExp = BaseExp + 40000 * getmonsterinfo(killedrid, 3); JobExp = JobExp + 6000 * getmonsterinfo(killedrid, 4); } else if(BaseLevel >= 180 && BaseLevel <= 199 && getmonsterinfo(killedrid, 1) >= 70) { BaseExp = BaseExp + 200000 * getmonsterinfo(killedrid, 3); JobExp = JobExp + 8000 * getmonsterinfo(killedrid, 4); } else if(BaseLevel >= 200 && BaseLevel <= 250 && getmonsterinfo(killedrid, 1) >= 70) { BaseExp = BaseExp + 600000 * getmonsterinfo(killedrid, 3); JobExp = JobExp + 300000 * getmonsterinfo(killedrid, 4); } end; } Like, in the fist case, if I have the SC_EXPBOOST stat active, instead of BaseExp + 100*, I would get 150, and so on. I'm pretty new at programing, so if someone could shine a light for me, I would be pretty grateful. Thanks in advance!
  8. Worked like a charm, thank you so very much! I was going insane trying to fix this alone (I'm not good at programing).
  9. Hi, can anyone help me with this, please? When I select the option I want (in this case ,130), it is blank and the dialog closes. It doesn't claim any errors or anything, it just closes the dialogue as if nothing had happened, am I missing something? Also, it's kind of random to happen, sometimes when I modify something in AddCata some quest options work and others don't. But is always on the quests beyond 99. //===== rAthena Script ======================================= //= saders hunting quest //===== By: ================================================== //= Sader1992 //https://rathena.org/board/profile/30766-sader1992/ //===== Current Version: ===================================== //= 5.2 //===== Compatible With: ===================================== //= rAthena Project //https://rathena.org/board/files/file/3579-saders-hunting-quest/ //https://github.com/sader1992/sader_scripts //===== Description: ========================================= //============================================================ //============================================================ - pointshop Hunting_Quest_Shop -1,#HUNT_Q_POINTS,512:1; //Account Based Shop //- pointshop Hunting_Quest_Shop -1,HUNT_Q_POINTS,512:1; //Character Based Shop prt_in,40,115,4 script Legendary Monster Hunter 667,{ function Ac; mes "Your Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ mes .CataName$[.@i] + ": Complete"; setd Ac() + "POINTS",getd(Ac() + "POINTS") + .CataRP[.@i]; if(.ExpServerRate){ getexp .CataBXP[.@i],.CataJXP[.@i]; }else{ getexp2 .CataBXP[.@i],.CataJXP[.@i]; } if(getd(".IRD_" + .@i)){ for(.@j=0;.@j<getarraysize(getd(".IRD_" + .@i));.@j++){ getitem(getd(".IRD_" + .@i + "[" + .@j + "]"),getd(".CRD_" + .@i + "[" + .@j + "]")); } } setd(Ac() + "CD_" + .@i,gettimetick(2) + (.CataCD[.@i] * 60 * 60)); setd(Ac() + "COM_" + .@i,false); setd(Ac() + "ID_" + .@i,0); setd(Ac() + "C_" + .@i,0); setd(Ac() + "CC_" + .@i,0); continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ mes .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i)){ mes .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } mes .CataName$[.@i] + ": None"; } .@s1 = select("Open Shop:" + implode(.CataName$,":")) -2; clear; if(.@s1 == -1){ callshop "Hunting_Quest_Shop",1; end; } .@CD = getd(Ac() + "CD_" + .@s1); if(.@CD > gettimetick(2)){ mes "you are under the cooldown effect"; mes "try again after " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); end; } if(getd(Ac() + "ID_" + .@s1)){ mes "Your Quest Progress:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); if(.AllowDeleteQuest){ mes "would you like to delete the quest?"; if(select("yes:no") == 2) end; mes "by deleting the quest you wont get any reward"; if(.ApplyCoolDownOnDelete) mes "and the cooldown will be applied!"; mes "Are you sure!?"; if(select("yes:no") == 2) end; clear; if(.ApplyCoolDownOnDelete){ setd(Ac() + "CD_" + .@s1,gettimetick(2) + (.CataCD[.@s1] * 60 * 60)); } setd(Ac() + "ID_" + .@s1,0); setd(Ac() + "C_" + .@s1,0); setd(Ac() + "CC_" + .@s1,0); mes "your quest has been deleted!"; end; } end; } if(BaseLevel < .CataMN_L[.@s1] || BaseLevel > .CataMX_L[.@s1]){ mes "you need to be between level " + .CataMN_L[.@s1] + " And " + .CataMX_L[.@s1] + " to get this quest!"; end; } mes "would you like to get a quest?"; if(select("yes:no") == 2) end; copyarray(.@mid,getd(".m_id_" + .@s1),getarraysize(getd(".m_id_" + .@s1))); .@r = rand(getarraysize(.@mid)); copyarray(.@mmn,getd(".m_mn_" + .@s1),getarraysize(getd(".m_mn_" + .@s1))); copyarray(.@mmx,getd(".m_mx_" + .@s1),getarraysize(getd(".m_mx_" + .@s1))); setd(Ac() + "ID_" + .@s1,.@mid[.@r]); setd(Ac() + "C_" + .@s1,rand(getd(".m_mn_" + .@s1 + "[" + .@r + "]"),getd(".m_mx_" + .@s1 + "[" + .@r + "]"))); setd(Ac() + "CC_" + .@s1,0); mes "Please Kill:"; mes "(" + getd(Ac() + "CC_" + .@s1) + "/" + getd(Ac() + "C_" + .@s1) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@s1)); end; OnNPCKillEvent: for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ setd(Ac() + "CC_" + .@i,getd(Ac() + "CC_" + .@i) + 1); dispbottom "Hunting Quest [" + .CataName$[.@i] + "]: (" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo( 1,getd(Ac() + "ID_" + .@i)); if(getd(Ac() + "CC_" + .@i) >= getd(Ac() + "C_" + .@i)){ dispbottom "Your " + .CataName$[.@i] + " Hunting Quest is Done."; setd(Ac() + "COM_" + .@i,true); } } } end; OnHuntingCheck: dispbottom "Your Hunting Quest Progress:"; for(.@i=0;.@i<getarraysize(.CataName$);.@i++){ if(getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + ": Complete"; continue; } .@CD = getd(Ac() + "CD_" + .@i); if(.@CD > gettimetick(2)){ dispbottom .CataName$[.@i] + ": " + gettimestr("%Y-%m/%d %H:%M:%S",21,.@CD); continue; } if(getd(Ac() + "ID_" + .@i) == killedrid && !getd(Ac() + "COM_" + .@i)){ dispbottom .CataName$[.@i] + "(" + getd(Ac() + "CC_" + .@i) + "/" + getd(Ac() + "C_" + .@i) + ") " + strmobinfo(1,getd(Ac() + "ID_" + .@i)); continue; } dispbottom .CataName$[.@i] + ": None"; } end; function Ac { if(.AccountBase) return "#" + .variable_name$; return .variable_name$; } function AddCata { .@s = getarraysize(.CataName$); set getarg(1),.@s; .CataName$[.@s] = getarg(0); .CataMN_L[.@s] = getarg(2); .CataMX_L[.@s] = getarg(3); .CataCD[.@s] = getarg(4); .CataBXP[.@s] = getarg(5); .CataJXP[.@s] = getarg(6); .CataRP[.@s] = getarg(7); for(.@i=8;.@i<getargcount();.@i+=2){ .@s2 = getarraysize(getd(".IRD_" + .@s)); setd ".IRD_" + .@s + "[" + .@s2 + "]",getarg(.@i); setd ".CRD_" + .@s + "[" + .@s2 + "]",getarg(.@i+1); } return; } function AddMob { .@s = getarraysize(getd(".m_id_" + getarg(0))); setd ".m_id_" + getarg(0) + "[" + .@s + "]",getarg(1); setd ".m_mn_" + getarg(0) + "[" + .@s + "]",getarg(2); setd ".m_mx_" + getarg(0) + "[" + .@s + "]",getarg(3); return; } OnInit: .AccountBase = false;//wither or not the quests are on account or on character .ExpServerRate = true;//get exp according to the server rate? .AllowDeleteQuest = true;//allow player to delete his quest without getting the reward .ApplyCoolDownOnDelete = true;//wither or not apply cooldown on deleting the quest. .variable_name$ = "#HUNT_Q_POINTS"; //keep in mind if you changed this you need to change the points in the shop! bindatcmd("MyQuest",strnpcinfo(3)+"::OnHuntingCheck",0,250); freeloop(1); //You can add as much categories as you want! //recommended not more then 25! //AddCata(<"name">,<.var>,<mini level>,<max level>,<cooldown in hours>,<base exp reward>,<job exp reward>,<point reward>,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>{,<ITEM ID>,<COUNT>}}) AddCata("Easy",.Easy,10,99,0,500,500,10,673,5,12210,0,676,1); AddCata("Normal",.Normal,30,99,0,2500,2500,30,673,10,12210,0,670,1); AddCata("Hard",.Hard,70,150,0,10000,10000,50,673,20,677,1,670,rand(0,2)); AddCata("Undead Easy",.UndeadOne,10,99,0,500,500,10,673,5,677,0,676,1); AddCata("Undead Normal",.UndeadTwo,30,99,0,2500,2500,20,673,10,677,0,670,1); AddCata("Undead Hard",.UndeadThree,70,99,0,10000,10000,30,673,20,677,1,670,rand(0,2)); AddCata("Level 99",.Trans,99,150,0,4000000,4000000,30,673,30,677,1,670,2); AddCata("Level 110",.Trans,110,150,1,10000000,10000000,30,673,30,677,1,670,2); AddCata("Level 120",.Trans,120,250,1,20000000,20000000,30,673,30,677,1,670,2); AddCata("Level 130",.TransNormal,130,250,1,40000000,40000000,30,673,30,677,1,670,2); AddCata("Level 140",.TransNormal,140,250,1,150000000,60000000,30,673,30,677,1,670,2); AddCata("Level 150",.TransMedium,150,250,1,200000000,80000000,30,673,30,677,1,670,2); AddCata("Level 160",.TransMedium,160,250,1,400000000,100000000,30,673,30,677,1,670,2); AddCata("Level 170",.TransMedium,170,250,1,800000000,1500000000,30,673,30,677,1,670,2); AddCata("Level 180",.TransMedium,180,250,1,1800000000,1800000000,30,673,30,677,1,670,2); AddCata("Level 190",.TransMedium,190,250,1,50000000000,50000000000,30,673,30,677,1,670,2); AddCata("MVP",.TransMVP,200,250,0,1000000000000,1000000000000,30,673,50,12210,1,677,5,670,4); AddCata("Indeterminate",.Indeterminate,66,250,0,1000000,1000000,20,673,25,677,5,670,2); //You can add as much mobs as you want! //AddMob(<.var>,<mob id>,<min count>,<max count>); AddMob(.Easy,1052,25,75); AddMob(.Easy,1076,25,75); AddMob(.Easy,1015,25,75); AddMob(.Easy,1014,25,75); AddMob(.Easy,1055,25,75); AddMob(.Easy,1019,25,75); AddMob(.Easy,1178,25,75); AddMob(.Easy,1023,25,75); AddMob(.Easy,1153,25,75); AddMob(.Easy,1060,25,75); AddMob(.Easy,1013,25,75); AddMob(.Easy,1127,25,75); AddMob(.Easy,1106,25,75); AddMob(.Easy,1028,25,75); AddMob(.Easy,1026,25,75); AddMob(.Easy,1053,25,75); AddMob(.Easy,1031,25,75); AddMob(.Easy,1024,25,75); AddMob(.Easy,1052,25,75); AddMob(.Easy,1077,25,75); AddMob(.Easy,1033,25,75); AddMob(.Easy,1141,25,75); AddMob(.Easy,1613,25,75); AddMob(.Easy,1139,25,75); AddMob(.Easy,1152,25,75); AddMob(.Easy,1243,25,75); AddMob(.Normal,1146,50,100); AddMob(.Normal,1016,50,100); AddMob(.Normal,1177,25,75); AddMob(.Normal,1044,25,75); AddMob(.Normal,1273,25,75); AddMob(.Normal,1188,25,75); AddMob(.Normal,1170,25,75); AddMob(.Normal,1248,25,75); AddMob(.Normal,1164,25,75); AddMob(.Normal,1417,25,75); AddMob(.Normal,1628,25,75); AddMob(.Normal,1041,25,75); AddMob(.Normal,1261,25,75); AddMob(.Normal,1032,25,75); AddMob(.Normal,1249,25,75); AddMob(.Normal,1215,25,75); AddMob(.Normal,1140,25,75); AddMob(.Normal,1836,25,75); AddMob(.Normal,1036,25,75); AddMob(.Normal,1143,25,75); AddMob(.Normal,1776,25,75); AddMob(.Normal,1616,25,75); AddMob(.Normal,1102,25,75); AddMob(.Normal,1155,25,75); AddMob(.Normal,1517,25,75); AddMob(.Normal,1189,25,75); AddMob(.Normal,1493,25,75); AddMob(.Normal,1213,25,75); AddMob(.Normal,1149,25,75); AddMob(.Normal,1512,25,75); AddMob(.Normal,1369,25,75); AddMob(.Normal,1193,25,75); AddMob(.Normal,1117,25,75); AddMob(.Hard,1206,25,50); AddMob(.Hard,1154,25,50); AddMob(.Hard,1883,25,50); AddMob(.Hard,1321,25,50); AddMob(.Hard,1504,25,50); AddMob(.Hard,1314,25,50); AddMob(.Hard,1317,25,50); AddMob(.Hard,1297,25,50); AddMob(.Hard,1310,25,50); AddMob(.Hard,1365,25,50); AddMob(.Hard,1617,25,50); AddMob(.Hard,1318,25,50); AddMob(.Hard,1717,25,50); AddMob(.Hard,1372,25,50); AddMob(.Hard,1316,25,50); AddMob(.Hard,1366,25,50); AddMob(.Hard,1148,25,50); AddMob(.Hard,1219,25,50); AddMob(.Trans,1098,25,50); AddMob(.Trans,1315,25,50); AddMob(.Trans,1714,25,50); AddMob(.Trans,1319,25,50); AddMob(.Trans,1366,25,50); AddMob(.Trans,1505,25,50); AddMob(.Trans,1148,25,50); AddMob(.Trans,1316,25,50); AddMob(.Trans,1376,25,50); AddMob(.TransNormal,1716,25,50); AddMob(.TransNormal,1713,25,50); AddMob(.TransNormal,1769,25,50); AddMob(.TransNormal,1098,25,50); AddMob(.TransNormal,1315,25,50); AddMob(.TransNormal,1714,25,50); AddMob(.TransNormal,1319,25,50); AddMob(.TransNormal,1376,25,50); AddMob(.TransNormal,1866,25,50); AddMob(.TransNormal,1867,25,50); AddMob(.TransNormal,2017,25,50); AddMob(.TransNormal,1206,25,50); AddMob(.TransNormal,1154,25,50); AddMob(.TransNormal,1883,25,50); AddMob(.TransNormal,1321,25,50); AddMob(.TransNormal,1504,25,50); AddMob(.TransNormal,1314,25,50); AddMob(.TransNormal,1317,25,50); AddMob(.TransNormal,1297,25,50); AddMob(.TransNormal,1310,25,50); AddMob(.TransNormal,1365,25,50); AddMob(.TransNormal,1617,25,50); AddMob(.TransNormal,1318,25,50); AddMob(.TransNormal,1717,25,50); AddMob(.TransNormal,1372,25,50); AddMob(.TransNormal,1316,25,50); AddMob(.TransNormal,1366,25,50); AddMob(.TransNormal,1148,25,50); AddMob(.TransNormal,1219,25,50); AddMob(.TransMedium,1716,25,50); AddMob(.TransMedium,1713,25,50); AddMob(.TransMedium,1759,25,50); AddMob(.TransMedium,1786,25,50); AddMob(.TransMedium,1769,25,50); AddMob(.TransMedium,1098,25,50); AddMob(.TransMedium,1315,25,50); AddMob(.TransMedium,1714,25,50); AddMob(.TransMedium,1319,25,50); AddMob(.TransMedium,1376,25,50); AddMob(.TransMedium,1866,25,50); AddMob(.TransMedium,1867,25,50); AddMob(.TransMedium,2017,25,50); AddMob(.TransMedium,1716,25,50); AddMob(.TransMedium,1713,25,50); AddMob(.TransMedium,1759,25,50); AddMob(.TransMedium,1786,25,50); AddMob(.TransMedium,1769,25,50); AddMob(.TransMedium,1098,25,50); AddMob(.TransMedium,1315,25,50); AddMob(.TransMedium,1714,25,50); AddMob(.TransMedium,1319,25,50); AddMob(.TransMedium,1376,25,50); AddMob(.TransMedium,1866,25,50); AddMob(.TransMedium,1867,25,50); AddMob(.TransMedium,1310,25,50); AddMob(.TransMedium,1365,25,50); AddMob(.TransMedium,1617,25,50); AddMob(.TransMedium,1318,25,50); AddMob(.TransMedium,1717,25,50); AddMob(.TransMedium,1372,25,50); AddMob(.TransMedium,1316,25,50); AddMob(.TransMedium,1366,25,50); AddMob(.TransMedium,1148,25,50); AddMob(.TransMedium,1219,25,50); AddMob(.TransMedium,1268,1,3); AddMob(.TransMedium,1720,1,3); AddMob(.TransMedium,1289,1,3); AddMob(.TransMVP,1511,1,2); AddMob(.TransMVP,1785,1,5); AddMob(.TransMVP,1389,1,2); AddMob(.TransMVP,1112,1,2); AddMob(.TransMVP,1252,1,2); AddMob(.TransMVP,1251,1,2); AddMob(.TransMVP,1147,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1038,1,2); AddMob(.TransMVP,1087,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1086,1,2); AddMob(.TransMVP,1115,1,2); AddMob(.TransMVP,1150,1,2); AddMob(.TransMVP,1159,1,2); AddMob(.TransMVP,1583,1,2); AddMob(.TransMVP,1492,1,2); AddMob(.TransMVP,1190,1,2); AddMob(.TransMVP,1511,1,2); AddMob(.Indeterminate,1033,200,300); AddMob(.Indeterminate,1057,200,300); AddMob(.Indeterminate,1784,200,300); AddMob(.Indeterminate,1178,200,300); AddMob(.Indeterminate,1067,200,300); AddMob(.Indeterminate,1153,200,300); AddMob(.Indeterminate,1023,200,300); AddMob(.Indeterminate,1044,200,300); AddMob(.Indeterminate,1165,200,300); AddMob(.Indeterminate,1164,200,300); AddMob(.Indeterminate,1041,200,300); AddMob(.Indeterminate,1032,200,300); AddMob(.Indeterminate,1249,200,300); AddMob(.Indeterminate,1376,25,50); AddMob(.Indeterminate,1098,25,50); AddMob(.Indeterminate,1366,25,50); AddMob(.UndeadOne,1076,25,75); AddMob(.UndeadOne,1015,25,75); AddMob(.UndeadOne,1064,25,75); AddMob(.UndeadOne,1153,25,75); AddMob(.UndeadOne,1071,25,75); AddMob(.UndeadOne,1152,25,75); AddMob(.UndeadOne,1028,25,75); AddMob(.UndeadOne,1026,25,75); AddMob(.UndeadOne,1169,25,75); AddMob(.UndeadTwo,1016,25,75); AddMob(.UndeadTwo,1188,25,75); AddMob(.UndeadTwo,1041,25,75); AddMob(.UndeadTwo,1032,25,75); AddMob(.UndeadTwo,1036,25,75); AddMob(.UndeadTwo,1616,25,75); AddMob(.UndeadTwo,1192,25,75); AddMob(.UndeadTwo,1512,25,75); AddMob(.UndeadTwo,1117,25,75); AddMob(.UndeadThree,1132,25,75); AddMob(.UndeadThree,1297,25,75); AddMob(.UndeadThree,1098,25,75); AddMob(.UndeadThree,1401,25,75); AddMob(.UndeadThree,1505,25,75); AddMob(.UndeadThree,1219,25,75); end; } Thanks in advance and I'm sorry if this is the wrong place for this.
  10. Damn, I hadn't thought about getting or reading the Reneaw files to see how Costume was there, I replaced my files with them and it worked, thank you very much!
  11. Hi, I've been trying for a while to put costume items on my server, just add the equipments already in the vanilla game but convert then to a costume equippment. I've followed several guides and other posts here on the forum but all without success, can anyone help me? I've already change the lines from the scripts individually and also tried to replace my files for those in the link ( https://github.com/secretdataz/rathena/pull/8/files#diff-86550e728eea96e59b8b50cb2473deace36dd00ed2207efb903932b88a0db2cd ), but I end it up with the same error. I also tried add the costume itens individualy, kindda works, but when I change in the .lua, nothing changes and I end it up with a unknow Item, alsoit will take too long to change one by one like Tero teaches in the "Headgear to Costume Headgear Trader". If someone can help me to make the costume npc to work or share with me a item_db_equip and a itemInfo.lua with all the costumes variations of the vanillas head gears, I would be really grateful. Thanks in advance. I'm using 2019-06-05fRagexe_patched, on Pre-Renewal.
  12. Hi, really nice script. Is there a way to make he buy random items peridicly? Like, every 12am he will buy different items and so on.
  13. Hey, love the script, but I was looking and I did't find where I put the items on the shop, or the value for them, can you show me, please?
×
×
  • Create New...