Jump to content
  • 0

Script Event Invasion


ZelosAvalon

Question


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

anyone can help me for fix this script :

goblin_event2.txt

please i really need help!!!!

Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 1

  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

when send BC and talk to the npc again, a message appears: "Sorry you have to wait for 3min.";

}

if(@Broadcast> gettimetick(2)) {

next;

mes @header$;

mes "Sorry you have to wait for 3min.";

close;

I would like to know how to configure that when I talk to the npc, missing 2 minutes, the message appears: "Sorry you have to wait for 2min."; and also 1 min appears "Sorry you have to wait for 1min." when they pass the final 1 min message appears: Broadcasting Service Is Now Available. and send me to the beginning of the npc.

Okay replace

if(@Broadcast> gettimetick(2)) {
next;

mes @header$;
mes "Service will be available in 3 minutes.";
close;


OnTimer60000:
mes "Service will be available in 2 minutes.";
close;


OnTimer120000:
mes "Service will be available in 1 minute.";
close;


OnTimer180000:
mes "Broadcasting Service Is Now Available.";  
close;

}

by

if ( @Broadcast > gettimetick(2) ) {
next;
mes @header$;
for ( set .@i, 3; .@i > 0; set .@i, .@i - 1 )
	if ( @Broadcast > gettimetick(2) + (.@i-1)*60 ) {
		mes "Service will be available in "+ .@i +" minute"+ ((.@i-1)?"s":"")+ ".";
		break;
	}
close;
}

I dont want it to start automatically!

Well just remove

OnMinute50: // Change this to your liking

and your event won't start automatically !

Edited by Capuche
  • Upvote 2
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

getmonstername() / getmobname()

These script command don't exist. You can try strmobinfo(1,<ID>) to display monster's name.

monster .Map$,0,0," + getmobname(.MobID) + "," + .MobID + ",250,"Event Invasion::OnMyMobDead";

Wrong synthaxe. " + .MobID + " must be a number, not a string.

There is a Label OnTimer but not an initnpctimer /hmm

Well there are many thing that you forget (if it's your script), here a fast fix !

jupe_ele,36,53,6	script	Event Invasion	105,{

set .gm,50;//GM Level to access the GM Menu. Default: 50

// GM menu
//It allows GMs Level 50 or more to Start and Stop invasions.

if (getgmlevel()>.gm) {
	if (.mobs_left) {
		mes "[Event Goblin Invasion]";
		mes "An invasion is in progress..";
		mes "Location: " + .Map$;
		mes "^FF0000"+.mobs_left+"^000000 Goblins left";
		mes " ";
		mes "Stop invasion?";
		if(select("No:Yes")==1) close;
		donpcevent "Event Invasion::OnStop";
		mes "Invasion stopped";
		announce "The Invasion has been stopped by "+strcharinfo(0),bc_all;
		close;
	}

	mes "[Event Invasion]";
	mes "Please customize the Invasion event before starting it.";
	mes "Note - The Goblin Leader drops x5 of the prize.";
Main:
	next;
	mes "[Event Invasion]";
		switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Start Event")) {
	case 1:
		mes "Which item would you like the MVP to drop?";
		mes "Please input the item ID:";
		input .ItemID;
		goto Main;
	case 2:
		mes "Please input the monster ID:";
		input .MobID;
		goto Main;
	case 3:
		mes "Please input the MVP ID:";
		input .MvpID;
		goto Main;
	case 4:
		mes "Starting the event now...";
		close2;
		goto OnStart;
	}
}

// If a player clicks the NPC, it displays:
mes "[Event Invasion]";
mes .mobs_left+" have invaded "+.Map$[.rand_map]+"!";
close;



		/////////////////////////
		//The actual NPC Script//
		/////////////////////////

OnMinute50: // Change this to your liking
OnStart:
if( .mobs_left ) end;
set .mobs_left, 1;
sleep2 1000;
set .@ran, rand(1,6);
if (.@ran == 6) set .Map$,"splendide";
if (.@ran == 5) set .Map$,"izlude";
if (.@ran == 4) set .Map$,"payon";
if (.@ran == 3) set .Map$,"geffen";
if (.@ran == 2) set .Map$,"morocc";
if (.@ran == 1) set .Map$,"prontera";
sleep2 1000;
announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .Map$ + "!", bc_all;
sleep2 5000;
announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all;
monster .Map$,0,0,"--ja--",.MobID,1,"Event Invasion::OnMyMobDead";
set .mobs_left, 1;
initnpctimer;
end;


OnStop:
killmonster .Map$,"Event Invasion::OnSpecialMobDead";
OnTimer1805000:	// 30 minutes later, kills all the mobs.
killmonster .Map$,"Event Invasion::OnMyMobDead";
set .mobs_left, 0;
stopnpctimer;
end;

OnMyMobDead: //When a mob is killed
set .mobs_left, .mobs_left-1;
if (.mobs_left==0) {
	announce "[ Rune-Midgard Guard ]: The " + strmobinfo(1,.MvpID) + " has spawned in " + .Map$ + "!", bc_all;
	monster .Map$,0,0,"--ja--",.MvpID,1,"Event Invasion::OnSpecialMobDead";
} else
	announce "["+.mobs_left+"/250] " + strmobinfo(1,.MobID) + " left.",bc_map;
end;

OnSpecialMobDead:
announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all;
getitem .ItemID,1; //Change the [5] to the amount you wish to hand out.
end;
}

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


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

getmonstername() / getmobname()

These script command don't exist. You can try strmobinfo(1,<ID>) to display monster's name.

monster .Map$,0,0," + getmobname(.MobID) + "," + .MobID + ",250,"Event Invasion::OnMyMobDead";

Wrong synthaxe. " + .MobID + " must be a number, not a string.

There is a Label OnTimer but not an initnpctimer /hmm

Well there are many thing that you forget (if it's your script), here a fast fix !

jupe_ele,36,53,6	script	Event Invasion	105,{

set .gm,50;//GM Level to access the GM Menu. Default: 50

// GM menu
//It allows GMs Level 50 or more to Start and Stop invasions.

if (getgmlevel()>.gm) {
	if (.mobs_left) {
		mes "[Event Goblin Invasion]";
		mes "An invasion is in progress..";
		mes "Location: " + .Map$;
		mes "^FF0000"+.mobs_left+"^000000 Goblins left";
		mes " ";
		mes "Stop invasion?";
		if(select("No:Yes")==1) close;
		donpcevent "Event Invasion::OnStop";
		mes "Invasion stopped";
		announce "The Invasion has been stopped by "+strcharinfo(0),bc_all;
		close;
	}

	mes "[Event Invasion]";
	mes "Please customize the Invasion event before starting it.";
	mes "Note - The Goblin Leader drops x5 of the prize.";
Main:
	next;
	mes "[Event Invasion]";
		switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Start Event")) {
	case 1:
		mes "Which item would you like the MVP to drop?";
		mes "Please input the item ID:";
		input .ItemID;
		goto Main;
	case 2:
		mes "Please input the monster ID:";
		input .MobID;
		goto Main;
	case 3:
		mes "Please input the MVP ID:";
		input .MvpID;
		goto Main;
	case 4:
		mes "Starting the event now...";
		close2;
		goto OnStart;
	}
}

// If a player clicks the NPC, it displays:
mes "[Event Invasion]";
mes .mobs_left+" have invaded "+.Map$[.rand_map]+"!";
close;



		/////////////////////////
		//The actual NPC Script//
		/////////////////////////

OnMinute50: // Change this to your liking
OnStart:
if( .mobs_left ) end;
set .mobs_left, 1;
sleep2 1000;
set .@ran, rand(1,6);
if (.@ran == 6) set .Map$,"splendide";
if (.@ran == 5) set .Map$,"izlude";
if (.@ran == 4) set .Map$,"payon";
if (.@ran == 3) set .Map$,"geffen";
if (.@ran == 2) set .Map$,"morocc";
if (.@ran == 1) set .Map$,"prontera";
sleep2 1000;
announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .Map$ + "!", bc_all;
sleep2 5000;
announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all;
monster .Map$,0,0,"--ja--",.MobID,1,"Event Invasion::OnMyMobDead";
set .mobs_left, 1;
initnpctimer;
end;


OnStop:
killmonster .Map$,"Event Invasion::OnSpecialMobDead";
OnTimer1805000:	// 30 minutes later, kills all the mobs.
killmonster .Map$,"Event Invasion::OnMyMobDead";
set .mobs_left, 0;
stopnpctimer;
end;

OnMyMobDead: //When a mob is killed
set .mobs_left, .mobs_left-1;
if (.mobs_left==0) {
	announce "[ Rune-Midgard Guard ]: The " + strmobinfo(1,.MvpID) + " has spawned in " + .Map$ + "!", bc_all;
	monster .Map$,0,0,"--ja--",.MvpID,1,"Event Invasion::OnSpecialMobDead";
} else
	announce "["+.mobs_left+"/250] " + strmobinfo(1,.MobID) + " left.",bc_map;
end;

OnSpecialMobDead:
announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all;
getitem .ItemID,1; //Change the [5] to the amount you wish to hand out.
end;
}

thank you very much you save my life =)

