New and Unique (Quest Reward) Items
#61
Hi again. I just had to update that goblet back there. But instead of a helm, what about a Slaver's Whip which can cast the Slow and Entangle effects instead?

(As for the Liber Transfiguratus, should I go ahead and throw in an incomplete Mille Gallinarum Cocta item to serve as a placeholder, seeing as I don't know or have the server module's cooking script?)
Corella d'Margo, arch-liar
Wyren Caul-of-Amber, alchemist
Tirah Het-Nanu, courtesan
Reply
#62
A whip could be secondary as not all characters have the exotic feat by which they can use a whip.
Caramiriel:Retired
Garbage:Retired
Rimeth: Merchant of Bezantur
Marister (dead) -Ranger -Robin Hood of Thay (death marked for pissing off a Daeron.)
Vil'a'w'en Mel'for'm - Blighter of Moander
Reply
#63
The helm/whip sounds easy enough. I'd like someone to do a description for it though. That's among the most important part, for me.

Here's the cooking script. If you/anyone want to improve it to rely on something other than wisdom (without requiring a bunch of modifications outside of this script), please feel free!
Code:
////////////////////////////////////////////////////////////////////////////////
//
//  Cooking Oven
//  cf_oven_onclose
//  By Don Anderson
//  [email protected]
//
//  Cooks Fresh Meat into Cooked Meat
//
//  To add more meats follow the examples below
//
////////////////////////////////////////////////////////////////////////////////

