125 lines
5.0 KiB
Plaintext
125 lines
5.0 KiB
Plaintext
|
void main()
|
||
|
{
|
||
|
object oPC = OBJECT_SELF;
|
||
|
string sTag = GetLocalString(oPC,"sDrink");
|
||
|
int iDrunk = GetLocalInt(oPC,"iDrunk");
|
||
|
|
||
|
int iDose = 1;
|
||
|
|
||
|
if (sTag=="drink_cup_001") iDose=1; //Apple Cider
|
||
|
if (sTag=="drink_cup_002") iDose=2; //House Cider
|
||
|
if (sTag=="drink_cup_003") iDose=2; //Scrumpy
|
||
|
if (sTag=="drink_cup_004") iDose=2; //Cyser
|
||
|
if (sTag=="drink_cup_005") iDose=2; //Blueberry Cider
|
||
|
if (sTag=="drink_cup_006") iDose=2; //Blackberry Cider
|
||
|
if (sTag=="drink_cup_007") iDose=2; //Grape Cider
|
||
|
if (sTag=="drink_cup_008") iDose=3; //Somerset Cider
|
||
|
if (sTag=="drink_cup_009") iDose=3; //Red Wine
|
||
|
if (sTag=="drink_cup_010") iDose=3; //White Wine
|
||
|
if (sTag=="drink_cup_011") iDose=3; //Purple Wine
|
||
|
if (sTag=="drink_cup_012") iDose=5; //Sherry
|
||
|
if (sTag=="drink_cup_013") iDose=2; //Standard Lager
|
||
|
if (sTag=="drink_cup_014") iDose=2; //Dry Lager
|
||
|
if (sTag=="drink_cup_015") iDose=2; //Light Lager
|
||
|
if (sTag=="drink_cup_016") iDose=3; //Draught Lager
|
||
|
if (sTag=="drink_cup_017") iDose=4; //Red Malt Lager
|
||
|
if (sTag=="drink_cup_018") iDose=4; //Gold Malt Lager
|
||
|
if (sTag=="drink_cup_019") iDose=5; //Ice Lager
|
||
|
if (sTag=="drink_cup_020") iDose=6; //Stout Lager
|
||
|
if (sTag=="drink_cup_021") iDose=3; //Standard Ale
|
||
|
if (sTag=="drink_cup_022") iDose=4; //Stout Ale
|
||
|
if (sTag=="drink_cup_023") iDose=5; //Porter Ale
|
||
|
if (sTag=="drink_cup_024") iDose=6; //Barleywine Ale
|
||
|
if (sTag=="drink_cup_025") iDose=6; //Kolsch Ale
|
||
|
if (sTag=="drink_cup_026") iDose=2; //Honeymead
|
||
|
if (sTag=="drink_cup_027") iDose=2; //Sackmead
|
||
|
if (sTag=="drink_cup_028") iDose=2; //Apple Muslin Mead
|
||
|
if (sTag=="drink_cup_029") iDose=3; //Metheglin
|
||
|
if (sTag=="drink_cup_030") iDose=3; //Morat
|
||
|
if (sTag=="drink_cup_031") iDose=4; //Hippocras
|
||
|
if (sTag=="drink_cup_032") iDose=4; //Pyment
|
||
|
if (sTag=="drink_cup_033") iDose=5; //Braggot
|
||
|
if (sTag=="drink_cup_034") iDose=5; //Oxymel
|
||
|
if (sTag=="drink_cup_035") iDose=6; //Rhodomel
|
||
|
if (sTag=="drink_cup_036") iDose=10; //Corn Whiskey
|
||
|
if (sTag=="drink_cup_037") iDose=11; //Acorn Whiskey
|
||
|
if (sTag=="drink_cup_038") iDose=12; //Sake
|
||
|
if (sTag=="drink_cup_039") iDose=6; //Old Rum
|
||
|
if (sTag=="drink_cup_040") iDose=7; //White Rum
|
||
|
if (sTag=="drink_cup_041") iDose=8; //Gold Rum
|
||
|
if (sTag=="drink_cup_042") iDose=9; //Amber Rum
|
||
|
if (sTag=="drink_cup_043") iDose=10; //Dark Rum
|
||
|
if (sTag=="drink_cup_044") return; //Vinegar
|
||
|
if (sTag=="drink_cup_045") iDose=8; //Vodka
|
||
|
if (sTag=="drink_cup_046") iDose=9; //Gin
|
||
|
|
||
|
iDrunk=iDrunk+iDose;
|
||
|
SetLocalInt(oPC,"iDrunk",iDrunk);
|
||
|
|
||
|
//Determine drunk state
|
||
|
int iCon = GetAbilityScore(oPC,ABILITY_CONSTITUTION);
|
||
|
int iSave = GetFortitudeSavingThrow(oPC);
|
||
|
|
||
|
|
||
|
int iSaveBonus = iCon/6;
|
||
|
if (GetRacialType(oPC)==RACIAL_TYPE_DWARF) iSaveBonus = iCon;
|
||
|
if (GetRacialType(oPC)==RACIAL_TYPE_ELF) iSaveBonus = iCon/2;
|
||
|
if (GetRacialType(oPC)==RACIAL_TYPE_HALFELF) iSaveBonus = iCon/3;
|
||
|
if (GetRacialType(oPC)==RACIAL_TYPE_HALFLING) iSaveBonus = iCon/3;
|
||
|
if (GetRacialType(oPC)==RACIAL_TYPE_HALFORC) iSaveBonus = iCon/3;
|
||
|
if (GetRacialType(oPC)==RACIAL_TYPE_GNOME) iSaveBonus = iCon/4;
|
||
|
|
||
|
int iSaveRoll = d20(1)+iSaveBonus;
|
||
|
|
||
|
iDrunk = iDrunk+5;
|
||
|
if (iSaveRoll<iDrunk)
|
||
|
{
|
||
|
int iSaveDiff = iDrunk-iSaveRoll;
|
||
|
/*
|
||
|
string sMessage;
|
||
|
switch (iSaveDiff)
|
||
|
{
|
||
|
case 0:{sMessage="you feel sober.";break;}
|
||
|
case 1:{sMessage="You feel sober.";break;}
|
||
|
case 2:{sMessage="You feel good.";break;}
|
||
|
case 3:{sMessage="You feel happy.";break;}
|
||
|
case 4:{sMessage="You feel lightheaded.";break;}
|
||
|
case 5:{sMessage="You are tipsy.";break;}
|
||
|
case 6:{sMessage="You are drunk.";break;}
|
||
|
case 7:{sMessage="You are drunk.";break;}
|
||
|
case 8:{sMessage="You are very drunk.";break;}
|
||
|
case 9:{sMessage="You are very drunk.";break;}
|
||
|
case 10:{sMessage="You are very drunk.";break;}
|
||
|
case 11:{sMessage="You are inebriated.";break;}
|
||
|
case 12:{sMessage="You are inebriated.";break;}
|
||
|
case 13:{sMessage="You are unable to walk properly.";break;}
|
||
|
case 14:{sMessage="You are unable to walk properly.";break;}
|
||
|
case 15:{sMessage="You are unable to walk properly.";break;}
|
||
|
case 16:{sMessage="You are unable to stand.";break;}
|
||
|
case 17:{sMessage="You are unable to stand.";break;}
|
||
|
case 18:{sMessage="You are unable to stand.";break;}
|
||
|
case 19:{sMessage="You are unable to stand.";break;}
|
||
|
case 20:{sMessage="You pass out...";break;}
|
||
|
default:{sMessage="You pass out....";break;}
|
||
|
}
|
||
|
FloatingTextStringOnCreature(sMessage,oPC,FALSE);
|
||
|
*/
|
||
|
if (iDrunk-iCon>5)
|
||
|
{
|
||
|
AssignCommand(oPC,SpeakString("*Hic!*",TALKVOLUME_TALK));
|
||
|
AssignCommand(oPC,ActionPlayAnimation(ANIMATION_FIREFORGET_DODGE_DUCK,1.0));
|
||
|
}
|
||
|
if (iSaveDiff>5)
|
||
|
{
|
||
|
if (GetLocalInt(oPC,"iAmDrunk")==0)
|
||
|
{
|
||
|
SetLocalInt(oPC,"iAmDrunk",99);
|
||
|
ExecuteScript("_uoa_drunk",oPC);
|
||
|
return;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|