you can explain on how I could create an option to choose the map where the event would start?

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

thank you very much you save my life =)

Really ?! lol

you can explain on how I could create an option to choose the map where the event would start?

Well Okay. Delete this in onstart Label (map random) :

sleep2 1000;
set .@ran, rand(1,6);
if (.@ran == 6) set .Map$,"splendide";
if (.@ran == 5) set .Map$,"izlude";
if (.@ran == 4) set .Map$,"payon";
if (.@ran == 3) set .Map$,"geffen";
if (.@ran == 2) set .Map$,"morocc";
if (.@ran == 1) set .Map$,"prontera";

Then replace switch GM menu by this switch - we add 'Select Map Event'.

   	 switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Start Event:Select Map Event")) {
	case 1:
		mes "Which item would you like the MVP to drop?";
		mes "Please input the item ID:";
		input .ItemID;
		goto Main;
	case 2:
		mes "Please input the monster ID:";
		input .MobID;
		goto Main;
	case 3:
		mes "Please input the MVP ID:";
		input .MvpID;
		goto Main;
	case 4:
		mes "Starting the event now...";
		close2;
		if( .Map$ == "" ) set .Map$,"splendide";
		goto onstart;
	case 5:
		for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
			set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
		set .Map$, .@mp$[select( .@menuE$ )];
		mes "Map Event : "+.Map$;
		goto Main;
	}

