/*//----------------------------------------------------------------// //----------------Scripted by Spera---------------------------------// //------------------FinalStrikeRO-----------------------------------// //--------------------Disguise Event NPC v2-------------------------// /-------------------------------------------------------------------//*/ gonryun,172,132,5 script Disguise CP 738,{ if (getgmlevel()<20) { mes "^3399FF[Disguise CP]^000000"; mes "Sorry, you are not a GM!"; close; } mes "^3399FF[Disguise CP]^000000"; mes "Hello GameMaster!"; mes "What do you want to do?"; switch(select("Start Event:Stop Event:Set number of rounds[^E50000"+$guessrounds+"^000000]:Set prize^E50000 ["+getitemname($guessprize)+"]^000000 ^E50000 ["+ $guessprizecount + "]^000000:Nothing")) { case 1: { next; mes "^3399FF[Disguise CP]^000000"; mes "Please confirm by typing START."; input .@confirm$; if (.@confirm$ == "START") { donpcevent "guessAnnouncer::OnGMStart"; close; } mes "Confirmation failed"; close; break; } case 2: { next; mes "^3399FF[Disguise CP]^000000"; mes "Please confirm by typing STOP."; input .@confirm$; if (.@confirm$ == "STOP") { donpcevent "guessAnnouncer::OnGMStop"; close; } mes "Confirmation failed"; close; break; } case 3: { next; mes "^3399FF[Disguise CP]^000000"; mes "Please type in the new number."; input $guessrounds; if ($guessrounds > 30) set $guessrounds, 30; else if ($guessrounds < 1) set $guessrounds, 1; close; } case 4: { next; mes "^3399FF[Disguise CP]^000000"; mes "Please type in the new prize id."; input .@guessprizeid; if (getitemname(.@guessprizeid) == "null" || getitemname(.@guessprizeid) == "") {next; mes "^3399FF[Disguise CP]^000000"; mes "Error"; mes "This item does not exist in the database..."; close;} set $guessprize, .@guessprizeid; next; mes "^3399FF[Disguise CP]^000000"; mes "Please type in the amount."; input .@guessprizeamount; if (!.@guessprizeamount) set .@guessprizeamount,1 ; set $guessprizecount,.@guessprizeamount; next; mes "^3399FF[Disguise CP]^000000"; mes "Prize has been set to ^E50000 "+ getitemname($guessprize)+ "^000000 and the amount to ^E50000 " +$guessprizecount+"^000000"; close; } case 5: { next; mes "^3399FF[Disguise CP]^000000"; mes "Good bye"; close; } } } poring_w01,97,93,4 script Disguise NPC 795,{ if (!$guessbegin) { mes "^3399FF[Disguise NPC]^000000"; mes "The event is going to start soon!"; close; } end; OnInit: .sec_per_msg = 6; setarray .message$, "Alright. Let's start this game!", "But first I will explain the rules.", "I am going to disguise into a random monster.", "You have to guess the monster's name and shout it out.", "In order to win the round, you have to type the correct answer FAST!", "If you win, the prize will have been given to your inventory right away.", "Don't bother about the use of capital and small initial letters. And you don't need to make a pub!", "Now get ready!"; set .message_size,getarraysize( .message$ ); getmapxy( .npc_map$,.npc_x,.npc_y,1 ); end; OnStart: set $guessbegin, 1; set .DisguiseWon, 0; set .winner_name_lis$,""; if (!$DisguiseRound) { for( set .@i,0; .@i < .message_size; set .@i,.@i + 1 ){ npctalk ""+.message$[.@i]; mapannounce .npc_map$,""+.message$[.@i],bc_map; sleep ( .sec_per_msg * 1000 ); } } else if ($DisguiseRound < $guessrounds-1) { npctalk "Get ready for the next round!"; mapannounce .npc_map$,"Get ready for the next round!",bc_map; setnpctimer 0; sleep 10000; } else { npctalk "Last round now!"; mapannounce .npc_map$,"Last round now!",bc_map; sleep 3000; npctalk "Get ready!"; sleep 10000; } sleep 2000; do { set .@guessrepeat, 0; set $monster, 1000 + rand(1,950); for (set .@k, 0; .@k = $guessrounds) { set $DisguiseRound, 0; sleep 3000; announce "The Disguise Event is over now! Thanks for participating!",bc_all; npctalk "The Disguise Event is over now! Thanks for participating!"; sleep 10000; mapannounce .npc_map$,"You will now be transported back to Prontera. See ya!",bc_map; npctalk "You will now be transported back to Prontera. See ya!"; sleep 3000; emotion 12; sleep 10000; set $guessactive, 0; mapwarp "poring_w01.gat","prontera.gat",156,181; setnpcdisplay "Disguise NPC",933; disablenpc "Disguise NPC"; end; } goto OnStart; } end; winround: setnpctimer 0; deletepset 1; set .DisguiseWon, 1; set $DisguiseRound, $DisguiseRound + 1; if( !compare( ","+.winner_name_lis$+",",","+strcharinfo(0)+"," ) ){ if( .winner_name_lis$ == "" ) set .winner_name_lis$,strcharinfo(0); else set .winner_name_lis$,.winner_name_lis$ + "," + strcharinfo(0); } mapannounce .npc_map$,strcharinfo(0)+" got my name right! x30 SPECs rewarded!",bc_map; npctalk strcharinfo(0) + " got my right name! x30 SPECs rewarded!"; getitem $guessprize, $guessprizecount; sleep2 8000; npctalk $MonsterName$ + " is the correct answer."; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} if ($DisguiseRound >= $guessrounds) { set $DisguiseRound, 0; set $guessactive, 0; sleep 3000; announce "The Disguise Event is over now! Thanks for participating!",bc_all; npctalk "The Disguise Event is over now! Thanks for participating!"; sleep 10000; mapannounce .npc_map$,"You will now be transported back to Prontera. See ya!",bc_map; npctalk "You will now be transported back to Prontera. See ya!"; sleep 2000; emotion 12; sleep 10000; mapwarp .npc_map$,"prontera.gat",156,181; setnpcdisplay "Disguise NPC",933; disablenpc "Disguise NPC"; end; } sleep 5000; goto OnStart; end; } //----------------------------------------------------------------------------------- //----------------------------------------------------------------------------------- - script guessAnnouncer -1,{ OnGMStart: if ($guessactive) end; set $guessactive, 1; announce "It's time for the Disguise Event now!",0; set $guessbegin, 0; sleep 10000; if (!$guessactive) end; announce "If you want to join, come to middle Prontera and enter the warp portal.",0; enablenpc "guesswarp"; enablenpc "Disguise NPC"; sleep 10000; announce "Number of Rounds and Winners: "+$guessrounds,0; sleep 10000; announce "Prize: "+ getitemname($guessprize) + " x " + $guessprizecount,0; sleep 10000; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} announce "The portal is going to close in 2 minutes.",0; sleep 120000; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} announce "The portal has been closed.",0; disablenpc "guesswarp"; set $DisguiseRound, 0; sleep 5000; if (!$guessactive) {disablenpc "Disguise NPC"; end;} if(getmapusers("poring_w01") == 0) { disablenpc "Disguise NPC"; set $guessactive, 0; end; } donpcevent "Disguise NPC::OnStart"; end; OnGMStop: if ($guessactive) { set $guessactive, 0; announce "The disguise event has been stopped.",0; set $DisguiseRound, 0; mapwarp "poring_w01.gat","prontera.gat",156,181; setnpcdisplay "Disguise NPC",933; disablenpc "Disguise NPC"; disablenpc "guesswarp"; } end; OnClock0130: OnClock0530: OnClock0830: OnClock1130: OnClock1530: OnClock1930: OnClock2330: if ($guessactive) end; set $guessactive, 1; announce "It's time for the Disguise Event now!",0; set $guessbegin, 0; sleep 10000; if (!$guessactive) end; announce "If you want to join, come to Prontera and enter the warp portal.",0; enablenpc "guesswarp"; enablenpc "Disguise NPC"; sleep 10000; Prize: "+ getitemname($guessprize) + " x " + $guessprizecount,0; sleep 10000; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} announce "The portal is going to close in 2 minutes.",0; sleep 120000; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} announce "The portal has been closed.",0; disablenpc "guesswarp"; sleep 5000; if (!$guessactive) {disablenpc "Disguise NPC"; end;} announce "Next Disguise Event will start after 4 hours.",0; set $DisguiseRound, 0; if(getmapusers("poring_w01") == 0) { disablenpc "Disguise NPC"; set $guessactive, 0; end; } donpcevent "Disguise NPC::OnStart"; end; OnInit: disablenpc "Disguise NPC"; disablenpc "guesswarp"; set $guessactive, 0; setarray $Forbidden[0],1003,1006,1017,1021,1022,1027,1043,1136,1137,1168,1171,1172,1173,1181,1210,1217,1218,1223,1284,1325,1326,1327,1328,1329,1330,1331,1332,1333,1334,1335,1336,1337,1338,1339,1340,1341,1342,1343,1344,1345,1346,1347,1348,1349,1350,1351,1352,1353,1354,1355,1356,1357,1358,1359,1360,1361,1362,1363,1407,1411,1414,1496,1501,1900,1948,1892,1949,1950,1983,1984,2010,1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,1171,1172,1173,1181,1210,1222,1223,1224,1225,1226,1227,1228,1233,1284,1407,1411,1414,1496,1501,1900,1996,2002,2003,2004,2005,2006,2007,2011,2012,2025,2028,2029,2030,2031,2032,2033,2034,2035,2036,2037,2038,2039,2040,2041,2042,2043,2044,2045,2046,2047,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2075,2076,2077,2078,2079,2080,2081,2084,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,1900,1901,1902,1903,1237,1239,1145,1175,1209,1841,1842,1843,1844,3014,3001,3002,2114,2115,2117,2118,2119,2120,6049,6050,6051,6052,2200,2205,2207; } //----------------------------------------------------------------------------------- //------------------Warp Portal------------------------------------------------------ prontera,156,181,0 warp guesswarp 2,2,poring_w01,97,101 //----------------------------------------------------------------------------------- //------------------Map Flags-------------------------------------------------------- poring_w01 mapflag nowarpto poring_w01 mapflag noskill poring_w01 mapflag nosave poring_w01 mapflag nomemo poring_w01 mapflag noteleport poring_w01 mapflag nowarp //-----------------------------------------------------------------------------------