114 lines
4.0 KiB
Plaintext
114 lines
4.0 KiB
Plaintext
void Cough(object oDM)
|
|
{
|
|
string snd = "as_pl_coughm" + IntToString(Random(7)+1);
|
|
if (GetGender(oDM)) snd = "as_pl_coughf" + IntToString(Random(7)+1);
|
|
AssignCommand (oDM, PlaySound(snd));
|
|
return;
|
|
}
|
|
|
|
void Puke(object oPC)
|
|
{
|
|
DelayCommand(1.0,ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(Random(3) + VFX_COM_CHUNK_GREEN_SMALL), oPC, 1.0));
|
|
Cough(oPC);
|
|
}
|
|
|
|
void MakeDrunk(object oPC, int alc)
|
|
{
|
|
int alev;
|
|
int hit;
|
|
|
|
alc -= 1;
|
|
SetLocalInt(oPC,"alcohol",alc);
|
|
alev = GetLocalInt(oPC,"alclevel");
|
|
if (alev != alc / 5) {
|
|
alev = alc / 5;
|
|
SetLocalInt(oPC,"alclevel",alev);
|
|
if (alev == 0) {
|
|
SendMessageToPC(oPC, "You are quite sober.");
|
|
} else if(alev == 1) {
|
|
SendMessageToPC(oPC, "You are a bit tipsy.");
|
|
} else if(alev == 2) {
|
|
SendMessageToPC(oPC, "You are drunk.");
|
|
if (GetGender(oPC)) AssignCommand ( oPC, PlaySound("as_pl_tavcallf1"));
|
|
else AssignCommand ( oPC, PlaySound("as_pl_tavsongm1"));
|
|
} else if(alev == 3) {
|
|
SendMessageToPC(oPC, "You are roaring drunk.");
|
|
if (GetGender(oPC)) AssignCommand ( oPC, PlaySound("as_pl_tavlewdf1"));
|
|
else AssignCommand ( oPC, PlaySound("as_pl_tavsongm2"));
|
|
} else if(alev == 4) {
|
|
SendMessageToPC(oPC, "You are Legless.");
|
|
} else if(alev >= 5) {
|
|
SendMessageToPC(oPC, "You are Paralytic.");
|
|
}
|
|
}
|
|
hit = 0;
|
|
if (alev == 1) AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK, 1.0, 4.0));
|
|
if (alev > 1) hit = 1;
|
|
if (alev > 1 && alev < 5) {
|
|
if (FortitudeSave(oPC,alc+15)) {
|
|
hit = 0;
|
|
if (Random(3) != 1) {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK, 1.0, 4.0));
|
|
} else {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING, 1.0, 1.0));
|
|
AssignCommand(oPC, PlayVoiceChat(VOICE_CHAT_LAUGH));
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK, 1.0, 4.0));
|
|
}
|
|
}
|
|
}
|
|
if (hit > 0) {
|
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
|
if (alev < 5) {
|
|
if (Random(6-alev) == 1) {
|
|
if (Random(6) == 2) {
|
|
Puke(oPC);
|
|
} else {
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_SLEEP),oPC,10.0);
|
|
}
|
|
}
|
|
hit = Random(5);
|
|
if (hit == 0) {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 1.0, 5.0));
|
|
} else if (hit == 1) {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_MEDITATE, 1.0, 5.0));
|
|
} else if (hit == 2) {
|
|
AssignCommand(oPC, ActionRandomWalk());
|
|
} else {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0));
|
|
}
|
|
} else {
|
|
if (Random(12 - alev) == 2) {
|
|
Puke(oPC);
|
|
} else {
|
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_IMP_SLEEP),oPC,10.0);
|
|
}
|
|
if (Random(6) != 1) {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0));
|
|
} else {
|
|
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_WORSHIP, 1.0, 5.0));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
void main()
|
|
{
|
|
ExecuteScript("hd_o0_heartbeat",OBJECT_SELF);
|
|
ExecuteScript("race_hb", GetModule() );
|
|
int alc;
|
|
|
|
object oPC = GetFirstPC();
|
|
while(oPC!=OBJECT_INVALID && GetIsObjectValid(oPC)==TRUE) {
|
|
int punish = GetLocalInt(oPC,"punish");
|
|
if (punish > 0) {
|
|
SetLocalInt(oPC,"punish", punish-6);
|
|
Puke(oPC);
|
|
}
|
|
alc = GetLocalInt(oPC,"alcohol");
|
|
if (alc > 0) MakeDrunk(oPC, alc);
|
|
oPC = GetNextPC();
|
|
}
|
|
SetLocalString(GetModule(), "NWNX!VERSION", "xxxxxxxx");
|
|
}
|
|
|