and add this at the begining of the NPC. We can now choose these map in GM menu.

set .gm,50;//GM Level to access the GM Menu. Default: 50
setarray .@mp$[1], "splendide", "izlude", "payon", "geffen", "morocc", "prontera";

Edit : I forgot to add this !

OnMinute50: // Change this to your liking
   if( .Map$ == "" ) set .Map$, .@mp$[ rand(1, getarraysize(.@mp$)) ];
   if( !.ItemID ) set .ItemID, 601;
   if( !.MobID ) set .MobID, 1001;
   if( !.MvpID ) set .MvpID, 1002;

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


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

Edit : I forgot to add this !

OnMinute50: // Change this to your liking
if( .Map$ == "" ) set .Map$, .@mp$[ rand(1, getarraysize(.@mp$)) ];
if( !.ItemID ) set .ItemID, 601;
if( !.MobID ) set .MobID, 1001;
if( !.MvpID ) set .MvpID, 1002;

I did not understand where should I add it? and what are those numbers at the end? 601, 1001, 1002?

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

I did not understand where should I add it? and what are those numbers at the end? 601, 1001, 1002?

Add it after OnMinute50

If you don't configure mob, item (gained) or mvp and auto event start, your event wouldn't work. These numbers prevent an error in the mapserv, it's just a trick lol

601 = fly wing

1001 = scorpion

