Jump to content
  • 0

Disguise Npc How to set More hours?


Techno

Question


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  07/02/12
  • Last Seen:  

//===== 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
Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

OnClock0000:
OnClock0400:
OnClock0800:
OnClock1200:
OnClock1600:
OnClock2000:

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  07/02/12
  • Last Seen:  

I dont get what you mean by That sorry like where i put the seconds?

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

isnt that already inside your script ? just edit the time

xkAlU.png

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  11
  • Topics Per Day:  0.00
  • Content Count:  34
  • Reputation:   0
  • Joined:  07/02/12
  • Last Seen:  

how to set the time though i dont get like onclock2200 2000 etc whats that hours minutes seconds??

Can you gimme like a complete example

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10013
  • Reputation:   2348
  • Joined:  10/28/11
  • Last Seen:  

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
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  29
  • Topics Per Day:  0.01
  • Content Count:  566
  • Reputation:   34
  • Joined:  11/17/11
  • Last Seen:  

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
Link to comment
Share on other sites

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.

×
×
  • Create New...