174 lines
4.6 KiB
Plaintext
174 lines
4.6 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Name: mooooo_inc
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Include file for Mooooo rod
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Flash
|
|
//:: Created On: 03-mar-2005
|
|
//:://////////////////////////////////////////////
|
|
#include "elv_guildchecker"
|
|
|
|
void ExamineSomething(object oVictim);
|
|
void WalkRandomly(object oVictim);
|
|
|
|
void TransformToCow(object oCow)
|
|
{
|
|
effect eMorph = ExtraordinaryEffect(EffectPolymorph(POLYMORPH_TYPE_COW, TRUE));
|
|
effect eEff = GetFirstEffect(oCow);
|
|
|
|
while(GetIsEffectValid(eEff))
|
|
{
|
|
RemoveEffect(oCow, eEff);
|
|
eEff = GetNextEffect(oCow);
|
|
}
|
|
|
|
eEff = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_1);
|
|
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eEff, oCow);
|
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eMorph, oCow);
|
|
}
|
|
|
|
void RemoveCow(object oCow)
|
|
{
|
|
effect eCow = GetFirstEffect(oCow);
|
|
while(GetIsEffectValid(eCow))
|
|
{
|
|
RemoveEffect(oCow, eCow);
|
|
eCow = GetNextEffect(oCow);
|
|
}
|
|
ApplyGuildAura(GetPCPlayerName(oCow), oCow);
|
|
}
|
|
|
|
void TurnIntoCow(object oVictim)
|
|
{
|
|
int iTimeAsCow = d10() + 6;
|
|
SetLocalInt(oVictim, "is_cow", TRUE);
|
|
SetLocalInt(oVictim, "iCowDuration", iTimeAsCow);
|
|
RemoveFromParty(oVictim);
|
|
AssignCommand(oVictim, ClearAllActions(TRUE));
|
|
AssignCommand (oVictim, ActionSpeakString("Ooops, errr... help?"));
|
|
DelayCommand(2.5f, AssignCommand(oVictim, ActionSpeakString("Mmm... ?")));
|
|
DelayCommand(3.5f, AssignCommand(oVictim, ActionSpeakString("Mooooo...?!?")));
|
|
DelayCommand(4.0f, TransformToCow(oVictim));
|
|
}
|
|
|
|
string GetRandomPCTalk()
|
|
{
|
|
string sText = "";
|
|
switch(d4())
|
|
{
|
|
case 1: sText = "*licks your face* .......Yuck!";
|
|
break;
|
|
case 2: sText = "*wispers* You have some grass or mushroms for me?";
|
|
break;
|
|
case 3: sText = "M.... *nevermind*";
|
|
break;
|
|
case 4: sText = "Moo! Hey dude, scratch me will ya?";
|
|
break;
|
|
default: sText = "Err... This can't be right.";
|
|
break;
|
|
}
|
|
return sText;
|
|
}
|
|
|
|
void TalkToPC(object oVictim)
|
|
{
|
|
int i = 0;
|
|
object oCreature = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oVictim, d6());
|
|
|
|
while((oCreature == OBJECT_INVALID) && (i < 10))
|
|
{
|
|
oCreature = GetNearestCreature(CREATURE_TYPE_IS_ALIVE, TRUE, oVictim, d6());
|
|
if(oCreature == OBJECT_INVALID) i++;
|
|
}
|
|
|
|
if(GetIsObjectValid(oCreature))
|
|
{
|
|
AssignCommand (oVictim, SetCommandable(TRUE));
|
|
AssignCommand (oVictim, ClearAllActions(TRUE));
|
|
AssignCommand (oVictim, ActionMoveToObject(oCreature, Random(1)));
|
|
AssignCommand (oVictim, ActionSpeakString(GetRandomPCTalk()));
|
|
AssignCommand (oVictim, SetCommandable(FALSE));
|
|
|
|
}
|
|
else
|
|
{
|
|
ExamineSomething(oVictim);
|
|
}
|
|
}
|
|
|
|
string GetRandomObjectTalk()
|
|
{
|
|
string sText = "";
|
|
switch(d4())
|
|
{
|
|
case 1: sText = "Yep... boring";
|
|
break;
|
|
case 2: sText = "MOOOOOooooOOOooOooOOOOOOo";
|
|
break;
|
|
case 3: sText = "I've seen that before";
|
|
break;
|
|
case 4: sText = "*sings* Moo mo mo mo MOOOOOO mooo mOOOooOOOo";
|
|
break;
|
|
default: sText = "Err... This can't be right.";
|
|
break;
|
|
}
|
|
return sText;
|
|
}
|
|
|
|
void ExamineSomething(object oVictim)
|
|
{
|
|
int i = 0;
|
|
object oThing = GetNearestObject(OBJECT_TYPE_ALL, oVictim, d6());
|
|
|
|
while(oThing == OBJECT_INVALID && (i < 10))
|
|
{
|
|
oThing = GetNearestObject(OBJECT_TYPE_ALL, oVictim, d6());
|
|
if(oThing == OBJECT_INVALID) i++;
|
|
}
|
|
|
|
if(GetIsObjectValid(oThing))
|
|
{
|
|
AssignCommand (oVictim, SetCommandable(TRUE));
|
|
AssignCommand (oVictim, ClearAllActions(TRUE));
|
|
AssignCommand (oVictim, ActionMoveToObject(oThing, Random(1)));
|
|
AssignCommand (oVictim, ActionSpeakString(GetRandomObjectTalk()));
|
|
AssignCommand (oVictim, SetCommandable(FALSE));
|
|
}
|
|
else
|
|
{
|
|
WalkRandomly(oVictim);
|
|
}
|
|
}
|
|
|
|
string GetRandomWalkTalk()
|
|
{
|
|
string sText = "";
|
|
switch(d4())
|
|
{
|
|
case 1: sText = "Hmm, thats interesting..";
|
|
break;
|
|
case 2: sText = "That looks like some tasty grass over there";
|
|
break;
|
|
case 3: sText = "*chews*";
|
|
break;
|
|
case 4: sText = "Dum-de-dum-dum, err.. MoooOOooO";
|
|
break;
|
|
default: sText = "Err... This can't be right.";
|
|
break;
|
|
}
|
|
return sText;
|
|
}
|
|
|
|
void WalkRandomly(object oVictim)
|
|
{
|
|
AssignCommand (oVictim, SetCommandable(TRUE));
|
|
AssignCommand (oVictim, ClearAllActions(TRUE));
|
|
AssignCommand (oVictim, ActionSpeakString(GetRandomWalkTalk()));
|
|
AssignCommand (oVictim, ActionRandomWalk());
|
|
AssignCommand (oVictim, SetCommandable(FALSE));
|
|
}
|
|
|