Ragnarok Developer
Please Login to able Download the File
Ragnarok Developer
Please Login to able Download the File
Ragnarok Developer

Official Forums
 
HomeHome  Latest imagesLatest images  SearchSearch  RegisterRegister  Log in  
Your Ad Here

 

 Disguise NPC

Go down 
AuthorMessage
JhayUrsolino
Admin



Posts : 15
Join date : 12/09/2012

Disguise NPC Empty
PostSubject: Disguise NPC   Disguise NPC EmptyWed 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
//-----------------------------------------------------------------------------------
Back to top Go down
http://jrursolino.blogspot.com
 
Disguise NPC
Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Ragnarok Developer :: Scripts :: Scripts Release-
Jump to: