summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAkko Teru <none@null.nil>2016-01-18 01:50:13 -0600
committerAkko Teru <none@null.nil>2016-01-18 01:50:13 -0600
commit5a55c8409d241cb47946e93cf0a4d2deeb995a18 (patch)
tree94901b85fddf8a4cdaa8dab02c2d255dfcbb6e67
parente0058a976a62767f899c54ef6b20827ff344484d (diff)
parent2195bf8bbe64dd5a830fcdb137e80c9ddaabf35e (diff)
downloadserverdata-5a55c8409d241cb47946e93cf0a4d2deeb995a18.tar.gz
serverdata-5a55c8409d241cb47946e93cf0a4d2deeb995a18.tar.bz2
serverdata-5a55c8409d241cb47946e93cf0a4d2deeb995a18.tar.xz
serverdata-5a55c8409d241cb47946e93cf0a4d2deeb995a18.zip
Merge branch 'master' of gitlab.com:evol/serverdata
Try to resolve conflict by using brute force and ignorance.
-rw-r--r--db/constants.conf2
-rw-r--r--db/re/item_db.conf170
-rw-r--r--db/re/map_cache.datbin10136 -> 10136 bytes
-rw-r--r--npc/001-1/calypsan.txt4
-rw-r--r--npc/001-1/fexil.txt22
-rw-r--r--npc/001-1/juscare.txt13
-rw-r--r--npc/001-1/katja.txt2
-rw-r--r--npc/001-1/lucas.txt10
-rw-r--r--npc/001-1/merlin.txt40
-rw-r--r--npc/001-1/rumly.txt21
-rw-r--r--npc/001-1/salem.txt19
-rw-r--r--npc/001-1/shop.txt166
-rw-r--r--npc/001-2-27/_import.txt3
-rw-r--r--npc/001-2-27/don.txt85
-rw-r--r--npc/001-2-27/kaylo.txt44
-rw-r--r--npc/001-2-27/lydon.txt37
-rw-r--r--npc/001-2-27/shop.txt48
-rw-r--r--npc/functions/asleep.txt10
-rw-r--r--npc/functions/villagertalk.txt43
19 files changed, 635 insertions, 104 deletions
diff --git a/db/constants.conf b/db/constants.conf
index 5b202174..70c91cfe 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -3882,6 +3882,8 @@ constants_db: {
NPC_ARTAXE: 134
NPC_LUCAS: 135
NPC_CALYPSAN: 136
+ NPC_KAYLO: 137
+ NPC_LYDON: 138
NPC_ALIGE: 401
NPC_ORC_SAILOR: 402
NPC_RATTO_SAILOR: 403
diff --git a/db/re/item_db.conf b/db/re/item_db.conf
index 6e507c75..8aedb17e 100644
--- a/db/re/item_db.conf
+++ b/db/re/item_db.conf
@@ -139,7 +139,7 @@ item_db: (
View: 501
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 500
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -169,7 +169,7 @@ item_db: (
View: 502
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 500
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -203,7 +203,7 @@ item_db: (
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
- sc_start SC_ATTHASTE_POTION1, 20000, -5;
+ sc_end SC_POISON;
heal rand(25, 35), 0;
">
},
@@ -230,7 +230,7 @@ item_db: (
View: 504
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 500
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -260,7 +260,7 @@ item_db: (
View: 505
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 500
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -290,7 +290,7 @@ item_db: (
View: 506
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 500
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -320,7 +320,7 @@ item_db: (
View: 507
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 500
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -350,11 +350,10 @@ item_db: (
View: 508
BindOnEquip: false
BuyingStore: true
- Delay: 5000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
- sc_start2 SC_POISON, 1, 20, 2500;
+ sc_start SC_POISON, 30000, 0;
heal rand(10, 20), 0;
">
},
@@ -381,7 +380,7 @@ item_db: (
View: 509
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 2000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -411,7 +410,6 @@ item_db: (
View: 510
BindOnEquip: false
BuyingStore: true
- Delay: 5000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -442,7 +440,6 @@ item_db: (
View: 511
BindOnEquip: false
BuyingStore: true
- Delay: 5000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -473,7 +470,7 @@ item_db: (
View: 512
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 2000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -562,11 +559,11 @@ item_db: (
View: 515
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 15000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
- sc_start SC_ATTHASTE_POTION1, 20000, 5;
+ sc_start SC_ATTHASTE_POTION1, 15000, 5;
heal rand(20, 30), 0;
">
},
@@ -593,7 +590,6 @@ item_db: (
View: 516
BindOnEquip: false
BuyingStore: true
- Delay: 5000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -624,7 +620,7 @@ item_db: (
View: 517
BindOnEquip: false
BuyingStore: false
- Delay: 5000
+ Delay: 1000
Trade: {
nodrop: true
noselltonpc: true
@@ -654,7 +650,7 @@ item_db: (
View: 518
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 1000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -684,7 +680,7 @@ item_db: (
View: 519
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 2000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -696,7 +692,7 @@ item_db: (
AegisName: "PibberiesInfusion"
Name: "Pibberies Infusion"
Type: "IT_HEALING"
- Buy: 60
+ Buy: 140
Sell: 20
Weight: 15
Atk: 0
@@ -714,11 +710,11 @@ item_db: (
View: 520
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 2000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
- itemheal rand(45, 55), 0;
+ itemheal rand(110, 130), 0;
">
},
{
@@ -744,7 +740,7 @@ item_db: (
View: 521
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 2000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -756,7 +752,7 @@ item_db: (
AegisName: "ClothoLiquor"
Name: "Clotho Liquor"
Type: "IT_HEALING"
- Buy: 500
+ Buy: 600
Sell: 150
Weight: 16
Atk: 0
@@ -774,7 +770,7 @@ item_db: (
View: 522
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 2000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -786,8 +782,8 @@ item_db: (
AegisName: "LachesisBrew"
Name: "Lachesis Brew"
Type: "IT_HEALING"
- Buy: 900
- Sell: 220
+ Buy: 1000
+ Sell: 150
Weight: 14
Atk: 0
Matk: 0
@@ -804,11 +800,11 @@ item_db: (
View: 523
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 3000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
- itemheal rand(1200, 1400), 0;
+ itemheal rand(1100, 1300), 0;
">
},
{
@@ -816,8 +812,8 @@ item_db: (
AegisName: "AtroposMixture"
Name: "Atropos Mixture"
Type: "IT_HEALING"
- Buy: 1750
- Sell: 500
+ Buy: 2450
+ Sell: 300
Weight: 15
Atk: 0
Matk: 0
@@ -834,11 +830,11 @@ item_db: (
View: 524
BindOnEquip: false
BuyingStore: true
- Delay: 5000
+ Delay: 10000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
- itemheal rand(2700, 3300), 0;
+ itemheal rand(2300, 2550), 0;
">
},
{
@@ -846,8 +842,8 @@ item_db: (
AegisName: "ElixirOfLife"
Name: "Elixir Of Life"
Type: "IT_HEALING"
- Buy: 3500
- Sell: 1000
+ Buy: 5000
+ Sell: 500
Weight: 20
Atk: 0
Matk: 0
@@ -864,7 +860,7 @@ item_db: (
View: 525
BindOnEquip: false
BuyingStore: true
- Delay: 10000
+ Delay: 20000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -894,7 +890,6 @@ item_db: (
View: 526
BindOnEquip: false
BuyingStore: true
- Delay: 0
KeepAfterUse: true
Sprite: 0
Script: <"
@@ -924,7 +919,7 @@ item_db: (
View: 527
BindOnEquip: false
BuyingStore: true
- Delay: 10000
+ Delay: 1000
Sprite: 0
UseEffect: "EFFECT_HEAL"
Script: <"
@@ -932,6 +927,78 @@ item_db: (
">
},
{
+ Id: 528
+ AegisName: "Manana"
+ Name: "Manana"
+ Type: "IT_DELAYCONSUME"
+ Buy: 100
+ Sell: 35
+ Weight: 10
+ Job: 0xFFFFFFFF
+ Upper: 0x3F
+ Gender: 2
+ Refine: false
+ View: 528
+ BindOnEquip: false
+ BuyingStore: true
+ Delay: 500
+ Sprite: 0
+ UseEffect: "EFFECT_HEAL"
+ Script: <"
+ heal rand(70, 80), 0;
+ ">
+},
+{
+ Id: 529
+ AegisName: "Curshroom"
+ Name: "Curshroom"
+ Type: "IT_HEALING"
+ Buy: 150
+ Sell: 25
+ Weight: 10
+ Job: 0xFFFFFFFF
+ Upper: 0x3F
+ Gender: 2
+ Loc: 0
+ WeaponLv: 0
+ EquipLv: 0
+ Refine: false
+ View: 515
+ BindOnEquip: false
+ BuyingStore: true
+ Delay: 30000
+ Sprite: 0
+ UseEffect: "EFFECT_HEAL"
+ Script: <"
+ sc_start SC_ATTHASTE_POTION1, 30000, 5;
+ sc_end SC_POISON;
+ heal rand(40, 50), 0;
+ ">
+},
+{
+ Id: 530
+ AegisName: "Carrot"
+ Name: "Carrot"
+ Type: "IT_HEALING"
+ Buy: 30
+ Sell: 8
+ Weight: 3
+ Job: 0xFFFFFFFF
+ Upper: 0x3F
+ Gender: 2
+ Loc: 0
+ Refine: false
+ View: 530
+ BindOnEquip: false
+ BuyingStore: true
+ Delay: 500
+ Sprite: 0
+ UseEffect: "EFFECT_HEAL"
+ Script: <"
+ heal rand(20, 30), 0;
+ ">
+},
+{
Id: 700
AegisName: "SmallTentacles"
Name: "Small Tentacles"
@@ -2107,6 +2174,30 @@ item_db: (
},
{
+ Id: 2701
+ AegisName: "LeatherShield"
+ Name: "Leather Shield"
+ Type: "IT_ARMOR"
+ Buy: 2000
+ Sell: 250
+ Weight: 100
+ Def: 5
+ Job: 0xFFFFFFFF
+ Upper: 0x3F
+ Gender: 2
+ Loc: 32
+ EquipLv: 5
+ Refine: false
+ View: 2701
+ BindOnEquip: false
+ BuyingStore: true
+ OnEquipScript:
+ <"
+ bonus bAtkRange, -1;
+ ">
+
+},
+{
Id: 2900
AegisName: "Bandana"
Name: "Bandana"
@@ -2371,7 +2462,8 @@ item_db: (
AegisName: "PiouEgg"
Name: "Piou egg"
Type: "IT_PETEGG"
- Buy: 200
+ Buy: 30000
+ Sell: 500
KeepAfterUse: true
Script: <"
bpet;
diff --git a/db/re/map_cache.dat b/db/re/map_cache.dat
index f946e9c7..c56b77fe 100644
--- a/db/re/map_cache.dat
+++ b/db/re/map_cache.dat
Binary files differ
diff --git a/npc/001-1/calypsan.txt b/npc/001-1/calypsan.txt
index 4030db83..235fb182 100644
--- a/npc/001-1/calypsan.txt
+++ b/npc/001-1/calypsan.txt
@@ -36,7 +36,9 @@
break;
case 1:
- break;
+ closedialog;
+ shop "Store#Calypsan001-1";
+ close;
case 2:
speech 5,
l("Yoiis is not yet ready to make his own dye."),
diff --git a/npc/001-1/fexil.txt b/npc/001-1/fexil.txt
index 7711410a..5a13b094 100644
--- a/npc/001-1/fexil.txt
+++ b/npc/001-1/fexil.txt
@@ -77,30 +77,24 @@
.@fexil = getq(ArtisQuests_Fexil);
menuint
- l("Yes, why not."), 1,
- l("I would rather sell some stuff."), 2,
- rif(.@fexil == 2, l("Do you still need help?")), 3,
- rif(.@fexil > 2 && countitemcolor(729) > 0, l("I have some fur for you.")), 4,
- l("No, Sorry."), 5;
+ l("OK, let's trade."), 1,
+ rif(.@fexil == 2, l("Do you still need help?")), 2,
+ rif(.@fexil > 2 && countitemcolor(729) > 0, l("I have some fur for you.")), 3,
+ l("No, Sorry."), 4;
switch (@menuret)
{
case 1:
- speech 5,
- l("Good, take a look at the bag next to me then!");
- break;
-
- case 2:
closedialog;
- shop "Bag#000-1";
+ shop "Bag#001-1";
close;
- case 3:
+ case 2:
mes "";
fexil_quest;
break;
- case 4:
+ case 3:
speech 5,
l("Awesome, how many of those do you want to give me?");
@@ -132,7 +126,7 @@
break;
- case 5:
+ case 4:
speech 5,
l("Oh... Well, I just started to trade... Thus my technique may not be the best."),
lg("Anyway, if you ever feel interested, just check my bag!");
diff --git a/npc/001-1/juscare.txt b/npc/001-1/juscare.txt
index 7ad1ecdb..194f92a0 100644
--- a/npc/001-1/juscare.txt
+++ b/npc/001-1/juscare.txt
@@ -5,7 +5,6 @@
// Description:
// Juscare, walking NPC of the legion of Aemil on the right part of the Agora of Artis.
-
001-1,118,92,0 script Juscare#001-1 NPC_HUMAN_MALE_LEGION_ARTIS,{
function shouldTurn {
@@ -23,6 +22,16 @@
close;
}
+ function randomTalk {
+ debugmes "Juscare lock value : " + Repeat_NPC_lock + " current time " + gettimetick(2);
+
+ if (Repeat_NPC_lock <= gettimetick(2))
+ {
+ Repeat_NPC_lock = gettimetick(2) + 2;
+ villagertalk;
+ }
+ }
+
npc_pausemove;
@Juscar_old_dir = -1;
if (shouldTurn())
@@ -32,7 +41,7 @@
npc_turntoxy(.@cx, .@cy);
}
- villagertalk;
+ randomTalk;
localClose;
diff --git a/npc/001-1/katja.txt b/npc/001-1/katja.txt
index f53d3a8d..2e5454dd 100644
--- a/npc/001-1/katja.txt
+++ b/npc/001-1/katja.txt
@@ -75,7 +75,7 @@
mes "";
mesn;
mesq l("Great!");
- emotion 17;
+ emotion 103;
next;
break;
case 2:
diff --git a/npc/001-1/lucas.txt b/npc/001-1/lucas.txt
index 8d8c2715..f451c3f1 100644
--- a/npc/001-1/lucas.txt
+++ b/npc/001-1/lucas.txt
@@ -6,7 +6,15 @@
001-1,59,44,0 script Lucas#001-1 NPC_LUCAS,{
- villagertalk;
+ function randomTalk {
+ if (Repeat_NPC_lock <= gettimetick(2))
+ {
+ Repeat_NPC_lock = gettimetick(2) + 2;
+ villagertalk;
+ }
+ }
+
+ randomTalk;
closedialog;
close;
diff --git a/npc/001-1/merlin.txt b/npc/001-1/merlin.txt
index 0223e3ce..4ff7e88c 100644
--- a/npc/001-1/merlin.txt
+++ b/npc/001-1/merlin.txt
@@ -4,11 +4,45 @@
// Description:
// Fishmonger NPC
-001-1,72,128,0 script Merlin NPC_MERLIN,{
+001-1,72,128,0 script Merlin NPC_MERLIN,2,2,{
- speech
- l("Fish is good for the brain!");
+ function randomDialogue {
+ closedialog;
+ .@r = rand (6);
+ if (.@r == 0)
+ {
+ npctalk3 l("Fish, come and see my fish!");
+ }
+ else if (.@r == 1)
+ {
+ npctalk3 l("They are fresh, they are good!");
+ }
+ else if (.@r == 2)
+ {
+ npctalk3 l("Fresh from the sea and cheap!");
+ }
+ else if (.@r == 3)
+ {
+ npctalk3 l("Come, come and see!");
+ }
+ else if (.@r == 4)
+ {
+ npctalk3 l("They are fresh!");
+ }
+ else
+ {
+ npctalk3 l("Fish is good for the brain!");
+ }
+ close;
+ }
+
+OnTouch:
+ if (Repeat_NPC_lock <= gettimetick(2))
+ {
+ Repeat_NPC_lock = gettimetick(2) + 1;
+ randomDialogue;
+ }
close;
OnInit:
diff --git a/npc/001-1/rumly.txt b/npc/001-1/rumly.txt
index 917da7ed..742b143e 100644
--- a/npc/001-1/rumly.txt
+++ b/npc/001-1/rumly.txt
@@ -88,9 +88,24 @@ L_Menu:
goto L_ResetStats;
case 3:
if (.@visited != 2) goto L_Quit;
-
- speech 5,
- l("See you! And come back with the plushrooms!");
+
+ .@rand = rand (2);
+
+ if (.@rand)
+ {
+ speech 5,
+ l("See you! And come back with the plushrooms!");
+ }
+ else
+ {
+ speech 5,
+ l("Oh noes!"),
+ l("A rabbit!"),
+ l("He has a guns!"),
+ l("*Bang bang*");
+ narrator 4,
+ l("Rumly is hidding behind the tree.");
+ }
goto L_Quit;
}
diff --git a/npc/001-1/salem.txt b/npc/001-1/salem.txt
index 3b709825..9bc5907b 100644
--- a/npc/001-1/salem.txt
+++ b/npc/001-1/salem.txt
@@ -111,10 +111,11 @@ L_SalemMenuShop:
menuint
l("What about those pious? They look so cute."), 0,
- rif(.@q != 0, l("I'd like to buy a piou.")), 1,
- l("I'd like to see your other products."), 2,
- rif(.@fexil == 1, l("I'm looking for somebody named Fexil.")), 3,
- l("Bye."), 4;
+ l("Let's trade."), 1,
+ rif(.@q != 0, l("I'd like to buy a piou.")), 2,
+ l("I'd like to see your other products."), 3,
+ rif(.@fexil == 1, l("I'm looking for somebody named Fexil.")), 4,
+ l("Bye."), 5;
mes "";
mesn;
@@ -125,6 +126,10 @@ L_SalemMenuShop:
goto L_AboutPious;
break;
case 1:
+ closedialog;
+ shop "Store#General001-1";
+ close;
+ case 2:
if (.@q == 2 && ArtisQuests_PiouDiscount)
{
mesq l("You still have a 90% discount on one piou.");
@@ -134,14 +139,14 @@ L_SalemMenuShop:
if (!BuyPiou(@ArtisQuests_PiouPrice))
ArtisQuests_PiouDiscount = 0;
break;
- case 2:
+ case 3:
goto L_BuyShop;
break;
- case 3:
+ case 4:
mesq l("I think that I've seen this weakling wandering around the beach on the south from here this morning.");
next;
break;
- case 4:
+ case 5:
break;
}
closedialog;
diff --git a/npc/001-1/shop.txt b/npc/001-1/shop.txt
index ad0a8508..96afbdbd 100644
--- a/npc/001-1/shop.txt
+++ b/npc/001-1/shop.txt
@@ -107,3 +107,169 @@ OnClock0800:
OnClock1600:
restoreshopitem Aquada, 20;
}
+
+001-1,72,126,0 trader Store#SeaStore001-1 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem Aquada, -1, 10;
+ sellitem UrchinMeat, -1, 20;
+ sellitem SmallTentacles, -1, 30;
+ sellitem Tentacles, -1, 15;
+
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+
+OnClock0000:
+ restoreshopitem Aquada, 3;
+ restoreshopitem UrchinMeat, 12;
+ restoreshopitem SmallTentacles, 4;
+OnClock0800:
+ restoreshopitem Aquada, 6;
+ restoreshopitem UrchinMeat, 8;
+ restoreshopitem Tentacles, 8;
+ restoreshopitem SmallTentacles, 2;
+OnClock1600:
+ restoreshopitem Aquada, 5;
+ restoreshopitem UrchinMeat, 10;
+ restoreshopitem SmallTentacles, 7;
+}
+
+001-1,71,129,0 trader Store#FishStore001-1 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem CommonCarp, -1, 8;
+ sellitem GrassCarp, -1, 7;
+
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+
+OnClock0000:
+ restoreshopitem CommonCarp, 3;
+ restoreshopitem GrassCarp, 2;
+OnClock0800:
+ restoreshopitem CommonCarp, 2;
+ restoreshopitem GrassCarp, 3;
+OnClock1600:
+ restoreshopitem CommonCarp, 3;
+ restoreshopitem GrassCarp, 4;
+}
+
+001-1,48,116,0 trader Store#Manana001-1 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem Manana, -1, 60;
+
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+
+OnClock0000:
+ restoreshopitem Manana, 20;
+OnClock0800:
+ restoreshopitem Manana, 15;
+OnClock1600:
+ restoreshopitem Manana, 20;
+}
+
+001-1,53,123,0 trader Store#Various001-1 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem Manana, -1, 30;
+// Add soft drinks.
+
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+
+OnClock0000:
+ restoreshopitem Manana, 10;
+OnClock0800:
+ restoreshopitem Manana, 15;
+OnClock1600:
+ restoreshopitem Manana, 6;
+}
+
+001-1,67,116,0 trader Store#Potion001-1 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem PibberiesInfusion, -1, 200;
+ sellitem FatesPotion, -1, 100;
+ sellitem ClothoLiquor, -1, 50;
+ sellitem LachesisBrew, -1, 30;
+ sellitem AtroposMixture, -1, 10;
+ sellitem ElixirOfLife, -1, 2;
+
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+
+OnClock0000:
+ restoreshopitem PibberiesInfusion, 150;
+ restoreshopitem FatesPotion, 80;
+ restoreshopitem ClothoLiquor, 40;
+ restoreshopitem LachesisBrew, 20;
+ restoreshopitem AtroposMixture, 7;
+ restoreshopitem ElixirOfLife, 1;
+OnClock1200:
+ restoreshopitem PibberiesInfusion, 80;
+ restoreshopitem FatesPotion, 40;
+ restoreshopitem ClothoLiquor, 20;
+ restoreshopitem LachesisBrew, 10;
+ restoreshopitem AtroposMixture, 4;
+}
+
+001-1,58,119,0 trader Store#General001-1 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem Manana, -1, 100;
+ sellitem Carrot, -1, 80;
+ sellitem Aquada, -1, 50;
+ sellitem Plushroom, -1, 100;
+ sellitem Curshroom, -1, 80;
+ sellitem Piberries, -1, 150;
+ sellitem PiouEgg, -1, 25;
+// Add soft drinks.
+
+ .sex = G_OTHER;
+ .distance = 4;
+ end;
+
+OnClock0000:
+ restoreshopitem Manana, 50;
+ restoreshopitem Carrot, 40;
+ restoreshopitem Aquada, 30;
+ restoreshopitem Plushroom, 40;
+ restoreshopitem Curshroom, 30;
+ restoreshopitem Piberries, 40;
+ restoreshopitem PiouEgg, 10;
+OnClock0800:
+ restoreshopitem Manana, 30;
+ restoreshopitem Carrot, 30;
+ restoreshopitem Aquada, 30;
+ restoreshopitem Plushroom, 40;
+ restoreshopitem Curshroom, 30;
+ restoreshopitem Piberries, 70;
+ restoreshopitem PiouEgg, 10;
+OnClock1600:
+ restoreshopitem Manana, 40;
+ restoreshopitem Carrot, 40;
+ restoreshopitem Aquada, 20;
+ restoreshopitem Plushroom, 20;
+ restoreshopitem Curshroom, 20;
+ restoreshopitem Piberries, 30;
+ restoreshopitem PiouEgg, 5;
+}
diff --git a/npc/001-2-27/_import.txt b/npc/001-2-27/_import.txt
index 7a16c39e..ca4ba52d 100644
--- a/npc/001-2-27/_import.txt
+++ b/npc/001-2-27/_import.txt
@@ -2,3 +2,6 @@
npc: npc/001-2-27/mapflags.txt
npc: npc/001-2-27/_warps.txt
npc: npc/001-2-27/don.txt
+npc: npc/001-2-27/kaylo.txt
+npc: npc/001-2-27/lydon.txt
+npc: npc/001-2-27/shop.txt
diff --git a/npc/001-2-27/don.txt b/npc/001-2-27/don.txt
index 651c8b93..17c50eee 100644
--- a/npc/001-2-27/don.txt
+++ b/npc/001-2-27/don.txt
@@ -5,12 +5,89 @@
// Don the blacksmith of Artis
001-2-27,35,29,0 script Don#001-2-27 NPC_HUMAN_MALE_OLD,{
- mesn;
- mesq l("Hm...");
- goto L_Close;
+ function improve_equipment {
+ speech 5,
+ l("Different ways, each part of your equipment can be generally upgraded."),
+ l("You have a level for each of your gear, by default when you buy or craft a piece, the level is set to 1."),
+ l("You can also improve your equipment in a totally different way with the use of cards.");
+ return;
+ }
-L_Close:
+ function card_explanation {
+ speech 5,
+ l("There are two different kinds of card, the first changes the style of your clothes, the second changes their stats."),
+ l("I am not an expert of the first kind, but I know what I am talking about for the second."),
+ l("A stat card works on different pieces of equipment."),
+ l("Each equipment has a predefined slot number."),
+ l("Each cards improve your gear by a ratio or a fixed number on a predefined stat."),
+ l("Like, a defensive mythril card can be used on any mythril equipment, and it will improve of 5% the defense of the latter."),
+ l("You just have to select it, you choose on which piece of equipment you want to use it, and you are done.");
+ return;
+ }
+
+ function take_apprentice {
+ speech 5,
+ l("I do not.");
+ emotion 11;
+
+ select (l("What about Chelios?"));
+
+ speech 5,
+ l("Chelios was stubborn in his youth, he could not stop to annoy me with his questions while I was working at the forge."),
+ l("He did not change while growing up, I repeatedly asked him to leave the forge but in the end he installed himself in front of it..."),
+ l("He is mature and he rarely ask questions so I am fine. I can not stand the sight of a whinger anyway.");
+ return;
+ }
+
+ function good_blacksmith {
+ speech 5,
+ l("I do not like to brag about it but you will not find any better blacksmith on the whole island."),
+ l("If you need somebody to craft a weapon or a plate from a diagrams I am the one that you need.");
+
+ switch (select (l("Can I craft them myself?"),
+ l("Ok.")))
+ {
+ case 1:
+ speech 5,
+ l("You can try, but your chance of success is lesser than a well trained smith and master craftsman.");
+ break;
+ case 2:
+ break;
+ }
+
+ return;
+ }
+
+ speech 4,
+ l("Hi, what do you want kiddo?");
+
+ do
+ {
+ switch (.@q = select (l("How can I improve my equipment?"),
+ l("What is a card?"),
+ l("Are you a good blacksmith?"),
+ l("Do you take apprentices?"),
+ l("Nothing.")))
+ {
+ case 1:
+ improve_equipment;
+ break;
+ case 2:
+ card_explanation;
+ break;
+ case 3:
+ good_blacksmith;
+ break;
+ case 4:
+ take_apprentice;
+ break;
+ case 5:
+ break;
+ }
+ } while (.@q != 5);
+
+ goodbye;
close;
OnInit:
diff --git a/npc/001-2-27/kaylo.txt b/npc/001-2-27/kaylo.txt
new file mode 100644
index 00000000..641fd93b
--- /dev/null
+++ b/npc/001-2-27/kaylo.txt
@@ -0,0 +1,44 @@
+// Evol scripts.
+// Author:
+// Reid
+// Description:
+// Kaylo is the Shield seller in Don's Blacksmith house on Artis.
+
+001-2-27,27,28,0 script Kaylo#001-2-27 NPC_KAYLO,{
+ speech 4,
+ l("Hi customer! What do you want today?");
+
+ switch (select (
+ l("Let's make a trade."),
+ l("What's wrong with your clothes?"),
+ l("What is this place?"),
+ l("See you.")))
+ {
+ case 1:
+ closedialog;
+ shop "Store#Shield001-2-27";
+ close;
+ case 2:
+ speech 5,
+ l("I used a card to improve my clothes."),
+ l("There're two different kinds of card, the first changes the style of your clothes, the second changes their stats."),
+ l("You should discuss with Don and Calypsan if you want to learn more about it, they are master on this area!");
+ break;
+ case 3:
+ speech 5,
+ l("You are on the Blacksmith's house, by Jove!"),
+ l("Don is a renowned blacksmith throughout Andorra it's crazy that you don't know about him.");
+ break;
+ case 4:
+ break;
+ }
+
+ goodbye;
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 4;
+ end;
+}
+
diff --git a/npc/001-2-27/lydon.txt b/npc/001-2-27/lydon.txt
new file mode 100644
index 00000000..6221616c
--- /dev/null
+++ b/npc/001-2-27/lydon.txt
@@ -0,0 +1,37 @@
+// Evol scripts.
+// Author:
+// Reid
+// Description:
+// Lydon is the Weapon seller in Don's Blacksmith house on Artis.
+
+001-2-27,43,28,0 script Lydon#001-2-27 NPC_LYDON,{
+ speech 4,
+ l("Hi customer! What do you want today?");
+
+ switch (select (
+ l("Let's make a trade."),
+ l("Who is the blacksmith outside?"),
+ l("Bye.")))
+ {
+ case 1:
+ closedialog;
+ shop "Store#Weapon001-2-27";
+ close;
+ case 2:
+ speech 5,
+ l("Chef? He is Don's apprentice, he works on his hammering skill day and night."),
+ l("He is very lucky that Don took him under his wing, but being the student of such a teacher is not easy every day!");
+ break;
+ case 3:
+ break;
+ }
+
+ goodbye;
+ close;
+
+OnInit:
+ .sex = G_MALE;
+ .distance = 4;
+ end;
+}
+
diff --git a/npc/001-2-27/shop.txt b/npc/001-2-27/shop.txt
new file mode 100644
index 00000000..803a6ebb
--- /dev/null
+++ b/npc/001-2-27/shop.txt
@@ -0,0 +1,48 @@
+// Evol scripts.
+// Author:
+// Reid
+// 4144
+// Description:
+// Blacksmith shops
+
+001-2-27,27,29,0 trader Store#Shield001-2-27 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem LeatherShield, -1, 30;
+
+ .sex = G_OTHER;
+ .distance = 2;
+ end;
+
+OnClock0000:
+ sellitem LeatherShield, -1, 10;
+OnClock0800:
+ sellitem LeatherShield, -1, 10;
+OnClock01600:
+ sellitem LeatherShield, -1, 10;
+}
+
+001-2-27,43,29,0 trader Store#Weapon001-2-27 NPC_NO_SPRITE,{
+
+OnInit:
+ tradertype(NST_MARKET);
+
+ sellitem WoodenSword, -1, 50;
+ sellitem TrainingGladius, -1, 25;
+
+ .sex = G_OTHER;
+ .distance = 2;
+ end;
+
+OnClock0000:
+ sellitem TrainingGladius, -1, 8;
+ sellitem WoodenSword, -1, 25;
+OnClock0800:
+ sellitem TrainingGladius, -1, 8;
+ sellitem WoodenSword, -1, 25;
+OnClock01600:
+ sellitem TrainingGladius, -1, 8;
+ sellitem WoodenSword, -1, 25;
+}
diff --git a/npc/functions/asleep.txt b/npc/functions/asleep.txt
index 35a6f5c4..e67dc21d 100644
--- a/npc/functions/asleep.txt
+++ b/npc/functions/asleep.txt
@@ -8,12 +8,14 @@
// .@rand = Random number between the number of "sleeping" choice.
function script asleep {
+ closedialog;
- .@rand = rand(3);
+ .@rand = rand(5);
if (.@rand == 0) npctalk3 l("Zzzzzzzzz...");
- if (.@rand == 1) npctalk3 l("Rrrr... Pchhhh...");
- if (.@rand == 2) npctalk3 l("Ggrmm... Grmmmm...");
- if (.@rand == 3) npctalk3 l("Hm...");
+ else if (.@rand == 1) npctalk3 l("Rrrr... Pchhhh...");
+ else if (.@rand == 2) npctalk3 l("Ggrmm... Grmmmm...");
+ else if (.@rand == 3) npctalk3 l("Hm...");
+ else emotion 106; // Sleepy
close;
}
diff --git a/npc/functions/villagertalk.txt b/npc/functions/villagertalk.txt
index 1df55c97..95f70c87 100644
--- a/npc/functions/villagertalk.txt
+++ b/npc/functions/villagertalk.txt
@@ -16,51 +16,44 @@ function script villagertalk {
.@darn = rand(42);
if (.@rand == 0)
{
- if (rand(2) == 1)
+ if (.@darn < 26)
{
- wait 1;
- emote 6; // "Angel".
+ emotion 103; // ^.^
goodbye;
}
- else
+ else if (.@darn > 26)
{
- wait 1;
- emote 13; // "Blah".
+ emotion 111; // Look away
goodbye;
}
- if (.@darn == 23) npctalk3 l("Stop it!");
+ else
+ {
+ npctalk3 l("Stop it!");
+ }
}
-
- if (.@rand == 1)
+ else if (.@rand == 1)
{
speech 4,
l("Do you feel too weak even to do damage to this areas wishy-washy wildlife?"),
l("Then concentrate your anger upon the trees hereabouts, you will gain experience whilst leveling your sword skill on them."),
l("Oh, and a fruit may even fall for you if you are lucky! But stay alert to pick up your drops.");
}
-
- if (.@rand == 2)
+ else if (.@rand == 2)
+ {
npctalk3 l("It is a sunny day, don't you think?");
-
- if (.@rand == 3)
- npctalk3 l("Go fly a kite.");
-
- if (.@rand == 4)
+ }
+ else if (.@rand == 3)
{
- npctalk3 l("It's difficult to distinguish good villagers from bad ones; keep your guard up, and stay away from me.");
- wait 1;
- emote 6;
+ npctalk3 l("Go fly a kite.");
}
-
- if ((.@rand == 4) && (.@darn == 2))
+ else if ((.@rand == 4) && (.@darn == 2))
{
npctalk3 l("I just want to live my life in peace.");
}
- else if (((.@rand + .@darn) - 2) == 9)
+ else if (.@rand == 4)
{
- zeny rand(10);
- emote rand(13);
- goodbye;
+ npctalk3 l("It's difficult to distinguish good villagers from bad ones; keep your guard up, and stay away from me.");
+ emotion 6;
}
return;