1002 = poring

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

Edit : I forgot to add this !

OnMinute50: // Change this to your liking
if( .Map$ == "" ) set .Map$, .@mp$[ rand(1, getarraysize(.@mp$)) ];
if( !.ItemID ) set .ItemID, 601;
if( !.MobID ) set .MobID, 1001;
if( !.MvpID ) set .MvpID, 1002;

I did not understand where should I add it? and what are those numbers at the end? 601, 1001, 1002?

NPC work thank you man =)

I did not understand where should I add it? and what are those numbers at the end? 601, 1001, 1002?

Add it after OnMinute50

If you don't configure mob, item (gained) or mvp and auto event start, your event wouldn't work. These numbers prevent an error in the mapserv, it's just a trick lol

601 = fly wing

1001 = scorpion

1002 = poring

I tried using the menu cities you've created in my npc a broadcaster, but did not work!

you can help me about it ?

npc broadcaster: broadcaster3.txt

i try to put menu city but dont work

npc original broadcaster: ( my old script work but i need to input city name , and if you put inccorect name you will lost you zeny and dont send BC, i want a city menu in this npc: broadcaster1.txt

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Well post your current script (use codebox)

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

// Broadcaster NPC:
// version: 1.0
// Custom Server NPC:
// scripted: Zelos
//
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

prontera,183,215,4 script Broadcaster 94,{

//what's the npc name to show in messages?
set @npcname$, "Broadcaster";

//NPC Name:
set @header$,"[^0000ff" + @npcname$ + "^000000]";

//NPC cost per Broadcast:
set @broadcastfee, 50000;

//Base LVL you need for Broadcast:
set @Baselvl,6;

//Check base lvl for broadcast:
set @checklevel,6;
//Maps
  setarray .@mp$[1], "splendide", "izlude", "payon", "geffen", "morocc", "prontera";

mes @header$;
mes "Hello ^3355FF"+strcharinfo(0)+"^000000";
mes "I am the ^FF0000Broadcaster^000000.";
mes "I can Broadcast a message for you";
next;

mes @header$;
mes "It costs ^ff0000"+ @broadcastfee +"^000000 zeny ";
next;

mes @header$;
mes "Would you like to Broadcast?";
switch (select("Yes","No")){

case 1:

if (Baselevel <@Baselvl){
mes @header$;
mes "I'm sorry, you must be at least Base Level ^0000FF"+@Baselvl+"^000000, before you can use the Broadcaster.";
close;

}

if(@Broadcast> gettimetick(2)) {
next;

mes @header$;
mes "Service will be available in 3 minutes.";	
close;


OnTimer60000:
mes "Service will be available in 2 minutes.";	
close;


OnTimer120000:
mes "Service will be available in 1 minute.";	
close;


OnTimer180000:
mes "Broadcasting Service Is Now Available.";  
close;

}

next;

mes "Where would you like to announce";
if( select("Whole Server:Particular City") == 2 )

{

next;

mes @header$;
mes "Input the name of the map you want to send the message";

for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
set .Map$, .@mp$[select( .@menuE$ )];

next;

mes @header$;
if(Zeny<@broadcastfee) goto $nozenybc;

{

set Zeny,zeny - @broadcastfee;
mes "What would you like to say?";

next;

input @broadcast$;
mes "Ok, i'm gonna broadcast that now";
mapannounce .Map$, strcharinfo(0)+": "+@broadcast$+"",bc_map,0xB1FB17;
mes "Message broadcasted";

close2;

set @Broadcast, gettimetick(2)+180;

end;

}

}

{

next;
mes @header$;
if(Zeny<@broadcastfee) goto $nozenybc;

{

set Zeny,zeny - @broadcastfee;
mes "What would you like to say?";
next;

input @broadcast$;
mes "Ok, i'm gonna broadcast that now";
announce strcharinfo(0)+": "+@broadcast$+"",0,0xB1FB17;
mes "Message broadcasted";

close2;
set @Broadcast, gettimetick(2)+180;
end;

}

}

case 2:
mes "Suit yourself";
close;

}

$nozenybc:

mes "I have to check that you have";
mes "enough money";
next;

mes @header$;
mes "Im sorry but you dont have ^ff0000"+@broadcastfee+"^000000 zeny";
mes "Go get it if you want to Broadcast";
close;

}

Well post your current script (use codebox)

posted above!

when i put all citys npc script get error:

"prontera", "morocc", "geffen", "payon", "alberta", "izlude", "aldebaran", "xmas (lutie)", "comodo", "yuno", "amatsu", "gonryun", "umbala", "niflheim", "louyang", "jawaii", "ayothaya", "einbroch", "hugel", "rachel", "veins", "moscovia", midgard camp", "manuk", "splendide", "brasilis", "el dicastes", "mora", "dewata", "malangdo island", "malaya port", "eclage";

and when i put all citys on NPC Invasion also get error!

Edited by Emistry
Please use [CODEBOX] or Attachments for long contents.
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

scovia", midgard camp", "m

Yo forgot a " before midgard camp !

Otherwise it seems to work.

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


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

LOL

scovia", midgard camp", "m

Yo forgot a " before midgard camp !

Otherwise it seems to work.

LOL fixed i dont see it ty man =)

