Jump to content
  • 0

Disguise Npc How to set More hours?


Question

Posted (edited)

//===== rAthena Script =======================================
//= Disguise Event
//===== By: ==================================================
//= GmOcean
//===== Current Version: =====================================
//= 5.1
//===== Compatible With: =====================================
//= rAthena SVN
//===== Additional Comments: =================================
//= 5.0 Last update by GmOcean.
//= 5.1 Cleaned and standardized, mostly. [Euphy]
//============================================================
prontera,160,155,4 script Disguise Event 795,{
// Currently set to run every two hours.
// To change times, edit the OnClock labels below.
set .@GMLevel,60; // GM level required to access NPC.
set .@n$,"[^0000FFDisguise NPC^000000]";
if (getgmlevel()>=.@GMLevel) {
 mes .@n$;
 mes "Select an option.";
 next;
 switch(select("Turn ON/OFF Event:Event Settings")) {
  case 1:
mes .@n$;
if ($@EventON) {
 mes "The Event is currently: [^0000FFON^000000]";
 mes "Would you like to turn it OFF?"; }
else {
 mes "The Event is currently: [^FF0000OFF^000000]";
 mes "Would you like to turn it ON?"; }
if(select("Yes:No")==2) close;
if ($@EventON) {
 set $@EventON,0; set $@Timer,0;
 setnpctimer 0; stopnpctimer;
 announce "A GM has decided to turn the Disguise Event off. As a result no further prizes will be given.",bc_map | bc_blue;
 deletepset 1;
 setnpcdisplay "Disguise Event",795;
 close; }
set $@EventON,1; set $@Timer,1; setnpctimer 0; initnpctimer;
set $@ResetCounter,$@ResetCounter+1;
announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue;
announce "The Event is being held in Prontera.",bc_all | bc_blue;
close;
  case 2:
mes .@n$;
mes "Pick a setting to modify.";
next;
switch(select("Monster Display:Number of Rounds:Prize Settings")) {
 case 1:
  setarray .@r$[0],"Disguise as all monsters.","Disguise as MVPs only.";
  mes .@n$;
  mes "Choose a disguise rule.";
  next;
  set $Rule, select(implode(.@r$,":"));
  mes .@n$;
  mes "The Disguise Rule has been set:";
  mes "  > ^0055FF"+.@r$[$Rule-1]+"^000000";
  close;
 case 2:
  mes .@n$;
  mes "Input the number of rounds you want the event to last.";
  mes "Current number: [^0000FF"+$Rounds+"^000000]";
  next;
  input .@Rounds;
  set $Rounds,.@Rounds;
  mes .@n$;
  mes "The number of rounds has been changed to "+$Rounds+".";
  close;
 case 3:
  mes .@n$;
  mes "Input the Item ID of the prize given each round.";
  mes "Current item: [^0000FF"+getitemname($Prize)+"^000000] (ID #"+$Prize+")";
  next;
  input .@Prize;
  mes .@n$;
  if (getitemname(.@Prize)=="" || getitemname(.@Prize)=="null") {
   mes "That item does not exist. Please try again.";
   close; }
  set $Prize,.@Prize;
  mes "Input the amount to be given.";
  next;
  input .@amount;
  mes .@n$;
  if (.@amount<=0 || .@amount>=10000) {
   mes "That amount is invalid. Using default ammount of 1.";
   set .@amount,1;
   next;
   mes .@n$; }
  set $PrizeAmt,.@amount;
  mes "The Prize has been changed successfully.";
  mes "Prize: "+$PrizeAmt+"x [^0000FF"+getitemname($Prize)+"^000000]";
  close;
}
 }
}
if ($@EventON) end;
mes .@n$;
mes "Welcome.";
mes "How may I be of assistance?";
if(select("Information:Nothing, just passing through.")==2) close;
next;
mes .@n$;
mes "This event is quite simple.";
mes "At the start of the event, I will";
mes "disguise myself as a random";
mes "monster. You have to shout";
mes "that monter's name out loud.";
next;
mes "If you are correct, you will receive";
mes "a prize. If not, keep trying!";
mes "That's all that there is to this event.";
close;
OnInit:
set $@EventON,0;
set $@Wait,0;
set $@Winner,0;
set $@ResetCounter,0;
set $Points,$Points;
if (!$Rounds) set $Rounds,10;
else set $Rounds,$Rounds;
if (!$Prize) set $Prize,512;
else set $Prize,$Prize;
if (!$PrizeAmt) set $PrizeAmt,1;
else set $PrizeAmt,$PrizeAmt;
if ($Rule) set $Rule,1;
else set $Rule,$Rule;
setarray $@MVP[0],1038,1039,1046,1059,1086,1087,1112,1115,1147,1150,1157,1159,1190,1251,1252,1272,1312,1373,
			   1389,1399,1418,1492,1502,1511,1583,1623,1630,1646,1647,1648,1649,1650,1651,1658,1685,1688,
   1708,1719,1734,1751,1768,1779,1785,1802,1832,1871,1874,1885,1917,1980,2022,2068,2087,2131,
   2156,2165;
setarray $@BlackList[0], 1003,1006,1017,1021,1022,1027,1043,1075,1136,1137,1168,1171,1172,1173,1181,1210,1217,1218,
  1222,1223,1224,1225,1226,1227,1228,1233,1284,1407,1411,1414,1495,1501,1900,1996,2000,2001,
  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,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,
  2099,2100,2101,2012,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,
  2117,2118;
setarray $@BlackList2[0],2119,2120,2121,2123,2124,2125,1496;
end;
OnClock0000:
OnClock0200:
OnClock0400:
OnClock0600:
OnClock0800:
OnClock1000:
OnClock1200:
OnClock1400:
OnClock1600:
OnClock1800:
OnClock2000:
OnClock2200:
set $@ResetCounter,$@ResetCounter+1;
set $@EventON,1;
set $@Timer,1;
set $@Wait,1;
announce "The Disguise Event will begin in 3 minutes.",bc_all | bc_blue;
announce "The Event is being held in Prontera.",bc_all | bc_blue;
setnpctimer 0;
initnpctimer;
end;
OnTimer10000:
if ($@Timer || $@Change) end;
set $@Wait,0;
goto iDisguise;
end;
OnTimer30000:
if ($@Timer) end;
set $@Change,0;
setnpcdisplay "Disguise Event",795;
npctalk "You took too long to guess what I was. Please wait 10 seconds while I disguise again.";
specialeffect 725;
set $MonsterName$,"";
deletepset 1;
stopnpctimer;
setnpctimer 0;
initnpctimer;
end;
OnTimer60000:
if ($@Timer!=1) end;
announce "The Disguise Event will begin in 2 minutes.",bc_all | bc_blue;
announce "The Event is being held in Prontera.",bc_all | bc_blue;
end;
OnTimer120000:
if ($@Timer!=1) end;
announce "The Disguise Event will begin 1 minute.",bc_all | bc_blue;
announce "The Event is being held in Prontera.",bc_all | bc_blue;
end;
OnTimer180000:
if ($@Timer!=1) end;
announce "The Disguise Event has begun!",bc_all | bc_blue;
announce "The Event is being held in Prontera.",bc_all | bc_blue;
set $@Timer,0; stopnpctimer;
setnpctimer 0; initnpctimer;
goto iDisguise;
end;
iDisguise:
if ($Rule==1) {
 set $@Winner,0;
 set $@Monster,1000+rand(1,995);
 for(set .@BL,0; .@BL<getarraysize($@BlackList); set .@BL,.@BL+1)
  if ($@Monster==$@BlackList[.@BL] || $@Monster==$@BlackList2[.@BL]) goto iDisguise;
 if ($@Monster==$@LastMonster) goto iDisguise;
 set $@LastMonster,$@Monster;
 set $MonsterName$,getmonsterinfo($@Monster,0); }
if ($Rule==2) {
 set $@Winner,0;
 set $@Monster,rand(49);
 set $MonsterName$,getmonsterinfo($@MVP[$@Monster],0); }
deletepset 1;
defpattern 1,"([^:]+):.\\s*"+$MonsterName$+".*", "iCorrect";
activatepset 1;
if ($Rule==1) setnpcdisplay "Disguise Event",$@Monster;
if ($Rule==2) setnpcdisplay "Disguise Event",$@MVP[$@Monster];
set $@Change,1;
setnpctimer 0;
end;
iCorrect:
if ($@Winner) {
 dispbottom "Someone has already won this round."; end; }
set $@Winner,1;
set $@RoundCount,$@RoundCount+1;
deletepset 1;
activatepset 1;
getitem $Prize,$PrizeAmt;
announce strcharinfo(0)+" is correct! I was disguised as: "+$MonsterName$+"",bc_map | bc_blue;
if ($@RoundCount>=$Rounds) {
 setnpcdisplay "Disguise Event",795;
 set $@RoundCount,0; set $@Change,0; set $@EventON,0;
 setnpctimer 0; stopnpctimer;
 npctalk "Thank you all for playing. That was the last round of the Disguise Event. Come play again later.";
 end; }
setnpcdisplay "Disguise Event",795;
set $@Change,0;
setnpctimer 0;
end;
}

How can i set like 4-6Hours daily on this like a timer?? thank you in advance

Edited by Euphy
Codeboxed

6 answers to this question

Recommended Posts

Posted

isnt i already give you the example and answer in post#2 ???

OnClock<hour><minute>:
OnMinute<minute>:
OnHour<hour>:
On<weekday><hour><minute>:
OnDay<month><day>:

This will execute when the server clock hits the specified date or time. Hours
and minutes are given in military time. ('0105' will mean 01:05 AM). Weekdays
are Sun,Mon,Tue,Wed,Thu,Fri,Sat. Months are 01 to 12, days are 01 to 31.
Remember the zero. 

  • Upvote 1
Posted (edited)

As stated by Emistry, check post #2....

This is really spoon feeding and you should try it by yourself. The answer is right on post # 2..

Just delete all onClock timers on this line:

xkAlU.png

then change to this:

OnClock0000
OnClock0400
OnClock0800
OnClock1200
OnClock1600
OnClock2000

Edited by Jezu
  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...