Przeglądaj źródła

- Updated Questboard to 1.4.4 (Added Quest Delay)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16450 54d463be-8e91-2dee-dedb-b68131a5f0ec
tr0n93 13 lat temu
rodzic
commit
2dfa991555
1 zmienionych plików z 27 dodań i 3 usunięć
  1. 27 3
      npc/custom/quests/questboard.txt

+ 27 - 3
npc/custom/quests/questboard.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= tr0n
 //===== Current Version: =====================================
-//= 1.3.4
+//= 1.4.4
 //===== Compatible With: ===================================== 
 //= rAthena SVN
 //===== Description: =========================================
@@ -14,6 +14,7 @@
 // 1.2.0 Rewrote checkmob and killcounter
 // 1.3.1 Added level restriction
 // 1.3.4 Added Reward Item Amount
+// 1.4.4 Added Quest delay
 //============================================================
 
 prontera,129,215,5	script	Questboard	857,{
@@ -42,7 +43,7 @@ prontera,129,215,5	script	Questboard	857,{
 		goto L_checkitems;
 	}
 	
-	if(h_run==1) {
+	if(h_run==1){
 		mes "[^FF7700Questboard^000000]";
 		mes "^0000FF"+getd("." + currentquest$ + "_huntingname$")+"^000000";
 		mes "--------------------------------";
@@ -87,6 +88,14 @@ case 1:
 		set .@collectmenu$, .@collectmenu$ + "[" + getd("." +(.@i+1)+"_collectionmin") + " - " + getd("." +(.@i+1)+"_collectionmax") + "] " + getd("." + (.@i+1) + "_collectionname$");
 	}
 	set .@selection,select(.@collectmenu$);
+	if(gettimetick(2) < getd(.@selection + "_collection_delay")){
+		set .@time_left, getd(.@selection + "_collection_delay")-gettimetick(2);
+		mes "[^FF7700Questboard^000000]";
+		if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again.";
+		if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again.";
+		mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again.";
+		close;
+	}
 	mes "[^FF7700Questboard^000000]";
 	mes "^0000FF"+getd("." + .@selection + "_collectionname$")+"^000000";
 	mes "--------------------------------";
@@ -126,6 +135,14 @@ case 2:
 		set .@huntmenu$, .@huntmenu$ + "[" + getd("." +(.@i+1)+"_huntingmin") + " - " + getd("." +(.@i+1)+"_huntingmax") + "] " + getd("." + (.@i+1) + "_huntingname$");
 	}
 	set .@selection,select(.@huntmenu$);
+	if(gettimetick(2) < getd(.@selection + "_hunting_delay")){
+		set .@time_left, getd(.@selection + "_hunting_delay")-gettimetick(2);
+		mes "[^FF7700Questboard^000000]";
+		if(.@time_left < 60) mes "You have to wait ^0000FF"+.@time_left+" seconds^000000 to do this quest again.";
+		if(.@time_left < 3600) mes "You have to wait ^0000FF"+.@time_left/60+" minutes^000000 to do this quest again.";
+		mes "You have to wait ^0000FF"+.@time_left/60/60+" hours^000000 to do this quest again.";
+		close;
+	}
 	mes "[^FF7700Questboard^000000]";
 	mes "^0000FF"+getd("." + .@selection + "_huntingname$")+"^000000";
 	mes "--------------------------------";
@@ -181,8 +198,9 @@ L_checkitems:
 	if(getd("." +currentquest$+"_collectionprize")!=0) getitem(getd("." +currentquest$+"_collectionprize"),getd("." +currentquest$+"_collectionamount"));
 	set Zeny,Zeny+getd("." +currentquest$+"_collectionzeny");
 	getexp getd("." +currentquest$+"_collectionexp["+0+"]"),getd("." +currentquest$+"_collectionexp["+1+"]");
+	setd(currentquest$ + "_collection_delay"),gettimetick(2)+.quest_delay;
 	set currentquest$, "";
-	set c_run, 0; 
+	set c_run, 0;
 	close;
 	
 L_checkmobs:
@@ -214,6 +232,7 @@ L_checkmobs2:
 	if(getd("." +currentquest$+"_huntingprize")!=0) getitem(getd("." +currentquest$+"_huntingprize"),getd("." +currentquest$+"_huntingamount"));
 	set Zeny, Zeny+getd("." +currentquest$+"_huntingzeny");
 	getexp getd("." +currentquest$+"_huntingexp["+0+"]"),getd("." +currentquest$+"_huntingexp["+1+"]");
+	setd(currentquest$ + "_hunting_delay"),gettimetick(2)+.quest_delay;
 	set currentquest$, "";
 	set h_run, 0;
 	close;
@@ -241,6 +260,10 @@ OnInit:
 	set .collection, 1;
 	set .hunting, 1;
 	
+	//Quest Delay (seconds)
+	//24 hours = 86400 seconds
+	set .quest_delay, 0;
+	
 	//Checks if quests are loaded (prevents out of index)
 	if(.questsloaded==1) end;
 		set .questsloaded, 1;
@@ -248,6 +271,7 @@ OnInit:
 		//Add Collection Quests here
 		//AddCollection("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Item ID>,<Item Amount>,...);
 		
+		
 		//Add Hunting Quests here
 		//AddHunting("<Quest Name>",<Min Lvl>,<Max Lvl>,<Reward|Item ID>,<Reward|Item Amount>,<Zeny Reward>,<Base EXP>,<Job EXP>,<Monster ID>,<Monster Amount>,...);