JhayUrsolino Admin
Posts : 15 Join date : 12/09/2012
| Subject: Disguise NPC Wed Sep 19, 2012 4:16 am | |
| * GM Control Panel * Some Code Changes Event starts all 2 hours. Can be started manually too. Maps that can be changed: warp portal : que_qsch05,253,320 cp: yuno_pre,33,95 playzone: poring_c01 - Code:
-
/*//----------------------------------------------------------------// //----------------Scripted by Spera---------------------------------// //------------------FinalStrikeRO-----------------------------------// //--------------------Disguise Event NPC v2-------------------------// /-------------------------------------------------------------------//*/
yuno_pre,33,95,2 script Disguise CP 968,{
if (getgmlevel()<50) { 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_c01,102,99,4 script Disguise NPC 794,{
if (!$guessbegin) { mes "^3399FF[Disguise NPC]^000000"; mes "The event is going to start soon!"; close; } end;
OnStart: set $guessbegin, 1; set .DisguiseWon, 0; if (!$DisguiseRound) { npctalk "Alright. Let's get it over with ~.~ "; sleep 4000; npctalk "But first I will explain to you how to play the game."; sleep 6000; npctalk "I am going to disguise into a random monster."; sleep 5000; npctalk "You have to guess the monster's name and shout it out."; sleep 5000; npctalk "Don't bother about the use of capital and small initial letters."; sleep 8000; npctalk "Now get ready."; sleep 5000; } else if ($DisguiseRound < $guessrounds-1) { npctalk "Get ready for the next round."; setnpctimer 0; sleep 8000; } else { npctalk "Last round now!"; sleep 2000; npctalk "Get ready."; sleep 6000; }
do { set .@guessrepeat, 0; set $monster, 1000 + rand(1,950); for (set .@k, 0; .@k <getarraysize($Forbidden); set .@k, .@k+1) { if ($monster == $Forbidden[.@k]) { set .@guessrepeat, 1; break; } } } while (.@guessrepeat); setnpctimer 0; initnpctimer; setnpcdisplay "Disguise NPC",$monster; set $MonsterName$, strmobinfo(1,$monster); defpattern 1, "([^:]+):.*\\s"+$MonsterName$+"(.*)", "winround"; activatepset 1; npctalk "What's my name?"; sleep 3000; npcwalkto 102,103; sleep 2000; npcwalkto 102,99; end; OnTimer10000: if (!.DisguiseWon) { npctalk "Come on. What monster am I?"; sleep 3000; npcwalkto 102,103; sleep 2000; npcwalkto 102,99; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} } end;
OnTimer25000: if (!.DisguiseWon) { npctalk "Nobody knows that monster?"; sleep 3000; npcwalkto 102,103; sleep 2000; npcwalkto 102,99; } end;
OnTimer35000: if (!.DisguiseWon) { npctalk "You get 10 more seconds to guess my name."; sleep 3000; npcwalkto 102,103; sleep 2000; npcwalkto 102,99; } end;
OnTimer45000: if (!.DisguiseWon) { npctalk "Round is over."; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} set $DisguiseRound, $DisguiseRound + 1; sleep 3000; deletepset 1; npctalk $MonsterName$ + " would have been the correct answer."; sleep 5000; if ($DisguiseRound >= $guessrounds) { set $DisguiseRound, 0; sleep 3000; npctalk "Event is over now!"; sleep 3500; npctalk "See ya guys"; sleep 2000; emotion 12; sleep 1000; set $guessactive, 0; mapwarp "poring_c01.gat","que_qsch05.gat",252,341; setnpcdisplay "Disguise NPC",794; disablenpc "Disguise NPC"; end; } goto OnStart; } end;
winround: setnpctimer 0; deletepset 1; set .DisguiseWon, 1; set $DisguiseRound, $DisguiseRound + 1; npctalk strcharinfo(0) + " got my right name!",0; sleep2 3000; npctalk $MonsterName$ + " is the correct answer."; sleep2 3000; npctalk "Take this as a reward."; getitem $guessprize, $guessprizecount; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} if ($DisguiseRound >= $guessrounds) { set $DisguiseRound, 0; set $guessactive, 0; sleep 3000; npctalk "Event is over now!"; sleep 3500; npctalk "See ya guys"; sleep 2000; emotion 12; sleep 1000; mapwarp "poring_c01.gat","que_qsch05.gat",252,341; setnpcdisplay "Disguise NPC",794; disablenpc "Disguise NPC"; end; } sleep 5000; goto OnStart; end;
}
//----------------------------------------------------------------------------------- //-----------------------------------------------------------------------------------
- script guessAnnouncer -1,{
OnGMStart: if ($guessactive) end; set $guessactive, 1; announce "A Gamemaster has started the Disguise Event",0; set $guessbegin, 0; sleep 3000; if (!$guessactive) end; announce "If you want to join, come to the main town, head downwards and enter the warp portal.",0; enablenpc "guesswarp"; enablenpc "Disguise NPC"; sleep 3000; announce "Number of Rounds: "+$guessrounds,0; sleep 2000; announce "Prize: "+ getitemname($guessprize) + " x " + $guessprizecount,0; sleep 2000; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} announce "The portal is going to close in one minute.",0; sleep 60000; 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_c01") == 0) { disablenpc "Disguise NPC"; set $guessactive, 0; end; }
donpcevent "Disguise NPC::OnStart"; end;
OnGMStop: if ($guessactive) { set $guessactive, 0; announce "A Gamemaster has stopped the Disguise Event",0; set $DisguiseRound, 0; mapwarp "poring_c01.gat","que_qsch05.gat",252,341; setnpcdisplay "Disguise NPC",794; disablenpc "Disguise NPC"; disablenpc "guesswarp"; } end;
OnClock0200: OnClock0400: OnClock0600: OnClock0800: OnClock1000: OnClock1200: OnClock1400: OnClock1600: OnClock1800: OnClock2000: OnClock2200: OnClock0000: if ($guessactive) end; set $guessactive, 1; announce "The server is starting a Disguise Event now.",0; set $guessbegin, 0; sleep 3000; if (!$guessactive) end; announce "If you want to join, come to the main town, head downwards and enter the warp portal.",0; enablenpc "guesswarp"; enablenpc "Disguise NPC"; sleep 2000; announce "Prize: "+ getitemname($guessprize) + " x " + $guessprizecount,0; sleep 2000; if (!$guessactive) {disablenpc "guesswarp"; disablenpc "Disguise NPC"; end;} announce "The portal is going to close in one minute.",0; sleep 60000; 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 Event will start in 2 hours.",0; set $DisguiseRound, 0; if(getmapusers("poring_c01") == 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,1324,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;
}
//----------------------------------------------------------------------------------- //------------------Warp Portal------------------------------------------------------ que_qsch05,253,320,0 warp guesswarp 2,2,poring_c01,103,95 //----------------------------------------------------------------------------------- //------------------Map Flags-------------------------------------------------------- poring_c01 mapflag nowarpto poring_c01 mapflag noskill poring_c01 mapflag nosave poring_c01 mapflag nomemo poring_c01 mapflag noteleport //-----------------------------------------------------------------------------------
| |
|