when send BC and talk to the npc again, a message appears: "Sorry you have to wait for 3min.";

}

if(@Broadcast> gettimetick(2)) {

next;

mes @header$;

mes "Sorry you have to wait for 3min.";

close;

I would like to know how to configure that when I talk to the npc, missing 2 minutes, the message appears: "Sorry you have to wait for 2min."; and also 1 min appears "Sorry you have to wait for 1min." when they pass the final 1 min message appears: Broadcasting Service Is Now Available. and send me to the beginning of the npc.

Edited by ZelosAvalon
Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

You're welcome /no1

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

You're welcome /no1

finally finished the npc but it keeps starting automatically, I would like to msm I start the event! or to schedule a date and time for it to start! can review for me, and see which part automatically starts the event?

I dont want it to start automatically!


jupe_ele,36,53,6 script Event Invasion 105,{

   set .gm,50;//GM Level to access the GM Menu. Default: 50
setarray .@mp$[1], "prontera", "morocc", "geffen", "payon", "alberta", "izlude", "aldebaran", "xmas (lutie)", "comodo", "yuno", "amatsu", "gonryun", "umbala", "niflheim", "louyang", "jawaii", "ayothaya", "einbroch", "hugel", "rachel", "veins", "moscovia", "midgard camp", "manuk", "splendide", "brasilis", "el dicastes", "mora", "dewata", "malangdo island", "malaya port", "eclage";
// GM menu
//It allows GMs Level 50 or more to Start and Stop invasions.

if (getgmlevel()>.gm) {
if (.mobs_left) {
mes "[Event Invasion]";
mes "An invasion is in progress..";
mes "Location: " + .Map$;
mes "^FF0000"+.mobs_left+"^000000 Monsters left";
mes " ";
mes "Stop invasion?";
if(select("No:Yes")==1) close;
donpcevent "Event Invasion::onstop";
mes "Invasion stopped";
announce "The Invasion has been stopped by "+strcharinfo(0),bc_all;
close;
}

mes "[Event Invasion]";
mes "Please customize the Invasion event before starting it.";
Main:
next;
mes "[Event Invasion]";
mes "MVP Item Drop:[" + getitemname(.ItemID) + "]";
mes "Monsters Respawn:[" + strmobinfo(1,.MobID) + "]";
mes "MVP Respawn:[" + strmobinfo(1,.MvpID) + "]";
mes "Map Event will Start:["+.Map$+"]";
switch(select("Item [" + getitemname(.ItemID) + "]:Monster [" + strmobinfo(1,.MobID) + "]:MVP [" + strmobinfo(1,.MvpID) + "]:Select Map Event["+.Map$+"]:Start Event")) {
case 1:
mes "Which item would you like the MVP to drop?";
mes "Please input the item ID:";
input .ItemID;
goto Main;
case 2:
mes "Please input the monster ID:";
input .MobID;
goto Main;
case 3:
mes "Please input the MVP ID:";
input .MvpID;
goto Main;
case 4:
for ( set .@i, 1; .@i < getarraysize(.@mp$); set .@i, .@i + 1 )
set .@menuE$, .@menuE$ + .@mp$[.@i] + ":";
set .Map$, .@mp$[select( .@menuE$ )];
mes "Map Event : "+.Map$;
goto Main;
case 5:
mes "Starting the event now...";
close2;
goto onstart;
}
}

// If a player clicks the NPC, it displays:
mes "[Event Invasion]";
mes .mobs_left+" have invaded "+.Map$[.rand_map]+"!";
close;

/////////////////////////
//The actual NPC Script//
/////////////////////////

OnMinute50: // Change this to your liking
onstart:
if( .mobs_left ) end;
set .mobs_left, 1;
sleep2 1000;
announce "[ Rune-Midgard Guard ]: We have trouble here in the town " + .Map$ + "!", bc_all;
sleep2 5000;
announce "[ Rune-Midgard Guard ]: Everyone, we need your help to get rid of these monsters!", bc_all;
monster .Map$,0,0,"--ja--",.MobID,250,"Event Invasion::OnMyMobDead";
set .mobs_left, 250;
initnpctimer;
end;


onstop:
killmonster .Map$,"Event Invasion::OnSpecialMobDead";
OnTimer1805000: // 30 minutes later, kills all the mobs.
killmonster .Map$,"Event Invasion::OnMyMobDead";
set .mobs_left, 0;
stopnpctimer;
end;

OnMyMobDead: //When a mob is killed
set .mobs_left, .mobs_left-1;
if (.mobs_left==0) {
announce "[ Rune-Midgard Guard ]: The " + strmobinfo(1,.MvpID) + " has spawned in " + .Map$ + "!", bc_all;
monster .Map$,0,0,"--ja--",.MvpID,1,"Event Invasion::OnSpecialMobDead";
} else
announce "["+.mobs_left+"/250] " + strmobinfo(1,.MobID) + " left.",bc_map;
end;

OnSpecialMobDead:
announce strcharinfo(0)+" has fought off the Invasion and has been awarded a worthy prize!", bc_all;
getitem .ItemID,1; //Change the [5] to the amount you wish to hand out.
end;
}

Edited by ZelosAvalon
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  72
  • Topics Per Day:  0.02
  • Content Count:  181
  • Reputation:   33
  • Joined:  11/11/12
  • Last Seen:  

when send BC and talk to the npc again, a message appears: "Sorry you have to wait for 3min.";

}

