//===== Hercules Script =======================================
//= Poring Summoner
//===== Created By: ===========================================
//= Mysterious
//===== Current Version: ======================================
//= 1.2
//===== Link: =================================================
//= Old - http://www.eathena.ws/board/index.php?showtopic=236779
//===== Description: ==========================================
//= Basically what this event does is summon a set of Normal
//= and Special Porings. Normal Porings don't drop anything,
//= Special Porings do.
//=============================================================
prontera,158,185,5 script Poring Summoner 1_F_MARIA,{
mes "[Poring Summoner]";
if ( getgmlevel() < 10 ) {
if ( .Event )
mes "There is no Poring Summon Event on now.";
else {
mes "There is a Poring Summon Event on now!";
mes "Location: " + .Map$;
mes "Special Porings: " + .SpecialPorings;
mes "Normal Porings: " + .NormalPorings;
}
close;
}
mes "Please customize the Poring Summon Event:";
next;
Main:
mes "[Poring Summoner]";
switch ( select (
"Item [" + getitemname($poring_summon_ItemID) + "]",
"Special Porings [" + $poring_summon_Special + "]",
"Normal Porings [" + $poring_summon_Normal + "]:Start Event:End Event" ) ) {
case 1:
mes "Which item would you like Special Porings to drop?";
mes "Please input the item ID:";
input .@itemid;
if ( getitemname( .@itemid ) == "null" ) {
mes "invalid item ID";
next;
goto Main;
}
$poring_summon_ItemID = .@itemid;
next;
goto Main;
case 2:
mes "How many Special Porings would you like me to summon?";
input $poring_summon_Special, 1, 1000;
next;
goto Main;
case 3:
mes "How many Normal Porings would you like me to summon?";
input $poring_summon_Normal, 1, 1000;
next;
goto Main;
case 4:
mes "Starting the event now...";
donpcevent strnpcinfo(0) +"::OnStartEvent";
close;
case 5:
mes "Ending the event now...";
donpcevent strnpcinfo(0) +"::OnEndEvent";
close;
}
close;
OnStartEvent:
OnHour02: //CHANGE THIS TO THE HOUR YOU WOULD LIKE THIS EVENT TO LOAD!
OnHour05:
OnHour09:
OnHour14:
OnHour17:
OnHour20:
OnHour23:
.Map$ = callfunc( "F_Rand",
"dic_fild01",
"dic_fild02",
"izlude",
"payon",
"geffen",
"morocc",
"prontera" );
// "guild_vs5" );
.Event = true;
.SpecialPorings = $poring_summon_Special;
.NormalPorings = $poring_summon_Normal;
monster .Map$, 0,0, "Poring", 1002, .SpecialPorings, "Poring Summoner::OnSpecialKill";
monster .Map$, 0,0, "Poring", 1002, .NormalPorings, "Poring Summoner::OnNormalKill";
announce "The Poring Event has begun!",bc_all;
announce "Location: " + .Map$,bc_all;
announce "Special Porings: " + .SpecialPorings, bc_all;
announce "Normal Porings: " + .NormalPorings, bc_all;
initnpctimer;
end;
OnEndEvent:
if ( .Event )
announce "The Poring Summon Event is now over!", bc_all;
killmonster .Map$, "All";
.Event = false;
end;
//OnTimer216000000: .. LOL 6 hours
OnTimer1800000:
announce "Poring Summoner has ended. No one killed the Porings.", bc_all;
killmonster .Map$, "All";
.Event = false;
stopnpctimer;
end;
OnNormalKill:
.NormalPorings--;
goto PoringCount;
OnSpecialKill:
.SpecialPorings--;
announce strcharinfo(0) + " got a " + getitemname($poring_summon_ItemID) + "!", bc_map;
getitem $poring_summon_ItemID, 1;
goto PoringCount;
PoringCount:
announce "Special Porings: " + .SpecialPorings + " || Normal Porings: " + .NormalPorings, bc_map;
if ( !.SpecialPorings )
goto OnEndEvent;
end;
OnInit:
if ( !$poring_summon_ItemID && !$poring_summon_Special && !$poring_summon_Normal ) { // initialize the value
$poring_summon_ItemID = Poring_Coin;
$poring_summon_Special = 20;
$poring_summon_Normal = 40;
}
end;
}