Leaderboard
Popular Content
Showing content with the highest reputation on 04/11/25 in Posts
-
2 points
-
Gravity (gnjoy) is opening a new server, considering they have a valuable market in LATAM. Also, they are bringing more Gravity games to the region. Website: https://ro.gnjoylatam.com/en/prereservation CBT: 14th-21st april 2025 - Pre-Download: 11st april 2025 (interesting for data mining) Opening: 28th may 2025 Multilanguage: English, Brasilian and Spanish Official Discord: https://discord.gg/Fs2pdxnD They made a livestream: Youtube Livestream They showcased some RO3 (Japanese devs): RO3 Showcase - RO3 Official Discord They showcased some RO for LATAM (They made some changes and some BSO with latin rythims which very cool): BSG Previews I made this post for another reason, Gravity announced they will go hard for private servers and they even will create a tool for reporting them. What do you think? I read you.1 point
-
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; }1 point
-
1 point
-
This is a simple site that allows you to create your own RO Login Background. It's now fully functional. With this tool, you can upload any image of your choice and select the desired area to be cropped. You can also adjust the aspect ratio to your liking. Features: Support for t_login.jpg output for newer clients Multiple quantization algorithms for 8-bit mode (NeuQuant, Median Cut, K-Means, etc.) Optional noise dithering to improve quality of images with blending showed on the RO Client Output Options: Default output (24-bit BMP): Produces high quality images 8-bit BMP: Reduces the final output size significantly (with some quality loss) t_login.jpg: For modern clients that support JPEG backgrounds Tool URL: FroggoCutter (sapitosucio.github.io) The files generated have the following format: t_¹è°æX-Y.bmp, said files are compressed into a .zip file, then it's downloaded. Do remember those BMPs files should be placed on: data\texture\À¯ÀúÀÎÅÍÆäÀ̽º Btw everything is done locally, nothing is uploaded. You can see it's source code here Known Issues: When you try to slice a big image (>2000px) and 8Bit is selected, the browser may lock itself for a few seconds (❁´◡`❁) Froggo tip of the day: Use big images(>2000px), upscale them or something and then, slice it, the final result is quite gucci Some SS: The manipulation part: BMPs loaded by client:1 point
-
New design, new quantification methods, new options. - Added option to add 'Noise' to the image, this is so helpful in BMP images showed in the RO client, especially those with color blending. - Now the user is warned if big image is detected and 8bit checkbox is activated. - Added quant method ranking - Added 2 new quantification methods - Transitions added in several places1 point
-
1 point
-
hi, thank you so much, i'm using : 1. Next.js 2. React 3. TypeScript 4. Tailwind CSS 5. MySQL 6. phpBB 7. shadcn/ui 8. Server Actions 9. JWT (JSON Web Tokens) 10. Environment Variables actually I was inspired by fluxcp, but because fluxcp is considered outdated, I want to make it from scratch, for the function, it's the same as fluxcp, there are only a few updates, for example optimizing database performance and realtime api. thanks for the input and suggestions, I really appreciate it, I think this CP is still far from perfect, but I will try as much as possible so that it can be used by everyone, I will make it opensource, and I will push it on github, if anyone wants to contribute, of course I am very happy. Now I'm working on making the items appear in full in each character's inventory, it may look silly, but I will upload the icon and image directly, so as to minimize errors, haha1 point
-
This will replace the apple sprite on missing items with a question mark based on the question mark emotion sprite. Also includes a bigger version of the question mark texture made by me. To setup this: 1: Replace the apple's '»ç°ú' ACT, SPR and BMP sprites in the data with the ones inside 'data.zip' from this post 2: Add and reference the new 'apple_' textures from 'data.zip' in your itemInfo (so that the apples use the pseudo-custom apple texture instead of also using the '?') Result: Apples still look like Apples. Unknown Items look like a question mark. Less confusion, easier to spot and report! Includes: - »ç°ú.act / spr / bmp - apple_.act / spr / bmp - Partial 'itemInfo' template data.zipunknown.lua1 point
-
View File Trade Log Fluxcp Addons TradeLog FluxCP Addons Easily find character trades by searching using character name, item ID, item unique ID, or date. Submitter gamingmagic Submitted 08/07/24 Category FluxCP Addons Video Content Author gamingmagic1 point