Explorar o código

added functions to completely save/load of quest skills

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7028 54d463be-8e91-2dee-dedb-b68131a5f0ec
Lupus %!s(int64=19) %!d(string=hai) anos
pai
achega
08b2f67d8a
Modificáronse 2 ficheiros con 46 adicións e 1 borrados
  1. 4 0
      npc/Changelog.txt
  2. 42 1
      npc/other/Global_Functions.txt

+ 4 - 0
npc/Changelog.txt

@@ -36,6 +36,10 @@ Musashiden
 
 Date		Added
 ======
+07/05
+	* Added Save/Load Quest Skills (1st/2nd Class quest skills!) global functions. To test and
+	  insert into Valhalla NPC. They use ONE variable for all skills [Lupus]
+
 06/06
 	* Fixed missing function problems for Kafra, also now using cleararray instead of assigning blank variables to every other array [Evera]
 	* Implemented the Shinokas quest, thanks to Dj-Yhn for scripting it. [MasterOfMuppets]

+ 42 - 1
npc/other/Global_Functions.txt

@@ -3,7 +3,7 @@
 //===== By: ================================================== 
 //= Lupus, kobra_k88
 //===== Current Version: ===================================== 
-//= 1.9
+//= 1.91
 //===== Compatible With: ===================================== 
 //= eAthena 1.0
 //===== Description: ========================================= 
@@ -20,6 +20,7 @@
 //= 1.7 Added "F_ItemName" function, added a great sample for "F_ItemName"
 //= 1.8 Added Job Vars clear for Extended classes: TK,SL,SG [Lupus]
 //= 1.9 Added "F_ClearGarbage" func that clears outdated, wasted variables [Lupus]
+//= 1.91 Added "F_SaveQuestSkills","F_Load?Skills" functions [Lupus]
 //============================================================ 
 
 
@@ -70,6 +71,7 @@ function	script	F_ClearGarbage	{
 	if(nif_q_done) {set nif_q_done,0; set MISC_QUEST,MISC_QUEST | 64;}
 	if(MORGEN >= 2) {set MISC_QUEST,MISC_QUEST | 4;}
 	set MORGEN,0; set nif_t,0;
+	//set QSK1,0; set QSK2,0; set QSK3,0; set QSK4,0; 
 	return;
 }
 
@@ -410,3 +412,42 @@ function	script	getJobName	{
 			return "omghaxor";
 	}
 }
+
+//////////////////////////////////////////////////////////////////////////////////
+// *** Function "F_SaveQuestSkills": Store learnt quest skills 
+//////////////////////////////////////////////////////////////////////////////////
+function	script	F_SaveQuestSkills	{
+	set ADV_QSK,0;
+	//1st classes quest skills
+	for(set @i, 0; @i < 14; set @i, @i + 1){
+		if(getskilllv(144+@i)) set ADV_QSK,ADV_QSK|pow(2,@i);
+	}
+	//2nd classes quest skills
+	for(set @i, 0; @i < 19; set @i, @i + 1){
+		if(getskilllv(1001+@i)) set ADV_QSK,ADV_QSK|pow(2,14+@i);
+	}
+	return;
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+// *** Function "F_Load1Skills": Restore learnt 1st class quest skills
+//////////////////////////////////////////////////////////////////////////////////
+function	script	F_Load1Skills	{
+	//1st classes quest skills
+	for(set @i, 0; @i < 14; set @i, @i + 1){
+		if(ADV_QSK|pow(2,@i) == ADV_QSK) skill 144+@i,1,0;
+	}
+	return;
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+// *** Function "F_Load2Skills": Restore learnt 2nd class quest skills
+//////////////////////////////////////////////////////////////////////////////////
+function	script	F_Load2Skills	{
+	//2nd classes quest skills
+	for(set @i, 0; @i < 19; set @i, @i + 1){
+		if(ADV_QSK|pow(2,14+@i) == ADV_QSK) skill 1001+@i,1,0;
+	}
+	set ADV_QSK,0; //Clear var
+	return;
+}