Rune_PRC8/_module/nss/oai_animals.nss
Jaysyn904 d1c309ae63 Initial commit
Initial commit
2024-09-13 09:10:39 -04:00

346 lines
7.6 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
//
// Animal Hide and Fresh Meat Giver
// oai_animals
// By:Don Anderson
// dandersonru@msn.com
//
// Assign this to the Arae OnEnter Event
//
////////////////////////////////////////////////////////////////////////////////
#include "oai_inc_base"
void SetInventoryDroppable(object oAnimal);
void main()
{
object oAnimal = OBJECT_SELF;//Use This Line if calling from OnSpawn Event
string sAnimal = GetTag(oAnimal);
int nCON = GetAbilityModifier(ABILITY_CONSTITUTION,oAnimal);
int nCount;
if(GetIsDM(oAnimal)) return;
if(GetIsPC(oAnimal)) return;
string sHide = "x2_it_cmat_leath";//Leather Hide
string sFBear = "freshbear";
string sFBeef = "freshbeef";
string sFBison = "freshbison";
string sFChicken = "freshchicken";
string sFPork = "freshpork";
string sFVenison = "freshvenison";
string sFTrout = "freshtrout";
string sFBass = "freshbass";
string sFPike = "freshpike";
string sFCrab = "freshcrab";
//Pack Animals do not Get Fresh Stuff
int nPack = FindSubString(sAnimal,"Pack");
if(nPack != -1) return;
//We Check which Animal and give them Fresh Meat
//Bear
int nBear = FindSubString(sAnimal,"BEAR");
if(nBear != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFBear, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Bison
int nBison = FindSubString(sAnimal,"BISON");
if(nBison != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFBison, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Cow
int nCow = FindSubString(sAnimal,"COW");
if(nCow != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFBeef, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Oxen
int nOx = FindSubString(sAnimal,"OX");
if(nOx != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFBeef, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Water Buffalo
int nBuffalo = FindSubString(sAnimal,"BUFFALO");
if(nBuffalo != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFBeef, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Deer
int nDeer = FindSubString(sAnimal,"DEER");
if(nDeer != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFVenison, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Antelope
int nAntelope = FindSubString(sAnimal,"ANTELOPE");
if(nAntelope != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFVenison, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Gazelle
int nGazelle = FindSubString(sAnimal,"GAZELLE");
if(nGazelle != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFVenison, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Boar
int nBoar = FindSubString(sAnimal,"BOAR");
if(nBoar != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFPork, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Pig
int nPig = FindSubString(sAnimal,"PIG");
if(nPig != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFPork, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Peccary
int nPeccary = FindSubString(sAnimal,"PECCARY");
if(nPeccary != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFPork, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Hog
int nHog = FindSubString(sAnimal,"HOG");;
if(nHog != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFPork, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Babirusa
int nBabirusa = FindSubString(sAnimal,"BABIRUSA");
if(nBabirusa != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFPork, oAnimal, 1);
nCount++;
}
CreateItemOnObject(sHide, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Chicken
int nChicken = FindSubString(sAnimal,"CHICKEN");
if(nChicken != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_HERBIVORE);
CreateItemOnObject(sFChicken, oAnimal, 1);
SetInventoryDroppable(oAnimal);
return;
}
//Crab
int nCrab = FindSubString(sAnimal,"CRAB");
if(nCrab != -1)
{
//Behavior State
SetBehaviorState(NW_FLAG_BEHAVIOR_OMNIVORE);
if(nCON < 2) nCON = 2;
nCount = 1;
while (nCount <= nCON)
{
CreateItemOnObject(sFCrab, oAnimal, 1);
nCount++;
}
SetInventoryDroppable(oAnimal);
return;
}
}
void SetInventoryDroppable(object oAnimal)
{
int nCount = 0;
object oItem = GetFirstItemInInventory(oAnimal);
while(GetIsObjectValid(oItem) && nCount <= 6)
{
SetDroppableFlag(oItem,TRUE);
nCount++;
GetNextItemInInventory(oAnimal);
}
}