Jump to content

Customisable Monster Invasion Event


Recommended Posts


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   2
  • Joined:  01/04/12
  • Last Seen:  

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

Edited by NightTerror
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  138
  • Topics Per Day:  0.03
  • Content Count:  835
  • Reputation:   25
  • Joined:  11/22/11
  • Last Seen:  

thx. i will try this simple one.

Link to comment
Share on other sites

  • 6 months later...

  • Group:  Members
  • Topic Count:  118
  • Topics Per Day:  0.03
  • Content Count:  1942
  • Reputation:   197
  • Joined:  01/08/12
  • Last Seen:  

[Error]:
script error on npc\custom\AleconRO\Monsterinvasion-en.txt line 127
   parse_simpleexpr: unmatch ')'
  122 :									    mes "[ ^0C66C0Event Helper^00000
0 ]";
  123 :									    mes "Please choose your desired
map!";
  124 :									    mes "Obviously, the map has to b
e valid.";
  125 :									    next;
  126 :									    do{
						    //Loop to ensure valid map
*  127 :									    input $@Map$;}while(getmapmobs'(
'$@Map$) == -1 );
  128 :									    break;
  129 :					    Case 3:
  130 :
  131 :									    mes "[ ^0C66C0Event Helper^00000
0 ]";
  132 :									    mes "Which monster do you want t
o spawn?";

what is this problem?

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   2
  • Joined:  01/04/12
  • Last Seen:  

[Error]:
script error on npc\custom\AleconRO\Monsterinvasion-en.txt line 127
parse_simpleexpr: unmatch ')'
  122 :										mes "[ ^0C66C0Event Helper^00000
0 ]";
  123 :										mes "Please choose your desired
map!";
  124 :										mes "Obviously, the map has to b
e valid.";
  125 :										next;
  126 :										do{
							//Loop to ensure valid map
*  127 :										input $@Map$;}while(getmapmobs'(
'$@Map$) == -1 );
  128 :										break;
  129 :						Case 3:
  130 :
  131 :										mes "[ ^0C66C0Event Helper^00000
0 ]";
  132 :										mes "Which monster do you want t
o spawn?";

what is this problem?

Getmapmobs seems to be an outdated function, I'm too lazy to update rathena myself, but try to replace "getmapmobs" with "mobcount". It should work if I understood this right.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  118
  • Topics Per Day:  0.03
  • Content Count:  1942
  • Reputation:   197
  • Joined:  01/08/12
  • Last Seen:  

still not working.


[Error]:
script error on npc\custom\AleconRO\Monsterinvasion-en.txt line 127
   need '('
  122 :                                        mes "[ ^0C66C0Event Helper^00000
0 ]";
  123 :                                        mes "Please choose your desired
map!";
  124 :                                        mes "Obviously, the map has to b
e valid.";
  125 :                                        next;
  126 :                                        do{
                               //Loop to ensure valid map
*  127 :                                        input $@Map$;}while(mobcount'''(
$@Map$) == -1 );
  128 :                                        break;
  129 :                        Case 3:
  130 :
  131 :                                        mes "[ ^0C66C0Event Helper^00000
0 ]";
  132 :                                        mes "Which monster do you want t
o spawn?";

Edited by Brynner
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   2
  • Joined:  01/04/12
  • Last Seen:  

still not working.


[Error]:
script error on npc\custom\AleconRO\Monsterinvasion-en.txt line 127
need '('
  122 :										mes "[ ^0C66C0Event Helper^00000
0 ]";
  123 :										mes "Please choose your desired
map!";
  124 :										mes "Obviously, the map has to b
e valid.";
  125 :										next;
  126 :										do{
							//Loop to ensure valid map
*  127 :										input $@Map$;}while(mobcount'''(
$@Map$) == -1 );
  128 :										break;
  129 :						Case 3:
  130 :
  131 :										mes "[ ^0C66C0Event Helper^00000
0 ]";
  132 :										mes "Which monster do you want t
o spawn?";

Sucks to be you I guess?

Link to comment
Share on other sites

  • 3 weeks later...

  • Group:  Members
  • Topic Count:  45
  • Topics Per Day:  0.01
  • Content Count:  715
  • Reputation:   83
  • Joined:  01/05/12
  • Last Seen:  

I have the same error like Brynner have

*  127 :																				input $@Map$;}while(getmapmobs'('$@Map$) == -1 );

Edited by Lelouch
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  37
  • Topics Per Day:  0.01
  • Content Count:  113
  • Reputation:   1
  • Joined:  07/15/12
  • Last Seen:  

I have the same error like Brynner have

*  127 :																				input $@Map$;}while(getmapmobs'('$@Map$) == -1 );

Same error.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  163
  • Reputation:   7
  • Joined:  01/07/12
  • Last Seen:  

yeah same error

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

@Post#7 / Post#8 / Post#9

mobcount("<map name>","<event label>")

Link to comment
Share on other sites

  • 1 month later...

  • Group:  Members
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  49
  • Reputation:   1
  • Joined:  03/15/12
  • Last Seen:  

@Post#7 / Post#8 / Post#9

mobcount("<map name>","<event label>")

can explain further how to input that?

Edited by kojex 2.0
Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Link to comment
Share on other sites

  • 6 months later...

  • Group:  Members
  • Topic Count:  98
  • Topics Per Day:  0.02
  • Content Count:  1302
  • Reputation:   77
  • Joined:  12/04/12
  • Last Seen:  

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

 

 

someone please reupload. i cant download it. or share in here!

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  98
  • Topics Per Day:  0.02
  • Content Count:  1302
  • Reputation:   77
  • Joined:  12/04/12
  • Last Seen:  

 

thx emistry  /no1

 

btw. i got this problem.

 

[Error]:  Loading NPC file: npc/1.test/monsterinvansion.txt
script error on npc/1.test/monsterinvansion.txt line 127
    parse_simpleexpr: unmatch ')'
   122 :                                        mes "[ ^0C66C0Event Helper^00000
0 ]";
   123 :                                        mes "Please choose your desired
map!";
   124 :                                        mes "Obviously, the map has to b
e valid.";
   125 :                                        next;
   126 :                                        do{
                                //Loop to ensure valid map
*  127 :                                        input $@Map$;}while(getmapmobs'(
'$@Map$) == -1 );
   128 :                                        break;
   129 :                        Case 3:
   130 :
   131 :                                        mes "[ ^0C66C0Event Helper^00000
0 ]";
   132 :                                        mes "Which monster do you want t
o spawn?";
Edited by mrlongshen
Link to comment
Share on other sites

  • 2 months later...

  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  1
  • Reputation:   0
  • Joined:  07/14/12
  • Last Seen:  

show;

input $@Map$;}while(getmapmobs'('$@Map$) == -1 );

 

 

 

edit:

input $@Map$;}while (mobcount("prontera", "all") == -1 );

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...