if(@Broadcast> gettimetick(2)) {

next;

mes @header$;

mes "Sorry you have to wait for 3min.";

close;

I would like to know how to configure that when I talk to the npc, missing 2 minutes, the message appears: "Sorry you have to wait for 2min."; and also 1 min appears "Sorry you have to wait for 1min." when they pass the final 1 min message appears: Broadcasting Service Is Now Available. and send me to the beginning of the npc.

Okay replace

if(@Broadcast> gettimetick(2)) {
next;

mes @header$;
mes "Service will be available in 3 minutes.";
close;


OnTimer60000:
mes "Service will be available in 2 minutes.";
close;


OnTimer120000:
mes "Service will be available in 1 minute.";
close;


OnTimer180000:
mes "Broadcasting Service Is Now Available.";  
close;

}

by

if ( @Broadcast > gettimetick(2) ) {
next;
mes @header$;
for ( set .@i, 3; .@i > 0; set .@i, .@i - 1 )
	if ( @Broadcast > gettimetick(2) + (.@i-1)*60 ) {
		mes "Service will be available in "+ .@i +" minute"+ ((.@i-1)?"s":"")+ ".";
		break;
	}
close;
}

I dont want it to start automatically!

Well just remove

OnMinute50: // Change this to your liking

and your event won't start automatically !

ty ^^

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
Answer this question...

×   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...