summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2023-10-06 10:20:13 -0300
committerJesusaves <cpntb1@ymail.com>2023-10-06 10:20:13 -0300
commitc3f54fd644e56cda93f21b60d57a08b3a0ce4696 (patch)
tree39e6837193bb36a38bd411e60a3300ac44159c86
parentb7c50a92d4ff1f827e5fe292c391dffd8a794f05 (diff)
downloadserverdata-c3f54fd644e56cda93f21b60d57a08b3a0ce4696.tar.gz
serverdata-c3f54fd644e56cda93f21b60d57a08b3a0ce4696.tar.bz2
serverdata-c3f54fd644e56cda93f21b60d57a08b3a0ce4696.tar.xz
serverdata-c3f54fd644e56cda93f21b60d57a08b3a0ce4696.zip
Totally untested and game breaking, Blanc arrives at Pirate Cave! (NOT A BOSS)
-rw-r--r--db/constants.conf1
-rw-r--r--npc/009-3/barzil.txt1
-rw-r--r--npc/015-2/contrabandist.txt2
-rw-r--r--npc/015-3-3/_import.txt1
-rw-r--r--npc/015-3-3/blanc.txt135
5 files changed, 139 insertions, 1 deletions
diff --git a/db/constants.conf b/db/constants.conf
index f7b97cbdb..aad476651 100644
--- a/db/constants.conf
+++ b/db/constants.conf
@@ -1867,6 +1867,7 @@ constants_db: {
NPC_JOANA: 280
NPC_KADIYA: 281
NPC_SASHA: 282
+ NPC_BLANC: 283
// TMW-BR Non Animated NPCs
NPC_SHOPPAKEP: 301
diff --git a/npc/009-3/barzil.txt b/npc/009-3/barzil.txt
index d4462bdc1..2c6c77689 100644
--- a/npc/009-3/barzil.txt
+++ b/npc/009-3/barzil.txt
@@ -18,6 +18,7 @@ L_Tier2:
mesq l("Of course! Quick, take it!!");
inventoryplace SunnyCrystal, 1;
ST_TIER=3;
+ // getitembound SunnyCrystal, 1, 4;
getitem SunnyCrystal, 1;
close;
diff --git a/npc/015-2/contrabandist.txt b/npc/015-2/contrabandist.txt
index 41f4a3c6c..0d6acc26e 100644
--- a/npc/015-2/contrabandist.txt
+++ b/npc/015-2/contrabandist.txt
@@ -2,7 +2,7 @@
// Author:
// Jesusalva
// Description:
-// Contraband of foreing goods.
+// Contraband of foreign goods.
015-2,166,250,0 script #Contraband NPC_NO_SPRITE,{
diff --git a/npc/015-3-3/_import.txt b/npc/015-3-3/_import.txt
index 365dfeea7..0a61a2e52 100644
--- a/npc/015-3-3/_import.txt
+++ b/npc/015-3-3/_import.txt
@@ -2,4 +2,5 @@
// This file is generated automatically. All manually added changes will be removed when running the Converter.
"npc/015-3-3/_mobs.txt",
"npc/015-3-3/_warps.txt",
+"npc/015-3-3/blanc.txt",
"npc/015-3-3/boss.txt",
diff --git a/npc/015-3-3/blanc.txt b/npc/015-3-3/blanc.txt
new file mode 100644
index 000000000..f0bf05866
--- /dev/null
+++ b/npc/015-3-3/blanc.txt
@@ -0,0 +1,135 @@
+// TMW-2 Script
+// Author:
+// Jesusalva
+// Description:
+// Contraband of counterfeit goods.
+
+015-3-3,45,66,0 script Blanc#Contraband NPC_NO_SPRITE,{
+
+ // Store not available
+ if (!.active)
+ end;
+
+ // STORY MODE
+ setpcblock(PCBLOCK_HARD, true);
+ mesc l("STORY MODE ENABLED. Monsters won't attack you, so you can read without worries."), 1;
+ close;
+
+ mesn;
+ mesq l("Hey pal, I am preparing a trip for The Mana World: Classic, which is beyond the mirror lake. Care to sell me contrabanded stuff?");
+ mesc l("Blanc can purchase account bound items, and exchange named items by non-named items.");
+ next;
+ .@id=requestitemindex();
+
+ // Collect the item ID
+ delinventorylist();
+ getinventorylist();
+ .@x=@inventorylist_id[.@id];
+ .@c1=@inventorylist_card1[.@id];
+ //.@r=@inventorylist_refine[.@id]; // TODO: Not restore-able without getitem2()
+
+ // No duplicates
+ if (countitem(.@x) > 1) {
+ mesn;
+ mesq l("You are carrying duplicates of the same item. Sorry, but I have no idea which one you mean."), 1;
+ goto L_Close;
+ }
+
+ // Skip equipped items
+ if (isequipped(.@x)) {
+ mesn;
+ mesq l("You should unequip this item first."), 1;
+ goto L_Close;
+ }
+
+
+ mesn;
+ mesq l("A(n) %s, hm? And what do you want me to do with it?", getitemlink(.@x));
+ .@price = getiteminfo(.@x, ITEMINFO_SELLPRICE);
+
+ select
+ l("Nothing. Sorry bothering."),
+ rif(checkbound(.@x, 1), l("I would like to sell it for %s GP.", fnum(.@price*2/3))),
+ rif(.@c1 >= 252, l("I would like to swap, I offer you %s GP.", fnum(.@price))),
+ rif(!checkbound(.@x), l("I would like to sell it for %s GP.", fnum(.@price*11/10)));
+ switch (@menu) {
+ case 2:
+ // Sell account bound items
+ delitem .@x, 1;
+ Zeny += .@price * 2 / 3;
+ mesn;
+ mesq l("Pleasure doing business with you.");
+ break;
+ case 3:
+ // Remove item name
+ if (Zeny < .@price) {
+ mesn;
+ mesq l("Try to fool another, you broken peniless piece of %s meat!", get_race());
+ mesc l("%s stabs you, wounding you fatally!", .name$);
+ die();
+ goto L_Close;
+ }
+ .@o0i = getitemoptionidbyindex(.@id, 0);
+ .@o0v = getitemoptionvaluebyindex(.@id, 0);
+ .@o1i = getitemoptionidbyindex(.@id, 1);
+ .@o1v = getitemoptionvaluebyindex(.@id, 1);
+ .@o2i = getitemoptionidbyindex(.@id, 2);
+ .@o2v = getitemoptionvaluebyindex(.@id, 2);
+ .@o3i = getitemoptionidbyindex(.@id, 3);
+ .@o3v = getitemoptionvaluebyindex(.@id, 3);
+ .@o4i = getitemoptionidbyindex(.@id, 4);
+ .@o4v = getitemoptionvaluebyindex(.@id, 4);
+ Zeny -= .@price;
+ delitem .@x, 1;
+ CsysNpcCraft(.@x, .@o0i, .@o0v, .@o1i, .@o1v,
+ .@o2i, .@o2v, .@o3i, .@o3v, .@o4i, .@o4v);
+ // Refine by .@r
+ //for (.@i=0;.@i<.@r;.@i++) {
+ //}
+ mesn;
+ mesq l("Eh, sure, you can have this %s. It is not refined but should do the trick. Maybe. NO REFUNDS!", getitemlink(.@x));
+ break;
+ case 4:
+ // Regular item sale
+ delitem .@x, 1;
+ Zeny += .@price * 11 / 10;
+ mesn;
+ mesq l("Pleasure doing business with you.");
+ break;
+ }
+ goto L_Close;
+
+L_Close:
+ next;
+ closeclientdialog;
+ setpcblock(PCBLOCK_HARD, false);
+ close;
+
+// Load
+OnMinute21:
+OnMinute46:
+ setnpcdisplay .name$, NPC_BLANC;
+ .active=1;
+ end;
+
+// Unload
+OnMinute23:
+OnMinute48:
+ setnpcdisplay .name$, NPC_NO_SPRITE;
+ .active=0;
+ end;
+
+OnInit:
+ .active=0;
+ .sex = G_OTHER;
+ .distance = 3;
+
+ /*
+ if (debug) {
+ setnpcdisplay .name$, NPC_BLANC;
+ .active=1;
+ }
+ */
+ end;
+
+}