diff options
author | Jesusaves <cpntb1@ymail.com> | 2023-10-06 10:20:13 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2023-10-06 10:20:13 -0300 |
commit | c3f54fd644e56cda93f21b60d57a08b3a0ce4696 (patch) | |
tree | 39e6837193bb36a38bd411e60a3300ac44159c86 | |
parent | b7c50a92d4ff1f827e5fe292c391dffd8a794f05 (diff) | |
download | serverdata-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.conf | 1 | ||||
-rw-r--r-- | npc/009-3/barzil.txt | 1 | ||||
-rw-r--r-- | npc/015-2/contrabandist.txt | 2 | ||||
-rw-r--r-- | npc/015-3-3/_import.txt | 1 | ||||
-rw-r--r-- | npc/015-3-3/blanc.txt | 135 |
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; + +} |