void main()
{
   object oPC           = GetLastClosedBy();
   object oSelf         = OBJECT_SELF;
   object oItem         = GetFirstItemInInventory(oSelf);

   //End if it's empty
   if (!GetIsObjectValid(oItem)) return;

   string sName         = GetName(oItem);
   string sFBear        = "Fresh Bear";
   string sRBear        = "roastbear";
   string sFBeef        = "Fresh Beef";
   string sRBeef        = "roastbeef";
   string sFChicken     = "Fresh Chicken";
   string sRChicken     = "roastchicken";
   string sFPork        = "Fresh Pork";
   string sRPork        = "roastpork";
   string sFVenison     = "Fresh Venison";
   string sRVenison     = "roastvenison";
   string sFTrout       = "Fresh Trout";
   string sFBass        = "Fresh Bass";
   string sFCod         = "Fresh Cod";
   string sFPike        = "Fresh Pike";
   string sRFillet      = "roastfish";
   string sFMeat        = "Fresh Meat"; //Thayan 9/22/07
   string sRMeat        = "roastmeat"; //Thayan 9/22/07

   //Burned Types
   string sBMeat        = "burnedmeat";
   string sBFish        = "burnedfish";
   string sRBread       = "burnedbread";

   int nWis = GetAbilityModifier(ABILITY_WISDOM,oPC);
   if(nWis < 0) nWis = 0;
   //int nSkill = GetLocalInt(oPC,"COOKING_SKILL");
   int nSkill = 0;
   int nBurn = Random(4);//9 when Cooking Skill is Implemented

   //Wisdom Based Cooking is Turn On from  opw_mod_onload
   int nWISCOOK = GetLocalInt(GetModule(),"WISCOOK");
   if(nWISCOOK == 0) nSkill = 100; //Equal to d100 Roll...Guaranteed Cooking

/******************************************************************************/
//: UNBURNED FOOD

   //Success
   if((nWis + nSkill) >= nBurn)
   {
     while(GetIsObjectValid(oItem))
     {
       if (sName == sFBear)
       { //Bear 3
         CreateItemOnObject(sRBear, oPC, 1);
         CreateItemOnObject(sRBear, oPC, 1);
         CreateItemOnObject(sRBear, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFBeef)
       { //Beef 3
         CreateItemOnObject(sRBeef, oPC, 1);
         CreateItemOnObject(sRBeef, oPC, 1);
         CreateItemOnObject(sRBeef, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFChicken)
       { //Chicken 1
         CreateItemOnObject(sRChicken, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFPork)
       { //Pork 2
         CreateItemOnObject(sRPork, oPC, 1);
         CreateItemOnObject(sRPork, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFVenison)
       { //Venison 2
         CreateItemOnObject(sRVenison, oPC, 1);
         CreateItemOnObject(sRVenison, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFTrout || sName == sFBass || sName == sFPike || sName == sFCod)
       { //Trout, Bass, Pike, Cod 1
         CreateItemOnObject(sRFillet, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFMeat)
       { //Diseased Meat 1
         CreateItemOnObject(sRMeat, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }

       oItem = GetNextItemInInventory(oSelf);
     }
   }

//: UNBURNED FOOD
/******************************************************************************/

/******************************************************************************/
//: BURNED FOOD

   if((nWis + nSkill) < nBurn)
   {
     oItem = GetFirstItemInInventory(oSelf);
     while(GetIsObjectValid(oItem))
     {
       if (sName == sFBear || sName == sFBeef || sName == sFChicken || sName == sFPork || sName == sFVenison)
       { //Bear, Beef, Chicken, Pork, Venison, Diseased Meat
         CreateItemOnObject(sBMeat, oPC, 1);
         DestroyObject(oItem);
         SpeakString("You burned the meat.");
       }
       if (sName == sFTrout || sName == sFBass || sName == sFPike || sName == sFCod)
       { ///Trout, Bass, Pike, Cod 1
         CreateItemOnObject(sBFish, oPC, 1);
         DestroyObject(oItem);
         SpeakString("You burned the meat.");
       }
       oItem = GetNextItemInInventory(oSelf);
     }
   }

//: BURNED FOOD
/******************************************************************************/
}
Reply
#64
(01-15-2015, 12:23 PM)Thayan Wrote: The helm/whip sounds easy enough. I'd like someone to do a description for it though. That's among the most important part, for me.

Here's the cooking script. If you/anyone want to improve it to rely on something other than wisdom (without requiring a bunch of modifications outside of this script), please feel free!

Heh or if not instead of drinking wine before cooking drink potions of wisdom or cast the spell! Just for curiosity sake, does anyone know why wisdom was chosen?
Caramiriel:Retired
Garbage:Retired
Rimeth: Merchant of Bezantur
Marister (dead) -Ranger -Robin Hood of Thay (death marked for pissing off a Daeron.)
Vil'a'w'en Mel'for'm - Blighter of Moander
Reply
#65
Survival a PnP skill.

Survival (Wis)
Check

You can keep yourself and others safe and fed in the wild. ;)
Tempus' orders to all combatants:
1. Be fearless. 2. Never turn away from a fight. 3. Obey the rules of war.
Reply
#66
(01-15-2015, 01:28 AM)Wids Wrote: Hi again. I just had to update that goblet back there. But instead of a helm, what about a Slaver's Whip which can cast the Slow and Entangle effects instead?

(As for the Liber Transfiguratus, should I go ahead and throw in an incomplete Mille Gallinarum Cocta item to serve as a placeholder, seeing as I don't know or have the server module's cooking script?)

A whip would be cool :D But my slaver toon doesn't use a whip :P, but could be done for those that do!
Peter Piper picked a peck of pickled peppers;
A peck of pickled peppers Peter Piper picked;
If Peter Piper picked a peck of pickled peppers,
Where's the peck of pickled peppers Peter Piper picked?
Reply
#67
(01-15-2015, 11:32 AM)Animayhem Wrote: A whip could be secondary as not all characters have the exotic feat by which they can use a whip.

Perhaps a club, then. Everyone can wield clubs. Even Tristella, back in her day, used to carry around an ordinary truncheon (or "beating stick") for whacking captives across the backs of their thighs or whatnot, just to be her usual sadistic self. Keeping a perfectly ordinary whip or club on her person at all times became even more important after she received the Tharchioness' Gift, which, being a whip with some pretty nasty Magical damage, had an annoying habit of killing whatever humanoids Tristella was trying to subdue and shackle. Using the Gift to bring her quarry down to Injured or Badly Wounded, switching to the truncheon and crumpling them with Subdual damage often meant the difference between a fresh captive and a dead would-be captive.

(01-15-2015, 12:23 PM)Thayan Wrote: Here's the cooking script. If you/anyone want to improve it to rely on something other than wisdom (without requiring a bunch of modifications outside of this script), please feel free!
Code:
////////////////////////////////////////////////////////////////////////////////
//
//  Cooking Oven
//  cf_oven_onclose
//  By Don Anderson
//  [email protected]
//
//  Cooks Fresh Meat into Cooked Meat
//
//  To add more meats follow the examples below
//
////////////////////////////////////////////////////////////////////////////////

void main()
{
   object oPC           = GetLastClosedBy();
   object oSelf         = OBJECT_SELF;
   object oItem         = GetFirstItemInInventory(oSelf);

   //End if it's empty
   if (!GetIsObjectValid(oItem)) return;

   string sName         = GetName(oItem);
   string sFBear        = "Fresh Bear";
   string sRBear        = "roastbear";
   string sFBeef        = "Fresh Beef";
   string sRBeef        = "roastbeef";
   string sFChicken     = "Fresh Chicken";
   string sRChicken     = "roastchicken";
   string sFPork        = "Fresh Pork";
   string sRPork        = "roastpork";
   string sFVenison     = "Fresh Venison";
   string sRVenison     = "roastvenison";
   string sFTrout       = "Fresh Trout";
   string sFBass        = "Fresh Bass";
   string sFCod         = "Fresh Cod";
   string sFPike        = "Fresh Pike";
   string sRFillet      = "roastfish";
   string sFMeat        = "Fresh Meat"; //Thayan 9/22/07
   string sRMeat        = "roastmeat"; //Thayan 9/22/07

   //Burned Types
   string sBMeat        = "burnedmeat";
   string sBFish        = "burnedfish";
   string sRBread       = "burnedbread";

   int nWis = GetAbilityModifier(ABILITY_WISDOM,oPC);
   if(nWis < 0) nWis = 0;
   //int nSkill = GetLocalInt(oPC,"COOKING_SKILL");
   int nSkill = 0;
   int nBurn = Random(4);//9 when Cooking Skill is Implemented

   //Wisdom Based Cooking is Turn On from  opw_mod_onload
   int nWISCOOK = GetLocalInt(GetModule(),"WISCOOK");
   if(nWISCOOK == 0) nSkill = 100; //Equal to d100 Roll...Guaranteed Cooking

/******************************************************************************/
//: UNBURNED FOOD

   //Success
   if((nWis + nSkill) >= nBurn)
   {
     while(GetIsObjectValid(oItem))
     {
       if (sName == sFBear)
       { //Bear 3
         CreateItemOnObject(sRBear, oPC, 1);
         CreateItemOnObject(sRBear, oPC, 1);
         CreateItemOnObject(sRBear, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFBeef)
       { //Beef 3
         CreateItemOnObject(sRBeef, oPC, 1);
         CreateItemOnObject(sRBeef, oPC, 1);
         CreateItemOnObject(sRBeef, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFChicken)
       { //Chicken 1
         CreateItemOnObject(sRChicken, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFPork)
       { //Pork 2
         CreateItemOnObject(sRPork, oPC, 1);
         CreateItemOnObject(sRPork, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFVenison)
       { //Venison 2
         CreateItemOnObject(sRVenison, oPC, 1);
         CreateItemOnObject(sRVenison, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFTrout || sName == sFBass || sName == sFPike || sName == sFCod)
       { //Trout, Bass, Pike, Cod 1
         CreateItemOnObject(sRFillet, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }
       if (sName == sFMeat)
       { //Diseased Meat 1
         CreateItemOnObject(sRMeat, oPC, 1);
         DestroyObject(oItem);
         SpeakString("Good Cooking!");
       }

       oItem = GetNextItemInInventory(oSelf);
     }
   }

//: UNBURNED FOOD
/******************************************************************************/

/******************************************************************************/
//: BURNED FOOD

   if((nWis + nSkill) < nBurn)
   {
     oItem = GetFirstItemInInventory(oSelf);
     while(GetIsObjectValid(oItem))
     {
       if (sName == sFBear || sName == sFBeef || sName == sFChicken || sName == sFPork || sName == sFVenison)
       { //Bear, Beef, Chicken, Pork, Venison, Diseased Meat
         CreateItemOnObject(sBMeat, oPC, 1);
         DestroyObject(oItem);
         SpeakString("You burned the meat.");
       }
       if (sName == sFTrout || sName == sFBass || sName == sFPike || sName == sFCod)
       { ///Trout, Bass, Pike, Cod 1
         CreateItemOnObject(sBFish, oPC, 1);
         DestroyObject(oItem);
         SpeakString("You burned the meat.");
       }
       oItem = GetNextItemInInventory(oSelf);
     }
   }

//: BURNED FOOD
/******************************************************************************/
}

Oh, I see. So what if I gave the Mille Gallinarum Cocta book an OnEquip script which adjusts the PC's nWISCOOK variable by +100 (and adjusts it by -100 when the book is unequipped)? Would that work?

And we can burn bread on this server? And we can catch fish besides trout? What else have I been missing? O_O

But I have noticed that if you successfully cook Fresh Pork in an oven, you get three Roast Porks. But if you successfully cook it on a campfire, you get five Roast Porks. The campfires do seem to burn meat more often, however. Are there separate cooking scripts for ovens and for campfires?

(01-15-2015, 11:47 PM)Animayhem Wrote: Just for curiosity sake, does anyone know why wisdom was chosen?

For the same reason that Wisdom is the base Ability for Heal and similar skills: These skills rely heavily on wits, common sense and intuition, and not so much on raw knowledge. Intelligence is "know-what" and Wisdom is "know-how". Intelligence is what tells you "The fat's not dripping off the meat anymore," but Wisdom is what tells you "Quick! Get it off the fire before it burns!"

I've suspected that cooking on this server is Wisdom-based after I noticed that each of my Clerics has been a master chef, while Zelis (with her 8 in Wisdom) burned everything. How Zelis survived life in the wilderness as a Barbarian, I do not know. :-/
Corella d'Margo, arch-liar
Wyren Caul-of-Amber, alchemist
Tirah Het-Nanu, courtesan
Reply
#68
Oh, that's right. I still need to finish that Liber, don't I? Maybe on my next Tuesday off.... Blush


Just a few more ideas:


Mountaineer Pack

"This haulbag contains various bolts, pins, anchors, springhooks, belaying cords, rappelling cords and other climbing gear used to scale or descend mountains, crags and other sheer precipices.

Possessing this Mountaineer Pack will allow its bearer to traverse either of the Escarpments, thus safely climbing or rappelling into whichever region lies beyond the Escarpment. Most of the climbing gear in the Mountaineer Pack must be destroyed or left behind in order to secure the climb, making this pack a one-use item consumed during the transition."


Special Contract of Employment

"Whether through conquest, bargaining, favormongering, coercion or extortion, you have secured the services of a special hireling. As with any merchant, this hireling may be placed in any suitable marketplace lot or inside a house entitled to the bearer. Use of this contract will summon the bearer's choice of hireling (though members of the Merchant/Mercenary and Red Wizard factions will receive discounts to the hireling's periodic wages, as always):"


Solicitor - This hireling may only be placed inside a house. The solicitor is charged with the task of collecting entrance fees, donations or other dues from visitors to the establishment.

(PCs may voluntarily give donations to the Solicitor in order to support the owner's house or place of business. Even if chests and other containers could accept Gold (and they can't), they would be vulnerable to theft. The Solicitor provides a viable means of collecting Gold from any grateful or generous PCs. In addition, since it can be assumed that NPCs frequent the establishment as well, the Solicitor generates a small amount of income for the owner to collect (ie. 3d6 Gold per day).)


Guard - This hireling may only be placed inside a house. The Guard ensures the security and well-being of the proprietor's house. Any vandals, lockpickers, thieves, assailants, murderers or other ne'er-do-wells caught by the Guard in the course of their crimes shall be swiftly met with force.

(If a PC steals furniture, bashes a door or picks a lock in a house that doesn't belong to him/her, there is only a chance that a Legionnaire will respond to the crime. The presence of a Guard elevates this from a mere chance to a certainty, as the Guard will not only respond with his/her own force of arms but will sound the alarm and summon the Watch as well. By speaking with the Guard, the owner may invest Gold towards the Guard's equipment and training; thousands of Talons in wage bonuses, rewards and disbursements may be what separates the gruff but dull-witted rookie Guards from the seasoned, eagle-eyed veteran Guards.)


Bartender - This hireling is proficient in the art of pouring, serving, mixing and advising on the many beverages which pass through Thay's many trade routes. The owner may decide which foods and drinks are served by the bartender, though the costs and variety of the sustenance served will reflect in the Bartender's annual dues.

(The Bartender is just what he sounds like: A merchant who sells food and booze, typically found inside Thay's many taverns and inns. Bartenders may be placed in houses or in market lots, though the latter will be more akin to a roadside peddler of refreshments than a proper barkeep. Players may dictate what the Bartender serves by placing drinks and foodstuffs in his inventory, after which the Bartender will sell and serve an unlimited number of each item. Bear in mind that the Bartender's menu will affect how much his contract renewal costs; a bartender who serves nothing but mead and ale will be far, far cheaper than a bartender who serves everything from ale to Evermead and Undermountain Arulyath.)


Prostitute - A courtesan specializing in the arts of carnality. What manner of brothel could make do without suitable representation from the world's oldest profession? Prostitutes are also known for serving various temples as a more enticing way for the priests to gather tithes from the throngs of faithful. Be sure to keep your harlot properly fed, groomed and healthy in order to secure greater returns.

(For the aspiring pimp or madam, there's the Prostitute. They function just like any other prostitute, courtesan or whore on the server (as far as exchanging Gold for XP and/or temporary buffs), except that the Prostitute's owner can visit the Prostitute to collect a portion of whatever Gold the Prostitute has earned from servicing any passing PCs. On placing the Prostitute, the owner gets to choose the Prostitute's Race and Sex, as well as dictating the amount which the Prostitute charges; higher fees will ensure better XP as well as a healthier Prostitute who bestows more buffs and/or better buffs and who's less likely -- or completely unlikely -- to inflict disease on his/her clients, though the Prostitute's higher fees must be supported through corresponding investments from the owner's Gold; willpower alone isn't going to transform your scraggly opium whore into an international, Upper Class call girl. The owner's Level and/or Notoriety affects the number of races available; if you want to peddle a balor out as your hooker (you sick bastard), then you'd better be ready to scramble for Level 18 and more Notoriety than your local Tharchion. For the sake of fairness, the owner can't use the sexual services of his/her own Prostitute; let's keep the relationship professional, you whoremongers....)


Priest - Some adventurers are devotees of certain patron gods, so much so that they often use the proceeds from their adventures to found an annex, shrine or chapel to the god of their devotion. At the behest of his/her Church, this Priest has been called to such a place of worship and attends it and its throngs of faithful tirelessly.

(When placed, the Priest's Deity will match that of the PC owner, and for simplicity's sake, the Priest's Alignment will match that of the deity. The Priest, in his or her base form (as summoned with the Special Contract) will be at the same approximate rank as a friar or a deacon of the Church: The Priest may sell a few minor potions and healing items (such as Poultices and ordinary Bandages) and may only offer wound healing for his/her services. Whether through gains in Level, gains in Notoriety and/or invested Gold, the owner may increase the prowess and prestige of the Priest, eventually increasing the Priest's goods all the way up to Potions of Heroic Ability and the Priest's offered services as high as Resurrection.)


Input and counter-suggestions go here. How 'bout it? :)
Corella d'Margo, arch-liar
Wyren Caul-of-Amber, alchemist
Tirah Het-Nanu, courtesan
Reply
#69
Every time I read something like the above, it reminds me how awesome Wids really is...

More constructively, the contracts would be the natural expansion to player housing/merchants. Players have been asking for 'special slaves' for their establishments for ages (ever since the whole server was set in Bezantur), and these 'hirelings' fit the bill. I know that Thayan is 'in absentia' atm, but if anyone out there knows NWN scripting, I highly encourage you to try to go ahead and develop this and the worst that can happen is that Thayan says "no" when he gets back (and then you can go ahead and just put your fancy new mod up on neverwinternights.info).
Currently Playing:

Galambos Thrune - Griffon Knight
Archibold Vanderdaghast - Palemaster
Anders Maerklos - Spellsword
Chessala Zolond - Yathrin d'Lolth
Reply
#70
Oh, you flatter me. :P

So how would we go about scripting these hirelings? I imagine that they would be similar to the merchants and merchant contracts available to the PCs (though with tweaks for their roles, seleectable appearances and so forth), but I don't have that script(s) either.

(And if the Mountaineer Pack were to be a quest item, then making it a one-shot item wouldn't be good enough. Perhaps a "one use per day" limitation instead? Climbing cliffs is hard work!)
Corella d'Margo, arch-liar
Wyren Caul-of-Amber, alchemist
Tirah Het-Nanu, courtesan
Reply


Forum Jump:


Users browsing this thread: 23 Guest(s)