Customisable Monster Invasion
Hi everyone, as none of the current available Monster Invasion scripts really satisfied my needs, I decided to make my own one. I got inspired by the "Automated MVP Event" from xMachina / Acetito and Emistry, but wrote all the code myself.
Feature List:
Parameters are defined via an NPC
Nice and easy ingame defining of monsters and item reward types and quantitys and the desired Map
Top Killers are listed and rewared after the event is over
A logmes is generated with information about the top Killer, his kills, the chosen item reward and the count of previous monster invasions to detect possible abuses.
Temporarily saves inputs
How to operate:
It's pretty simple, you just talk to the NPC and choose the desired options. You don't have to write monster or Item IDs ingame, you define them in the script. I provided a list of pre-defined monsters and items, if you want to alter it then do the following:
1. Mind the 4 lines after the comment: "//define monsterlist and itemlist", i made two categorys for monsters and items respectively for a better overview.
2. Add the desired item/monster ID to the desired category.
3. For monsters: Go to the function "F_ChooseMob" and extend the respective category list with the monster name (mind the correct order!), for items: search for the lines below the comment: "//Item & Item amount list, sorted like rms does" (I was too lazy to make a separate function out of it D:) and do the same (mind the correct order again).
Example for a not working monster list extension (Marin in this case):
changing setarray $@Monsteridweak[1],1301,1297,1403,1654,1268,1507,1830,1307,1302,1635,1655,1636,1777,1837,1656,
1219,1502,1637,1262,1700,1320,1865,1657,1702,1829,1375,1204,1653,1416,1200,1197;
to setarray $@Monsteridweak[1],1301,1297,1403,1654,1268,1507,1830,1307,1302,1635,1655,1636,1777,1837,1656,
1219,1502,1637,1262,1700,1320,1865,1657,1702,1829,1375,1204,1653,1416,1200,1197:1242;
and changing set @Monsters[getarg(0)],$@Monsteridweak[select("Am Mut:Ancient Mummy:Firelock Soldier:Armeyer Dinze:Bloody Knight:Bloody Murderer:Bow Guardian:Cat o' Nine Tails:Dark Illusion:Eremes Guile:Errende Ebecee:Howard Alt-Eisen:Ice Titan:Imp:Kavach Icarus:Knight of Abyss:Loli Ruri:Margaretha Sorin:Mutant Dragonoid:Observation:Owl Duke:Ragged Zombie:Laurell Weinder:Retribution:Sword Guardian:The Paper:Tirfing/Ogretooth:Wickebine Tres:Wicked Nymph:Zealotus:Zombie Prisoner")];
to set @Monsters[getarg(0)],$@Monsteridweak[select("Am Mut:Ancient Mummy:Firelock Soldier:Armeyer Dinze:Bloody Knight:Bloody Murderer:Bow Guardian:Cat o' Nine Tails:Dark Illusion:Eremes Guile:Errende Ebecee:Howard Alt-Eisen:Ice Titan:Imp:Kavach Icarus:Knight of Abyss:Loli Ruri:Margaretha Sorin:Marin:Mutant Dragonoid:Observation:Owl Duke:Ragged Zombie:Laurell Weinder:Retribution:Sword Guardian:The Paper:Tirfing/Ogretooth:Wickebine Tres:Wicked Nymph:Zealotus:Zombie Prisoner")];
//This won't work because the monster ID is added to the end on one list, while the monster name is added somewhere in the middle on the other list. The positions of the monster IDs and names have to match.
Example for a working monster list extension (Marin in this case):
changing setarray $@Monsteridweak[1],1301,1297,1403,1654,1268,1507,1830,1307,1302,1635,1655,1636,1777,1837,1656,
1219,1502,1637,1262,1700,1320,1865,1657,1702,1829,1375,1204,1653,1416,1200,1197;
to setarray $@Monsteridweak[1],1301,1297,1403,1654,1268,1507,1830,1307,1302,1635,1655,1636,1777,1837,1656,
1219,1502,1637,1262,1700,1320,1865,1657,1702,1829,1375,1204,1653,1416,1200,1197:1242;
and changing set @Monsters[getarg(0)],$@Monsteridweak[select("Am Mut:Ancient Mummy:Firelock Soldier:Armeyer Dinze:Bloody Knight:Bloody Murderer:Bow Guardian:Cat o' Nine Tails:Dark Illusion:Eremes Guile:Errende Ebecee:Howard Alt-Eisen:Ice Titan:Imp:Kavach Icarus:Knight of Abyss:Loli Ruri:Margaretha Sorin:Mutant Dragonoid:Observation:Owl Duke:Ragged Zombie:Laurell Weinder:Retribution:Sword Guardian:The Paper:Tirfing/Ogretooth:Wickebine Tres:Wicked Nymph:Zealotus:Zombie Prisoner")];
to set @Monsters[getarg(0)],$@Monsteridweak[select("Am Mut:Ancient Mummy:Firelock Soldier:Armeyer Dinze:Bloody Knight:Bloody Murderer:Bow Guardian:Cat o' Nine Tails:Dark Illusion:Eremes Guile:Errende Ebecee:Howard Alt-Eisen:Ice Titan:Imp:Kavach Icarus:Knight of Abyss:Loli Ruri:Margaretha Sorin:Mutant Dragonoid:Observation:Owl Duke:Ragged Zombie:Laurell Weinder:Retribution:Sword Guardian:The Paper:Tirfing/Ogretooth:Wickebine Tres:Wicked Nymph:Zealotus:Zombie Prisoner:Marin")];
//Although not sorted alphabetically, this will work as both Monster ID and name share the same position in their respective lists in this example.
The script kills all summoned monsters if 5 or less remain, because it's boring if you have to teleport 2000 times to find the last ones.
To change this, go to "if(mobcount($@Map$,strnpcinfo(3)+"::OnMobKill") <=5)" in the script and replace the last number with the desired amount.
Well, have fun with it!
Downloads:
Monsterinvasion - German Version
Monsterinvasion - English Version
Monsterinvasion - Spanish Version
Credits:
BlackScythe, who translated the script to spanish. Thanks very much!
Link to eAthena post:http://www.eathena.w...howtopic=282806
Monsterinvasion-de.txt
Monsterinvasion-en.txt
Monsterinvasion_es.txt