summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--conf/battle_athena.conf2
-rw-r--r--db/skill_db.txt38
-rw-r--r--npc/001-1_Tulimshar/_import.txt1
-rw-r--r--npc/001-1_Tulimshar/trader.txt56
-rw-r--r--npc/021-2_Tulimshar/government_building.txt63
5 files changed, 140 insertions, 20 deletions
diff --git a/conf/battle_athena.conf b/conf/battle_athena.conf
index 5bd98111..782a05bd 100644
--- a/conf/battle_athena.conf
+++ b/conf/battle_athena.conf
@@ -231,7 +231,7 @@ mob_count_rate: 100
// Quest skills can be learned? (Note 1)
// Setting this to yes can open an exploit on your server!
-quest_skill_learn: no
+quest_skill_learn: yes
// When skills are reset, quest skills are reset as well? (Note 1)
// Setting this to yes can open an exploit on your server!
diff --git a/db/skill_db.txt b/db/skill_db.txt
index f43ee8c6..d1563303 100644
--- a/db/skill_db.txt
+++ b/db/skill_db.txt
@@ -1,22 +1,24 @@
//id, range, hit, inf, pl, nk, max, list_num, castcancel, cast_defence_rate, inf2, maxcount, skill_type, blow_count
-1, 0, 0, 0, 0, 0, 9, 0, no, 0, 0, 0, none, 0 //NV_BASIC
-2, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0 //SM_SWORD
-4, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //SM_RECOVERY
-9, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MG_SRECOVERY
-36, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MC_INCCARRY
-37, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MC_DISCOUNT
-38, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MC_OVERCHARGE
-48, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0 //TF_DOUBLE
-49, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0 //TF_MISS
-52, 1, 6, 4, 0, 0, 100, 1, no, 0, 1, 0, none, 0 //TF_POISON
-142, 0, 6, 4, 0, 1, 1, 1, no, 0, 1, 0, none, 0 //NV_FIRSTAID
-144, 0, 0, 0, 0, 0, 1, 0, no, 0, 1, 0, none, 0 //SM_MOVINGRECOVERY
-146, 0, 0, 0, 0, 0, 1, 0, no, 0, 1, 0, weapon, 0 //SM_AUTOBERSERK
-150, 0, 6, 4, 0, 1, 1, 1, no, 0, 1, 0, weapon, 5 //TF_BACKSLIDING
-176, 1, 6, 4, 0, 0, 100, 1, no, 0, 1, 0, none, 0 //NPC_POISON
-188, 1, 6, 4, 0, 0, 100, 1, no, 0, 1, 0, none, 0 //NPC_POISONATTACK
-196, 0, 0, 4, 0, 1, 10, 1, no, 0, 2, 0, magic, 0 //NPC_SUMMONSLAVE
-197, 0, 0, 4, 0, 1, 10, 1, no, 0, 2, 0, none, 0 //NPC_EMOTION
+1, 0, 0, 0, 0, 0, 1, 0, no, 0, 0, 0, none, 0 //NV_EMOTE
+2, 0, 0, 0, 0, 0, 1, 0, no, 0, 0, 0, none, 0 //NV_TRADE
+3, 0, 0, 0, 0, 0, 2, 0, no, 0, 0, 0, none, 0 //NV_PARTY
+4, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0 //SM_SWORD
+6, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //SM_RECOVERY
+11, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MG_SRECOVERY
+38, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MC_INCCARRY
+39, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MC_DISCOUNT
+40, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, none, 0 //MC_OVERCHARGE
+50, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0 //TF_DOUBLE
+51, 0, 0, 0, 0, 0, 10, 0, no, 0, 0, 0, weapon, 0 //TF_MISS
+54, 1, 6, 4, 0, 0, 100, 1, no, 0, 1, 0, none, 0 //TF_POISON
+144, 0, 6, 4, 0, 1, 1, 1, no, 0, 1, 0, none, 0 //NV_FIRSTAID
+146, 0, 0, 0, 0, 0, 1, 0, no, 0, 1, 0, none, 0 //SM_MOVINGRECOVERY
+148, 0, 0, 0, 0, 0, 1, 0, no, 0, 1, 0, weapon, 0 //SM_AUTOBERSERK
+152, 0, 6, 4, 0, 1, 1, 1, no, 0, 1, 0, weapon, 5 //TF_BACKSLIDING
+178, 1, 6, 4, 0, 0, 100, 1, no, 0, 1, 0, none, 0 //NPC_POISON
+190, 1, 6, 4, 0, 0, 100, 1, no, 0, 1, 0, none, 0 //NPC_POISONATTACK
+198, 0, 0, 4, 0, 1, 10, 1, no, 0, 2, 0, magic, 0 //NPC_SUMMONSLAVE
+199, 0, 0, 4, 0, 1, 10, 1, no, 0, 2, 0, none, 0 //NPC_EMOTION
340, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0 //TMW_MAGIC
341, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0 //TMW_MAGIC_LIFE
342, 0, 0, 0, 0, 0, 5, 0, no, 0, 0, 0, magic, 0 //TMW_MAGIC_WAR
diff --git a/npc/001-1_Tulimshar/_import.txt b/npc/001-1_Tulimshar/_import.txt
index b66c4168..6e189ffd 100644
--- a/npc/001-1_Tulimshar/_import.txt
+++ b/npc/001-1_Tulimshar/_import.txt
@@ -17,4 +17,5 @@ npc: npc/001-1_Tulimshar/rewards_master.txt
npc: npc/001-1_Tulimshar/rules.txt
npc: npc/001-1_Tulimshar/sandra.txt
npc: npc/001-1_Tulimshar/soul-menhir.txt
+npc: npc/001-1_Tulimshar/trader.txt
npc: npc/001-1_Tulimshar/vincent.txt
diff --git a/npc/001-1_Tulimshar/trader.txt b/npc/001-1_Tulimshar/trader.txt
new file mode 100644
index 00000000..73221326
--- /dev/null
+++ b/npc/001-1_Tulimshar/trader.txt
@@ -0,0 +1,56 @@
+//
+
+001-1.gat,57,33,0 script Trader 115,{
+ set @TRADE_SKILL, 2;
+ if (getskilllv(@TRADE_SKILL) > 0) goto L_Has;
+
+ mes "[Trader]";
+ mes "\"Hello. I came here to trade wares with the people of Tulimshar. Unfortunately for you, I've traded everything I had.\"";
+ next;
+ menu
+ "Oh. I'll go then.", -,
+ "You don't have anything?", L_More;
+ close;
+
+L_More:
+ mes "[Trader]";
+ mes "\"No. I have nothing for you. Except...\"";
+ next;
+ menu
+ "Yes?", L_Except,
+ "Ok then.", -;
+ close;
+
+L_Except:
+ mes "[Trader]";
+ mes "\"I could teach you how to trade. It'll cost you 5GP.\"";
+ next;
+ menu
+ "Sure", L_Teach,
+ "No thank you", -;
+ close;
+
+L_Teach:
+ if (zeny < 5) L_NotEnoughMoney;
+ set zeny, zeny - 5;
+ setskill @TRADE_SKILL, 1;
+ mes "[Trader]";
+ mes "\"You can initiate trade with someone by right-clicking on them and choosing trade.";
+ mes "You'll both add the items and set the GP you're putting up then press propose trade.";
+ mes "After both parties have proposed their side, you can both review the trade, and then accept or reject by closing the window.\"";
+ next;
+ mes "[Trader]";
+ mes "\"Items added to the trade cannot be removed, and so mistakes have to be dealt with by canceling the trade.";
+ mes "You need to press the change button to let the other person know about GP changes.\"";
+ close;
+
+L_Has:
+ mes "[Trader]";
+ mes "\"I still don't have anything to trade. I wonder where that shipment is....\"";
+ close;
+
+L_NotEnoughMoney:
+ mes "[Trader]";
+ mes "\"You don't have enough GP\"";
+ close;
+}
diff --git a/npc/021-2_Tulimshar/government_building.txt b/npc/021-2_Tulimshar/government_building.txt
index 92ca1f35..894a8f67 100644
--- a/npc/021-2_Tulimshar/government_building.txt
+++ b/npc/021-2_Tulimshar/government_building.txt
@@ -140,14 +140,75 @@ S_give_rings:
return;
}
-// A clerk (TODO: give out party skill levels)
021-2.gat,36,17,0 script Tathin 107,{
+ set @PARTY_SKILL, 3;
+
mes "[Tathin]";
mes "\"Hello what Can I do for you?\"";
next;
+
+ if (getskilllv(@PARTY_SKILL) == 2 ) goto L_Base_Menu;
+ if (BaseLevel >= 15 && getskilllv(@PARTY_SKILL) == 1) goto L_Can_Make_Party;
+ if (BaseLevel >= 10) goto L_Can_Party;
+
+L_Base_Menu:
+ menu
+ "Nothing, I guess.", -;
+ close;
+
+L_Can_Party:
+ menu
+ "I'd like to get a party permit.", L_Get_Party,
+ "Nothing, I guess.", -;
+ close;
+
+L_Can_Make_Party:
menu
+ "I'd like to get a party creator permit.", L_Get_Make_Party,
"Nothing, I guess.", -;
close;
+
+L_Get_Party:
+ mes "[Tathin]";
+ mes "\"A permit to join parties costs 10 GP.\"";
+ next;
+ menu
+ "OK", L_Give_Party,
+ "No thank you", -;
+ close;
+
+L_Give_Party:
+ if (zeny < 10) L_NotEnoughMoney;
+ set zeny, zeny - 10;
+ setskill @PARTY_SKILL, 1;
+ mes "[Tathin]";
+ mes "\"Here's your permit. You'll need to be invited by an existing member of a party to join it.\"";
+ next;
+ mes "[Tathin]";
+ mes "\"Remember, parties cannot share experience if any members are more than 10 levels apart.\"";
+ close;
+
+L_Get_Make_Party:
+ mes "[Tathin]";
+ mes "\"A permit to create parties costs 50 GP.\"";
+ next;
+ menu
+ "OK", L_Give_Make_Party,
+ "No thank you", -;
+ close;
+
+L_Give_Make_Party:
+ if (zeny < 50) L_NotEnoughMoney;
+ set zeny, zeny - 50;
+ setskill @PARTY_SKILL, 2;
+ mes "[Tathin]";
+ mes "\"Here's your permit. You can create parties with the 'new' or 'create' commands on the Party tab in the client. Parties need to have unique names.\"";
+ close;
+
+L_NotEnoughMoney:
+ mes "[Tathin]";
+ mes "\"You don't have enough GP\"";
+ close;
}
// Guard