Hi, AnnieRuru actually has this script. Probably you'll want to try to check this out.
// ....... if your server has { Overwriting user function [rand__] } please be happy .......... :D
function script rand__ {
[email protected] = getarg(0);
[email protected] = getarg(2, 0);
[email protected] = (
[email protected] == 0 ||
[email protected] >
[email protected] )?
[email protected] : (
[email protected] > 128 )? 128 :
[email protected];
while (
[email protected] <
[email protected] ) {
[email protected] =
[email protected] = rand(
[email protected],
[email protected] -1 ) ;
if ( getd("
[email protected]_"+
[email protected] ) == 0 ) {
[email protected] = ( getd("
[email protected]_"+
[email protected] ) )? getd( "
[email protected]_"+
[email protected] ) :
[email protected];
setd "
[email protected]_"+
[email protected],
[email protected];
setd "
[email protected]_"+
[email protected] ,
[email protected];
setd "
[email protected]_"+
[email protected] , 1;
set getelementofarray( getarg(1),
[email protected] ),
[email protected];
if (
[email protected] <
[email protected] )
set getelementofarray( getarg(1),
[email protected] ),
[email protected];
}
[email protected]++;
}
return
[email protected];
}
//===== eAthena Script ============================================
//= Portal Event
//===== By: =======================================================
//= ~AnnieRuru~
//===== Current Version: ==========================================
//= 1.0c
//===== Compatible With: ==========================================
//= rAthena 17092 SQL
//===== Description: ==============================================
//= keep guessing the correct portals to win
//===== Topic =====================================================
//= http://www.eathena.ws/board/index.php?showtopic=77115
//===== Additional Comments: ======================================
//= Izlude -> Alberta -> Morocc -> Payon -> Prontera
//= pvp_y_8-2 -> pvp_y_8-4 -> pvp_y_8-5 -> pvp_y_8-3 -> pvp_y_8-1
//=================================================================
// ========= Edit the Location of Starting Portal ======= Don't change the name !!! ===============
prontera,161,184,5 script starting_portal_event 45,2,2,{
for ( set
[email protected], 0;
[email protected] < getarraysize( getvariableofnpc( .winnerid, "portal_event" ) ); set
[email protected],
[email protected] +1 ) {
if ( getvariableofnpc( .winnerid[
[email protected]], "portal_event" ) == getcharid(3) ) {
dispbottom "Portal Event : You have completed this round, please try again next time.";
end;
}
}
warp "pvp_y_8-2", 128,110;
end;
}
- script portal_event_timer -1,{
// how long the event will last
OnTimer2400000: // 40 minutes
donpcevent "::OnPortalEvent_Reset";
end;
// set the time to start automatically
OnMinute00: // every hour
donpcevent "portal_event::Onstart";
end;
}
- script portal_event -1,{
end;
OnInit:
set
[email protected], strnpcinfo(1);
if (
[email protected] == 0 ) {
// ==============================================
// ==== Global settings =========================
// set the total rounds for this event
// if your server has too few players and wanna end this event fast, make it fewer rounds
// if your server has too many coorperative players and they end the event too soon, make it more rounds
// min - 3, max - 5
set .maxround, 5;
// set the minimum GM level to allow start/end the event manually
// to start, say "start" or "on"
// to end, say "end" or "off"
set .mingmlevel, 60;
// set the minimum GM level to get the answer/debug for this event
// to prevent some noobie event GM login normal account to cheat the answer
// to get the answer, say "debug" or "answer"
set .mingm_ans, 90;
// how many winner for this event
set .winner_amount, 3;
// when event ends, all the players still inside the map need to warp to starting town. Note: "SavePoint" do not work
setarray .event_end_warp$, "prontera",155,184;
// ==== Global setting end =======================
// ===============================================
disablenpc "starting_portal_event";
if ( .maxround < 3 ) set .maxround, 3;
if ( .maxround > 5 ) set .maxround, 5;
end;
}
disablenpc strnpcinfo(0);
end;
L_prize:
// ===============================================
// ==== Configure how the prize give out =========
// 1. normal method
// announce strcharinfo(0) +" has finish the Portal Event !", bc_all | bc_blue;
// getitem 501, 10;
// 2. Race Method
// 1st position
if ( .win == 1 ) {
announce strcharinfo(0) +" won 1st prize in Portal Event !", bc_all | bc_blue;
getitem 501, 10;
}
// 2nd position
else if ( .win == 2 ) {
announce strcharinfo(0) +" won 2nd prize in Portal Event !", bc_all | bc_blue;
getitem 501, 5;
}
// 3rd position
else if ( .win == 3 ) {
announce strcharinfo(0) +" won 3rd prize in Portal Event !", bc_all | bc_blue;
getitem 501, 3;
}
else { // the rest, 4th and so on
announce strcharinfo(0) +" has finish the Portal Event !", bc_all | bc_blue;
getitem 501, 1;
}
// ==== Configure ends ============================
// ================================================
return;
L_announce_start:
announce "Portal Event has started", bc_all | bc_blue;
return;
L_announce_end:
announce "Portal Event has ended", bc_all | bc_blue;
return;
L_final_portal_4gm: // gm should not steal the prizes from players
dispbottom "Portal Event : This is the final portal";
return;
Onstart:
set .win, 0;
deletearray .winnerid;
callsub L_announce_start;
enablenpc "starting_portal_event";
initnpctimer "portal_event_timer";
mapwarp "pvp_y_8-2", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-4", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-5", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-3", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-1", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
sleep 1; // round 1
setarray
[email protected], 111,150; setarray
[email protected], 147,147; setarray
[email protected], 128,225; setarray
[email protected], 104,231; setarray
[email protected], 85,216;
setarray
[email protected], 136,227; setarray
[email protected], 64,182; setarray
[email protected], 116,224; setarray
[email protected], 115,209; setarray
[email protected], 135,208;
setarray
[email protected], 58,175; setarray
[email protected], 66,172; setarray
[email protected], 84,177; setarray
[email protected], 86,152; setarray
[email protected], 88,141;
setarray
[email protected], 51,139; setarray
[email protected], 48,130; setarray
[email protected], 63,122; setarray
[email protected], 62,138; setarray
[email protected], 87,120;
setarray
[email protected], 94,84; setarray
[email protected], 85,91; setarray
[email protected], 90,106; setarray
[email protected], 111,87; setarray
[email protected], 96,167;
setarray
[email protected], 109,175; setarray
[email protected], 188,195; setarray
[email protected], 172,186; setarray
[email protected], 198,181; setarray
[email protected], 128,116;
setarray
[email protected], 158,175; setarray
[email protected], 161,162; setarray
[email protected], 137,175; setarray
[email protected], 134,160; setarray
[email protected], 148,39;
setarray
[email protected], 125,37; setarray
[email protected], 53,81; setarray
[email protected], 29,77; setarray
[email protected], 50,68; setarray
[email protected], 77,67;
setarray
[email protected], 96,72; setarray
[email protected], 137,77; setarray
[email protected], 119,84; setarray
[email protected], 160,84; setarray
[email protected], 168,95;
setarray
[email protected], 147,99; setarray
[email protected], 214,129; setarray
[email protected], 212,138; setarray
[email protected], 220,115; setarray
[email protected], 204,122;
setarray
[email protected], 165,144; setarray
[email protected], 145,107; setarray
[email protected], 114,97; setarray
[email protected], 136,84; setarray
[email protected], 116,129;
setarray
[email protected], 119,174; setarray
[email protected], 121,155; setarray
[email protected], 107,140; setarray
[email protected], 104,119; setarray
[email protected], 116,110;
setarray
[email protected], 134,106; setarray
[email protected], 136,93; setarray
[email protected], 138,134; setarray
[email protected], 155,121; setarray
[email protected], 121,97;
setarray
[email protected], 128,139; setarray
[email protected], 155,138; setarray
[email protected], 139,123; setarray
[email protected], 97,123; setarray
[email protected], 166,124;
set
[email protected], 8;
set
[email protected]_location, 70;
callfunc "rand__",
[email protected],
[email protected];
callfunc "rand__",
[email protected]_location,
[email protected];
deletearray .round1answer;
set
[email protected], 0;
while (
[email protected] <
[email protected] ) {
set
[email protected],
[email protected][
[email protected]] +1 ;
set
[email protected],
[email protected][
[email protected]] +1 ;
enablenpc "1_portal_event#"+
[email protected];
movenpc "1_portal_event#"+
[email protected], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
if (
[email protected] < 0 +2 ) { // 2 portals to next round
setarray getd(".m_1_"+
[email protected] +"_$"), "pvp_y_8-4", 0,0;
setarray .round1answer[ getarraysize(.round1answer) ], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
}
else if (
[email protected] < 2 +6 ) // 6 portals randomly warp to round 1
setarray getd(".m_1_"+
[email protected] +"_$"), "pvp_y_8-2", 0,0;
set
[email protected],
[email protected] +1 ;
}
sleep 1; // round 2
setarray
[email protected], 15,234; setarray
[email protected], 23,243; setarray
[email protected], 28,221; setarray
[email protected], 41,254; setarray
[email protected], 41,224;
setarray
[email protected], 65,233; setarray
[email protected], 41,190; setarray
[email protected], 63,187; setarray
[email protected], 64,147; setarray
[email protected], 59,133;
setarray
[email protected], 32,141; setarray
[email protected], 33,102; setarray
[email protected], 45,93; setarray
[email protected], 63,95; setarray
[email protected], 70,126;
setarray
[email protected], 64,114; setarray
[email protected], 46,115; setarray
[email protected], 66,82; setarray
[email protected], 41,67; setarray
[email protected], 34,41;
setarray
[email protected], 26,25; setarray
[email protected], 60,21; setarray
[email protected], 48,30; setarray
[email protected], 60,33; setarray
[email protected], 67,57;
setarray
[email protected], 71,35; setarray
[email protected], 79,55; setarray
[email protected], 90,80; setarray
[email protected], 96,116; setarray
[email protected], 87,131;
setarray
[email protected], 99,154; setarray
[email protected], 100,222; setarray
[email protected], 119,222; setarray
[email protected], 119,206; setarray
[email protected], 93,205;
setarray
[email protected], 119,190; setarray
[email protected], 87,188; setarray
[email protected], 119,180; setarray
[email protected], 79,160; setarray
[email protected], 123,148;
setarray
[email protected], 138,142; setarray
[email protected], 169,142; setarray
[email protected], 170,169; setarray
[email protected], 208,174; setarray
[email protected], 178,165;
setarray
[email protected], 199,151; setarray
[email protected], 223,116; setarray
[email protected], 247,115; setarray
[email protected], 247,91; setarray
[email protected], 223,68;
setarray
[email protected], 247,67; setarray
[email protected], 247,43; setarray
[email protected], 206,31; setarray
[email protected], 190,31; setarray
[email protected], 134,37;
setarray
[email protected], 116,38; setarray
[email protected], 90,35; setarray
[email protected], 117,73; setarray
[email protected], 150,84; setarray
[email protected], 141,73;
setarray
[email protected], 150,57; setarray
[email protected], 116,57; setarray
[email protected]3, 170,26; setarray
[email protected], 205,75; setarray
[email protected], 185,83;
setarray
[email protected], 193,108; setarray
[email protected], 205,55; setarray
[email protected], 211,83; setarray
[email protected], 206,90; setarray
[email protected], 206,98;
setarray
[email protected], 206,106; setarray
[email protected], 33,82; setarray
[email protected], 26,59; setarray
[email protected], 63,120; setarray
[email protected], 73,85;
setarray
[email protected], 127,85; setarray
[email protected], 163,57; setarray
[email protected], 236,27; setarray
[email protected], 235,101; setarray
[email protected], 196,131;
setarray
[email protected], 79,125; setarray
[email protected], 88,239; setarray
[email protected], 113,174; setarray
[email protected], 79,27; setarray
[email protected], 118,27;
setarray
[email protected], 71,204; setarray
[email protected], 69,239; setarray
[email protected], 70,178; setarray
[email protected], 71,154; setarray
[email protected], 83,98;
setarray
[email protected], 119,160; setarray
[email protected], 118,126; setarray
[email protected], 177,102; setarray
[email protected], 230,52; setarray
[email protected], 233,74;
setarray
[email protected], 85,176; setarray
[email protected], 48,169; setarray
[email protected], 45,145; setarray
[email protected], 195,54; setarray
[email protected], 197,64;
set
[email protected], 12;
set
[email protected]_location, 100;
callfunc "rand__",
[email protected],
[email protected];
callfunc "rand__",
[email protected]_location,
[email protected];
deletearray .round2answer;
set
[email protected], 0;
while (
[email protected] <
[email protected] ) {
set
[email protected],
[email protected][
[email protected]] +1 ;
set
[email protected],
[email protected][
[email protected]] +1 ;
enablenpc "2_portal_event#"+
[email protected];
movenpc "2_portal_event#"+
[email protected], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
if (
[email protected] < 0 +2 ) { // 2 portals to next round
setarray getd(".m_2_"+
[email protected] +"_$"), "pvp_y_8-5", 0,0;
setarray .round2answer[ getarraysize(.round2answer) ], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
}
else if (
[email protected] < 2 +7 ) // 7 portals randomly warp to round 2
setarray getd(".m_2_"+
[email protected] +"_$"), "pvp_y_8-4", 0,0;
else if (
[email protected] < 9 +3 ) // 3 portals randomly warp to round 1
setarray getd(".m_2_"+
[email protected] +"_$"), "pvp_y_8-2", 0,0;
set
[email protected],
[email protected] +1 ;
}
sleep 1; // round 3
setarray
[email protected], 23,296; setarray
[email protected], 49,289; setarray
[email protected], 71,288; setarray
[email protected], 68,270; setarray
[email protected], 50,259;
setarray
[email protected], 79,256; setarray
[email protected], 103,260; setarray
[email protected], 120,288; setarray
[email protected], 133,288; setarray
[email protected], 151,278;
setarray
[email protected], 125,272; setarray
[email protected], 160,296; setarray
[email protected], 185,296; setarray
[email protected], 198,290; setarray
[email protected], 206,288;
setarray
[email protected], 222,284; setarray
[email protected], 259,288; setarray
[email protected], 288,258; setarray
[email protected], 272,269; setarray
[email protected], 275,238;
setarray
[email protected], 281,220; setarray
[email protected], 299,207; setarray
[email protected], 288,186; setarray
[email protected], 247,251; setarray
[email protected], 223,268;
setarray
[email protected], 173,267; setarray
[email protected], 179,232; setarray
[email protected], 189,270; setarray
[email protected], 235,230; setarray
[email protected], 249,218;
setarray
[email protected], 160,225; setarray
[email protected], 143,249; setarray
[email protected], 121,248; setarray
[email protected], 116,220; setarray
[email protected], 87,230;
setarray
[email protected], 80,206; setarray
[email protected], 57,217; setarray
[email protected], 41,241; setarray
[email protected], 30,246; setarray
[email protected], 30,232;
setarray
[email protected], 30,217; setarray
[email protected], 26,199; setarray
[email protected], 54,199; setarray
[email protected], 55,183; setarray
[email protected], 23,164;
setarray
[email protected], 41,162; setarray
[email protected], 55,149; setarray
[email protected], 102,148; setarray
[email protected], 78,139; setarray
[email protected], 82,109;
setarray
[email protected], 52,120; setarray
[email protected], 34,130; setarray
[email protected], 46,146; setarray
[email protected], 74,95; setarray
[email protected], 45,108;
setarray
[email protected], 23,108; setarray
[email protected], 49,89; setarray
[email protected], 37,87; setarray
[email protected], 46,46; setarray
[email protected], 100,85;
setarray
[email protected], 96,66; setarray
[email protected], 133,127; setarray
[email protected], 141,103; setarray
[email protected], 140,85; setarray
[email protected], 116,54;
setarray
[email protected], 106,33; setarray
[email protected], 92,31; setarray
[email protected], 75,33; setarray
[email protected], 22,22; setarray
[email protected], 84,54;
setarray
[email protected], 117,39; setarray
[email protected], 121,31; setarray
[email protected], 145,38; setarray
[email protected], 128,59; setarray
[email protected], 155,60;
setarray
[email protected], 153,71; setarray
[email protected], 171,76; setarray
[email protected], 167,52; setarray
[email protected], 160,117; setarray
[email protected], 119,95;
setarray
[email protected], 159,18; setarray
[email protected], 188,33; setarray
[email protected], 207,34; setarray
[email protected], 197,66; setarray
[email protected], 231,30;
setarray
[email protected], 270,23; setarray
[email protected], 254,55; setarray
[email protected], 289,63; setarray
[email protected], 288,84; setarray
[email protected], 288,97;
setarray
[email protected], 288,110; setarray
[email protected], 288,129; setarray
[email protected], 267,80; setarray
[email protected], 243,73; setarray
[email protected], 248,97;
setarray
[email protected], 240,113; setarray
[email protected], 225,113; setarray
[email protected], 204,88; setarray
[email protected], 186,99; setarray
[email protected], 266,111;
setarray
[email protected], 268,123; setarray
[email protected], 278,134; setarray
[email protected], 244,152; setarray
[email protected], 284,171; setarray
[email protected], 268,188;
setarray
[email protected], 232,170; setarray
[email protected], 233,190; setarray
[email protected], 230,128; setarray
[email protected], 35,68; setarray
[email protected], 74,132;
setarray
[email protected], 70,153; setarray
[email protected], 78,185; setarray
[email protected], 79,239; setarray
[email protected], 210,249; setarray
[email protected], 234,212;
setarray
[email protected], 285,285; setarray
[email protected], 254,198; setarray
[email protected], 202,219; setarray
[email protected], 214,161; setarray
[email protected], 198,133;
set
[email protected], 14;
set
[email protected]_location, 120;
callfunc "rand__",
[email protected],
[email protected];
callfunc "rand__",
[email protected]_location,
[email protected];
deletearray .round3answer;
set
[email protected], 0;
while (
[email protected] <
[email protected] ) {
set
[email protected],
[email protected][
[email protected]] +1 ;
set
[email protected],
[email protected][
[email protected]] +1 ;
enablenpc "3_portal_event#"+
[email protected];
movenpc "3_portal_event#"+
[email protected], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
if (
[email protected] < 0 +2 ) { // 2 portals to next round
if ( .maxround == 3 )
setarray getd(".m_3_"+
[email protected] +"_$"), "give prize", 0,0;
else
setarray getd(".m_3_"+
[email protected] +"_$"), "pvp_y_8-3", 0,0;
setarray .round3answer[ getarraysize(.round3answer) ], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
}
else if (
[email protected] < 2 +7 ) // 7 portals randomly warp to round 3
setarray getd(".m_3_"+
[email protected] +"_$"), "pvp_y_8-5", 0,0;
else if (
[email protected] < 9 +3 ) // 3 portals randomly warp to round 2
setarray getd(".m_3_"+
[email protected] +"_$"), "pvp_y_8-4", 0,0;
else if (
[email protected] < 12 +2 ) // 2 portals randomly warp to round 1
setarray getd(".m_3_"+
[email protected] +"_$"), "pvp_y_8-2", 0,0;
set
[email protected],
[email protected] +1 ;
}
if ( .maxround == 3 ) end;
sleep 1; // round 4
setarray
[email protected], 227,330; setarray
[email protected], 218,306; setarray
[email protected], 253,308; setarray
[email protected], 257,285; setarray
[email protected], 276,282;
setarray
[email protected], 215,283; setarray
[email protected], 276,248; setarray
[email protected], 237,252; setarray
[email protected], 217,229; setarray
[email protected], 273,228;
setarray
[email protected], 239,201; setarray
[email protected], 253,204; setarray
[email protected], 237,176; setarray
[email protected], 203,183; setarray
[email protected], 195,180;
setarray
[email protected], 270,152; setarray
[email protected], 270,135; setarray
[email protected], 257,127; setarray
[email protected], 243,159; setarray
[email protected], 223,116;
setarray
[email protected], 211,120; setarray
[email protected], 219,100; setarray
[email protected], 202,108; setarray
[email protected], 261,110; setarray
[email protected], 268,89;
setarray
[email protected], 248,63; setarray
[email protected], 263,65; setarray
[email protected], 238,53; setarray
[email protected], 207,41; setarray
[email protected], 206,68;
setarray
[email protected], 144,65; setarray
[email protected], 182,84; setarray
[email protected], 139,41; setarray
[email protected], 121,27; setarray
[email protected], 106,47;
setarray
[email protected], 128,80; setarray
[email protected], 91,78; setarray
[email protected], 65,67; setarray
[email protected], 78,48; setarray
[email protected], 88,105;
setarray
[email protected], 56,113; setarray
[email protected], 14,143; setarray
[email protected], 24,133; setarray
[email protected], 64,157; setarray
[email protected], 96,89;
setarray
[email protected], 89,122; setarray
[email protected], 125,115; setarray
[email protected], 94,143; setarray
[email protected], 72,182; setarray
[email protected], 70,189;
setarray
[email protected], 101,190; setarray
[email protected], 72,224; setarray
[email protected], 72,326; setarray
[email protected], 83,335; setarray
[email protected], 92,305;
setarray
[email protected], 107,327; setarray
[email protected], 155,328; setarray
[email protected], 124,272; setarray
[email protected], 168,287; setarray
[email protected], 133,323;
setarray
[email protected], 156,247; setarray
[email protected], 126,204; setarray
[email protected], 190,233; setarray
[email protected], 166,188; setarray
[email protected], 135,158;
setarray
[email protected], 127,168; setarray
[email protected], 131,146; setarray
[email protected], 151,125; setarray
[email protected], 175,139; setarray
[email protected], 205,143;
setarray
[email protected], 194,136; setarray
[email protected], 203,90; setarray
[email protected], 195,84; setarray
[email protected], 140,86; setarray
[email protected], 155,107;
setarray
[email protected], 220,132; setarray
[email protected], 229,157; setarray
[email protected], 175,156; setarray
[email protected], 155,266; setarray
[email protected], 139,260;
setarray
[email protected], 134,238; setarray
[email protected], 115,183; setarray
[email protected], 179,251; setarray
[email protected], 248,226; setarray
[email protected], 219,262;
setarray
[email protected], 242,133; setarray
[email protected], 265,170; setarray
[email protected], 212,108; setarray
[email protected], 183,298; setarray
[email protected], 199,305;
setarray
[email protected], 177,177; setarray
[email protected], 110,201; setarray
[email protected]3, 248,278; setarray
[email protected], 173,242; setarray
[email protected], 92,215;
setarray
[email protected], 104,157; setarray
[email protected], 133,124; setarray
[email protected], 132,194; setarray
[email protected], 90,286; setarray
[email protected], 156,230;
setarray
[email protected], 156,209; setarray
[email protected], 275,144; setarray
[email protected], 186,113; setarray
[email protected], 119,60; setarray
[email protected], 141,335;
set
[email protected], 14;
set
[email protected]_location, 105;
callfunc "rand__",
[email protected],
[email protected];
callfunc "rand__",
[email protected]_location,
[email protected];
deletearray .round4answer;
set
[email protected], 0;
while (
[email protected] <
[email protected] ) {
set
[email protected],
[email protected][
[email protected]] +1 ;
set
[email protected],
[email protected][
[email protected]] +1 ;
enablenpc "4_portal_event#"+
[email protected];
movenpc "4_portal_event#"+
[email protected], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
if (
[email protected] < 0 +2 ) { // 2 portals to next round
if ( .maxround == 4 )
setarray getd(".m_4_"+
[email protected] +"_$"), "give prize", 0,0;
else
setarray getd(".m_4_"+
[email protected] +"_$"), "pvp_y_8-1", 0,0;
setarray .round4answer[ getarraysize(.round4answer) ], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
}
else if (
[email protected] < 2 +7 ) // 7 portals randomly warp to round 4
setarray getd(".m_4_"+
[email protected] +"_$"), "pvp_y_8-3", 0,0;
else if (
[email protected] < 9 +3 ) // 3 portals randomly warp to round 3
setarray getd(".m_4_"+
[email protected] +"_$"), "pvp_y_8-5", 0,0;
else if (
[email protected] < 12 +2 ) // 2 portals randomly warp to round 2
setarray getd(".m_4_"+
[email protected] +"_$"), "pvp_y_8-4", 0,0;
set
[email protected],
[email protected] +1 ;
}
if ( .maxround == 4 ) end;
sleep 1; // round 5
setarray
[email protected], 185,108; setarray
[email protected], 155,25; setarray
[email protected], 135,40; setarray
[email protected], 143,63; setarray
[email protected], 140,82;
setarray
[email protected], 133,107; setarray
[email protected], 119,40; setarray
[email protected], 91,45; setarray
[email protected], 71,37; setarray
[email protected], 60,42;
setarray
[email protected], 41,67; setarray
[email protected], 41,44; setarray
[email protected], 79,67; setarray
[email protected], 134,92; setarray
[email protected], 52,90;
setarray
[email protected], 98,74; setarray
[email protected], 84,89; setarray
[email protected], 74,90; setarray
[email protected], 72,99; setarray
[email protected], 29,110;
setarray
[email protected], 223,230; setarray
[email protected], 115,178; setarray
[email protected], 40,117; setarray
[email protected], 38,134; setarray
[email protected], 32,156;
setarray
[email protected], 37,170; setarray
[email protected], 40,181; setarray
[email protected], 23,204; setarray
[email protected], 40,104; setarray
[email protected], 69,123;
setarray
[email protected], 225,160; setarray
[email protected], 85,126; setarray
[email protected], 68,142; setarray
[email protected], 58,157; setarray
[email protected], 139,151;
setarray
[email protected], 183,144; setarray
[email protected], 36,226; setarray
[email protected], 65,228; setarray
[email protected], 34,241; setarray
[email protected], 42,268;
setarray
[email protected], 40,280; setarray
[email protected], 50,293; setarray
[email protected], 58,294; setarray
[email protected], 74,270; setarray
[email protected], 58,249;
setarray
[email protected], 50,227; setarray
[email protected], 71,284; setarray
[email protected], 80,294; setarray
[email protected], 34,303; setarray
[email protected], 45,346;
setarray
[email protected], 124,152; setarray
[email protected], 89,333; setarray
[email protected], 105,335; setarray
[email protected], 156,360; setarray
[email protected], 108,144;
setarray
[email protected], 121,144; setarray
[email protected], 259,339; setarray
[email protected], 94,167; setarray
[email protected], 99,150; setarray
[email protected], 94,158;
setarray
[email protected], 238,318; setarray
[email protected], 227,283; setarray
[email protected], 92,184; setarray
[email protected], 263,279; setarray
[email protected], 273,257;
setarray
[email protected], 280,236; setarray
[email protected], 270,219; setarray
[email protected], 239,267; setarray
[email protected], 289,203; setarray
[email protected], 280,195;
setarray
[email protected], 248,229; setarray
[email protected], 263,228; setarray
[email protected], 256,192; setarray
[email protected], 272,187; setarray
[email protected], 269,160;
setarray
[email protected], 281,136; setarray
[email protected], 270,127; setarray
[email protected], 272,107; setarray
[email protected], 273,95; setarray
[email protected], 272,78;
setarray
[email protected], 37,353; setarray
[email protected], 271,42; setarray
[email protected], 256,40; setarray
[email protected], 237,39; setarray
[email protected], 220,40;
setarray
[email protected], 205,28; setarray
[email protected], 188,48; setarray
[email protected], 165,41; setarray
[email protected], 131,56; setarray
[email protected], 167,83;
setarray
[email protected], 165,99; setarray
[email protected], 186,94; setarray
[email protected], 200,98; setarray
[email protected], 216,100; setarray
[email protected], 197,57;
setarray
[email protected], 195,72; setarray
[email protected], 208,73; setarray
[email protected], 257,102; setarray
[email protected], 256,123; setarray
[email protected], 241,142;
setarray
[email protected], 221,116; setarray
[email protected], 236,108; setarray
[email protected], 180,77; setarray
[email protected], 183,130; setarray
[email protected], 209,153;
setarray
[email protected], 220,181; setarray
[email protected], 204,191; setarray
[email protected], 180,183; setarray
[email protected], 184,158; setarray
[email protected], 165,167;
setarray
[email protected], 204,216; setarray
[email protected], 178,222; setarray
[email protected], 186,248; setarray
[email protected], 219,227; setarray
[email protected], 215,247;
setarray
[email protected], 210,265; setarray
[email protected], 192,268; setarray
[email protected], 125,251; setarray
[email protected], 120,268; setarray
[email protected], 102,266;
setarray
[email protected], 96,255; setarray
[email protected], 85,248; setarray
[email protected], 95,223; setarray
[email protected], 133,222; setarray
[email protected], 107,213;
setarray
[email protected], 107,191; setarray
[email protected], 105,167; setarray
[email protected], 132,182;
set
[email protected], 14;
set
[email protected]_location, 128;
callfunc "rand__",
[email protected],
[email protected];
callfunc "rand__",
[email protected]_location,
[email protected];
deletearray .round5answer;
set
[email protected], 0;
while (
[email protected] <
[email protected] ) {
set
[email protected],
[email protected][
[email protected]] +1 ;
set
[email protected],
[email protected][
[email protected]] +1 ;
enablenpc "5_portal_event#"+
[email protected];
movenpc "5_portal_event#"+
[email protected], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
if (
[email protected] < 0 +2 ) { // 2 portals to victory
setarray getd(".m_5_"+
[email protected] +"_$"), "give prize", 0,0;
setarray .round5answer[ getarraysize(.round5answer) ], getd("
[email protected]"+
[email protected] +"[0]"), getd("
[email protected]"+
[email protected] +"[1]");
}
else if (
[email protected] < 2 +7 ) // 7 portals randomly warp to round 5
setarray getd(".m_5_"+
[email protected] +"_$"), "pvp_y_8-1", 0,0;
else if (
[email protected] < 9 +3 ) // 3 portals randomly warp to round 4
setarray getd(".m_5_"+
[email protected] +"_$"), "pvp_y_8-3", 0,0;
else if (
[email protected] < 12 +2 ) // 2 portals randomly warp to round 3
setarray getd(".m_5_"+
[email protected] +"_$"), "pvp_y_8-5", 0,0;
set
[email protected],
[email protected] +1 ;
}
deletearray
[email protected];
deletearray
[email protected];
end;
OnPortalEvent_Reset:
if ( atoi( strnpcinfo(1) ) == 0 ) {
stopnpctimer "portal_event_timer";
callsub L_announce_end;
disablenpc "starting_portal_event";
sleep 8000;
mapwarp "pvp_y_8-2", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-4", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-5", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-3", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
mapwarp "pvp_y_8-1", .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
end;
}
deletearray getd(".m_"+ strnpcinfo(1) +"_"+ strnpcinfo(2) +"_$");
disablenpc strnpcinfo(0);
end;
OnWhisperGlobal:
if ( getgmlevel() < .mingmlevel ) end;
else if ( compare( @whispervar0$, "on" ) || compare( @whispervar0$, "start" ) )
goto Onstart;
else if ( compare( @whispervar0$, "off" ) || compare( @whispervar0$, "end" ) )
donpcevent "::OnPortalEvent_Reset";
else if ( getgmlevel() >= .mingm_ans && ( compare( @whispervar0$, "debug" ) || compare( @whispervar0$, "answer" ) ) ) {
for ( set
[email protected], 1;
[email protected] <= .maxround; set
[email protected],
[email protected] +1 ) {
dispbottom "Round "+
[email protected] +":";
for ( set
[email protected], 0;
[email protected] < getarraysize( getd(".round"+
[email protected] +"answer") ); set
[email protected],
[email protected] +2 )
dispbottom " x = "+ getd(".round"+
[email protected] +"answer["+
[email protected] +"]") +", y = "+ getd(".round"+
[email protected] +"answer["+(
[email protected] +1 )+"]");
}
}
end;
OnTouch:
for ( set
[email protected], 0;
[email protected] < getarraysize(.winnerid); set
[email protected],
[email protected] +1 ) {
if ( .winnerid[
[email protected]] == getcharid(3) ) end;
}
set
[email protected], strnpcinfo(1);
if ( getd(".m_"+
[email protected] +"_"+ strnpcinfo(2) +"_$[0]") == "give prize" ) {
if ( getgmlevel() >= .mingmlevel ) {
callsub L_final_portal_4gm;
end;
}
set .win, .win + 1;
callsub L_prize;
warp .event_end_warp$[0], atoi(.event_end_warp$[1]), atoi(.event_end_warp$[2]);
set .winnerid[ getarraysize(.winnerid) ], getcharid(3);
if ( getarraysize(.winnerid) == .winner_amount )
donpcevent "::OnPortalEvent_Reset";
}
else if ( getd(".m_"+
[email protected] +"_"+ strnpcinfo(2) +"_$[0]") == "" )
end;
else
warp getd(".m_"+
[email protected] +"_"+ strnpcinfo(2) +"_$[0]"), atoi( getd(".m_"+
[email protected] +"_"+ strnpcinfo(2) +"_$[1]") ), atoi( getd(".m_"+
[email protected] +"_"+ strnpcinfo(2) +"_$[2]") );
end;
}
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#1 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#2 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#3 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#4 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#5 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#6 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#7 45,2,2
pvp_y_8-2,0,0,5 duplicate(portal_event) 1_portal_event#8 45,2,2
// this is needed because there is a short passageway at right down corner of izlude town
pvp_y_8-2,177,56,5 warp #portal_event_debug 2,2,pvp_y_8-2,128,110
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#1 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#2 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#3 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#4 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#5 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#6 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#7 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#8 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#9 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#10 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#11 45,2,2
pvp_y_8-4,0,0,5 duplicate(portal_event) 2_portal_event#12 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#1 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#2 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#3 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#4 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#5 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#6 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#7 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#8 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#9 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#10 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#11 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#12 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#13 45,2,2
pvp_y_8-5,0,0,5 duplicate(portal_event) 3_portal_event#14 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#1 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#2 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#3 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#4 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#5 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#6 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#7 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#8 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#9 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#10 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#11 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#12 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#13 45,2,2
pvp_y_8-3,0,0,5 duplicate(portal_event) 4_portal_event#14 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#1 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#2 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#3 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#4 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#5 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#6 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#7 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#8 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#9 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#10 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#11 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#12 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#13 45,2,2
pvp_y_8-1,0,0,5 duplicate(portal_event) 5_portal_event#14 45,2,2
pvp_y_8-2 mapflag nowarp
pvp_y_8-4 mapflag nowarp
pvp_y_8-5 mapflag nowarp
pvp_y_8-3 mapflag nowarp
pvp_y_8-1 mapflag nowarp
pvp_y_8-2 mapflag nowarpto
pvp_y_8-4 mapflag nowarpto
pvp_y_8-5 mapflag nowarpto
pvp_y_8-3 mapflag nowarpto
pvp_y_8-1 mapflag nowarpto
pvp_y_8-2 mapflag noteleport
pvp_y_8-4 mapflag noteleport
pvp_y_8-5 mapflag noteleport
pvp_y_8-3 mapflag noteleport
pvp_y_8-1 mapflag noteleport
pvp_y_8-2 mapflag nomemo
pvp_y_8-4 mapflag nomemo
pvp_y_8-5 mapflag nomemo
pvp_y_8-3 mapflag nomemo
pvp_y_8-1 mapflag nomemo
pvp_y_8-2 mapflag nosave SavePoint
pvp_y_8-4 mapflag nosave SavePoint
pvp_y_8-5 mapflag nosave SavePoint
pvp_y_8-3 mapflag nosave SavePoint
pvp_y_8-1 mapflag nosave SavePoint