// TMW2 Script // Author: // Jesusalva // Description: // This GM NPC controls spawns and item drops on Aeros 001-1,250,20,0 script Mana Being#001-1 NPC_ALIGE_OUTSIDE_BARREL,{ function spawner { // (name, ID, amount) areamonster("001-1", 171, 0, 339, 158, getarg(0), getarg(1), getarg(2), "Mana Being#001-1::OnAerosMobDeath"); } if (!getgmlevel()) goto L_Unauthorized; @log_spawns=0; @log_ratio=.coins_rate; mesn; mes "Tired of walking the whole Aeros to spawn monsters, I was brought to existence."; L_Menu: mes ""; mes "Please select operation."; menu "Abort",L_Close, "Spawn",L_Spawn, rif(countitem(StrangeCoin) >= 10, "Drop a Toothbrush! (10x Coins)"),L_Drop, "Adjust coins drop rate",L_Rate; L_Unauthorized: dispbottom l("I am too far away to talk. Weird floating thingy..."); end; L_Close: if (@log_spawns > 0) logmes "spawned "+str(@log_spawns)+" beigns.", LOGMES_ATCOMMAND; if (@log_ratio != .coins_rate) logmes "set aeros ratio from "+str(@log_ratio)+" to"+str(.coins_rate), LOGMES_ATCOMMAND; close; L_Spawn: mes ""; mes "Spawn from a preset (with intended levels) from this menu. Otherwise, use @aeros with same syntax."; mes "(agr) means Agressive Monsters on the set, DO NOT ABUSE."; next; select "Abort", // 1 "20x Piou, Piousee, Ratto, 10x Croc", // 2 "20x Little Blub, 10x Plushroom Field", // 3 "(agr) 10x Tipiu, 10x Cave Maggot, 10x Bat", // 4 "20x Scorpion, 10x Duck, 10x Maggot", // 5 "10x Red Scorpion, 20x Fire Goblin, 5x Mana Ghost", // 6 "(agr) 1x Saxso Ghost, 20x House Maggot", // 7 "(agr) 5x Slime Blast, 5x Red Slime, 10x White Slime", // 8 "(agr) 5x Mouboo, 4x Bandit, 2x Black Scorpion", // 9 "10x Giant Maggot, 10x Cave Snake, 10x Mana Bug", // 10 "1x Golden/Night Scorpion, 2x Santa Slime, 5x Copper Slime", // 11 "(agr) 2x Fallen Guards", // 12 "10x Clover Path, 5 groups of 5 random Bifs", // 13 "5x Bifs, 4 groups of 5 random Bifs"; // 14 switch (@menu) { case 1: break; case 2: spawner(l("Piou"), 1002, 20); spawner(l("Piousee"), 1003, 20); spawner(l("Ratto"), 1005, 20); spawner(l("Croc"), 1006, 10); @log_spawns=@log_spawns+70; break; case 3: spawner(l("Little Blub"), 1007, 20); spawner(l("Plushroom Field"), 1011, 10); @log_spawns=@log_spawns+30; break; case 4: spawner(l("Tipiu"), 1015, 10); spawner(l("Cave Maggot"), 1027, 10); spawner(l("Bat"), 1039, 10); @log_spawns=@log_spawns+30; break; case 5: spawner(l("Scorpion"), 1071, 20); spawner(l("Duck"), 1029, 10); spawner(l("Maggot"), 1030, 10); @log_spawns=@log_spawns+40; break; case 6: spawner(l("Red Scorpion"), 1002, 10); spawner(l("Fire Goblin"), 1067, 20); spawner(l("Mana Ghost"), 1068, 5); @log_spawns=@log_spawns+35; break; case 7: spawner(l("Saxso Ghost"), 1076, 1); spawner(l("House Maggot"), 1084, 20); @log_spawns=@log_spawns+21; break; case 8: spawner(l("Slime Blast"), 1090, 5); spawner(l("Red Slime"), 1092, 5); spawner(l("White Slime"), 1094, 10); @log_spawns=@log_spawns+20; break; case 9: spawner(l("Mouboo"), 1023, 5); spawner(l("Bandit"), 1024, 4); spawner(l("Black Scorpion"), 1074, 2); @log_spawns=@log_spawns+11; break; case 10: spawner(l("Giant Maggot"), 1031, 10); spawner(l("Cave Snake"), 1035, 10); spawner(l("Mana Bug"), 1075, 10); @log_spawns=@log_spawns+30; break; case 11: spawner(l("Golden Scorpion"), 1078, 1); spawner(l("Night Scorpion"), 1077, 1); spawner(l("Santa Slime"), 1096, 5); spawner(l("Copper Slime"), 1088, 10); @log_spawns=@log_spawns+17; break; case 12: spawner(l("Frostia Guard"), 1081, 1); spawner(l("Halinarzo Guard"), 1082, 1); @log_spawns=@log_spawns+2; break; //"10x Clover Path, 5 groups of 5 random Bifs", // 13 //"5x Bifs, 4 groups of 5 random Bifs"; // 14 case 13: spawner(l("Clover Field"), 1028, 10); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); @log_spawns=@log_spawns+35; break; case 14: spawner(l("Bif"), 1058, 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); spawner(l("Mysterious Bif"), rand(1098,1118), 5); @log_spawns=@log_spawns+25; break; } if (@menu == 1) goto L_Menu; mes ""; mes "Completed."; mes "Total spawns: "+str(@log_spawns); next; goto L_Spawn; L_Drop: delitem(StrangeCoin,10); makeitem(Toothbrush, 1, "001-1", rand(171,319), rand(20,138)); mes ""; mes "Dropped."; next; goto L_Menu; L_Rate: mes ""; mes "Current drop rate: " + str(.coins_rate); mes "Insert drop rate (from 0 to 10000)"; input .coins_rate; mes ""; mes "Ratio adjusted."; next; goto L_Menu; OnAerosMobDeath: if (rand(10000) <= .coins_rate) getitem StrangeCoin, 1; end; OnInit: .coins_rate=0; end; } - script @aeros 32767,{ end; OnCall: if (!is_evtc()) end; if (getmapname() != "001-1") { dispbottom "This command can only be used at aeros."; end; } //.@atcmd_parameters$ = strtoupper(strip( // nah if (.@atcmd_numparameters != 2) { dispbottom "Use the numeric ID provided by the wiki. This is a safeguard to ensure you are not overkilling players."; dispbottom "Talk to Mana Being for a less fine-grained but much more optimized control over monsters."; dispbottom "This command takes exactly this syntax: Mob ID amount."; end; } areamonster("001-1", 171, 0, 339, 158, "Monster", atoi(.@atcmd_parameters$[0]), atoi(.@atcmd_parameters$[1]), "Mana Being#001-1::OnAerosMobDeath"); logmes "@aeros "+.@atcmd_parameters$, LOGMES_ATCOMMAND; dispbottom "All monsters summoned."; end; OnInit: bindatcmd "aeros", "@aeros::OnCall", 99, 99, 0; }